sistemas distribuídos
são conjuntos de computadores independentes conectados por rede que funcionam como uma única unidade coerente para o usuário final.
Eles compartilham recursos, processos e dados entre nós (Hardware ou software) para aumentar o desempenho, escalabilidade e tolerância a falhas, superando limitações de uma máquina única.
Principais Características:
- Concorrência:
Múltiplos componentes realizam tarefas simultaneamente.
- Tolerância a Falhas:
O sistema continua operando mesmo se um dos computadores falhar.
-
Transparência:
A complexidade da rede é escondida; o usuário percebe o sistema como um ambiente único e integrado. -
Escalabilidade:
Capacidade de aumentar recursos (nós) para lidar com cargas maiores. -
Web (WWW): Acessa informações em servidores dispersos.
-
Computação em Nuvem (Cloud Computing): Amazon Web Services (AWS), Azure, Google Cloud.
-
Bancos de Dados Distribuídos: Armazenamento distribuído (ex: Apache Cassandra).
-
Sistemas de Arquivos Distribuídos: HDFS (Hadoop).
Desafios:
- Complexidade de Gerenciamento: Coordenação entre múltiplos nós.
- Consistência de Dados: Garantir que todos os nós tenham os mesmos dados ao mesmo tempo.
- Segurança: Aumenta a superfície de ataque devido à rede.
A arquitetura geralmente utiliza middleware para viabilizar a comunicação e colaboração entre os componentes.