Google AppEngine Now Runs Java in Addition to Python
Google AppEngine now runs Python AND Java
It is still in beta but select developers are being added and developers allowed in will be expanded, I got in as I made the request so it looks like it is still filling up.
Both Java and C# were top requests on AppEngine desired languages/platforms. They have low level support for specific Google features and infrastructure and wrappers around these features to mimic common java libraries like JPA, JCache and java.net around google urlfetch. So it is still a bit locked to the platform or changes will need to be made to run on Google AppEngine and other environments.
Many of the changes made to apps really are due to the scalable nature of the cloud architecture without such things as joins and limits on bulk processing, but in the end these points are really better for scalability from the start. As for being locked to a platform we are already seeing copies such as AppScale that is an open source implementation of Google AppEngine. So software architecture, data architecture and how we prepare for the terabytes upon terabytes of shared data in the future might be changing.
Some unsupported features of major Java libraries…
java.net Features Not Supported
- The URL Fetch service does not support persistent HTTP connections. When the app accesses response data using the URLConnection object, App Engine calls the URL Fetch service to complete the request. After the response data has been accessed, the request data cannot be modified.
- The app cannot set explicit connection timeouts for the request.
Unsupported Features of JPA
The following features of the JPA interface are not supported by the App Engine implementation:
- Owned many-to-many relationships, and unowned relationships. You can implement unowned relationships using explicit Key values, though type checking is not enforced in the API.
- “Join” queries. You cannot use a field of a child entity in a filter when performing a query on the parent kind. Note that you can test the parent’s relationship field directly in query using a key.
- Aggregation queries (group by, having, sum, avg, max, min)
- Polymorphic queries. You cannot perform a query of a class to get instances of a subclass. Each class is represented by a separate entity kind in the datastore.
JCache Features Not Supported
- The JCache listener API is partially supported for listeners that can execute during the processing of a app’s API call, such as for onPut and onRemove listeners. Listeners that require background processing, like onEvict, are not supported.
- An app can test whether the cache contains a given key, but it cannot test whether the cache contains a given value (
containsValue()is not supported). - An app cannot dump the contents of the cache’s keys or values.
- An app cannot manually reset cache statistics.
- Asynchronous cache loading is not supported.
- The
put()method does not return the previous known value for a key. It always returnsnull.
High Level Cloud Provider or Low Level Cloud Provider?
With other cloud providers like Amazon EC2, Mosso, SliceHost and others you can choose your platform. But Google has an amaxing infrasturcture and taking advantage of BigTable and automatic scaling is nice expecially with a 300MB transfer free quota per app. There are probably times when each type of provider might be beneficial, lower level like Amazon or higher level like Google AppEngine.
View the announcement here at Google AppEngine Blog which has other great news with the launch:
- Access to firewalled data: grant policy-controlled access to your data behind the firewall.
- Cron support: schedule tasks like report generation or DB clean-up at an interval of your choosing.
- Database import: move GBs of data easily into your App Engine app. Matching export capabilities are coming soon, hopefully within a month.
Tags: appengine, appscale, cloud, google, java, news, python


[...] *drawcloud – » Google AppEngine Now Runs Java in Addition to … [...]
QJ: “Zero, what the hell is a title going to do, is a title going to put clothes on my kids? Less money?”