O que Java RMI
RMI (Remote Method Invocation) é uma das abordagens da tecnologia Java para prover as funcionalidades de uma plataforma de objetos distribuídos. Esse sistema de objetos distribuídos faz parte do núcleo básico de Java desde a versão JDK 1.1, com sua API sendo especificada através do pacote java.rmi e seus subpacotes.
Através da utilização da arquitetura RMI, é possível que um objeto ativo em uma máquina virtual Java possa interagir com objetos de outras máquinas virtuais Java, independentemente da localização dessas máquinas virtuais.
No desenvolvimento de uma aplicação cliente-servidor usando Java RMI, como para qualquer plataforma de objetos distribuídos, é essencial que seja definida a interface de serviços que serão oferecidos pelo objeto servidor.
Os serviços especificados pela interface RMI deverão ser implementados através de uma classe Java. Nessa implementação dos serviços é preciso indicar que objetos dessa classe poderão ser acessados remotamente.
Com a interface estabelecida e o serviço implementado, é possível criar as aplicações cliente e servidor RMI.
A execução da aplicação cliente-servidor em RMI requer, além da execução da aplicação cliente e da execução da aplicação servidor, a execução do serviço de registro de RMI. Além do princípio básico de execução de aplicações RMI, a arquitetura RMI oferece facilidades para operação com código disponibilizado de forma distribuída e ativação dinâmica, além de outros serviços distribuídos.
É interessante observar como padrões de programação distribuída, como a fábrica de objetos remotos e o padrão de callback, são trabalhados em aplicações RMI.
Objetivo
O principal objetivo para os criadores (designers) do RMI era permitir os programadores a desenvolverem programas distribuídos em Java com a mesma sintaxe e semântica usada em programas não-distribuídos. Para isso, eles tiveram que mapear cuidadosamente como classes Java e objetos trabalham em uma única Java Virtual Machine (JVM) para um