Patróns de arquitectura

Os patróns arquitectónicos, ou patróns de arquitectura ofrecen solucións a problemas de arquitectura software na enxeñaría de software. Un patrón arquitectónico proporciona unha descrición dos elementos que compoñen un sistema e o tipo de relación que teñen, xunto cun conxunto de restricións sobre as súas responsabilidades e interaccións. O esquema de organización estrutural e de comportamento expresado por un patrón arquitectural presenta unha solución aplicable a diferentes sistemas, en relación normalmente aos seus requirimentos funcionais ou non funcionais mais abstractos. Dise a miúdo que os patróns de arquitectura son solucións organizacionais estritamente descritas e comunmente dispoñibles. En comparación cos patróns de deseño, os patróns arquitectónicos teñen un nivel de abstracción maior.

Aínda que un patrón arquitectónico comunica unha imaxe do sistema, non é unha arquitectura como tal. Un patrón arquitectónico é un concepto que captura elementos esenciais dunha arquitectura de software. Moitas arquitecturas diferentes poden implementar un mesmo patrón e polo tanto compartir as mesmas características.

Un dos aspectos máis importantes dos patróns arquitectónicos é que encarnan diferentes atributos de calidade. Por exemplo, algúns patróns representan solucións a problemas de rendemento e outros poden ser utilizados con éxito en sistemas de alta dispoñibilidade. Durante as fases mais temperás do deseño, a persoa ou persoas co rol de arquitectas de software escollen que patróns arquitectónicos ofrecen de mellor maneira as calidades desexadas para o sistema.

Exemplos de patróns arquitectónicos inclúen os seguintes:

 Patróns de acceso e configuración de servizos:
 Fachada envoltorio (wrapper facade)
 Configurador de compoñentes
 Interceptador
 Extensión de interface
 Patróns de xestión de eventos:
 Reactor
 Proactor
 Token de finalización asíncrono
 Aceptador-conector
 Patróns de concorrencia:
 Obxecto activo
 Obxecto monitor
 Metade-síncrono/metade-asíncrono
 Líder/seguidores
 Almacenamento específico

 Dominios no deseño de patróns 

 Control de acceso. Hai moitas situacións nas cales o acceso a datos, características e funcionalidade son limitadas á definición dos usuarios. Desde un punto de vista arquitectónico, acceder a determinadas partes do software debe ter un rigoroso control.
Concorrencia. Moitas aplicacións deben manexar múltiples tarefas de forma que simule o paralelismo. Hai moitas formas de manexar esta concorrencia e cada unha delas pode ser presentada por un patrón arquitectónico diferente.
Distribución. O problema da distribución dirixe o problema de forma en que os sistemas ou compoñentes se comunican con outros nun contorno distribuído. O patrón máis común para afrontar o problema é the broker. Actuando como un home no medio entre o compoñente cliente e o servidor. O cliente envía unha mesaxe ó broker  e este encárgase de completar a conexión.
Persistencia. Os datos persistentes son almacenados en bases de datos ou arquivos e poden ser lidos ou modificados por outros procesos máis adiante. Nos contornos orientados a obxectos isto vai máis alá e o que pode ser accedido ou modificable son as propiedades dos obxectos.

Categoría:Enxeñaría de software