Webtech googleapps

14
Google App Engine N. Koprowski, W. Sanchez, K. Thissen, M. Tryniecki, A. Klos Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/11 1 The slides are licensed under Creative Commons Attribution 3.0 Licen

description

 

Transcript of Webtech googleapps

Page 1: Webtech googleapps

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

Page 2: Webtech googleapps

Cloud Computing

Resources and software on demand

Providers offer APIs

Platform as a service

Software as a Service

Infrastructure as a service

Web Technologies2

Page 3: Webtech googleapps

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

Page 4: Webtech googleapps

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

Page 5: Webtech googleapps

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

Page 6: Webtech googleapps

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

Page 7: Webtech googleapps

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

Page 8: Webtech googleapps

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

Page 9: Webtech googleapps

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

Page 10: Webtech googleapps

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

Page 11: Webtech googleapps

Programming Example Create Google Account Download and install Google Plugin for Eclipse 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

Page 12: Webtech googleapps

Comparison – Amazon Web ServicesAmazon:

• Infrastructure as a Service

• Wide support for languages and 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

Page 13: Webtech googleapps

Comparison – Amazon Web ServicesAmazon:

• 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 scalable applications

-> Low costs and easy to use, but limited

Page 14: Webtech googleapps

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

Web Technologies