Google App Engine Brings Python Features to Java

Google continues to churn out releases to its Platform-as-a-service Google App Engine API. Since the beginning of the year, there have been new releases every 4-6 weeks. The latest is out with focus on bringing parity between its Java and Python releases, a couple of new APIs that allow writing applications that monitor incoming live data and read/write files, and some task queue/cron updates.

Google App Engine allows applications to be written in either Java or Python programming languages. For quite a while now, there have been various APIs that have been available in the Python world but not in Java. This new release corrects some of that discrepancy by bringing in the Remote API and the Deferred API support to Java. The Remote API allows the working with the application datastore from your local machine, while the Deferred API is a good mechanism to write and execute ad hoc tasks without the full overhead of dedicated task handlers.

One feature introduced for the Java runtime that is bound to raise some eyebrows is the Concurrent Requests feature. The blog post says that until now, Java applications relied on starting additional instances to dynamically scale up for higher traffic levels or in other words from their Documentation, it says that by default, App Engine sends requests serially to a given Web Server. This does seem like a penalty for developers that had written Thread Safe Servlets in any case. However, with this feature, all it needs developers to allow concurrent requests is to specify in their appengine-web. XML that their code is thread safe.

The Python runtime has a new API named Prospective Search API that is currently experimental. The Prospective Search API allows you to create applications that can effectively monitor incoming live data. The way you use it is by registering search queries and then matching them against new documents in real time, as the documents arrive into your application. You can then easily raise alerts based on the matches.  For the experimental release, users will be allowed 10,000 subscriptions with the Prospective Search API and pricing details will be announced when the API moves into production mode later on. Python users have also got a Testbed Unit Test framework which works against App Engine API stubs and which was available for Java users earlier.

The Files API is a new API available in this release and is available to both Python and Java runtimes. It allows you to read and write files using the Blobstore API. This is a welcome addition since reading/writing files has been a often requested feature from users.

For full details on the App Engine 1.4.3 Release, refer to the blog post the App Engine blog. Refer to new features and issues fixed in the release notes for Java and Python.

Be sure to read the next Cloud article: Web 2.0 Apocalypse: Amazon EC2 Flop Shows Cloud Isn't Invincible