Estilos Arquiteturais: organização lógica dos componentes de software em um sistema

Principais Estilos Arquiteturais para SD:

  1. Arquiteturas em Camadas: organiza componentes em camadas, permitindo chamadas apenas para camadas subjacentes. Amplamente usado em sistemas cliente-servidor e aplicações distribuídas como motores de busca, corretoras de ações e pacotes de escritório.
  2. Baseadas em Objetos: cada objeto é um componente, conectado por chamadas de procedimento remoto (método). Facilita a encapsulação de dados e operações, fundamentando arquiteturas orientadas a serviços (SOAs).
  3. Baseadas em Eventos: processos comunicam-se por eventos propagados, geralmente associados a sistemas de publish/subscribe. Vantagem na solução de acoplamento frouxo entre processos.
  4. Baseadas em Recursos/Dados: processos comunicam-se através de um repositório comum. Desacoplamento no tempo; visualização do SD como uma coleção de recursos gerenciados por componentes.

Arquiteturas de Sistema: localização física dos componentes de software (onde são colocados)

Middleware vs. Arquiteturas: