Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Introdução aos Sistemas Distribuídos Prof. Marcus Fábio Fontenelle, M.Sc. Mestre em Informática Aplicada LPIC-1, NCLA, MCSE Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Definição de um Sistema Distribuído • Segundo Tanembaum “um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente”. Um sistema distribuído consiste em componentes (isto é, computadores) autônomos. Os usuários, sejam pessoas ou programas, acham que estão lidando com um único sistema. Nenhuma premissa é adotada em relação ao tipo de computadores. Nenhuma premissa é adotada quanto ao modo como os computadores são interconectados. 2 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Principais Características • Diferenças entre os vários computadores e o modo como eles se comunicam estão, em grande parte, ocultas ao usuário. • Usuários e aplicações podem interagir com um sistema distribuído de maneira consistente e uniforme, independentemente de onde a interação ocorra. • Em princípio, também deveria ser relativamente fácil expandir ou aumentar a escala de sistemas distribuídos. • Em geral, um sistema distribuído estará continuamente disponível, embora algumas partes possam estar temporariamente avariadas. 3 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Middleware • Para suportar computadores e redes heterogêneos e, simultaneamente, oferecer uma visão de sistema único, os sistemas distribuídos costumam ser organizados por meio de uma camada de software chamada middleware. 4 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Metas de um Sistema Distribuído • Quatro metas importantes devem ser cumpridas na construção de um sistema distribuído para que valha a pena o esforço. Deve oferecer fácil acesso a seus recursos Deve ocultar razoavelmente bem o fato de que os recursos são distribuídos por uma rede Deve ser aberto Deve poder ser expandido 5 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 1ª Meta: Acesso a Recursos • A principal meta de um sistema distribuído é facilitar aos usuários, e às aplicações, o acesso a recursos remotos e seu compartilhamento de maneira controlada e eficiente. Economia Colaboração (groupware) • Necessário, no entanto, aprimorar a segurança, evitando acessos indevidos e rastreamento de comunicações para criação de perfis de usuários. 6 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 2ª Meta: Transparência • Uma meta importante de um sistema distribuído é ocultar o fato de que seus processos e recursos estão fisicamente distribuídos por vários computadores. • Um sistema distribuído que é capaz de se apresentar a usuários e aplicações como se fosse apenas um único sistema de computador é denominado transparente. 7 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Grau de Transparência • Deve levar em consideração várias questões, como desempenho e facilidade de compreensão. O usuário deve saber das limitações do sistema decorrentes do mesmo ser distribuídos, como: ― Tempo de acesso? ― Localização de recursos? 8 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 3ª Meta: Abertura • Um sistema distribuído aberto é um sistema que oferece serviços de acordo com as regras padronizadas que descrevem a sintaxe e a semântica desses serviços. • Em geral os serviços são especificados por meio de interfaces, que costumam ser descritas em uma Linguagem de Definição de Interface (Interface Definition Language – IDL) Quase sempre capturam apenas a sintaxe de serviços, ou seja, especificam com precisão os nomes das funções que estão disponíveis, os tipos de parâmetros, os valores de retorno, as exceções etc. 9 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 3ª Meta: Abertura • As especificações devem ser completas e neutras. Completude significa que tudo que é necessário para uma implementação foi especificado. Neutralidade significa que as especificações não definem como deve ser a aparência da implementação. Completude e neutralidade são importantes para interoperabilidade e portabilidade. ― Interoperabilidade caracteriza até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, com base na mera confiança mútua nos serviços de cada um, especificados por um padrão. ― Portabilidade caracteriza até que ponto uma aplicação desenvolvida para um sistema distribuído A pode ser executada, sem modificação, em um sistema distribuído diferente B que implementa as mesmas interfaces de A. • Um sistema distribuído aberto deve ser de fácil configuração com base em componentes diferentes. • Um sistema distribuído aberto deve ser extensível. 10 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 4ª Meta: Escalabilidade • A escalabilidade de um sistema pode ser medida segundo 3 dimensões: Tamanho: Significa que é fácil adicionar usuários e recursos ao sistema. Termos Geográficos: Significa que os usuários e recursos podem estar longe uns dos outros. Termos Administrativos: Significa que mesmo que abranja muitas organizações administrativas diferentes ainda pode ser fácil de gerenciar. • Um sistema escalável em uma ou mais dessas dimensões pode apresentar perda na capacidade de desempenho à medida que é ampliado. 11 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Problemas de Escalabilidade – Tamanho • O que distingue um algoritmo descentralizado de um algoritmo centralizado? Nenhuma máquina tem informações completas sobre o estado do sistema. 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 12 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Problemas de Escalabilidade – Termos Geográficos • Impossível prover comunicação síncrona para grandes distâncias. • Comunicação em redes de longa distância não é confiável e quase sempre ponto a ponto. • Soluções centralizadas atrapalham a escalabilidade de tamanho. 13 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Problemas de Escalabilidade – Termos Administrativa • Difícil estabelecer políticas de uso e pagamento de: Recursos Gerenciamento Segurança 14 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Técnicas de Escalabilidade • Problemas básicos de escalabilidade são os problemas de desempenho causados por capacidade limitada de servidores e redes. • Técnicas para ampliar sistemas: Ocultar latências de comunicação Distribuição Replicação 15 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Premissas Falsas ao se Desenvolver Sistemas Distribuídos 1. A rede é confiável 2. A rede é segura 3. A rede é homogênea 4. A topologia não muda5. A latência é zero 6. A largura da banda é infinita 7. O custo de transporte é zero 8. Há apenas um administrador 16 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Resumindo • Transparência: o processo de um usuário pode ser executado em qualquer máquina da rede, sendo escolhida pelo sistema, conforme a disponibilidade no momento. • Confiabilidade: o sistema deve apresentar: Disponibilidade : estar sempre apto a ser utilizado Segurança: proteger os recursos dos acessos não autorizados Tolerante a falhas : ser capaz de manipular falhar automaticamente (backup) • Desempenho: Compartilhamento de recursos com uma melhor utilização da carga de processamento entre todas as máquinas • Escalabilidade: Capacidade de agregar novos recursos ao sistema – crescimento incremental sem prejudicar o desempenho do sistema • Flexibilidade: O sistema deve ser flexível para permitir mudanças no sistema, caso necessite acomodar um novo projeto. 17 Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 18 Referências Bibliográficas • Sistemas Distribuídos – Princípios e Paradigmas, Andrew Tanenbaum, 2ª Edição – Seções 1.1 e 1.2 • Biblioteca Virtual Estácio
Compartilhar