O que você vai aprender
Definir sistema distribuído e seus objetivos.
Explicar os tipos de transparência.
Relacionar escalabilidade e tolerância a falhas ao projeto distribuído.
Por que distribuir?
Quando um único computador deixa de dar conta — porque há usuários demais, dados demais ou risco de a máquina parar e derrubar tudo — a saída é distribuir o trabalho por várias máquinas.
Pense em quantas pessoas acessam um banco, uma rede social ou um serviço de streaming ao mesmo tempo. Nenhum servidor isolado aguentaria. A computação distribuída nasce dessa necessidade de crescer, sobreviver a falhas e aproximar o serviço do usuário.
O que veremos nesta aula
Esta aula percorre o conceito de sistema distribuído e seus três grandes pilares de projeto:
- O que define um sistema distribuído.
- Como esconder a distribuição do usuário (transparência).
- Como crescer sem perder desempenho.
- Como continuar funcionando apesar de falhas.
O que é um sistema distribuído
A palavra-chave é autônomos: cada máquina tem seu próprio processador, memória e relógio; não há memória compartilhada. A coordenação acontece apenas por mensagens na rede.
Coerência apesar da separação
Embora as máquinas sejam independentes, o sistema deve se apresentar como único e coerente. Isso exige resolver problemas que não existem em um único computador:
- Não há relógio global — sincronizar o tempo é difícil.
- Não há memória compartilhada — o estado precisa ser comunicado.
- Falhas são parciais — uma parte cai, o resto continua.
Sistemas distribuídos do dia a dia
| Serviço | Por que é distribuído |
|---|---|
| Web / buscadores | Milhares de servidores atendem buscas no mundo todo |
| Bancos | Agências, caixas e apps acessam dados replicados |
| Streaming | Cópias do vídeo ficam perto do usuário (CDN) |
| Nuvem | Recursos elásticos espalhados por datacenters |
Passo a passo: uma requisição distribuída
Esconder a distribuição
A transparência é o grande objetivo de projeto: quanto mais ela esconde, mais o sistema parece uma máquina só.
Os tipos de transparência
| Transparência | Esconde… |
|---|---|
| Acesso | diferenças de representação dos dados |
| Localização | onde o recurso está fisicamente |
| Migração | que um recurso mudou de lugar |
| Replicação | que há várias cópias do recurso |
| Concorrência | que vários usuários compartilham o recurso |
| Falha | que um componente falhou e se recuperou |
A empresa que responde como uma só
Centralizado × distribuído
| Centralizado | Distribuído | |
|---|---|---|
| Máquinas | Uma | Várias autônomas |
| Memória | Compartilhada | Cada uma a sua (mensagens) |
| Falha | Total (tudo para) | Parcial (resto segue) |
| Escala | Limitada à máquina | Adiciona máquinas |
Como a cooperação acontece
A cooperação entre nós segue um ciclo de troca de mensagens:
pedido→ mensagem →Rede→Nó B
processa← resposta ←Nó A
As falácias da computação distribuída
Em 1994, L. Peter Deutsch listou suposições falsas que enganam quem projeta sistemas distribuídos:
- A rede é confiável.
- A latência é zero.
- A banda é infinita.
- A rede é segura.
- A topologia não muda.
- Há um único administrador.
- O custo de transporte é zero.
- A rede é homogênea.
Verifique seu entendimento
Qual transparência esconde que um arquivo tem várias cópias no sistema?
O DNS como sistema distribuído
O DNS é um clássico sistema distribuído em produção há décadas. Milhões de servidores espalhados pelo mundo resolvem nomes em IPs.
- Distribuído: ninguém guarda toda a base; cada servidor cuida de uma parte (zona).
- Replicado: servidores raiz e autoritativos têm cópias para tolerar falhas.
- Com cache: respostas ficam guardadas perto do usuário, reduzindo latência.
Armadilhas do iniciante
Boas práticas de projeto
Revele a resposta
Por que não existe um "relógio global" em um sistema distribuído?
Fixe os conceitos
Onde isso se liga
Sistemas distribuídos amarram quase toda a disciplina:
- Cliente-servidor e P2P (aula 6) são arquiteturas distribuídas.
- Sistemas de arquivos distribuídos (aula 9) aplicam replicação e cache.
- Roteamento (aula 12) é, ele próprio, um algoritmo distribuído entre roteadores.
O essencial em uma frase
Atividade em grupo · Caça às transparências
Em trios, identifiquem que tipos de transparência um serviço real oferece.
Roteiro
- Escolham um serviço: nuvem de arquivos, rede social ou streaming.
- Identifiquem ao menos três tipos de transparência que ele exibe.
- Apontem onde a escalabilidade aparece nesse serviço.
- Descrevam uma falha que o sistema provavelmente tolera sem o usuário perceber.
Mini-quiz · Aula 8
20 questões sobre esta aula. Escolha e veja a explicação na hora.
📌 Resumo — leve isto para a prova
- Sistema distribuído = máquinas independentes que cooperam por mensagens e parecem um sistema único.
- Transparência oculta a distribuição (acesso, localização, replicação, falha, concorrência, migração).
- Escalabilidade: crescer em usuários, dados e área sem perder desempenho.
- Tolerância a falhas: operar apesar de falhas parciais, via redundância e replicação.
- A rede não é confiável nem instantânea — as falácias da computação distribuída alertam para isso.