Questões Resolvidas A.C.-10/08/05 Questões Defina com sua palavras, o que é sistemas Distribuídos? Cite explique os dois modelos mais usados em sistemas distribuídos? Cite algumas vantagens e desvantagens do sistemas distribuídos. Com base no projeto “Artes gráfica Renato” indique um modelo. Justifique a sua indicação. RESPOSTA 1 O que é Um Sistema Distribuído definido por Tanenbaum é uma coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente; outra definição, de Coulouris, seria uma 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. RESPOSTA 2 Modelo de Cliente Servidor Cliente/Servidor O cliente manda um pedido para o servidor e o servidor o retorna. Peer-to-peer (P2P) O banco de dados manda um pedido para o gerenciador, o gerenciador retorna para o banco de dados e pede confirmação, e o banco de dados retorna para o gerenciador. P2P P2P ou Peer-to-Peer é uma tecnologia que possibilita a distribuição de arquivos em rede e que tem como característica permitir o acesso de qualquer usuário dessa rede a um nó, ou a outro usuário (peer) de forma direta, possibilitando a partilha entre os usuários de ciclos de processamento das máquinas, banda de rede, espaço de armazenamento entre outros recursos que em outros sistemas acabavam sendo desperdiçados. Basicamente pode-se dizer que cada computador é cliente e servidor ao mesmo tempo. P 2 P... O conceito de peer-to-peer disseminou-se pelo mundo inteiro, devido ao surgimento, na internet, de sistemas de gestão de redes descentralizadas, que permitem aos utilizadores partilhar arquivos de forma direta, sem necessitarem de se ligar a um servidor central. O mais conhecido desses sistemas, o Napster, especializado na partilha de música, tornou-se mundialmente célebre devido a ser alvo de ataque jurídico por parte das companhias discográficas. Um dos tipos de arquivos mais frequentemente compartilhado nas redes P2P é o mp3 RESPOSTA 3 Vantagens Potenciais Adequação à estrutura das organizações – Distribuição física e acesso distribuído a sistemas de informação das organizações Adequação à interação entre pessoas – E-mail, boletins eletrônicos – Suporte para trabalho cooperativo Adequação dos serviços às máquinas – Mainframes para SGBDs, PCs para as aplicações gráficas Vantagens Potenciais Partilha de recursos – Poder computacional, informação, periféricos Difusão de informação entre pessoas – E-mail Acesso a serviços – E-business Vantagens Potenciais Disponibilidade – A falha de uma parte pode não perturbar todo o sistema – Replicação Flexibilidade –Escalabilidade no desenvolvimento de sistemas com elevado potencial Problemas da Distribuição Falha independente das componentes do sistema – Máquinas diretamente envolvidas nas interações – Infra-estrutura de comunicação Interação via troca de mensagens – Incapacidade de comunicar com o destinatário – Perda de mensagens, alteração do seu fluxo ou conteúdo – Latência variável – Heterogeneidade de representação de dados Problemas da Distribuição Segurança – Acesso não autorizado a recursos remotos – Inspeção ou alteração ilegítimas de conteúdos de mensagens Desenvolvimento de software – Concepção de sistemas operativos, linguagens e aplicações mais apropriados – Definir o que deve ser feito pelo sistema e o que deve ser feito pelos utilizadores RESPOSTA 4 Modelos para sistemas distribuídos Modelos para sistemas distribuídos Como aumentar a nossa intuição para resolver problemas? Experimentação abordagem prática baseada no acúmulo de informação; pode ser usada para construir coisas similares a outras já construídas. Modelagem e análise abordagem teórica baseada na simplificação do objeto de estudo (“mundo real”); seguida de análise - matemática ou lógica - para inferir propriedades. Modelagem x experimentação modelagem oferece mais “controle” sobre a intuição adquirida; modelagem só é útil se o modelo caracteriza o objeto de estudo de forma apropriada; experimentação é muito importante para validar modelos. O que é um bom modelo? Preciso a análise do modelo deve levar a conclusões verdadeiras sobre o objeto de estudo Tratável um modelo que não permite a execução de uma análise é inútil em um modelo tratável, as regras que governam o comportamento dos atributos do modelo são normalmente definidas através de fórmulas matemáticas ou lógicas Simulação Alternativa à experimentação Mais próximo do sistema real sem a necessidade de arcar com o custo de construí-lo Alternativa à modelagem Permite analisar situações que não podem ser modeladas de forma tratável/representativa Que respostas um bom modelo pode dar? Viabilidade Custo Que classes de problemas podem ser resolvidos Para as classes que podem ser resolvidas, quão cara (em termos de recursos, tempo de processamento, etc.) uma solução precisa ser Ambas as respostas têm valor prático e teórico Modelos para sistemas distribuídos: um exemplo O problema da coordenação Dois processos, A e B, se comunicam através de troca de mensagens. Nenhum processo falha, mas o canal de comunicação pode perder algumas mensagens. Construa um protocolo que permita que ou a ação a ou a ação b possa ocorrer, mas (i) A e B executam a mesma ação, e (ii) nenhum executa ambas as ações. Prova de impossibilidade A prova é por contradição se existir um tal protocolo deve envolver troca de mensagens entre A e B vamos escolher o protocolo que resolve o problema com o número mínimo de trocas de mensagens (i.e. não existe um protocolo que use menos mensagens) e, sem perda de generalidade, assumir que m, a última mensagem enviada no protocolo, foi enviada por A as ações tomadas por A e B não dependem de m, portanto m é supérflua e é possível construir um protocolo com uma mensagem a menos; uma contradição! Vamos entender melhor o que fizemos Nós concluímos que o Problema da Coordenação não tem solução, construindo um modelo simples e informal, usando duas observações: todos os protocolos distribuídos entrem os dois processos são equivalentes a uma série de trocas de mensagens; e ações tomadas por um processo dependem apenas da seqüência de mensagens recebidas. A partir desse modelo, nossa “intuição” sobre o problema pode ser refinada Quais são os atributos mais importantes de um sistema distribuído? Atrasos no escalonamento e na transmissão de mensagens síncronos x assíncronos Semântica de falha dos componentes parada (failstop), crash, omissão desempenho valor arbitrária (Bizantina) restrições obtidas através de autenticação Sistemas distribuídos assíncronos Nenhuma restrição em relação aos atrasos de escalonamento e de transmissão de mensagens Falhas arbitrárias Não há como obter acordo, mesmo que só um processo falhe e mesmo que a semântica seja crash Detectores de falhas não confiáveis Uma outra abordagem é definir o sincronismo extra necessário em termos de propriedades que precisam ser satisfeitas Classes de detectores Abrangência: que falhas são detectadas Exatidão: que erros podem acontecer Sincronismo no tempo Global Stabilization Time Como escolher um modelo? Características do ambiente de execução Requisitos da aplicação Tipos dos componentes Qualidade dos componentes Controle sobre o ambiente Aplicações críticas Usar uma coleção de modelos Processadores com semântica de falha controlada Canais confiáveis