Java remote method invocation

In computing, the Java Remote Method Invocation (Java RMI) is a Java API that performs remote method invocation, the object-oriented equivalent of remote procedure calls (RPC), with support for direct transfer of serialized Java classes and distributed garbage-collection.
The original implementation depends on Java Virtual Machine (JVM) class-representation mechanisms and it thus only supports making calls from one JVM to another. The protocol underlying this Java-only implementation is known as Java Remote Method Protocol (JRMP). In order to support code running in a non-JVM context, programmers later developed a CORBA version.
Usage of the term RMI may denote solely the programming interface or may signify both the API and JRMP, IIOP, or another implementation, whereas the term RMI-IIOP (read: RMI over IIOP) specifically denotes the RMI interface delegating most of the functionality to the supporting CORBA implementation.
The basic idea of Java RMI, the distributed garbage-collection (DGC) protocol, and much of the architecture underlying the original Sun implementation, come from the "network objects" feature of Modula-3.
Generalized code
The programmers of the original RMI API generalized the code somewhat to support different implementations, such as a HTTP transport. Additionally, the ability to pass arguments "by value" was added to CORBA in order to be compatible with the RMI interface. Still, the RMI-IIOP and JRMP implementations do not have fully identical interfaces.
RMI functionality comes in the package java.rmi
, while most of Sun's implementation is located in the sun.rmi
package. Note that with Java versions before Java 5.0 developers had to compile RMI stubs in a separate compilation step using rmic
. Version 5.0 of Java and beyond no longer require this step.
External links
- "Remote Method Invocation Home". Oracle Technology Network for Java Developers. Redwood Shores, CA, USA: Oracle Corporation. Retrieved 2014-07-14.
- The Java RMI tutorial - a good starting point to learn RMI. Also check the Hello World in RMI
- the Java RMI online training - Very good for training JavaRMI and as reference
- The RMI page in the JDK docs
java.rmi
(Sun's Java API Reference for the RMI package)- Ann Wollrath; Roger Riggs; Jim Waldo. "A Distributed Object Model for the Java System" (PDF) (Document). Retrieved 2009-02-11.
{{cite document}}
: Cite document requires|publisher=
(help); Unknown parameter|access-date=
ignored (help); Unknown parameter|url=
ignored (help) - Programming WebLogic RMI - an introduction to RMI in Oracle Weblogic.
- General Remote Method Invocation