Java Remote Method Invocation (RMI) is a Java application programming interface that allows mechanism through which an object running in one Java virtual machine can invoke methods on an object running in another Java virtual machine by sharing resources and processing load across systems. RMI enables remote communication between programs written in the Java programming language. Communication is done by exchanging java object on the network. Exchanging of java object through the network requires marshelling and unmarshelling of parameters to which RMI achives by using object serialization.
RMI allows uses of any type of Java object - even if the client or server has never encountered it before. RMI allows loading of new object types as required by both client and server.
Java provides two common implementations of the API. The original implementation depends on Java Virtual Machine (JVM) class representation mechanisms therefore only supports making calls from one JVM to another. Java Remote Method Protocol (JRMP) is the protocol used to implement RMI. Later CORBA was developed to support code running in a non-JVM context.
The original RMI API was developed to support different
implementations, like HTTP
transport. Later some work on CORBA, in order to add a pass by value
functionality, to support the RMI interface. Still, the implementation to both
RMI-IIOP and JRMP are not fully identical in their interfaces. RMI APIs comes
under the package
Note: Java versions up to 5.0 necessitates of
compiling RMI stubs
in a separate compilation step using
rmic. While Version 5.0
and beyond does not require this step.
To know in detail about RMI click on the link:
Recommend the tutorial