RMI is short for Remote Method Invocation. It allows you to invoke methods on objects that reside on another machine in another VM and treat them as if they were on the local machine. The procedure is simple: at the server side, an RMI service is created. This service is an object with a main class that does nothing else than creating the remote object with new and binding it into an RMI registry with a unique name. The client needs to know this name to ask this remote registry to get a reference to the service. Once the client has this reference, it can make remote method calls with parameters and return values as if the object (service) were to be on the local host. Objects are transmitted through serialization.