29

Hola, bienvenido a una entrada más del blog de Programación de interfaces. En esta ocasión quiero compartirte un escrito acerca de la arquitectura en capas, pues se mencionara a lo largo de la sesión y en realidad lo escucharas a lo largo del resto del curso. El artículo fue rescatado de la siguiente liga: http://geeks.ms/blogs/jkpelaez/archive/2009/05/29/arquitectura-basada-en-capas.aspx

La arquitectura basada en capas se enfoca en la distribución de roles y responsabilidades de forma jerárquica proveyendo una forma muy efectiva de separación de responsabilidades. El rol indica el modo y tipo de interacción con otras capas, y la responsabilidad indica la funcionalidad que está siendo desarrollada.

Por ejemplo, una aplicación web típica está compuesta por una capa de presentación (funcionalidad relacionada con la interfaz de usuario), una capa de negocios (procesamiento de reglas de negocios) y una capa de datos (funcionalidad relacionada con el acceso a datos).

El estilo de arquitectura basado en capas se identifica por las siguientes características:

  • Describe la descomposición de servicios de forma que la mayoría de la interacción ocurre solamente entre capas vecinas.
  • Las capas de una aplicación pueden residir en la misma maquina física (misma capa) o puede estar distribuido sobre diferentes computadores (n-capas).
  • Los componentes de cada capa se comunican con otros componentes en otras capas a través de interfaces muy bien definidas.
  • Este modelo ha sido descrito como una “pirámide invertida de re-uso” donde cada capa agrega responsabilidad y abstracción a la capa directamente sobre ella.

Principios fundamentales

Los principios comunes que se aplican cuando se diseña para usar este estilo de arquitectura incluyen:

  • Abstracción. La arquitectura basada en capas abstrae la vista del modelo como un todo mientras que provee suficiente detalle para entender las relaciones entre capas.
  • El diseño no hace asunciones acerca de tipos de datos, métodos, propiedades o implementación.
  • Funcionalidad claramente definida. El diseño claramente define la separación entre la funcionalidad de cada capa. Capas superiores como la capa de presentación envía comandos a las capas inferiores como la capa de negocios y la capa de datos y los datos fluyen hacia y desde las capas en cualquier sentido.
  • Alta cohesión. Cada capa contiene funcionalidad directamente relacionas con la tarea de dicha capa.
  • Las capas inferiores no tienen ninguna dependencia con las capas superiores, permitiéndoles ser reutilizables en otros escenarios.
  • La comunicación entre las capas está basada en la abstracción lo que provee un desacople entre las capas.

Si quieres saber más acerca de la arquitectura de capas, te invito a que visites la liga de la cual fue rescata la información. Aprovecho para extenderle un agradecimiento y un saludo al escritor Juan Peláez, autor del texto.