La aplicacion Java

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 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

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Desarrollo Web, Formacion, Java y etiquetada , , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.