Está en la página 1de 10

Contexto de las aplicaciones web

Al finalizar el captulo, el alumno podr:

Analizar el contexto de desarrollo y ejecucin de las aplicaciones Web.

Temas

1.

Servidores de aplicaciones web.

2.

Empaquetamiento Web Application.

3.

Estructura de carpetas de Tomcat.

4.

Overview de Java EE.

5.

Arquitectura.

Programa Java 7.0 Web Application Developer

Contexto de las aplicaciones Web

1.

Servidores de aplicaciones web

Entre los servidores de aplicacin Java EE privativos ms conocidos, se encuentran WebLogic


de Oracle (antes BEA Systems) y WebSphere de IBM.
EAServer de Sybase Inc. es tambin conocido por ofrecer soporte a otros lenguajes diferentes
a Java, como PowerBuilder.
Entre los servidores de aplicaciones libres, se encuentran JOnAS del consorcio ObjectWeb,
JBoss AS de JBoss (divisin de Red Hat), Geronimo de Apache, TomEE de Apache, Resin
Java Application Server de Caucho Technology, Blazix de Desiderata Software, Enhydra
Server de Enhydra.org y GlassFish de Oracle.
Java EE provee estndares que permiten, a un servidor de aplicaciones, servir como
"contenedor" de los componentes que conforman dichas aplicaciones. Estos componentes,
escritos en lenguaje Java, usualmente, se conocen como Servlets, Java Server Pages (JSPs) y
Enterprise JavaBeans (EJBs), y permiten implementar diferentes capas de la aplicacin, como
la interfaz de usuario, la lgica de negocio, la gestin de sesiones de usuario o el acceso a
bases de datos remotas.
La portabilidad de Java tambin ha permitido que los servidores de aplicacin Java EE, se
encuentren disponibles sobre una gran variedad de plataformas como Unix, Microsoft Windows
y GNU/Linux.
Los servidores de aplicaciones web tambin incluyen middleware (o software de conectividad)
que les permite intercomunicarse con variados servicios para efectos de confiabilidad,
seguridad, no-repudio, etc. Adems, brindan a los desarrolladores, una Interfaz para
Programacin de Aplicaciones (API), de tal manera que no haya preocupacin por el sistema
operativo o por la gran cantidad de interfaces requeridas en una aplicacin web.

Contexto de las aplicaciones Web

Los servidores de aplicacin tambin brindan soporte a una gran variedad de estndares, tales
como HTML, XML, IIOP, JDBC, SSL, etc., que permiten su funcionamiento en ambientes web
(como Internet) y la conexin a una gran variedad de fuentes de datos, sistemas y dispositivos.
Un ejemplo comn del uso de servidores de aplicacin (y de sus componentes) son los portales
de Internet, que permiten a las empresas, la gestin y divulgacin de su informacin, y un
punto nico de entrada a los usuarios internos y externos. Teniendo como base un servidor de
aplicacin, dichos portales permiten tener acceso a informacin y servicios (como servicios
web) de manera segura y transparente desde cualquier dispositivo.
La informacin anterior est basada en el siguiente enlace:

http://es.wikipedia.org

Contexto de las aplicaciones Web

2.

Empaquetamiento Web Application

El desarrollo de una aplicacin web con Java conlleva a la creacin final de un archivo WAR
(Web Application Archive) que empaquetar, como un archivo ZIP, a todos los documentos de
la aplicacin web, y este archivo WAR, ser colgado en el servidor de aplicaciones web. Esto
facilita y simplifica el despliegue de la aplicacin web. Adems, no permite el acceso entre
aplicaciones web distintas (aunque se ejecuten en el mismo servidor).
Hasta la versin anterior a la 7 de Tomcat, el archivo web.xml era obligatorio en una aplicacin
web, sin embargo, a partir de la versin 7, este archivo es opcional.
La carpeta WEB-INF es obligatoria en una aplicacin web y contiene al archivo web.xml, si es
que se ha decidido su uso, la carpeta classes donde van todos los archivos JAVA compilados
(CLASS), la carpeta lib que contiene todas las bibliotecas que la aplicacin necesita (APIs,
drivers, frameworks y otros) y opcionalmente, la carpeta TLD (Tag Libray Descriptor) para la
biblioteca de tags desarrolladas en la aplicacin.
Por otro lado, al mismo nivel que la carpeta WEB-INF, estarn los JSPs (JavaServer Pages),
HTML, JS (JavaScript), CSS (Cascading Style Sheet), imgenes y otros recursos requeridos
por la aplicacin organizados en carpetas que los agrupen.
Bsicamente, as debera estar estructurada una aplicacin web; sin embargo, se pueden
considerar carpetas adicionales dentro de las carpetas, a fin de organizar los documentos,
sobre todo cuando la aplicacin es extensa.

Contexto de las aplicaciones Web

3.

Estructura de carpetas de Tomcat

Tomcat es un servidor con soporte de servlets y JSPs. Incluye el compilador Jasper, que
compila JSPs, convirtindolas en servlets. El motor de servlets de Tomcat a menudo se
presenta en combinacin con el servidor Web Apache.
Tomcat puede funcionar como servidor web por s mismo. En sus inicios, existi la percepcin
de que el uso de Tomcat de forma autnoma era recomendable para entornos de desarrollo y
entornos con requisitos mnimos de velocidad y gestin de transacciones. Hoy en da, ya no
existe esa percepcin y Tomcat es usado como servidor web autnomo en entornos con alto
nivel de trfico y alta disponibilidad.
Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga
de la mquina virtual Java.

Contexto de las aplicaciones Web

3.1 Estructura de carpetas de Tomcat


La jerarqua de carpetas de instalacin de Tomcat incluye lo siguiente:

bin

Arranque, cierre, y otros scripts y ejecutables.

conf

Ficheros XML y properties para la configuracin de


Tomcat.

lib

Bibliotecas y clases comunes que pueden utilizar


Catalina y las aplicaciones web.

logs

Logs de Catalina y de las aplicaciones.

temp

Archivos temporales.

webapps

Directorio que contiene las aplicaciones web.

work

Almacenamiento temporal de ficheros y directorios.

Contexto de las aplicaciones Web

4.

Overview de Java EE

Java Enterprise Edition o Java EE es una plataforma de programacin para desarrollar y


ejecutar software de aplicaciones en el lenguaje de programacin Java. Permite utilizar
arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de software
modulares, ejecutndose sobre un servidor de aplicaciones.
La plataforma Java EE est definida por una especificacin, similar a otras especificaciones del
Java Community Process. Tambin es considerada, informalmente, como un estndar debido a
que los proveedores deben cumplir ciertos requisitos de conformidad para declarar que sus
productos son conformes a Java EE, estandarizado por The Java Community Process / JCP.
Java EE tiene varias especificaciones de API, tales como: JDBC, RMI, e-mail, JMS, Servicios
Web, XML, etc. y define cmo coordinarlos. Configura algunas especificaciones nicas para
Java EE para componentes. Estas incluyen: Enterprise JavaBeans, servlets, portlets (siguiendo
la especificacin de Portlets Java), JavaServer Pages y varias tecnologas de servicios web.
Ello permite al desarrollador, crear una Aplicacin de Empresa portable entre plataformas y
escalable, a la vez que integrable con tecnologas anteriores.
Otros beneficios aadidos son, por ejemplo, que el servidor de aplicaciones puede manejar
transacciones, seguridad, escalabilidad, concurrencia y gestin de los componentes
desplegados, de tal modo que los desarrolladores puedan concentrarse ms en la lgica de
negocio de los componentes, en lugar de enfocarse en tareas de mantenimiento de bajo nivel.

Contexto de las aplicaciones Web

La plataforma Java EE utiliza un modelo distribuido de aplicaciones de varios niveles para


aplicaciones empresariales. La lgica de la aplicacin se divide en componentes, de acuerdo
con la funcin y los diversos componentes de aplicacin que forman una aplicacin Java EE,
se instalan en mquinas diferentes, dependiendo del nivel de varios niveles en el entorno de
Java EE, a la que pertenece el componente de aplicacin:

Client-tier se ejecuta en la mquina cliente.


Web-tier se ejecuta en el servidor Java EE.
Business-tier se ejecuta en el servidor Java EE.
Enterprise Information System (EIS-tier) software se ejecuta en el servidor EIS.

Contexto de las aplicaciones Web

5.

Arquitectura

Java EE Server: es la porcin runtime de un producto Java EE. Un servidor Java EE


proporciona contenedores de EJB y Web.
Enterprise JavaBeans (EJB) Container: administra la ejecucin de los beans
empresariales para aplicaciones Java EE. Los beans empresariales y sus contenedores
se ejecutan sobre servidores Java EE.
Web Container: administra la ejecucin de las pginas JSP y Java Servlets que son
componentes para aplicaciones de Java EE. Los componentes web y sus contenedores
se ejecutan en el servidor Java EE.
Application Client Container: administra la ejecucin de los componentes de cliente de
aplicaciones. La solicitud de los clientes y sus contenedores, se ejecutan en el cliente.
Applet Container: administra la ejecucin de applets. Consiste de un navegador web y
Java Plug-in, para ejecutarse en el cliente.

La arquitectura de un servidor de aplicaciones incluye una serie de subsistemas:


-

Servidor HTTP (tambin denominado servidor web o servidor de pginas). Por


ejemplo, el servidor Apache.
Contenedor de aplicaciones o contenedor Servlet/JSP. Por ejemplo, Tomcat
(que incluye el servicio anterior sobre pginas).
Contenedor Enterprise Java Beans, el cual contiene aplicativos Java de
interaccin con bases de datos o sistemas empresariales. Un ejemplo es JBoss que
contiene a los anteriores (servidor de pginas web y contenedor de aplicaciones
web).

Contexto de las aplicaciones Web

10

El lenguaje bsico de interconexin es el protocolo http (Hypertext Transfer Protocol), el


cual es un protocolo de aplicacin, generalmente implementado sobre TCP/IP. Adems, es
un protocolo sin estado basado en solicitudes (request) y respuestas (response), que
usa por defecto, el puerto 8080.
"Basado en peticiones y respuestas", significa que el cliente (por ejemplo, un
navegador) inicia siempre la conexin (por ejemplo, para pedir una pgina). No hay
posibilidad de que el servidor realice una llamada de respuesta al cliente (retrollamada).
El servidor ofrece la respuesta (la pgina) y cierra la conexin. En la siguiente peticin
del cliente, se abre una conexin y el ciclo vuelve a empezar: el servidor devuelve el
recurso y cierra conexin.
"Sin estado", el servidor cierra la conexin una vez realizada la respuesta. No se
mantienen los datos asociados a la conexin. Ms adelante se ver que hay una forma
de persistencia de datos asociada a la "sesin".