A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

1 Sistemas Distribuídos
Capítulo 2 RPC Nuno Valero Ribeiro Gab. F269 21-nov-18

2 Chamada de Procedimentos Remotos
Objectivo! Facilitar a tarefa de programar aplicações distribuídas que usem o modelo Cliente/Servidor. Como? Oferecendo a possibilidade de executar código dum servidor remoto usando uma sintaxe idêntica à chamada de procedimentos (locais) Porquê? Modelo de passagem de mensagens inadequado aos algoritmos procedimentais das linguagens de programação mensagens são assíncronas e processamento é paralelo chamadas de funções são síncronas e existe 1 só fluxo de processamento complexo, endereços, formatos, heterogeneidade, erros Nuno Valero Ribeiro Gab. F269 21-nov-18

3 Gab. F269 nribeiro@est.ips.pt
Vantagens Concepção simplificada dum programa distribuído: basta definir quais as rotinas que vão ser fornecidas pelo servidor Adequado ao modelo de linguagem procedimental Independente do protocolo de comunicação Independente localização dos servidores Independente da linguagem de programção Nuno Valero Ribeiro Gab. F269 21-nov-18

4 Gab. F269 nribeiro@est.ips.pt
Funcionamento Servidor: cria portos de comunicação associa um porto ao procedimento de despacho regista o serviço num serviço de nome Cliente: cliente obtém o endereço do serviço através do serviço de nomes estabelece-se um canal de transporte cliente/servidor invocação da RPC. autentica-se (eventualmente) evoca procedimento (mensagem contém identificador do procedimento e parâmetros definidos através da interface do serviço.) Nuno Valero Ribeiro Gab. F269 21-nov-18

5 Gab. F269 nribeiro@est.ips.pt
Funcionamento II 2- Localizar o Servidor 1- Registar Serviço Cliente Servidor Serviço de Nomes 3- Estabelecimento da Ligação Na realidade o cliente e servidores chamam procedimentos locais (stub routines, rotinas de adaptação) que fazem a conversão de argumentos em parâmetros das mensagens, o empacotamento dos dados, o envio da mensagem e resolvem o paralelismo de fluxos de controlo independentes Nuno Valero Ribeiro Gab. F269 21-nov-18

6 Gab. F269 nribeiro@est.ips.pt
Transparência Sintaxe da linguagem de programação: deve poder usar-se intuitivamente para o programador solução: linguagem IDL + alguns parâmetros para especificação dos procedimentos remotos Passagem de parâmetros: heterogeneidade; valor ou referência Semântica da execução dos procedimentos remotos: modelo de faltas diferente Desempenho: execução em espaço de endereçamento distinto Nuno Valero Ribeiro Gab. F269 21-nov-18

7 IDL --- Linguagem de descrição de interfaces
Objectivo: especificação da interface do serviço oferecido a clientes versão simples duma linguagem procedimental (C, Pascal) apenas contém declarações de: rotinas tipos de dados Extensões para uso com RPC: sentido da passagem dos parâmetros [in][out][inout] novos tipos (string, opaque, ...) arrays variáveis [ptr] Nuno Valero Ribeiro Gab. F269 21-nov-18

8 Gab. F269 nribeiro@est.ips.pt
Compilação IDL IDL Interface Definition banco.idl Compiler Insert Files banco.h Client Stub Files banco_cstub.c Server Stub File banco_sstub.c Nuno Valero Ribeiro Gab. F269 21-nov-18

9 Gab. F269 nribeiro@est.ips.pt
Arquitectura RPC Código do Servidor Rotinas de Adaptação Biblioteca de Suporte Transporte de Dados Código do Cliente Protocolo de Apresentação Controlo Transporte Nuno Valero Ribeiro Gab. F269 21-nov-18

10 Gab. F269 nribeiro@est.ips.pt
Faltas no RPC retransmissão perdida pedido resposta execução CLIENTE SERVIDOR temporização I falha da máquina reinício II Nuno Valero Ribeiro Gab. F269 21-nov-18

11 Gab. F269 nribeiro@est.ips.pt
Faltas no RPC perdida pedido resposta execução CLIENTE SERVIDOR temporização III falha reinício IV Nuno Valero Ribeiro Gab. F269 21-nov-18

12 Gab. F269 nribeiro@est.ips.pt
Semânticas RPC Talvez Em caso de falha, o cliente não sabe se o procedimento foi ou não executado no servidor Pelo menos uma vez (at least once) Em caso de falha, o procedimento foi executado uma ou mais vezes no servidor Realização simples: pedido é repetido pelo cliente Adequado a rotinas idempotentes: o efeito de múltiplas execuções é idêntico a uma só execução com os mesmos parâmetros Nuno Valero Ribeiro Gab. F269 21-nov-18

13 Gab. F269 nribeiro@est.ips.pt
Semânticas RPC No máximo uma vez (0 ou 1 vezes) Em caso de falha, ou o procedimento não foi executado no servidor (e retorna uma condição de erro), ou foi executado apenas uma vez Obriga a detectar pedidos duplicados no servidor Implementação simples sobre protocolos de transporte fiáveis (ex: TCP), mas complexa sobre protocolos não fiáveis Exactamente uma vez Semântica ideal (exige transacções) Difícil ou impossível de realizar para certas faltas Nuno Valero Ribeiro Gab. F269 21-nov-18

14 Protocolo de representação de dados
Mensagens auto-descritivas: cada campo contém um descritor que identifica o seu tipo (ex: ASN.1) Descrição implícita: o formato das mensagens é definido por convenção Protocolo standard: o emissor converte os dados para o formato standard, o receptor converte-o para o seu formato local (ex: XDR) Simples de acrescentar novas máquinas à rede Pode evitar conversões se os formatos locais forem iguais ao standard Pode obrigar a conversões entre máquinas iguais! Conversão no receptor: emissor envia os dados sem conversão, receptor converte-os para o seu formato local Uma conversão no máximo Pode obrigar a modificar as outras máquinas quando um novo formato é introduzido Nuno Valero Ribeiro Gab. F269 21-nov-18

15 Implementação e desempenho
Tarefas nos servidores Lançadas automaticamente para servirem novos pedidos Número de tarefas varia entre dois limites Podem levantar problemas complicados de ordenação dos pedidos no servidor Chamadas em ricochete O servidor pode por sua vez ser cliente de outro servidor Caso especial: o servidor é o cliente inicial Processamento complexo no cliente Componentes importantes no desempenho Tempo de execução dos stubs Carga de sistema operativo Tempo de transmissão das mensagens Nuno Valero Ribeiro Gab. F269 21-nov-18

16 Caracterização dos sistemas RPC
Linguagem IDL Sintaxe da IDL Passagem de parâmetros Semântica de execução do procedimento Protocolo de ligação - binding Protocolo de apresentação de dados Segurança Desempenho Multitarefa Optimizações Chamadas em ricochete Nuno Valero Ribeiro Gab. F269 21-nov-18


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google