Introducción al servidor Tomcat.Resumen de conceptos básicos, instalación y configuración. Se repasan conceptos sobre JSPs, JavaBeans, Servicios web sobre Axis2, JNLP, etc.
2. Introducción
Conceptos básicos
Contenedor de servlets (Catalina) desarrollado bajo
el proyecto Jakarta en Apache Software Foundation.
Implementa las especificaciones de los servlets y de
JavaServer Pages (JSP) de Sun Microsystems.
Tomcat no es un servidor de aplicaciones (Jboss)
Compilador Jasper: compila JSPs → Servlets
Multiplataforma
3. Introducción
Conceptos básicos
Creado por Duncan Davidson.
Tomcat (gato) = pretendiendo representar la
capacidad de cuidarse por sí mismo, independiente.
Última versión (11/2011): Tomcat 7.x.
La versiones más extendidas es la 5.x y la 6.
Vamos a usar Tomcat6.
http://tomcat.apache.org/
4. Introducción
Conceptos básicos
Tomcat 6.x
• Implementa Servlet 2.5 y JSP 2.1
• Soporte para Unified Expression Language 2.1
• Java SE 5.0 y posteriores
• Soporte para Comet → CometProcessor
Suele utilizarse con Apache HTTP Web Server
5. Introducción
Estructura de directorios
bin - arranque, cierre, y otros scripts y ejecutables
common - clases comunes que pueden utilizar
Catalina y las aplicaciones web
conf - ficheros XML y los correspondientes DTD
para la configuración de Tomcat
logs - logs de Catalina y de las aplicaciones
server - clases utilizadas solamente por Catalina
6. Introducción
Estructura de directorios
shared - clases compartidas por todas las
aplicaciones web
webapps - directorio que contiene las aplicaciones
web
work - almacenamiento temporal de ficheros y
directorios
Instalado en: /usr/local/tomcat6/
8. Introducción
Instalación y ejecución
Tomcat por defecto estucha en los puertos:
• 8080 (puerto por defecto de Tomcat)
• 8005 (puerto para apagar Tomcat)
• 8009 (conector AJP)
Página principal http://localhost:8080
10. Configuración
Ficheros de configuración
/usr/local/tomcat6/conf/server.xml - Archivo principal
de configuración
/usr/local/tomcat6/tomcat-users.xml - Permite crear
usuarios/contraseñas y roles.
/usr/local/tomcat6/conf/web.xml – Valores por
defecto para todas las aplicaciones.
/usr/local/tomcat6/conf/catalina.properties - Modificar
la estructura de directorios.
/usr/local/tomcat6/conf/catalina.policy – Políticas de
seguridad
11. Configuración
Ficheros de configuración
/usr/local/tomcat6/bin/catalina.sh – Parámetros del
arranque.
/usr/local/tomcat6/bin/startup.sh – Script arranque.
/usr/local/tomcat6/bin/shutdown.sh – Script parada.
/usr/local/tomcat6/bin/version.sh – Datos de la
versión.
Ejecutar ./version.sh
12. Servlets
Conceptos básicos
Objetos que corren dentro de un contenedor de
servlets (ej: Tomcat) y extienden su funcionalidad.
Uso común: generar páginas web dinámicas.
Implementa la interfaz javax.servlet.Servlet o
hereda alguna de las clases para un protocolo
específico (ej: javax.servlet.HttpServlet).
Implementando esta interfaz: interpreta los objetos
HttpServletRequest y HttpServletResponse.
Contienen información de la página que lo invocó.
13. Servlets
Ciclo de vida
1. El cliente solicita una petición a un servidor vía URL.
2. El servidor recibe la petición.
2.1. La primera vez se llama al método init().
2.2. Cualquier petición se convierte en un hilo.
Puede manejar múltiples peticiones de clientes.
3. Se llama al método service() para procesar la
petición devolviendo el resultado al cliente.
4. Cuando se apaga el motor de un Servlet se llama al
método destroy(), destruye y libera recursos.
15. JSPs
Conceptos básicos
JavaServer Pages (JSP): tecnología Java que
permite generar contenido dinámico para web.
Acaban siendo compiladas como Servetls.
Permiten la utilización de código Java mediante
Scriptlets.
Es posible utilizar algunas acciones JSP mediante
etiquetas.
18. JSPs
Sintaxis - Directivas
Etiquetas que generan información para ser
utilizada por el motor de JSP. No producen una
salida visible al usuario, configura cómo se ejecutará
la página JSP. <%@ directiva atributo="valor" %>
include: Incluye el contenido de un fichero en la
página: <%@ include file="cabecera.html" %>
taglib: Importa bibliotecas de etiquetas (Tag
Libraries) <%@ taglib uri="/tags/struts-html"
prefix="html" %>
20. JSPs
Scriptlets
Código Java incrustado entre los elementos
estáticos de la página. <% ... código Java ... %>
Permiten declarar variables, funciones y datos
estáticos. <%! int maxAlumnosClase = 30; %>
Las expresiones se evalúan dentro de la servlet. No
deben acabar en ";" <%= maxAlumnosClase + 1%>
21. JSPs
Etiquetas JSP
Funcionalidad a nivel de la página de una manera
muy simple:
• <jsp:forward>, redirige la request a otra URL
• <jsp:include>, incluye el texto de un fichero
dentro de la página
• <jsp:plugin>, descarga un plugin de Java (una
applet o un Bean).
22. JSPs
Etiquetas JSP
Permite manipular componentes JavaBean sin
conocimientos de Java.
• <jsp:useBean>, permite manipular un Bean (si
no existe, se creará el Bean), especificando su
ámbito (scope), la clase y el tipo.
• <jsp:getProperty>, obtiene la propiedad
especificada de un bean previamente declarado y
la escribe en el objeto response.
• <jsp:setProperty>, establece el valor de una
propiedad de un bean previamente declarado.
24. JavaBeans
Conceptos básicos
Clase JavaBean debe obedecer ciertas
convenciones:
• Debe tener un constructor sin argumentos.
• Sus propiedades deben ser accesibles mediante
métodos get y set que siguen una convención de
nomenclatura estándar.
• Debe ser serializable
26. Servicios web
Conceptos básicos
Es un conjunto de protocolos y estándares que
sirven para intercambiar datos entre aplicaciones.
Multiplataforma: Distintas plataformas se comunican.
La interoperabilidad se consigue mediante la
adopción de estándares abierto
OASIS y W3C son los comités responsables de la
arquitectura y reglamentación de los servicios Web.
27. Servicios web
Estándares empleados
Web Services Protocol Stack: Conjunto de servicios
y protocolos de los servicios Web.
XML: Datos de intercambio.
SOAP (Simple Object Access Protocol) o XML-RPC
(XML Remote Procedure Call): Protocolos sobre los
que se establece el intercambio.
WSDL (Web Services Description Language): Es el
lenguaje de la interfaz pública para los servicios Web.
28. Servicios web
Estándares empleados
UDDI (Universal Description, Discovery and
Integration): Permite comprobar qué servicios web
están disponibles.
WS-Security (Web Service Security): Protocolo de
seguridad.
Otros protocolos: Los XML también pueden enviarse
de una aplicación a otra mediante protocolos
normales como HTTP, FTP, o SMTP.
29. Servicios web
Ventajas
Interoperabilidad entre aplicaciones y plataformas.
Fomentan los estándares y protocolos.
Al apoyarse en HTTP, se pueden aprovecharse la
seguridad de firewall sin necesidad de cambiar las
reglas de filtrado.
Integración de servicios ubicados lejos
geográficamente.
Especificaciones gestionadas por organización
abierta (W3C). No hay intereses de fabricantes.
30. Servicios web
Inconvenientes
Problemas al realizar transacciones.
Rendimiento bajo comparado con otros modelos de
computación distribuida como RMI (Remote Method
Invocation), CORBA o DCOM (Distributed Component
Object Model). Es uno de los inconvenientes
derivados de adoptar un formato basado en texto.
Al apoyarse en HTTP, pueden esquivar medidas de
seguridad basadas en firewall cuyas reglas tratan de
bloquear comunicación entre programas a ambos
lados de la barrera.
31. Servicios web
¿Porqué crear servicios web?
Se basan en HTTP sobre TCP en el puerto 80. Los
firewalls cierran casi todos los puertos menos el 80.
Antes de SOAP -> malas interfaces para acceder a
las funcionalidades de otros ordenadores. (ad hoc,
EDI, RPC, etc.)
Gran independencia entre la aplicación que usa el
servicio Web y el propio servicio. Cambios a lo largo
del tiempo en uno no deben afectar al otro.
33. Servicios web
Esquema general
Se basan en HTTP sobre TCP en el puerto 80. Los
firewalls cierran casi todos los puertos menos el 80.
Antes de SOAP -> malas interfaces para acceder a
las funcionalidades de otros ordenadores. (ad hoc,
EDI, RPC, etc.)
Gran independencia entre la aplicación que usa el
servicio Web y el propio servicio. Cambios a lo largo
del tiempo en uno no deben afectar al otro.
34. Servicios web
AXIS2 (WS en Tomcat)
Axis2 Es un motor para servicios Web.
La implementación está disponible para Java y C.
Se distribuyen librerías para servicios web y una
aplicación (axis2.war) para desplegar y gestionar.
Los servicios web se empaquetan como
aplicaciones “myWebService.aar”.
http://axis.apache.org/axis2/java/core/
36. Servicios web
SOAPUI
Herramienta Open Source de testing para WS.
Existe también una versión Pro.
Multiplataforma.
Intuitiva y de fácil uso e instalación.
http://www.soapui.org/
38. Java Web Start - JNLP
Conceptos básicos
Java Networking Launching Protocol: especificación
usada por Java Web Start.
Permite tener centralizado en un host un programa,
evitando problemas de distribución e instalación.
Simplemente se accede al JNLP y se descarga,
instala y ejecuta de modo transparente al usuario.
javaws NO usa applets. Descarga aplicaciones java
normales. Único requisito: JRE >= versión 1.4.
39. Java Web Start - JNLP
Conceptos básicos
Al instalar cualquier aplicación, normalmente se dan
una serie de pasos:
• Se obtiene de internet/medio extraíble (CD/USB...)
• Se instala en el ordenador
• Se ejecuta
El programa javaws (Java Web Start) permite hacer
los pasos anteriores de un modo más fácil y
transparente.
40. Java Web Start - JNLP
Conceptos básicos
Cualquier enlace JNLP pide autorización al usuario.
Las aplicaciones (JARs) deben estar firmadas.
Ficheros JNLP = Ficheros XML que siguen la
especificación usada por Java Web Start:
• Cabecera: <?xml version="1.0" encoding="CODIFICACIÓN"?>
• Ruta predeterminada: <jnlp spec="1.0+"
codebase="http://URL/directorio_programa" href="JNLP.jnlp">
• Uno o varios TAG information
42. Apache Struts
Conceptos básicos
Framework Open Source para el desarrollo de
aplicaciones Web bajo el patrón MVC (Modelo, vistas
y controlador) y J2EE.
Permite reducir el tiempo de desarrollo.
Extremadamente popular y extendido.
Versión actual: (11/2011) Struts 2.2.3.1
Versión más usada: Struts 1 :(
http://struts.apache.org/
43. Apache Struts
MVC - Modelo, vistas y controlador
Arquitectura que separa los datos de una aplicación,
la interfaz de usuario, y la lógica de control
• Vista: JSPs, HTML, etc.
• Modelo: Sistema de Gestión de Base de Datos,
la lógica de negocio, etc.
• Controlador: Responsable de recibir los
eventos de entrada desde la vista.
44. Apache ANT
Conceptos básicos
Herramienta para la realización de tareas mecánicas
y repetitivas: compilación, construcción de la
aplicación (build), limpieza, etc.
Similar a Make pero desarrollado en lenguaje Java.
Se basa en archivos de configuración XML y
clases/librerías Java.
Multiplataforma.
http://ant.apache.org/index.html
45. APACHE TOMCAT
FIN
Iker Canarias
iker.canarias@gmail.com