Definición de un sistema de 3 niveles

8

Las personas a menudo afirman que están siguiendo una 'arquitectura de 3 niveles (o n-niveles)', y a veces afirman que están cambiando a un Modelo de dominio. Pero realmente nunca he entendido qué es esta mítica 'arquitectura de 3 niveles'. Parece no tener una definición formal. Si bien existen numerosas referencias y ejemplos que explican y demuestran el patrón del Modelo de dominio, cualquier referencia a 3 niveles simplemente sugiere que debe separar su código en UI, lógica de negocios y capas de acceso a datos. Y eso es todo lo que parecen decir.

Lo que me parece particularmente extraño es que, para mí, el Modelo de dominio es la encarnación perfecta de este paradigma de 3 niveles. el ORM y los archivos de mapeo son la capa de acceso a datos, el dominio es la lógica de negocios y la interfaz de usuario es, bueno, la interfaz de usuario. Entonces, ¿por qué la gente habla como si fuera algo nuevo y diferente, y algo a lo que deberían cambiarse?

Antes de ver personas que implementaban el Modelo de dominio, la mayoría de las aplicaciones eran UI que accedían a procedimientos almacenados con la lógica dividida en la UI y los SP. A veces había algunos ensamblajes llamados 'UI', 'BLL' y 'DLL', pero generalmente estos eran solo mediadores entre las UI y los SP, dejando más lugares para que la lógica se extendiera aleatoriamente.

Entonces, ¿qué es esta arquitectura mítica de '3 niveles'? ¿Realmente existe? y si es así, ¿dónde se implementan bien algunos ejemplos?

Paul T Davies
fuente

Respuestas:

9

La definición de arquitectura de 3 niveles es un caso especial de la arquitectura de n niveles . En una arquitectura de n niveles, hay n componentes y cada uno solo interactúa con el componente inmediatamente "arriba" y "debajo" de él. Una arquitectura de tres niveles tiene tres componentes de este tipo.

Por lo general, una arquitectura de tres niveles consta de una capa de interacción del usuario, la capa de reglas de negocio y la capa de servicios de datos (incluidas las bases de datos). La capa de interacción del usuario solo emite solicitudes a la capa de reglas de negocio, que recupera datos de los diversos servicios de datos, los procesa y luego los devuelve al usuario a través de la capa de interacción del usuario.

La arquitectura de n niveles es un ejemplo de un patrón arquitectónico (o estilo arquitectónico). Simplemente define algunas restricciones en la arquitectura del sistema. Por sí solo, no es una vista completa de la arquitectura del sistema. Aunque estoy seguro de que hay sistemas que implementan algo así como una arquitectura de tres niveles, es solo un patrón destinado a establecer una discusión para el diseño e implementación adicional de un sistema.

Thomas Owens
fuente
Básicamente, lo que está diciendo es que una arquitectura de 3 niveles es una arquitectura que tiene 3 niveles ... que es exactamente la respuesta correcta :-)
Jörg W Mittag
@ JörgWMittag Más o menos. Pero también digo que es solo un patrón utilizado para simplificar la comunicación entre arquitectos de sistemas, diseñadores de aplicaciones y programadores. En realidad, es un caso especial de la arquitectura de n niveles, que es un caso especial de la arquitectura cliente-servidor.
Thomas Owens