sistemas distribuídos - aspectos de projeto

24
Aspectos de Projeto Prof. Adriano Teixeira de Souza

Upload: adriano-teixeira-de-souza

Post on 27-Jun-2015

2.944 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - Aspectos de Projeto

Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 2: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 3: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 4: Sistemas Distribuídos - Aspectos de Projeto

Este aspecto faz com que um conjunto de máquinas seja visto por seus usuários como se fossem simplesmente um único sistema de tempo compartilhado.

Tipos distintos de transparência em um sistema distribuído:

◦ Localização ◦ Migração ◦ Replicação ◦ Concorrência ◦ Paralelismo ◦ Escala

Prof. Adriano Teixeira de Souza

Page 5: Sistemas Distribuídos - Aspectos de Projeto

Localização: ◦ Usuários não têm que saber a localização dos recursos remotos

Migração: ◦ Potencial para realocar recursos dinamicamente sem que os

usuários estejam cientes do movimento de recursos

◦ Os recursos podem mudar de lugar sem ter que mudar seus nomes.

Replicação: ◦ Múltiplas instâncias de recursos são usados, mas Sistemas

Distribuídos ocultam qualquer diferença entre recursos replicados, ou não replicados.

◦ Os usuários não devem saber quantas cópias existem.

Prof. Adriano Teixeira de Souza

Page 6: Sistemas Distribuídos - Aspectos de Projeto

Concorrência: ◦ Usuário não está ciente da existência de acesso simultâneo à

recursos remotos. ◦ Vários usuários podem compartilhar automaticamente os

recursos.

Paralelismo: ◦ Podem ocorrer atividades paralelas sem que os usuários

venham a saber.

Escala: ◦ Oculta a expansão sem mudar a estrutura do sistema

Prof. Adriano Teixeira de Souza

Page 7: Sistemas Distribuídos - Aspectos de Projeto

Capacidade de suportar mudanças em sua estrutura depois de ser desenvolvido, sem comprometimento da execução das aplicações.

É muito importante que o sistema seja flexível ás decisões do projeto. Situações que hoje parecem bem razoáveis poderão revelar-se erradas mais tarde.

A melhor maneira de se evitar problemas é mantendo várias opções em aberto (flexibilidade).

Prof. Adriano Teixeira de Souza

Page 8: Sistemas Distribuídos - Aspectos de Projeto

Um sistema deve ser capaz de interagir com largo número de outros sistemas e serviços.

A inserção de novos módulos no sistema deve ser uma tarefa simples

Prof. Adriano Teixeira de Souza

Page 9: Sistemas Distribuídos - Aspectos de Projeto

Como???

Prof. Adriano Teixeira de Souza

Page 10: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 11: Sistemas Distribuídos - Aspectos de Projeto

Disponibilidade

◦ Propriedade de um sistema poder funcionar continuamente sem falha

◦ Para ser confiável, um sistema deve possuir alta disponibilidade e segurança

◦ Sistemas distribuídos podem ser potencialmente mais confiáveis devido à multiplicidade e a um certo grau de autonomia de suas partes.

◦ É notório que a distribuição física não é tão importante quanto a distribuição lógica. Esta última pode ser implementada tanto a um único processador quanto a vários processadores localizados num mesmo ambiente ou em ambiente distintos .

Prof. Adriano Teixeira de Souza

Page 12: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 13: Sistemas Distribuídos - Aspectos de Projeto

Tolerância a falha (Resiliência)

◦ Física: Propriedade de um material de recuperar a sua forma ou posição original após sofrer choque ou deformação; elasticidade;

◦ A resiliência de processos preocupa-se em criar mecanismos de proteção a processos, tentando fazer com que os mesmos sobrevivam a eventuais falhas em um sistema;

◦ Uma forma de tornar um processo resiliente é a utilização de processos redundantes (redundância física);

◦ Um aspecto chave para contornar falhas de processos é organizar vários processos idênticos em um grupo no qual todos os processos possam recebar mensagens enviadas ao grupo.

Prof. Adriano Teixeira de Souza

Page 14: Sistemas Distribuídos - Aspectos de Projeto

Segurança

◦ Os dados confiados à guarda dos sistemas não podem de maneira nenhuma, sofrer qualquer tipo de adulteração ou perder-se .

◦ O aspecto da confiabilidade global é a segurança. Os arquivos e demais recursos devem ser protegidos contra uso-não autorizado. Isso se torna crítico no caso dos sistemas distribuídos.

◦ Em geral, um Sistema Distribuído pode ser projetado para “mascarar” falhas ocorridas, esconder dos seus usuários.

Prof. Adriano Teixeira de Souza

Page 15: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 16: Sistemas Distribuídos - Aspectos de Projeto

O problema da performance é muito influenciada pela comunicação.

O envio de uma mensagem e a obtenção da resposta correspondente demora em torno de um milissegundo, e a maior parte desse tempo é gasto no tratamento do protocolo, quando deveria ser gasto na transmissão dos bits propriamente ditos.

Prof. Adriano Teixeira de Souza

Page 17: Sistemas Distribuídos - Aspectos de Projeto

Balanceamento de carga

◦ Visa distribuir a carga de acesso a recursos e/ou serviços para promover um aumento da capacidade da rede e melhoria da performance

◦ O balanceamento de carga é mais que um simples redirecionamento do tráfego dos clientes para outros servidores. É preciso que haja constante verificação da comunicação, checagem dos servidores e redundância.

◦ A dificuldade dessa técnica é que para ganhar performance é preciso ter várias atividades rodando em paralelo em diferentes processadores, mas para isso é necessário a transmissão de muitas mensagens.

Prof. Adriano Teixeira de Souza

Page 18: Sistemas Distribuídos - Aspectos de Projeto

Processamento distribuído (ou paralelo) ◦ Uma grande tarefa computacional é dividida em partes

menores, pequenas tarefas que são distribuídas ao redor das estações (nodos), como se parecesse um supercomputador.

◦ Este tipo de cluster é usado em tarefas de computação científica ou análises financeiras, tarefas que exigem um alto poder de processamento.

Prof. Adriano Teixeira de Souza

Page 19: Sistemas Distribuídos - Aspectos de Projeto

Prof. Adriano Teixeira de Souza

Page 20: Sistemas Distribuídos - Aspectos de Projeto

Um sistema é descrito com escalável se permanece eficiente quando há um aumento significativo no número de recursos utilizados e no número de usuários.

O projeto de sistemas distribuídos escaláveis apresenta os seguintes desafios:

◦ Controlar os custos dos recursos físicos. ◦ Controlar a perda de desempenho. ◦ Evitar gargalos de desempenho.

Prof. Adriano Teixeira de Souza

Page 21: Sistemas Distribuídos - Aspectos de Projeto

A escalabilidade de um sistema pode ser medida segundo três dimensões diferentes:

◦ Um sistema pode ser escalável em relação a seu tamanho, o

que significa que é fácil adicionar mais usuários e recursos ao sistema;

◦ Um sistema escalável em termos geográficos é um sistema no qual usuários e recursos podem estar longe uns dos outros;

◦ Um sistema pode ser escalável em termos administrativos, o que significa que ele ainda pode ser fácil de gerenciar, mesmo que abranja muitas organizações administrativas diferentes.

Prof. Adriano Teixeira de Souza

Page 22: Sistemas Distribuídos - Aspectos de Projeto

Quando é necessário ampliar um sistema, é preciso resolver problemas de tipos muito diferentes;

O servidor pode se transformar em um gargalo à medida que o número de usuários e aplicações cresce.

Prof. Adriano Teixeira de Souza

Page 23: Sistemas Distribuídos - Aspectos de Projeto

A escalabilidade geográfica tem seus próprios problemas. Uma das principais razões por que hoje é difícil ampliar SD existentes que foram originalmente projetados para LANs é que eles são baseados em comunicação síncrona;

◦ Na comunicação síncrona, uma parte que requisita um

serviço (cliente), fica bloqueada até que uma mensagem seja enviada de volta:

◦ Isso funciona bem em LANs, onde a comunicação entre

máquinas demora centenas de microsegundos, mas numa WAN, onde a comunicação demora centenas de microsegundos – isto requer cuidados !!

Prof. Adriano Teixeira de Souza

Page 24: Sistemas Distribuídos - Aspectos de Projeto

Técnicas de escalabilidade

◦ Comunicação assíncrona: oculta a latência de comunicação

◦ Distribuição: particiona um componente em partes menores e espalha essas partes pelo sistema

◦ Replicação: aumenta a disponibilidade e permite balanceamento de carga (pode gerar problema de Consistência)

Prof. Adriano Teixeira de Souza