Web services are a good choice for about 80% of .NET-Java/J2EE interoperability needs, but there are situations that demand a deeper level of integration between the two platforms, according to John Rymer, a vice president at Forrester Research Inc., in Cambridge, Mass. In particular, where performance and portability are key, Web services are not the best option, he said.
For loosely coupled application or component integration, where the interactions can be accomplished through messages rather than direct API calls, Web services may fit the bill, Rymer said. However, for tightly coupled integration or in-process integration, Rymer suggests other options like bridging middleware such as integration servers or Enterprise System Buses [ESBs]; extended J2EE platforms that implement .NET features; and language integration technologies.
Rymer identified these situations in a report last year, and despite another 12 months under the industry's belt of working with Web services, as well as ongoing standards efforts in the areas of security, reliability and management, he said his opinion hasn't changed.
"Web services is a very abstract approach, very generalized," he said. "It's useful for many situations, but there are scenarios where what is needed is deep integration with protocols or structures being created by language for reasons of performance."
Rymer identifies several scenarios: the need to host .NET application and components on Java/J2EE servers, the need to project .NET skills on to Java/J2EE servers, the need to integrate .NET and Java/J2EE objects and components, and the need for a single code base that runs on.NET and Java/J2EE platforms. "For a couple of these scenarios, the interoperability is almost part of a portability strategy--where ISVs had created applications in .NET and now run them on Linux. That's interoperability, but now it's across the wire interoperability. It's interoperability on the server. It's really a portability play, and Web services don't give you much there."
Although Rymer said standards will drive common skills, and that's important, "performance issues are really a different level of work. I think we'll have to see work on binary formats to get to the performance of IIOP or other optimized distributed computing protocols. IIOP operates at a fine level of granularity; most Web services don't. I suspect breakthroughs on performance will come from binary Web service protocols and a better understanding of design patterns you can use to achieve high levels of performance." A question that software architects is: 'Do services have to be designed at a certain level of granularity? '
Most vendors are working on this individually, he said, "It's one of the areas vendors have reserved for themselves to compete on; they want to compete on performance, reliability and a variety of implementation details. Performance is an important one. We'll see if vendors are willing to create standards and reduce their ability to compete on that basis."