12.02.2008

Arquitecturas N-Layer – Ventajas y desventajas

En el post pasado, escribí acerca de las ventajas y las desventajas de utilizar una arquitectura n-tier, en este post voy a abarcar las ventajas y desventajas de utilizar una arquitectura n-layer desde mi punto de vista.

Dado que una arquitectura n-layer es una forma lógica de distribuir la aplicación, este tiene sus mayores ventajas en lo que respecta al desarrollo de la aplicación, su mantenimiento y su escalabilidad. Las principales ventajas de desarrollar una aplicación n-layer son:

  • Flexibilidad: Permite que los componentes sean modificados para llevar a cabo sus tareas sin necesidad de recompilar toda la aplicación – resguardando siempre el contrato definido para la operación. Además permite utilizar estos componentes en diversos tipos de aplicaciones y no exclusivamente para la aplicación que fueron diseñados.
  • Mantenibilidad: Facilita la tarea de modificar un componente para corregir errores, mejorar el desempeño, agregar atributos, o adaptarlos a un ambiente cambiante.
  • Reutilización: todos los componentes pueden ser utilizados desde otros componentes o desde otros sistemas. Incluso si los componentes de negocio son consumidos a través de servicios, esos servicios pueden ser reutilizados por otros sistemas internos o externos.
  • Escalabilidad: Facilita que un componente se pueda adaptar al cambio. Cuando el sistema crece en funcionalidad pero esta está definida por diferentes clientes, se pueden crear nuevos componentes sobre los componentes base para poder especializar más las capacidades de un componente específico para un cliente en específico.

La principal desventaja que yo encuentro con las aplicaciones n-layer, es que al inicio del desarrollo se consume mucho tiempo creando los componentes “core” de los sistemas; y las empresas o departamentos de TI por lo generar quieren mostrar a sus clientes – internos o externos - aspectos tangibles del sistema que se está desarrollando. Por supuesto, esta desventaja se desvanece con el paso del tiempo y con el avance en el desarrollo, porque una vez creado el “core” del sistema, el avance es impresionantemente rápido.

No hay comentarios: