Invocação de Método Remoto (RMI) é um mecanismo que permite que um objeto cliente em um processo invoque métodos em um objeto servidor em outro processo na rede. Os objetos cliente e servidor se comunicam por meio de um protocolo chamado
Java Remote Method Protocol (JRMP) .
Veja como o RMI funciona em sistemas distribuídos:
1.
Geração de esboço: O compilador RMI gera uma classe stub no lado do cliente que atua como proxy para o objeto remoto. A classe stub contém os mesmos métodos da interface remota.
2.
Registro remoto de objetos: O objeto servidor registra-se em um registro, que é um serviço que mantém um mapeamento de nomes de objetos para referências de objetos.
3.
Invocação do cliente: Quando o objeto cliente chama um método na interface remota, a chamada é interceptada pelo stub. O stub então envia uma solicitação ao registro, solicitando a referência do objeto remoto.
4.
Invocação de método de servidor: Depois que o registro fornece a referência, o stub a utiliza para enviar a chamada do método ao servidor. O servidor recebe a chamada e executa o método no objeto remoto real.
5.
Tratamento de respostas: O servidor envia o resultado da chamada do método de volta ao stub, que então retorna o resultado ao objeto cliente.
RMI é um mecanismo amplamente utilizado para construir aplicativos distribuídos em Java. Ele fornece uma maneira independente de plataforma e de linguagem neutra para invocar métodos em objetos que podem residir em máquinas diferentes ou em processos diferentes.