Remote Method Invocation. A Java API/protocol to invoke methods in objects located in other JVMs. Since Java 1.3 the underlying protocol can also be CORBA´s IIOP (with some restrictions on the programming).

To use RMI you need to use rmic, the RMI compiler, that will create stub classes for your class. This class will forward all the method invocations to the remote object.

One big drawback of RMI (IMO) is that if forces you to design your classes with it in mind.