New Wares Bridge Java and .NET
While last month's JavaOne conference focused on the next generation of the Java platform, there's a growing ecosystem of tools to connect existing Java-based apps to those based on Microsoft's .NET environment.
Among those to extend Java-to-.NET connectivity at JavaOne, Sun Microsystems Inc.'s annual gathering of Java developers held in San Francisco, were Adobe Systems Inc., JNBridge LLC and Thought Inc. The new wares join a growing number of tools aimed at letting developers extend the reach of their apps (see sidebar, "Bridge Solutions," below).
"The alternative is re-coding those existing stacks to whatever the preferred technology for the new application would be," says Redmonk analyst Michael Cote. Most will agree that's not a reasonable alternative due to expense and the lack of developers who have such skills.
Boulder, Colo.-based JNBridge's new JNBridgePro 4.0 is aimed squarely at developers building cross-platform apps. The new release comes with a new set of plug-ins designed to expose Java classes from within the Visual Studio IDE and .NET classes from within the open source Eclipse IDE. According to the company, Visual Studio users don't need to know the underlying Java code they're accessing and Eclipse users don't need to know the underlying .NET code.
JNBridgePro provides fast access to "anything Java from anything .NET, and to anything .NET from anything Java," says JNBridge CTO Wayne Citrin. That includes EJBs, J2SE, J2EE, AWT, SWT, Swing, .NET APIs, ASP.NET, WinForms and SharePoint Server. Essentially, it creates a Java and .NET interoperability "bridge" by generating a set of proxies that exposes the classes' APIs and manages the communications between the .NET and Java classes, Citrin explains. The result is that developers can code against the opposite platform without leaving their native dev environments. It supports full-class access, and includes support for callbacks, pass by reference or by value and cross-platform exception handling.
Adobe said at JavaOne that it would be embedding the JNBridge interoperability tool in the latest release of its ColdFusion app server. ColdFusion 8 will let developers "leverage the functionality of existing .NET programs, access Microsoft products such as Word, Excel and PowerPoint, and easily integrate ColdFusion apps within the enterprise, either on the same Windows server or on a remote machine," Adobe said in a statement.
Meanwhile, San Francisco-based Thought, a provider of dynamic object-to-relational mapping (ORM) solutions, used JavaOne to release CocoBase 5.5. When it was introduced in 1997, CocoBase was the first 100-percent Java ORM tool. The new CocoBase 5.5 may be the first ORM tool to provide a Java Persistence API (JPA) for .NET.
The JPA was part of the Enterprise JavaBeans 3.0 specification in the Java EE5 platform. It consists of the API -- as defined in the javax.persistence package -- the Java Persistence Query Language (JPQL) and object-relational metadata.
CocoBase JPA 5.5 is designed to give corporate coders a single set of persistence-programming commands and a common repository for building and deploying apps on the Java and .NET platforms, says Thought's marketing director Greg Baker. The.NET ADO -- ActiveX Data Objects, which includes a set of components for accessing data and data services -- provides a method for dealing with simple data requirements, Baker says, but not the "object lifecycle" or object-level querying.
Bridging the gap between Java and .NET technologies is an ongoing challenge for larger organization, says Bola Rotibi, principal analyst with Macehiter Ward-Dutton Ltd. Although smaller companies sometimes run pure Java or .NET shops, heterogeneity is the norm in large enterprises, she adds.
"Very few large companies settle on a single platform," Rotibi says. "You find quite a mix of Java and .NET in most large organizations -- say, Java for the back-end ... and .NET for the Web presentation layer -- and acquisitions tend to contribute to that heterogeneity." Consequently, these kinds of bridging tools can have a direct impact on developer productivity, she continues. "Most developers have at least a few languages under their belts, but they tend to be the most productive in one," she says. "And when one set of skills can play in another environment, that broadens the audience for both platforms."
The code infrastructure in most enterprises today is a heterogeneous mix of Microsoft and Java platforms. Many companies have turned to Web services to get these two environments to interoperate, but that need has also spawned a category of "bridge" solutions, including those from JNBridge LLC and the CocoBase JPA solution from Thought Inc. A short list of similar offerings dev shops might want to consider includes:
A development tool designed to generate .NET bindings for arbitrary Java classes. It can be used to publish .NET versions of Java APIs and COM bindings for Java APIs, and to integrate .NET clients into JMS or EJB applications.
Vendor: Codemesh Inc.
Developer license: JuggerNET pricing starts at $1,995 for a Starter Kit, which includes one developer license, first year maintenance and support, and up to five client or server CPU deployments.
J-Integra for COM
Bridges Java and Microsoft COM apps using a Java implementation of Microsoft's DCOM wire protocol, with optional native "JNI" mode.
Vendor: Intrinsyc Software International Inc.
Developer license $399; Server license (1 CPU) $3,999; Server license (multi-CPU) $7,999; Client license (5 pack) $745. Free trial available.
EZ JCom Enterprise
Provides a bridge between Java-based programs and COM/ActiveX objects. Can be used to interface to standard COM objects that don't include a UI, such as COM objects that provide a service. Can also be used from non-Windows platforms-such as Unix, Linux, Mac or handhelds-by using the included Remote Access Service.
Vendor: EZ JCom
Enterprise license: $1,495; includes royalty-free redistribution license and a license to use as a server component. The professional version, EZ JCom Pro, is available for $895. Evaluation downloads available.
A Java-to-COM bridge designed to allow users to call COM Automation components from Java. It uses JNI to make native calls into the COM and Win32 libraries.
Vendor: Open source project hosted on SourceForge
License: GNU Library or Lesser General Public License (LGPL). The latest milestone release was announced in December 2007.