Contexto de las aplicaciones Web
Objetivo: Al Objetivo: Al finalizar el capítulo, el alumno
Comprende Comprende el contexto de desarrollo y ejecución de las aplicaciones aplicac iones Web.
Temas: 1.
Servidores de aplicaciones Web
2.
Empaquetamiento Web Application
3.
Estructura Estructura de carpetas car petas de Tomcat
4.
Overview Overview de d e Java EE
5.
Arquitectu Arquitectura ra
P rograma rograma J ava ava Web Web Application A pplication Developer Developer
Contexto de las aplicaciones Web
1.
2
Servidores de aplicaciones aplicaci ones Web
En Java, el término servidor de aplicaciones web hace referencia a un servidor de aplicaciones Java EE. EE. Entre los servidores de aplicación Java EE privativos más conocidos se encuentran encuentran W ebLogic ebLogic de Oracle (antes BEA Systems) Systems) y WebSphere de IBM. EAServer de de Sybase Inc. es también conocido por ofrecer soporte a otros lenguajes diferente s a Java, como PowerBuilder. Entre los servidores de aplicaciones libres se encuentran JOnAS del consorcio ObjectWeb, JBoss AS de JBoss (división 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 GlassFish de Oracle. Tomca Tomcatt no no es un un servidor de aplicaciones, aplicac iones, es solamente un contenedor de servlets. Sin embargo, hoy en día, Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad. Java EE provee estándares 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 aplicación, como la interfaz de usuario, la lógica de negocio, la gestión de sesiones de usuario o el acceso a bases de datos remotas. La portabilidad de Java también ha permitido que los servidores de aplicación Java EE se encuentren disponibles sobre una gran variedad de plataformas como Unix, Microsoft Windows y GNU/Linux.
Contexto de las aplicaciones Web
3
Los servidores de aplicaciones web también incluyen middleware (o software de conectividad) que les permite intercomunicarse con variados servicios para efectos de confiabilidad, seguridad, no-repudio, etc. Los servidores de aplicación también brindan a los desarrolladores una Interfaz para Programación de Aplicaciones (API), de tal manera que no tengan que preocuparse por el sistema operativo o por la gran cantidad de interfaces requeridas en una aplicación web. Los servidores de aplicación también brindan soporte a una gran variedad de estándares, tales como HTML, XML, IIOP, JDBC, SSL, etc., que les permiten su funcionamiento en ambientes web (como Internet) y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos. Un ejemplo común del uso de serv ser vidores de aplicac ión (y de sus componentes) son los portales de Internet, que permiten a las empresas la gestión y divulgación de su información, y un punto único de entrada a los usuarios internos y externos. Teniendo como base un servidor de aplicación, dichos portales permiten tener acceso a información y servicios (como servicios Web) de manera segura y transparente desde cualquier dispositivo.
La información anterior está basada en el siguiente enlace: http://es.wikipedia.org
Contexto de las aplicaciones Web
2.
4
Empaquetamiento Web Applicat Ap plication ion
El desarrollo de una aplicación web con Java conlleva a la creación final de un archivo WAR (W eb Application Archive) que empaquetará, como un archivo ZIP, todos los documentos de la aplicación web, y es este archivo WAR, WAR, el que se colgará colgará en el servidor de aplicaciones aplicac iones web. web. Esto facilita y simplifica el despliegue de la aplicación web. Además, no permite el acceso entre aplicaciones web distintas (aunque se ejecuten en el mismo servidor). Hasta la versión anterior a la 7 de Tomcat, Tomcat, el e l archivo web.xml era web.xml era obligatorio en una aplicación web. Sin embargo, embargo, a partir de la versión 7 de Tomcat es te archivo es opcional. La carpeta WEB-INF es WEB-INF es obligatoria en una aplicación web y contiene al archivo web.xml si web.xml si es que se ha decidido su uso, la carpeta classes donde classes donde van todos los archivos JAVA compilados (CLASS), la carpeta lib que lib que contiene todas las bibliotecas que la aplicación necesita (APIs, drivers, frameworks y otros) y opcionalmente, la carpeta TLD TLD (Tag Libray Descriptor) para la biblioteca de tags desarrolladas en la aplicación. Por otro lado, al mismo nivel que la carpeta WEB-INF W EB-INF estarán estarán los JSPs J SPs (JavaSer (JavaSer ver Pages), HTML, JS (JavaScript), CSS (Cascading Style Sheet), imágenes y otros recursos requeridos por la aplicación organizados en carpetas que los agrupen. Básicamente así debería estar estructurada una aplicación web; sin embargo, se pueden considerar carpetas adicionales dentro de las carpetas a fin de organizar los documentos, sobre todo cuando la aplicación es extensa.
Contexto de las aplicaciones Web
3.
5
Estructura Estructu ra de carpetas de Tom To mcat
Tomcat Tomcat es un servidor con soporte de servlets y JSPs. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor Web Apache. Tomcat puede Tomcat puede funcionar como servidor Web por sí mismo. En sus inicios, existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. Hoy en día, ya no existe esa percepción y Tomcat es Tomcat es usado como servidor Web autónomo en entornos con alto nivel ni vel de de tráfico tráfi co y alta disponibilidad. disponibilidad. Dado que Tomcat fue Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.
Estructura Estructura de carpetas carpetas de Tomcat La jerarquía de carpetas de instalación de Tomcat incluye lo siguientes:
bin bin Arranque, Arranque, cierre, cierre, y otros otros script scripts s y ejecuta ejecutables bles
conf Ficheros XML y properties pr operties para la configuraci ón de Tomcat Tomcat
Contexto de las aplicaciones Web
lib lib Bibliotecas y clases comunes que pueden utilizar Catalina y las aplicaciones Web.
logs Logs de Catalina y de las aplicaciones
temp Archivos Archivos temporales temporales
webapps Directorio que contiene las aplicaciones Web
work Almacenam Almacenamiento iento temporal temporal de de ficheros y directorios directorios
6
Contexto de las aplicaciones Web
7
Laboratorio 1.1
Generación de un proyecto Web básico
Laboratorio 1.1
Generación Genera ción de un proyecto Web básico
División Divisió n de Alta Tecnología
Genere una pantalla de ingreso de datos como la siguiente:
Contexto de las aplicaciones Web
8
Los datos los debe recibir un servlet que pondrá dicha infor mación mación en la sesión del proyecto para que otro documento JSP los pueda pueda leer y mostrar mostrar..
Contexto de las aplicaciones Web
4.
9
Definición Java EE
Java Enterprise Edition o Java EE EE es una plataforma de programación para desarrollar y ejecutar software de aplicac aplicaciones iones en el lenguaje de programación Java. Permite utilizar arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación. Similar a otras especificaciones del Java Community Process, Java EE es también considerada informalmente como un estándar 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 cómo coordinarlos. Java EE también configura algunas especificaciones únicas para Java EE para componentes. Estas incluyen Enterprise JavaBeans, servlets, portlets (siguiendo la especificación de Portlets Java), JavaServer Pages y varias tecnologías de servicios web. Ello permite al desarrollador crear una Aplicación de Empresa portable entre plataformas y escalable, a la vez que integrable con tecnologías anteriores. Otros beneficios añadidos son, por ejemplo, que el servidor de aplicaciones puede manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los componentes desplegados, de tal modo que los desarrolladores puedan concentrarse más en la lógica de negocio de los componentes, en lugar de enfocarse en tareas de mantenimiento de bajo nivel.
Contexto de las aplicaciones Web
10
La plataforma Java EE utiliza un modelo distribuido de aplicaciones de varios niveles para aplicaciones empresariales. La lógica de la aplicación se divide en componentes de acuerdo con la función, y los diversos componentes de aplicación que forman una aplicación Java EE, se instalan en máquinas diferentes dependiendo del nivel de varios niveles en el entorno de Java EE a la que pertenece el componente de aplicación como se puede apreciar en el cuadro siguiente:
Client-tier se se ejecutan en la máquina cliente. Web-tier se se ejecutan en el servidor Java EE. Business-tier se se ejecutan en el servidor Java EE. Enterpri Enterprise se Information System ( EIS-tier ) EIS-tier ) software se ejecuta en el servidor EIS.
Contexto de las aplicaciones Web
5.
11
Arquitectura
Java EE Server Es la porc ión runtime runtime de un producto Ja va EE. Un servidor J ava ava EE proporci ona contenedores de EJB y Web.
Enterprise JavaBeans JavaBeans (EJB) Container Administra Administra la ejecución de los beans beans empresariale empresariales s para aplicaciones aplicaciones Java Java EE. Los beans empresari empresariales ales y sus contenedores se ejecutan sobre servidores Java EE.
Web Container Administra Administra la ejecución de las p áginas áginas JSP J SP y Java Java Servlets que son component componentes es par a aplicaciones de Java EE. Los componentes Web y sus contenedores se ejecutan en el servidor Java EE.
Application Client Container Administra Administra la ejecu e jecución ción de los componente componentes s de cliente de aplicaciones. aplicaciones. La solicitud solicitud de los clientes y sus contenedores contenedores se ejecutan en el cliente.
Applet Container Administra Administra la ejecución de applets. applets. Consiste de un n avegador avegador Web W eb y Java Java Plug-in Plug- in para ejecutarse en el cliente.
Contexto de las aplicaciones Web
12
La arquitectura de un servidor de aplicaciones incluye una serie de subsistemas.
Servidor HTTP (también HTTP (también denominado servidor Web o servidor de páginas). Un ejemplo, el servidor Apache. Contenedor de aplicaciones o contenedor Servlet/JSP. 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 aplicaciones Web).
El lenguaje básico de interconexión es el protocolo http (Hypertext Transfer Protocol). Es un protocolo de aplicación, generalmente implementado sobre TCP/IP. Es un protocolo sin estado basado en solicitudes (request) y respuestas (response), (response), que usa por defecto el puerto 8080.
"Basado en peticiones y respuestas", 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 ser serv vidor realice una llamada de respuesta al cliente (retrollamada). (r etrollamada). El servidor ofrece la respuesta (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", estado", el servidor cierra la conexión una vez realizada la respuesta. No se mantienen los datos asociados a la conexión. Más adelante se verá que hay una forma de persistenci persistencia a de datos datos asociada a la "sesión".
Contexto de las aplicaciones Web
13
Laboratorio 1.2
Publicación Publicación y e jecución directamente directamente desde el Tomcat
Publique y ejecute el proyecto generado en el laboratorio anterior directamente desde el Tomcat.