CS6320:  SW Engineering of Web Based Systems

 

GAE Architecture

 

 

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

more

 

 

 

 

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

 

 

 

Java

java to gae mappinghow 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

 

© Lynne Grewe