JJUG/ Lab/edge2.cc

             2010 10   18
             JJUG CCC 2010 Fall




                                  1

201...
•         Java                            (   )       Lab           edge2.cc
       •
             • XML SmartDoc (XML    ...
• Modegramming Style (            DSL           )


             • http://modegramming.blogspot.com/


       • g3


     ...
•


       • g3




                 4

2010   10   18
5

2010   10   18
[ ]       (1)




                       6

2010   10   18
[ ]       (1)



                                     REST/Atom
                       SmartDevice   GUI




             ...
[ ]       (2)




                       7

2010   10   18
[ ]       (2)


                                       Smart Device
                             DropBox
                 ...
8

2010   10   18
8

2010   10   18
8

2010   10   18
9

2010   10   18
9

2010   10   18
10

2010   10   18
10

2010   10   18
10

2010   10   18
10

2010   10   18
10

2010   10   18
10

2010   10   18
11

2010   10   18
Java VM!
                   REST (Atom/JSON)
                 Web UI          HTML5&JavaScript




                       ...
CQRS      EDA




                       12

2010   10   18
13

2010   10   18
13

2010   10   18
13

2010   10   18
13

2010   10   18
13

2010   10   18
13

2010   10   18
14

2010   10   18
14

2010   10   18
14

2010   10   18
15

2010   10   18
g3




                      16

2010   10   18
Scala




                 17

2010   10   18
Scala


                 DSL (Domain Specific Language)
                 JavaVM




                                       ...
Scala


                                     DSL (Domain Specific Language)
                                     JavaVM



...
g3




                 18

2010   10   18
g3




                 REST
                   Atom/HTML/MIME
                   Record
                 RQRS (Command Qu...
g3                                     (Scala DSL)

        class AtomDb extends G3Application with UseRecord {
         v...
g3                                   (        )
        …        …

         channel('viewlist) invoke("list") agent {
   ...
g3                                                 (   )

            … …

            channel('update) invoke("feed") age...
g3                                              - Splitter/Aggregator

            class Join extends G3Application {     ...
23

2010   10   18
KVS+α(       )
                   RDBMS NoSQL
                   Google AppEngine DataStore
                 RQRS (Command...
EntityDriver




                      24

2010   10   18
EntityDriver




                      24

2010   10   18
EntityDriver




                      24

2010   10   18
EntityDriver




                      24

2010   10   18
EntityDriver




                      24

2010   10   18
SimpleModeler g3




                          25

2010   10   18
SimpleModeler g3




                          25

2010   10   18
SimpleModeler g3




                          25

2010   10   18
SimpleModeler g3




                          25

2010   10   18
SimpleModeler g3




                          25

2010   10   18
•

             •

             •

       •

             • KVS+α

             • CQRS (Command Query Responsibility Segre...
END


                       27

2010   10   18
Upcoming SlideShare
Loading in...5
×

クラウド・アプリケーション・アーキテクチャ

2,484

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,484
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
51
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

クラウド・アプリケーション・アーキテクチャ

  1. 1. JJUG/ Lab/edge2.cc 2010 10 18 JJUG CCC 2010 Fall 1 2010 10 18
  2. 2. • Java ( ) Lab edge2.cc • • XML SmartDoc (XML ) • Relaxer (XML/Java ) • • SimpleModeler (Scala DSL ) • g3 ( ) • • UML ( BP) • ( ) • Scala (Softbank Creative) 2 2010 10 18
  3. 3. • Modegramming Style ( DSL ) • http://modegramming.blogspot.com/ • g3 • http://code.google.com/p/goldenport3/ 3 2010 10 18
  4. 4. • • g3 4 2010 10 18
  5. 5. 5 2010 10 18
  6. 6. [ ] (1) 6 2010 10 18
  7. 7. [ ] (1) REST/Atom SmartDevice GUI 6 2010 10 18
  8. 8. [ ] (2) 7 2010 10 18
  9. 9. [ ] (2) Smart Device DropBox Evernote DropBox Evernote 7 2010 10 18
  10. 10. 8 2010 10 18
  11. 11. 8 2010 10 18
  12. 12. 8 2010 10 18
  13. 13. 9 2010 10 18
  14. 14. 9 2010 10 18
  15. 15. 10 2010 10 18
  16. 16. 10 2010 10 18
  17. 17. 10 2010 10 18
  18. 18. 10 2010 10 18
  19. 19. 10 2010 10 18
  20. 20. 10 2010 10 18
  21. 21. 11 2010 10 18
  22. 22. Java VM! REST (Atom/JSON) Web UI HTML5&JavaScript 11 2010 10 18
  23. 23. CQRS EDA 12 2010 10 18
  24. 24. 13 2010 10 18
  25. 25. 13 2010 10 18
  26. 26. 13 2010 10 18
  27. 27. 13 2010 10 18
  28. 28. 13 2010 10 18
  29. 29. 13 2010 10 18
  30. 30. 14 2010 10 18
  31. 31. 14 2010 10 18
  32. 32. 14 2010 10 18
  33. 33. 15 2010 10 18
  34. 34. g3 16 2010 10 18
  35. 35. Scala 17 2010 10 18
  36. 36. Scala DSL (Domain Specific Language) JavaVM 17 2010 10 18
  37. 37. Scala DSL (Domain Specific Language) JavaVM Option, List, flatMap, Partial Function 17 2010 10 18
  38. 38. g3 18 2010 10 18
  39. 39. g3 REST Atom/HTML/MIME Record RQRS (Command Query Resiponsibility Segregation) 18 2010 10 18
  40. 40. g3 (Scala DSL) class AtomDb extends G3Application with UseRecord { val kind = 'feed val schema = Schema(AutoIdField, 'twitterid, 'title, ('date, XDate), ('content, XString)) val url = "http://twitter.com/statuses/public_timeline.atom" datastore('db, RecordClassSpace( RecordClass(kind, schema))) service('feed, url) … … 19 2010 10 18
  41. 41. g3 ( ) … … channel('viewlist) invoke("list") agent { case rs: RecordSet => Html("Feed List", <body> <h1>Feed List</h1> <g.list/> <ul> <li><a href="/">Return Menu</a></li> </ul> </body> ) schema schema += rs } … … 20 2010 10 18
  42. 42. g3 ( ) … … channel('update) invoke("feed") agent { case AtomFeed(feed) => { Post(kind, feed.toRecordSet(entry => { Record('twitterid -> entry.id, 'title -> entry.title, 'date -> entry.updated, 'content -> entry.contentText) })) } } invoke("db") port("/") invoke("viewtop") port("/init") invoke("viewinitrun") port("/list") invoke("viewlist") port("/update") invoke("viewupdaterun") port("/service/init") invoke("init") port("/service/list") invoke("list") port("/service/update") invoke("update") } 21 2010 10 18
  43. 43. g3 - Splitter/Aggregator class Join extends G3Application { Enterprise Integration Patterns agent('compute) { Splitter case x: Int => x + 100 Aggregator } start(List(1, 2, 3, 4, 5)) split() publish("compute") join() aggregate() } 22 2010 10 18
  44. 44. 23 2010 10 18
  45. 45. KVS+α( ) RDBMS NoSQL Google AppEngine DataStore RQRS (Command Query Resiponsibility Segregation) Event Driver & View Driver 23 2010 10 18
  46. 46. EntityDriver 24 2010 10 18
  47. 47. EntityDriver 24 2010 10 18
  48. 48. EntityDriver 24 2010 10 18
  49. 49. EntityDriver 24 2010 10 18
  50. 50. EntityDriver 24 2010 10 18
  51. 51. SimpleModeler g3 25 2010 10 18
  52. 52. SimpleModeler g3 25 2010 10 18
  53. 53. SimpleModeler g3 25 2010 10 18
  54. 54. SimpleModeler g3 25 2010 10 18
  55. 55. SimpleModeler g3 25 2010 10 18
  56. 56. • • • • • KVS+α • CQRS (Command Query Responsibility Segregation) • • • • DSL (Domain Specific Language) • • Scala 26 2010 10 18
  57. 57. END 27 2010 10 18
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×