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
  • De una sola mano
  • Solicitud / respuesta sincrónica
  • Devolución de llamada básica
  • Comprobación de reclamaciones
Arquitectura de datos
  • Bases de datos de aplicaciones personalizadas
  • Bases de datos de aplicaciones empaquetadas
  • ETL
  • EAI
  • SOA
Analítica e inteligencia empresarial
  • Informes transaccionales
  • Analítica operativa
  • Análisis de negocio
  • Analítica predictiva
  • Analítica prescriptiva
  • Análisis de transmisión
  • Ciencia de datos y análisis avanzado
  • PNL
  • Acceso a datos de informes transaccionales
  • Acceso a los datos de informes operativos
  • Acceso a datos de informes analíticos
  • Acceso a datos del tablero analítico
  • Acceso a los datos del panel operativo
  • Procesamiento de datos
  • ETL
  • EAI
  • TDS
  • Almacén de datos operativos
  • Mercado de datos
Gestión de datos maestros
  • Centro de datos maestros
  • Replicación de datos maestros
  • Servicios de datos maestros
  • Sincronización de datos maestros
Modelado de datos
  • Estándares de modelado
  • Convenciones de nombres
Inteligencia artificial

Algunos ejemplos adicionales de patrones arquitectónicos:

Ver tambié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 .
  • Bass L .; Clements P .; Kazman R. (2005). Arquitectura de software en la práctica: segunda edición . Addison-Wesley .