SISTEMAS DISTRIBUÍDOS Chamada remota de procedimento

Propaganda
SISTEMAS DISTRIBUÍDOS
Chamada remota de
procedimento
Slide 4
Nielsen C. Damasceno
Chamada remota de
procedimento
• O RPC (Remote Procedure Call), uma
aplicação
realiza
a
chamada
de
procedimentos que são executados em
máquinas remotas.
• Para isso, na chamada ao procedimento
remoto, ele efetua a transferência dos
parâmetros à máquina remota, aguarda a
execução do procedimento e recebe o retorno
das informações enviadas como resposta da
máquina remota
Chamada remota de
procedimento
Problemas
• Espaços de endereçamento diferentes nas
máquinas, já que cada máquina possui seu
próprio espaço de endereçamento.
• Arquiteturas diferentes, interferindo nos
tipos de dados. Podemos ter uma
máquina com arquitetura de 32 bits e
outra com arquitetura de 64 bits.
Características
• Exemplo chamada de procedimento local.
Local
• Exemplo chamada de procedimento local.
Remoto
• Para o sistema operacional, o envio e
recebimento de mensagens são transparentes,
ou seja, ele não sabe que é uma chamada
remota de procedimentos.
• No lado do cliente:
– Versão no cliente responsável por iniciar a RPC.
– Esta versão recebe os parâmetros do procedimento e
empacota para envio ao servidor, usando send
interno de Sockets.
– Após o envio, fica bloqueado (em receive) esperando
a resposta do servidor.
Remoto
• No lado servidor:
– Serviço do sistema operacional responsável por
receber um pacote de informações remotas.
– Verifica para qual serviço e executa de acordo com
os parâmetros recebidos.
– Envia a resposta ao cliente, através do send.
• O stud (interface remota) empacota e
desempacota os dados e faz send (lado servidor
e cliente).
• Utiliza parâmetros por valor e referência.
Remoto
Binding dinâmico
• O binding dinâmico efetua a ligação entre
cliente e servidor.
• Ele é realizado através da especificação de um
arquivo de cabeçalho ou de uma interface.
• Neste arquivo, colocamos a assinatura dos
procedimentos remotos.
• Este arquivo é obrigatório nas aplicações do
cliente e do servidor.
Falhas
• A concepção da RPC é deixar a programação
transparente, mas as seguintes falhas podem ocorrer:
–
–
–
–
–
cliente não acha o servidor.
A mensagem do cliente para o servidor foi perdida.
A mensagem do servidor para o cliente foi perdida.
servidor sai do ar após receber uma solicitação.
cliente sai do ar após ter enviado uma solicitação.
Das 5 falhas, somente a última está relacionada a
um problema no cliente. As demais falhas são do
servidor.
Download