domingo, 24 de abril de 2011

Aula 1 - Sistemas Distribuidos


"Um sistema distribuido é uma coleção de computadores independentes que aparece para os usuários do sistema como um único computador" (Tanenbaum)

Levando em consideração a definição dada pelo Tanenbaum, sistema distribuido é aquele que roda em um conjunto de máquinas sem memória compartilhada e mesmo assim aparece para os usuários como se fosse um único computador.

Sistemas Centralizados X Sistemas Distribuídos

A principal diferença entre os sistemas centralizados dos distibuídos está na forma de comunicação e sincronismo entre os processos.
Os sistemas centralizados realizam a sincronização por áreas compartilhadas de memória, já nos sistemas distribuídos a sincronização é obtida através da troca de mensagem.

Características desejáveis nos Sistemas Distribuídos:

  • Compartilhamento otimizado dos recursos: São hardware (impressora, scanners, e outros equipamentos) e aplicativos, dados ou arquivos que são gerenciados por softwares servidores;
  • Estrutural: Sistemas distribuídos devem refletir a estrutura organizacional distribuída a qual eles servem.
  • Transparência: Um software gerencial esconde dos usuários os componentes que formam o sistema todo, fazendo com que o usuário enchergue apenas o que lhe interessa, que é a aplicação como se fosse um sistema único. O processo do usuário pode ser executado de qualquer máquina da rede, sendo escolhida pelo sistema, conforme a disponibilidade do momento.
    Alguns tipos de tranparências que podem ser encontradas:
  1. Transparência de Acesso: As operações de acesso à determinados dados, recursos ou dispositivos devem estar localizadas em um único sistema, independentemente se as operações encontram-se na mesma máquina onde foram solicitadas ou em um equipamento remoto.
  2. Transparência de Localização: Os recursos, dados ou dispositivos que serão compartilhados e acessados não devem fornecer aos usuários informações relevantes referente a sua localização.
  3. Tranparência de Migração: Os recursos podem ser transferidos de um servidor à outro do sistema e isso não deve interferir na forma de referência dos usuários a esses recursos.
  4. Transparência de Replicação: O sistema distribuído deve ser capaz de gerenciar a replicação de informações de forma transparente aos usuários
  5. Tranparência em relação à falhas: O sistema distribuído deve gerenciar as falhas tornando assim um problema isolado e não compartilhar um determinado problema com todo o sistema de compartilhamento.
  • Confiabilidade: Não se pode de maneira alguma sofrer perda ou adulteração nos dados. Deve-se manter a integridade total dos dados. E também deve-se manter:
    • Disponibilidade: Deve estar sempre apto a ser utilizado;
    • Segurança: Proteger os recursos de acessos não autorizados;
    • Tolerância a falhas: Redundância no hardware e software (Backup's)
  • Desempenho: Compartilhamento de recursos com melhor utilização da carga de processamento entre todas as máquinas do sistema.
  • Escalabilidade: Agregar novos valores de recursos sem afetar o desempenho do sistema. Apesar de não haver limitação em número de máquinas e nem distância e diversidade das mesmas, aumenta-se o nível de complexidade no gerenciamento do sistema. Portanto deve-se introduzir softwares e máquinas conforme a necessidade facilitando a manutenção do sistema e o isolamento de falhas.
  • Flexibilidade: O sistema deve ser flexível para permitir mudanças, caso haja necessidade de acomodar um novo recurso.
  •  
    Vantagens dos Sistemas Distribuídos

    •  Compartilhamento dos recursos: Usuários de um site pode compartilhar com outros sites arquivos e dispositivos (impressora, scanner, etc)
    • Velocidade de computação: Um processamento pode ser dividido entre as máquinas que compõem o sistema distribuído, assim aumentando a velocidade de processamento de determinada operação.
    • Confiabilidade: Em um sistema distribuído, se um site falhar os sites restantes poderão continuar operando. Uma ação deve ser tomada para recuperar o site que ocorre a falha, enquanto isso, outro site deve assumir a funcionalidade do site em manutenção. Quando o site que contém a falha for recuperado o sistema trata de integrá-lo novamente.
    • Comunicação: Troca de informação em longa distância entre os computadores conectados na rede.
    Todas essas vantagens resultam em um downsizing (redução radical) onde as empresas e instituições obtêm mais retorno do investimento, mais flexibilidade na localização de recursos e expansão das instalações e melhores interfaces de usuários.

    Problemas ou Desafios de um Sistema Distribuído:
     
    • Problemas com software: Os Sistemas operacionais, linguagem e aplicativos para este ambiente são relativamente novos e não estão plenamente consolidados.
    • Problemas de rede: Seja rede local ou longa distancia, não existe confiabilidade total para interligação, logo pode ocorrer perda de link ou saturação devido a sobrecarga na banda disponível.
    • Problema de segurança - Acesso indevído: Uma vez que os dados existentes no sistema podem ser facilmente acessados, fica fácil um usuário acessar dados os quais ele não deveria ter acesso.

    Exemplos e Aplicabilidade de Sistemas Distribuídos:
     
    - Internet (World Wide Web): Maior sistema distribuido;
    - Sistemas Bancários;
    - Sistemas de Hipermercados;
    - etc;

    Nenhum comentário:

    Postar um comentário