Anda di halaman 1dari 31

CHAMADA DE PROCEDIMENTO REMOTO

Anderson Pinheiro Cavalcanti

Sumrio
2

Comunicao Protocolos em camada Modelo OSI RPC Passagem de parmetros Passagem de ponteiros

Comunicao
3

Est no corao de todo sistema distribudo; No tem sentido estudar sistemas distribudos sem examinar cuidadosamente os modos pelos quais processos em mquinas diferentes podem trocar informaes;

Baseada em troca de mensagens de baixo nvel.

Troca de mensagens
4

As mensagens so objetos de dados cuja estrutura e aplicao so definidas pelas prprias aplicaes que a usaro. Sendo a troca de mensagens feita atravs de primitivas explicitas de comunicao:

Send(destino, mensagem) envio da mensagem para o destino receive(origem, mensagem) recebimento da mensagem enviada pela origem

Forma de comunicao
5

Direta

send: h indicao do processo receptor. send(process, msg) receive: h indicao do emissor. receive(process, msg)
send: envio para uma porta ou mailbox sem o conhecimento de qual ser o receptor. send(mailbox, msg) receive: obteno da mensagem guardada no mailbox, possivelmente desconhecendo a identidade do processo emissor. receive(mailbox, msg)

Indireta

Forma de sincronizao
6

Sncrono ou Bloqueante
Send: espera at que a mensagem seja recebida pelo receptor. Receive: aguarda at a mensagem estar disponvel

Assncrona ou No Bloqueante
Send: envia a mensagem mas no espera at que a mensagem seja recebida pelo receptor. Receive: se a mensagem estiver disponvel, recebe a mensagem, caso contrrio continua o processamento retornando uma indicao de que a mensagem no estava disponvel.

Protocolos em camadas
7

Processo A Mensagem em seu endereo Chamada de sistema

Processo B

REDE Mensagem ser enviada SISTEMA OPERACIONAL

Protocolos em camadas
8

Processo A

Processo B

Protocolos de comunicao

Estoque de um supermercado Romance francs Codificado em EBCDIC

Modelo OSI
9

Para ficar mais fcil lidar com os vrios nveis e questes envolvidos em comunicao, a ISO (International Organization for Standardization) desenvolveu um modelo de referncia que identifica claramente os vrios nveis envolvidos, d-lhes nomes padronizados e indica qual nvel deve fazer tal servio. Deve-se salientar que os protocolos que foram desenvolvidos como parte do modelo OSI foram amplamente utilizados e, hoje em dia, esto definitivamente mortos e encerrados. Contudo o modelo subjacente em si mostrou ser bastante til para entender redes de computadores.

Camadas do modelo OSI


10

Protocolo de Aplicao Aplicao Protocolo de Apresentao 7

Apresenta o
Sesso

6
Protocolo de Sesso 5 Protocolo de Transporte 4 Protocolo de Rede 3

Transporte Rede

Protocolo de Enlace
Enlace Protocolo de Fsica Fsica 1 2

Rede

Protocolos de camadas
11

Diviso da comunicao em 7 camadas Processo cria mensagem que ao passar pelas vrias camadas de protocolos partida e tem cabealhos adicionados a ela. Diviso em camadas torna sua implementao mais flexvel, facilitando atualizaes e correes.

Camada fsica
12

Transmisso de sequncias de bits sobre meio fsico Especifica


voltagens

ecorrentes

tempos
conectores

e pinagens meio fsico utilizado aspectos eletrnicos e mecnicos

No trata de correo de erros na transmisso

Camada de Enlace
13

Organiza sequncias de bits em conjuntos de bits chamados frames Reconhece incio e fim de frames Detecta perdas de frames e requisita retransmisso

Camada de Rede
14

Encaminha informao da origem para o destino (roteamento) Controla fluxo de transmisso entre sub-redes (controle de congesto) Funes de contabilizao

Camada de Transporte
15

Divide e reagrupa a informao binria em pacotes Garante a sequncia dos pacotes Assegura a conexo confivel entre origem e destino da comunicao Primeira camada que estabelece comunicao origem-destino

Camada de Sesso
16

Gerencia sesses de comunicao Sesso uma comunicao que necessita armazenar estados Estados so armazenados para permitir reestabelecimento da comunicao em caso de queda da comunicao

Camada de Apresentao
17

Trata da representao dos dados em alto nvel Adoo de sistema padronizado de representao de caracteres Adoo de cdigos de representao numrica padro Compresso de dados Codificao de dados

Camada de Aplicao
18

Aplicaes que oferecem os servios ao usurio final Unificao de sistemas de arquivos e diretrios Correio eletrnico Login remoto Transferncia de arquivos Execuo remota

19

Chamada de Procedimento Remoto


Muitos sistemas distribudos so baseados em troca explicita de mensagens entre processos. Contudo, os procedimentos send e receive no escondem absolutamente nada da comunicao, o que importante para obter transparncia de acesso em sistemas distribudos. Esse problema conhecido h muito tempo, e s foi feito algo para resolv-lo em 1984, em um artigo de Birrell e Nelson. O artigo props um modo completamente diferente de manipular comunicao.

20

Chamada de Procedimento Remoto

A sugesto de Birrell e Nelson era permitir que programas chamassem procedimentos localizados em outras mquinas.
Mquina A

processo

Mquina B procediment o

Chamador ser suspenso

Execuo do procedimento Chamado ocorre em B

Informaes podem ser transportadas do chamador para o procedimento chamado nos parmetros e podem voltar no resultado do procedimento. Absolutamente nada da troca de mensagens visvel para o programador.

RPC
21

Permite ao programador projetar um programa convencional que solucione o problema, e ento dividir o programa em procedimentos que podem ser executadas em vrios computadores. Uma mensagem enviada por um cliente a um servidor corresponde a uma "chamada" de um procedimento remoto, e uma resposta do servidor ao cliente corresponde a um "retorno" de uma chamada de procedimento. Uma operao possui uma assinatura (o nome da operao), seus parmetros de entrada, resultados e excees que podem acontecer

RPC
22

RPC possibilita a comunicao entre mquinas com diferentes SOs e/ou configuraes de hardware, pois a mensagem transferida escrita em uma estrutura de dados padronizada. Mquina com menor capacidade de processamento pode requisitar servios para outra mais rpida . O objetivo da RPC manter a transparncia da execuo, fazendo com que chamadas remotas se paream com chamadas locais.

Problemas no RPC
23

O procedimento chamador e o procedimento chamado rodam em mquinas diferentes e executam em espaos de endereo diferentes. Tambm preciso passar parmetros e resultados, o que pode ser complicado, em especial se as mquinas no forem idnticas. Qualquer uma das duas mquinas pode falhar e cada uma das possveis falhas causa problemas diferentes.

Stub ou Apndice de cliente


25

O stub faz com que uma chamada remota do cliente, que executada na mquina servidora, se parea com uma chamada local feita a um procedimento dentro do mesma mquina do cliente.

Essa funo trata da converso dos dados para uma representao externa dos dados, envia uma mensagem de solicitao, recebe a resposta e converte o retorno da representao externa para o tipo de dado especificado.

26

Skeleton ou Apndice de servidor

O skeleton faz com que uma requisio de servio de um cliente, que recebido de outra mquina, se parea como uma chamada de requisio local. Para invocar um procedimento, o cliente faz uma solicitao para o client stub, que transporta a mensagem para o servidor, que por sua vez entrega a mensagem ao server stub.

27

Espera pelo resultado Cliente RPC Requisio Retorno da chamada Resposta

Servidor
Chamada de procedimento local E retorno dos resultados Tempo

Operao RPC Bsica


28

1. Procedimento cliente chama o stub do cliente (mesmo modo local ou remoto) 2. Stub do cliente monta mensagem e chama SO local

3. OS do cliente envia mensagem 4. OS remoto entrega mensagem ao stub do servidor


5. Stub do servidor desempacota parmetros e chama o servidor 6. Servidor executa e retorna o resultado para o stub 7. Stub do servidor empacota mensagem e chama o SO local

8. SO do servidor envia mensagem para o SO do cliente 9. SO do Cliente entrega mensagem ao stub do cliente

Passagem de parmetros
29

preciso tratar a passagem de parmetros e a converso de dados. Isso feito pela operao de empacotamento de parmetros (parameter marshalling). Essa operao trata problemas de representao distinta de dados (nmeros/caracteres)para mquinas heterogneas. Tanto o cliente quanto o servidor sabem os tipos de parmetros passados (identificador do procedimento + parmetros) e devem conseguir obter a representao correta dos dados.

Passagem de parmetros
30

Opo 1: uso de um padro de representao de dados, como por exemplo o XDR do RPC UNIX. Essa alternativa muito interessante por permitir a comunicao entre mquinas heterogneas.

Opo 2: a mensagem enviada no formato nativo com indicao de qual o formato utilizado. O receptor deve fazer a converso quando for o caso. Essa opo evita custos de converso em ambientes homogneos, entretanto exige que clientes e servidores saibam converter qualquer formato para sua representao nativa.

Passagem de ponteiros
31

Um ponteiro representa um endereo de memria que no tem nenhum significado na mquina remota. Opo 1: proibir a passagem de ponteiros, essa obviamente no uma alternativa desejvel pelo programador; Opo 2: Copiar o valor apontado pela varivel ponteiros. As alteraes so feitas remotamente e no retorno as alteraes so atualizadas no chamador.

Referncias
33

Tanembaum, Andrew S., 1944 Sistemas Distribudos: princpios e paradigmas

Anda mungkin juga menyukai