Java-.NET interoperability software provider JNBridge has released what it has called “Project Lightning,” a solution for bringing interoperability to the cloud.
At the JavaOne conference, the software solution was demonstrated as a possible first step toward a so-called hardware abstraction layer, enabling applications originally written for client/server deployment to be deployed into a cloud environment.
When talking about cloud interoperability, JNBridge CTO Wayne Citrin said people usually are referring to two things: Can you access a server from a client running on any platform, and can you write a cloud service regardless of provider? “So, the question is, can I access a [Windows] Azure service from a Java application, or can I use .NET to write a service for the Amazon platform?” he said.
Cloud providers are producing APIs targeting multiple platforms, which creates interoperability for new applications. This doesn’t help with the migration of existing applications to the cloud, Citrin said.
“If an app is installed [on a server] with the Microsoft installer, you can’t just upload it to an Azure cloud,” he said. This, he explained, is because these client-server applications depend upon the underlying platform.
“A Java app may want to reference a file system, or a .NET app wants to access a registry. This won’t work in the cloud.”
Part of the problem is that companies that have been selling enterprise software have controlled both the client and server side, and have sold software for both. This works against the promotion of interoperability, Citrin said. With cloud services, software providers make money on usage.
Companies that are pure cloud plays understand this better than those “with one foot in the old client/server world,” he said. Microsoft, for instance, claims Java-.NET cloud interoperability by demonstrating the Apache Tomcat server running on the Azure cloud, he said.
“It’s the Tomcat Solution Accelerator, and it’s heinous,” Citrin said. “There is no [Oracle] WebLogic accelerator, no [IBM] WebSphere accelerator, no JBoss accelerator. What [Microsoft] has done is constrained, so very few Java apps will run in Azure. And even then, it requires a tremendous amount of retrofitting.”
The JNBridge solution provides a proxy box that runs in the cloud, and it includes a JAR file containing client stubs, a config file that Citrin said “tells Java where the .NET stuff is,” and runtime components. “We know where in the cloud what port is listening and where the library is,” he said.
JNBridge’s own software relies heavily on a registry for things like licensing, he said, and “now we ripped it out and are rearchitecting it for a cloud environment. We had to change the management of TCP endpoints.”