Buscar

cap01

Prévia do material em texto

A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 1/44 Hélio Crestana Guardia - 2013 
Universidade Federal de São Carlos 
Departamento de Computação 
 
Sistemas Distribuídos 
 
Hélio Crestana Guardia 
 
2013 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 2/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos 
•  Evolução dos sistemas computacionais: 
–  Microprocessadores de alta capacidade 
–  Redes de comunicação de alta velocidade 
•  Criação de sistemas computacionais compostos por grandes quantidades de 
computadores, interligados por redes de alta velocidade 
•  Surgimento dos sistemas distribuídos, em oposição aos sistemas 
centralizados 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 3/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos 
Definição: um Sistema distribuído é um conjunto de computadores 
independentes que se apresenta a seus usuários como um sistema único e 
coerente. 
 
Couloris: "we define a distributed system as one in which hardware or software 
components located at networked computers communicate and coordinate their 
actions only by passing messages.” 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 4/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos: aspectos 
•  Não há restrições sobre o tipo dos computadores: de pequenos 
sensores a computadores de alto desempenho 
•  Também não há restrições sobre a forma de interconexão 
•  Diferenças entre os componentes e questões relacionadas à 
forma de comunicação efetiva e à organização interna do 
sistema são abstraídas dos usuários 
•  Componentes colaboram para obter o resultado desejado 
•  Expansões e escalabilidade são facilitadas pelo fato dos 
componentes serem independentes 
•  Disponibilidade do sistema como um todo também é favorecida 
pela multiplicidade de recursos 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 5/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos 
Exemplos: 
-  WWW, Web search, 
-  Comércio eletrônico (e-commerce), E-learning, 
-  Facebook, Twitter, Gmail, 
-  Google drive, Dropbox e similares, 
-  Amazon Web Services, Computação em nuvem, 
-  Massively multiplayer online games 
-  Financial trading: real-time access to information sources 
(events, delivered reliably and in a timely manner to large 
numbers of clients) 
-  … 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 6/44 Hélio Crestana Guardia - 2013 
Tendências em Sistemas Distribuídos (*) 
•  Fortalecimento de tecnologia de redes pervasivas: infraestrutura 
de acesso por toda parte! 
•  Fortalecimento da computação ubíqua (em todo lugar), com 
apoio à mobilidade dos usuários e seus dispositivos 
•  Aumento da demanda por serviços multimídia: restrições 
temporais 
•  Visão dos sistemas distribuídos como recursos (utility): 
computação em nuvem 
(*) Coulouris, et. al. Distributed Systems: concepts and Design. Assison Welsey, 2012. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 7/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos: desafios 
•  Sistemas Distribuídos são sistemas concorrentes: necessidade de 
coordenar execução independente em cada nó 
•  Componentes (nós e rede) podem falhar 
•  Atrasos na comunicação em rede: dificuldade em diferenciar 
congestionamento de falhas 
•  Ausência de relógio global: dificuldade em coordenar atividades 
distribuídas e obter consenso em ordenações 
•  … 
•  Heterogeneidade 
•  Abertura (openness) 
•  Segurança: integridade, confidencialidade, disponibilidade 
•  Escalabilidade 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 8/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos: organização 
•  Interações entre usuários, ou aplicações, e o sistema distribuído 
ocorrem de maneira consistente e uniforme 
•  Funcionalidades são comumente organizadas na forma de uma 
camada de software logicamente posicionada entre as 
aplicações e sistema operacional e seus mecanismos de 
comunicação. 
 => Middleware 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 9/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 10/44 Hélio Crestana Guardia - 2013 
Sistemas Distribuídos: objetivos 
•  Oferecer fácil acesso aos recursos (compartilhamento) 
•  Ocultar as questões inerentes à distribuição (transparência) 
•  Ser aberto 
•  Poder ser expandido (escalabilidade) 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 11/44 Hélio Crestana Guardia - 2013 
Compartilhamento de recursos 
•  Exemplos de recursos: computadores, impressoras, unidades de 
armazenamento, dados, arquivos, páginas WWW, redes de 
computadores, … 
•  Conectividade provida por sistemas distribuídos também 
favorece colaborações entre os usuários e trocas de arquivos, de 
mensagens, de documentos e de diferentes tipos de mídia 
•  Trabalho cooperativo, através de groupware, também é 
possibilitado 
Aspectos: 
•  Segurança: autenticações dos acessos e confidencialidade das informações 
transmitidas 
•  Perfis: personalização x privacidade 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 12/44 Hélio Crestana Guardia - 2013 
Transparência da distribuição 
•  Transparência em um Sistema Distribuído está associada à 
capacidade de apresentar-se aos usuários e às aplicações como 
se fosse um único sistema computacional 
•  Diferentes tipos de transparência podem ser buscados: 
–  Acesso 
–  Localização 
–  Migração 
–  Relocação 
–  Replicação 
–  Concorrência 
–  Falhas 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 13/44 Hélio Crestana Guardia - 2013 
Tipos de Transparência 
Transparência de localização é tipicamente apoiada por mecanismos de nomeação, que 
também favorecem a transparência de migração, de relocação e de replicação. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 14/44 Hélio Crestana Guardia - 2013 
Grau de transparência 
•  Transparência total nem sempre é possível ou desejada 
•  Por exemplo, uma aplicação pode tornar-se mais eficiente se 
considerar os atrasos nas transmissões de longa distância, e fizer 
outra atividade nesse período, ao invés de escondê-los 
•  Transparência de replicação implica necessidade de manter 
réplicas consistentes, podendo gerar atrasos 
•  Informações de contexto (como localização) podem auxiliar na 
seleção de recursos. Ex: impressão local. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 15/44 Hélio Crestana Guardia - 2013 
Abertura (Openness) 
Sistema Distribuído aberto oferece serviços de acordo com regras 
padronizadas que descrevem a sintaxe a semântica desses serviços. 
Características: 
•  Serviços especificados através de interfaces bem definidas (Interface 
definition Language – IDL): 
–  nomes, tipos, parâmetros, valores de retorno, exceções, etc. 
–  permitem diferentes implementações da mesma funcionalidade 
•  Portabilidade: executar aplicação, sem modificação, em dif. sistemas 
•  Suporte à heterogeneidade de Hardware, de Plataforma e de 
Linguagem 
•  Interoperabilidade com serviços de outros sistemas abertos, 
independentemente do ambiente em que são implementados 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 16/44 Hélio CrestanaGuardia - 2013 
Abertura (Openness) 
Separação entre política e mecanismo 
•  Sistema deve ser organizado como coleção de componentes 
relativamente pequenos e facilmente substituídos ou 
adaptados 
•  Busca-se evitar o desenvolvimento de sistemas que são 
logicamente separados mas implementados na forma de um 
grande sistema monolítico (bloco único) 
•  Importante haver especificações não só das interfaces de nível 
mais alto mas também das partes internas 
•  Facilidade de configuração, expansão e substituição de partes é 
importante 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 17/44 Hélio Crestana Guardia - 2013 
Escalabilidade 
Dimensões: 
•  Escalabilidade de tamanho: possibilidade de incrementar o 
número de recursos e de usuários 
•  Escalabilidade geográfica: possibilidade de ampliar a área física 
de alcance do sistema 
•  Escalabilidade administrativa: possibilidade de gerenciamento, 
mesmo com muitas organizações administrativas diferentes 
 
Em sistemas paralelos, escalabilidade de desempenho está relacionada à 
possibilidade de aumento de desempenho à medida que novos recursos são 
adicionados (Hélio) 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 18/44 Hélio Crestana Guardia - 2013 
Escalabilidade: fatores limitantes 
•  À medida que mais usuários e recursos são admitidos no 
sistema, problemas de escalabilidade podem tornar-se evidentes 
•  Serviços centralizados podem tornar-se gargalos pela 
capacidade de processamento ou de comunicação. 
•  Centralização pode ser inevitável por questões de segurança em 
certas aplicações (ex. BD com dados sensíveis). 
•  Dados centralizados também podem impedir a escalabilidade 
de usuários e recursos devido aos gargalos de comunicação. 
•  Algoritmos centralizados, que requerem a coleta e o 
processamento de informações de estado de toda a rede, e.g., 
também limitam a escalabilidade. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 19/44 Hélio Crestana Guardia - 2013 
Escalabilidade: fatores limitantes 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 20/44 Hélio Crestana Guardia - 2013 
Escalabilidade: algoritmos descentralizados 
•  Algoritmos descentralizados favorecem a escalabilidade. 
 
Características desejáveis: 
•  Nenhuma máquina deve ter que manter informações completas 
sobre o estado do sistema. 
•  As máquinas devem tomar decisões tendo como base somente 
informações locais. 
•  A falha de uma máquina não deve comprometer um algoritmo. 
•  Não deve haver dependência explícita de um relógio global. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 21/44 Hélio Crestana Guardia - 2013 
Escalabilidade: aspectos da comunicação 
Algumas características da comunicação em redes de longa 
distância, típicas em cenários de computação distribuída, 
influenciam na escalabilidade geográfica de um SD: 
•  Atrasos são significativos e comunicações devem ser 
preferencialmente assíncronas, evitando que cliente fique 
bloqueado até conclusão de uma solicitação; 
•  Comunicação em redes de longa distância é inerentemente não 
confiável; 
•  Normalmente, não há mecanismos de comunicação por difusão de 
mensagens (broadcast), ou implementação é inviável. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 22/44 Hélio Crestana Guardia - 2013 
Escalabilidade: gerenciamento de políticas 
Considerando a dispersão de um SD sobre múltiplos domínios 
administrativos, diversos aspectos precisam ser tratados: 
•  Políticas conflitantes para o uso dos recursos e suas 
contabilizações / tarifações 
•  Gerenciamento de políticas locais e globais 
•  Gerenciamento de segurança: autenticações dos acessos e 
confidencialidade das transmissões 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 23/44 Hélio Crestana Guardia - 2013 
Escalabilidade: técnicas (1/3) 
Técnicas p/ escalabilidade: ocultação de latências, distribuição e 
replicação. 
•  Ocultar latências de comunicação (latency hiding): 
–  Evitar bloquear o processamento à espera de comunicação 
–  Sobrepor processamento com transmissões 
–  Reduzir o volume de comunicação, por exemplo, movendo parte do 
processamento do servidor para o cliente 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 24/44 Hélio Crestana Guardia - 2013 
Escalabilidade: técnicas (2/3) 
•  Distribuição: consiste em particionar um componente e 
espalhar suas partes pelo sistema. 
•  Ex.: Domain Name System (DNS) – informações distribuídas em zonas 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 25/44 Hélio Crestana Guardia - 2013 
Escalabilidade: técnicas (3/3) 
•  Replicação: 
–  uso de múltiplas cópias de componentes favorece a disponibilidade e o 
balanceamento de carga 
–  proximidade de cópia dos componentes também favorece a redução da 
latência de comunicação 
•  Ex.: cache 
Problema: 
–  alteração de cópia requer atualização das demais para garantir a 
consistência 
–  Sincronizações para prover as atualizações pode limitar a escalabilidade 
•  Ex. 2: CDN (Content Distribution Networks): 
–  localização baseada no DNS, com acesso somente de leitura 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 26/44 Hélio Crestana Guardia - 2013 
Desenvolvimento de SDs: armadilhas 
•  Além de atender aos aspectos básicos de Engenharia de 
Software, o desenvolvimento de SDs deve tratar questões 
específicas inerentes à distribuição de seus componentes. 
•  Falsas premissas podem comprometer o desenvolvimento de 
Sistemas Distribuídos: 
–  A rede é confiável 
–  A rede é segura 
–  A rede é homogênea 
–  A topologia não muda 
–  A latência é zero 
–  A largura de banda é infinita 
–  O custo de transporte é zero 
–  Há só um administrador 
Falso! 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 27/44 Hélio Crestana Guardia - 2013 
Tipos de Sistemas Distribuídos 
•  Sistemas de Computação Distribuídos (Distributed Computing 
Systems): 
–  Sistemas de Computação em cluster 
–  Sistemas de Computação em grade (Grid Computing) 
–  Sistemas de Computação em nuvem (Cloud Computing) 
•  Sistemas de Informação Distribuídos (Distributed Information 
Systems): 
–  Sistemas de processamento de transações (Transaction Procesing Systems) 
–  Integração de aplicações empresariais (Enterprise Application Integration) 
•  Sistemas Embarcados Distribuídos (Distributed Embedded/
Pervasive Systems): 
–  Sistemas domésticos (Home Systems) 
–  Sistemas eletrônicos para tratamento de saúde (Electronic Health Care Systems) 
–  Redes de Sensores (Sensor Networks) 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 28/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistemas de Computação Distribuídos 
•  Voltados à obtenção de alto desempenho (high-performance 
computing) 
•  Abordagens: computação em cluster (Cluster Computing), 
computação em grade (Grid Computing) ou em nuvem (Cloud) 
Computação em Cluster: 
•  Grupo de computadores de alto desempenho interligados numa rede local 
•  Ambiente homogêneo: mesmo SO e (comumente) mesmo hardware 
•  Uso de um único nó de gerenciamento, que distribui requisições para nós 
de processamento (middleware para programação – MPI). Ex: Linux-based 
Beowulf clusters: nó de gerenciamento + nós de processamento 
•  Sistema de imagem única (Single System Image): abordagem simétrica, com 
uma única imagem do sistema. Ex: MOSIX: provê execução e uso dos 
recursosde forma transparente. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 29/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistemas de Computação em Cluster 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 30/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistemas de Computação Distribuídos 
Computação em Grade (Grid Computing) 
•  Uso de nós de processamento (e outros recursos) que se espalham por 
vários domínios administrativos. 
•  Agrupamento de recursos para permitir a colaboração de um grupo de 
pessoas ou instituições 
Ex. domínio administrativo: nós conectados em rede em um departamento ou 
universidade; cluster em uma rede remota; computadores na rede de uma empresa; … 
•  Recursos heterogêneos 
•  Dispersão sobre diferentes organizações 
•  Comunicações comumente envolvem a passagem por redes de longa 
distância 
•  Para possibilitar colaborações, criam-se organizações virtuais, que 
definem usuários globais para os recursos 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 31/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistema de Computação em Grade 
•  Camada Base (fabric layer): interface para recursos locais em um site 
•  Camada de Conectividade (connectivity): protocolos de comunicação para as 
transações. Inclui mecanismos de segurança, como autenticações e delegações 
•  Camada de Recursos (resource): trata do gerenciamento de cada recurso 
•  Camada Coletiva (collective): manipula acesso a múltiplos recursos 
•  Camada de Aplicações: aplicações para a grade. Middleware (funcionalidades 
providas pelas camadas inferiores) permite uso da grade 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 32/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistemas de Informação Distribuídos 
•  Grande parte dos sistemas distribuídos atualmente são middlewares 
para integrações de sistemas empresariais. 
•  Comum quando substituição de sistema legado é inviável. 
•  Comunicações normalmente ocorrem na forma de requisições de 
clientes para servidores. Acesso a banco de dados é comum. 
•  Requisições podem ser agrupadas na forma de transações. 
•  Requisições de uma transação são executas na totalidade ou 
nenhuma é executada. 
•  Transações foram sendo aperfeiçoadas, separando componentes de 
Bancos de Dados de componentes de processamento. 
•  Modelo deu origem aos sistemas de integração de aplicações 
empresariais (Enterprise Application Integration). 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 33/44 Hélio Crestana Guardia - 2013 
Sistemas de Processamento de Transações 
•  Transações formam operações atômicas e podem variar entre sistemas 
•  Chamadas de procedimentos remotos (Remote Procedure Calls) também 
podem ser encapsuladas em transações 
Exemplo: 
 BEGIN TRANSACTION (server, transaction) 
 READ (transaction, file-1, data) 
 WRITE (transaction, file-2, data) 
 newData := MODIFIED(data) 
 IF WRONG (newData) THEN 
 ABORT TRANSACTION (transaction) 
 ELSE 
 WRITE (transaction, file-2, newData) 
 END TRANSACTION (transaction) 
 END IF 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 34/44 Hélio Crestana Guardia - 2013 
Transações: Primitivas típicas 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 35/44 Hélio Crestana Guardia - 2013 
Transações: propriedades 
Transações são compostas de conjuntos de operações sobre bancos de 
dados, manipulações de objetos, etc., e devem satisfazer as propriedades 
denominadas ACID: 
•  Atomicidade: todas as operações devem ser bem-sucedidas ou 
nenhuma deve ser realizada. Quando uma transação falha, o estado do 
objeto associado permanece inalterado. 
•  Consistência: uma transação estabelece uma transição válida, embora 
estados intermediários inválidos possam ocorrer ao longo de sua 
realização. 
•  Isolamento: transações concorrentes não interferem entre si. Efeito é 
equivalente à operação sequencial. 
•  Durabilidade: após efetivação de uma transação, efeitos são 
permanentes. Mudanças de estado também devem persistir em 
situações de falha. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 36/44 Hélio Crestana Guardia - 2013 
Transações aninhadas 
•  Transações podem ser subdivididas e executadas de forma aninhada 
•  Subtransações favorecem divisão de processamento entre diversos 
recursos. 
•  Uma vez efetivada, contudo, uma subtransação pode ser revertida se a 
transação de nível superior falhar. Durabilidade vale apenas para 
transações de nível mais alto. 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 37/44 Hélio Crestana Guardia - 2013 
Monitor de Processamento de Transações 
•  Nas primeiras versões das integrações de sistemas corporativos, 
transações eram tratadas por Monitor de Transações (TP Monitor) 
•  TP Monitor oferecia um modelo de programação baseado em 
transações para coordenar o acesso a servidores e bancos de dados 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 38/44 Hélio Crestana Guardia - 2013 
Integração de aplicações empresariais (EAI) 
•  Desacoplamento das aplicações dos bancos de dados tornou evidente a 
necessidade de integrar aplicações de forma independente de suas bases de 
dados. Modelo TP Monitor não separava aplicações de suas bases de dados. 
•  Ficou evidente que componentes das aplicações deveriam ser capazes de se 
comunicar diretamente uns com os outros, e não apenas por meio do 
comportamento requisição / resposta 
•  Diversos modelos surgiram para a comunicação inter-aplicação: RPC, RMI, 
MOM 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 39/44 Hélio Crestana Guardia - 2013 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 40/44 Hélio Crestana Guardia - 2013 
Modelos de comunicação inter-aplicação 
•  Chamadas de procedimento remoto (Remote Procedure Call – RPC): 
–  Permite que componente de aplicação envie requisição a outro componente, 
executando uma chamada local 
–  Chamada gera empacotamento da requisição como uma mensagem enviada ao nó 
chamado 
–  Resposta retorna na forma de mensagem e é repassada ao chamador 
•  Chamadas podem ser executadas também sobre métodos de objetos remotos 
(Remote Method Invocation – RMI) 
•  Desvantagens de RPC e RMI: 
–  Necessidade de chamador e chamado estarem ativos no momento da chamada 
–  Necessidade de conhecer mecanismo de referenciação 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 41/44 Hélio Crestana Guardia - 2013 
Modelos de comunicação inter-aplicação 
•  Novo middleware orientado a mensagem (Message Oriented Middleware – 
MOM) 
•  Aplicações enviam mensagem aos pontos de contato lógicos dos serviços 
–  Identificação dos pontos de contato feita de acordo com o tipo da mensagem 
–  Aplicações podem manifestar interesse por tipos específicos de mensagem 
–  Middleware se encarrega de encaminhar mensagens aos nós interessados em seus 
respectivos tipos 
–  Modelo é chamado de publicar / subscrever (publish / subscribe) 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 42/44 Hélio Crestana Guardia - 2013 
Tipos de SD: Sistemas Pervasivos Distribuídos 
•  Geração emergente de sistemas distribuídos é composta de nós pequenos, 
móveis e comumente embarcados em um sistema maior 
Características comuns (não necessariamente se aplicam a todos os nós):•  Nós de pequeno porte com energia fornecida por baterias 
•  Nós são móveis e comunicação ocorre via redes sem fio 
•  Ausência de controle administrativo humano 
•  Necessidade de descobrir o ambiente e estabelecer comunicações 
Requisitos de aplicações pervasivas: 
•  Adotar mudanças contextuais, considerando variações no ambiente 
•  Incentivar composições ad-hoc: cada nó pode ser usado de maneira distinta por 
diferentes usuários. É necessário apresentar configuração simplificada. 
•  Reconhecer compartilhamento como padrão: nós aparecem e surgem dinamicamente, 
provendo serviços e informações compartilhadas 
Aspecto: distribuição é inerente às aplicações e não se deve torná-la transparente 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 43/44 Hélio Crestana Guardia - 2013 
Sistemas Pervasivos: sistemas domésticos 
•  Interligam computadores pessoais, dispositivos eletrônicos, como TVs, 
equipamentos de áudio e vídeo, jogos eletrônicos, SmartPhones e PDAs e 
outros dispositivos pessoais. 
•  É esperado que todos os outros tipos de dispositivos eletrônicos venham a ser 
conectados a esse sistema distribuído 
Desafios: 
•  Sistema deve ser auto-organizável e auto-gerenciável, sem administrador 
–  UPnP já provê mecanismos para obtenção de endereçamento 
–  Atualizações, preservando questões de compatibilidade requer 
administração 
•  Gerenciamento de espaço pessoal de cada usuário: como tratar isolamentos e 
compartilhamentos? 
•  Quando volume de dados cresce, como localizar dados específicos? Sistemas 
de recomendação 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 44/44 Hélio Crestana Guardia - 2013 
Sistemas eletrônicos para tratamento de Saúde 
Electronic Health Care Systems 
•  Novos dispositivos estão sendo desenvolvidos para monitoramento do bem-estar de indivíduos 
•  Possibilidade de contato automatizado entre sistema e médico quando necessário 
•  Sistemas equipados com vários sensores organizados numa rede corporal sem fio (body-area 
network – BAN) 
•  Rede deve causar perturbação mínima à movimentação da pessoa 
•  Dispositivos são organizados usando hub local ou mantêm conexão constante com rede externa 
•  Por questões de desempenho, dispositivos podem realizar processamento na rede, agregando 
dados antes de suas transmissões 
Questões: 
•  Onde e como os dados monitorados deverão ser armazenados? 
•  Como evitar a perda de dados essenciais? 
•  Qual é a infraestrutura necessária para gerar e transmitir sinais de alerta? 
•  Como os médicos podem dar retorno on-line? 
•  Como prover robustez ao sistema de monitoração? 
•  Quais são as questões de segurança e como políticas adequadas são implementadas? 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 45/44 Hélio Crestana Guardia - 2013 
Sistemas eletrônicos para tratamento de Saúde 
•  Comunicação pode ser intermediada por HUB, que coleta dados quando necessário 
•  Em outros cenários, BAN pode ser continuamente conectada a rede externa 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 46/44 Hélio Crestana Guardia - 2013 
Redes de Sensores 
•  Redes de sensores são usadas para processamento de informações 
•  Redes consistem de dezenas a centenas, ou milhares, de nós relativamente 
pequenos 
•  Comunicação ocorre usando redes sem fio 
•  Energia para funcionamento dos nós é provida por baterias 
•  Recursos limitados, capacidade de comunicação limitada e restrições de 
energia requer eficiência em sua operação 
•  Redes de sensores podem ser vistas como bancos de dados distribuídos 
•  Consultas sobre o estado do ambiente monitorado podem ser solicitadas aos 
sensores 
Abordagens de operação: 
•  Sensores não cooperam, mas simplesmente enviam dados para servidor de 
base de dados centralizado 
•  Sensores podem agregar dados antes de encaminhá-los 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 47/44 Hélio Crestana Guardia - 2013 
Redes de Sensores 
Questões: 
•  Desejável recursos para processamento dos dados na própria rede 
•  Processamento na rede pode envolver o encaminhamento dos dados 
•  Organização hierárquica, na forma de uma estrutura em árvore, é comum 
para agregação e encaminhamento dos dados 
Problemas: 
•  Como organizar dinamicamente uma rede de encaminhamento? 
•  Como agregar os dados? 
•  Como tratar falhas de comunicações? 
A. S. Tanenbaum, M. Van Steen. Sistemas Distribuídos: Princípios e paradigmas - Cap 1 – Introdução / 48/44 Hélio Crestana Guardia - 2013 
Redes de Sensores

Continue navegando