Modelos de Sistema e Arquitetura
Modelos arquitetônicos descrevem como os componentes de um sistema distribuído são organizados e como a responsabilidade pela computação e pelos dados é particionada entre eles.
Definition
Um modelo arquitetônico de um sistema distribuído especifica os tipos de componentes (processos), os papéis que desempenham e os padrões de comunicação e dependência entre eles, abstraindo-se das máquinas físicas nas quais são executados.
Scope
Este tópico abrange os principais estilos arquitetônicos de sistemas distribuídos: cliente-servidor, multicamadas (n-camadas), ponto a ponto (peer-to-peer) e organizações híbridas, juntamente com padrões estruturais como arquiteturas em camadas, baseadas em objetos, centradas em recursos (REST) e baseadas em eventos. Também aborda a colocação de processos e as compensações na partição, replicação e cache de componentes entre máquinas.
Core questions
- Como a responsabilidade pela computação e pelos dados deve ser dividida entre os componentes?
- Quando uma organização ponto a ponto é preferível a cliente-servidor?
- Qual estilo arquitetônico melhor suporta escalabilidade e evolutividade para uma determinada carga de trabalho?
Key theories
- Organização cliente-servidor e multicamadas
- Os componentes são divididos em clientes solicitantes e servidores respondentes, e a lógica da aplicação é organizada em camadas de apresentação, processamento e dados que podem ser distribuídas independentemente para equilibrar a carga e a escala.
- Organização ponto a ponto e descentralizada
- Todos os nós são funcionalmente equivalentes e atuam como clientes e servidores, permitindo sobreposições auto-organizáveis sem um ponto central de controle ou falha, ao custo de mecanismos de busca e consistência mais complexos.
- Arquitetura orientada a recursos (REST)
- A Transferência de Estado Representacional (Representational State Transfer) estrutura um sistema em torno de recursos endereçáveis manipulados através de uma interface uniforme e sem estado, um estilo arquitetônico derivado para explicar e guiar a escalabilidade da web.
Clinical relevance
O estilo arquitetônico é a decisão inicial de maior alavancagem no projeto de sistemas: ele governa a escalabilidade, o isolamento de falhas e a independência com que as equipes podem evoluir os componentes, e fundamenta a escolha entre implantações monolíticas, de microsserviços e ponto a ponto.
History
As arquiteturas distribuídas evoluíram de mainframes centralizados para a computação cliente-servidor na década de 1980, para sistemas empresariais multicamadas e sobreposições ponto a ponto em larga escala nas décadas de 1990 e 2000, e para arquiteturas web orientadas a recursos cujos princípios foram articulados pela dissertação REST de Fielding em 2000.
Key figures
- Roy Fielding
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- tanenbaum2017
- fielding2000
Frequently asked questions
- Qual a diferença entre um modelo arquitetônico e uma implantação física?
- O modelo arquitetônico descreve componentes lógicos e seus padrões de interação, enquanto uma implantação física mapeia esses componentes para máquinas e redes reais. Um modelo arquitetônico pode ser implantado em muitas configurações físicas.