Aspectos de Projeto
Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   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
   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
   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
   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
   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
Como???

   Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   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
Prof. Adriano Teixeira de Souza
    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
   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
Prof. Adriano Teixeira de Souza
   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
   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
   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
Prof. Adriano Teixeira de Souza
   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
   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
   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
   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
   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

Sistemas Distribuídos - Aspectos de Projeto

  • 1.
    Aspectos de Projeto Prof.Adriano Teixeira de Souza
  • 2.
  • 3.
  • 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 Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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 Prof. Adriano Teixeira de Souza
  • 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). Prof. Adriano Teixeira de Souza
  • 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 Prof. Adriano Teixeira de Souza
  • 9.
    Como??? Prof. Adriano Teixeira de Souza
  • 10.
  • 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 . Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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. Prof. Adriano Teixeira de Souza
  • 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 !! Prof. Adriano Teixeira de Souza
  • 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) Prof. Adriano Teixeira de Souza