RPC
IMPLEMENTING REMOTE PROCEDURE CALLS
Andrew D. Birrell and Bruce Jay Nelson
Apresentado por:
• André Ribeiro
• Claudia Carvalho
• Nuno Paiva
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
André Ribeiro
[email protected]
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Conteúdo
• INTRODUÇÃO AOS RPC
• DESCRIÇÃO DA CONCRETIZAÇÃO ESTUDADA
• CONCLUSÕES
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
OBJECTIVO
Permitir que programas chamem procedimentos em
outras máquinas.
Como ?
• Cliente
• Stub do Cliente
• Pacote de Comunicação
• Stub do Servidor
• Servidor
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
FUNCIONAMENTO
Caller Machine
User
User
local
call
stub
pack
argument
Callee Machine
RPC
Runtime
transmit
RPC
Runtime
Call Packet
receive
server
stub
unpack
result
wait
local
return
1998-11-19
unpack
argument
call
work
Result Packet
receive
server
transmit
André Ribeiro, Claudia Carvalho, Nuno Paiva
pack
result
return
SOD
PROBLEMAS
• PASSAGEM DE PARAMETROS
• BINDING
• FALHAS
• PROTOCOLO DE COMUNICAÇÕES
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Claudia Carvalho
[email protected]
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Servidor disponibiliza o seu interface
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server invoca Server Stub
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server Stub chama Exportinterface no RPCRuntime
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Exportinterface invoca Grapevine
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
RPCRuntime grava numa tabela informação sobre o interface
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
1998-11-19
Stub
RPCRuntime
RPCRuntime
André Ribeiro, Claudia Carvalho, Nuno Paiva
Stub
Server
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Cliente procura servidor
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server chama user stub
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
User Stub invoca Importinterface no RPCRuntime
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
RPCRuntime procura no Grapevine o tipo de interface desejado
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Grapevine envia ao RPCRuntime o endereço do servidor
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
User RPCRuntime envia pacote de binding ao Server RPCRuntime
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Tabela do Server RPCRuntime envia identif. único e tabela indexada
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Cliente guarda identif. e tabela indexada para posteriores chamadas
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Cliente estabelece ligação com o servidor
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Cliente faz uma chamada
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Stub empacota mensagem contendo o identificador do interface
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
User RPCRuntime transmite mensagem
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server RPCRuntime utiliza tabela para verificar identificador
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server Stub desempacota chamada
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Server
Stub
RPCRuntime
RPCRuntime
Stub
Server
Server executa o interface
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Efeitos deste tipo de esquema
Importação de Interface
 Identificador único
 Chamadas em procedimentos
exportados pelo RPC

1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Protocolo de comunicações
PUP byte streams; Xerox NS “Courier”
 Desenhado para este projecto

1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Nuno Paiva
[email protected]
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Chamada Simples
Processamento
ZZZZZ
Enviar Chamada
Enviar Resultado
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Chamada Simples
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Chamada Complexa
Send #1
Send ACK#1
Send #2
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Tratamento de Excepções
Send #1
Send ERROR#1
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Gestão de Processos
5 Processos Idle
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Segurança
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Conclusões
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Questões
1998-11-19
André Ribeiro, Claudia Carvalho, Nuno Paiva
SOD
Download

Sem título de diapositivo