Baixe o app para aproveitar ainda mais
Prévia do material em texto
Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 1 Comunicação em Sistemas Distribuídos • Em SDs, comunicação entre processos é baseada em trocas de mensagens (mais complexa do que uso de memória compartilhada) • Modelos de comunicação comuns em SDs: – Remote Procedure Call (RPC) – Message-Oriented Middleware (MOM) – Streaming (fluxos de dados) • Outra questão relevante na comunicação em SDs: envio de dados a múltiplos receptores (multicasting) Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 2 Fundamentos • Comunicação efetiva entre computadores envolve acordos sobre diferentes aspectos, desde a seleção de um meio físico e a codificação dos bits para transmissão até questões de apresentação e manipulação dos dados. • Funcionalidades são organizadas em camadas • Protocolos definem regras e formatos de mensagens • Modelo de referência para implementação de protocolos abertos: Modelo de Referência OSI (Open Systems Interconnection Reference Model) – Apesar de ser um modelo aberto, implementações efetivas das funcionalidades previstas nessa especificação nunca foram concretizadas ou amplamente difundidas • Exemplo de protocolos em ampla utilização: arquitetura TCP/IP • Protocolos podem ser orientados a conexão ou não – Comunicação com conexão: requer estabelecimento de conexão antes das transmissões de dados efetivas Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 3 Organização em camadas do modelo ref. OSI Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 4 Funcionalidades em Camadas • Camada física:define meios físicos e cofificações. • Camada de enlace: estrutura de dados para transmissão (frames), identificação dos nós (end físicos – MAC addresses) com contato direto, controle de acesso ao meio físico, consistência dos dados. Ex: Ethernet. • Camada de rede:endereçamento lógico, encaminhamento de mensagens fim- a-fim. Ex: IP (Internet Protocol) envio de pacotes sem conexão (best effort) • Camada de transporte: identificação das entidades comunicantes (aplicações) e comunicação confiável entre origem e destino. Ex: TCP (e UDP). Outros: RTP (Real-time Transport Protocol), SCTP. • Camada de sessão: fornece meios necessários para organizar e sincronizar o diálogo entre processos de aplicação. • Camada de apresentação: preserva conteúdos das informações, tratando sintaxes e armazenamentos • Camada de aplicação: programas para os usuários da rede Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 5 Encapsulamento de dados entre camadas Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 6 Protocolos de middleware • Middleware reside na camada de aplicação • Complexidade justifica separação das funcionalidades em camadas • Várias funcionalidades são comuns a diversas aplicações/serviços do middleware: – Autenticação – Comprometimento / atomicidade / transações – Bloqueio de recursos para controle de acesso – Sincronizações – Chamadas de procedimentos / métodos remotos – Estabelecimento de fluxos – Comunicação multicast • Implementações são realizadas acima da camada de transporte, o que favorece considerar aspectos específicos da camada de aplicação Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 7 Protocolos de middleware Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 8 Tipos de comunicação • Comunicação persistente: mensagem a ser transmitida é armazenada pelo middleware e mantida até que entrega ocorra. Destinatário não precisa estar bloqueado à espera da mensagem. • Comunicação transiente: mensagem é armazenada pelo sistema de transmissão apenas enquanto aplicação estiver ativa. • Comunicação síncrona: remetente é bloqueado até que transmissão ocorra. Diferentes formas de bloqueio: – Emissor é bloqueado até que middleware confirme que fará a transmissão – Emissor é bloqueado até que mensagem seja entregue ao destino – Emissor é bloqueado até que receptor emita confirmação de recebimento • Comunicação assíncrona: mensagem é armazenada pelo middleware e emissor não precisa ficar bloqueado à espera que o envio ocorra. • Aspectos: bufferização (armazenamento intermediário) pode ocorrer no cliente e/ou no middleware • Comunicação também pode ocorrer na forma de fluxos. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 9 Tipos de comunicação Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 10 Chamada de procedimento remoto (RPC) l Mecanismo de chamada de procedimento remoto provê abstração dos detalhes tratados pelas primitivas básicas de transmissão (send e receive) l Aspectos: l Espaços de endereçamento distintos entre cliente e servidor l Passagem de parâmetros e tratamento de valores de retorno l Aspectos da chamada de procedimento convencional: l Passagem de parâmetros pela pilha l Parâmetros podem ser tratados por referência ou apenas por valor Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 11 Chamada de procedimento (função) local (C) Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 12 Chamada de procedimento remoto Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 13 Stubs (apêndices) de cliente e servidor l Operação transparente de chamadas remotas é provido por mecanismos de interceptação, executados nas máquinas cliente e servidora. l Stub cliente substitui as funcionalidades locais da chamada. l Ao invés de executar chamada de serviço local, stub cliente empacota os dados e faz chamada de sistema (send) para transmissão da requisição ao servidor remoto. l Stub cliente bloqueia sua operação à espera dos resultados (receive). l Stub servidor normalmente opera de maneira bloqueante (receive) à espera de requisições remotas. l Mensagem recebida no servidor é repassada ao stub do servidor. l Stub servidor usa dados recebidos para chamada ao procedimento local l Valores de retorno da chamada local são empacotados para transmissão pelo stub servidor. l Stub servidor faz chamada de sistema para enviar dados de volta ao cliente pela rede l Stub cliente recebe dados de retorno e retorna a chamada ao cliente original. l Aplicação cliente recebe dados de retorno, do mesmo modo que ocorreria numa chamada de procedimento local. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 14 Passagem de parâmetros (Parameters marshalling) l Representação interna dos dados em cada computador (clientes e servidores) pode variar: l ASCII x EBCDIC l Little endian x Big endian l Necessidade de acordo sobre formato e encapsulamento dos dados para transmissão: representação intermediária l Uso de linguagem de programação de interface: IDL (Interface Definition Language) l Passagem por referência: l Transmissão de conteúdo l Pode ser evitada se parâmetro de entrada(na solicitação), ou de saída (na resposta) Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 15 Exemplo de chamada remota Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 16 Especificação e passagem de parâmetros Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 17 Sincronismo de chamadas l Bloqueio do cliente ao fazer a chamada nem sempre é necessário. l Ex: transferência de dinheiro entre contas, adição de entradas em BDs, ativação de serviços remotos, processamento em lotes, etc. l Na chamadas assíncronas, cliente pode continuar imediatamente após requisição. l Servidor envia resposta imediata de recebimento de pedido e só depois ativa chamada local. l Cliente não precisa bloquear à espera do resultado. l Cliente pode sondar (probe) servidor para saber do resultado de operação solicitada. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 18 Sincronismo de chamadas Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 19 Sincronismo de chamadas Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 20 Exemplo: DCE RPC DCE: Distributed Computing Environment (ambiente de computação distribuída). l Desenvolvido pela Open Software Foundation (agora Open Group). l Previsto para ambientes Unix, foi portado para variantes VMS e Windows. l Especificações foram adotadas no sistema básico Microsoft para computação distribuída (DCOM). l Projetado para executar como uma camada de abstração entre sistemas operacionais e aplicações distribuídas. l Ideia é permitir que máquinas existentes incorporem o software DCE e possam executar aplicações distribuídas, sem perturbar existentes. l Comunicação ocorre no modelo cliente/servidor. l Implementações de clientes e servidores podem ocorrer em diferentes linguagens (C, Java, etc.). (*) Microsoft COM (Component Object Model) technology in the Microsoft Windows-family of Operating Systems enables software components to communicate. COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 21 Exemplo: DCE RPC l Mecanismo de RPC pode localizar automaticamente o servidor apropriado e, na sequência, estabelecer a comunicação entre cliente e servidor (binding – vinculação). l Transporte de mensagens é tratado em ambas as direções, fragmentando-as e remontando-as. l Conversões de tipo podem ser tratadas entre cliente e servidor. l Serviços incluem: l Sistema de arquivos distribuídos l Serviço de diretório l Serviço de segurança l Serviço distribuído de horário l Componentes: Linguagens, bibliotecas, daemons, programas utilitários, etc. l IDL permite declaração de procedimentos de forma semelhante a protótipos de função ANSI C l Para aceitar chamadas, servidor deve registrar-se e ficar preparado p/ receber dados Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 22 Exemplo: DCE RPC l Registro de servidor permite sua localização pelos clientes l Localização: l Cliente localiza máquina do servidor. l Acesso ocorre a processo específico na máquina do servidor (número de porta) l Tabela de pares (servidor, porta) é mantida nos servidores em um daemon DCE. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 23 Cliente e servidor RPC DCE Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 24 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 25 Comunicação orientada a mensagem l Chamadas de procedimentos e invocações de métodos remotos escondem detalhes da comunicação, aumentando a transparência dos acessos. l Mecanismos de RPC podem não ser eficientes, contudo, quando não há garantias que receptor está sendo executado no momento da chamada. l Sincronismo das chamadas também pode não ser desejável. l Sistema de troca de mensagens pode ser adequado nesses casos. l Muitos sistemas distribuídos e aplicações são construídos diretamente em cima do modelo de comunicação oferecido pela camada de transporte. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 26 Interface de sockets Berkley l Padronização de uma interface de chamada aos serviços da camada de transporte. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 27 Primitivas de comunicação com sockets Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 28 Hélio Crestana Guardia - 2013 Interface de passagem de mensagem (MPI) • Interface de sockets pode ser inadequada quando se busca abstrações nas comunicações. • Primitivas permitem apenas envio e recebimento de sequências de bytes. • Protocolos não consideram otimizações para uso sobre diferentes tecnologias, como em clusters de alto desempenho. • MPI (Message Passing Interface) é um padrão independente de plataforma para a comunicação com passagem de mensagem. A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 29 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 30 Interface de passagem de mensagem (MPI) Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 31 Comunicação orientada a mensagem l Middleware pode oferecer mecanismo para entrega de mensagem baseada em filas l Mensagem transmitida é inserida em fila controlada pelo middleware l Modelo permite comunicação assíncrona, fracamente acoplada em relação ao tempo l Receptor não precisa estar em execução no momento do envio da mensagem l Transmissor não precisa estar em execução quando mensagem é consumida da fila l Conjunto de filas é armazenado de maneira distribuída l Middleware deve manter mapeamento de filas (nomes) e suas localizações l Sistema difere do e-mail, que provê suporte diretamente aos usuários finais Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 32 Comunicação orientada a mensagem Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 33 Comunicação orientada a mensagem Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 34 Comunicação orientada a mensagem Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 35 Comunicação orientada a mensagem Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 36Message Broker l Sistema de enfileiramento de mensagem supõem o uso de formato comum para transmissão e recepção. l Message broker trata da heterogeneidade das aplicações: l Converte mensagens a formato específico, de acordo com destino; l Atua como gateway de aplicação; l Conjunto de regras auxilia nas transformações das mensagens. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 37 Message Broker Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 38 MOM: exemplo – Websphere MQ Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 39 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 40 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 41 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 42 Comunicação orientada a fluxo (streams) l RPC, passagem de mensagem e filas de mensagens não tratam aspectos de temporização nos envios l Como o middleware pode prover fluxos de dados, como áudio e vídeo? l Suporte para mídia contínua l Mídia refere-se aos meios pelos quais informação é transmitida: l Meios de armazenamento l Meios de transmissão l Meios de apresentação (monitor, sistema de áudio, etc.) l Forma de representação da mídia também é relevante: GIF, JPEG, MPEG, … l Mídias contínuas possuem relações temporais entre diferentes itens de dados. Ex.: fluxo de áudio. l Mídias discretas não apresentam relações temporais necessárias para interpretação dos dados Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 43 Fluxos de dados (streams) l Fluxos de dados (streams) correspondem a sequências de unidades de dados. l Podem ser aplicados a mídias discretas ou contínuas. l Streams são unidirecionais e, geralmente, possuem uma única fonte (source) e um ou mais sinks. l Comumente, fonte, ou sink, é mecanismo ligado a dispositivo de hardware (câmera, dispositivo de CD, monitor de vídeo, etc.). Modos de transmissão: l Assíncrono: itens de dados em um fluxo são transmitidos um após o outro mas não há restrição de temporização sobre quando transmissão deve ocorrer. l Síncrono: há atraso fim-a-fim máximo para cada unidade no fluxo. l Não importa se unidade de dados for transmitida mais rapidamente do que o atraso máximo permitido. l Isócrono: unidades de transmissão devem ser transferidas no tempo certo. l Transmissões estão sujeitas a atraso fim-a-fim que possui valores máximo e mínimo, bem como variações (jitter) delimitadas. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 44 Fluxos de dados (streams) l Fluxos podem ser simples, com única sequência de dados, ou complexos, com vários fluxos simples relacionados (subfluxos). l Fluxos complexos: áudio estéreo, filme (vídeo + 2 fluxos de áudio estéreo) l Fluxos eventualmente precisam ser comprimidos para reduzir o armazenamento e a capacidade requerida da rede. l Aspectos da transmissão: l Controle da qualidade l Sincronização l Requisitos de transmissão são tratados sob a perspectiva da QoS (Quality of Service) l Descrevem o que é requerido do SD e da rede para assegurar que relações temporais em fluxo possam ser preservadas. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 45 Parâmetros de QoS 1. Taxa de bits requerida para transmissão dos dados. 2. Atraso máximo até estabelecimento de sessão, quando aplicação pode transmitir. 3. Atraso máximo fim-a-fim: tempo para uma unidade de dados atingir receptor. 4. Variância máxima do atraso (jitter). 5. O atraso máximo de propagação de ida e volta (round-trip delay) . Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 46 QoS na Internet l Implementação de QoS na arquitetura TCP/IP pode não ser eficiente, já que entrega IP é baseada no “melhor esforço”. l DiffService permite diferenciar classes de tráfego. l Seleção de classes de tráfego é baseada na marcação de pacotes. l Classes de tráfego podem ter tratamento diferenciado ao passar pelos roteadores. l Buffers podem ser usados pelo SD para reduzir o efeito de atrasos (variância). l Retransmissões são inviáveis ou indesejadas e pode ser interessante corrigir erros de envio. l Aplicações podem auxiliar na QoS usando bufferização. Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 47 QoS Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 48 QoS: bufferização no sistema distribuído Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 49 QoS: entrega intercalada Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 50 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 51 Sincronização de fluxos l Sincronização de fluxos trata de manter relações temporais entre fluxos diferentes de um fluxo complexo. l Sincronização pode ocorrer entre fluxo discreto e fluxo contínuo ou entre 2 ou mais fluxos contínuos. l Ex. lip sync (sincronização de lábios) entre fluxos de áudio e vídeo. l Sincronização ocorre no nível das unidades de dados que compõem o fluxo l Sincronização pode ocorrer somente entre unidades de dados l Ex.: alternar entre a leitura de uma imagem e a leitura de um bloco de amostras de áudio a cada 33 ms. l Sincronização MPEG (Motion Picture Experts Group): l Cada fluxo de entrada é primeiro transformado em um fluxo de pacotes que transporta marca de tempo baseada em um relógio de sistema de 90kHz. l Fluxos são multiplexados em um fluxo de programa, que consiste em pacotes de comprimentos variáveis, mas com mesma base de tempo l Receptor demultiplexa o fluxo usando marcas de tempo de cada pacote para sincronização entre fluxos Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 52 Sincronização de fluxos Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 53 Comunicação multicast l Comunicação multicast trata do envio de dados a múltiplos receptores. l Soluções eram comumente tratadas no nível da camada de rede (ou transporte). l Middleware favoreceu implementar multicast através de redes de sobreposição (overlay networks). l Application-level multicasting (multicasting no nível de aplicação): nós organizam-se na forma de uma rede de sobreposição. l Organização da overlay pode ocorrer na forma de árvore, com caminho único entre cada par de nós. l Comunicação entre os nós pode abranger a passagem por vários segmentos, de forma que o encaminhamento de mensagem não é tão eficiente quanto soluções providas pela camada de rede. l Abordagem alternativa consiste em criar malha em que cada nó tem vários vizinhos (ex. árvore em Chord). Hélio Crestana Guardia- 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 54 Hélio Crestana Guardia - 2013 A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 4: Comunicação / 55 Comunicação multicast l Alternativa: disseminação baseada em gossiping l Comportamento epidêmico: visa a propagar informações rapidamente entre um grande conjunto de nós usando somente informações locais l Duas formas de divulgação de informações em epidemia: l Anti-entropia: cada réplica regularmente escolhe outra réplica aleatoriamente para troca de informações. Nó pode apenas enviar suas atualizações, apenas receber atualizações, ou pode enviar e receber atualizações. l Propagação de boato (gossiping / rumor spreading): cada nó escolhe outro aleatoriamente e tenta propagar a informação; caso nó contatado já a conheça, nó origem pode perder o interesse em continuar propagando a informação.
Compartilhar