webtech googleapps
DESCRIPTION
TRANSCRIPT
Google App Engine
N. Koprowski, W. Sanchez, K. Thissen, M. Tryniecki,
A. Klos
Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/111The slides are licensed under a
Creative Commons Attribution 3.0 License
Cloud Computing
Resources and software on demand
Providers offer APIs
Platform as a service
Software as a Service
Infrastructure as a service
Web Technologies2
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
Web Technologies3
General Features
Automatic scaling and load balancing
Malfunction detection & Backup
Managing of cache and databases
SDK for local development and testing
Persistent data storage
Web Technologies4
Programming Features
Supports Java and Python
APIs for additional features
Sandbox environment
Each environment provides standard protocols and common technologies, but there are restrictions
Web Technologies5
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
Web Technologies6
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)
Web Technologies7
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
Web Technologies8
Distributed data storage service
SQL-like syntax (no JOINS)
Communication over a provided API
No traditional relational database
Datastore entities are schemaless
Google Datastore
Web Technologies9
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
Web Technologies10
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
Web Technologies11
Comparison – Amazon Web Services
Amazon:
• Infrastructure as a Service
• Wide support for languagesand databases
• Deployment is more akin to using single servers
Web Technologies12
Google:
• Platform as a Service
• Only supports a limited range of languages, APIs, frameworks
• Simple deployment
Comparison – Amazon Web Services
Amazon:
• Supports relational databases
• Higher hosting costs
-> Flexible, but higher costs
Web Technologies13
Google:
• No relational database
• Lower hosting costs and a free quota
• Easier to write scalableapplications
-> Low costs and easy to use, but limited
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
Web Technologies14