Curiosidades Remotas
Eu já fiz vários sistemas que usavam RMI (Remote Method Invocation, a implementação do RPC em Java,) mas recentemente precisava confirmar um certo comportamento. A dúvida é (era) a seguinte:
Uma vez recuperada uma referência para um objeto remoto através de um lookup no rmi registry, podemos passar essa referência (stub) para via rmi para que outros objetos também acessem o objeto remoto?
Então antes de continuar preciso explicar o cenário, temos um objeto remoto no rmi registry, vamos chamá-lo de servidor, e tenho um outro objeto que acessa esse objeto remoto, vamos chamá-lo de cliente. Será que eu posso passar a referência que o cliente recuperou para o servidor para um outro objeto cliente via rmi ? Mais ainda, será que ambos acessariam o mesmo estado do objeto remoto servirdor ?
Bom é claro que na teoria a resposta é simples e direta, sim é possível, mas eu queria testar isso, então escrevi um pequeno código que permitisse encadear as chamadas e não é que deu certo mesmo ? Isso é uma ótima oportunidade para trabalhar, quer dizer, uma vez conseguindo uma referência para um objeto remoto, podemos passá-la pelo sistema de forma que todos utilizem o mesmo objeto remoto, mesmo que nem todos os objetos saibam executar o lookup ou mesmo que nem todos os outros objetos “saibam” que estão executando em uma aplicação distribuída.


Leave a Reply