Introducción al Patrón de Arquitectura por Capas

El Patrón de arquitectura por capas es una de las técnicas más comúnes que los arquitectos de software utilizan para dividir sistemas de software complicados. Al pensar en un sistema en términos de capas, se imaginan los principales subsistemas de software ubicados de la misma forma que las capas de un pastel, donde cada capa descansa sobre la inferior. En este esquema la capa más alta utiliza varios servicios definidos por la inferior, pero la ultima es inconsciente de la superior. Además, normalmente cada capa oculta las capas inferiores de las siguientes superiores a esta.

Los beneficios de trabajar un sistema en capas son:

– Se puede entender una capa como un todo, sin considerar las otras.
– Las capas se pueden sustituir con implementaciones alternativas de los mismos servicios básicos
– Se minimizan dependencias entre capas.
– Las capas posibilitan la estandarización de servicios
– Luego de tener una capa construida, puede ser utilizada por muchos servicios de mayor nivel.

La imagen que se muestra a continuación presenta el esquema de una arquitectura siguiendo este patrón:

A continuación se describen las tres capas principales de un patrón de arquitectura por capas:

1. Capa de Presentación: Referente a la interacción entre el usuario y el software.  Puede ser tan simple como un menú basado en líneas de comando o tan complejo como una aplicación basada en formas.  Su principal responsabilidad es mostrar información al usuario, interpretar los comandos de este y realizar algunas validaciones simples de los datos ingresados.

2. Capa de Reglas de Negocio (Empresarial): También denominada Lógica de Dominio, esta capa contiene la funcionalidad que implementa la aplicación.  Involucra cálculos basados en la información dada por el usuario y datos almacenados y validaciones.  Controla la ejecución de la capa de acceso a datos y servicios externos.  Se puede diseñar la lógica de la capa de negocios para uso directo por parte de componentes de presentación o su encapsulamiento como servicio y llamada a través de una interfaz de servicios que coordina la conversación con los clientes del servicio o invoca cualquier flujo o componente de negocio.

3. Capa de Datos: Esta capa contiene la lógica de comunicación con otros sistemas que llevan a cabo tareas por la aplicación.  Estos pueden ser monitores transaccionales, otras aplicaciones, sistemas de mensajerías, etc.  Para el caso de aplicaciones empresariales, generalmente esta representado por una base de datos, que es responsable por el almacenamiento persistente de información.  Esta capa debe abstraer completamente a las capas superiores (negocio) del dialecto utilizado para comunicarse con los repositorios de datos (PL/SQL, Transact-SQL, etc.).

Autor: arevalomaria

Ingeniero de Sistemas, Magister en Gerencia y Tecnologia de la Informacion,

38 opiniones en “Introducción al Patrón de Arquitectura por Capas”

  1. Muchas veces encontraran el termino en ingles N-Tiers y N-Layers. Esta arquitectura es 3-Layers. Los 3 niveles existen dentro del mismo contexto de infraestructura. En aplicaciones distribuidas donde existe un cliente y servidor remoto por ejemplo estamos en presencia de 2-Tiers, donde las Tiers representan las capas físicas. Me parece importante hacer la distinción porque en la traducción siempre se refiere a la división en capas y es importante saber distinguir a que se esta refiriendo con capa (física o lógica).

  2. Mi experiencia en .Net ha sido en aplicaciones transaccionales, en las cuales este modelo de 3 capas se aplica. Mi pregunta es en sistemas informativos como quedaria la capa de datos ? o puede ser que no hay sistemas informativos puros al cien por ciento y que son un hibrido entre transaccionales e informativos, o a que podemos llamar sistemas informativos.

    Gracias de antemano a sus respuestas.

  3. Excelente material. El tema de n-capas siempre es muy abstracto, y aunque es fácil de entender, es díficil de visualizar en un desarrollo específico. Este tema lo propone bastante bien.

    Muchas gracias por este aporte.

  4. EXELENTE TRABAJO. SOY NUEVO EN LA PROGRAMACION POR CAPAS SI ME PUEDEN PASAR UN LINK PARA PROFUNDIZAR MAS SOBRE EL TEMA LES QUEDARIA MUYA AGRADECIDO.

  5. Interesante, pero hay que acotar que no solo, se puede implementar 3 capas sino mas capas tontos como un proyecto debido a su complejidad lo requiera, y a los lenjuajes que soporten este tipo de arquitectura.

  6. Pingback: Anónimo
  7. Excelente explicación. Me gusta mucho la programación en capa ya que esta permite mucho la reutilizacion de código.

Deja un comentario