Java EE 7
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).
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.
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.