Introduction


What is RMI

The Distributed Calculator:
A Simple Example

Scaling Up: Enterprise Concerns

Scaling the Calculator

RMI Future

RMI Future

by Bill Murray and Yoonju Kim

The Future of RMI

Where is RMI an Appropriate Choice?

Good applications for RMI include request-based enterprise applications (database and information browsing) and completely distributed applications where the ability to create arbitraty interconnections will be useful, or for applications like parallel numerical algorithms in which the communications time is small compared to the overall runtime (Java Network Programming, page 567 by Hughes, Shoffner and Hamner; Manning, 1999)


Where is RMI an Inapproriate Choice?

RMI is not necessarily a good choice in a high-bandwidth system, for an obviously stream-based system or for an application where the overhead of RMI call setup will prove too costly. RMI may also be inapplicable in certain situations where nonpolled two-way communication is required, but firewalls would prevent a server from calling back to a client (Java Network Programming, page 567 by Hughes, Shoffner and Hamner; Manning, 1999)


How does Java compare to CORBA?

There are pros and cons to using RMI and JNI to export legacy native code using Java remote objects, as opposed to using CORBA. With CORBA, a CORBA object implemented in the same language as the native code is created and exported on the server. Remote Hava clients can get a Java stub to this CORBA object using JavaIDL or any third-party Jaa CORBA implementation.

One obvious advantage of the CORBA approach is that you don't need to have Java on the server. ... If a Java implementation isn't available or if installing additional software on the legacy server isn't desirable, CORBA is your only option.

CORBA is a very rich distributed object API but it may be overkill for your application, Using the simpler RMI API and keeping your code development strictly in Java (with minimal C/C++ to interface to the legacy code) might be an advantage to you...(Java Enterprise In A Nutshell, pg 78)

Is Java's Future Bright?
taken from http://www.javaworld.com/javaworld/jw-06-1997/jw-06-idgns.rmi.html

The future of remote method invocation (RMI) has become unclear as Sun Microsystems Inc.'s JavaSoft Division tries to both pacify its Common Object Request Broker Architecture (CORBA) partners and keep the project at the heart of its Java strategy.

RMI enables Java objects to talk across a network and does roughly the same job as CORBA's Internet Inter-ORB Protocol (IIOP) or Microsoft Corp.'s Distributed Computing Environment (DCE).

Oracle Corp., IBM, and Netscape Communications Corp. are putting pressure on JavaSoft to scrap the RMI project, sources inside Sun confirmed. However, while the company is considering the future of RMI, it has not decided to scrap the project, according to JavaSoft officials.

"I can't see how JavaSoft can continue to push RMI. It had a purpose when Sun was out in the cold with Java, but now that it has the backing of the CORBA alliance, it's just confusing the market," said Don DePalma, a senior analyst at Forrester Research Inc. in Cambridge, MA. "I would say that RMI is not here to stay."

Users are confused about JavaSoft's intentions for the project, because RMI has similar properties to an object request broker (ORB) that is currently available from vendors such as the San Mateo, CA-based Visigenic Inc. or Iona Technologies Inc. of Ireland.

"The benefit of developing RMI-based applications is that it hides the need to learn CORBA's Interface Definition Language (IDL) from the user. All we do is develop in Java," said Jim Kleckner, chief technical officer of Cats Software Inc., a Palo Alto, CA-based risk management software vendor. "The drawback is that RMI will work in a Java-only environment."

The other major advantage of RMI is that it is free and included as a standard component in the Java Development Kit.

"I hope RMI dies a fast and painful death," said Annrai O'Toole, chief technology officer with Iona. "It's a totally closed protocol, so you can't do anything with it except Java-to-Java calls."
Iona's gripe is not uncommon in the CORBA community. The company has had to reduce the price of OrbixWeb, its Java development tool, from U.S. $2,500 to $750 to compete with RMI's capability in the Java Development Kit.

"We know that RMI is a terrible protocol," said O'Toole. "But it's free, so we needed to adjust our prices to keep our customer base."

However, JavaSoft officials say that RMI's ease of use is still in demand from its developer base.

"We are trying to encourage our developers to write to the JavaBeans level and leave the plumbing issues up to us and the CORBA vendors, but we have plans for functionality, such as multicasting, that we think is best suited to RMI," said Sharada Achanta, JavaSoft's product line manager for enterprise Java.

Planned features for RMI include persistent remote references (activation), RMI over secure transports, multicast remote references, composable and user-defined reference types, and performance enhancements, according to JavaSoft officials.

Meanwhile, Microsoft appreciates the fray, according to Melinda Ballou, an analyst with the Meta Group, based in Waltham, MA.

"RMI is confusing our customers. If Java is going to be a success, it's critical that IBM, Oracle, Netscape, and Sun are united, and RMI is creating more division that it's worth," she said.