Arquitecturas multicapa
Una arquitectura multicapa (multi-tier o n-tier) es un patrón de diseño que descompone una aplicación en capas o niveles independientes, cada uno con una responsabilidad bien delimitada, de modo que puedan desarrollarse, desplegarse y evolucionar por separado. Es la evolución natural de la arquitectura cliente/servidor, orientada a mejorar la escalabilidad, el mantenimiento y la reutilización del software frente a los esquemas monolíticos.
Del modelo de 2 capas al modelo de 3 capas
En el modelo cliente/servidor de 2 capas la aplicación se reparte entre un cliente y un servidor. Según dónde resida la lógica de negocio se habla de:
-
Cliente grueso (fat/thick client) - servidor fino: el cliente ejecuta la presentación y buena parte de la lógica de negocio; el servidor se limita, típicamente, a los datos.
-
Cliente fino (thin client) - servidor grueso (fat server): el cliente solo gestiona la presentación y la lógica de negocio reside en el servidor.
Para implantar una arquitectura cliente/servidor del tipo "cliente fino - servidor grueso" con el modelo de 2 capas se necesitan como mínimo 2 equipos: uno que actúe como cliente (presentación) y otro que actúe como servidor (lógica + datos). El reparto físico es intrínseco al modelo cliente/servidor: cliente y servidor son roles que se ejecutan en máquinas distintas.
El modelo de 3 capas
El modelo de 3 capas hace referencia a que las aplicaciones se separan en tres capas, estableciendo:
-
Capa de Lógica de Presentación (presentation tier): la interfaz de usuario. Recoge la entrada del usuario y muestra los resultados. No contiene reglas de negocio.
-
Capa de Lógica de Negocio (business/application tier): el núcleo funcional. Aplica las reglas de negocio, valida, procesa y coordina; actúa de intermediario entre la presentación y los datos.
-
Capa de Datos o de Persistencia (data tier): gestiona el almacenamiento y la recuperación de la información, habitualmente mediante un SGBD.
La característica esencial es que la capa de presentación nunca accede directamente a la capa de datos: siempre lo hace a través de la capa de lógica de negocio. Esto favorece la modularidad: se puede cambiar la base de datos sin tocar la interfaz, o rediseñar la interfaz sin alterar las reglas de negocio.
Ventajas del modelo de 3 capas
-
Mayor escalabilidad: cada capa puede desplegarse en servidores independientes y replicarse según la carga.
-
Mantenimiento y reutilización: al estar la lógica centralizada en la capa intermedia, los cambios se localizan y la lógica de negocio puede reutilizarse desde distintos clientes.
-
Seguridad: la capa de datos queda aislada tras la capa de negocio, no expuesta al cliente.
-
Flexibilidad tecnológica: cada capa puede usar tecnologías distintas.
-
Balanceo de carga y tolerancia a fallos: al separar físicamente las capas se pueden repartir peticiones y aplicar redundancia.
Desventaja: NO reduce el tráfico de red
El punto clave que suele evaluarse: entre las supuestas ventajas de la arquitectura en 3 capas, la que NO es cierta es que "reduzca el tráfico en la red frente a una arquitectura de dos capas". Al contrario: al introducir una capa intermedia entre la presentación y los datos, se añade un salto adicional de comunicación por red (cliente → servidor de aplicaciones → servidor de datos), de manera que estas soluciones incrementan el tráfico de red y requieren más balanceo de carga y tolerancia a fallos. Por tanto, es FALSA cualquier afirmación que sostenga que la arquitectura de tres capas reduce el tráfico de red o que no lo incrementa. Reducir el tráfico de red no es una ventaja de las tres capas; es, de hecho, una de sus contrapartidas.
El modelo de 3 capas se generaliza en las arquitecturas n-capas, donde la capa de negocio se subdivide (por ejemplo, en servidor web y servidor de aplicaciones), muy comunes en las aplicaciones web y en las arquitecturas de servicios.
La arquitectura ANSI/SPARC de bases de datos
Un caso paradigmático de arquitectura multicapa aplicado a las bases de datos es la arquitectura ANSI/SPARC (también ANSI/X3/SPARC), propuesta en 1975. Establece tres niveles (tres niveles de abstracción) para organizar una base de datos:
| Nivel | Esquema | Descripción |
|---|---|---|
| Nivel Externo | Vistas de usuario | Cómo ven los datos los distintos usuarios/aplicaciones; oculta el resto de la base de datos a cada usuario. Puede haber muchos esquemas externos. |
| Nivel Conceptual | Esquema conceptual | Diseño lógico global: qué datos se almacenan y qué relaciones y restricciones de integridad existen. Es único e independiente del hardware y del software. |
| Nivel Interno | Esquema interno | Representación física: estructuras de almacenamiento, registros, métodos de acceso e índices. |
Los tres niveles definidos son, por tanto: Nivel Externo, Nivel Conceptual y Nivel Interno.
Propósito de ANSI/SPARC
El objetivo principal de la arquitectura ANSI/SPARC es proporcionar una separación clara de la vista de los usuarios respecto de la representación física, ocultando la complejidad de la base de datos y los detalles físicos de almacenamiento. Persigue precisamente ocultar la complejidad de la base de datos y los detalles físicos de almacenamiento al usuario, que solo interactúa con su vista externa.
Independencia de datos
La separación en tres niveles habilita la independencia de datos, en dos formas:
-
Independencia Lógica: capacidad de modificar el esquema conceptual sin alterar los esquemas externos (las vistas de usuario ni las aplicaciones). Es la que permite añadir campos o entidades al modelo lógico sin romper las vistas existentes.
-
Independencia Física: capacidad de modificar el esquema interno (estructuras de almacenamiento, índices) sin alterar el esquema conceptual.
En resumen, tanto en el diseño de aplicaciones (3 capas: presentación, negocio, datos) como en el diseño de bases de datos (ANSI/SPARC: externo, conceptual, interno), la filosofía multicapa persigue el mismo fin: desacoplar responsabilidades para ganar independencia, mantenibilidad y flexibilidad, asumiendo a cambio un mayor coste de comunicación e infraestructura.
Fuentes
-
ANSI-SPARC Architecture — Wikipedia. https://en.wikipedia.org/wiki/ANSI-SPARC_Architecture
-
The Three-Level ANSI-SPARC Architecture — GeeksforGeeks. https://www.geeksforgeeks.org/dbms/the-three-level-ansi-sparc-architecture/
-
Chapter 2: Database Environment (Connolly & Begg, Pearson) — CCS Northeastern University. https://www.ccs.neu.edu/home/kathleen/classes/cs3200/ch02C.pdf
-
Comparing Two-Tier and Three-Tier Networks — WWT. https://www.wwt.com/article/comparing-two-tier-three-tier-data-center-networks
-
Portal de Administración Electrónica (MÉTRICA v3), Gobierno de España. https://administracionelectronica.gob.es/pae_Home/pae_Documentacion/pae_Metodolog/pae_Metrica_v3.html