Buscar

cap04

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais