Google App Engine

quicksandwalleyeInternet and Web Development

Oct 31, 2013 (3 years and 9 months ago)

83 views

Introduction to


Google App Engine

Chien
-
Chung
Shen

CIS, UD

cshen@cis.udel.edu

Google App Engine Overview


What is Google App Engine?


r
untime platform that provides web application hosting, data
storage, and high
-
speed networking


infrastructure (datacenters) available at Google


their servers + storage


Why it is GREAT?


Does one thing well: running web apps


App Engine handles HTTP(S) requests, nothing else


Simple app configuration


Everyingthing

is built to scale


Automatic Scaling to Application Needs


Secure


pay for what you use



Google App Engine Features


Google

App

Engine

makes

it

easy

to

build

an

application

that

runs

reliably,

even

under

heavy

load

and

with

large

amounts

of

data


dynamic web serving, with full support for common
web technologies


persistent storage with queries, sorting and
transactions


automatic scaling and load balancing


APIs for authenticating users and sending email
using Google Accounts


a fully featured local development environment
that simulates Google App Engine on your computer

The Runtime Environment


Java environment


Java 6 Virtual Machine (JVM)


Java
Servlet

standard interface for interacting with the
application server


Python Environment


Python 2.7


Go


Java or python?


Python: powerful python syntax, library, shorter code


Java: can use Java Data Objects (JDO) and Java
Persistance

API (JPA)




Google App Engine Architecture

The Sandbox


Applications

run

in

a

secure

environment

that

provides

limited

access

to

the

underlying

OS


Benefit? will NEVER affect other applications on the same
server


Cannot
spawn additional processes or threads


Cannot make arbitrary network connections


Only read its own code and resource files and cannot create
or modify files


Examples of the limitations of the secure sandbox


An

application

can

only

access

other

computers

on

the

Internet

through

the

provided

URL

fetch

and

email

services
.

Other

computers

can

only

connect

to

the

application

by

making

HTTP

(or

HTTPS)

requests

on

the

standard

ports


Applications

cannot

write

to

the

file

system

in

any

of

the

runtime

environments



Datastore


App

Engine

provides

a

distributed

NoSQL

data

storage

service

that

features

a

query

engine

and

transactions


datastore

is not like a traditional relational database


Data objects have a set of properties


Queries can retrieve entities of a given kind filtered and sorted by
the values of the properties


Datastore

entities are "
schemaless
."



The structure of data entities is provided by and enforced by your
application code


datastore

provides ACID (
Atomicity, Consistency,
Isolation,
Durability
)

transactions using optimistic
concurrency control


datastore

implements transactions across its
distributed network using "entity groups."



Google Accounts


App

Engine

supports

integrating

an

app

with

Google

Accounts

for

user

authentication


your

application

can

allow

a

user

to

sign

in

with

a

Google

account,

and

access

the

email

address

and

displayable

name

associated

with

the

accoun


lets

the

user

start

using

your

application

faster


no

need

to

create

a

new

account


can

judge

whether

the

current

user

is

a

registered

administrator

for

the

application,

which

make

it

easy

to

implement

admin
-
only

areas

of

your

site



App Engine Services


App

Engine

provides

a

variety

of

services

that

enable

you

to

perform

common

operations

when

managing

your

application


URL

Fetch


Mail


Memcache


high

performance

in
-
memory

key
-
value

cache

that

is

accessible

by

multiple

instances

of

your

application


Image

Manipulation


Extensible

Messaging

and

Presence

Protocol

(XMPP)


for

real
-
time

communication

such

as

instant

messaging


Task

Queues


keep

track

of

tasks

to

handle

in

the

background