Si habeis llegado a este punto, supongo que os he convencido de las ventajas de realizar una aplicacion en Java
El siguiente paso, es ver, como enviamos nuestro trabajo a un servidor web…la cosa no va a ser tan sencilla como subir nuestro directorio de trabajo,… pero tampoco mucho mas complicada
Formato de despliegue de una aplicación
Según hemos visto antes, una aplicación web desarrollada en Java va a estar compuesta de
- Ficheros JSP
- Servlets
- Clases Java
- Recursos varios como imágenes, ficheros Javascript, HTML, CSS, ….
Para entregar a producción el trabajo (Desplegar),debemos organizar todos los ficheros
Ficheros JAR
Hasta ahora, para entregar una aplicación Java, generábamos un fichero JAR, en ese fichero se guardaban Clases y Librerías de apoyo
Como en JAR solo había clases java, básicamente, el JAR era un fichero comprimido del directorio en donde se encontraban las clases
- Permite agrupar distintos archivos java en uno solo.
- Sigue el formato ZIP
- Incorporado en la versión 1.1 del JDK
- Contienen:
- Clases java
- Recursos que emplean las clases
- Es el empleado para empaquetar componentes EJBs, respetando una estructura de directorios
Ficheros WAR
Para entregar una aplicación web, utilizaremos un fichero WAR, capaz de contener todos sus componentes.
- Servlets y JSPs
- Contenido estático
- Html,Imágenes,etc.
- Otros recursos web
En el WAR, además de las clases, deben ir ficheros descriptores, librerías de apoyo,…por lo que antes de la compresión, deben estructurar la información, siguiendo la siguiente imagen
Hemos de aclarar que los IDEs habitualmente, ya disponen de las herramientas para generar el fichero, y se encargan de la organización de la información.
Ficheros EAR
Archivos desplegables en servidores de aplicaciones JEE
Contienen
- Archivos WAR
- EJBs (Empaquetados dentro de ficheros JAR)
Descriptor de despliegue
El descriptor de despliegue se trata de un fichero XML en donde se dan instrucciones al contenedor, acerca de las clases que entregamos, como se han de comportar, y cualquier información necesaria para el funcionamiento de la aplicación, (datos para la conexión a BBDD, …)
En nuestro entorno, será el fichero web.xml que estudiaremos mas adelante
Contenedores y servidores de aplicaciones
Hemos de pensar que una clase java, asi, por las buenas, no es capaz de ser sensible a una direccion web, esto es, no podra ser arrancada desde una URL
Ademas, ya hemos ido comentandoo que el cumplir con la interfaz EJB nos aporta un monton de soluciones a los problemas de programacion
Para que todo eso sea cierto y se pueda cumplir, deberemos introducir nuestras clases en un contenedor que las maneje. Este contenedor lo podriamos ver de la siguiente forma:
Ese contenedor, creado para las gestion de componentes, puede cumplir con nuestros objetivoc
- Un contenedor es un proceso donde se ejecutan los componentes
- Provee un ambiente estandarizado de ejecución que provee servicios específicos a componentes
- Se encarga de implementar todas las especificaciones del API, además de proveer servicios, para el manejo y ejecución de componentes web, tales como servlets, JSPs, filters, listeners, etc..
- Poseen acceso a sistemas de información empresarial (RDBMS, JDBC, etc.)
- Gestiona los componentes de la aplicación
- Ciclo de vida
- Proporciona acceso a servicios de la plataforma
- Seguridad, transacciones, persistencia, conectividad, etc.
- El desarrollador tiene que especificar
- Los componentes de la aplicación
- Servlets
- JSPs (JavaServer Pages)
- JSFs (JavaServer Faces)
- EJBs (Enterprise Java Beans)
- Los descriptores de despliegue (deployment)
- Ficheros XML que describen los componentes de aplicación
- Los componentes de la aplicación
Los contenedores también poseen acceso a sistemas de información empresarial (RDBMS, JDBC, etc.)
Los contenedores, naturalmente los encontraremos la mayoria de las veces, como servidores de aplicaciones, y en algunos casos, orientados unicamente a la web, a continuacion ponemos un ejemplo de lo que hay en el mercado
Servidores de aplicaciones
Son programa que proveen la infraestructura necesaria para las aplicaciones empresariales
- Contenedores EJBs
- Jboss
- Contenedores Web
- Tomcat
- Servidores de aplicaciones completos
- Weblogic
- IBM WebSphere
- Caucho Resin
- JOnAS (Open Source Jee app. Server).
- iPlanent
- Orión – OC4J
- Jboss + Tomcat
- Glassfish…
Y si queremos tener una idea aproximada de su popularidad….
Realmente, Tomcat nació como un servicio de Apache pensado para entornos de desarrollo, y es el contenedor que vamos a usar en nuestras pruebas, a partir del proximo articulo en que lo instalaremos,
Ultimamente, Tomcat ha pasado a ser un contenedor Web muy util en produccion, y con eso ha terminado de expandir su popularidad