[quote=Jaba]Certo, entao eu vou ter um cliente com uma Interface, e os servicos remotos com a Implementacao.
Entao, com o cliente, eu posso invocar metodos em objetos remotos em outras VM’s. E como voce citou, asaudate, JNDI pode ate ser usado, mais dei uma pesquisada e vi tambem que o proprio RMI possui um meio de guardar o endereco dos objetos remotos.
Bom, eu nao sei se eu tenho um conceito errado, mas na minha ideia, RMI era pra fazer balanco de carga da seguinte maneira: tenho 3 servidores, com a mesma aplicacao, e o RMI “balancea” automaticamente isso pra mim, por exemplo: tem muita requisicao no servidor 1, entao vamos passar essas requisicoes pro servidor 2, e assim vai. Mas a visao que eu estou tendo disso e que voce tem um servico especifico em um servidor, e voce redireciona o servico para um servidor remoto manualmente, apenas recebendo o retorno final de um determinado metodo.
Entao, qual seria o real proposito? Redirecionar requisicoes que eu sei que sao pesadas para um servidor que eu “configurei”?[/quote]
Então, acho que você foi um pouco “longe demais” com o conceito =)
RMI é someeeente pra invocação remota de métodos. A parte de balanceamento de carga, assim como outras features, ficam delegadas a APIs que operam com RMI, mas não somente com isso.
E, quanto à necessidade real… é bem raro, mas pode acontecer. Por exemplo, alguns recursos mais “antigos” são acessados via JNI (invocação para DLL´s e afins). A maneira “enterprise” de usar JNI é usando JCA. Que usa, adivinhe o que? Sim, RMI.
Além do que, como eu mencionei antes, EJB opera sobre RMI. Assim, toda vez que você usa EJB, é como se você estivesse usando RMI. Tá certo, exemplo meio forçado, mas só pra mostrar que não é uma tecnologia inútil. =)
[]´s