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 a Creative Commons Attribution 3.0 License

Upload: zajebistyteam

Post on 21-Jan-2015

239 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

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

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 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

Page 13: Webtech googleapps

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

Page 14: Webtech googleapps

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