|By Srinivasan Sundara Rajan||
|April 16, 2011 04:00 PM EDT||
JSR for Java EE 7
We found the recent approval of the JSR (Java Specification Request) for the next release of the Java Platform, Enterprise Edition (Java EE) 7. The major thrust is given for cloud enablement, which is really good news as Java EE tends to be the major application development platform for the enterprises in their datacenters. As Microsoft Azure already provides a clear path for .NET migration to the cloud, this announcement from the Java EE community make doubly sure that enterprises move toward Cloud in the near future. The Press Releases states the following support for Cloud Platform.
Java EE 7 will further enhance the Java EE platform for cloud environments. As a result, Java EE 7 based applications and products will be able to more easily operate on private or public clouds and deliver their functionality as a service with support for features such as multi-tenancy and elasticity (horizontal scaling).
The following sections outline the supporting features in Java EE 7 to position itself as a Cloud Platform for enterprises along with Windows Azure.
Java EE 7 as a Cloud Consumer
As per the press release, the latest submission for Java EE 7 compliments the JSR 339, which is for the Java API for RESTful Web Services. This JSR will develop the next version of JAX-RS, the API for RESTful (Representational State Transfer) Web Services in the Java Platform.
Representational State Transfer (REST) is an architectural style for distributed hypermedia systems, such as the World Wide Web. Central to the RESTful architecture is the concept of resources identified by universal resource identifiers (URIs). These resources can be manipulated using a standard interface, such as HTTP, and information is exchanged using representations of these resources.
All the major cloud platform providers support RESTful Web Services and with JSR 339, Java EE is positioned to be a cloud consumer for all types of cloud-based resources.
The REST APIs for the Windows Azure storage services offer developers a means to access the Blob, Queue, and Table services in Windows Azure or in the development environment.
All storage services are accessible via REST APIs. Storage services may be accessed from within a service running in Windows Azure, or directly over the Internet from any application that can send an HTTP/HTTPS request and receive an HTTP/HTTPS response.
SQL Azure data can be exposed as WCF Data Services by using the entity framework provider. The WCF Data Service framework provides an API that allows data to be created and consumed over HTTP using a RESTful service. All the database operations can be exposed as a service in this manner.
From these discussions, support for REST APIs will enable Java EE 7 as a cloud-consuming platform across many cloud providers such as Windows Azure.
Java EE 7 as a Cloud Integrator
JBI standardizes a way of assembling and binding the components making up an application.
JBI defines a container that can host components. Two kinds of components can be plugged into a JBI environment:
- Service engines provide logic in the environment, such as XSL (Extensible Stylesheet Language) transformation or BPEL (Business Process Execution Language) orchestration.
- Binding components are sort of "connectors" to external services or applications. They allow communication with various protocols, such as SOAP, REST, Java Message Service, or ebXML.
JBI is built on top of state-of-the-art SOA standards: service definitions are described in WSDL (Web Services Description Language) and components exchange XML messages in a document-oriented-model way.
Together with consuming APIs for REST-based Services and JBI, Java EE 7 can be positioned as a cloud integrator platform. However, we need to see the final specification on the exact options for cloud integration in Java EE 7.
Java EE 7 as a Cloud Provider
While the options for a cloud consumer and integrator do exist in Java EE in different forms in the earlier versions, the new add-ons to position Java EE 7 as a cloud provider are a major boost to the platform. The following are the expected major features in relation to Java EE 7 as a cloud provider.
- The Java EE platform architecture to take into account the operational impact of the cloud, more specifically by defining new roles that arise in that model, such as a PaaS administrator.
- The Java EE platform may also establish a set of constraints that applications that wish to take advantage of PaaS-specific features, such as multi-tenancy, may have to obey and provide a way for applications to identify themselves as designed for cloud environments.
- All resource manager-related APIs, such as JPA, JDBC and JMS, will be updated to enable multi-tenancy. The programming model may be refined as well, for example, by introducing connectionless versions of the major APIs.
- Java EE will define a descriptor for application metadata to enable developers to describe certain characteristics of their applications that are essential for the purpose of running them in a PaaS environment. These may include being multi tenancy-enabled, resources sharing, quality of service information, dependencies between applications.
The actual release of Java EE 7 is expected to be in 2012. However, the Java Community has taken the correct step in moving toward Cloud, especially since the .NET platform has moved ahead with Windows Azure implementation.
We have seen that Java EE is the major enterprise platform with millions of lines of code available in the data centers, a path to move them to Cloud will be very attractive to enterprises. Considering the current rate of cloud adoption, it may be a better business option to release this version much earlier in 2011
- Java EE 7 and Cloud Computing
- Cloud Computing Reference Architecture – Review of the Big Three
- Windows Azure vs VMware vFabric
- PaaS: .NET vs Java EE
- Using Amazon Elastic MapReduce in the Automotive Industry
- Five Factors to Influence Cloud Adoption – The Pros and Cons
- Dynamic Scaling and Elasticity - Windows Azure vs Amazon EC2
- Cloud Analytics - The Big Four Offerings
- Enterprise Java EE PaaS - OpenShift vs Google App Engine for Java
- Challenges and Solutions for the Health Care Industry in Cloud Computing