SlideShare una empresa de Scribd logo
1 de 78
Google App Engine for Java ,[object Object],[object Object],[object Object]
Why do I qualify? ,[object Object],[object Object],[object Object],[object Object],[object Object]
What is cloud computing for me? What is the Google App Engine? Development for GAE with Java Persistence without SQL Tools - A fool with a tool is still a fool App Engine Services Testing on the cloud And of course coding
A typical system setup OS +Application Server + DB
You need scaling... Application Server Database Application Server Application Server
So you are fine, right?...
Designed for peek consumption Time Utilization
Cloud computing tries to solve this
What is a cloud computing not? Putting one or more computer in the internet is not necessary cloud computing That is just a server in the internet
What is a cloud computing? Cloud computing is Web-based processing, whereby shared resources, software, and information are provided to computers and other devices (such as smartphones) on demand over the Internet. Blabla, this means nothing...
Cloud: ....some kind of abstracting from the hardware and providing resources on demand Time
What types of cloud computing do we have? Infrastructure as a Service -> Amazon Platform as a Service -> Google App Engine Software as a service -> Salesforce.com, MyERP
Google App Engine Scalable Infrastructure GAE allows you to host webapplications on the Google infrastructure.
Difference to Amazons  Scalable Infrastructure Amazon provides virtual servers App Engine provides an interface to program against  App Engine give no access to the underlying system / hardware
Run your app on the Google Infrastructure Scalable Infrastructure
Google handles the infrastructure, e.g. hardware failures, security patches, OS upgrades
Sometimes there are issues
and the usage of App Engine is free…. within limits in any case you only pay for what your use
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 inbound and outbound traffic. 100 hits per secs (non-billing) and 500 for billing enabled applications http://code.google.com/intl/en-EN/appengine/docs/billing.html
Real Costs Example - Game ,[object Object],[object Object]
How does Google run thousands of thousands Java apps at the same time? They don’t… applications which are not actively used will be frozen and saved to big table    Initial startup time
App Engine Architecture App Engine FrontEnd App Engine FrontEnd App Engine FrontEnd AppServer AppServer AppServer Load Balancer
So it scales but what about Platform as a service?
Writing Java Webs application is hard from Guillaume Laforge and Patrick Chanezon http://www.slideshare.net/glaforge/google-app-engine-java-groovy-baby
To write a Java Web application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
...developing a Java Web application from scratch is really, really slow due to the initial setup required
Google App Engine –  Programming Languages Python   Java-isch Scala Groovy JRuby JPython … Still some issues with Grails....
Servlets and JSPs 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
Possible Web Frameworks on GAE Basically all Java Web frameworks, e.g. JSP, Servlets based GWT, JSF, Struts, Wicket
App Engine can be more then just a web application platform Scalable Infrastructure Doesn‘t have to be a webapplication, can be a backend for Android or iPhones... Can be used to do some serious number crunching
Access ,[object Object],[object Object]
Develop according to Java standards from Guillaume Laforge and Patrick Chanezon http://www.slideshare.net/glaforge/google-app-engine-java-groovy-baby
Session Support Turned off by default  appengine-web.xml <sessions-enabled>true</sessions-enabled> Persistent and distributed
Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Development Tools
DevApp Server Scalable Infrastructure Emulates the Google App Engine, its service and restrictions Based on Jetty
Eclipse Scalable Infrastructure
Demo – A new project
Deployment Scalable Infrastructure Run your application on  [email_address]  or on your own domain Command line or Eclipse based
Logging ,[object Object],[object Object]
Performance
Be fast ,[object Object],[object Object],[object Object],[object Object]
Example for recent performance work Byte code used to enhanced dynamically, now App Engine does this this statically. JIT  and GC improvements Example Work on reflection Data from Google I/O 2010
Limits
Limits  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Compartibility is increasing Whitelist is growing. More and more libraries are supported
Datastore
Storing data ,[object Object]
Datastore ,[object Object],[object Object],[object Object]
Datastore ,[object Object],[object Object],[object Object],[object Object]
Datastore ,[object Object]
Data Store ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Datastore via JDO  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Indexes ,[object Object],[object Object],[object Object]
Indexes ,[object Object],[object Object]
Other storage possibilities Blobstore Memcache
Memcache ,[object Object],[object Object],[object Object],[object Object]
Blogstore ,[object Object],[object Object],[object Object],[object Object],[object Object]
App Engine  Services
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],API’s
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],URL Fetch
[object Object],[object Object],[object Object],Image Service
[object Object],[object Object],[object Object],Task Queue
Demos Lets write a chat bot for the App Engine using XMPP -  Extensible Messaging and Presence Protocol
Demos Lets send out emails...
Demos Receive email
Testing...
Testing Local Testing - equal functionality as the cloud - not equal in scale -  LocalServiceTestHelper(….services to be tested) Cloud Testing - serving HTTP requests - scalable and fast - all limits apply which apply for standard application -
Local Testing Similar to standard Java testing - JUnit, TestNG, Selenium Difference: Some classes require a certain App Engine setup, e.g. the datastore AppEngine Testing API
API.Proxy Register your own class as proxy for the GAE API calls and interfere them.
GAE 1.4
App Engine Recent Updates Running JVM (3 instances) WarmupRequest via appengine-web.xml The Channel API is now available for all users.  Task Queue released,  Deadline for Task Queue and Cron requests has been raised to 10  minutes.  Added a low-level AsyncDatastoreService for making calls to the datastore    asynchronously.  The whitelist has been updated to include all classes from javax.xml.soap.  Source: http://groups.google.com/group/google-appengine/browse_thread/thread/0f90ef8dda3b8400
Google Cloud for businesses 99.9 % SLA pay 8 Euros per user up to a maximum of 1000 Euro (==125 Users) Hosted SQL SSL (Secure Sockets Layer) for the domain Multi-tendency
Leverage the greatest IT infrastructure of the world Fast development of new functions Just to great to ignore Google App Engine
Photo credits  Please add  http://www.sxc.hu/photo/  to the number if not specified ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you ,[object Object],[object Object],[object Object],[object Object]
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/ http://www.vogella.de/articles/GoogleAppEngine/article.html
License & Acknowledgements ,[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App Engine
Chris Schalk
 
Google app engine - Overview
Google app engine - OverviewGoogle app engine - Overview
Google app engine - Overview
Nathan Quach
 
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Naga Rohit
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introduction
rajsandhu1989
 

La actualidad más candente (20)

Gentle App Engine Intro
Gentle App Engine IntroGentle App Engine Intro
Gentle App Engine Intro
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App Engine
 
Google app engine - Overview
Google app engine - OverviewGoogle app engine - Overview
Google app engine - Overview
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you have
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Google app engine
Google app engineGoogle app engine
Google app engine
 
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google App Engine (Introduction)
Google App Engine (Introduction)Google App Engine (Introduction)
Google App Engine (Introduction)
 
Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest Features
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Google app engine
Google app engineGoogle app engine
Google app engine
 
Google App engine
Google App engineGoogle App engine
Google App engine
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introduction
 
Google App Engine - Overview #3
Google App Engine - Overview #3Google App Engine - Overview #3
Google App Engine - Overview #3
 
Google Application Engine
Google Application EngineGoogle Application Engine
Google Application Engine
 

Similar a Google App Engine for Java

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
Tony Frame
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
ikailan
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
Vijayan Reddy
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
vstorm83
 

Similar a Google App Engine for Java (20)

Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Google Cloud Platform
Google Cloud Platform Google Cloud Platform
Google Cloud Platform
 
The 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Google App Engine - Java Style
Google App Engine - Java StyleGoogle App Engine - Java Style
Google App Engine - Java Style
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google App Engine With Java And Groovy
Google App Engine With Java And GroovyGoogle App Engine With Java And Groovy
Google App Engine With Java And Groovy
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 

Más de Lars Vogel

Android design and Custom views
Android design and Custom views Android design and Custom views
Android design and Custom views
Lars Vogel
 

Más de Lars Vogel (20)

Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020
 
Eclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source projectEclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source project
 
Android design and Custom views
Android design and Custom views Android design and Custom views
Android design and Custom views
 
How to become an Eclipse committer in 20 minutes and fork the IDE
How to become an Eclipse committer in 20 minutes and fork the IDEHow to become an Eclipse committer in 20 minutes and fork the IDE
How to become an Eclipse committer in 20 minutes and fork the IDE
 
Building beautiful User Interface in Android
Building beautiful User Interface in AndroidBuilding beautiful User Interface in Android
Building beautiful User Interface in Android
 
What is so cool about Android 4.0
What is so cool about Android 4.0What is so cool about Android 4.0
What is so cool about Android 4.0
 
What is so cool about Android 4.0?
What is so cool about Android 4.0?What is so cool about Android 4.0?
What is so cool about Android 4.0?
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
Eclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse DayEclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse Day
 
Android C2DM Presentation at O'Reilly AndroidOpen Conference
Android C2DM Presentation at O'Reilly AndroidOpen ConferenceAndroid C2DM Presentation at O'Reilly AndroidOpen Conference
Android C2DM Presentation at O'Reilly AndroidOpen Conference
 
Android Overview (Karlsruhe VKSI)
Android Overview (Karlsruhe VKSI)Android Overview (Karlsruhe VKSI)
Android Overview (Karlsruhe VKSI)
 
Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11
 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
 
Android Cloud to Device Messaging with the Google App Engine
Android Cloud to Device Messaging with the Google App EngineAndroid Cloud to Device Messaging with the Google App Engine
Android Cloud to Device Messaging with the Google App Engine
 
Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models
 
Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010
 
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ Rheinjug
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Google App Engine for Java

  • 1.
  • 2.
  • 3. What is cloud computing for me? What is the Google App Engine? Development for GAE with Java Persistence without SQL Tools - A fool with a tool is still a fool App Engine Services Testing on the cloud And of course coding
  • 4. A typical system setup OS +Application Server + DB
  • 5. You need scaling... Application Server Database Application Server Application Server
  • 6. So you are fine, right?...
  • 7. Designed for peek consumption Time Utilization
  • 8. Cloud computing tries to solve this
  • 9. What is a cloud computing not? Putting one or more computer in the internet is not necessary cloud computing That is just a server in the internet
  • 10. What is a cloud computing? Cloud computing is Web-based processing, whereby shared resources, software, and information are provided to computers and other devices (such as smartphones) on demand over the Internet. Blabla, this means nothing...
  • 11. Cloud: ....some kind of abstracting from the hardware and providing resources on demand Time
  • 12. What types of cloud computing do we have? Infrastructure as a Service -> Amazon Platform as a Service -> Google App Engine Software as a service -> Salesforce.com, MyERP
  • 13. Google App Engine Scalable Infrastructure GAE allows you to host webapplications on the Google infrastructure.
  • 14. Difference to Amazons Scalable Infrastructure Amazon provides virtual servers App Engine provides an interface to program against App Engine give no access to the underlying system / hardware
  • 15. Run your app on the Google Infrastructure Scalable Infrastructure
  • 16. Google handles the infrastructure, e.g. hardware failures, security patches, OS upgrades
  • 18. and the usage of App Engine is free…. within limits in any case you only pay for what your use
  • 19. 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 inbound and outbound traffic. 100 hits per secs (non-billing) and 500 for billing enabled applications http://code.google.com/intl/en-EN/appengine/docs/billing.html
  • 20.
  • 21. How does Google run thousands of thousands Java apps at the same time? They don’t… applications which are not actively used will be frozen and saved to big table  Initial startup time
  • 22. App Engine Architecture App Engine FrontEnd App Engine FrontEnd App Engine FrontEnd AppServer AppServer AppServer Load Balancer
  • 23. So it scales but what about Platform as a service?
  • 24. Writing Java Webs application is hard from Guillaume Laforge and Patrick Chanezon http://www.slideshare.net/glaforge/google-app-engine-java-groovy-baby
  • 25.
  • 26. ...developing a Java Web application from scratch is really, really slow due to the initial setup required
  • 27. Google App Engine – Programming Languages Python Java-isch Scala Groovy JRuby JPython … Still some issues with Grails....
  • 28. Servlets and JSPs 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
  • 29. Possible Web Frameworks on GAE Basically all Java Web frameworks, e.g. JSP, Servlets based GWT, JSF, Struts, Wicket
  • 30. App Engine can be more then just a web application platform Scalable Infrastructure Doesn‘t have to be a webapplication, can be a backend for Android or iPhones... Can be used to do some serious number crunching
  • 31.
  • 32. Develop according to Java standards from Guillaume Laforge and Patrick Chanezon http://www.slideshare.net/glaforge/google-app-engine-java-groovy-baby
  • 33. Session Support Turned off by default appengine-web.xml <sessions-enabled>true</sessions-enabled> Persistent and distributed
  • 34.
  • 36. DevApp Server Scalable Infrastructure Emulates the Google App Engine, its service and restrictions Based on Jetty
  • 38. Demo – A new project
  • 39. Deployment Scalable Infrastructure Run your application on [email_address] or on your own domain Command line or Eclipse based
  • 40.
  • 42.
  • 43. Example for recent performance work Byte code used to enhanced dynamically, now App Engine does this this statically. JIT and GC improvements Example Work on reflection Data from Google I/O 2010
  • 45.
  • 46. Compartibility is increasing Whitelist is growing. More and more libraries are supported
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. Other storage possibilities Blobstore Memcache
  • 57.
  • 58.
  • 59. App Engine Services
  • 60.
  • 61.
  • 62.
  • 63.
  • 64. Demos Lets write a chat bot for the App Engine using XMPP - Extensible Messaging and Presence Protocol
  • 65. Demos Lets send out emails...
  • 68. Testing Local Testing - equal functionality as the cloud - not equal in scale - LocalServiceTestHelper(….services to be tested) Cloud Testing - serving HTTP requests - scalable and fast - all limits apply which apply for standard application -
  • 69. Local Testing Similar to standard Java testing - JUnit, TestNG, Selenium Difference: Some classes require a certain App Engine setup, e.g. the datastore AppEngine Testing API
  • 70. API.Proxy Register your own class as proxy for the GAE API calls and interfere them.
  • 72. App Engine Recent Updates Running JVM (3 instances) WarmupRequest via appengine-web.xml The Channel API is now available for all users. Task Queue released, Deadline for Task Queue and Cron requests has been raised to 10 minutes. Added a low-level AsyncDatastoreService for making calls to the datastore   asynchronously. The whitelist has been updated to include all classes from javax.xml.soap. Source: http://groups.google.com/group/google-appengine/browse_thread/thread/0f90ef8dda3b8400
  • 73. Google Cloud for businesses 99.9 % SLA pay 8 Euros per user up to a maximum of 1000 Euro (==125 Users) Hosted SQL SSL (Secure Sockets Layer) for the domain Multi-tendency
  • 74. Leverage the greatest IT infrastructure of the world Fast development of new functions Just to great to ignore Google App Engine
  • 75.
  • 76.
  • 77. 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/ http://www.vogella.de/articles/GoogleAppEngine/article.html
  • 78.