Baixe o app para aproveitar ainda mais
Prévia do material em texto
17/3/2009 1 Introdução Capítulo 1 17/3/2009 Sistemas DistribuídosSistemas Distribuídos José Pacheco de Almeida PradoJosé Pacheco de Almeida Prado Sistemas Distribuídos – prof. Pacheco Conteúdo Programático � Introdução aos Sistemas Distribuídos � Arquiteturas de SD � Processos � Comuicação � Sincronização � Tolerância a Falhas � Sistemas Distribuídos Baseados em Web e em Objetos 17/3/2009Sistemas Distribuídos – prof. Pacheco2 17/3/2009 2 Bibliografia 17/3/2009Sistemas Distribuídos – prof. Pacheco3 Sistemas Distribuídos:Sistemas Distribuídos: princípios e paradigmasprincípios e paradigmas Segunda Edição ANDREW S. TANENBAUM MAARTEN VAN STEEN 17/3/2009Sistemas Distribuídos – prof. Pacheco4 Bibliografia 17/3/2009Sistemas Distribuídos – prof. Pacheco4 Sistemas Operacionais ModernosSistemas Operacionais Modernos Primeira Edição ANDREW S. TANENBAUM 17/3/2009 3 Definição de Sistema Distribuído(1) Um Sistema Distribuído (SD) é: Um conjunto e computadores independentes que se apresenta a seus usuários como um sistema único e coerente. 17/3/20095 Sistemas Distribuídos – prof. Pacheco Definição de Sistema Distribuído(2) 17/3/2009Sistemas Distribuídos – prof. Pacheco6 17/3/2009 4 Definição de Sistema Distribuído(3) 17/3/2009Sistemas Distribuídos – prof. Pacheco7 www.top500.org Definição de Sistema Distribuído(4) 17/3/2009Sistemas Distribuídos – prof. Pacheco8 17/3/2009 5 Um Sistema Distribuído organizado como um middleware. O SD oculta as diferenças de hardware e de sistemas operacionais das aplicações distribuídas. A camada middleware de se estende por várias máquinas e oferece a mesma interface a cada aplicação. Definição de Sistema Distribuído(5) 17/3/20099 Sistemas Distribuídos – prof. Pacheco Metas de projeto 17/3/2009Sistemas Distribuídos – prof. Pacheco10 Um Sistema Distribuído deve: � oferecer fácil acesso a seus recursos � groupware; �ocultar razoavelmente bem o fato de que os recursos são distribuídos por uma rede (TransparênciaTransparência); �ser aberto � Inerface Definition Language (IDL) e �poder ser expandido (EscalabilidadeEscalabilidade). 17/3/2009 6 Transparência em um Sistema Distribuído Diferentes formas de transparência em um sistema distribuído. Transparência Descrição Acesso Ocultar as diferenças na representação de dados e no modo de acesso a um recurso Localização Ocultar o lugar em que um recurso está localizado Migração Ocultar que um recurso pode ser movido para outra localização Realocação Ocultar que um recurso pode ser movido para uma outra localização enquanto em uso Replicação Ocultar que um recurso é replicado Concorrência Ocultar que um recurso pode ser compartilhado por diversos usuários concorrentes Falha Ocultar a falha e a recuperação de um recurso Persistência Ocultar se um recurso (programa) está na memória ou em disco 17/3/200911 Sistemas Distribuídos – prof. Pacheco 12 Escalabilidade A escalabilidade pode ser medida segundo três dimensões: �Escalabilidade de tamanho: é fácil adicionar mais usuários e recursos no sistema �Escalabilidade geográfica: usuários e recursos podem estar distantes entre si �Escalabilidade administrativa: é fácil de gerenciar, mesmo que abranja muitas organizações administrativas diferentes 17/3/2009Sistemas Distribuídos – prof. Pacheco 17/3/2009 7 Problemas na Escalabilidade (1) Exemplos de limitações na escalabilidade. Conceito Exemplo Serviços Centralizados Um único servidor para todos os usuários Dados Centralizados Uma única lista telefônica Algoritmos Centralizados Fazer roteamento com base em informações completas 17/3/200913 Sistemas Distribuídos – prof. Pacheco 14 Problemas na Escalabilidade (2) Características dos algoritmos descentralizados: �Nenhuma máquina tem informações completas sobre o estado do sistemas. �As máquinas tomam decisões tendo como base somente informações locais. �A falha de uma máquina não arruína o algoritmo. �Não há nenhuma premissa implícita quanto à existência de um relógio global. 17/3/2009Sistemas Distribuídos – prof. Pacheco 17/3/2009 8 Técnicas de Escalabilidade(1) 17/3/2009Sistemas Distribuídos – prof. Pacheco15 Existem basicamente três técnicas para se ampliar um SD: � Ocultar latência de comunicação � comunicação comunicação assíncronaassíncrona; � Distribuição e � Replicação. Técnicas de Escalabilidade (2) ocultar latência 1.4 A diferença entre deixar: a) Um servidor ou b) Um cliente verificar formulários à medida que são preenchidos 17/3/200916 Sistemas Distribuídos – prof. Pacheco 17/3/2009 9 Técnicas de Escalabilidade (3) distribuição 1.5 Um exemplo de divisão do espaço de nomes do DNS em áreas. 17/3/200917 Sistemas Distribuídos – prof. Pacheco fluit.cd.vu.nl Sistemas Distribuídos – prof. Pacheco18 Ciladas Quando Desenvolvemos Sistemas Distribuídos Premissas falsas que todos adotam ao desenvolver uma aplicação distribuída pela primeira vez: �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. 17/3/2009 17/3/2009 10 Sistemas Distribuídos – prof. Pacheco19 Tipos de Sistemas Distribuídos: 1. Sistemas de Computação Distribuídos � computação de auto desempenho � Sistemas de Computação de Cluster � Sistemas de Computação em Grade (Grid) 2. Sistemas de Informação Distribuídos � Sistemas de Processamento de Transações � Integração de Aplicações Comerciais (Troca de informações via RPC ou RMI) 3. Sistemas Embutidos Distribuídos Pervasivos (normalmente pequenos sistemas movidos a baterias, móveis & wireless) � Sistemas Domésticos (ex. Smart phones, PDAs) � Sistemas Eletrônicos para tratamento de saúde (Monitores de coração, BAN: Body Area Networks) � Redes de Sensores (Base de Dados distribuídas com conexão wireless) 17/3/2009 Sistemas de Computação de Alto Desempenho 17/3/2009Sistemas Distribuídos – prof. Pacheco20 17/3/2009 11 Sistemas Distribuídos – prof. Pacheco21 Sistemas de Computação de Cluster (1) �Conjunto de estações de trabalho ou PC semelhantes conectados por meu de um a rede local de alta valocidade, constituindo um ambiente para super computação; �Maior homogeneidade (mesmo SO, etc.); �Baixo custo (tecnologia de prateleira) 17/3/2009 Sistemas de Computação de Cluster (2) 17/3/2009Sistemas Distribuídos – prof. Pacheco22 17/3/2009 12 Sistemas de Computação de Cluster (3) 17/3/2009Sistemas Distribuídos – prof. Pacheco23 Sistemas Distribuídos – prof. Pacheco24 Sistemas de Computação de Cluster (4) � Exemplo de um sistema de computação em cluster (modelo Beowulff). 17/3/2009 17/3/2009 13 Sistemas de Computação em Grid (1) 17/3/2009Sistemas Distribuídos – prof. Pacheco25 Sistemas Distribuídos – prof. Pacheco26 Sistemas de Computação em Grid (2) �Diferentes dos sistemas baseados em Clusters, os sistemas de computação em Grid tem um alto grau de heterogeneidades, diferentes hardwares, Sos, redes, ... �Usuários e recursos de diferentes organizações são interloigados, permitindo total colaboração, criando uma Organização Virtual Organização Virtual (V.O.V.O. = = VirtualVirtual OrganizationOrganization) �Os membros das V.O. tem total acesso a um conjunto comum de recursos (por exemplo, os sistemas da policia americana, do FBI e de outras agencias formam um grid). 17/3/2009 17/3/2009 14 Sistemas de Computação em Grid (3) 17/3/2009Sistemas Distribuídos – prof. Pacheco27Sistemas Distribuídos – prof. Pacheco28 Sistemas de Computaçao em Grid (4) � Um modelo em camadas para um sistema de computação em Grid. Grid Middleware As aplicações funcionam em uma VO e fazem uso do ambiente do Grid 3/17/2009 17/3/2009 15 Sistemas Distribuídos – prof. Pacheco29 Camadas do modelo de Grid Computing: 1. Camada de Coletiva (Collective layer): manipula o acesso a múltiplos recursos, normalmente consiste em serviços para descoberta de recursos, alocação e escalonamento de tarefas. 2. Camada de Conectividade (Connectivity layer): consiste em protocolos de comunicação para suportar transações da grade que abranjam a utilização de múltiplos recursos. 3. Camada de Recurso (Resource layer): gerencia um único recurso, como criar um processo ou ler um dado. 4. Camada Base (Fabric layer): fornece interfaces para recursos locais em um site específico. 17/3/2009 Sistemas Distribuídos – prof. Pacheco30 Sistemas para Processamento de Transações (1) � Exemplos de primitivas para transações. 17/3/2009 17/3/2009 16 Sistemas Distribuídos – prof. Pacheco31 Sistemas para Processamento de Transações (2) � Propriedades características das transações: • Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível. • Consistentes: a transação não viloa as invariantes do sistema. • Isoladas: transações interferem umas com as outras. • Duráveis : uma vez terminada uma transação as alterações são permanentes. 17/3/2009 Sistemas Distribuídos – prof. Pacheco32 Sistemas para Processamento de Transações (3) � Transações aninhadas. 17/3/2009 17/3/2009 17 Sistemas Distribuídos – prof. Pacheco33 Sistemas para Processamento de Transações (4) � O papel do monitor TP (processamento de transações) em um SD. 17/3/2009 Sistemas Distribuídos – prof. Pacheco34 Integração de Aplicações Comerciais (1) � Middleware como um facilitador de comunicação em integração de aplicações empresariais. 17/3/2009 17/3/2009 18 Sistemas Distribuídos – prof. Pacheco35 Integração de Aplicações Comerciais (2) � Vários pacotes de middleware e protocolos de comunicação são usados para dar suporte as aplicações comerciais, entre eles: • CORBA (Common Object Request Broker Architecture) • DCOM (Distributed Component Object Management) • RPC (Remote Procedure Call) • RMI (Remote Method Invocation) 17/3/2009 Sistemas Distribuídos – prof. Pacheco36 Sistemas Embarcados Distribuídos � Requisitos para aplicações embarcadas: • Adotar mudanças contextuais (significa que um dispositivo deve estar ciente do fato de seu ambiente pode mudar o tempo todo). • Incentivar composição ad hoc (usos diferentes para usuários diferentes, por exemplo os PDA podem ter diferentes usos). • Reconhecer compartilhamento como padrão (isso requer meios para ler, armazenar gerenciar e compartilhar informações com facilidade). 17/3/2009 17/3/2009 19 Sistemas Distribuídos – prof. Pacheco37 Sistema Eletrônico para Tratamento (pessoal) de Saúde (1) � Questões inirentes a aplicação: • Onde e como os dados monitorados deverão ser armazenados? • Como podemos evitar a perda de dados cruciais? • Qual é a infra-estrutura necessária para gerar e transmitir sinais de alerta? • Como os médicos podem dar retorno on-line? • Como pode ser alcançada a extrema robustez do sistema de monitoração? • Quais são as questões de segurança e como as políticas adequadas podem ser impostas? 17/3/2009 Sistemas Distribuídos – prof. Pacheco38 Sistema Eletrônico para Tratamento de Saúde (2) � Monitoração de uma pessoa em um sistema eletrônico de tratamento de saúde utilizando (a) um hub local ou (b) uma conexão contínua sem fio. 17/3/2009 17/3/2009 20 Redes de Sensores 17/3/2009Sistemas Distribuídos – prof. Pacheco39 Sistemas Distribuídos – prof. Pacheco40 Redes de Sensores (1) � Questões referentes a redes de sensores: • Como montar (dinamicamente) um árvore eficiente em uma rede de sensores? • Como ocorre a agregação de resultados? Ela pode ser controlada? • O que acontece quando os enlaces falham? 17/3/2009 17/3/2009 21 Redes de Sensores 17/3/2009Sistemas Distribuídos – prof. Pacheco41 Sistemas Distribuídos – prof. Pacheco42 Redes de Sensores (2) � Organizando um banco de dados de redes de sensores e, ao mesmo tempo, armazenando e processando dados (a) somente no site do operador … 17/3/2009 17/3/2009 22 Sistemas Distribuídos – prof. Pacheco43 Redes de Sensores (3) � Organizando um banco de dados de redes de sensores e, ao mesmo tempo, armazenando e processando dados .... ou (b) somente nos sensores. 17/3/2009
Compartilhar