Your SlideShare is downloading. ×
0
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

CloudConf2011 Introduction to Google App Engine

605

Published on

Diese Präsentation gibt eine Einführung in die Google AppEngine für Java.

Diese Präsentation gibt eine Einführung in die Google AppEngine für Java.

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

  • Be the first to like this

No Downloads
Views
Total Views
605
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction into Google App EngineHalil-Cem Gürsoyadesso AGTw @hgutwitG+ http://goo.gl/hljRS21.11.11
  • 2. The speaker► More then 12 years development in Java► Before getting a “consulting developer“ some years research (calculation of RNA folding with genetic algorithms using Pascal)► Senior Software Engineer at adesso AG, Dortmund► Speaker on some conferences: (W)-JAX, DOAG, HerbstCampus etc.► Mostly EAI/SOA projects... with plain good old Java / JEE► … and a bit Scala21.11.11 2 CloudConf 2011 - GAE/J
  • 3. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 3 CloudConf 2011 - GAE/J
  • 4. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 4 CloudConf 2011 - GAE/J
  • 5. The Google App Engine► A classic PaaS► No control over the OS► A runtime for Web Application► At the start, only Python was supported► Since 2009 Java, now Google Go > Java-Support is limited!21.11.11 5 CloudConf 2011 - GAE/J
  • 6. Talking about GAE/J► GAE/J = JRE6 > A Sandbox with restrictions► Supports out of the box > Servlet API 2.4 (*) > JSF 1.1, 2.0 (*) > JSP (*) > JDO 2.3 (?!) > JPA 1(*)► Support for Google Services und API‘s21.11.11 6 CloudConf 2011 - GAE/J
  • 7. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 7 CloudConf 2011 - GAE/J
  • 8. Persistence in GEA► Default Store is a Key-Value NoSQL-DB (Google BigTable)► JDO and JPA supported… partially > ORM via DataNucleus v1.1► JDO is still better documented than JPA in the GAE/J documentation► You can use the low level API for Google BigTable► You can use in-memory Databases► Enhancement of Entity Classes needed (good to know for Build)► MySQL-Support is upcoming (now in Beta, chosen accounts)21.11.11 8 CloudConf 2011 - GAE/J
  • 9. GAE - JPA► Transactional behavior is configured in the persistence.xml<persistence-unit name="transactions-optional"> <provider>org.datanucleus.store.appegine.jpa.DatastorePersistenceProvider </provider> <properties> <property name="datanucleus.NontransactionalRead” value="true" /> <property name="datanucleus.NontransactionalWrite” value="true" /> <property name="datanucleus.ConnectionURL” value="appengine" /> </properties></persistence-unit>21.11.11 9 CloudConf 2011 - GAE/J
  • 10. More on JPA► @ManyToMany is not supported► Join-Queries are not supported► You can not use > InheritanceType.SINGLE_TABLE > InheritanceType.JOINED► No support for aggregation queries > group by, having, sum, avg, min, max► No support for polymorphic queries21.11.11 10 CloudConf 2011 - GAE/J
  • 11. More to know about limits in JPA► Resultsets are not initialized, you have to do it! > resultSet.size();► Id Fields: don’t use long type > Unsupported primary key type: long► GenerationType.TABLE results in an error > javax.persistence.PersistenceEception: Transaction is still active.► Solution @Id GeneratedValue(strategy = GenerationType.IDENTITY) private com.google.appengine.api.datastore.Key key;21.11.11 11 CloudConf 2011 - GAE/J
  • 12. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 12 CloudConf 2011 - GAE/J
  • 13. Other Limits in GAE► The “JRE Whitelist” defines all supported JRE classes > http://code.google.com/intl/de-DE/appengine/docs/java/jrewhitelist.html > Only ~ 1500 classes► Your application should not > …start own threads (due to that, no Akka-Support if you use Scala) > …write files > …open network sockets21.11.11 13 CloudConf 2011 - GAE/J
  • 14. Will it play?► Overview about the support for frameworks and JVM languages: > http://code.google.com/p/googleappengine/wiki/WillItPlayInJava► No support for… > JAX-RPC > JDBC > JMS (!) > JNDI > …and much more!► A little bit support for JAX-WS, good support for REST► Scala, Groovy (look @ Gealky) etc. supported► Spring Core is supported21.11.11 14 CloudConf 2011 - GAE/J
  • 15. Spring support► Not all Spring Projects are supported - core is► Running: Spring MVC with Spring beans► Setup: JAR files into /WAR/WEB-INF/lib and add to Classpath► Example: <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/springgae/*</url-pattern> </servlet-mapping>21.11.11 15 CloudConf 2011 - GAE/J
  • 16. Why?21.11.11 16 CloudConf 2011 - GAE/J
  • 17. GAE and Android► Tight integration of GAE and Android via Android Cloud to Device Framework (C2DM) > http://code.google.com/android/c2dm/► C2DM enables Android Apps to use all GAE as the backend► ...e.g. use the GAE Data Store► ...e.g. send Mails from GAE► Example: Chrome to Phone-Extension and App > http://code.google.com/p/chrometophone/21.11.11 17 CloudConf 2011 - GAE/J
  • 18. More Reasons…► No one enforces you to use JPA or JDO on GAE! > Use the native Interface > You have a free, full distributed, NoSQL Key-Value DB!► Transparent scaling of your app > You have not to care about how many instances you have to start and then to start > GAE is not Beanstalk / CloudFoundry > In Beanstalk / CloudFoundry you have still to take care about LB and your infrastructure21.11.11 18 CloudConf 2011 - GAE/J
  • 19. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 19 CloudConf 2011 - GAE/J
  • 20. Quota► GAE with limits w/o fee► New Billing System to overcome limits► Quota exceeded: HTTP 403 Errors or Exceptions (bad if you not aware of quota)► Per minute quota = aprox. 500 Req./min.21.11.11 20 CloudConf 2011 - GAE/J
  • 21. Measured Performance21.11.11 21 CloudConf 2011 - GAE/J
  • 22. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 22 CloudConf 2011 - GAE/J
  • 23. Build-Tools► Ant is supported > Enhancement of entity classes > Deployment► Maven > Maven2 plug-in available (http://code.google.com/p/maven-gae-plugin/ ) > Archetypes for JSP, GWT and Wicket-Projects > GAE SDK not available via Maven repositories anymore (?)21.11.11 23 CloudConf 2011 - GAE/J
  • 24. Agenda► Google App Engine► Persistence in Google App Engine► Limits in GAE/J► Quota and Performance► Build-Tools► Hands-On21.11.11 24 CloudConf 2011 - GAE/J
  • 25. Hands on?► Some slides to tell you that is needed► Ask me afterwards for a live demo► Get ready...21.11.11 25 CloudConf 2011 - GAE/J
  • 26. Getting started► Google App Engine Account activated? > You need your mobile number for activation► Eclipse with the Google Plug-in► Manual installation via Eclipse Market Place > http://marketplace.eclipse.org/content/google-plugin-eclipse► SDK with CLI and more resources at GAE-Homepage – http://code.google.com/appengine/21.11.11 26 CloudConf 2011 - GAE/J
  • 27. Create new project21.11.11 27 CloudConf 2011 - GAE/J
  • 28. Hello World21.11.11 28 CloudConf 2011 - GAE/J
  • 29. Test in the local sandbox► You can test your application in the local sandbox► http://localhost:8888/[your_project_name]21.11.11 29 CloudConf 2011 - GAE/J
  • 30. Create your cloud app► Register your application in your GAE account► https://appengine.google.com/ -> “Create Application”► Choose an Application Identifier and an Application Name (note them!)► Choose the Authentication Option > Default is “Open to all Google Account users” > User can sign in into your app using their Google Account► Choose Storage Option > High Replication (default) vs. Master/Slave > High Replication is “eventualy consistent” (latency in writes)21.11.11 30 CloudConf 2011 - GAE/J
  • 31. Deployment► Choose „Google – Deploy to App Engine“ from context menu► Provide your App Engine data21.11.11 31 CloudConf 2011 - GAE/J
  • 32. Calling now on the cloud► Call your Application now on the cloud!► [appid].appspot.com/[servletname] (Servletname = Projectname by default)► The servlet should greet you…► Check your Application-Dashboard – https://appengine.google.com/21.11.11 32 CloudConf 2011 - GAE/J
  • 33. Thank you for your attention!info@adesso.dewww.adesso.de

×