Guia Completo sobre Sistemas Distribuídos

Classificado em Computação

Escrito em em português com um tamanho de 3,75 KB

O que é um Sistema Distribuído?

Um sistema distribuído é um conjunto de componentes independentes que se apresenta ao usuário como um sistema único e consistente.

Exemplos: Sistemas comerciais, Internet, acesso a informações multimídia.

Middleware: Uma camada de software situada entre a aplicação distribuída e a plataforma (sistema operacional/rede).

Objetivos Principais

  • Acesso a recursos: Facilitar o compartilhamento de forma controlada.
  • Transparência: Ocultar a distribuição dos recursos na rede.
  • Abertura: Capacidade de expansão e interoperabilidade.
  • Escalabilidade: Capacidade de aumentar a capacidade de processamento conforme a demanda.

Detalhamento dos Objetivos

1. Acesso a Recursos

Facilitar o acesso a recursos remotos (impressoras, computadores, dados). Problemas comuns: Segurança, autenticação e spam.

2. Transparência

Ocultar o fato de que os recursos estão distribuídos fisicamente por uma rede.

3. Abertura

Determina se um sistema pode ser estendido:

  • Hardware: Inclusão de dispositivos de fabricantes distintos.
  • Software: Módulos de SO, protocolos e recursos compartilhados.
  • Interoperabilidade: Capacidade de se comunicar de forma transparente com outros sistemas.
  • Portabilidade: Habilidade de reutilizar código em diferentes ambientes.

4. Escalabilidade

  • Tamanho: Aumento do número de usuários.
  • Geográfica: Usuários e recursos distantes fisicamente.
  • Administrativa: Facilidade de gerenciar o sistema entre várias organizações.

Técnicas para Obter Escalabilidade

  1. Esconder a latência: Uso de comunicação assíncrona.
  2. Distribuição: Dividir componentes em partes menores espalhadas pelo sistema.
  3. Replicação: Aumenta a disponibilidade e equilibra a carga.

Sincronização em Sistemas Distribuídos

Monitorar sistemas durante a execução para identificar o momento exato de eventos.

  • Externa: Sincronização com uma fonte de tempo externa de referência.
  • Interna: Relógios de diferentes computadores sincronizados entre si.

Requisitos: Valores aproximadamente iguais e limites de desvio controlados.

Protocolos:

  • Determinísticos: Condições e limites garantidos.
  • Probabilísticos: Precisão baseada em alta probabilidade.

Comunicação entre Processos

Mecanismos que permitem a transferência de informações:

  • Sockets: Ponto final de um fluxo de comunicação em rede.
  • RPC (Remote Procedure Call): Chamada remota de procedimento.
  • RMI: Chamadas remotas no estilo RPC para aplicações Java.
  • COM/DCOM: Criação de componentes de software distribuídos.

Transações (Propriedades ACID)

Eventos que exigem uma série de etapas; se uma falhar, a transação deve ser revertida.

  • Atômica: Cada transação é única e indivisível.
  • Consistente: Deve obedecer às regras e variáveis do sistema.
  • Isolada: Auto-contida e independente de outras transações.
  • Durável: Modificações são permanentes após a conclusão.

Entradas relacionadas: