CS651 | Web Systems
  • outline
  • projects
  • syllabus
  • links

GAE Architecture w/ some services - generic

 

 

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

moreThe runtime environment includes the interpreter that executes the code (either the
Python interpreter or the Java virtual machine), the application's memory, a read-only filesystem with the application's resource files, and APIs to the App Engine services.

The runtime environment also includes the request handler API, which defines how
the server and the handler communicate information about the request and the response,
and how the handler emits messages to the App Engine logging system.

The details differ between the Python and Java environments, but can involve environment
variables and the system input and output streams.

 

 

 

 

services

 

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

 

 

 

 

 

 

 

 

 

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

  • Alternative as no Sockets
  • Load external URL
  • Asynchronous support
  • HTTP/HTTPS
  • Max 10 second response (see current stats http://code.google.com/appengine/docs/java/urlfetch/)
  • Max 1MB data (see current stats http://code.google.com/appengine/docs/java/urlfetch/)
  • Package com.google.appengine.api.urlfetch

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

 

cs651:web systems

  • home
  • outline
  • projects
  • syllabus
  • links