Diseño
RMI es un mecanismo ofrecido en Java para invocar un método remotamente. Al ser RMI parte estándar del entorno de ejecución Java usarlo provee un mecanismo simple en una aplicación distribuida que solamente necesita comunicar servidores codificados para Java. Si se requiere comunicarse con otras tecnologías debe usarse CORBA o SOAP en lugar de RMI.
RMI trabaja de modo que el programador solo debe pensar en el modelo descrito por la siguiente figura.
Sin embargo por debajo existe otra capa que es la que se encarga de enlazar los nodos mediante un registro pudiendo uno asi tener varios servidores distribuidos pero solo un registro centralizando asi el servicio.
Como java uno puede tener clases construidas arbitrariamente con estructuras y métodos propios, el traspazo de esta información se le es asignada al servidor de red de la maquina local tanto del servidor como del cliente.
El Diagrama final de como funciona RMI queda mostrado en la siguiente figura.