Google App Engine,Web Services
Remember that Web 2.0 Google Developer Event we were telling you about? You know the one where you can learn all about web development the Google way? Well there's a reason for you to attend that event for sure now... Google has just released, in private beta, a new service called the Google App Engine. Now you host your web applications on Google's servers and get all the benefits of a fully integrated application environment. But there's a catch... No, it is free. When you sign up you get 500MB of persistant space along with the bandwidth and CPU power for 5 million monthly page views -- specificially 200 million megacycles/day CPU time and 10 GB bandwidth (both ways) per day. You also get a free domain name on the domain. Or you could serve your applications up through your GoogleApps domain and limit access to them. The application environment has the following features: * 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 development environment that simulates Google App Engine on your computer Let's have a look at some of the features of the new Google App Engine:

The Sandbox

Your applications will run in a secure environment that is independent of hardware, OS and physical location of the web server. This environment ensures there is limited access to the underlying operating system, so you can't screw anyone else up. There are several limitations to living in the sandbox: * File System: You cannot write to the file system, but you can read fromit as long as your files were uploaded through your web application. * Contact Your App: Connections are purely though http/https and your application must return a response to a request within a few seconds. Your application's contact out is purely through the API, URL fetch and email services provided.

The Runtime Environment

Ah...there's the catch..The Google App Engine currently only supports Python version 2.5.2. Google says that they will support other languages in the future but this is it for now. There are also several Python modules that are disabled due to core features not supported by the runtime environment. You can upload third party libraries to use as long as they don't try to access these disabled Python modules. In addition, the App Engine also includes the Django web application framework, version 0.96.1.

The Datastore

The datastore is not a traditional relational database. It is Google's own Bigtable database system providing data features such as a query engine and transactions. Google provides a Python API for the datastore which has a data modeling interface that can define a structure for datastore entities.

Google Accounts

Another API provided is one that helps you integrate with Google Accounts eliminating your need to create authentication and authorization capabilities. And if your app is running under your Google Apps domain, it has access to the same features with organization members.

URL Fetch and Mail Services

Want to contact outside web services or use Google Mail? The App Engine provides a URL Fetch Service and a mail service.

Development Workflow

To go along with their application environment, Google is providing a free SDK. The App Engine software development kit (SDK): * Web Server Application: The Web Server emulates the Google App Engine on your local computer * APIs and Libraries: All the APIs and Libraries included in the App Engine * Sandbox: Simulates the secure Sandbox environment * Languages: It's pure Python and runs on any platform including Windows, Mac OS X and Linux * Upload Tool: A tool to easily upload your application to the Google environment * Admin Console: A web-based interface for managing your applications including creating apps, configuring domains, changing app versions, looking at access and error logs and browsing the datastore.

Google App Engine vs Amazon Web Services

Amazon already provides a web services architecture that lets organizations hosts their own web apps. They have a loosely coupled architecture consisting of a number of services that can be "plugged in" by developers. Google Apps on the other hand is much less flexible. You must use their completely integrated end to end environment. Many wonder how Amazon will react to this news. They already have very low prices for their Elastic Compute Cloud infrastructure and Simple Storage Service (S3). With over 330,000 developers, start-ups and organizations using their web services it may be that they aren't really concerned at all.

The Future of Web Applications

In an eWeek article, it is said that "Many analysts say they believe this approach symbolizes the future of computing, where customers will fill their computing and storage needs using a Web-based data center hosted by another vendor rather than buy, provision and configure multiple machines for Web serving and storage themselves. " If Google has anything to do with it, it's very likely. And don't be surprised to see Microsoft come to the party to get their piece of the cake. For now though, if you are interested in trying out the Google App Engine, hurry over to Google. They are limiting the beta to the first 15,000 developers and limiting the number of applications to three.