
| September 8, 1997 | ||||||||||
RMI On The Rocks?
By
Rich Levin
At issue was the future of Java Remote Method Invocation, or RMI, a means of "remoting" (dispatching) Java classes through distributed systems while controlling the objects as if they were local. As the only "100% Pure Java" API for managing Java objects in remote systems, RMI differs from other distributed object interfaces, such as OMG's Corba or Microsoft's DCE, which require developers to use non-Java languages to define remote objects.
The uproar
exploded when an industry analyst, just returned from a swing through Silicon Valley, claimed many of JavaSoft's key industry partners, such as Netscape and Oracle, were de-emphasizing RMI in favor of Corba. "I am sad to report that all of JavaSoft's partners believe that JavaSoft will be phasing out RMI by the end of 1998," wrote J.P. Morgenthal, a Java computing analyst with NCFocus, of Hewlett, N.Y., in a message to Java developers.
This was the latest in a string of backroom whispers predicting RMI's imminent demise. Exacerbating the issue is Microsoft's refusal to include support for RMI in its next-generation Web browser, Internet Explorer 4.0, now in beta, which comprises the foundation of Windows 98's Internet support.
"IE4 supports all of the JDK 1.1, except RMI, which is being dropped, and JNI, which no one uses," says Joe Herman, Microsoft's product manager for Internet platforms. (JNI, the Java Native Interface, is a cross-platform means of linking Java with binary applications, such as
those written in C++.)
Unfortunately for Java developers, RMI is the only mainstream technology available to solve certain classes of network computing problems. Further, as a "pure Java" implementation, developers view RMI as the cleanest, most elegant, and consistent means to remote Java objects. Some say scuttling RMI would be a serious blow to their development efforts.
"Right now, for things like intelligent agents, RMI is the only way to go," says Gary Lawrence Murphy, a Java developer with TeleDynamics Inc. in Sauble Beach, Ontario, Canada. "There have been a number of times over the past year where people have gone to conferences and literally all of the players have told us 'Sun s going to kill RMI,' and the RMI developers hit the roof. We want some answers out of Sun right now."
Answers they got. Sun officials moved quickly to quash the furor. Dave Spenhoff, director of product marketing, and Sharada Achanta, Java enterprise product manager at Sun, both posted lengthy statements on J
avaSoft's RMI listserver, an E-mail discussion group for developers of RMI-enabled applications, committing Sun to Java RMI for the long haul.
"Recently there was a posting to this alias suggesting, yet again, that Sun is not fully committed to RMI," Spenhoff wrote. "Sun has no plans to phase out RMI. [It] is a key and core part of Java." But what Spenhoff and Achanta didn't mention in their postings is that, with Java RMI, all roads
inevitably lead to Corba.
"Purity" is a wonderful thing, with one exception: It's not interoperable. RMI works only with Java-to-Java communications; this, by definition, excludes virtually all existing systems enterprise developers need to connect their Java apps with. In a heterogeneous world, a homogeneous solution such as Java RMI has little functional appeal to enterprise shops.
And that, dear readers, is what's truly at the root of developer concerns and industry scuttlebutt, and why the "RMI is Dead" controversy will continue to rage, Sun officials' denials
notwithstanding. The company is forging ahead with plans to merge RMI with Corba, which purists see as a balkanization of the Java languageżand a tacit admission that RMI will be subsumed by Corba over time.
"[RMI] is the most flexible [remote object] API of all those that are available," says Jeff Sturm, a Java database developer with ZenaComp Inc. in Livonia, Mich. "The fact that things like [RMI's] 'pass by value' are missing from Corba make it unusable for my applications. It means that I'd have to design my classes around Corba's requirements, and we're just not going to do that."
But many enterprise developers have no alternative, and Sun's Java shepherds know it. In July, Sun officials announced they would integrate RMI with OMG's Corba specification, and the company's forthcoming JDK 1.2, slated to enter beta testing this month, largely delivers on that promise.
Included is a complete implementation of the Corba specification.
"Sun has been lobbying to have these things added to Corba,
to allow an RMI implementation to speak to a Corba implementation," says a source within Sun. "RMI itself will be extended to interoperate with Corba. At that point, 'pure' Java RMI will be strictly for Java-to-Java communication, as an implementation for things like the network computer.
But when it comes to legacy systems, and trading objects with software written in other languages, RMI just isn't going to do that."
Under JDK 1.2, both Corba and RMI will use OMG's Internet Inter-ORB Protocol, a non-Java wire protocol for transporting distributed objects, which replaces RMI's native wire protocol. In addition, the OMG is expected
to announce in late September an extension to the Corba IIOP specification that allows objects to be "passed by value," a key programming facility required to round out RMI/Corba integration.
"You need that in order to support Java [intelligent] objects, not just structures, across the network," says Richard Soley, co-president of the Object Management Group. "RMI is not
about bridging heterogeneity; it's about extending Java to networks. That's why they decided to put a full Corba implementation in JDK 1.2."
With complete support for Corba just around the bend, Java developers see the handwriting on the wallżand remain unconvinced of RMI's long-term viability. "The proof of the pudding is in the eating," says Sturm of ZenaComp. "Sun is rolling Corba into the JDK. Netscape is talking about Corba, and that's obviously the way they're interested in going; and Microsoft, of course, is going DCOM. So why would anyone care about RMI?"
Why, indeed.
|
||||||||||
Boeing seeking Software Engineer 5 in Anaheim, CA
KForce seeking Inside Sales Associate in San Diego, CA
Amalgamated Bank seeking Chief Information Officer in New York, NY
Apollo College seeking Medical Billing and Coding Instructors in Albuquerque, NM
Allstate seeking Exlusive Agent in Las Vegas, NV
For more great jobs, career-related news, features and services, please visit our Career Center.