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
- Esconder a latência: Uso de comunicação assíncrona.
- Distribuição: Dividir componentes em partes menores espalhadas pelo sistema.
- 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.