11.30.2008

Arquitecturas n-tier – Ventajas y Desventajas

Ahora que ya aclaramos las diferencias entre una arquitectura n-layer y una arquitectura n-tier en un post anterior, surgen dudas respecto a las ventajas y las desventajas de cada una de ellas.  Es precisamente respecto a ese tema lo que vamos a escribir en este post. Inicialmente nos vamos a enfocar en la arquitectura física ( n-tier ) y en post posteriores vamos a escribir acerca de las arquitecturas lógicas ( n-layer ).

Ventajas y Desventajas de las arquitecturas n-tier

Desde el punto de vista físico, la duda principal nace al decidir si utilizamos una arquitectura de 2 capas (2-tier) o una arquitectura de 3 capas(3-tier). Básicamente, una arquitectura 2 capas es una arquitectura donde el UI y los componentes de negocio o los componentes de negocio y el repositorio de datos residen en una misma capa física – Por ejemplo, aplicaciones web que tienen los componentes de negocio en el web server. Las aplicaciones 3 capas ( 3-tier ) dividen cada uno de estos componentes en ubicaciones físicas diferentes – Por ejemplo, cuando se utiliza un servidor de aplicaciones para hostear los componentes de negocio y otro servidor (web server) para hostear las páginas del sitio web.

Las desventajas principales de una arquitectura 3-tier sobre una arquitectura 2-tier son el costo y la complejidad. El costo aumenta por que se requiere un servidor adicional para hospedar los componentes desde donde se va a consumir toda la lógica de negocios, lo que trae consigo ítems adicionales que se deben tomar en cuenta tales como costo de licencias, costo mantenimiento de servidor, etc. La complejidad aumenta por que los componentes viven en su propio “ecosistema”, con lo cual se crea un punto extra de falla; es decir, tengo un servidor más que mantener y monitorear. Además, se va a crear un “brinco” adicional cada vez que se hace una llamada a los componentes de negocio que residen en este servidor de aplicaciones, lo que me lleva a tener una respuesta más lenta ( a diferencia de una arquitectura 2 capas donde los componentes residen en el mismo servidor donde reside la aplicacion ).

Las ventajas de una arquitectura 3 tier respecto a una arquitectura 2-tier son básicamente las siguientes:

Seguridad: Al agregarse un servidor de aplicaciones se agrega un nivel extra de seguridad, ya que existen procesos de autenticación y autorización en el servidor de aplicaciones que se agregan a los procesos ya existentes en los otros servidores, – base de datos y servidor Web -con lo que el hackear el servidor de aplicaciones, no da acceso de facto al servidor de base de datos.

Escalabilidad: Al utilizarse un servidor de aplicaciones se pueden crear pools de conexiones hacia la base de datos con lo cual se reutilizan las conexiones existentes para múltiples usuarios. Además, si mi aplicación es accedida por una cantidad de usuarios superior a la esperada y su rendimiento espera a bajar, podemos crear balanceo en el servidor de aplicaciones para que el tiempo de atención y respuesta sea más rápido.

No hay comentarios: