Some Future Dimensions of Java – Is Java Ready for Cloud Computing?

Post date: May 4, 2012 9:04:51 AM

Before going into the JEE7 platform enhancements, a quick look at what is going in the core JDK is worth in my opinion – and this because this part of the framework lays the playing ground for the enterprise features.

At JDK7 level without any doubts the highlights are in the Fork/Join framework which helps benefiting from multiple processors, writing more efficient, parallel code, features that can be explored also in EJB 3.1 by letting custom concurrency handling inside EJB services, aspect that is excellent for optimization purposes.

Other significant highlights are NIO2 and the invokedynamic instruction which allows using non Java based languages on the JVM. Near all this, an important direction is uniformity in exception usage and in handling operations using wrapper types and in utility classes such as java.util.Objects and java.nio.files.Files, as explained at https://blogs.oracle.com/darcy/entry/jdk_7_library_treats?msgid=3-4985213086.

Especially in the last year I asked myself what Java would allow us to tackle in the world of cloud computing. And whatever the offer, it should be bottom-up and top-down at the same time in order to provide the strong required support for the near-infinite scalability.

The first step has been performed in my opinion in EJB 3.1 by allowing customizations at EJB level with regards to concurrency and enhancements in the latest JDK with regards to concurrency (Compare And Swap, Non Blocking Algorithms) formed the basis for increasing performance.

As mentioned at http://www.infoq.com/articles/javaee7-cloud-support?sf3584791=1, Concurrency Utilities for Java EE play an important role in transferring JEE7 into the cloud computing PaaS world. Other interesting aspects are the support for JSON, HTML5 and Web Sockets that will have an impact of the Servlet Specification in JEE7.

JEE7 focus in this arena is on a high level API in terms of services and SLAs and as with the entire trend of the different versions of this specification, the implementation concerns are left to the cloud provider (for example infrastructure concerns). Security aspects such as tenant isolation are enforced through specification at ORM level (JPA 2.1) and another aim is to include key management into the Specification in order to address authentication and access management.

The lightweight programming model based on annotation metadata is kept also in the cloud computing domain, including security.

The impression I have is that there is some positive activity towards the cloud but only time will tell if JEE would really play a major role as PaaS – maybe 2015?