Cloud Computing: Java EE PaaS and Application Server Interoperability

August 3, 2012 Off By David
Object Storage
Grazed from PR NewsWire.  Author: PR Announcement.

As observed in my earlier articles, the Java EE PaaS portfolio is gaining in strength each day, with support from major players such as IBM, Oracle, VMWare, Redhat , Google and Amazon.

However unlike the Microsoft > .NET Framework > Azure PaaS equation where there is just one version of the framework from one vendor, the openness of Java EE led to several implementations of application server-specific implementations.

As Java EE standards define a core set of API, frame works and features as part of its implementation, an application server is the container that executes these instructions and provides a development and runtime platform for Java EE applications…

While application servers are expected to implement the Java EE specifications & technologies like (SERVLETS, JAVA SERVER FACES, ENTERPRISE JAVA BEANS, PERSISTENCE and others like WEB SERVICES) in exactly the same way , they do have implemented lot of extensions specific to the application servers to improve the scalability , usability and other

Quality of Service of the Applications
For example if you are developing your applications on WebLogic platform, Optionally, a weblogic.xml deployment descriptor, an XML document containing WebLogic Server-specific elements for Web applications can be used. Additional deployment descriptors provide WebLogic-specific deployment information. A weblogic-cmp-rdbms-jar.xml deployment descriptor unique to container-managed entity beans maps a bean to tables in a database. The weblogic-ejb-jar.xml deployment descriptor supplies additional information specific to the WebLogic Server environment, such as JNDI bind names, clustering, and cache configuration.

Similarly IBM WebSphere has many extensions beyond the base Java EE specifications, for example, WebSphere Application Server version 7.0 supports configuration of stateful session bean timeout, per bean, using the ibm-ejb-jar-ext.xmi file (for EJB 2.x modules), and the ibm-ejb-jar-ext.xml file (for EJB 3.x modules).

Over the last several years while Java EE has been the accepted as an enterprise standard in many a enterprises, however due to vendor preferences and marketing strategies most enterprises are yet tied to specific application server implementations like WebSphere, WebLogic and there is a huge penetration of open source application servers like JBOSS, Tomcat also prevalent added to this they are relatively smaller players like Pramati, SYBASE Application Server in the picture.

In spite of all the cross application server interoperability the Java EE platform brings in, yet enterprises do find significant effort in porting an application from one application server to another and especially they spent efforts on the non-functional characteristics like performance, scalability, availability and security.

With all the Application Server Specific interoperability concerns in the Java EE applications in mind, let us analyze the current Java EE PaaS market from that perspective.

Java EE PaaS and Application Servers
The Java Enterprise Edition Platform As A Service is a correct and first direction in enabling enterprises to truly concentrate on the business agility provided by Java EE platform and not get bogged down by the version, compatibility and other issues typical of the platform. However the current Java EE PaaS eco system tied very much to the specific application server implementations, while they are trying their best to bring in the much needed open platform characteristics.

Java EE PaaS  Platform

Implementation Specifics

Oracle  Java Cloud Service (PaaS)

It is one  of the  robust  Java EE PaaS in the market today,  as it supports  much of the larger Java EE standards like,  JSP, JSF, SERVLET, EJB and JPA and more.  However the documentation suggests the   server infrastructure is built over the  standard  Weblogic  11g Servers.

IBM Java EE PaaS

Delivered  as part of IBM SmartCloud Application Services,  the application environment  building block of the PaaS platform  is built  on the foundations of WebSphere platform.  A very similar  approach has been adopted for the Private Cloud PaaS platform  of IBM Called  "Pure Application System".

The following  are  the  text from IBM FAQ and PaaS  services,  "IBM SmartCloud Application Services works across IBM to leverage IBM SmartCloud Foundation products (from SWG), such as IBM Workload Deployer, IBM Rational Collaboration Lifecycle Management Bundle (as a starting point), and pre-configured virtual images from WebSphere and Information Management and IBM SmartCloud Enterprise to deliver hosted off-premise platform services" .

Redhat OpenShift PaaS

OpenShift enables you to create, deploy and manage applications within the cloud. It provides disk space, CPU resources, memory, network connectivity, and an Apache or JBoss server. Use the apps you want. OpenShift supports JavaTM EE 6, Ruby, Node.js, PHP, Perl, and Python applications. It also has built-in support for popular middleware components like JBoss®, MongoDB, MySQL, PostgreSQL, and for popular development tools like Maven, Jenkins, and Eclipse.

 

VMWare Cloud Foundry

Cloud Foundry supports the following application development frameworks:

  • Spring
  • Ruby on Rails
  • Ruby and Sinatra
  • Node.js

While  this option does  not  explicitly  tied to an  application server and may be very good for new development if an existing  Java EE application uses features like EJB, JPA  this may  not fit exactly from  interoperability point of view.

 

Innovation In Java EE PaaS and Waratek Platform
Waratek (Waratek.com) has recently come up with Java EE PaaS platform and the product is termed as Cloud VM For Java. The Waratek Cloud VM for Java provides the platform for cloud computing that lets you migrate existing applications effortlessly and seamlessly.

As explained in the above sections of Java PaaS implementations from various vendors, while all of them are good for new development due to the application server centric capabilities there will be challenges for enterprises in moving the existing applications. Rather than re-write or significantly re-engineer Java applications to reap the benefits of the Cloud, use Waratek Cloud VM for Java to painlessly port them over. This enables existing Java investments and subsequent Java solutions to thrive on a more flexible platform with key cloud characteristics, such as multi tenancy, granular elasticity, instant scalability, prioritization and real time metering.

Architecture Of Waratek Platform:

  • Waratek, the Cloud VM for Java, uses Java Virtual Containers (JVCs)
  • A single JVM can host tens or hundreds of JVCs: from 1MB up to many GBs
  • Every .war/.ear app gets its own JVC
  • Any standard Java application can run on the Waratek VM with no alteration required
  • This interoperability is mainly achieved through a layer called, ‘Waratek Platform Extender’
  • The Platform Extender layer operates as an extension to the JVM to facilitate tailored multitenancy for different application frameworks
  • The default Tomcat Platform Extender for the Apache Tomcat Servlet Container.
  • Multiple Platform Extenders are available for optimised multitenancy with leading application server suites such as JBoss, WebLogic, etc. The Platform Extenders complement existing application server suites, by decoupling a virtualized tentant application from the hosting application server suite on which it runs.
  • Each Java VC presents a virtualized abstraction to the hosted application of the underlying JVM and application server platform (if any), and appears invisible to the hosted application software within
  • The below diagram from the courtesy of Vendor , explains the basic architecture of the Waratek Platform

Summary
The primary aim of PaaS is to relieve the enterprises from the complexities of the platform and provide them path to concentrate on business needs, in that context huge investment on porting existing applications to a PaaS platform may not be acceptable from budget and cost allocation perspective. Innovations like Waratek platform are trying to solve this problem. After all Java comes with a concept of "Write Once and Run Any Where" and it is only appropriate for the Java PaaS platform in support of the concept. We will see more products and further offerings in this space to the betterment of enterprises.