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