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.


posted under , , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio