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.

Veja também, da documentação do Java, os recursos FAQ RMI, RMI tools e o RMI Guide.