Sistemas Distribuidos

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Sistemas Distribuidos por Mind Map: Sistemas Distribuidos

1. O que são Sistemas Distribuídos?

2. “Coleção de máquinas independentes que aparecem para o usuário como um único sistema coerente.“ (TANEMBAUM & VAN STEEN, 2007)

3. “Definimos um sistema distribuído como aquele no qual os componentes de hardware ou software, localizados em computadores interligados em rede, comunicam-se e coordenam suas ações apenas enviando mensagens entre si.” (COULOURIS et al, 2013)

4. Exemplos: mais popular é a WEB (pesquisa, jogos, e-commerce) Calculo Distribuído Cloud Computing Sistemas P2P ( BitTorrrent , FastTrack /KaZaA....) Base de dados distribuídas "Distributed database"

5. Por que utilizar sistemas distribuídos? Custo e desempenho paralelismo e computação distribuída Escalabilidade facilidade de aumentar recursos Distribuição inerente dispersão geográfica compartilhamento de recursos Confiabilidade redundância

6. Complicadores... Rede tem que ser levada em consideração Desempenho e falhas Segurança Distribuição introduz problemas inexistentes em sistemas centralizados Complexidade de software

7. Middleware Como suportar computadores e redes heterogêneos, oferecendo uma visão de sistema único? SDs são organizados por meio de uma camada de software

8. Metas : Acesso a recursos Transparência Abertura Escalabilidade

9. Metas: Acesso a Recursos Facilitar aos usuários e aplicações acesso a recursos remotos e o compartilhamento de maneira controlada e eficiente Razão óbvia: Economia Impressoras, computadores, dados, página Web Conectividade → Groupware e comércio eletrônico

10. Problema: Segurança Senhas, autenticação de usuários Rastreamento de comunicações para montar um perfil de preferências → violação de privacidade Spam

11. Metas: Transparência Ocultar o fato de que seus processos e recursos estão fisicamente distribuídos por vários computadores

12. Metas: Transparência [Acesso] Ocultar diferenças entre arquiteturas de máquinas Mais importante: Acordo sobre como os dados devem ser representados Exemplo: Nomeação de arquivos em SOs diferentes

13. Metas: Transparência [Migração] Recursos podem migrar de uma localidade para outra, por questões de desempenho, segurança, etc Deve ser feita de forma automática pelo sistema Deve manter o nome do objeto Deve garantir a continuidade de comunicação

14. Metas: Transparência [Realocação] Oculta que um recurso possa ser movido para outra localização durante o uso Exemplos Celular se movimentando dentro da mesma área de cobertura Um automóvel passando por várias redes de acesso sem fio, com conexão ininterrupta

15. Metas: Transparência [Replicação] Permite que várias instâncias de recursos sejam usadas para aumentar a confiabilidade e o desempenho Deve mascarar o conhecimento das réplicas por parte dos usuários Implica na transparência de localização Problemas de consistência

16. Transparência [Concorrência] Compartilhamento competitivo de recursos Deve garantir consistência Travas de acesso Tratamento mais refinado: transações

17. Usuário não pode perceber que um recurso deixou de funcionar bem Mascarar falhas é uma das questões mais difíceis Recurso morto ou incrivelmente lento?

18. Transparência [Necessária Compromisso entre um alto grau de transparência e o desempenho do sistema Exemplo: Aplicações de Internet tentam contatar um servidor repetidas vezes antes de desistir. Talvez seja melhor desistir mais cedo ou permitir que o usuário cancele as tentativas

19. Abertura Característica que determina se um sistema pode ser estendido de diferentes maneiras Hardware Inclusão de dispositivos de fabricantes distintos Software Módulos de SO Protocolos de Comunicação Recursos compartilhados

20. Interoperabilidade “Define até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, com base na confiança mútua nos serviços de cada um, especificados por um padrão comum”

21. Capacidade de um sistema ( informatizado ou não) de se comunicar de forma transparente (ou o mais próximo disso) com outro sistema (semelhante ou não). ”

22. 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 B que implementa as mesmas interfaces que A ”

23. Portabilidade “Habilidade de reusar um código existente ao invés de refazê-lo quando este é movido de um ambiente para outro”

24. Em resumo: No caso dos sistemas distribuídos, 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). Redes usam protocolos e SDs utilizam interfaces.

25. Escalabilidade Três Dimensões [Neuman, 1994] Tamanho (usuários e recursos) Termos Geográficos Termos Administrativos (organizações administrativas diferentes)

26. Escalabilidade – Tamanho Aumento do numero de usuários ou processos. -> Problemas

27. Serviços Centralizados -> Problemas Serviços que são implementados por meio de apenas um único servidor que executa em uma máquina específica no sistema distribuído Possível Gargalho no sistema

28. Dados Centralizados -> Problemas Números telefônicos estivessem em um único banco de dados → saturação de todas as linhas de comunicação que o acessam DNS (uma única tabela de DNS)

29. Algoritmos Centralizados -> Problemas Para evitar troca de mensagens → colher informações de todas as máquinas e linhas e executar um algoritmo para computar todas as rotas ótimas → propagar as informações por todo o sistema – má ideia!

30. Algoritmos Centralizados -> Problemas Somente usar algoritmos descentralizados! Pois: 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 todo o algoritmo; Não há nenhuma premissa implícita quanto a existência de um relógio global.

31. Escalabilidade – Geográfica Usuários e/ou recursos podem estar longe um dos outros -> Problemas Dificuldade de ampliar sistemas distribuídos existentes que foram originalmente projetados para redes locais: COMUNICAÇÃO SÍNCRONA Comunicação em redes de longa distância é inerentemente não confiável Localização de serviços (rede local – broadcast X rede longa distância)

32. Escalabilidade – Administrativa Sistema deve ser fácil de gerenciar, mesmo que abranja muitas organizações diferentes -> Problemas – Políticas conflitantes em relação a utilização – e pagamento – de recursos, gerenciamento e segurança

33. Escalabilidade – Técnicas “Problemas, em geral são causados por capacidade limitada de servidores e rede” Três técnicas [Neuman 1994] Ocultar latências de comunicação Distribuição Replicação

34. “Ocultar latências de comunicação” Evitar esperar por respostas a requisições remotas Comunicação Assíncrona

35. “Ocultar latências de comunicação” Mas e no caso das aplicações Interativas? O que fazer? Solução: Reduzir comunicação global, passando parte da computação do servidor para o cliente que está requerendo o serviço

36. Ocultar latências de comunicação” Exemplo: Acesso a banco de dados por meio de formulários

37. “Distribuição” Dividir um componente em partes menores e espalhar as subpartes pelo sistema

38. Distribuição” Exemplo: DNS: hierarquia em árvore de domínios, dividida em zonas se sobreposição

39. “Replicação” Aumenta a disponibilidade dos recursos Equilibra a carga entre os componentes Sistemas com ampla dispersão geográfica ocultar os problemas de latência Cache Forma especial de replicação Cache é uma decisão do cliente do sistema

40. “Escalibilidade administrativa em discussão” Problemas políticos estão envolvidos Progresso na área: ignorar domínios administrativos P2P – usuários finais tomam o controle – Vários problemas de direitos autorais, sobrecarga de informação nos Sistemas - Autônomos

41. Principais Ciladas Premissas falsas adotadas 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 da banda é infinita — 0 custo de transporte é zero — Há apenas um administrador (Peter Deutsch — Sun Microsystems)