Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 15 de abril de 2013 Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 1 / 1
Agenda Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 2 / 1
Definição de Sistemas Distribuídos Definição de Sistemas Distribuídos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 3 / 1
Definição de Sistemas Distribuídos Definições de Sistemas Distribuídos Coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados [Coulouris]; Coleção de computadores independentes que se apresenta ao usuário como um sistema único e coerente [Tanenbaum]. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 4 / 1
Definição de Sistemas Distribuídos Sistema Distribuído Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 5 / 1
Definição de Sistemas Distribuídos Sistema Centralizado Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 6 / 1
Definição de Sistemas Distribuídos Sistema Distribuído Moderno Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 7 / 1
Metas de Sistemas Distribuídos Metas de Sistemas Distribuídos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 8 / 1
Metas de Sistemas Distribuídos Compartilhamento de recursos Recurso : termo abstrato e compreende tanto objetos de hardware como discos e impressoras quanto entidades de software como arquivos e banco de dados. Motivações: 1 Economia: compartilhamento de impressoras supercomputadores, sistemas de armazenamento, etc... 2 Colaboração e troca de informações: arquivos, correio eletrônico, documentos, áudio e vídeo. Groupware, teleconferência, etc... Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 9 / 1
Metas de Sistemas Distribuídos Transparência da Distribuição de acesso; de localização; de migração; de relocação: movimentação de lugar enquanto os recursos estão sendo acessados; de replicação; de concorrência; de falhas. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 10 / 1
Metas de Sistemas Distribuídos Abertura Um sistema aberto é aquele que oferece serviços de acordo com padrões que descrevem a sintaxe e semântica destes serviços; Por exemplo, em redes de computadores existem regras que definem o formato, conteúdo e significado das mensagens; Em SDs, serviços são especificados através de interfaces descritas em uma IDL (Interface Definition Language). Isso permite: 1 Um processo arbitrário que necessite de uma interface se comunique com outro processo que fornece esta interface; 2 Que sejam construídas implementações diferentes destas interfaces que funcionem do mesmo modo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 11 / 1
Metas de Sistemas Distribuídos Interoperabilidade, Portabilidade e Extensibilidade Interoperabilidade caracteriza até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, especificados por um padrão comum; Portabilidade caracteriza até que ponto uma aplicação desenvolvida para um sistema distribuído A pode ser executada, sem modificação, em um sistema B; Extensibilidade define a capacidade de se adicionar novos componentes ou substituir componentes existentes sem afetar os que continuam no mesmo lugar. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 12 / 1
Metas de Sistemas Distribuídos Escalabilidade com Relação ao Tamanho Se uma quantidade maior de usuários ou recursos devem ser considerados deve-se tomar cuidado com serviços, dados e algoritmos centralizados: Conceito Exemplo Serviços Centralizados Um único servidor para todos os usuários Dados Centralizados Uma única lista telefônica online Algoritmos Centralizados Fazer roteamento com base em informações completas Eles se tornam gargalos, pontos únicos de falhas e saturam a rede onde residem. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 13 / 1
Metas de Sistemas Distribuídos Algoritoms Distribuídos Algoritmos distribuídos possuem as seguintes diferenças com relação aos centralizados: 1 Nenhuma nó possui informação completa do estado do sistema; 2 Cada nó toma decisões baseado somente em informações locais; 3 A falha de um nó não inviabiliza a execução do algoritmo; 4 Não se pressupõe a existência de um relógio global. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 14 / 1
Metas de Sistemas Distribuídos Escalabilidade Geográfica Sistemas distribuídos desenvolvidos para redes locais tipicamente utilizam comunicação síncrona mas comunicação em WANs é tipicamente três ordens de magnitude mais lenta; Comunicação WAN não é confiável e ocorre ponto-a-ponto enquanto em LANs é confiável e baseada em broadcast. Isto facilita o desenvolvimento. Exemplo: serviço de localização. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 15 / 1
Técnicas de Escalabilidade Técnicas de Escalabilidade Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 16 / 1
Técnicas de Escalabilidade Esconder a Latência na Comunicação Construir a aplicação de forma a utilizar somente comunicação assíncrona; Em aplicações batch e paralelas normalmente é bem aceita mas o mesmo não ocorre em aplicações interativas; Neste caso, uma solução é diminuir a necessidade de comunicação movendo parte da computação do servidor para o cliente. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 17 / 1
Técnicas de Escalabilidade Esconder a Latência na Comunicação Figura: Verificação do preenchimento de um formulário: a) No servidor b) No cliente Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 18 / 1
Técnicas de Escalabilidade Distribuição Figura: Dividindo o espaço de nomes DNS em zonas. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 19 / 1
Técnicas de Escalabilidade Replicação Aumenta a disponibilidade e ajuda a balancear a carga de trabalho entre componentes levando a um melhor desempenho; Caching é uma forma especial de replicação na qual a decisão de trazer o objeto é de seu cliente e não de seu proprietário; Pode levar a problemas de consistência. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 20 / 1