Siete patrones arquitectónicos de software que debe conocer, según los ingenieros de software.
En esta entrada del blog describiré un resumen de los siete patrones arquitectónicos de software más populares que he encontrado en la literatura (Sommerville, 2011), algunos de ellos los utilicé en proyectos de desarrollo web y de escritorio en los que en un tiempo participé. Estos, según los expertos, se considera que son los que debemos conocer. Si bien es cierto que especializarse en uno no es lo recomendado, pues el implementar tal o cual dependerá de los requerimientos de tu proyecto, si es necesario al menos conocerlos y saber qué es lo que son. A continuación describiré lo que es 1) arquitectura dirigida por eventos, 2) arquitectura en capas, 3) arquitectura monolítica, 4) arquitectura de microservicios, 5) modelo-vista-controlador, 6) arquitectura master-slave y 7) arquitectura dirigida por modelos.
- Arquitectura dirigida por eventos: se basa en componentes desacoplados y con una comunicación asíncrona. En la literatura se propone como ideal para sistemas donde los eventos desencadenan acciones, fomentando la escalabilidad y la capacidad de respuesta.
- Arquitectura en capas: es una estructura jerárquica con capas distintas (Presentación, Lógica de Negocio, Datos). Esta arquitectura es común en aplicaciones empresariales, mejorando la mantenibilidad a través de la compartimentación y el desarrollo modular.
- Arquitectura monolítica: utiliza un código base unificado y unidad de despliegue, es adecuada, según los expertos, para aplicaciones más pequeñas o instancias centradas en la simplicidad. Agiliza el desarrollo y el despliegue con posibles problemas de escalabilidad.
- Arquitectura de microservicios: básicamente es un sistema distribuido con servicios independientes e interoperables, suele ser recomendada para sistemas grandes e intrincados, mejorando la escalabilidad, el aislamiento de fallos y permitiendo el desarrollo de servicios independientes, así como la reutilización de código.
- Modelo-Vista-Controlador (MVC): es una muy popular, pero antigua, data desde los años 70s, consiste en la segregación de las preocupaciones (los famosos concerns) en componentes de modelo, vista y controlador. Es común utilizarla en aplicaciones web, mejora la organización y el mantenimiento del código al separar la lógica compleja de la interfaz de usuario. En esta entrada del blog explico más a detalle lo que es el MVC.
- Arquitectura maestro-esclavo: maneja un control centralizado (maestro) con múltiples nodos de trabajo (esclavos). De gran utilidad en la informática distribuida, optimizando el procesamiento paralelo y el equilibrio de carga.
- Arquitectura dirigida por modelos: surge a inicios del año 2000, es estándar del Object Management Group. Básicamente, consiste en tres capas, en las cuales, especificas todo con modelos, lo que puedes transformar para generar los modelos de la capa independiente de computación (capa 1) a la capa independiente de la plataforma (capa 2) y a su vez de esta obtienes modelos específicos de la plataforma (capa 3), de los cuales obtienes el código fuente. Repito, la idea es no escribir código, casi nada, solo modelar y transformar modelos. Ejemplo en imagen (tomada de Betari 2018).
- Betari, Oualid & Filali, Saida & Azzaoui, Amine & Boubnad, Mohamed. (2018). Applying a model driven architecture approach: Transforming CIM to PIM using UML. International Journal of Online Engineering (iJOE). 14. 170. 10.3991/ijoe.v14i09.9137.
- Sommerville, I. (2011). Software engineering (ed.). America: Pearson Education Inc.
Comentarios
Publicar un comentario
Gracias por tu comentario ;) Ayúdanos a difundir este blog !!