JNBridge's CTO Wayne Citrin has gone on the record to suggest that the Windows Azure Starter Kit for Java is not fit for the job, and that developers need a more practical approach for integrating Java with .NET code in the cloud.
Microsoft has indeed been promoting the use of Java in the Azure cloud, with the recent launch of the Windows Azure Starter Kit for Java. The intent of the new offering is to provide developers with tools for packaging and uploading Java-based web applications running on Tomcat or Jetty. JNBridge's Citrin says that the use cases for this offering are "not realistic" and, in some instances, "just don't work".
"The problem is that these examples are extremely constrained. While it may be possible to construct Java EE examples that work as demos, it is unlikely that any real Java EE apps, web-enabled or otherwise, can be migrated to the Azure cloud without drastic, impractical, or even impossible, modifications to the underlying application servers in order to accommodate the networking issues," said Citrin.
Beyond the technical issues involved with getting an app server to run on the Azure platform, Citrin says that developers need to ask why they would want to do this on a Platform-as-a-Service (PaaS) offering such as Azure. He goes on to ask, "Wouldn't it be far simpler to run such an application on an Infrastructure-as-a-Service (IaaS) offering such as Amazon EC2?"
The market appears to bear this out if we believe JNBridge's quote from an unconfirmed Forrester study, which has apparently showed that Eclipse (that is, Java) developers prefer Amazon EC2 or Google App Engine, while Visual Studio developers prefer Windows Azure.
"Users will want to do things with Java on Azure, but not what the creators of the Azure Starter Kit for Java think they want to do. Rather than running a self-contained Java server in an Azure role, they will want to integrate their Java with the .NET code more directly supported by Azure. The industry needs interoperability solutions for IT organizations that need to integrate Java and Microsoft .NET applications running in the cloud — especially as a high-performance alternative to existing web services protocols," said Citrin.