Remote Method Interface (RMI)
Java RMI allows the programming of distributed applications across the Internet at a more abstract level than sockets. One Java application or applet (the client in this context) can call the methods of an instance, or object, of a class of a Java application (the server in this context) running on another host machine.
An example of Distributed Object Programming - similar to CORBA, except that CORBA allows the remote objects to be programmed in other languages.
The goal is to make calls to remote methods on the local machine have the same syntax and semantics as local calls.