Bom dia,
Java RMI é uma forma de Sun RPC (Remote Procedure Call).
Ele pode chamar métodos em outra JVM, como se estivessem na mesma JVM.
Utilisa JRMP ou utilisa RMI-IIOP para comunicar com objetos CORBA.
Você pode executar várias instâncias de um aplicativo RMI no mesmo
máquina, é suficiente manter o mesmo @IP mas com a mudança do número da porta (Port).
Neste caso, o sistema RMI usa a pilha TCP/IP, como se foram ligados em rede, acima de diferentes PCs. {sem TCP/IP Stack não à RMI}
rmiregistry deve ser lançado na mesma máquina que o servidor de objectos (Remote Objects).
O problema com RMI é quando ele tem de atravessar o firewall na internet. Temos de usar HTTP Tuneling.
RMI tem três categorias de objectos: Locais, remotos, serialisados (transferidos na rede RMI)
Uma coisa que às vezes se esquecem é que o Estado de objetos (attributos) são transferidos, mas não as classes.
{utilise um servidor HTTP ou FTP}
RMI è utilizado no systema JINI e serviço JavaSpaces :
http://www.jini.org/wiki/Main_Page
E no Gigaspaces :
Felizmente o nosso Sol o seja a SUN lançou Super Jini -> JXTA 
(JXTA é baseada no modo de comunicação de mensagems e não em RPC)
Best regards