Arquitectura de Software: Arquitectura por Capas

El patrón de arquitectura más común es la arquitectura en capas o la arquitectura en n-capas. Es ampliamente conocida por la mayoría de arquitectos, diseñadores y desarrolladores. No hay un número límite de capas o de tipo de capas, pero mayormente las capas se dividen en:

  • Presentación

  • Lógica de negocios.

  • Persistencia.

  • Base de datos.


Contexto


Todos los sistemas complejos experimentan la necesidad de desarrollar y evolucionar partes del sistema de forma independiente. Por esta razón, los desarrolladores del sistema necesitan una clara y bien documentada separación de intereses, de modo que los módulos del sistema pueden ser desarrollados y mantenidos de forma independiente.



Problemas


El software necesita ser segmentado de tal forma que los módulos puedan ser desarrollados y puedan evolucionar de forma separada con poca interacción entre las partes, soportando portabilidad, variación y reutilización.



Solución


Para lograr esta separación de intereses, el patrón de capas divide el software en unidades llamadas capas. Cada capa es una agrupación de módulos que ofrecen un conjunto cohesivo de servicios. El uso debería ser unidireccional. Las capas dividen una parte del software, y cada partición es expuesta a través de una interfaz pública.




  • El primer concepto a tener en cuenta es que cada capa tiene un rol y una responsabilidad especifica. Por ejemplo, la capa de presentación es responsable de manejar la interfaz de usuario. La consecuencia de la separación de intereses hace que sea más fácil construir roles y responsabilidades de forma efectiva.

  • Como segundo concepto, el patrón de arquitectura en capas es diferente u opuesto a la arquitectura por dominio. Las capas son grupos de componentes, más que por dominio.

  • Por último, cada capa está marcada para ser cerrada o abierta. Una capa cerrada significa que una solicitud de mueve de capa en capa, y va entre capas continuas sin saltarse alguna. Es decir de capa 1 va a capa 2 y luego a la capa 3. No puede ir de la capa 1 a la 3.


Debilidades


Las capas contribuyen a una penalidad en el desempeño. El patrón no es muy eficiente ya que una solicitud va de capa en capa para completarse. Eso lo hace menos aplicable a aplicaciones de alto desempeño.


Agregar una capa adicional, eleva el costo y complejidad a un sistema.



Usos


Deberíamos utilizar este estilo para aplicaciones o sitios web pequeños o simples. Es una buena elección para proyectos con poco presupuesto o con restricciones de tiempo.

Comentarios