GAE Architecture

Front-End: Load Balancing &
Request Forwarding
Static Files: Serving static files,
i.e. images/CSS/JS
AppServer: Process requests &
call services
Datastore: central place for data
persistence


Because must run in sandbox for app security (other apps dont hack into yours)
>>no local file, no system call, no socket connection
<< these services help accommodate for the loss of this
Java
how Java concepts map down to GAE
Datastore API
- Storing data and manipulation
- Based on Bigtable
- Not a relational database
- GQL (Google Query Language)
- For Java options - use JDO or JPA or native Google App Engine API
- Package com.google.appengine.api.datastore
Memcache
- Faster than Datastore
- Storage on memory rather on disk
- Arbitrary key-value pair mapping
- implements JCache interface
- ?(1) MB limit per entry
- Free quota (varies --see current rules) around 8.6M/day, 800 request/sec
- Package com.google.appengine.api.memcache
User Service
- Using google accounts for authentication
- @gmail.com address
- Apps for Domain
- Admin Privileges
- Package com.google.appengine.api.users
URLFetch Service
Mail Service
- sending mail from your application
- Package com.google.appengine.api.mail
• com.google.appengine.api.datastore
XMPP Service
- sending/receiving XMPP-compatible instant messages
Task Queues
- for invoking background processes
Images
- for image manipulation
- uses Picasa
- Package com.google.appengine.api.images
Cron Jobs
- scheduled tasks on defined time
|