SlideShare una empresa de Scribd logo
Servidor

APACHE TOMCAT
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
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/
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
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
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/
Introducción

Instalación y ejecución
    Instalar Java
    Descargar http://tomcat.apache.org/download-60.cgi
    Descomprimir Tomcat
    Arrancar ./startup.sh
    Parar ./shutdown.sh
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
Introducción

Tomcat Manager
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
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
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ó.
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.
Servlets




Ejemplo de Servlet
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.
JSPs

Sintaxis - Variables Implícitas
    pageContext: javax.servlet.jsp.PageContext
    request: javax.servlet.http.HttpServletRequest
    response: javax.servlet.http.HttpServletResponse
    session: javax.servlet.http.HttpSession
    config: javax.servlet.ServletConfig
    application: javax.servlet.ServletContext
JSPs

Sintaxis - Variables Implícitas
    out: javax.servlet.jsp.JspWriter
    page: java.lang.Object
    exception: java.lang.Exception
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" %>
JSPs

Sintaxis - Directivas
    page: Especifica atributos relacionados con la
   página a procesar. Los atributos son:
    • import: <%@ page import="class; class" %>
    • session: <%@ page session="false" %>
    • contentType: <%@ page contentType="class;
    class" %>
    • buffer: <%@ page buffer="12KB" %>
    • errorPage: <%@ page
    errorPage="/path_to_error_page" %>
    • isErrorPage: <%@ page isErrorPage="true" %>
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%>
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).
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.
JSPs




Ejemplo de JSP
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
JavaBeans




Ejemplo de JavaBean
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.
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.
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.
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.
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.
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.
Servicios web

Esquema general
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.
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/
Servicios web




      Ejemplo
WS + Axis2 + Tomcat6
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/
Servicios web




Instalar SoapUI
Probar un WS
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.
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.
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
Java Web Start - JNLP




   Ejecutar
aplicación JNLP
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/
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.
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
APACHE TOMCAT


     FIN
                       Iker Canarias
           iker.canarias@gmail.com

Más contenido relacionado

PDF
Introduction to Struts 1.3
PPTX
Jlex y cup en java
PPT
Prototipos
PDF
Fundamentos de Pruebas de Software - Capítulo 1
PPSX
Reporte Java con JasperReport
DOCX
AF3-Investigación sobre SQA V1.docx
PPTX
Ventajas y desventajas de los servidores apache y IIS
Introduction to Struts 1.3
Jlex y cup en java
Prototipos
Fundamentos de Pruebas de Software - Capítulo 1
Reporte Java con JasperReport
AF3-Investigación sobre SQA V1.docx
Ventajas y desventajas de los servidores apache y IIS

Destacado (20)

PDF
Introducción a JBoss
PDF
Subversion - buenas prácticas
PPT
Tomcat configuration
PDF
Glassfish
PDF
Manual Jboss Server,Creación de Proyecto en Eclipse
PPTX
Servlets
PPTX
Ventajas y desventajas de los servidores apache y IIS
PDF
Tomcat
PPTX
PDF
Pasos para Instalar MySQL server
PDF
Servlet Hola Mundo con Eclipse y Tomcat
PDF
Yakaré - All New Very Cool
PDF
Fraiche / Listados disponibles 2017
PDF
Jean-Paul Sartre - Qu'est-ce que la Litterature
DOCX
Psico tsc el aparato psíquico 2
PPTX
¿ Compras lo que quieres ?
PPTX
Tuto openoffice.0rgwriter
PPT
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
PDF
Adondefueronapredicarlosemisarios
ODP
Presentation du CDI
Introducción a JBoss
Subversion - buenas prácticas
Tomcat configuration
Glassfish
Manual Jboss Server,Creación de Proyecto en Eclipse
Servlets
Ventajas y desventajas de los servidores apache y IIS
Tomcat
Pasos para Instalar MySQL server
Servlet Hola Mundo con Eclipse y Tomcat
Yakaré - All New Very Cool
Fraiche / Listados disponibles 2017
Jean-Paul Sartre - Qu'est-ce que la Litterature
Psico tsc el aparato psíquico 2
¿ Compras lo que quieres ?
Tuto openoffice.0rgwriter
Brice MOURER, MAGIC GARDEN AGENCY (PARIS 2.0, Sept 2009)
Adondefueronapredicarlosemisarios
Presentation du CDI
Publicidad

Similar a Introducción a Tomcat (20)

PPT
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
PDF
20001215 Programación de Servlets y WML
PPTX
Charla
PDF
SERVLET BASICS
PDF
Introducción al desarrollo de aplicaciones web en Java
PPT
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
PDF
[ES] Introdución al desarrollo de aplicaciones web en java
PDF
Programacion web java
PPTX
Jsp(java server pages)
PDF
Eclipse
PPTX
Java Web - Servlet
PPTX
Servlets exposicion
PDF
[ES] Introducción a las Aplicaciones Web con Java
PPTX
servlets
PDF
Java servlet
PDF
Serlets y jsp prev
PDF
Serlets y jsp pre
PDF
PDF
Sesion06 apuntes
PPT
Programación en Internet
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
20001215 Programación de Servlets y WML
Charla
SERVLET BASICS
Introducción al desarrollo de aplicaciones web en Java
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
[ES] Introdución al desarrollo de aplicaciones web en java
Programacion web java
Jsp(java server pages)
Eclipse
Java Web - Servlet
Servlets exposicion
[ES] Introducción a las Aplicaciones Web con Java
servlets
Java servlet
Serlets y jsp prev
Serlets y jsp pre
Sesion06 apuntes
Programación en Internet
Publicidad

Más de Iker Canarias (9)

PDF
Patrones de diseño de software
PDF
Breve introducción a Apache Ant
PDF
Introducción a JUnit
PDF
Integración de aplicaciones Java
PDF
Frameworks J2EE
PDF
Persistencia de datos en Java
PDF
Introducción a JEE
PDF
Buenas prácticas para la construcción de software
PDF
Introducción a Servidor HTTP Apache
Patrones de diseño de software
Breve introducción a Apache Ant
Introducción a JUnit
Integración de aplicaciones Java
Frameworks J2EE
Persistencia de datos en Java
Introducción a JEE
Buenas prácticas para la construcción de software
Introducción a Servidor HTTP Apache

Introducción a Tomcat

  • 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/
  • 7. Introducción Instalación y ejecución  Instalar Java  Descargar http://tomcat.apache.org/download-60.cgi  Descomprimir Tomcat  Arrancar ./startup.sh  Parar ./shutdown.sh
  • 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.
  • 16. JSPs Sintaxis - Variables Implícitas  pageContext: javax.servlet.jsp.PageContext  request: javax.servlet.http.HttpServletRequest  response: javax.servlet.http.HttpServletResponse  session: javax.servlet.http.HttpSession  config: javax.servlet.ServletConfig  application: javax.servlet.ServletContext
  • 17. JSPs Sintaxis - Variables Implícitas  out: javax.servlet.jsp.JspWriter  page: java.lang.Object  exception: java.lang.Exception
  • 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" %>
  • 19. JSPs Sintaxis - Directivas  page: Especifica atributos relacionados con la página a procesar. Los atributos son: • import: <%@ page import="class; class" %> • session: <%@ page session="false" %> • contentType: <%@ page contentType="class; class" %> • buffer: <%@ page buffer="12KB" %> • errorPage: <%@ page errorPage="/path_to_error_page" %> • isErrorPage: <%@ page isErrorPage="true" %>
  • 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/
  • 35. Servicios web Ejemplo WS + Axis2 + Tomcat6
  • 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
  • 41. Java Web Start - JNLP Ejecutar aplicación JNLP
  • 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