Cloud Computing

Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a metered service over a network (typically the Internet).

As a metaphor for the Internet, "the cloud" is a familiar cliché, but when combined with "computing," the meaning gets bigger and fuzzier. Some analysts and vendors define cloud computing narrowly as an updated version of utility computing: basically virtual servers available over the Internet. Others go very broad, arguing anything you consume outside the firewall is "in the cloud," including conventional outsourcing.

Java EE 7 as a Cloud Integrator:

Java Business Integration(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.