Prévia do material em texto
1 SISTEMAS DISTRIBUÍDOS APRESENTAÇÃO Prof. Msc. Ulisses Weyl Costa ulissesweyl@gmail.com EMENTA DA DISCIPLINA Conceitos básicos: histórico, terminologia, sistemas centralizados, distribuídos, paralelos ou de alto desempenho. Paradigmas de comunicação entre processos (IPC). Programação Distribuída. Sincronização em sistemas distribuídos. Algoritmos distribuídos. Sistemas distribuídos tolerantes a falhas. Sistemas Operacionais Distribuídos. Objetos distribuídos. Aplicações de sistemas distribuídos: Sistemas Cooperativos e Colaborativos. OBJETIVO GERAL: - Conhecer e aplicar conceitos e tecnologias de Sistemas Distribuídos - Programação distribuída CRONOGRAMA # Data Conteudo 1 06/11/2017Apresentação 2 07/11/2017Arquitetura 3 08/11/2017Processo 4 09/11/2017Comunicação 5 10/11/2017Nomeação 6 13/11/2017Seminário Trabalho 1 7 14/11/2017Primeira Avaliação 8 16/11/2017Sincronização 9 17/11/2017Sistemas de Arquivos 10 20/11/2017Objetos Distribuídos 11 21/11/2017Tolerancia a Falhas e Segurança 12 22/11/2017Seminário Trabalho 2 13 23/11/2017segunda Avaliação 14 24/11/2017Prova Substitutiva REFERÊNCIAS BIBLIOGRÁFICAS TANENBAUM, A. S.; STEEN, M. V. “Sistemas Distribuídos”2ª edição. Prentice Hall, 2007. COULOURIS, G.DOLLIMORE, J.“Sistemas Distribuídos Conceitos e Projeto”5ª edição.Bookman, 2013.Mullender, S.. Distributed Systems, 2a. Ed., ACM Press, 1993. RIBEIRO, U. “Sistemas Distribuídos Desenvolvendo aplicações de alta performance no Linux” 1ª edição. Axcel Books, 2005. EVOLUÇÃO INTRODUÇÃO Os sistemas de computação estão passando por uma revolução desde 1945; Organizações com poucos computadores A partir da década de 80, dois avanços tecnológicos começaram a mudar essa situação: Microprocessadores de grande capacidade Redes de computadores de alta velocidade (LANs) Maiores quantidades de dados podem ser movimentadas entre máquinas a taxas de 100 milhões a 10 bilhões de bits/s Redes de longa distância (WANs) permitem que milhões de máquinas no mundo inteiro se conectem com velocidades de 64 kbits/s a gigabits por segundo INTRODUÇÃO O resultado dessas tecnologias é: Viável e fácil de montar sistemas de computação compostos por grandes quantidades de computadores conectados por uma rede de alta velocidade. Esses sistemas costumam ser denominados como redes de computadores ou sistemas distribuídos, em comparação com os sistemas centralizados (ou sistemas monoprocessadores). INTRODUÇÃO Sistema distribuído é um pedaço de software que garante: “uma coleção de computadores independentes aparece para seus usuários como um único sistema integrado” Dois Aspectos: 1. Computadores Independentes 2. Sistema Único→Middleware INTRODUÇÃO “Um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente.“ Tanenbaum Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." G. Coulouris METAS DE SISTEMAS DISTRIBUÍDOS Fazer com que os recursos estejam disponíveis Transparência na distribuição Abertura Escalabilidade TRANSPARÊNCIA DE DISTRIBUIÇÃO Transparência de distribuição é uma meta boa, mas atingi-la não é fácil ou barato. SISTEMAS DISTRIBUÍDOS ABERTOS Atingindo Abertura Ao menos tornar o sistema distribuído da heterogeneidade do ambiente subjacente: Hardware Plataformas Linguagens DESENVOLVENDO SISTEMAS DISTRIBUÍDOS:DIFICULDADES Observação Muitos sistemas distribuídos são desnecessariamente complexos devido a erros de projeto que necessitaram ajustes posteriores. Há muitas falsas premissas: A rede é confiável A rede é segura A rede é homogênea A topologia não muda A latência é próxima de zero A banda é próxima de infinito Transporte tem custo zero Há um único administrador TIPOS DE SISTEMAS DISTRIBUÍDOS Sistemas de Computação Distribuídos Sistemas de Informação Distribuídos Sistemas Distribuídos Pervasivos SISTEMAS DE COMPUTAÇÃO DISTRIBUÍDOS Cluster Beowulf SISTEMAS DE COMPUTAÇÃO DISTRIBUÍDOS Computação em Nuvem Infraestrutura como serviço Heterogêneo Espalhado por WAN REDES DE SENSORES COMO SISTEMAS DISTRIBUÍDOS INTRODUÇÃO Principal Motivação necessidade pelo compartilhamento de recursos. Recurso pode ser um serviço, arquivo, banco de dados, streaming de vídeo, etc. Natureza do Problema busca por maior eficiência quando as técnicas de distribuição contribuem busca por escalabilidade, flexibilidade, modularidade INTRODUÇÃO Características de um Sistema Distribuído: baixo acoplamento e atrasos na comunicação; processos em sistemas computacionais distintos com probabilidade de falhas; comunicação geralmente não confiável, onde existem atrasos, variação de atrasos, perdas e em alguns casos baixas larguras de banda; INTRODUÇÃO Características de um Sistema Distribuído: dificuldade em definir a ordem dos eventos e estado global do sistema, uma vez que a comunicação acontece pela troca de mensagens; ambiente geralmente marcado pela heterogeinadade. INTRODUÇÃO Consequências de um Sistema Distribuído Concorrência A execução concorrente é uma característica intrínseca de um SD, em que os processos disputam pelos recursos compartilhados Inexistência de Relógio Global A coordenação dos processos dependem de uma noção compartilhada do tempo em que as ações dos programas ocorrem. INTRODUÇÃO Consequências de um Sistema Distribuído Falhas independentes Falhas na rede, nos sistemas ou nos processos demoram para serem percebidas no SD. EXEMPLO DE SISTEMAS DISTRIBUÍDOS: INTERNET Internet é um conjunto de redes de computadores, de muitos tipos diferentes, interligadas. Intranets, Provedores de serviços de Internet (ISPs) A internet é um sistema distribuído muito grande. Ela permite que os usuários, onde que que estejam, façam uso de serviços como a World Wide Web, e-mail e transferência de arquivos. EXEMPLO DE SISTEMAS DISTRIBUÍDOS: INTERNET Nesta rede quais seriam os recursos compartilhados ? EXEMPLO DE SISTEMAS DISTRIBUÍDOS: INTRANET Uma intranet é uma parte da internet administrada separadamente, cujo limite pode ser configurado para impor planos de segurança locais Sub-rede operada por empresas e outras organizações. Composta de varias redes locais (LANs) interligadas por conexões de backbone Backbone é um enlace de rede com alta capacidade de transmissão, empregando conexões via satélite, cabos de fibra ótica ou outros meios físicos de transmissão que possuam uma grande largura de banda. Nesta rede quais seriam os recursos compartilhados ? EXEMPLO DE SISTEMAS DISTRIBUÍDOS: INTRANET Motivação Computação móvel e ubíqua miniaturização de dispositivos e interligação em rede sem fio; Integração de equipamentos de computação pequenos e portáteis com SDs. Ex: ?? EXEMPLO DE SISTEMAS DISTRIBUIDOS: REDE WIRELESS Ubíquo? Noção de que o acesso a serviços de computação está onipresente (disponível em qualquer lugar). Então, computação móvel e ubíqua se sobrepõem. EXEMPLO DE SISTEMAS DISTRIBUÍDOS: REDE WIRELESS Nesta rede quais seriam os recursos compartilhados ? COMPARTILHAMENTO DE RECURSOS E A WEB Geralmente compartilhamos recursos de hardware (impressoras), de dados (arquivos), e os com funcionalidades mais específicas ( mecanismos de busca). Muitos SDs podem ser totalmente construídos naforma de clientes e servidores interagindo. Web E-mail; Impressoras interligadas; WEB?? sistema em evolução (web, 2.0, 3.0 ...) para publicação e acesso a recursos e serviços pela internet. WEB?? Baseada em tres componentes basicos HTML - linguagem para especificar o conteúdo; URLs - identificam os documentos e recursos armazenados como parte da web HTTP - protocolo de interação por meio dos quais navegadores(e outros tipos de clientes) buscam documentos e outros recursos dos servidores web PRINCIPAIS DESAFIOS PARA A IMPLANTAÇÃO Heterogeneidade Redes, hardwares, sistemas operacionais, Linguagens, Implementações Soluções atuais: middleware e código móvel Sistemas abertos Sistemas que podem ser implementados de diversas maneiras, APIs públicas. Ex. TCP/IP Segurança Negação de serviço, código móvel Escalabilidade Controle de recursos físicos, perda de desempenho, controle do desempenho de processos servidores, evitar gargalos PRINCIPAIS DESAFIOS PARA A IMPLANTAÇÃO Tratamento de Falhas Falhas em sistemas distribuídos são parciais: alguns falham outros não. Técnicas atuais: Detecção Mascaramento tolerância Recuperação redundância PRINCIPAIS DESAFIOS PARA A IMPLANTAÇÃO Concorrência Garantir que processos operem corretamente em ambientes concorrentes PRINCIPAIS DESAFIOS PARA A IMPLANTAÇÃO Transparência Acesso Localização Concorrência Replicação Falhas Mobilidade Desempenho Escalabilidade ARQUITETURAS Acesso Remoto Acesso distribuído a recursos centralizados (ex. mainframe via terminal, FTP) Distribuição de Arquivos e Memória Mais comum em redes locais (Disco, memória, etc) Acesso Remoto Avançado Terminal server, X11 Arquiteturas Cliente/Servidor Acesso a métodos de outros processos para execução de tarefas específicas Duas e três camadas Código Móvel Applets Java ARQUITETURAS FIM