2. Agenda
● Google App Engine
● Persistence in Google App Engine
● Limits in GAE/J
● Quota and Performance
● Build-Tools
● Getting started
3. 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
● Fast growing*
● 3B+ Request / Day
● 300k+ Apps, 100k+ Developers
*) Source: David Chandler, Developer Advocate @ Google, DevNexus Talk
4. Talking about GAE/J
● GAE/J = JRE7
● Supports Java 6, but will be dropped!
● A Sandbox with some restrictions
● Supports out of the box many but not all
API's
● Servlet API 2.4, JSF 2.1, JSP + JSTL, JDO, JPA
● Limited support for JPA (no Joins)
● Support for Google Services und API‘s
The Google App Engine
5.
6. ● “JRE Whitelist” = supported JRE classes
● https://developers.google.com/appengine/docs/java/jrewhitelist
● Only ~ 1650 classes
● Your application should not
● …start „own“ threads
– must use a GAE ThreadFactory, limit to 50
● …write (and read non resource ) files
● …open network sockets
Whitelist
7. ● Overview frameworks and languages:
● http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
● No support for…
● JAX-RPC, JDBC, JMS (!), JMX, JNDI...
● JAX-WS
● Only Consumer, no Provider
● Provider via javax.xml.soap & JAXB
● + Scala, Groovy (look @ Gealky), JRuby
● + Spring (Core)
Will it play?
8. Some benefits
● Integration of Google Services and APIs
● SPDY, G+, Analytics, Blogger, Books,
Google Cloud SQL, Maps etc.
● Support of Android apps
● Google Cloud Messaging
● ...and for JavaScript
● Google App Engine Channels
9. Quotas and Limits
● GAE with limits w/o fee
● 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.
11. Build Tools
● Ant supported by Google
● Enhancement of entity classes
● Deployment
● Maven
● Maven plug-in
● Archetypes
● Deployment
● Gradle (Community)
● https://github.com/bmuschko/gradle-gae-plugin
12. How 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 & resources at GAE-Homepage
● http://code.google.com/appengine/
13. Create Application in GAE
● Register your application
● https://appengine.google.com/ -> “Create Application”
● Choose Application Identifier & Name
● Choose the Authentication Option
● Default is “Open to all Google Account users”
● Users can sign using their Google Account
● Choose Storage Option
● High Replication (default) vs. Master/Slave
● High Replication is “eventually consistent” (latency in
writes)