The Java Remote Method Invocation API, is application programming interface that performs the object equivalent to remote procedure calls. There are two common implementations of the API. The original implementation depends on Java Virtual Machine (JVM) class representation mechanisms and therefore it only supports making calls from one JVM to another. The protocol used for this implementation is known as Java Remote Method Protocol (JRMP). A CORBA version was developed later to support for the code running in a non-JVM context. The term RMI may be used for solely the programming interface or may signify both the API and JRMP, while the term RMI-IIOP, read RMI over IIOP, denotes the RMI interface delegating most of the functionality to the supporting CORBA implementation.
The original RMI API was designed in such a way so that it can support different implementations, such as an HTTP transport. Moreover, work was done to CORBA by adding a pass by value capability for supporting the RMI interface. But RMI-IIOP and JRMP implementations are still not fully identical in their interfaces.
java.rmi is the package used in rmi
Java versions upto 5.0, RMI stubs are required to compile in a separate
compilation step using rmic while versions including 5.0 and beyond are no longer require this step.
Recommend the tutorial