Una arquitectura multicapas es un conjunto ordenado de subsistemas, cada uno de
cuales está constituido en términos de
los que tiene por debajo y proporciona la base de la implementación de aquellos
que están por encima de él.
Los objetos de cada capa suelen ser
independientes, aunque suelen haber
dependencias entre objetos de distintas capas. Existe una relación
cliente /servidor entre las capas
inferiores, que son las que proporcionan
los servicios, y las capas superiores, los usuarios de estos servicios.
Una arquitectura multicapa particiona todo el sistema en distintas
unidades funcionales: cliente, presentación, lógica-de-negocio, integración, y
sistema de información empresarial (EIS). Esto asegura una división clara de
responsabilidades y hace que el sistema sea más mantenible y extensible. Los
sistemas con tres o más capas se han probado como más escalables y flexibles
que un sistema cliente-servidor, en el que no existe la capa central de lógica
de negocios. La capa de presentación expone los servicios de la capa de lógica
de negocio a los usuarios. Sabe cómo procesar una petición de cliente, cómo
interactuar con la capa de lógica de negocio, y cómo seleccionar la siguiente
vista a mostrar. La capa de la lógica de
negocio contiene los objetos y servicios de negocio de la aplicación. Recibe peticiones
de la capa de presentación, procesa la lógica de negocio basada en las peticiones,
y media en los accesos a los recursos de la capa EIS. Los componentes de la
capa de lógica de negocio se benefician de la mayoría de los servicios a nivel
de sistema como el control de seguridad, de transacciones y de recursos. La
capa del cliente es donde se consumen y presentan los modelos de datos. Para
una aplicación Web, la capa cliente normalmente es un navegador web. Los
clientes pequeños basados en navegador no contienen lógica de presentación; se
trata en la capa de presentación.
VENTAJAS Y DESVENTAJAS DE LA ARQUITECTURA
MULTICAPAS
Ventajas
- Encapsulación
de lógica de negocio. Diferentes
clientes de la aplicación pueden acceder al mismo servidor intermedio. Esto permite evitar la redundancia (y coste de mantenimiento) de duplicar las reglas de negocio para cada
aplicación cliente separada.
- Aplicaciones
clientes pequeñas. Al delegar las tareas más pesadas en la capa media las
aplicaciones clientes ocupan menos y consumen menos procesador y memoria,
permitiendo instalarse en máquinas de bajo rendimiento. Esto trae la ventaja de
que por muchos clientes que accedan a la aplicación, el motor de bases de datos
sólo tiene una conexión, que va directamente al servidor de aplicaciones, evitando
así problemas de concurrencia o latencia de datos entre distintas aplicaciones
cliente. Estas aplicaciones clientes también pueden funcionar a través de
Internet ya que su consumo de ancho de banda es mínimo, al contrario de
conectar directamente con el motor de bases de datos.
- Procesar datos
distribuidos. Distribuir el trabajo de una aplicación entre varias máquinas puede mejorar la ejecución, ya que el balanceo de carga permite reducir la
carga de las máquinas que funcionan como servidor de aplicaciones.
-Incrementar la
seguridad. Podemos aislar la funcionalidad en las capas dando restricciones de
seguridad. Esto proporciona unos niveles de seguridad configurables y
flexibles. Las capas intermedias pueden limitar los puntos de entrada a material
protegido, permitiendo controlar el control de acceso más fácilmente. Si usamos
HTTP o COM+, podemos utilizar los modelos de seguridad que soportan.
-Escalabilidad:
se puede aumentar la capacidad de clientes y servidores por separado. Cualquier
elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden
añadir nuevos nodos a la red (clientes y/o servidores).
- Centralización
del control: los accesos, recursos y la integridad de los datos son controlados
por el servidor de forma que un programa
cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización
también facilita la tarea de poner al día datos u otros recursos.
- Fácil mantenimiento: al estar distribuidas las
funciones y responsabilidades entre varios ordenadores independientes, es posible
reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que
sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente).
Esta independencia de los cambios también se conoce como encapsulación.
- Existen
tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S
que aseguran la seguridad en las transacciones, la amigabilidad de la interfaz,
y la facilidad de empleo.
Desventajas
- Pone más carga
a la red, debido al tráfico que genera en la red. La congestión del tráfico ha sido
siempre un problema en el paradigma de C/S. Cuando una gran cantidad de
clientes envían peticiones simultaneas al mismo servidor, puede ser que cause
muchos problemas para éste (a mayor número de clientes, más problemas para el
servidor).
- El software y
el hardware de un servidor son generalmente muy determinantes. Un hardware
regular de un ordenador personal puede no poder servir a cierta cantidad de
clientes. Normalmente se necesita software y hardware específico, sobre todo en
el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará
el coste.
- El cliente no
dispone de los recursos que puedan existir en el servidor.
- Es mucho más
difícil programar y probar el software que en la arquitectura de dos niveles porque tienen que con más
dispositivos para terminar la transacción del usuario.
No hay comentarios:
Publicar un comentario