Al parecer existe una confusión respecto al término aplicación n-capas cuando este se lleva al idioma español. El problema principal es que en inglés se manejan dos conceptos a nivel de arquitectura:
- Aplicaciones n-Tier
- Aplicaciones n-Layer
Ambos términos significan “de n capas"; pero existe una gran diferencia respecto al significado de cada uno de ellos. Una arquitectura n-Tier se refiere a la distribución física de las capas, es decir donde corre el código y los procesos. Una arquitectura n-Layer se refiere a la distribución lógica de las capas, es decir, como esta estructurado el código.
En la siguiente figura podemos ver una aplicación n-tier – una aplicación web - que contiene 3 capas, una capa en el cliente, otra en el servidor IIS, y otra en la base de datos; es decir, el navegador, el servidor Web y el servidor de bases de datos corren en diferentes máquinas.
Por otra parte, una arquitectura n-Layer define simplemente como se organiza el código. Normalmente incluye una capa de presentación, una capa de negocios, una capa de acceso a datos, una capa de entidades de negocio y una capa de datos – repositorio de datos. El hecho de que se dividan las capas para organizar el código, no significa que las capas obligatoriamente deban corren en diferentes máquinas o que deben estrictamente correr en una sola máquina o en un único proceso.
La siguiente figura detalla una arquitectura n-Layer básica.
Como podemos ver en la figura, en una arquitectura n-layer las capas solamente interactúan con sus capas adyacentes lo que permite abstraer funcionalidades de las capas superiores e inferiores. Por ejemplo, la capa de presentación no se da cuenta que tipo de base de datos o que repositorio de datos se utiliza por que esta solamente se comunica con la capa de negocios, y el repositorio de datos no se da cuenta en donde se esta utilizando o desplegando la información ya que este interactúa con la capa de acceso a datos.
En los post siguientes vamos a hablar el por que es importante dividir las aplicaciones en capas, y vamos a profundizar en las arquitecturas n-Layer.
22 comentarios:
Muy bien, es bueno hacer este tipo de aclaraciones. Siempre había pensado que eran lo mismo. Saludos y gracias por el desenganio. Saludos
excelente la definicion de las capas fisicas y logicas
Gracias a ambos por tomarse el tiempo para leer mi blog y por los comentarios :).
Muy buena la aclaración, es un tema muy importante y de mucha utilidad.
Hola, me encanto el post, la aclaración es muy buena, incluso antes de leer esto no hubiera tomado no lo habría tomado en cuenta, estoy desarrollando mi proyecto de titulación como In. en Sistemas y pues tome en cuenta los detalles de la arquitectura n-Tier, sin saber que lo estaba haciendo (tan solo la nombre arquitectura física).
Ahora, también tengo una pregunta, ¿a qué te refiere con la "Capa de entidades de Negocio", en que se diferencia de la Capa de negocio? Si va por donde creo, me ayudaría mucho en verdad para completar mi arquitectura de este proyecto que menciono.
Dejo mis correos electrónicos por cualquier aclaración:
alejandrorazgado@hotmail.com
alejandrorazgadogmail.com
Gracias Alex por tu comentario.
Las capas de lógica de negocio usualmente se dividen en comportamiento y en estado. La idea con la capa de entidades de negocio es separar la lógica del negocio con el estado de las clases del negocio - entidades -, lo que nos permite de forma sencilla darle mantenimiento a las entidades o a los comportamientos sin tener que recompilar alguna de las dos. Además, con el uso de Ioc [ver post de Unity] esta separación me permite crear aplicaciones versalites que pueden crecer en el tiempo sin necesidad de ser recompiladas.
muy buena la aclaración, yo tambien pensaba que era lo mismo, gracias por este tipo de aclaraciones.
Gracias Milton por leer el blog.
Saludos
Muy buena la explicacion. Tier = Arquitectura del Sistema . Layer = arquitectura del SW. :)
Gracias @jlbugarin por leer el blog y por tus comentarios. Saludos
pero en este tipo de arquitectura n-tier si implemento los Caching Application Block en que capa tendria que hacerlo si puedo preguntar en este blog...
por cierto me gusta tu blog gracias... por tu respuestas
Hay tantas definiciones en el mundo informático que con frecuencia se dan ambiguedades, de no ser por Don Luis Diego yo seguiría pensando que n-Tier y n-Layer eran lo mismo. Muchas gracias Don Luis por su aporte. Saludos.
Gracias Henry por tus comentarios
Gracias anónimo por tu comentario.
Respecto al caching, este application block si lo usas a nivel de página web se usa en el UI, y si lo usas a nivel de servicio te funciona a nivel de capa de servicios
saludos
Muy bueno me ayudo a Comprender !! Dennis desde Costa Rica
Muchas gracias me fue de mucha ayuda ! Tienes las fuentes ? saludos
Muy buena tu explicación. Gracias pues habemos quienes apenas y sabemos que es un sistema.
Muy buena informacion, sigue de esa forma.
Gracias.
MUI BUENA PAGINA ACLARANDO MUCHAS DUDAS
sumamente claro... y conciso.
Excelente aclaración me sirvió de mucho.. suerte!!
Publicar un comentario