The Java Remote Method Invocation (RMI) package is a Java-centric scheme for distributed objects that is now a part of the core Java API. RMI offers some of the critical elements of a distributed object system for Java, plus some other features that are made possible by the fact that RMI is a Java-only system. RMI has object communication facilities that are analogous to CORBA’s IIOP, and its object serialization system provides a way for you to transfer or request an object instance by value from one remote process to another.
Remote Object Interfaces
Since RMI is a Java-only
distributed object scheme, all object interfaces are written in Java.
Client stubs and server skeletons are generated from this interface,
but using a slightly different process than in CORBA. First, the
interface for the remote object has to be written as extending the
Remote interface doesn’t introduce any
methods to the object’s interface; it just serves to mark
remote objects for the RMI system. Also, all methods in the interface
must be declared as throwing the
RemoteException is the base class for many
of the exceptions that RMI defines for remote operations, and the RMI
engineers decided to expose the exception model in the interfaces of
all RMI remote objects. This is one of the drawbacks of RMI: it
requires you to alter an existing interface in order to apply it to a
Once the ...