Arquitectura en Capas

Arquitectura en Capas
Información sobre la plantilla
Arquitectura en capas.jpg

Arquitectura en Capas, es la vista conceptual de la estructura de la arquitectura de una aplicación.

Introducción

Toda aplicación contiene código de presentación, código de procesamiento de datos y código de almacenamiento de datos. La arquitectura de las aplicaciones difiere según como está distribuido este código. La meta es unificar las aplicaciones para PC, las aplicaciones cliente-servidor y las aplicaciones basadas en la Web, lo cual es posible para aplicaciones de cualquier tamaño. En nuestros días mucha información importante está almacenada en aplicaciones como sistemas de correo electrónico y como una serie de manejadores e interfaces diseñadas para poder de alguna forma conseguir acceder a este tipo de almacenamientos y más aún a datos como archivos de formato especiales, datos de posición geo-espacial, datos científicos no estándar, etc.

Arquitectura en Tres Capas

Los servicios son puestos en la red y operan de manera cooperativa para dar soporte a uno o más procesos de negocios. En este modelo, una aplicación se convierte en un conjunto de servicios de usuario, negocios y datos que satisface las necesidades de los procesos de negocios o procesa su soporte. Como los servicios están diseñados para el uso general y siguen lineamientos de interfaz publicados, pueden ser reutilizados y compartidos entre múltiples aplicaciones.

Es necesario puntualizar las siguientes características que traen consigo esta forma de arquitectura: Utilización de esquemas más complejos.

  • Los datos y los servicios web aparecen separados.
  • Facilidad para separar datos de la “lógica de negocio”.
  • Mayor seguridad en los “datos corporativos”.
  • El cliente recibe los datos y la información de forma indirecta través servidor

Funcionalidad de las Capas

  • Capa de Presentación o Interfaz de Usuario: Esta capa, esta formada por los formularios y los controles que se encuentran en los formularios. Es la capa con la que interactúa el usuario.
  • Capa de Negocio: Esta formada por las entidades, que representan objetos que van a ser manejados o utilizados por toda la aplicación. En este caso, están representados por clases y “DataTables” que se crean.
  • Capa de Acceso a Datos: Contiene clases que interactúan con la base de datos, éstas clases altamente especializadas se encuentran en la arquitectura del sistema y permiten, utilizando los procedimientos almacenados generados, realizar todas las operaciones con la base de datos de forma transparente para la capa de negocio.

Arquitectura en Cuatro Capas

El uso de cuatro capas permite una mayor extensibilidad en caso de que existan también clientes no web en el sistema, que trabajarían directamente contra el servidor del modelo. Los desarrollos más recientes empiezan a experimentar con una capa adicional

Funcionalidad de las Capas

  • Capa de Presentación: Esta capa no se hace cálculos, consultas o actualizaciones sobre el dominio, de hecho ni siquiera se tiene visibilidad sobre la capa del dominio. La idea básica es separar todo lo que es programación Web de la aplicación.
  • Capa de Aplicación: Es la encargada de accesar la capa al dominio, simplificar la información del dominio convirtiéndolo a los tipos de datos que entiende la interfaz como son: enteros, reales, cadenas de caracteres, fecha y clases contenedoras (container, collection). Una forma de organizar esta nueva capa de la aplicación es considerarla una fachada al dominio.
  • Capa de Dominio de la Aplicación: Muestra el diseño de la arquitectura que facilita a que las aplicaciones se desarrollen.
  • Capa de Repositorio: En esta capa se tiene en cuenta la infraestructura como el hardware o las redes físicas.

Esta subdivisión en cuatro capas facilita determinar el papel que desempeña la arquitectura dentro de una organización. Cada capa actúa como cliente de la capa inferior a ella y como servidor de la capa superior. Los arquitectos no deben de malgastar su tiempo en temas relacionados con la infraestructura, tales como el sistema operativo. La mejor forma de separar la arquitectura de la infraestructura es tener en mente el esquema de cuatro capas antes mencionado: la infraestructura debe de dar soporte a la arquitectura. Mezclar erróneamente conceptos de una y otra capa es un error muy común en muchas organizaciones

Arquitectura en Siete Capas

Partiendo de que un servicio Web o Web Service es una colección de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Los estándares abiertos y el foco en la comunicación y colaboración entre las personas y aplicaciones han creado un entorno donde los servicios Web se están convirtiendo en la plataforma para la integración de aplicaciones. Estas aplicaciones de software pueden ser desarrolladas en lenguajes de programación diferentes y ejecutadas sobre cualquier plataforma, y mediante los servicios poder intercambiar datos entre ellas a través de la Internet.

Funcionalidad de las Capas

  • Capa de Presentación: Consiste en las interfaces o pantallas mostradas en los navegadores o browsers de los usuarios finales de la aplicación. Esta capa de presentación hace referencia a la interfaz del servicio Web y envía tipos de datos encapsulados en mensajes que son de conocimiento único de la interfaz. Esta capa debe conocer los tipos de datos y tipos de mensajes que puede recibir la capa de interfaz de servicio.
  • Capa de Interfaz de Servicio: Es la que se expone fuera de la aplicación. Contiene los tipos de mensajes utilizados por los métodos del servicio Web. Permite la comunicación de la aplicación Web y la aplicación móvil con la lógica de negocios.
  • Capa de Implementación del Servicio: En esta capa se tienen la clase adapter que es la encarga de intermediar la comunicación entre la capa de presentación y la de lógica de negocio. Como la lógica de negocio solo maneja entidades de negocio y la capa de presentación solo maneja tipos de datos, existe una clase translator que se encarga de traducir las entidades en tipos de datos y viceversa.
  • Capa de Tipos de Datos: Contiene toda la colección de tipos de datos manejados por la capa de presentación y que se transmiten hasta la implementación de servicio donde tendrán que convertirse en entidades del negocio.
  • Capa Lógica del Negocio: Contiene el corazón del sistema. Es un conjunto de subrutinas que regulan la acción del usuario enviándolas a la capa de repositorio de datos. Esta información es enviada y encapsulada en entidades de negocio.
  • Capa Entidades del Negocio: Es la representación de los objetos manejados en el sistema y también de las tablas de la base de datos. Permiten el transporte de los datos desde fuera hacia la base de datos y viceversa. Maneja el principio de programación con objetos los cuales contienen atributos que representaran datos físicos. Sirve de intermediario entre la capa de implementación y el repositorio de datos.
  • Capa Repositorio de Datos: Es la capa encargada de la inserción y extracción de datos en la base de datos. El repositorio se comunica únicamente con la base de datos y con la lógica de negocio.

Únicamente se comunicará una capa con su capa superior inmediata y su capa inferior inmediata, de lo contrario se rompería el principio de comunicación entre capas.

Véase Tambiém

Fuentes

  • Booch, Grady. Object-Oriented Analysis and Design. Second Edition. Benjamin/Cummings, Redwood: 1994.
  • Jacobson, Ivar, Grady Booch, and James Rumbaugh. El Proceso Unificado de Desarrollo de Software. México: Addison-Wesley, 1999.
  • Kruchten, Philippe. "Architectural Blueprints--The 4+1 View Model of Software Architecture". IEEE Software, Institute of Electrical and Electronics Engineers. November 1995, pp. 42-50.
  • Larman, Craig. UML y Patrones, Introducción al análisis y diseño orientado a objetos. México: Prentice Hall, 1999.
  • Wilson, Scott F. Analyzing Requirements and Defining Solution Architectures. Redmond: Microsoft Press, 1999.
  • Fernández Aramayo, David Ricardo. Arquitectura de Software. Universidad Tecmilenio, ITESM.