Download Características Básicas de Sistemas Distribuídos... Show 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 e hardware combinados; ● Algumas características inexistentes em sistemas centralizados como: – tolerância a falhas; – capacidade de escalabilidade; – separação física; – vantagens financeiras. 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. 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. Características Básicas de Sistemas Distribuídos ● Compartilhamento de recursos ● Heterogeneidade ● Escalabilidade ● Transparência ● Concorrência ● Tolerância a falhas ● Segurança 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: – Economia: compartilhamento de impressoras, supercomputadores, sistemas de armazenamento, etc... – Colaboração e troca de informações: arquivos, correio eletrônico, documentos, áudio e vídeo, teleconferência, etc... 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 tipos de 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). Escalabilidade ● Capacidade do sistema permanecer operando de forma efetiva mesmo diante de um aumento significativo do nú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 nos próprios servidores. ● Se uma quantidade maior de usuários ou recursos devem ser considerados deve-se tomar cuidado com serviços, dados centralizados: Conceito Exemplo Serviços Centralizados: Um único servidor para todos os usuários Dados Centralizados: Uma única lista telefônica online Algoritmos Centralizados: Multiplicação de cadeias de Matrizes de maneira seqüencial. ● Eles se tornam gargalos, pontos únicos de falhas e saturam a rede onde residem. Escalabilidade: Algoritmos Distribuídos ● Algoritmos distribuídos possuem as seguintes diferenças com relação aos centralizados: – Nenhum nó possui informação completa do estado do sistema; – Cada nó toma decisões baseado somente em informações locais; – A falha de um nó não inviabiliza a execução do algoritmo; – Não se pressupõe a existência de um relógio global. Escalabilidade: Algoritmos Distribuí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). Tolerância a falhas ● Falhas são inevitáveis em sistemas computacionais: – Resultados incorretos; – Interrupção não planejada do serviço antes de sua conclusã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. Transparência ● Abstração/Ocultação para os usuários e programadores de aplicação: – Sistema percebido como um “todo” coerente ao invés de 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 sistema centralizado com a mesma funcionalidade? ● Transparência de acesso: – Permite o acesso a componentes remotos e locais através das mesmas operações; – Ex: Google Drive. ● Transparência de localização: – Permite o acesso a componentes sem conhecimento da sua localização física; – Existência de um mecanismo que determina a localização baseada em um nome; – Ex: URL. ● Transparência de concorrência: – Permite a execução concorrente de múltipla operações sobre o mesmo 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 exigir mudanç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. ● Transparência de Replicação: – O usuário desconhece a existência de várias cópias do recurso; – Fundamental para desempenho e tolerância a falhas. ● Transparência de falhas: – A presença de falhas no sistema não é percebida pelos usuários; – Implica na ausência de um ponto único de falha. ● Transparência de desempenho: – Recurso adicionais são adicionados para suprir a nova demanda; – Serviços oferecidos pela Amazon (elasticidade). Concorrência ● Suporte para múltiplos acessos simultâneos a um ou mais recursos compartilhados: – Possibilidade de inconsistências quando os recursos são alterados ● Serviços devem garantir que as operações de acesso os mantenham 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) 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. Cuidado! ● Premissas falsas adotadas ao se desenvolve pela primeira 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. Middleware ● Como suportar computadores e redes heterogêneos, oferecendo uma visão de sistema único? – Sistemas Distribuídos são organizados por meio de uma camada de software. 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. Clusters ● Hardware consiste em um conjunto de estações de trabalho ou PCs semelhantes; ● Conexão feita através de uma rede local; ● Em quase todos os casos, a computação de cluster é usada para programação paralela na qual um único programa é executado em paralelo. Supercomputadores ● Clusters altamente “tunados” usando processadores de prateleira combinados a conexões de rede especiais e sistema operacional proprietário. Grades Computacionais ● Computação em grade: muitos nós (clusters) de diversas origens e com baixo acoplamento. – Heterogêneos; – Dispersos através de várias organizações; ● Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições. 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. Exemplos de Sistemas Pervasivos ● Sistema pervasivo de monitoramento de saúde, usando (a) um hub local ou (b) uma conexão sem fio para transmitir os dados coletados. 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 em economias em longo prazo de até 80% quando comparadas com estruturas 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 de energia. Além disso, os servidores virtuais, por poderem ser facilmente movidos entre máquinas físicas, favorecem a manutenção. – Recursos dinamicamente escaláveis; – Oferta e demanda através da Internet. ● Principais Nuvens – Industria: Google App Engine, Amazon, Windows Azure, Salesforce. – Academia: Magellan, FutureGrid. – Middleware para nuvem: Nimbus, Eucalyptus, OpenNebula. Referências ● Slides do Professor Flávio R. C. Sousa. “Introdução a Sistemas Distribuídos”. Sistemas Distribuídos. Universidade Federal do Ceará. ● Slides do Professor Alexandre Nóbrega Duarte. “Introdução aos Sistemas Distribuídos”. Computação Intensiva em Dados. Universidade Federal da Paraíba. ● “Distributed Systems: Concepts and Design.” Third Edition. Coulouris, G.; Dollimore, J.; Kindberg, T. Quais são as vantagens e desvantagens dos sistemas distribuídos?Melhor relação custo/benéfico; Maior capacidade de processamento; Page 2 • Maior domínio de aplicações; • Maior confiabilidade; • Maior disponibilidade; • Crescimento gradativo de sua capacidade de processamento. Desvantagens dos sistemas de informação distribuídos sobre os sistemas de informação centralizados.
Quais as vantagens de um sistema distribuído?A grande vantagem dos Sistemas Distribuídos é poder, com computadores baratos e de baixo processamento, formar um supercomputador que normalmente sairia muito caro.
São desvantagens dos sistemas distribuídos?Principais desvantagens: Complexidade - este é um dos problemas mais difíceis de resolver em toda computação, coordenar tudo é complicado, custa caro em todos os sentidos e a chance de algo dar errado no processo é grande.
Quais as principais características dos sistemas distribuídos?Um sistema distribuído é uma coleção de programas de computador que utilizam recursos computacionais em vários pontos centrais de computação diferentes para atingir um objetivo comum e compartilhado. Os sistemas distribuídos visam remover gargalos ou pontos centrais de falha de um sistema.
|