- Google App Engine
Infobox Software
name = Google App Engine
Google App Engine Logo
caption =
developer =Google
released =April 7 ,2008
latest_release_version =
latest_release_date =
operating_system = Any (web based application)
genre = Web development
Version = Beta
website = [http://appengine.google.com appengine.google.com]Google App Engine is a platform for building and hosting
web application s onGoogle Web Server s. It was first released as a beta version inApril 2008 . During its preview release, only free accounts are offered.cite web | url = http://code.google.com/appengine/docs/whatisgoogleappengine.html | title = Google - What is Google App Engine | accessdate = 2008-04-11] According to Google, a free account can use up to 500 MB of persistent storage and enough CPU and bandwidth for about 5 million page views a month. Google has also indicated its intention to eventually provide additional resources for a price. During the preview stage, Google App Engine tries to accommodate sudden surges in traffic, but errors will occur if the quota continues to be exceeded. [http://code.google.com/appengine/articles/quotas.html]upported programming languages and frameworks
At its launch date, the only supported
programming language was Python. A limited version of the Django web framework is available, as well as a custom Google-written web app framework similar toJSP orASP.NET . Google has said that it plans to support more languages in the future. Any Python framework not requiring network access, data storage outside the Google Datastore, file system access, or compiled Python modules written in C or Pyrex should work on the Google App Engine.Fact|date=September 2008Differences from traditional application hosting
Unlike more traditional virtual-machine setups such as Amazon's EC2, Joyent's Accelerator, Slicehost's Slices, or even a simple shared server or dedicated server system, App Engine is a tightly controlled and tightly integrated product that places many restrictions on users. While others allow for the installation and configuration of nearly any *NIX compatible software, AppEngine requires developers to use Python as the programming language and "Datastore" – a version of Google's proprietary
BigTable – for data persistence.calability benefits gained from removing joins
Google App Engine has a SQL-like syntax called "GQL". Select statements in GQL can be performed on one table only. GQL intentionally does not support the Join statement.
One-to-many relationships and many-to-many relationships can be accomplished using ReferenceProperty(). [http://code.google.com/appengine/articles/modeling.html] This shared-nothing approach allows disks to fail without the system failing. [http://highscalability.com/google-architecture]
The where clause of select statements can perform >, >=, <, <= operations on one column only. Therefore, only simple where clauses can be constructed. Switching from a relational database to the Datastore requires a paradigm shift for developers when modeling their data.
App Engine limits the maximum rows returned from an entity get to 1000 rows per Datastore call. Most web database applications use paging and caching, and hence do not require this much data at once, so this is a non-issue in most scenarios.Fact|date=September 2008 If an application needs more than 1,000 records per operation, it can use its own client-side software or an Ajax page to perform an operation on an unlimited number of rows.
Task scheduling is a heavily requested feature by App Engine users for future releases. Batch updates that take longer than a few seconds cannot be executed. Many have speculated that once the free quota restrictions are lifted, Google will introduce support for such operations. [http://code.google.com/p/googleappengine/issues/detail?id=6]
Unlike a relational database such as Oracle, Microsoft SQL Server, MySQL, or PostgreSQL, the Datastore API is not relational in the SQL sense.
Restrictions
*Developers have read-only access to the filesystem on App Engine.
*App Engine can only execute code called from an HTTP request.
*No support for task scheduling in the traditional sense. [http://code.google.com/p/googleappengine/issues/detail?id=6]
*Users may upload arbitrary Python modules, provided they are pure-Python. C and Pyrex modules are not supported.
*Users are unable to download or run scripts on their database informationQuota rates
Wikimedia Foundation. 2010.