Articulo de referencia

Arquitectura de múltiples niveles

Descripción general de una aplicación de tres niveles. En ingeniería de software , la arquitectura multicapa (a menudo denominada arquitectura de n capas o arquitectura por capa...

Descripción general de una aplicación de tres niveles.

En ingeniería de software , la arquitectura multicapa (a menudo denominada arquitectura de n capas o arquitectura por capas ) es una arquitectura cliente-servidor en la que los distintos niveles de la arquitectura de software están físicamente separados. El uso más común de la arquitectura multicapa es la arquitectura de tres capas , que separa las funciones de presentación , procesamiento de aplicaciones y gestión de datos , como en el caso del modelo de interconexión jerárquica de Cisco . Otros niveles de separación pueden incluir la capa de servicio , la capa de negocio , la capa de acceso a datos y la capa de persistencia .

La arquitectura de aplicaciones de N capas proporciona un modelo mediante el cual los desarrolladores pueden modificar o agregar a una capa específica en el proceso de desarrollo de software en lugar de rehacer toda la aplicación. Se usa comúnmente para aplicaciones pequeñas y simples debido a su simplicidad y bajo costo. [ 1 ] [ 2 ] En el desarrollo web , la arquitectura de tres capas se usa a menudo para describir sitios web que comprenden un servidor web front-end que sirve contenido estático y algo de contenido dinámico en caché , un servidor de aplicaciones intermedio de procesamiento y generación de contenido dinámico y una base de datos o almacén de datos back-end .

En un sistema de capas estricto, cada capa depende de la capa inferior y puede existir independientemente de las capas superiores. En un sistema de capas relajado, una capa también puede depender de todas las capas inferiores, creando acoplamientos adicionales entre capas. [ 3 ] Algunas arquitecturas multinivel utilizan un enfoque híbrido, de modo que algunas capas son estrictas mientras que otras son relajadas. [ 4 ] [ 5 ] La arquitectura de N niveles también puede implementarse con el patrón modelo-vista-presentador .

Los términos capa y nivel se utilizan a menudo indistintamente, aunque capa a veces se usa para referirse a un mecanismo conceptual de estructuración lógica del software, mientras que nivel se usa para referirse al mecanismo físico de estructuración del hardware para la infraestructura del sistema. [ 6 ] [ 7 ] En este uso, una solución de tres capas podría implementarse en un solo nivel, como en el caso de algunas arquitecturas centradas en bases de datos llamadas arquitecturas solo RDBMS o en estaciones de trabajo personales. [ 8 ] [ 9 ]

Capas

Capas comunes

En una arquitectura lógica multicapa para un sistema de información con un diseño orientado a objetos , las siguientes cuatro son las más comunes: [ 3 ]

  • Capa de presentación (también conocida como capa de interfaz de usuario, capa de vista o nivel de presentación en arquitectura de múltiples niveles)
  • Capa de aplicación (también conocida como capa de servicio [ 10 ] [ 11 ] o capa de controlador GRASP [ 12 ] )
  • Capa de negocio (también conocida como capa de lógica de negocio (BLL), capa de lógica de dominio)
  • Capa de acceso a datos (también conocida como capa de persistencia , registro, redes y otros servicios necesarios para dar soporte a una capa de negocio específica).

La convención más habitual es que la capa de aplicación (o capa de servicio) se considere una subcapa de la capa de negocio, que normalmente encapsula la definición de la interfaz de programación de aplicaciones (API) que expone la funcionalidad de negocio compatible. De hecho, las capas de aplicación/negocio pueden subdividirse aún más para enfatizar subcapas adicionales con responsabilidades distintas. Por ejemplo, si se utiliza el patrón modelo-vista-presentador , la subcapa presentadora podría utilizarse como una capa adicional entre la capa de interfaz de usuario y la capa de negocio/aplicación (representada por la subcapa modelo). Si la arquitectura de la aplicación no distingue explícitamente entre la capa de negocio y la capa de presentación (es decir, la capa de presentación se considera parte de la capa de negocio), entonces se ha implementado un modelo tradicional cliente-servidor (de dos niveles).

Algunos también identifican una capa separada llamada capa de infraestructura empresarial (BI), ubicada entre la(s) capa(s) empresarial(es) y la(s) capa(s) de infraestructura. A veces también se la denomina "capa empresarial de bajo nivel" o "capa de servicios empresariales". Esta capa es muy general y puede utilizarse en varios niveles de aplicación (por ejemplo, un convertidor de divisas). [ 13 ]

La capa de infraestructura se puede dividir en diferentes niveles (servicios técnicos de alto o bajo nivel). [ 13 ] Los desarrolladores a menudo se centran en las capacidades de persistencia (acceso a datos) de la capa de infraestructura y, por lo tanto, solo hablan de la capa de persistencia o la capa de acceso a datos (en lugar de una capa de infraestructura o una capa de servicios técnicos). En otras palabras, el otro tipo de servicios técnicos no siempre se considera explícitamente como parte de ninguna capa en particular. . La capa de acceso a datos normalmente contiene un objeto conocido como objeto de acceso a datos (DAO) .

En un sistema de capas estricto, cada capa depende de la capa inferior y puede existir independientemente de las capas superiores. En un sistema de capas relajado, una capa también puede depender de todas las capas inferiores, y no solo de la capa directamente inferior. [ 3 ] El sistema de capas relajado presenta más acoplamientos y es más difícil de modificar. Algunas arquitecturas multinivel utilizan un enfoque híbrido, de modo que algunas capas son estrictas mientras que otras son relajadas. [ 4 ] [ 5 ]

Arquitectura de tres niveles

La arquitectura de tres niveles es un patrón de arquitectura de software cliente-servidor en el que la interfaz de usuario (presentación), la lógica del proceso funcional ("reglas de negocio"), el almacenamiento de datos informáticos y el acceso a los datos se desarrollan y mantienen como módulos independientes , generalmente en plataformas separadas . [ 14 ] Fue desarrollada por John J. Donovan en Open Environment Corporation (OEC), una empresa de herramientas que fundó en Cambridge, Massachusetts .

Además de las ventajas habituales del software modular con interfaces bien definidas, la arquitectura de tres niveles está diseñada para permitir que cualquiera de los tres niveles se actualice o reemplace de forma independiente en respuesta a cambios en los requisitos o la tecnología . Por ejemplo, un cambio de sistema operativo en el nivel de presentación solo afectaría al código de la interfaz de usuario. Normalmente, la interfaz de usuario se ejecuta en un PC de escritorio o estación de trabajo y utiliza una interfaz gráfica de usuario estándar , lógica de proceso funcional que puede constar de uno o más módulos separados que se ejecutan en una estación de trabajo o servidor de aplicaciones , y un SGBDR en un servidor de base de datos o mainframe que contiene la lógica de almacenamiento de datos del ordenador. El nivel intermedio puede ser multinivel (en cuyo caso la arquitectura general se denomina " arquitectura de n niveles"). [ 15 ]

  • Nivel de presentación
    • Este es el nivel superior de la aplicación. La capa de presentación muestra información relacionada con servicios como la navegación de productos, las compras y el contenido del carrito. Se comunica con otras capas para enviar los resultados a la capa del navegador/cliente y a todas las demás capas de la red. Es una capa a la que los usuarios pueden acceder directamente (como una página web o la interfaz gráfica de usuario de un sistema operativo).
  • Capa de aplicación (lógica de negocio, capa lógica o capa intermedia)
    • La capa lógica se separa de la capa de presentación y, como su capa, controla la funcionalidad de una aplicación mediante la realización de un procesamiento detallado.
  • Nivel de datos
    • La capa de datos incluye los mecanismos de persistencia de datos (servidores de bases de datos, recursos compartidos de archivos, etc.) y la capa de acceso a datos que encapsula dichos mecanismos y expone los datos. Esta capa debe proporcionar una API a la capa de aplicación que exponga métodos para gestionar los datos almacenados sin exponer ni crear dependencias con los mecanismos de almacenamiento. Evitar estas dependencias permite realizar actualizaciones o cambios sin que los clientes de la capa de aplicación se vean afectados ni siquiera se den cuenta del cambio. Como ocurre con cualquier separación de capas, la implementación conlleva costes y, a menudo, una menor eficiencia a cambio de una mayor escalabilidad y facilidad de mantenimiento.

Desarrollo web

En el campo del desarrollo web , el término "tres niveles" se usa a menudo para referirse a sitios web , comúnmente sitios web de comercio electrónico , que se construyen utilizando tres niveles:

  1. Un servidor web frontal sirve contenido estático y, posiblemente, también contenido dinámico almacenado en caché . En una aplicación web, el front-end es el contenido que muestra el navegador. Este contenido puede ser estático o generado dinámicamente.
  2. Un servidor de aplicaciones de nivel intermedio para el procesamiento y la generación de contenido dinámico (por ejemplo, Symfony , Spring , ASP.NET , Django , Rails , Node.js ).
  3. Una base de datos o almacén de datos de back-end , que comprende tanto los conjuntos de datos como el software del sistema de gestión de bases de datos que administra y proporciona acceso a los datos.

Otras consideraciones

La transferencia de datos entre capas forma parte de la arquitectura. Los protocolos involucrados pueden incluir uno o más de los siguientes: SNMP , CORBA , Java RMI , .NET Remoting , Windows Communication Foundation , sockets , UDP , servicios web u otros protocolos estándar o propietarios. A menudo se utiliza middleware para conectar las distintas capas. Estas capas suelen ejecutarse (aunque no necesariamente) en servidores físicos separados, y cada capa puede ejecutarse a su vez en un clúster .

Trazabilidad

La medición de la respuesta de la aplicación define conceptos y API para medir el rendimiento y correlacionar las transacciones entre los diferentes niveles.

Generalmente, el término «niveles» se utiliza para describir la distribución física de los componentes de un sistema en servidores, ordenadores o redes independientes (nodos de procesamiento). Una arquitectura de tres niveles tendrá, por lo tanto, tres nodos de procesamiento. El término «capas» se refiere a una agrupación lógica de componentes que pueden estar o no ubicados físicamente en un mismo nodo de procesamiento.

Véase también

Referencias

  1. Richards, Mark (2020). Fundamentos de la arquitectura de software: Un enfoque de ingeniería (1.ª  ed.). O'Reilly Media. ISBN 978-1492043454.
  2. Richards, Mark (2022). Patrones de arquitectura de software . O'Reilly Media, Inc. ISBN 9781098134273.
  3. ^ Buschmann, Frank ; Meunier, Régine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael (1996-08). Arquitectura de software orientada a patrones, volumen 1, un sistema de patrones. Wiley, agosto de 1996. ISBN 978-0-471-95869-7. Obtenido de http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html .
  4. 1 2 Richards, Mark (3 de marzo de 2020). Fundamentos de la arquitectura de software: un enfoque de ingeniería (1.ª ed.). O'Reilly Media. ISBN  978-1492043454.
  5. 1 2 Richards, Mark. Patrones de arquitectura de software . O'Reilly Media, Incorporated.
  6. Patrones de despliegue (Arquitectura empresarial, patrones y prácticas de Microsoft) .
  7. Fowler, Martin "Patrones de arquitectura de aplicaciones empresariales" (2002). Addison Wesley.
  8. Patrones de despliegue (Arquitectura empresarial, patrones y prácticas de Microsoft) .
  9. Vicente, Alfonso; Etcheverry, Lorena; Sabiguero, Ariel (2021). "Una arquitectura exclusivamente basada en RDBMS para aplicaciones web". 2021 XLVII Conferencia Latinoamericana de Computación (CLEI) . pp. 1–9 . doi : 10.1109/CLEI53233.2021.9640017 . ISBN  978-1-6654-9503-5. S2CID 245387844 . 
  10. La capa de servicios de Martin Fowler
  11. Martin Fowler explica que la capa de servicio es lo mismo que la capa de aplicación .
  12. Comparación/discusión de la capa de controlador GRASP frente a la capa de aplicación/servicio .
  13. 1 2 Aplicación de UML y patrones , 3.ª edición, pág. 203. ISBN 0-13-148906-2.
  14. Eckerson, Wayne W. "Arquitectura cliente/servidor de tres niveles: Logrando escalabilidad, rendimiento y eficiencia en aplicaciones cliente-servidor." Open Information Systems 10, 1 (enero de 1995): 3(20)
  15. Este artículo se basa en material tomado de three-tier en el Free On-line Dictionary of Computing antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" de la GFDL , versión 1.3 o posterior.
  • Revista Linux, Arquitectura de tres niveles
  • Guía de arquitectura de aplicaciones de Microsoft
Obtenido de " https://en.wikipedia.org/w/index.php?title=Multitier_architecture&oldid=1350747971 "