15-05-2014, 04:56 PM
Google App Engine
Google App.pdf (Size: 866.1 KB / Downloads: 17)
Introduction:
Google App Engine was first released as a beta version in April 2008. It is a
platform for developing and hosting web applications in Google-managed data cen-
ters.Google App Engine is cloud computing technology. Google App Engine is soft-
ware that facilitates the user to run his web applications on Google infrastructure.
It is more reliable because failure of any server will not affect either the performance
of the end user or the service of the Google.It virtualizes applications across multiple
servers and data centers. The objective of research presented in this paper was to
investigate if the Google App Engine cloud service may be used for free of charge
execution of parameter study problems. This WIP paper reports the status of a
Windows based tool, ’Event Coding and Visualization of Data’ (ECOVRD) that
allows real time collaborative video annotation using Google App Engine (GAE)
and XMPP protocol. ECOVRD facilitates classification of live or video recorded
individual and team behavior. Users of ECOVRD can initiate a shared real-time
video annotation with their social network (Google Buzz) via XMPP protocol. The
custom-built publish/subscribe architecture wrapped around GAE’s channel service,
pushes data from the cloud to subscribed clients resulting in real-time collaborative
experience. ECORVD may be the first to successfully leverage the server push
framework of GAE for desktop based video annotation applications. (GAE) for
high-performance parallel computing. A generic master-slave framework enables
fast prototyping and integration of parallel algorithms that are transparently sched-
uled and executed on the Google cloud infrastructure. Experiments demonstrated
good scalability of a Monte Carlo simulation algorithm. Although this approach
produced important speedup, two main obstacles limited its performance: middle-
ware overhead and resource quotas.
Cloud Computing
Cloud computing is the next natural step in the evolution of on-demand information
technology services and products. To a large extent cloud computing will be based
on virtualized resources. The idea of cloud computing is based on a very fundamen-
tal principal of ‘reusability of IT capabilities‘. The difference that cloud computing
brings compared to traditional concepts of Agrid computing., Adistributed com-
puting, Autility computing, or Autonomic computing is to broaden horizons across
organizational boundaries. According to the IEEE Computer Society Cloud Com-
puting is: ”A paradigm in which information is permanently stored in servers on
the Internet and cached temporarily on clients that include desktops, Entertainment
centers, table computers, notebooks, wall computers, handhelds, etc.” Though many
cloud computing architectures and deployments are powered by grids, based on au-
tonomic characteristics and consumed on the basis of utilities billing, the concept
of a cloud is fairly distinct and complementary to the concepts of grid, SaaS , Util-
ity Computing etc. In theory, cloud computing promises availability of all required
hardware, software, platform, applications, infrastructure and storage with an own-
ership of just an internet connection. people can access the information that they
need from any device with an Internet connection.including mobile and handheld
phones.rather than being chained to the desktop. It also means lower costs, since
there is no need to install software or hardware. Cloud computing used to posting
and sharing photos on orkut, instant messaging with friends maintaining and up-
grading business technology.
Cloud Computing: Service Delivery Models
Clouds computing services fall into three categories: applications (Software as a Ser-
vice i.e. SaaS), platform (Platform as a Service i.e. PaaS) and hardware (Infrastruc-
ture as a Service i.e. IaaS). These offered services can be accessed anytime, anywhere
in the world over the internet. Software as a Service: In the SaaS category, there is
delivery of use-specific services over the Internet (such as CRM software and email).
The benefit of SaaS clouds is that clients only focus on the use of the software and
do not have to worry about the cost and effort to keep software licenses current nor
the handling of software updates. The decision on whether or not to deploy software
updates are finalized by the providers themselves.
Google App Engine
So what is Google App Engine? According Kevin Gibbs which is App Engine
Tech Lead, Google App Engine is a system that exposes various pieces of Googles
scalable infrastructure so that you can write server-side applications on top of them
. Simply this is a platform which allows users to run and host their web applications
on Googles infrastructure. These applications are easy to build, easy to maintain
and easy to scale whenever traffic and data storage needed. By using Googles App
Engine, there are no servers to maintain and no administrators needed. The idea
is user just to upload his application and it is ready to serve its own customers.
User has a choice either his product to be served by the free domain appspot.com
or to allow Google Apps to serve it from domain chosen by the customer. Google
also provide the user with the option to limit the access of the application within
the members of his own organization or to share it with the rest of the world. The
starting packet is free of charge and additional obligation. All the user have to do is
to sign up for a free account, and then to develop and publish his own application.
The starting package includes up to 500MB of storage and enough CPU power and
bandwidth to Google App Engine lets you run your web applications on Google’s
infrastructure.
The Application Environment
With this new service provided by Google it is really easy to create reliably appli-
cations which runs under heavy load and which use large amounts of data. Several
key features are included in the environment[1]:
• 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 users computer.
• task queues for performing work outside of the scope of a web request.
• scheduled tasks for triggering events at specified times and regular intervals.
Implementation of Google App Engine applications is done under Python pro-
gramming language. Full Python language support along with most of the Python
standard library comes with standard runtime environment. Currently Python is
the only supported language by Google App Engine, but improvements to support
other languages are in progress
The Sandbox
All user applications operate in a secure environment. This environment has a
limited access to the underlying operating system. Because of these limitations,
App Engine is able to distribute applications web requests across various servers,
which allows starting and stopping the servers to meet traffic demand. The sand-
box separates the application in its own protected and reliable environment which
is independent of the operating system, hardware or the physical location of the
web server. Here are some of the restrictions which are included in the sandbox
environment:
• An application can only access other computers on the Internet through the
provided URL fetch and email services and APIs. Other computers can only
connect to the application by making HTTP (or HTTPS) requests on the
standard ports.
• An application cannot write to the file system and can read files, but only
files uploaded with the application code. The application must use the App
Engine datastore for all data that persists between requests.
• Application code only runs in response to a web request, and must return
response data within 30 seconds. A request handler cannot spawn a sub-
process or execute code after the response has been sent.
The Datastore
A powerful distributed data storage service is present by App Engine. A query
engine and transactional storing accessible through a simple API, both running on
Googles scalable infrastructure is provided with the App Engine datastore. This
Python interface includes a data modeling API and similar to Structured Query
Language (SQL) called GQL. Using these features developing data dependent ap-
plications should not be more difficult than creating it using normal web hosting
service. Similar like distributed web servers which grow with the amount of traffic,
the distributed datastore grows as well when the amount of data raise. Unlike other
traditional datastore, the App Engine datastore supports set of properties in data
objects also known as entities . Like any other data filters, data can be extracted
from tables using queries filtered by property values. Data modeling interface which
can define structure for datastore entities is included in the Python API for the
datastore. This data model specifies if property value must be within a given preset
range or will assign a default value to it if not given. User application supports as
much as needed little structure of data. The Integrity of data is very well guaranteed.
Each application can execute multiple datastore operations in a single transaction
which either succeed or fail. Concurrency control is very well ensured as well. Up-
date to the any single data record occurs if another process is trying to access the
same data record in the same time.