The Java Remote Method Invocation API, or RMI, is an application programming interface for performing remote procedural calls. There are two common implementations of the interface, the initial one to be implemented known as JRMP and a version compatible with CORBA. Usage of the term RMI may denote solely the programming interface or may signify both the API and JRMP, whereas the term 'RMI-IIOP, read RMI over I-OP, denotes the RMI interface over the CORBA IIOP bus.

The original RMI API was generalized somewhat to support different implementations. Additionally, work was done to CORBA, adding a pass by value capability, to support the RMI interface. Still, the RMI-IIOP implementation supports only a subset of the JRMP implementation.

RMI is currently being extended in a number of directions. Check: