O documento discute os conceitos de transparência, resiliência e segurança em sistemas distribuídos. São descritos tipos de transparência como localização, migração e replicação que ocultam aspectos da distribuição dos recursos dos usuários. Também são abordados conceitos como disponibilidade, tolerância a falhas e medidas para proteger a segurança dos dados e recursos.
4. 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
5. 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.
6. 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
7. 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).
8. 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
11. 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 .
12.
13. 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.
14. 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.
15.
16. 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.
17. 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.
18. 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.
19.
20. 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.
21. 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.
22. 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.
23. 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 !!
24. 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)