Google App Engine - Sun does not like it very much!

Google opened up their App Engine for Java (which was earlier supported only on Phython) on April 8th for beta testing.What this means is that you can now run your Java web application on Google's infrastructure. Google App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.

The Java environment provides a Java 6 JVM, a Java Servlets interface, and support for standard interfaces to the App Engine scalable datastore and services, such as JDO, JPA, JavaMail, and JCache. App Engine uses the very popular Java Servlets & jsps architecture and it supports the standard WAR directory structure. Google has done some thinking on the way the JVM is allowed to run, it runs in a secured Sandbox environment for more security and availability. The sandbox authorizes JVM to perform only those actions that wil not interfere with the performance and scalability of other apps. Google has some billing model if the free infrastructure provided is in-sufficient. Check that model here.

App Engine costs nothing to get started. All applications can use up to 500 MB of storage and enough CPU and bandwidth to support an efficient app serving around 5 million page views a month, absolutely free. When you enable billing for your application, your free limits are raised, and you only pay for resources you use above the free levels.

Some of the key features, as mentioned in the google code page are

    * 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
    * Scheduled tasks for triggering events at specified times and regular intervals

Complete tutorial and the app engine setup is google documented here 

To look at it, this looks like a awesome concept and all Java web app owners should be more than happy to hear this. But recently SUN's chief open source officer, Simon Phipp blasted Google's App engine after finding out that not all core Java classes were included in the App engine and only a subset of the core classes were made available. He writes the following in his blog
The JRE Class White List - Google App Engine
Whether you agree with Sun policing it or not, Java compatibility has served us all very well for over a decade. That includes being sure as a developer that all core classes are present on all platforms. Creating sub-sets of the core classes in the Java platform was forbidden for a really good reason, and it's wanton and irresponsible to casually flaunt the rules.

Link for the same can be found here.

Was google right in creating a subset of core Java classes without consent of Java maker? Personally I admire both the companies. Sun because they are the ones who taught the world to be open (sourced) and google because they showed the world that a company can still be profitable without selling anything directly to a consumer. Hope both these companies talk and resolve it internally.

Disclosure - This article has content copied from the original source , google code and Sun blog.

Author: pradeep