Preface
1. Introducing Google App Engine
The Runtime Environment
The Static File Servers
The Datastore
Entities and Properties
Queries and Indexes
Transactions
The Services
Google Accounts
Task Queues and Cron Jobs
Developer Tools
The Administration Console
Things App Engine Doesn't Do...Yet
Getting Started
2. Creating an Application
Setting Up the SDK
Installing the Python SDK
Installing the Java SDK
Developing the Application
The User Preferences Pattern
Developing a Python App
Developing a Java App
The Development Console
Registering the Application
The Application ID and Title
Setting Up a Domain Name
Google Apps and Authentication
Uploading the Application
Introducing the Administration Console
3. Handling Web Requests
The App Engine Architecture
Configuring the Frontend
Configuring a Python App
Configuring a Java App
Domain Names
App IDs and Versions
Request Handlers
Static Files and Resource Files
Secure Connections
Authorization with Google Accounts
How the App Is Run
The Python Runtime Environment
The Java Runtime Environment
The Sandbox
App Caching
Logging
Quotas and Limits
Request Limits
CPU Limits
Service Limits
Deployment Limits
Billable Quotas
Resource Usage Headers
4. Datast0re Entities
Entities, Keys, and Properties
Introducing the Python Datastore API
Introducing the Java Datastore API
Property Values
Strings, Text, and Blobs
Unset Versus the Null Value
Multivalued Properties
Keys and Key Objects
Using Entities
Getting Entities Using Keys
Inspecting Entity Objects
Saving Entities
Deleting Entities
……
The Java environment runs applications built for the Java 6 Virtual Machine 0VM).An app can be developed using the Java programming language, or most other lan-guages that compile to or otherwise run in the JVM, such as PHP (using Quercus),Ruby (using JRuby), JavaScript (using the Rhino interpreter), Scala, and Groovy. Theapp accesses the environment and services using interfaces based on web industrystandards, including Java servlets and the Java Persistence API (JPA). Any Java tech-nology that functions within the sandbox restrictions can run on App Engine, makingit suitable for many existing frameworks and libraries. Notably, App Engine fully sup-ports Google Web Toolkit (GWT), a framework for rich web applications that lets youwrite all of the app's code——including the user interface——in the Java language, andhave your rich graphical app work with all major browsers without plug-ins.The Python environment runs apps written in the Python 2.5 programming language,using a custom version of CPython, the official Python interpreter. App Engine invokesa Python app using CGI, a widely supported application interface standard. An appli-cation can use most of Python's large and excellent standard library, as well as rich APIsand libraries for accessing services and modeling data. Many open source Python webapplication frameworks work with App Engine, such as Django, web2py, and Pylons,and App Engine even includes a simple framework of its own.The Java and Python environments use the same application server model: a request isrouted to an app server, the application is started on the app server (if necessary) andinvoked to handle the request to produce a response, and the response is returned tothe client. Each environment runs its interpreter (the JVM or the Python interpreter)with sandbox restrictions, such that any attempt to use a feature of the language or alibrary that would require access outside of the sandbox fails with an exception.
……