JAVAtm REMOTE METHOD INVOCATION (RMI)
Getting Started | Documentation | Examples | Specification | White Paper

The Network Is The Computer TM
Java TM Is The Platform

Remote Method Invocation (RMI) enables the programmer to create distributed Java-to-Java applications, in which the methods of remote Java objects can be invoked from other Java virtual machines, possibly on different hosts. A Java program can make a call on a remote object once it obtains a reference to the remote object, either by looking up the remote object in the bootstrap naming service provided by RMI or by receiving the reference as an argument or a return value. A client can call a remote object in a server, and that server can also be a client of other remote objects. RMI uses Object Serialization to marshal and unmarshal parameters and does not truncate types, supporting true object-oriented polymorphism.

There are three releases:

  • JDK 1.2 contains many new RMI enhancements including activation and the capability for RMI to use custom socket protocols. Check out the JDK 1.2 RMI Enhancements page for further details.
  • JDK 1.1 includes core support for RMI. RMI applets developed with this release can be run with the appletviewer. Full support in other browsers will be available as licensees support JDK 1.1. See the JDK 1.1 RMI Documentation for complete details.

  • RMI on JDK 1.0.2 is an interim release only. This release supersedes the Prebeta release, and allows applets to be run in the appletviewer, a special RMI version of HotJava, and Netscape 3.01, which is JDK 1.0.2 based. This release provides the same RMI APIs as the JDK1.1 release. Available now from the Distributed Systems download page.

Object Serialization extends the Java Input/Output classes with support for objects. Object Serialization supports the encoding of objects and the objects reachable from them into a stream of bytes and it supports the complementary reconstruction of the object graph from the stream. Serialization is used for lightweight persistence and for communication via sockets or Remote Method Invocation (RMI). The default encoding of objects protects private and transient data, and supports the evolution of the classes. A class may implement its own external encoding and is then solely responsible for the external format.

For More Information About Java RMI

Getting Started
Using Custom Socket Factories
RMI and SSL
Object Activation
Documentation
Examples - Real World Applications using Java RMI
Specification
White Paper
RMI FAQ
Archive of RMI-USERS Mailing List


Comments or questions? Write to us.