Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Google App Engine/ Java Application Development

3,010 views

Published on

OSC 2010 Hokkaido
GAE/Java

Published in: Technology, Business
  • Be the first to comment

Google App Engine/ Java Application Development

  1. 1. Google App Engine /Java Java shuji_w6e
  2. 2. Java Twitter: shuji_w6e blog:
  3. 3. Java 2008 Java NEW http://groups.google.co.jp/group/java-sapporo
  4. 4. Equate?
  5. 5. Google App Engine
  6. 6. slim3
  7. 7. Agenda Google App Engine / Java slim3 etupirkacms spin-up Datastore
  8. 8. Demo
  9. 9. Google App Engine
  10. 10. GAE PaaS spin-up /spin-down BigTable / Key- Value Datastore
  11. 11. PaaS Platform as a Service Python Java 500 PV
  12. 12. Lifecycle Instance Request spin-up spin-down Instance Instance
  13. 13. spin-down
  14. 14. spin-up / spin-down App spin-down spin-down spin-up
  15. 15. Big Table RDB Key-Value store HashMap
  16. 16. GAE Eclipse + Plug-in + SDK +
  17. 17. slim3
  18. 18. slim3 GAE “Simple” and “Less Is More” Seasar2, SAStruts http://code.google.com/p/slim3/
  19. 19. Web App Framework Layer slim3 Default 1 Action Controller none = 1 Controller Model slim3 Datastore API JDO/JPA (Datastore) JSP View JSP + Helper API
  20. 20. JSP Controller slim3 JDO/JPA Datastore API Low level API AppEngine SDK
  21. 21. Faster than JDO/JPA Type safe query Fast spin-up Hot Reloading Global Transaction
  22. 22. Faster than JDO/JPA JDO/JPA API BigTable Low level API API SQL
  23. 23. Type safe query Eclipse API GQL
  24. 24. Fast spin-up GAE/Java ... 1100 1200ms GAE/Java + slim3 ... 1300 1400ms Low level API
  25. 25. Hot Reloading → → → → ....
  26. 26. Global Transaction BigTable slim3 Global Transaction RDB
  27. 27. Demo
  28. 28. 13:00 17:00 slim3 http://groups.google.co.jp/group/java-sapporo
  29. 29. EtupirkaCMS
  30. 30. EtupirkaCMS Contents Management System Blog, , , SEO Google App Engine http://code.google.com/p/etupirka/
  31. 31. spin-up 1,600ms - 1,900ms 1,800ms - 2,200ms
  32. 32. 10 GAE
  33. 33. Tips
  34. 34. spin-up
  35. 35. spin-up spin-up 2,000ms 3,000ms Class Loading/
  36. 36. spin-down
  37. 37. Class Loading
  38. 38. Mail, TQ, Memcache
  39. 39. 1 >> >> >> >>
  40. 40. Datastore / >> >> TQ → 300ms -400ms
  41. 41. EtupirkaCMS Cache Request put get PageCaheFilter PageCache (id=path) get Action Template load/parse (id=templateNa me) Template File put Datastore
  42. 42. Action Controller slim3 URL spin-up ... ...
  43. 43. Scenic3 slim3 EtupirkaCMS T2 Framework Page APT slim3 Controller http://code.google.com/p/scenic3/
  44. 44. Page sample @Page("/entry") public class EntryPage extends ScenicPage { @Default   public Navigation list() {   //  } @ActionPath(“register”) public Navigation register() { // } @ActionPath(“update/{id}”) public Navigation update( @ActionParam(“id”) Integer id) { // } }
  45. 45. Scenic3 ActionController_list EntryPage APT ActionController_register + list + register id=4 + update ActionController_update APT EntryPageMatcher Scenic3FrontController /update/4
  46. 46. PageClass HotReloading slim3 Controller PageTester
  47. 47. Datastore
  48. 48. join, like, sum
  49. 49. TaskQueue/Cron 30
  50. 50. N:N Entry N N:N 1 RDB EntryTag BigTable join 1 N ... Tag
  51. 51. Entry Entry TagName Tag “GAE” “Java” “slim3” Entry Tag EntryId 1 2 3
  52. 52. Entry previous? Entry next? Entry ...
  53. 53. Linked List EntryLinkedList Entry 1:1 LinkedList BigTable Entry EntryListNode TaskQueue EntryListNode EntryListNode EntryListNode NextEntry NextEntry NextEntry PreviousEntry PreviousEntry PreviousEntry
  54. 54. ... GAE GAE AppEngine-ja-night Twitter
  55. 55. AppEngine ja-night Sapporo?

×