Utilising Platform as as Service (PaaS) for developers has many advantages. However, a major concern for any organisation considering adopting PaaS is avoiding vendor lock-in. A number of efforts are under way to define standards for cloud computing which will help avoid vendor lock-in. Some recent announcements of new Java PaaS offerings started me thinking how Java standards, rather than cloud standards, are helping define the platforms vendors are offering Java developers. If these platforms comply with the Java standard then vendor lock-in is avoided.
The first PaaS product available to Java developers was the Google App Engine. The platform provides a plug-in for Eclipse (the de facto standard Java development environment) enabling applications to be deployed to the app engine from within Eclipse. The platform incorporates the widely used Tomcat application server. Developers can build standard JEE Web applications using Servlets, JSP’s and the frameworks built on these such as JSF, Spring MVC and Struts. Persistence is offered through the standard JPA and JDO libraries.
VMWare offer Java developers Cloud Foundry. Again using Eclipse as the development environment and Tomcat as the application server, a seamless development and cloud deployment process is provided. An application developed for Google App engine can be moved to the Cloud Foundry without any changes.
The latest entry to the Java PaaS space is VMforce, a collaborative effort between VMware and Salesforce.com. Using Eclipse as the development environment standard Java Web applications are deployed to the VMforce Java cloud (which uses Tomcat as the application server). VMforce has the ISO 27001, SysTrust ad SAS70 Type II security certifications as an added bonus. An interesting feature of this PaaS is its seamless integration into the force.com platform. Java developers are able to integrate with and extend the Salesforce.com application suite, including the mobile development platform.
In summary, Java developers have a number of vendors offering PaaS solutions which adhere to Java standards and make use of de facto standard tools. The concerns with vendor lock-in are removed if the developers write code adhering to Java standards. Each vendor does however offer vendor specific features too, but at least developers have a choice as to whether to use them or not.