Programação Distribuída Metas de um Sistema Distribuído
Programação Distribuída Metas de um Sistema Distribuído Um S.D. deve oferecer: 1. fácil acesso a seus recursos; 2. ocultar onde estão esses recursos, mantendo uma transparência da distribuição; 3. oferecer serviços aberto de acordo com regras padronizadas sintática e semanticamente. O que caracteriza uma abertura do sistema. 4. permitir a inserção de novos componentes, ter escalibilidade
Acesso a Recursos A principal meta de um SD é facilitar aos usuários e às aplicações o acesso aos recursos remotos e o seu compartilhamento de maneira controlada e eficiente. Há muitas razões para querer compartilhar recursos : Economia Trabalho colaborativo e Troca de informações através de Groupware software para edição colaborativa, teleconferência, assim por diante. Conectividade
Acesso a Recursos Problemas A medida que o compartilhamento e a conectividade via internet aumentam a segurança torna-se mais importante. Outro problema é o rastreamento de comunicações para montar um perfil de preferências de um usuário específico. Esse rastreamento é uma violação explícita de privacidade. Em especial se for feita sem avisar o usuário
Transparência da Distribuição Uma meta importante de um sistema distribuído é ocultar o fato de que seus processos e recursos estão fisicamente distribuídos por vários computadores Um SD que é capaz de se apresentar a usuários e aplicações como se fosse um único sistema de computador é denominado Transparente.
Transparência da Distribuição Os principais tipos de transparência são: Transparência de Acesso Transparência de Localização Transparência de Migração Transparência de Relocação Transparência de Replicação Transparência de Concorrência Transparência de Falha
Transparência da Distribuição Transparência de Acesso Trata de ocultar diferenças na apresentação de dados; e o modo como os recursos podem ser acessados Em um nível básico, desejamos ocultar diferenças entre arquiteturas de máquinas, porém o mais importante é chegar a um acordo sobre como os dados devem ser representados por máquinas e sistemas operacionais diferentes.
Transparência da Distribuição Transparência de Localização Refere-se ao fato de que os usuários não podem dizer qual é a localização física de um recurso no sistema. Para que isto aconteça a nomeação dos recursos tem uma grande importância, não permitindo a localização pelos nomes atribuídos.
Transparência da Distribuição Transparência de Migração São aqueles sistemas distribuídos onde os recursos podem ser movimentados sem afetar o modo como podem ser acessados. Transparência de Relocação São aqueles onde recursos podem ser relocados enquanto estão sendo acessados sem que os usuários ou a aplicações percebam qualquer coisa.
Transparência da Distribuição Transparência de Replicação A replicação, como veremos, desempenha um papel muito importante em Sds. Transparência de replicação está relacionado a ocultar o fato de que existem várias cópias de um recurso. Os recursos replicados devem ter o mesmo nome. Devem ter transparência de localização
Transparência da Distribuição Transparência de Concorrência Dois ou mais usuários podem ter gravados seus arquivos em um mesmo servidor, e é óbvio que quando forem acessá-los haverá uma competição pelo acesso ao servidor. Nesses casos é importante que cada usuário não perceba que outro está utilizando o mesmo recurso. Esse fenômeno é chamado Transparência de Concorrência.
Transparência da Distribuição Transparência a Falha Um SD transparente a falha significa que um usuário não perceba que um recurso (provavelmente que nunca ouviu falar) deixou de funcionar bem, e que subsequentemente o sistema se recuperou da falha.
Transparência da Distribuição Grau de Transparência: A transparência em uma distribuição é sempre preferível mas às vezes ocultar totalmente alguns problemas pode ter um custo elevado em algumas situações como por exemplo: Garantir que réplicas distribuídas em continentes diferentes sejam consistentes antes de qualquer outra operação. Ocultar onde estão as impressoras e enviar o trabalho para uma impressora muito distante
Abertura Um sistema distribuído aberto é um sistema que oferece serviços de acordo com regras padronizadas que descrevem a sintaxe e a semântica desses serviços. Em redes de computadores o protocolo definem as regras padronizadas, formato, conteúdo e significado das mensagens enviadas e recebidas. Em sistemas distribuídos a sintaxe dos serviços é definida por meio de interfaces, descritas em uma linguagem de definição de interfaces (Interfaces Definition Language IDL). A semântica geralmente é descrita por linguagem natural
Abertura Uma definição de interface especificada adequadamente permite que um primeiro sistema distribuído comunique-se com um segundo, que trabalha de forma diferente, desde que ambos implementem a interface. Dizemos que uma especificação de interface é adequadamente definida quando essa especificação é Completa e Neutra. Completa no sentido de que tudo o necessário para a implementação foi de fato especificado. Neutra no sentido de que as especificações não definam como deva ser a aparência da implementação. Completude e Neutralidade são importantes para a interoperalidade e portabilidade do sistema.
Abertura Interoperabilidade caracteriza 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. Portabilidade caracteriza até ponto uma aplicação desenvolvida para um sistema distribuído A pode ser executada, sem modificação, em um sistema distribuído diferente B que implementa a mesma interface.
Abertura A abertura de um sistema distribuído deve torná-lo extensível, ou seja, de fácil configuração e de fácil inserção ou substituição de componentes sem afetar os outros componentes.
Escalabilidade A escalabilidade de um sistema distribuído pode ser medida por pelo menos três dimensões diferentes: Tamanho; Em termos geográficos; e Em termos administrativos. Em relação ao tamanho, a escalabilidade determina o quanto é fácil adicionar mais recursos e usuários ao sistema. Quanto a escalabilidade em termos geográficos permite que usuários e recursos podem estar distantes. Por fim, a escalabilidade em termos administrativos demonstra que o sistema é fácil de gerenciar mesmo que abranja muitas organizações administrativas diferentes.
Escalabilidade Problemas Em relação a escalabilidade de tamanho Serviços centralizados único servidor para todos usuários Dados centralizados Única lista telefônica on-line Algoritmos centralizados Fazer roteamento com base em informações completas Em relação a escalabilidade geográfica Comunicação em redes de longa distâncias é inerentemente não confiável e quase sempre ponto a ponto.
Escalabilidade Em relação a escalabilidade administrativa Políticas conflitantes em relação à utilização e pagamento de recursos, gerenciamento e segurança.