Google App Engine for Java (GAE/J)

4,069 views

Published on

Overview of the Google App Engine with a focus on the Java side.

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,069
On SlideShare
0
From Embeds
0
Number of Embeds
85
Actions
Shares
0
Downloads
85
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Google App Engine for Java (GAE/J)

  1. 1. Google App Engine for Java <ul><li>Lars Vogel Ralf Gueldemeister Venkiteswaran Balakrishnan </li></ul>
  2. 2. Google App Engine Scalable Infrastructure Commonly referred to as “Platform as a Service”, the GAE allows you to host webapplications in the Google infrastructure.
  3. 3. Scalable Infrastructure You cannot see behind the curtain, GAE provides a fixed set of API to you.
  4. 4. Google App Engine Scalable Infrastructure
  5. 5. Google App Engine - Limits Scalable Infrastructure 10 Applications per User 5 Million Pageviews are free per month. Approx. 6.5 hours of CPU and 1 Gigabyte of traffic. http://code.google.com/intl/en-EN/appengine/docs/billing.html
  6. 6. Google App Engine – Programming Languages Python Java-isch Scala Groovy JRuby JPython …
  7. 7. Webprogramming with Java Servlet vrs. JSP A servlet is a Java class which answers a HTTP request within a web container. JavaServer Pages (JSP) are files which contains HTML and Java code. The web container compiles the JSP into a servlet at the first time of accessing this JSP
  8. 8. Google App Engine – Java Restricts usage of some Java classes, e.g. Threads Allows to use standard Java EE API Provides Low-Level Google API
  9. 9. Data Store <ul><li>Based on BigTable </li></ul><ul><li>Sorted Map, no Joins </li></ul><ul><li>Schemaless </li></ul><ul><li>Transactional </li></ul><ul><li>Low-level APIs </li></ul><ul><li>JDO and JPA </li></ul><ul><li>Blobstore </li></ul>
  10. 10. Datastore via JDO <ul><li>Data Classes </li></ul><ul><li>@PersistenceCapable public class Employee {     @Persistent     private String name } </li></ul><ul><li>PersistenceManager </li></ul><ul><li>PersistenceManager pm = PMF.get().getPersistenceManager(); pm.makePersistent(employee); pm.close; </li></ul><ul><li>Retrieval and Queries </li></ul><ul><li>employee = pm.getObjectById(Employee.class, key); Query query = pm.newQuery(Employee.class, “name = :name”); List<Employee> results = (List<Employee>) query.execute(&quot;Smith&quot;); </li></ul><ul><li>Relations </li></ul><ul><li>@Persistent(mappedBy = &quot;employee“) private List<ContactInfo> contactInfoSets; </li></ul>
  11. 11. App Engine Services <ul><li>Caching </li></ul><ul><li>URL Fetching </li></ul><ul><li>Mail </li></ul><ul><li>Instant Messaging </li></ul><ul><li>Image Manipulation </li></ul><ul><li>User Management </li></ul><ul><li>Background Tasks </li></ul>
  12. 12. Possible Web Frameworks on GAE/J Basically all Java Web frameworks, e.g. JSP, Servlets based GWT, JSF, Struts, Wicket
  13. 13. Demo
  14. 14. Hands-on Tutorial The following tutorials give an intro to GAE/J using servlets and JSP‘s http://www.vogella.de/articles/GoogleAppEngineJava/article.html http://code.google.com/intl/de-DE/appengine/docs/java/gettingstarted/ Datastore: http://code.google.com/appengine/docs/java/datastore/ http://code.google.com/appengine/articles/datastore/overview.html http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomed.php http://www.slideshare.net/LucaMarrocco/google-app-engine-java
  15. 15. Photo credits <ul><li>Guy pulling the white wall http://www.sxc.hu/photo/702367 </li></ul><ul><li>Balloon http://www.sxc.hu/photo/566242 </li></ul><ul><li>Open Door http://www.sxc.hu/photo/1228296 </li></ul><ul><li>Paper Chart http://www.sxc.hu/photo/565681 </li></ul><ul><li>Binary http://www.sxc.hu/photo/1072645 </li></ul><ul><li>Footprint http://www.sxc.hu/photo/442696 </li></ul><ul><li>Old Computer http://www.sxc.hu/photo/1028528 </li></ul><ul><li>Carton http://www.sxc.hu/photo/502161 </li></ul><ul><li>Eye http://www.sxc.hu/photo/933394 </li></ul><ul><li>Guitar playing man http://www.sxc.hu/photo/ 894247 </li></ul>
  16. 16. Thank you <ul><li>For further questions: </li></ul><ul><li>[email_address] </li></ul><ul><li>http://www.vogella.de </li></ul><ul><li>http://www.twitter.com/vogella </li></ul>
  17. 17. License & Acknowledgements <ul><li>This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License </li></ul><ul><ul><li>See http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US </li></ul></ul>

×