Modelo de Aplicación de Java Empresarial
La plataforma Java Empresarial (JEE) está diseñada para crear
aplicaciones que den servicio a clientes, empleados, proveedores u otras
entidades o personas relacionados con el negocio de la empresa.
Este tipo de aplicaciones suelen ser complejas, en el
sentido de que tienen múltiples fuentes de datos y distribuyen información a
numerosos usuarios a menudo ubicados en localizaciones diferentes que pueden
llegar desde múltiples oficinas en un mismo edificio hasta múltiples oficinas
en múltiples edificios en diferentes países si la empresa tiene un alcance
internacional.
Además de la complejidad inherente a su naturaleza
distribuida, estas aplicaciones tienen que cumplir requisitos de seguridad, ya
que a menudo mueven datos de negocio que pueden ser confidenciales para la
empresa y deben ser portables para poder ejecutarse en diferentes plataformas,
desde un ordenador Mac o Windows de escritorio hasta una aplicación desplegada
en un tablet.
Para poder enfrentar el diseño y construcción de tales tipos
de aplicaciones, se emplea un modelo estructurado en niveles o capas de alto
nivel (tiers):
- Nivel de cliente (Client Tier) que es la parte interactiva donde se intercambia información con los usuarios finales
- Nivel intermedio (Middle Tier) que es donde se implementan las funcionalidades de negocio (cálculos, transformaciones de datos, etc.)
- El nivel de sistemas de información (Enterprise Information System Tier o EIS Tier) que es donde se persisten los datos que maneja la aplicación
A estos tres niveles que podemos ver como una pirámide donde
el nivel de datos que contiene toda la información relevante para el negocio de
la empresa constituye la base, el nivel intermedio contiene los procesos que
permiten transformar la información de la base y el nivel más alta permite la
entrada o presentación de datos a los clientes. Este nivel se apoya en el nivel
intermedio y en el nivel de datos.
En una arquitectura multi-niveles distribuida (distributed
multi-tier) cada una de los niveles por lo general separado en ordenadores o
máquinas diferentes:
- El nivel de cliente va desplegado en diferentes dispositivos que permiten interactuar con los usuarios finales (ordenadores de escritorio, ordenadores portátiles, tablets, smartphones, etc.)
- El nivel intermedio va desplegado en los servidores de aplicación
- El nivel de datos va desplegado en los servidores de base de datos
Los tres niveles se comunican entre sí mediante red, tanto
interna (Intranet) como externa (Internet) y cada nivel tiene unas determinadas
características que le dan flexibilidad y potencialidad a la hora de
implementar determinadas funcionalidades. Por ejemplo, el nivel de cliente es
muy rico a la hora de crear las interfaces de usuario, el nivel intermedio es
muy potente a la hora de procesar información y el nivel de datos es muy
potente a la hora de persistir y recuperar información.
Aplicaciones
multinivel distribuidas en Java
La plataforma JEE utiliza el modelo multinivel distribuido
para crear aplicaciones empresariales.
La lógica completa de la aplicación es dividida en
diferentes niveles que son desplegados a su vez en diferentes ordenadores
conectados en red. Normalmente el nivel intermedio se divide en un nivel de
negocio y un nivel Web dejando la aplicación JEE en cuatro niveles:
- El nivel de cliente, que se ejecuta en los dispositivos u ordenadores clientes
- El nivel Web, que se ejecuta en el servidor de aplicaciones JEE
- El nivel de negocio, que se ejecuta en el servidor de aplicaciones JEE
- El nivel de sistemas de información o datos, que se ejecuta en el servidor de datos
Es importante destacar, que en dependencia de la carga y la
disponibilidad, cada nivel puede estar formado físicamente por múltiples
máquinas.
Por ejemplo, en el nivel de cliente pueden existir múltiples
dispositivos como ordenadores de escritorio, smartphones o tablets que se
conectan a la aplicación.
En el nivel intermedio, tanto para la parte Web como
para los componentes de negocio pueden existir múltiples ordenadores formando
un cluster (estructura que permite alta disponibilidad y balanceo de carga).
En
el nivel de datos puede existir un cluster de base de datos para poder atender
a cientos o miles de transacciones generadas por el nivel intermedio.
Ventajas de la
separación en niveles
- Los requerimientos de procesamiento en cada nivel pueden ser diferentes. Si en el nivel de cliente solo tenemos que hacer algunas validaciones de datos, en el nivel intermedio tenemos el grueso de los cálculos y transformaciones y en el nivel de datos la mayor cantidad de accesos a disco. La separación en niveles puede hacer que un nivel no interfiera en la demanda de recursos (CPU, memoria, espacio en disco, tráfico de red) de otro nivel.
- Es más fácil escalar en vertical (añadiendo más CPU, memoria o espacio) o en horizontal (añadiendo nuevos nodos a una estructura en cluster) cuando los recursos de procesamiento son insuficientes en alguno de los niveles
- Se pueden tratar diferentes requerimientos de seguridad. Lo que en el nivel de cliente no presenta mayores problemas a la hora de pedir un dato (nombre y número de tarjeta de crédito) puede ser diferente a la hora de persistirlo (quizás deba estar encriptado en la base de datos de clientes)
- Es posible compartir lógica de negocios entre distintas aplicaciones siguiendo el principio de “Stay DRY” (Don’t Repeat Yourself). Si ya tenemos una funcionalidad de negocio implementada y probada, solo hay que compartirla y no implementarla de nuevo
- Facilita las labores de administración de nuestro centro de datos. Los expertos en administrar bases de datos solo tienen que gestionar los servidores de bases de datos, mientras que los administradores de servidores de aplicación solo tienen que mirar este tipo de servidores.
0 comentarios:
Publicar un comentario