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

Webtech googleapps

  • 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 inGAE  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 – AmazonWeb 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 – AmazonWeb 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