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

2,957 views

Published on

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

No Downloads
Views
Total views
2,957
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
57
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

×