SISTEMAS DISTRIBUÍDOS

Propaganda
SISTEMAS DISTRIBUÍDOS
RMI
Slide 5
Nielsen C. Damasceno
RMI
• O RMI (invocação de método remoto) é a forma
como o conceito de RPC é implementado na
linguagem Java.
• Para a comunicação, o RMI possui três camadas,
sendo elas:
– Stub/Skeleton: é invocado primeiro, recebendo os
objetos
a serem enviados e serializando-os
(convertendo para bytes).
– RRL – Camada de referência remota: cada lado possui a
sua, sendo que ela é responsável por montar a
mensagem de envio/resposta entre cliente e servidor.
– Transporte: camada utilizada para envio das
informações via rede.
RMI
Exemplo
• Neste exemplo, nós vamos criar uma
aplicação em RMI.
• Para isso será definida uma interface que
contém um método remoto, chamado
montaMensagem. O servidor irá
implementar o método remoto e o
disponibilizará aos clientes.
Exemplo
• O servidor irá se registrar no binder.
• O cliente vai procurar, no binder, o objeto
que possui esta funcionalidade através de
seu nome e executará o método
correspondente.
• Criaremos quatro arquivos em Java:
– Servidor.java
– ServidorImpl.java
– ServidorPrincipal.java
– Cliente.java
Exemplo
• O projeto Servidor terá os seguintes arquivos:
– Servidor.java
– ServidorImpl.java
– ServidorPrincipal.java
• O projeto Cliente terá os seguintes arquivos:
– Servidor.java
– Cliente.java
Exemplo
• Servidor.java: arquivo que contém a interface com a
assinatura do método remoto a ser disponibilizado. A
interface deve estar no projeto do servidor e do
cliente.
• ServidorImpl.java: classe que implementa o
método remoto. Este arquivo estará somente no
servidor.
• ServidorPrincipal.java: classe que contém o
método main do servidor, sendo responsável por
registrar o serviço no binder. Este arquivo estará
somente no servidor.
• Cliente.java: classe que contém a lógica do cliente.
Este arquivo estará somente no cliente.
Servidor.java
ServidorImpl.java
ServidorPrincipal.java
Cliente.java
Exercícios
http://paginas.fe.up.pt/~eol/AIAD/aulas/JINIdocs/rmi2.html
Download