Java Remote Method Invocation (RMI) enables the programmer to implement a java applications into distributed computing paradigm. These distributed components can invoke methods of remote java objects using RMI. Alternatively, RMI facilitates the direct access to business functions implemented in a remote Java Virtual Machine.

Java RMI uses object serialization to marshal and unmarshal parameters and doesn't truncate types, i.e. supporting true Object-Oriented Polymorphism.