Aula 2 introdução a sistemas distribuídos

13,466 views
13,162 views

Published on

Introdução a Sistemas Distribuídos: características, vantagens, tipos, etc.

Published in: Education
0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,466
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
18
Embeds 0
No embeds

No notes for slide

Aula 2 introdução a sistemas distribuídos

  1. 1. Introdução a Sistemas DistribuídosIntrodução a Sistemas DistribuídosEduardo de Lucena Falcão
  2. 2. Motivação●Crescente dependência dos usuários aos sistemas:– necessidade de partilhar dados e recursos entre utilizadores;– porque os recursos estão naturalmente em máquinas diferentes.● Demanda computacional se torna maior do que os avanços de software ehardware combinados;● Algumas características inexistentes em sistemas centralizados como:– tolerância a falhas;– capacidade de escalabilidade;– separação física;– vantagens financeiras.
  3. 3. O que são Sistemas Distribuídos?● “Um sistema distribuído é um conjunto decomputadores independentes entre si que seapresenta a seus usuários como um sistemaúnico e coerente.” Tanembaum, A.● “Coleção de computadores autônomosinterligados através de uma rede decomputadores e equipados com software quepermita o compartilhamento dos recursos dosistema: hardware, software e dados.”Coulouris, G.
  4. 4. O que são Sistemas Distribuídos?● “Você sabe que tem um sistema distribuídoquando a falha de um computador doqual você nunca ouviu falar faz com quevocê pare completamente de trabalhar.”Lamport, L.
  5. 5. Avanços tecnológicos● Invenção de redes de computadores de alta velocidade(anos 70):– Rede local (Local Area Network – LAN)– Rede global (Wide Area Network – WAN)● Desenvolvimento de microprocessadores potentes (anos80)
  6. 6. Estado da Arte● É relativamente fácil agrupar um grande número deCPUs, conectando-as por uma rede de alta velocidade;● O software para sistemas distribuídos é completamentediferente do software para sistemas centralizados– Grandes desafios no desenvolvimento de sistemasdistribuídos
  7. 7. Sistemas Distribuídos vs Redesde Computadores● Rede: um meio para interconectar computadores e trocarmensagens através de protocolos bem definidos. Entidades da redesão visíveis e endereçadas explicitamente.● Sistema distribuído: a existência de múltiplos computadoresautônomos, de forma transparente.● Muitos problemas (e.g., abertura, confiabilidade) são comuns aambos, mas tratados em diferentes níveis:– As redes tratam no nível de pacotes, roteamento, etc., enquantoos sistemas distribuídos tratam no nível das aplicações;– Todo sistema distribuído depende dos serviços oferecidos poruma ou mais redes de computadores.
  8. 8. Exemplo: Internet
  9. 9. Exemplo: Intranet
  10. 10. Vantagens de Sistemas Distribuídos● Melhor relação custo/benefício;● Maior capacidade de processamento;● Maior confiabilidade e disponibilidade;● Crescimento gradativo de capacidade;● Compartilhamento de recursos:– Hardware, software e dados.
  11. 11. Desvantagens de Sistemas Distribuídos● Desenvolvimento de software adequado;● Falhas e saturação da rede de comunicação:– Podem eliminar as vantagens destes sistemas;● Segurança pode ser comprometida:– Acesso a dados e recursos reservados.
  12. 12. Características Básicas deSistemas Distribuídos● Compartilhamento de recursos● Heterogeneidade● Escalabilidade● Transparência● Concorrência● Tolerância a falhas● Segurança
  13. 13. Compartilhamento de Recursos● Recurso:– Termo abstrato e compreende tanto objetos de hardware, comodiscos e impressoras, quanto entidades de software comoarquivos e banco de dados;● Motivações:– Economia: compartilhamento de impressoras,supercomputadores, sistemas de armazenamento, etc...– Colaboração e troca de informações: arquivos, correioeletrônico, documentos, áudio e vídeo, teleconferência, etc...
  14. 14. Heterogeneidade● Variedade e diferença em termos de:– Hardware;– Sistemas operacional;– Rede;– Linguagem de programação;– Implementações de diferentes desenvolvedores.● Exemplos de heterogeneidade na Internet:– Diferentes implementações do mesmo conjunto de protocolos para diferentes tiposde rede: IP, TCP, UDP, SMTP;– Diferentes padrões de representação de dados: IDL, XML;– Diferentes padrões de bibliotecas: POSIX, DLL;– Diferentes padrões de invocação de serviços: COM, CORBA,RMI, SOAP;– Diferentes plataformas de execução: JVM (Java), CLR (.NET).
  15. 15. Escalabilidade● Capacidade do sistema permanecer operando de formaefetiva mesmo diante de um aumento significativo donúmero de usuários e/ou dos recursos disponíveis;● Principais desafios:– Controlar o custo dos recursos físicos;– Controlar perdas de desempenho;– Evitar “gargalos” de desempenho na rede ou nospróprios servidores.
  16. 16. Escalabilidade● Se uma quantidade maior de usuários ou recursosdevem ser considerados deve-se tomar cuidado comserviços, dados centralizados:● Eles se tornam gargalos, pontos únicos de falhas esaturam a rede onde residem.Conceito ExemploServiços Centralizados Um único servidor para todos osusuáriosDados Centralizados Uma única lista telefônica onlineAlgoritmos Centralizados Multiplicação de cadeias deMatrizes de maneira sequencial
  17. 17. Escalabilidade: Algoritmos Distribuídos● Algoritmos distribuídos possuem as seguintes diferençascom relação aos centralizados:– Nenhum nó possui informação completa do estado dosistema;– Cada nó toma decisões baseado somente eminformações locais;– A falha de um nó não inviabiliza a execução doalgoritmo;– Não se pressupõe a existência de um relógio global.
  18. 18. Escalabilidade: AlgoritmosDistribuídos● Método de comunicação entre processos:– Memória compartilhada;– Mensagens ponto-a-ponto;– Difusão de mensagens (broadcast);– Chamadas remotas a procedimentos (RPC).
  19. 19. Tolerância a falhas● Falhas são inevitáveis em sistemas computacionais:– Resultados incorretos;– Interrupção não planejada do serviço antes de suaconclusão;● Falhas em sistemas distribuídos são parciais;● Técnicas de tratamento de falhas mais comuns:– Detecção: bits de paridade, somas de verificação;– Ocultamento: retransmissão de mensagens;– Tolerância: informar o usuário do problema.
  20. 20. Transparência● Abstração/Ocultação para os usuários e programadoresde aplicação:– Sistema percebido como um “todo” coerente ao invésde uma coleção de partes independentes;● Uma medida de sucesso de um sistema distribuído édada pela sua transparência:– Em que medida é indistinguível de um sistemacentralizado com a mesma funcionalidade?
  21. 21. Transparência● Transparência de acesso:– Permite o acesso a componentes remotos e locaisatravés das mesmas operações;– Ex: Google Drive.● Transparência de localização:– Permite o acesso a componentes sem conhecimento dasua localização física;– Existência de um mecanismo que determina a localizaçãobaseada em um nome;– Ex: URL.
  22. 22. Transparência● Transparência de concorrência:– Permite a execução concorrente de múltipla operações sobre omesmo conjunto de recursos sem causar interferência entre elas;– Ex: Impressoras compartilhadas, leilão virtual.● Transparência de escala:– Permite a expansão do sistema e de suas aplicações sem exigirmudanças significativas na infraestrutura existente;● O sistema não possui gargalos● Transparência de mobilidade (migração):– Permite a realocação de recursos e aplicações sem afetar o seu uso.
  23. 23. Transparência● Transparência de Replicação:– O usuário desconhece a existência de várias cópiasdo recurso;– Fundamental para desempenho e tolerância a falhas.
  24. 24. Transparência● Transparência de falhas:– A presença de falhas no sistema não é percebidapelos usuários;– Implica na ausência de um ponto único de falha.
  25. 25. Transparência● Transparência de desempenho:– Recurso adicionais são adicionados para suprir anova demanda;– Serviços oferecidos pela Amazon (elasticidade).
  26. 26. Concorrência● Suporte para múltiplos acessos simultâneos a um ou maisrecursos compartilhados:– Possibilidade de inconsistências quando os recursos sãoalterados● Serviços devem garantir que as operações de acesso osmantenham em um estado consistente– Válido para servidores e objetos de aplicações● Técnicas mais comuns:– Sincronização de acesso (ex.: exclusão mútua distribuída)– Protocolos de controle de concorrência (ex.: 2PC)
  27. 27. Segurança● Proteção para recursos compartilhados:– Confidencialidade (proteção contra usuários não autorizados):● Ex.: Acesso a dados sobre salário, histórico médico;– Integridade (proteção contra alteração e corrupção):● Ex.: Alteração indevida de dados usados em transações bancárias;– Disponibilidade (proteção contra interferência ao meio de acesso):● Ex.: Queda ou sobrecarga do servidor ou do meio de comunicação;● Principais mecanismos de segurança na Internet– Firewall;– Assinaturas digitais;– Canais de seguros de comunicação.
  28. 28. Cuidado!● Premissas falsas adotadas ao se desenvolve pelaprimeira vez uma aplicação distribuída:– Rede é confiável;– Rede é segura– Rede é homogênea;– Topologia da rede não muda;– Latência zero;– Largura de banda é infinita.
  29. 29. Tipos de Sistemas Distribuídos
  30. 30. Middleware● Como suportar computadores e redes heterogêneos,oferecendo uma visão de sistema único?– Sistemas Distribuídos são organizados por meio deuma camada de software.
  31. 31. Tipos de Sistemas Distribuídos● Sistemas de Computação Distribuídos:– Computação em Clusters;– Supercomputadores;– Computação em Grade (Grids);– Computação em Nuvem (Cloud Computing);● Sistemas de Informação Distribuídos;● Sistemas Distribuídos Pervasivos.
  32. 32. Clusters● Hardware consiste em um conjunto de estações de trabalhoou PCs semelhantes;● Conexão feita através de uma rede local;● Em quase todos os casos, a computação de cluster é usadapara programação paralela na qual um único programa éexecutado em paralelo.
  33. 33. Clusters● Cluster Beowulf baseado em Linux
  34. 34. Supercomputadores● Clusters altamente “tunados” usando processadores deprateleira combinados a conexões de rede especiais esistema operacional proprietário.
  35. 35. Supercomputadores
  36. 36. Grades Computacionais● Computação em grade: muitos nós (clusters) de diversasorigens e com baixo acoplamento.– Heterogêneos;– Dispersos através de várias organizações;● Recursos de diferentes organizações são reunidospara permitir a colaboração de um grupo depessoas ou instituições.
  37. 37. Grades Computacionais● Ex.:CineGrid – Transmissão de conteúdo de altaqualidade (vídeos 4K) usando redes de alta velocidade.
  38. 38. Principais Grades Computacionais● European Grid Initiative – EGI:– 350 provedores de recursos em 50 países;– ~ 400.000 núcleos;– > 1.200.000 tarefas executadas por dia.● LHC Computing Grid – LCG:– 140 provedores de serviço em 35 países;– > 200.000 núcleos.● Open Science Grid – OSG:– 80 provedores de recursos;– ~70.000 núcleos.● Extreme Science and Engineering Discovery Environment – XSEDE:– Formada por centros de supercomputação nos EUA;– Acima de 3 PF/s.● Distributed European Infrastructure for Supercomputing Applications – DEISA:– Formada por 11 supercomputadores na Europa;– Acima de 2 PF/s.
  39. 39. Sistemas Pervasivos● Uma nova geração de sistemas distribuídos estão emergindo:sistemas de computação móvel e pervasivos;– Instabilidade é o comportamento esperado destes sistemas;– Heterogeneidade de rede e de dispositivos;– Problemas de segurança;– Dispositivos de computação móveis e embutidos:● Pequenos;● Alimentação por bateria;● Têm como objetivo a mobilidade;● Se utilizam de conexão sem fio.
  40. 40. Exemplos de Sistemas Pervasivos● Sistema pervasivo de monitoramento de saúde, usando(a) um hub local ou (b) uma conexão sem fio paratransmitir os dados coletados.
  41. 41. Exemplos de Sistemas Pervasivos
  42. 42. Exemplos de Sistemas Pervasivos
  43. 43. Computação em Nuvem
  44. 44. Computação em Nuvem● Um (novo) paradigma da computação distribuída motivado pela:– Economia de escala:● O impacto combinado dessas economias de escala pode resultar emeconomias em longo prazo de até 80% quando comparadas comestruturas convencionais de hardware.– Virtualização:● Ao simular ambientes autônomos em uma mesma máquina física,diminui-se a necessidade de hardware, de espaço físico e deenergia. Além disso, os servidores virtuais, por poderem serfacilmente movidos entre máquinas físicas, favorecem amanutenção.– Recursos dinamicamente escaláveis;– Oferta e demanda através da Internet.
  45. 45. Computação em Nuvem● Principais Nuvens– Industria: Google App Engine, Amazon, WindowsAzure, Salesforce.– Academia: Magellan, FutureGrid.– Middleware para nuvem: Nimbus, Eucalyptus,OpenNebula.
  46. 46. Referências● Slides do Professor Flávio R. C. Sousa. “Introdução aSistemas Distribuídos”. Sistemas Distribuídos.Universidade Federal do Ceará.● Slides do Professor Alexandre Nóbrega Duarte.“Introdução aos Sistemas Distribuídos”. ComputaçãoIntensiva em Dados. Universidade Federal da Paraíba.● “Distributed Systems: Concepts and Design.” ThirdEdition. Coulouris, G.; Dollimore, J.; Kindberg, T.
  47. 47. Dúvidashttps://sites.google.com/site/introsistemasdistribuidos/Eduardo de Lucena Falcãoeduardolfalcao@gmail.com@dudufalcao

×