LRM Prof. Mantovani ← Aulas da disciplina
Semana 8 · Aula 8 de 14

Introdução a sistemas distribuídos

O que é um sistema distribuído, suas características essenciais e os pilares de transparência, escalabilidade e tolerância a falhas.

📚 Redes e Sistemas Distribuídos📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Definir sistema distribuído e seus objetivos.

2

Explicar os tipos de transparência.

3

Relacionar escalabilidade e tolerância a falhas ao projeto distribuído.

1 · Motivação

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.

💡
Distribuir não é só "ter muitos computadores": é fazer com que eles cooperem e, para o usuário, pareçam um serviço único e confiável.
2 · Mapa

O que veremos nesta aula

Esta aula percorre o conceito de sistema distribuído e seus três grandes pilares de projeto:

ConceitoTransparênciaEscalabilidadeTolerância a falhas
  • 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.
3 · Conceito

O que é um sistema distribuído

Sistema distribuído. Coleção de computadores autônomos, interligados por rede, que cooperam por troca de mensagens para oferecer um serviço como se fossem uma só máquina.

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.

4 · Explicação

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.
💡
Em um PC, ou tudo funciona ou tudo para. Em um sistema distribuído, partes podem falhar enquanto outras seguem operando — isso é poder, mas também complexidade.
5 · Exemplo

Sistemas distribuídos do dia a dia

ServiçoPor que é distribuído
Web / buscadoresMilhares de servidores atendem buscas no mundo todo
BancosAgências, caixas e apps acessam dados replicados
StreamingCópias do vídeo ficam perto do usuário (CDN)
NuvemRecursos elásticos espalhados por datacenters
🔑
Em todos, o usuário vê um endereço único e um serviço único — a distribuição fica invisível.
6 · Interativo

Passo a passo: uma requisição distribuída

Passo 1
O app resolve o nome do serviço e é direcionado ao datacenter mais próximo.
Passo 2
Um balanceador escolhe, entre dezenas de servidores, um que esteja livre.
Passo 3
O servidor consulta dados replicados (catálogo, perfil) em várias máquinas.
Passo 4
O vídeo é entregue a partir de uma cópia (cache/CDN) próxima de você.
Passo 5
Se um servidor falhar no meio, outro assume — e você nem percebe.
7 · Transparência

Esconder a distribuição

Transparência. Propriedade de um sistema distribuído de ocultar do usuário (e do programador) o fato de que os recursos estão espalhados por várias máquinas.

A transparência é o grande objetivo de projeto: quanto mais ela esconde, mais o sistema parece uma máquina só.

8 · Tipos

Os tipos de transparência

TransparênciaEsconde…
Acessodiferenças de representação dos dados
Localizaçãoonde o recurso está fisicamente
Migraçãoque um recurso mudou de lugar
Replicaçãoque há várias cópias do recurso
Concorrênciaque vários usuários compartilham o recurso
Falhaque um componente falhou e se recuperou
9 · Analogia

A empresa que responde como uma só

🏢 Analogia
Um sistema distribuído é como uma grande empresa: dezenas de funcionários (máquinas) trabalham em locais diferentes, mas, para o cliente, a empresa responde como uma entidade única e coordenada. Você liga, alguém atende — não importa quem ou onde.
10 · Comparação

Centralizado × distribuído

CentralizadoDistribuído
MáquinasUmaVárias autônomas
MemóriaCompartilhadaCada uma a sua (mensagens)
FalhaTotal (tudo para)Parcial (resto segue)
EscalaLimitada à máquinaAdiciona máquinas
11 · Fluxo

Como a cooperação acontece

A cooperação entre nós segue um ciclo de troca de mensagens:

Nó A
pedido
→ mensagem →RedeNó B
processa
← resposta ←Nó A
12 · Aprofundamento

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.
⚠️
Projetar acreditando nessas falácias gera sistemas frágeis. A rede vai falhar, atrasar e variar — o projeto precisa contar com isso.
13 · Interativo

Verifique seu entendimento

Qual transparência esconde que um arquivo tem várias cópias no sistema?

A transparência de replicação oculta a existência de múltiplas cópias: o usuário vê um único recurso.
14 · Caso real

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.
💡
Você usa esse sistema distribuído gigante toda vez que digita um endereço — sem nunca perceber sua complexidade.
15 · Erros comuns

Armadilhas do iniciante

⚠️
Confundir sistema distribuído com sistema paralelo: paralelo costuma ser uma máquina com vários núcleos e memória compartilhada; distribuído são máquinas separadas que só trocam mensagens.
⚠️
Achar que "distribuir" automaticamente acelera tudo. A rede adiciona latência; mal projetado, o sistema fica mais lento.
16 · Dicas

Boas práticas de projeto

Projete para a falha: assuma que qualquer nó pode cair a qualquer momento e tenha redundância.
Minimize a comunicação pela rede: cada mensagem custa tempo. Agrupe pedidos e use cache.
17 · Interativo

Revele a resposta

Por que não existe um "relógio global" em um sistema distribuído?
Porque cada máquina tem seu próprio relógio físico, que desvia (drift) e não pode ser sincronizado instantaneamente — a rede tem latência variável. Por isso usam-se algoritmos de sincronização (NTP) e relógios lógicos (Lamport) para ordenar eventos sem um tempo absoluto comum.
18 · Flashcards

Fixe os conceitos

Sistema distribuídovirar
Máquinas autônomas que cooperam por mensagens e parecem um sistema único.
Transparênciavirar
Ocultar do usuário a distribuição (acesso, localização, replicação, falha, concorrência).
Escalabilidadevirar
Crescer em usuários, dados ou área sem perder desempenho.
Tolerância a falhasvirar
Continuar operando apesar de falhas de componentes, via redundância e replicação.
19 · Conexões

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.
20 · Síntese

O essencial em uma frase

🔑
Um sistema distribuído junta máquinas autônomas para parecer uma só, buscando transparência (esconder a distribuição), escalabilidade (crescer) e tolerância a falhas (sobreviver) — sempre lembrando que a rede não é confiável.
Mão na massa · colaborativo

Atividade em grupo · Caça às transparências

Em trios, identifiquem que tipos de transparência um serviço real oferece.

⏱️ 25 min👥 trios🧩 análise

Roteiro

  1. Escolham um serviço: nuvem de arquivos, rede social ou streaming.
  2. Identifiquem ao menos três tipos de transparência que ele exibe.
  3. Apontem onde a escalabilidade aparece nesse serviço.
  4. Descrevam uma falha que o sistema provavelmente tolera sem o usuário perceber.
Investigadoranalisa o serviço
Mapeadorlista as transparências
Relatorapresenta os achados
📤 Entrega: Lista das transparências do serviço + um exemplo de falha tolerada.
Teste seu conhecimento

Mini-quiz · Aula 8

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 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.