En ingeniería de software, una arquitectura en capas es una arquitectura cliente-servidor que separa las funciones de presentación, procesamiento y almacenamiento de datos. El tipo más común de arquitectura en capas es la arquitectura de tres niveles .
La arquitectura de aplicaciones de N niveles proporciona un modelo mediante el cual los desarrolladores pueden crear aplicaciones flexibles y reutilizables . Al dividir la aplicación en capas de abstracción , los desarrolladores obtienen la capacidad de realizar cambios en una capa específica, en lugar de volver a trabajar en toda la aplicación. Una arquitectura de tres niveles generalmente consta de una capa de presentación , una capa de lógica empresarial y una capa de almacenamiento de datos .
Aunque los conceptos de capa y nivel a menudo se usan indistintamente, muchos están de acuerdo en que todavía hay una diferencia entre ellos. La diferencia es que una capa es un mecanismo para estructurar lógicamente los componentes que componen una solución de software, mientras que una capa es un mecanismo para estructurar físicamente la infraestructura de un sistema. [1] [2] Una solución de tres capas se puede implementar fácilmente en una sola capa, como una estación de trabajo personal . [una]
El patrón arquitectónico "Layers" ayuda a estructurar aplicaciones por descomposición en grupos de subtareas ubicadas en ciertos niveles de abstracción [3] .
En las arquitecturas de sistemas de información con capas lógicas, las siguientes cuatro capas se encuentran con mayor frecuencia:
El libro Diseño orientado al dominio (DDD) describe algunos usos comunes de estas cuatro capas, aunque el enfoque se desplaza hacia la capa de dominio. [ocho]
Algunos también distinguen entre la(s) capa(s) de lógica de negocios y la(s) capa(s) de infraestructura como una capa de infraestructura de negocios (BI) separada. Esta capa a veces se denomina "capa de lógica empresarial de bajo nivel" o "capa de servicios empresariales". Esta capa es muy general y se puede utilizar en varias capas de una aplicación (como el convertidor de divisas). [9]
La capa de infraestructura se puede subdividir en niveles: servicios técnicos de alto y bajo nivel. [9] Los desarrolladores a menudo se enfocan en las capacidades de acceso a datos de la capa de infraestructura y, por lo tanto, solo se refieren a ella en una conversación como una capa de acceso a datos (en lugar de la "capa de infraestructura" o "capa de servicio técnico" más general). En otras palabras, otros tipos de servicios técnicos no siempre se consideran parte de una capa en particular.
Cada capa depende solo de la capa subyacente y puede existir sin las capas superiores. Otro punto de vista común es que las capas no siempre dependen estrictamente de la capa inmediatamente debajo de ellas. Por ejemplo, en un sistema de capas relajado , una capa puede depender de todas las capas debajo de ella. [3]
arquitectura en capas | |
---|---|
Descrito en Patrones de diseño | No |