1. Google App Engine
N. Koprowski, W. Sanchez, K. Thissen, M. Tryniecki,
A. Klos
The slides are licensed under a
1 Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/11 Creative Commons Attribution 3.0 License
2. Cloud Computing
Resources and software on demand
Providers offer APIs
Platform as a service
Software as a Service
Infrastructure as a service
2 Web Technologies
3. Google App Engine – Idea/Concept
Developing & hosting web applications
Run web applications on Google's Cloud infrastructure
Free up to a certain quota of used resources
Metered bandwidth/CPU time/storage use
3 Web Technologies
4. General Features
Automatic scaling and load balancing
Malfunction detection & Backup
Managing of cache and databases
SDK for local development and testing
Persistent data storage
4 Web Technologies
5. Programming Features
Supports Java and Python
APIs for additional features
Sandbox environment
Each environment provides standard protocols and common
technologies, but there are restrictions
5 Web Technologies
6. General Restrictions
Datastore: Limitation of inequality filters
Answer a request in 30 seconds
No saving of environment between requests
Filesystem: read-only access
Code execution only via HTTP request
SSL/HTTPS: only via *.appspot.com domains
6 Web Technologies
7. Programming Restrictions
Typical restrictions of a sandbox
Java: only subset of classes from standard JRE
Java applications cannot create new threads
Python modules: only pure Python
(no C)
7 Web Technologies
8. Java/Python differences in GAE
Java:
Big set of advanced libraries available
Datastore: Standard method is to use JDO or JPA
Flexibility: The possibility of running JVM bytecode made by
different languages
Python:
Lacks third-party libraries
Specific API for Google Datastore
More support and extensive knowledge base available
8 Web Technologies
9. Google Datastore
Distributed data storage service
SQL-like syntax (no JOINS)
Communication over a provided API
No traditional relational database
Datastore entities are schemaless
9 Web Technologies
10. IDEs - Eclipse
Plugin available for Eclipse:
Create empty app engine projects
Test applications with local sandbox
Deployment
Compatible with Google Web Toolkit
As-you-type validation
Ant is not needed
10 Web Technologies
11. Programming Example
Creating a new Google Project
Testing the Project
Test run on local server
Modifying the Project
Working with the Datastore
Deploying the Project
Creating the Application ID
Deploying on Appengine
11 Web Technologies
12. Comparison – Amazon Web Services
Google: Amazon:
• Platform as a Service • Infrastructure as a Service
• Only supports a limited • Wide support for languages
range of languages, APIs, and databases
frameworks
• Simple deployment • Deployment is more akin to
using single servers
12 Web Technologies
13. Comparison – Amazon Web Services
Google: Amazon:
• No relational database • Supports relational
databases
• Lower hosting costs and a
free quota • Higher hosting costs
• Easier to write scalable
applications
-> Low costs and easy to use, -> Flexible, but higher costs
but limited
13 Web Technologies
14. Literature
http://code.google.com/appengine/ is the Google App Engine
official website
Google provides extensive articles, tutorials, videos and
documentation both for Python and Java with and without the use
of the Eclipse IDE which can be found on
http://code.google.com/appengine/articles/
http://code.google.com/appengine/docs/
http://code.google.com/appengine/community.html
http://www.youtube.com/user/GoogleDevelopers
14 Web Technologies