Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ REDES DE COMPUTADORES SISTEMAS DE INFORMAÇÃO Arquitetura de Sistemas Distribuídos Prof. Fernando André fandre_2005@yahoo.com.br Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Remote Procedure Call – RPC É um Middleware, é uma coleção de ferramentas (bibliotecas e protocolos) com o objetivo de tornar a programação de sistemas distribuídos mais próxima da programação de sistemas monoprocessados. Estrutura a programação distribuída com base na chamada pelos clientes de procedimentos que são executados remotamente no servidor. Permite que processos executem funções pertencentes a processos que rodam em outras máquinas. Deve ser transparente ao programador, que não necessita tratar de forma especial uma rotina executada remotamente, ou seja, a RPC deve ser idêntica à chamada de uma rotina local. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Birrell and Nelson (1984) “Permite a processos chamar procedimentos localizados em outras máquinas”. Desenvolvedor não precisa se preocupar mais com detalhes de implementação de rede. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Problemas: • Arquiteturas de duas máquinas podem ser diferentes; • Espaço de endereçamento diversos; • Passagem de parâmetros. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Transparência A idéia fundamental é fazer com que uma chamada de procedimento remoto pareça com uma chamada local. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Similar ao modelo de chamadas locais de procedimentos • Rotina que invoca o procedimento coloca os argumentos em uma área de memória e transfere o controle para o procedimento em execução, que lê os argumentos e os processa. • Em algum momento, a rotina retoma o controle, extraindo o resultado da execução de uma área da memória. Após isso, a rotina prossegue com a execução normal. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Thread é responsável pelo controle de dois processos: • Invocador e Servidor. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Invocador O processo invocador primeiro manda uma mensagem para o processo servidor e aguarda uma mensagem de resposta. A mensagem de invocação contém os parâmetros do procedimento e a mensagem de resposta contém o resultado da execução do procedimento. Uma vez que a mensagem de resposta é recebida, os resultados da execução do procedimento são coletados e a execução do invocador prossegue. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Servidor Do lado do servidor, um processo permanece em espera até a chegada de uma mensagem de invocação. Quando uma mensagem de invocação é recebida, o servidor extrai os parâmetros, processa-os e produz os resultados, que são enviados na mensagem de resposta. O servidor, então, volta a esperar por uma nova mensagem de invocação. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Transparência conseguida com o uso de stubs (apêndices) Stub do cliente É responsável por empacotar os parâmetros em uma msg e enviar a msg para a máquina do servidor. Quando resposta chega, resultado é copiado para cliente, e controle volta a ele Stub do servidor É responsável por desempacotar parâmetros, chamar o procedimento do servidor e retornar resposta para máquina do cliente Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Cliente Chamada Empacota Parâmetros Desempacota ResultadoRetorno Desempacota Parâmetros Servidor Empacota Resultado Chamada Retorno Máquina Cliente Máquina Servidora Stub do ServidorStub do Cliente Transporte de mensagens na rede SO SO Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Passos seguidos por um RPC: 1. Procedimento do cliente chama stub cliente de modo usual; 2. Stub do cliente constrói uma msg e chama o SO; 3. SO envia msg para SO remoto; 4. SO remoto repassa msg para stub do servidor; 5. Stub do servidor desempacota parâmetros e chama procedimento servidor; 6. Procedimento servidor executa e retorna o resultado; 7. Stub do servidor empacota resultado em uma msg e chama SO; 8. SO remoto envia msg para SO da máquina cliente; 9. SO do cliente passa msg para stub cliente; 10.Stub cliente desempacota resultado, repassando-o para o cliente. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Chamada a Procedimento Remoto Possíveis falhas no servidor: • O cliente não consegue localizar o servidor; • A mensagem de requisição do cliente para o servidor é perdida; • A mensagem de resposta do servidor para o cliente é perdida; • O servidor falha depois de receber uma requisição; • O cliente falha depois de fazer uma requisição.
Compartilhar