Press Release: December 10, 2001
O'Reilly Author Says Java RMI's "Not-Very-Scalable" Reputation is Undeserved
Sebastopol, CA--For one reason or another, a perfectly good technology will occasionally pick up a reputation that's undeserved. This is the case with RMI, or remote method invocation--an important underlying technology in Java distributed computing. Unfortunately, this fundamental API has been poorly documented. "Developers are either using massive frameworks like JMS or EJB, or they're building ad hoc systems for remote method calls," says William Grosso, author of the newly released Java RMI (O'Reilly, $39.95). "This is partially because of the not-invented-here syndrome, partially because people go with what they already know how to do--even if it's not a particularly good tool for a job, and partially because RMI, in its early days, had a reputation as being 'not very scalable.' I think the major reason for this is the almost total lack of documentation. SUN provides the JavaDoc, and a tutorial that builds a very simple application. RMI had a reputation for being 'not very scalable' because the information on how to build scalable apps simply wasn't there."
According to Grosso, Java RMI is a surprisingly easy framework to use. "RMI is a robust and effective way to build distributed applications," he says. "Not only is RMI useful for building distributed applications, it is ideal for Java programmers learning how to build a distributed application."
"RMI Technology is incredibly important," Grosso explains. "There are five main ways to build a distributed application: raw sockets, servlets, EJB, SOAP, and RMI. Raw sockets are too low-level to be useful in a wide range of applications. Servlets are limited because they use HTTP (they assume a browser is involved). EJB is best for a very specific type of high-end server. And SOAP is best when you're striving for standard-based interoperability. There is a vast middle ground for which RMI is the best available technology."
Grosso's new book, Java RMI, provides strategies for working with serialization, threading, the RMI registry, sockets and socket factories, activation, dynamic class downloading, HTTP tunneling, distributed garbage collection, JNDI, and CORBA. It also covers RMI security, an increasingly important topic.
An article by the author, "Learning Command Objects and RMI," is available online.
William Grosso introduces you to the new Generics Specification and rebuilds his command object framework using it, in this online article
Chapter 10, "Serialization," is available free online.
Java RMI is also available on Safari.
More information about the book, including Table of Contents, index, author bio, and samples.
A cover graphic in jpeg format.