Patrón arquitectónico - Architectural pattern
Un patrón arquitectónico es una solución general reutilizable para un problema que ocurre comúnmente en la arquitectura de software dentro de un contexto dado. Los patrones arquitectónicos abordan varios problemas en la ingeniería de software , como las limitaciones de rendimiento del hardware de la computadora , la alta disponibilidad y la minimización de un riesgo comercial . Algunos patrones arquitectónicos se han implementado dentro de los marcos de software .
El uso de la palabra "patrón" en la industria del software fue influenciado por conceptos similares expresados en la arquitectura tradicional , como A Pattern Language (1977) de Christopher Alexander , que discutió la práctica en términos de establecer un léxico de patrones , lo que incitó a los practicantes de la informática para contemplar su propio léxico de diseño.
El uso de esta metáfora dentro de la profesión de ingeniería de software se convirtió en algo común después de la publicación de Design Patterns (1994) por Erich Gamma , Richard Helm , Ralph Johnson y John Vlissides, ahora comúnmente conocido como la "Banda de los cuatro", coincidiendo con los primeros años. de la Internet pública , marcando el inicio de complejos sistemas de software que "devoran el mundo" y la correspondiente necesidad de codificar el mundo del desarrollo de software en rápida expansión al nivel más profundo posible, sin dejar de ser flexible y adaptable.
Los patrones arquitectónicos son similares a los patrones de diseño de software pero tienen un alcance más amplio.
Definición
Aunque un patrón arquitectónico transmite una imagen de un sistema, no es una arquitectura. Un patrón arquitectónico es un concepto que resuelve y delinea algunos elementos cohesivos esenciales de una arquitectura de software. Innumerables arquitecturas diferentes pueden implementar el mismo patrón y compartir las características relacionadas. Los patrones se definen a menudo como "descritos estrictamente y comúnmente disponibles".
Estilo arquitectónico
Siguiendo la arquitectura de edificios tradicional, un ' estilo arquitectónico de software ' es un método específico de construcción, caracterizado por las características que lo hacen notable.
Un estilo arquitectónico define: una familia de sistemas en términos de un patrón de organización estructural; un vocabulario de componentes y conectores, con restricciones sobre cómo se pueden combinar.
Un estilo arquitectónico es una colección con nombre de decisiones de diseño arquitectónico que (1) son aplicables en un contexto de desarrollo dado, (2) restringen las decisiones de diseño arquitectónico que son específicas para un sistema particular dentro de ese contexto, y (3) obtienen cualidades beneficiosas en cada sistema resultante.
Algunos tratan los patrones arquitectónicos y los estilos arquitectónicos como lo mismo, algunos tratan los estilos como especializaciones de patrones. Lo que tienen en común es que tanto los patrones como los estilos son modismos para que los utilicen los arquitectos, "proporcionan un lenguaje común" o "vocabulario" con el que describir clases de sistemas.
La principal diferencia es que un patrón puede verse como una solución a un problema, mientras que un estilo es más general y no requiere un problema para resolver por su apariencia.
Ejemplos de
A continuación, se muestra una lista de patrones de arquitectura y los patrones de diseño de software y los patrones de solución correspondientes .
Área de subdominio | Patrón de arquitectura | Patrones de diseño de software | Patrones de solución | Patrones relacionados |
---|---|---|---|---|
Integración de datos / SOA |
|
|
||
|
||||
Arquitectura de datos |
|
|
||
Analítica e inteligencia empresarial |
|
|
|
|
Gestión de datos maestros |
|
|
|
|
Modelado de datos |
|
|||
Inteligencia artificial |
|
|
Algunos ejemplos adicionales de patrones arquitectónicos:
- Sistema de pizarra
- Patrón de corredor
- Arquitectura impulsada por eventos
- Invocación implícita
- Capas
- Arquitectura hexagonal
- Microservicios
- Acción-dominio-responder , Modelo-vista-controlador , -abstracción-control de la presentación , Modelo-Vista-presentador , y Modelo-Vista-viewmodel
- Sistema de componentes de la entidad
- Límite de control de entidad
- Arquitectura de varios niveles (a menudo de tres niveles o n niveles)
- Objetos desnudos
- Almacén de datos operativos (ODS)
- De igual a igual
- Arquitectura de tuberías y filtros
- Arquitectura orientada a Servicios
- Arquitectura basada en el espacio
- Tabla hash distribuida
Ver también
- Lista de patrones y estilos de arquitectura de software
- Servicio de mensajería basado en procesos
- Arquitectura empresarial
- Capas comunes en la arquitectura lógica de un sistema de información
Referencias
Bibliografía
- Avgeriou, París; Uwe Zdun (2005). "Patrones arquitectónicos revisitados: un lenguaje de patrones". X Conferencia europea sobre lenguajes de patrones de programas (EuroPlop 2005), Irsee, Alemania, julio .
- Buschmann F .; Meunier R .; Rohnert H .; Sommerlad P .; Stal M. (1996). Arquitectura de software orientada a patrones: un sistema de patrones . John Wiley e hijos .
- Bass L .; Clements P .; Kazman R. (2005). Arquitectura de software en la práctica: segunda edición . Addison-Wesley .