Sistemas Distribuídos · Laboratório de Hardware
Semanas 1 e 23 aulas por semanaEntrega conceitual

Do sistema tradicional à arquitetura distribuída multiagente

O objetivo destas duas primeiras semanas é entender o que já existe, concluir a visão tradicional e desenhar — com justificativa — como o Laboratório de Hardware poderá evoluir para um sistema híbrido, distribuído e assistido por agentes.

Qual é a missão?

Chegar à próxima etapa com uma arquitetura conceitual clara. Não é para entregar o sistema distribuído pronto e não é para implementar todos os bots.

Partida obrigatória: usem docs/artigo.html. O documento já reúne visão geral, requisitos, regras, arquitetura tradicional, fluxos, telas e banco. A tarefa é expandir essa base, não reinventá-la.

Não é a tarefa

  • reescrever o projeto do zero;
  • implementar IA antes de definir contratos;
  • criar serviços só para “parecer distribuído”;
  • duplicar regras de negócio sem necessidade;
  • ler trabalhos antigos de estudantes para copiar solução.
01

Semana 1 — entender o que existe

Conceitos de sistemas distribuídos + comparação entre aplicação monolítica e serviços independentes.

A1

Teoria + exemplo

O que torna um sistema distribuído? Processos independentes, comunicação por rede, falhas parciais, latência e coordenação.

A2

Laboratório guiado

Mapear a aplicação atual: usuário, interface PHP/web, regras, banco relacional, módulos e dependências.

A3

Tarefa aplicada

Produzir o diagrama AS-IS e explicar onde hoje existe acoplamento, estado e ponto único de falha.

02

Semana 2 — desenhar a evolução

Heterogeneidade, abertura, escalabilidade, transparência e tolerância a falhas.

A1

Teoria + exemplo

Comparar responsabilidades separadas e discutir fronteiras: publicação, banco, comunicação, agentes e integrações.

A2

Laboratório guiado

Simular conceitualmente dois serviços com responsabilidades diferentes e definir contrato de comunicação.

A3

Tarefa aplicada

Produzir a arquitetura TO-BE do Lab Hardware distribuído, com componentes, protocolos, dados, filas e fallback.

1. Arquitetura AS-IS — a base tradicional

Primeiro, documentem o sistema como ele é. A versão tradicional continua válida: autenticação, cadastro, consulta, empréstimos, relatórios e regras já conhecidas não precisam ser “transformadas em IA”.

Figura 1 — visão conceitual mínima do sistema atual.

2. Arquitetura TO-BE — híbrida e compartimentalizada

Distribuir não significa transformar cada função em um bot. A arquitetura recomendada separa entrada humana, roteamento determinístico, workers de dados e fallback de IA. O humano não deve ficar esperando a conversa interna entre agentes.

Figura 2 — proposta conceitual: responsabilidades separadas e fallback explícito.

Container de publicação

Interface web, páginas públicas e, quando fizer sentido, um roteador leve de comunicação.

Container de banco

Persistência relacional, constraints, transações e relatórios determinísticos.

Containers/serviços paralelos

Workers, bots tradicionais, RAG e integrações podem ser separados quando responsabilidade, carga ou segurança justificarem.

3. Bot tradicional primeiro; IA como fallback

Comando específico e parametrizável não precisa consumir interpretação de IA. O roteador tenta casar intenção e parâmetros; só encaminha para agente de IA quando a mensagem é ambígua ou exige raciocínio.

“excluir registro 2174”intenção inventory.deletebuscar registroconfirmar com humanoexecutar + auditar
Regra: IA pode interpretar intenção, mas ação destrutiva continua exigindo autorização e validação do sistema. “Entendi o comando” não equivale a “está autorizado”.

Filas separadas

  • entrada/comunicação;
  • worker do banco relacional;
  • worker de indexação/RAG;
  • tarefas de IA;
  • auditoria/eventos;
  • canal humano prioritário.

Um único bot fazendo tudo cria fila, acoplamento e dificuldade de diagnóstico.

4. Banco relacional + RAG sem “dupla verdade”

O sistema é híbrido, mas isso não significa manter dois bancos independentes com a mesma autoridade. Para operações de negócio, o banco relacional é a fonte transacional. O RAG é uma projeção derivada para busca semântica e recuperação de documentos.

Figura 3 — atualização do RAG como projeção derivada, não como segunda transação independente.

5. Protocolo entre agentes

Definam um envelope pequeno e previsível. Os agentes precisam concordar sobre formato, versão, ação, alvo, correlação e resposta.

{
  "version": "1.0",
  "request_id": "req-2026-0001",
  "actor": "human",
  "action": "inventory.delete",
  "target": { "record_id": 2174 },
  "requires_confirmation": true,
  "reply_to": "supervisor-human"
}

Isso é um exemplo conceitual; o contrato definitivo nasce antes da implementação.

6. Relatórios pré-prontos

Consultas previsíveis continuam melhores como funções tradicionais. “Todas as peças emprestadas”, “itens atrasados” ou “estoque por categoria” são consultas que o sistema já consegue definir e testar.

PerguntaCaminho preferido
“Quais peças estão emprestadas?”Relatório SQL/API
“Exclua o registro 2174”Comando determinístico + confirmação
“Resuma os padrões de defeito dos últimos meses e explique hipóteses”RAG + agente de IA, com fontes
“O que este manual diz sobre compatibilidade?”RAG documental, citando origem

7. Três níveis de arquitetura conceitual

A · Distribuição mínima

Publicação web + banco relacional + um roteador de comandos. Boa para demonstrar fronteiras sem multiplicar serviços cedo demais.

B · Híbrida

Roteador + worker relacional + worker RAG + fallback IA. Boa quando já existe diferença clara entre operações determinísticas e linguagem natural.

C · Malha supervisionada

Agentes autônomos conversam numa malha própria, enquanto um supervisor humano possui bypass direto para ações prioritárias.

8. Como expandir o artigo

  1. Preservar a versão tradicional: visão geral, requisitos, regras, telas, DFD/DER e módulos atuais.
  2. Adicionar “Arquitetura AS-IS”: o que roda hoje e onde está cada responsabilidade.
  3. Adicionar “Arquitetura TO-BE”: containers/serviços, limites e justificativas.
  4. Definir agentes/bots: responsabilidade, entrada, saída e o que não fazem.
  5. Definir protocolo: envelope, ações, erros, correlação, autenticação e confirmação.
  6. Definir dados: fonte relacional, projeção RAG, indexação e consistência.
  7. Definir comunicação: síncrona, assíncrona, fila, timeout e fallback.
  8. Definir prioridade humana: supervisor/bypass e autorização de ações sensíveis.
  9. Definir interoperabilidade: API HTTP e, quando fizer sentido, MCP/A2A.
  10. Fechar com plano de implementação futura: o que será feito nas semanas seguintes, sem fingir que já está pronto.

O que só entra se for essencial

  • novo serviço com responsabilidade real;
  • fila quando houver desacoplamento/carga/falha a tratar;
  • bot quando houver função autônoma clara;
  • IA quando interpretação/recuperação justificar;
  • novo banco somente com papel de dados diferente e contrato explícito.

9. Entrega obrigatória

  • artigo-base expandido, sem apagar o que já está correto;
  • diagrama AS-IS do sistema atual;
  • diagrama TO-BE do sistema distribuído;
  • mapa de containers/serviços e responsabilidades;
  • fluxo de um comando determinístico;
  • fluxo de uma solicitação com fallback de IA;
  • estratégia relacional → evento/fila → RAG;
  • proposta de protocolo entre agentes;
  • prioridade/supervisão humana;
  • justificativa das APIs/protocolos escolhidos.

10. O que será avaliado

  • coerência entre problema e arquitetura;
  • fronteiras que realmente reduzem acoplamento;
  • clareza entre bot tradicional e agente de IA;
  • tratamento de falha, fila e confirmação;
  • fonte de verdade dos dados bem definida;
  • rastreabilidade das decisões;
  • diagrama legível e texto que explica “por quê”;
  • evolução acumulativa: a semana 2 aproveita a semana 1.
Não é para chegar com tudo pronto. É para chegar sabendo explicar como o sistema será distribuído e por que cada componente existe.

11. Tecnologias e padrões que podem inspirar a proposta

Open WebUI

Interface de chat open source que pode ser auto-hospedada e conectada a backends compatíveis com APIs de chat. Pode servir como inspiração para a camada de conversa — não substitui o bot/serviço de vocês.

Documentação oficial

A2A

Protocolo aberto para interoperabilidade entre agentes independentes. Útil como referência para descoberta de capacidades, troca de tarefas e comunicação entre agentes.

Especificação A2A

MCP

Modelo host–cliente–servidor para expor ferramentas, recursos e prompts a aplicações de IA. Pode complementar uma API tradicional quando o consumidor é um agente.

Arquitetura MCP
Custo de IA: não assumam que uma API comercial é gratuita. Limites, créditos e preços dependem do provedor. Para o laboratório, priorizem soluções locais, open source ou planos gratuitos quando os termos permitirem; usem API paga apenas quando houver decisão e orçamento.

12. Pré-pesquisa e referências

Fontes consultadas para orientar os exemplos. A atividade não exige adotar todas elas.