Rmi - metodo de conexao remota
É uma facilidade que permite a programas escritos em Java chamar certos métodos em um servidor remoto. A interface RMI permite que objetos Java em hosts diferentes comuniquem-se entre si. Cada objeto remoto implementa uma interface remota que especifica quais de seus métodos podem ser invocados pelos clientes. Os clientes podem invocar métodos de um objeto remoto quase exatamente da mesma maneira que eles invocam métodos locais.
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.
O funcionamento de RMI consiste basicamente em dois programas, segundo a arquitetura cliente-servidor, onde um seria o cliente e outro o servidor. O servidor instancia objetos remotos, o referencia com um nome e faz um "BIND" dele numa porta, onde este objeto espera por clientes que invoquem seus métodos. Já o cliente referencia remotamente um ou mais métodos de um objeto remoto. RMI fornece os mecanismos para que a comunicação entre cliente e servidor seja possível. Esse tipo de aplicação geralmente é denominada como Aplicação de Objeto Distribuído.
Uma das principais vantagens do RMI é sua capacidade de baixar o código de um objeto, caso a classe desse objeto não seja definida máquina virtual do receptor.
O "stub" funciona semelhante a um proxy para o objeto remoto. Quando um objeto local invoca um método num objeto remoto, o "stub" fica responsável por enviar a chamada ao método para o objeto remoto.
Na "Virtual Machine" remota, cada objeto deve ter um "skeleton" correspondente ao "stub". O "skeleton" é responsável por enviar a chamada ao objeto