Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Un conjunto de especificaciones? ¿Qué quiere decir esto? Esto quiere decir que cualquier
fabricante puede coger estas especificaciones y desarrollar un producto final que las
cumpla. Sun ha creado una implementación de todas estas especificaciones (Glassfish)
pero no es la única empresa.
Una especificación no es más que un papelito que detalla cada una de las tecnologías dentro
de la plataforma Java EE. Un conjunto de reglas que dictan como debe desarrollarse ese
producto de tal forma que se pueda garantizar que una aplicación desarrollada siguiendo las
especificaciones de Java EE pueda desplegarse y ejecutarse.
Por ejemplo, los servlets son una tecnología de la plataforma Java EE y como tal, dispone
de una especificación. Así, una empresa puede desarrollar un producto que implemente la
especificación de los servlets, de tal forma, que ese producto pueda ejecutar servlets. Y así
con todas las tecnologías que forman parte de la plataforma Java EE. Con producto nos
referimos a un servidor de aplicaciones como Glassfish, o incluso un simple contendor de
servlets como Apache Tomcat.
¿Cuántas siglas eh? No nos asustemos por ahora, no vamos ni a explicar brevemente en que
consiste cada tecnología. Las iremos viendo poco a poco.
Aplicación multi-capa
Una aplicación empresarial Java EE está formada por un conjunto de módulos donde cada
módulo es un conjunto de uno o más componentes que se ejecutan en el mismo
contenedor.
Un componente no es más que una unidad de software, puede ser un componente web
como una página JSP o un servlet, un componente EJB, etc. Estos componentes se ejecutan
dentro de sus correspondiente contenedor dentro del servidor de aplicaciones.
El contenedor no es más que un entorno de ejecución que gestiona los componentes, por
eso, los componentes deben de cumplir el contrato que establece el contenedor. Ese
contrato no es más que un conjunto de métodos que debe implementar el componente y que
permite al contenedor interactuar con él.
Además cada contenedor proporciona una serie de servicios que el componente puede
utilizar. El contenedor es el encargado de gestionar el ciclo de vida de los componentes,
realizar la reserva de recursos, etc. Algunos de estos servicios son servicios declarativos,
esto quiere decir que algunos servicios se declaran en vez de programarse. La declaración
se realiza mediante descriptores de despliegue. Cada módulo dispone de un descriptor de
despliegue. El descriptor de despliegue no es más que un archivo XML que describe como
se deben desplegar esos componentes en el contenedor del servidor de aplicaciones.
Los módulos que forman una aplicación empresarial pueden ser de tres tipos:
• Archivos JAR (Java Archive): Los archivos JAR permiten agrupar distintos
archivos .java en uno solo. Es el empleado para empaquetar componentes EJBs.
• Archivos WAR (Web Application Archive): Los archivos WAR permiten
empaquetar en una sola unidad aplicaciones web completas (servlets, páginas JSPs,
contenido estático como imágenes y otros recursos Web).
• Archivos EAR (Enterprise Application Archive): Los archivos EAR son archivos
desplegables en servidores de aplicaciones JEE. Contienen archivos WAR y EJBs
empaquetos en ficheros JAR.
Por lo que podríamos decir que existen tres tipos de aplicaciones Java EE:
A continuación vamos a entrar en más detalle. Para ello, hemos subrayado en el siguiente
gráfico los elementos más importantes y usuales. La arquitectura de un servidor de
aplicaciones incluye una serie de subsistemas: