Modelos de sistemas y arquitecturas
Los modelos arquitectónicos describen cómo se organizan los componentes de un sistema distribuido y cómo se reparte la responsabilidad de la computación y los datos entre ellos.
Definition
Un modelo arquitectónico de un sistema distribuido especifica los tipos de componentes (procesos), los roles que desempeñan y los patrones de comunicación y dependencia entre ellos, abstrayéndose de las máquinas físicas en las que se ejecutan.
Scope
Este tema abarca los principales estilos arquitectónicos de los sistemas distribuidos: cliente-servidor, multinivel (n-capas), punto a punto (peer-to-peer) y organizaciones híbridas, junto con patrones estructurales como arquitecturas en capas, basadas en objetos, centradas en recursos (REST) y basadas en eventos. También cubre la ubicación de los procesos y las compensaciones en la partición, replicación y almacenamiento en caché de componentes entre máquinas.
Core questions
- ¿Cómo se debe dividir la responsabilidad de la computación y los datos entre los componentes?
- ¿Cuándo es preferible una organización punto a punto a una cliente-servidor?
- ¿Qué estilo arquitectónico soporta mejor la escalabilidad y la capacidad de evolución para una carga de trabajo determinada?
Key theories
- Organización cliente-servidor y multinivel
- Los componentes se dividen en clientes solicitantes y servidores que responden, y la lógica de la aplicación se organiza en capas de presentación, procesamiento y datos que pueden distribuirse de forma independiente para equilibrar la carga y la escala.
- Organización punto a punto y descentralizada
- Todos los nodos son funcionalmente equivalentes y actúan tanto como clientes como servidores, lo que permite superposiciones autoorganizadas sin un punto central de control o fallo, a costa de mecanismos de búsqueda y consistencia más complejos.
- Arquitectura orientada a recursos (REST)
- La Transferencia de Estado Representacional (Representational State Transfer) estructura un sistema en torno a recursos direccionables manipulados a través de una interfaz uniforme y sin estado, un estilo arquitectónico derivado para explicar y guiar la escalabilidad de la web.
Clinical relevance
El estilo arquitectónico es la decisión temprana de mayor impacto en el diseño del sistema: rige la escalabilidad, el aislamiento de fallos y la independencia con la que los equipos pueden evolucionar los componentes, y subyace a la elección entre despliegues monolíticos, de microservicios y punto a punto.
History
Las arquitecturas distribuidas evolucionaron desde los mainframes centralizados a la computación cliente-servidor en la década de 1980, a los sistemas empresariales multinivel y las superposiciones punto a punto a gran escala en las décadas de 1990 y 2000, y a las arquitecturas web orientadas a recursos cuyos principios fueron articulados por la disertación REST de Fielding en 2000.
Key figures
- Roy Fielding
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- tanenbaum2017
- fielding2000
Frequently asked questions
- ¿Cuál es la diferencia entre un modelo arquitectónico y un despliegue físico?
- El modelo arquitectónico describe los componentes lógicos y sus patrones de interacción, mientras que un despliegue físico mapea esos componentes a máquinas y redes reales. Un mismo modelo arquitectónico puede desplegarse en muchas configuraciones físicas.