Você está na página 1de 8

Comunicao Inter-Processos

-> RMI

-> RPC

-> TCP

-> UDP (Abstrao de passagem de mensagem)

1
Caractersticas de Projeto para RMI
. Semntica de Invocao de RMI
. Transparncia da RMI

-> Semntica de Invocao: Trata das diferentes formas


de entrega das mensagens

. Problemas a serem tratados:

Retransmitir Mensagem de Requisio?

Quando retransmisses so feitas, deve-se filtrar


requisies duplicadas

Retransmisso de resultados
2
Semntica de Invocao
Medidas de Tolerncia Falhas Semntica
de Invocao
Retransmiss Filtrar Retransmisso de
o da Duplicatas resultado ou re-
mensagem execuo da
de operao
No
requisio
No No Aplicvel Talvez
Aplicvel

Sim No Re-execuo da Ao menos


operao uma vez
(operaes
idempotente
s)
Sim Sim Retransmitir No mximo
resultado uma vez

3
Transparncia em RMI
. Sintaxe para RMI deve ser diferente (sistema Argus) ou no
(Java RMI e Corba)?

. Qual semntica de invocao usar?

O concenso atual de que as invocaes remotas devem ser


transparentes em termos de sintaxe, mas a diferena entre
objetos remotos e locais deve ser expressada em suas interfaces.

Em Java RMI um objeto remoto deve implementar a interface


Remote e deve lanar RemoteExceptions.

. O conhecimento de que um objeto ser acessado atravs de


invocao remota tem outra implicao para o
programador/projetista: este objeto deve manter seu estado
consistente na presena de acesso concorrente por parte de
mltiplos objetos.

4
Implementao de RMI

. Mdulo de Comunicao
Responsvel pela troca de mensagens de
request/reply (implementao da semntica
de invocao)

. Mdulo de Referncia Remota


Armazena as referncias de objetos remotos
com a traduo para os objetos proxy.

5
O Software RMI
. Proxy: a representao local de um objeto remoto. Seu papel
tornar transparente a invocao remota de mtodo. Fica com o
cliente. Tambm chamado de Stub. Esconde os detalhes da
referncia de objeto remoto, enpacotamento e
desempacotamento de resultados e referncia de objeto remoto.

. Dispatcher: O servidor tem um dispatcher e skeleton para cada


classe representando um objeto remoto. O dispatcher recebe a
mensagem de requisio do mdulo de comunicao, seleciona o
mtodo apropriado no skeleton passando-o para o objeto
implementado pelo servidor.

. Skeleton: A classe de um objeto remoto tem um skeleton, que


implementa os mtodos da interface remota. Ele desempacota os
argumentos da mensagem de requisio, invoca o mtodo
correspondente no objeto remoto. Aguarda a invocao
completar e ento empacota o resultado com as possveis
excees, em uma mensagem de resposta para o proxy.
6
Gerao de Classes para Proxies, Dispatchers e
Skeletons

. So geradas automaticamente por um compilador


de interface.

. Em CORBA IDL pode-se gerar tais classes para C+


+

. Em Java RMI, o conjunto de mtodos oferecidos


por um objeto remoto definido como uma
interface Java, que deve ser implementada na
classe do objeto remoto. O compilador Java RMI
gera o proxy, dispatcher e skeleton.

7
Cliente e Servidor e Binder
. Servidor conter o objeto remoto, skeleton e
dispatcher. Dever ter uma seo de inicializao
responsvel por instanciar o objeto remoto e
registr-lo no servio de nomes.

. Cliente obter referncia do objeto remoto no


servio de nomes. Dever conter a classe do
proxy.

. Binder o servio de nomes do RMI. responsvel


por registrar os objetos remotos do servidor
para disponbiliz-los aos clientes tornando
transparente a localizao dos objetos remotos.
8

Você também pode gostar