Google App Engine /Java


        Java

          shuji_w6e
Java

Twitter: shuji_w6e
blog:
Java
2008

Java




                                      NEW


http://groups.google.co.jp/group/java-sapporo
Equate?
Google App Engine
slim3
Agenda


Google App Engine / Java
slim3
etupirkacms
spin-up
Datastore
Demo
Google App Engine
GAE


            PaaS

spin-up /spin-down
BigTable / Key- Value Datastore
PaaS

Platform as a Service


  Python       Java



500   PV
Lifecycle

                      Instance

Request   spin-up                spin-down

           Instance              In...
spin-down
spin-up / spin-down

        App   spin-down


               spin-down




   spin-up
Big Table




RDB           Key-Value store
          HashMap
GAE


Eclipse + Plug-in + SDK
             +
slim3
slim3
GAE

“Simple” and “Less Is More”


  Seasar2, SAStruts




http://code.google.com/p/slim3/
Web App Framework

  Layer               slim3         Default

              1 Action
Controller                         ...
JSP



Controller

      slim3
                              JDO/JPA
  Datastore API


              Low level API

      ...
Faster than JDO/JPA
Type safe query
Fast spin-up
Hot Reloading
Global Transaction
Faster than JDO/JPA

JDO/JPA
         API

  BigTable



Low level API
                API

  SQL
Type safe query


Eclipse
  API GQL
Fast spin-up


GAE/Java        ... 1100 1200ms

GAE/Java + slim3       ... 1300 1400ms

Low level API
Hot Reloading




→   →   →   → ....
Global Transaction

BigTable




slim3   Global Transaction
  RDB
Demo
13:00 17:00



slim3

http://groups.google.co.jp/group/java-sapporo
EtupirkaCMS
EtupirkaCMS

Contents Management System
  Blog,     ,         , SEO

                      Google App Engine




http://co...
spin-up
1,600ms - 1,900ms
1,800ms - 2,200ms
10




GAE
Tips
spin-up
spin-up

         spin-up

       2,000ms     3,000ms



Class Loading/
spin-down
Class Loading
Mail, TQ, Memcache
1
>>


>>
>>
>>
Datastore         /
>>


>>               TQ → 300ms -400ms
EtupirkaCMS                           Cache
             Request
                                           put
          ...
Action Controller

slim3

URL

spin-up

          ...

                ...
Scenic3

slim3

EtupirkaCMS

T2 Framework       Page

APT     slim3   Controller


http://code.google.com/p/scenic3/
Page sample
@Page("/entry")
public class EntryPage extends ScenicPage {
  @Default
  public Navigation list() {
  //
 }
 @...
Scenic3
                           ActionController_list

EntryPage       APT     ActionController_register
 + list
 + reg...
PageClass

HotReloading

slim3   Controller

PageTester
Datastore
join, like, sum
TaskQueue/Cron
 30
N:N
                         Entry
                           N
                  N:N
                                  1
...
Entry
Entry
        TagName
Tag      “GAE”
         “Java”
         “slim3”
Entry
          Tag

          EntryId
       ...
Entry

              previous?

              Entry
              next?


      Entry
...
Linked List
    EntryLinkedList           Entry   1:1

                LinkedList BigTable

    Entry         EntryListNod...
...

GAE

       GAE
AppEngine-ja-night   Twitter
AppEngine
ja-night Sapporo?
Google App Engine/ Java Application Development
Upcoming SlideShare
Loading in...5
×

Google App Engine/ Java Application Development

2,524

Published on

OSC 2010 Hokkaido
GAE/Java

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,524
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
35
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
























































  • 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?
    1. A particular slide catching your eye?

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

    ×