Este documento describe la plataforma Java EE y su arquitectura de aplicaciones multicapa. Java EE se utiliza para desarrollar aplicaciones empresariales distribuidas que suelen tener tres capas: cliente, web y negocio. La arquitectura Java EE contempla cuatro capas principales: cliente, web, negocio y sistemas de información empresarial. Cada capa se compone de diferentes componentes como servlets, EJB y aplicaciones cliente.
2. JEE
La plataforma JEE implica una forma de
implementar y desplegar aplicaciones
empresariales.
Java EE está destinada a desarrollar aplicaciones
distribuidas con una arquitectura multi-capa.
Las aplicaciones Java EE suelen ser consideradas
aplicaciones de tres capas porque se distribuyen en
tres localizaciones, ordenadores clientes, el sistema
donde se ejecuta el servidor de aplicaciones, y el
sistema donde reside la base de datos.
Se desarrollan en base a especificaciones o guías
de desarrollo.
3. Las capas de la arquitectura
En la arquitectura JEE se contemplan cuatro capas, en función
del tipo de servicio y contenedores:
Capa de cliente, también conocida como capa de presentación o
de aplicación. Nos encontramos con componentes Java (applets
o aplicaciones) y no-Java (HTML, JavaScript, etc.).
Capa Web. Intermediario entre el cliente y otras capas. Sus
componentes principales son los servlets y las JSP. Aunque
componentes de capa cliente (applets o aplicaciones) pueden
acceder directamente a la capa EJB, lo normal es que Los
servlets/JSPs pueden llamar a los EJB.
Capa Enterprise JavaBeans. Permite a múltiples aplicaciones
tener acceso de forma concurrente a datos y lógica de negocio.
Los EJB se encuentran en un servidor EJB, que no es más que
un servidor de objetos distribuidos. Un EJB puede conectarse
a cualquier capa, aunque su misión esencial es conectarse con
los sistemas de información empresarial
Capa de sistemas de información empresarial.
6. Componentes de J2EE
La especificación del J2EE define las
siguientes capas de una aplicación:
Capa de cliente. Corre en la
máquina cliente.
Capa de web. Corre en el servidor
J2EE.
Capa de negocio. Corre en el
servidor J2EE.
Capa de Sistema de Información
Empresarial (EIS). Corre en el
servidor EIS.
7. Capa de cliente
Clientes web. Consisten de dos partes: páginas web dinámicas y un navegador
web. Se les conoce como "clientes livianos" (thin client) porque no hacen querys a
bases de datos, ni ejecutan reglas complejas de negocio, ni se conectan a
aplicaciones heredadas. Dichas operaciones son manejadas por el servidor J2EE.
Applets. ES una pequeña aplicación cliente escrita en Java que es ejecutada por la
máquina virtual de Java instalada en el navegador web.
Clientes de aplicación. Son aplicaciones que corren en la máquina cliente y
permiten a los usuarios manejar tareas que requieren una interfaz más rica que la
que es otorgada por html o xml. Generalmente tienen una interfaz gráfica (GUI)
creada usando Swing o Abstract Window Toolkit (AWT). También es posible usar
un intérprete de comandos.
8. Capa de cliente (cont.)
JavaBeans. Los clientes pueden tener componentes basados
en JavaBeans para el manejo de flujo de datos entre un
cliente de aplicación o applet y los componentes que corren
en el servidor J2EE o entre componentes del servidor y una
base de datos. Dichos JavaBeans no se consideran
componentes del J2EE.
Comunicaciones con el Servidor J2EE. El cliente se comunica
con el componente de negocio ya sea directamente o a
través de páginas JSP o servlets que corren en el
componente web.
10. Capa Web
Servlets: Son clases del lenguaje Java que procesan
solicitudes y construyen respuestas de forma dinámica.
Páginas JSP: Son documentos de texto que son ejecutados
como servlets pero permiten un acercamiento más natural a
la creación de contenido estático.
Applets y Páginas html estáticas. Son usadas por los
componentes web pero no se consideran componentes de
J2EE. Lo mismo ocurre con clases utilitarias y JavaBeans del
lado del servidor.
12. Capa del Negocio
Es toda la parte lógica que resuelve o satisface las necesidades de un
dominio de negocio particular como la banca, finanzas, ventas, etc. Dicha
lógica es manejada por Enterpise JavaBeans. Hay tres tipos de enterprise
beans: beans de sesión, beans de entidad y beans manejados por
mensajes.
13. Capa de Aplicaciones Empresariales
Maneja el software del sistema de información empresarial
Maneja sistemas de infraestructura empresariales como planificación de
recursos empresariales (ERP), procesamiento de transacciones del
mainframe, sistemas de bases de datos, y otros sistemas de información
heredados.
14. Servidor de aplicaciones JEE
Servidor HTTP (también denominado servidor Web o servidor de
páginas). Un ejemplo, el servidor Apache.
Contenedor de aplicaciones o contenedor Servlet/JSP. Un
ejemplo, Tomcat (que incluye el servicio anterior sobre páginas)
Contenedor Enterprise Java Beans, que contiene aplicativos Java
de interacción con bases de datos o sistemas empresariales. Un
ejemplo es JBoss que contiene a los anteriores (servidor de páginas
web y contenedor de aplicacione web).
Basado en peticiones y respuestas: significa que el cliente (por
ejemplo un navegador) inicia siempre la conexión (por ejemplo, para
pedir una página). No hay posibilidad de que el servidor realize una
llamada de respuesta al cliente (retrollamada). El servidor ofrece la
respueta (la página) y cierra la conexión. En la siguiente petición del
cliente se abre una conexión y el ciclo vuelve e empezar: el servidor
devuelve el recurso y cierra conexión.
Sin estado: el servidor cierra la conxsión una vez realizada la
respuesta. No se mantienen los datos asociados a la conexión. Más
adelante veremos que hay una forma de persistencia de datos
asociada a la "sesión".