Integración de aplicaciones
           Java
Introducción

Integración de aplicaciones
 Necesidad de integrar entornos.
 Aplicaciones desarrolladas con diferentes
tecnologías, frameworks, etc. incluso lenguajes.
 Reutilización de funcionalidades.
 Varias alternativas:
    • JAVA XML APIs
    • JMS
    • JBI
XML
XML

Conceptos básicos
 XML hace los datos portables.
 APIs Java para XML hacen fácil el uso del XML.
 Se consigue: Portabilidad de datos, portabilidad de
codigo y facilidad de uso.
 XML ayuda a la integración de aplicaciones y
plataformas.
XML

Qué es XML
 XML = eXtensible Markup Language
 Estándar industrial para representar datos,
independiente del sistema.
 Las etiquetas XML especifican el contenido y la
estructura de los datos.
 Extensibilidad: podemos crear las etiquetas que
necesitemos para un tipo de documento en particular.
XML

DTD
 Document Type Definition.
Lenguaje que permite definir nuestros propios tipos de
documentos XML.
 Sintaxis no basada en XML.
XML

XML esquema
 Lenguaje de esquema utilizado para describir la
estructura
 Desarrollado por World Wide Web Consortium (W3C)
 Describe la estructura de un conjunto de documentos
XML.
 Es un lenguaje de esquema escrito en XML.
 Usualmente extensión .xsd (XML Schema Definition).
XML

XML esquema
 Sintaxis basada en XML.
 XML Schema supera muchas de las limitaciones y
debilidades de los DTDs.
 Diseñado alrededor de namespaces ≈ package.
 Soporta tipos de datos típicos de los lenguajes de
programación.
 Permite procesado con herramientas capaces de
procesar XML.
 Mayor capacidad expresiva (sobre todo en tipos).
XML

XML esquema vs DTD
 Ejemplo de DTD: aquí
 Declaraciones de elementos: ELEMENT.
 Declaraciones de atributos de un elemento: ATTLIST.
 Cardinalidad (elementos opcionales, con 0 o más
apariciones, ...) y ordinalidad (secuencia de aparición)
de los elementos.
 Valores de atributos implícitos (atributos opcionales),
requeridos (atributos obligatorios) y por defecto.
XML

XML esquema vs DTD
 Ejemplo de DTD: aquí
 Valores de atributo enumerados (el atributo sólo
puede tomar un valor de entre un conjunto finito).
 Atributos de tipo ID (caracterizan unívocamente a un
elemento en un documento y sólo pueden tomar
valores que sean identificadores XML válidos)
XML

XML esquema vs DTD
 Ejemplo de XML Schema: aquí.
 Sintaxis XML.
 Definiciones de tipos y uso de tipos básicos:
XMLSchema tiene un tipado más fuerte que DTD.
 Definiciones de elementos complejos, compuestos
por otros.
 Declaraciones de elementos: xsd:element.
 Declaraciones de atributos de un elemento:
xsd:attribute.
XML

XML esquema vs DTD
 Ejemplo de XML Schema: aquí.
 Cardinalidad (elementos opcionales, con 0 o más
apariciones, ...) y ordinalidad (secuencia de aparición)
de los elementos.
 Valores de atributos implícitos (atributos opcionales),
requeridos (atributos obligatorios) y por defecto.
 Mayor complejidad y menor legibilidad que DTD.
WSDL
WSDL

Conceptos básicos
    WSDL: Web Services Description Language.
    XML que se utiliza para describir servicios Web.
    Describe la interfaz pública de los servicios Web.
    El cliente sólo necesita WSDL para hacer llamadas a
   los métodos disponibles en el WS.
    Sistema portable.
    Estandarizado por el W3C.
WSDL

 Tipos primitivos




(*) El mapping por defecto para byte[ ] es xsd:base64Binary. Los datos pasados
como byte[ ] se entienden como strings codificados en formato base64. Un
formato alternativo es xsd:hexBinary.
WSDL

Clases estándar
WSDL

Proceso de desarrollo
JAVA XML APIs
JAVA XML APIs

Listado de APIs
 JAXP: Java API for XML Processing.
 JAXM: Java API for XML Messaging.
 JAX-RPC: Java API for XML-based RPC.
 JAX-WS: Java API for XML Web Services.
 JAXR: Java API for XML Registries.
 JAX-RS: Java API for RESTful Web Services.
 JAXB: Java Architecture for XML Binding, or JAXB.
 StAX: STreaming XML processing, or StAX.
JAXP

Conceptos básicos
 Provee la posibilidad de validar, parsear, transformar
y hacer querys sobre documentos XML.
 Las tres interfaces básicas de parseo son:
    • DOM: Document Object Model parsing interface.
    • SAX: Simple API for XML parsing interface
    • StAX: Streaming API for XML (parte de JDK 6; jar
     separado disponible para JDK 5)
 Además, provee XSLT interface → transformaciones.
JAXP

JAXP - DOM
 Parsea un documento cargándolo en memoria por
completo.
 Todo en memoria → es posible acceder o modificar
cualquier elemento en acceso aleatorio.
 El parser DOM se llama DocumentBuilder.
 Se carga el XML en una estructura con forma de
árbol.
 No recomendado para grandes documentos por el
consumo de memoria.
JAXP

JAXP – DOM (JDOM)
 Biblioteca de código abierto para manipulaciones de
datos XML optimizados para Java.
 DOM lenguaje neutral → JDOM específicamente para
usarse con Java.
 Pensada especialmente para Java y por tanto mejor
integrada en este lenguaje.
 Facilidad de uso (para programadores Java).
                  http://jdom.org/
JAXP



EJEMPLOS JAXP - DOM
JAXP

JAXP - SAX
 Procesa la información por eventos.
 Mejor que DOM para manipular archivos grandes, ya
que no genera un árbol en memoria.
 Se recorre XML de manera secuencial.
 Permite acceso a datos pero no modificarlos.
 El parseo de SAX se puede detener en cualquier
momento.
JAXP



EJEMPLOS JAXP - SAX
JAXM

Conceptos básicos
    Provee una manera estándar de enviar XML sobre
   Internet a través de la plataforma Java.
    Se basa en SOAP* 1.1 y SOAP con Attachments.
    API de mensajería de peso ligero para el desarrollo
   de aplicaciones de mensajería de negocios basada en
   XML.
    Soporta tanto mensajes asíncronos como síncronos.


                     * SOAP = Simple Object Access Protocol
JAXM

Desventajas
    JAXM fuerza a los desarrolladores a trabajar
   con los objetos SOAP. JAX-RPC provee un nivel más
   alto.
    JAX-RPC provee un framework basado en WSDL
   que oculta los detalles de SOAP.
    JAXM no usa WSDL → El desarrollador debe
   construir los mensajes “a mano” y enviarlos o
   procesarlos explícitamente.
JAXM

  Obteniendo conexiones
//Conexión punto a punto
SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();
The client can use factory to create a SOAPConnection object.
SOAPConnection con = factory.createConnection();


//Conexión al Messaging Provider
ProviderConnectionFactory pcFactory = ProviderConnectionFactory.newInstance();
ProviderConnection pcCon = pcFactory.createConnection();
JAXM

 Creando un mensaje
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage m = messageFactory.createMessage();


SOAPPart sp = m.getSOAPPart();
SOAPEnvelope envelope = sp.getSOAPEnvelope();
SOAPBody body = envelope.getSOAPBody();
SOAPBodyElement bodyElement = body.addBodyElement(
        envelope.createName("text", "hotitems", "http://hotitems.com/products");
bodyElement.addTextNode("some-xml-text");
JAXM

  Creando un mensaje con DOM
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage m = messageFactory.createMessage();


SOAPPart soapPart = message.getSOAPPart();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("file:///foo.bar/soap.xml");
DOMSource domSource = new DOMSource(doc);
soapPart.setContent(domSource);
JAXM

 Enviando mensaje
SOAPMessage response = soapConnection.call(message, endpoint);


//Usando un Messaging Provider
providerConnection.send(message);
JAXM

Ejemplo mensaje SOAP


     EJEMPLO SOAP
JAXM

JAXM + Otros elementos B2B
JAXM



EJEMPLOS JAXM
JAX-RPC

Conceptos básicos
    Permite invocar Servicios Web conociendo su
   descripción.
    Servicios web se describen mediante WSDL.
    JAX-RPC 2.0 se renombró a JAX-WS 2.0
    JAX-RPC 1 está deprecado con Java EE 6.
    Proporciona compilador de WSDL a Java.
    Proporciona compilador de Java a WSDL.
JAX-RPC

Funcionamiento
  1. Un programa Java invoca un método de un stub
 (objeto local que representa un servicio remoto).
   2. El stub invoca rutinas del JAX-RPC Runtime
 System (RS).
   3. El RS convierte la invocación del método
 remoto en un mensaje SOAP.
   4. El RS transmite el mensaje por HTTP.
JAX-RPC

Funcionamiento
JAX-RPC



EJEMPLOS JAX-RPC
JAX-WS

Conceptos básicos
    API Java para la creación de Web Service.
    Forma parte del estándar J2EE.
    JAX-WS 2.0 reemplaza al API JAX-RPC.
    Usa annotations (Java SE 5) para simplificar el
   desarrollo y el despliegue de los WS y los clientes.
    JAX-WS RI (Reference Implementation): Parte del
   proyecto GlassFish.
    Incluye: Java Architecture for XML Binding (JAXB)
   and SOAP with Attachments API for Java (SAAJ) 1.3.
JAX-WS

JAX-WS Escenario
JAX-WS

JAX-WS vs JAX-RPC
   SOAP 1.2: JAX-RPC y JAX-WS soportan SOAP 1.1.
  JAX-WS también soporta SOAP 1.2.
   Modelo de mapeo de datos: JAX-RPC tiene su
  propio modelo de mapeo de datos. JAX-WS usa JAXB
  para el mapeo de datos.
   MTOM (Message Transmission Optimization
  Mechanism):JAX-WS (mediante JAXB) añade soporte
  para MTOM.
   JAX-RPC vs JAX-WS: 1, 2, 3, 4, 5
JAX-WS

Ejemplo básico
   import javax.jws.WebService;

   @WebService
   public class CircleFunctions {
     public double getArea(double r) {
        return java.lang.Math.PI * (r * r);
      }
     public double getCircumference(double r) {
         return 2 * java.lang.Math.PI * r;
      }
   }
JAX-WS



EJEMPLOS JAX-WS
JAXR

Conceptos básicos
    Proporciona acceso a registros de negocios
   estándars sobre Internet.
    Las implementaciones actuales soportan ebXML
   Registry version 2.0 y UDDI version 2.0.
    Registros de negocios = “páginas amarillas
   electrónicas” que contienen listados de negocios y los
   productos o servicios que los negocios ofrecen.
JAXR

Arquitectura
JAXR

¿Qué es un Registro XML?
    Infrastructura que permite construir, desplegar y
   descubrir servicios web.
    Es una parte neutral que facilita las interacciones
   dinámicas business-to-business (B2B).
    Un registro está disponible para las organizaciones
   como un recurso compartido, a menudo como servicios
   web.
    Tipos: UDDI, ebXML, etc.
JAXR

Uso de registros
JAXR

ebXML
   Electronic Business using eXtensible Markup
  Language (e-business XML or ebXML).
   Basado en estándares XML.
   Apoyado por OASIS y UN/CEFACT.
   Agiliza las relaciones comerciales.
JAXR

ebXML – Escenario sin ebXML
JAXR

ebXML – Escenario con ebXML
JAXR

UDDI - Universal Description Discovery and Integration
     Registro XML que proporciona mecanismos estándar
    para las empresas para describir y publicar sus
    servicios, descubrir otras empresas, e integrarse:
         • Páginas Amarillas: Se registran empresas y los
         servicios que ofrecen.
         • Páginas Blancas: direcciones de trabajo e
         información de contacto.
         • Páginas Verdes: información técnica sobre los
         servicios. Se incluyen detalles técnicos suficientes
         para invocar un servicio determinado.
JAXR

UDDI - APIs
    API de publicación: Métodos para guardar
   información: save_business, save_service,
   save_binding, etc.
    API de investigación: Métodos para consultar el
   registro: find_service, get_businessDetail,
   get_serviceDetail, get_bindingDetail, etc.
JAXR

UDDI – Escenario
JAXR



EJEMPLOS JAXR
JAX-RS

Conceptos básicos
    Permite crear WS siguiendo arquitectura REST
   (Representational State Transfer).
    JAX-RS usa annotations (Java SE 5).
    Las comunicaciones se hace a través de HTTP
   utilizando las operaciones que este protocolo pone a
   disposición: POST, GET, PUT y DELETE.
JAX-RS

REST – Conceptos básicos
    Alternativa a SOAP y a WS basados en WSDL.
    Grandes compañías Web 2.0 están migrando/han
   migrado a REST (Yahoo, Google, Facebook, etc.).
    Los 4 principios de REST:
       • Utiliza los métodos HTTP de manera explícita.
       • No mantiene estado.
       • Expone URIs con forma de directorios.
       • Transfiere XML, JavaScript Object Notation
       (JSON), o ambos.
JAX-RS

REST y HTTP
   Establece una asociación uno-a-uno entre las
  operaciones crear, leer, actualizar y borrar, y los
  métodos HTTP:
      • POST → crear un recurso en el servidor.
      • GET → obtener un recurso.
      • PUT → cambiar el estado de un recurso o
      actualizarlo.
      • DELETE → eliminar un recurso.
JAX-RS

REST y HTTP
JAX-RS

REST – Cuándo usarlo
    Servicios orientados a recursos (la 'R'-EST) públicos,
    Basados en HTTP.
    Usables desde clientes de una aplicación web (los
   llama el navegador del usuario mediante AJAX).
    Con un interfaz muy sencillo (para cargar una lista o
   una tabla).
    Basados principalmente en búsquedas (Google).
    Típico ejemplo: servicio de provincias-municipios.
JAX-RS

Implementaciones de JAX-RS
    Apache CXF: Open source Web service framework.
    Jersey: Implementación de referencia de Sun (now
   Oracle).
    RESTEasy: Implementación de JBoss.
    Restlet: Desarrollado por Jerome Louvel and Dave
   Pawson (pioneros en frameworks REST).
    Apache Wink: Proyecto de la Apache Software
   Foundation.
JAX-RS



EJEMPLOS JAX-RS
JAXB

Conceptos básicos
    Permite mapear clases a XML y viceversa.
    Dos acciones principales:
       • Marshal: Objetos Java → XML.
       • Acceso y actualización de datos.
       • Unmarshal: XML → Objetos Java.
    Es parte de Java SE, una API de la plataforma J2EE
   y parte del Java Web Services Development Pack
   (JWSDP).
    Integración con varios IDEs (p.e. Eclipse).
JAXB

Arquitectura
JAXB

Porqué usar JAXB
    Usa tecnología Java y XML.
    Garantiza datos válidos.
    Es rápida.
    Es fácil de usar.
    Puede restringir datos.
    Es personalizable.
    Es extensible.
JAXB



EJEMPLOS JAXB
JMS
JMS

Conceptos básicos
    Java Message Service (Servicio de mensajes Java).
    Solución Java para el uso de colas de mensajes.
    Estándar de mensajería que permite a aplicaciones
   crear, enviar, recibir y leer mensajes.
    JMS se sitúa como middleware en medio de la
   comunicación de dos aplicaciones.
    Permite comunicación síncrona y asíncrona.
JMS

Escenario de ejemplo
JMS

Ventajas
    No se necesitan conocer (Ips, direcciones, etc.) los
   clientes para que se comuniquen entre sí.
    JMS soporta comunicación punto a punto.
    JMS soporta Publisher/Subscriber.
    Comunicación síncrona y asíncrona.
    Integración entre diferentes plataformas, entornos,
   lenguajes, etc.
JMS

Ejemplos de sistemas de MQ
    WebSphere MQ de IBM (antes MQ*Series)
    Message Queue de Microsoft (MSMQ)
    Java Message Service de Sun (JMS)
    Data Distribution Service del OMG (DDS)
Integración de aplicaciones
            Java

          FIN
                               Iker Canarias
                   iker.canarias@gmail.com

Integración de aplicaciones Java

  • 1.
  • 2.
    Introducción Integración de aplicaciones Necesidad de integrar entornos.  Aplicaciones desarrolladas con diferentes tecnologías, frameworks, etc. incluso lenguajes.  Reutilización de funcionalidades.  Varias alternativas: • JAVA XML APIs • JMS • JBI
  • 3.
  • 4.
    XML Conceptos básicos  XMLhace los datos portables.  APIs Java para XML hacen fácil el uso del XML.  Se consigue: Portabilidad de datos, portabilidad de codigo y facilidad de uso.  XML ayuda a la integración de aplicaciones y plataformas.
  • 5.
    XML Qué es XML XML = eXtensible Markup Language  Estándar industrial para representar datos, independiente del sistema.  Las etiquetas XML especifican el contenido y la estructura de los datos.  Extensibilidad: podemos crear las etiquetas que necesitemos para un tipo de documento en particular.
  • 6.
    XML DTD  Document TypeDefinition. Lenguaje que permite definir nuestros propios tipos de documentos XML.  Sintaxis no basada en XML.
  • 7.
    XML XML esquema  Lenguajede esquema utilizado para describir la estructura  Desarrollado por World Wide Web Consortium (W3C)  Describe la estructura de un conjunto de documentos XML.  Es un lenguaje de esquema escrito en XML.  Usualmente extensión .xsd (XML Schema Definition).
  • 8.
    XML XML esquema  Sintaxisbasada en XML.  XML Schema supera muchas de las limitaciones y debilidades de los DTDs.  Diseñado alrededor de namespaces ≈ package.  Soporta tipos de datos típicos de los lenguajes de programación.  Permite procesado con herramientas capaces de procesar XML.  Mayor capacidad expresiva (sobre todo en tipos).
  • 9.
    XML XML esquema vsDTD  Ejemplo de DTD: aquí  Declaraciones de elementos: ELEMENT.  Declaraciones de atributos de un elemento: ATTLIST.  Cardinalidad (elementos opcionales, con 0 o más apariciones, ...) y ordinalidad (secuencia de aparición) de los elementos.  Valores de atributos implícitos (atributos opcionales), requeridos (atributos obligatorios) y por defecto.
  • 10.
    XML XML esquema vsDTD  Ejemplo de DTD: aquí  Valores de atributo enumerados (el atributo sólo puede tomar un valor de entre un conjunto finito).  Atributos de tipo ID (caracterizan unívocamente a un elemento en un documento y sólo pueden tomar valores que sean identificadores XML válidos)
  • 11.
    XML XML esquema vsDTD  Ejemplo de XML Schema: aquí.  Sintaxis XML.  Definiciones de tipos y uso de tipos básicos: XMLSchema tiene un tipado más fuerte que DTD.  Definiciones de elementos complejos, compuestos por otros.  Declaraciones de elementos: xsd:element.  Declaraciones de atributos de un elemento: xsd:attribute.
  • 12.
    XML XML esquema vsDTD  Ejemplo de XML Schema: aquí.  Cardinalidad (elementos opcionales, con 0 o más apariciones, ...) y ordinalidad (secuencia de aparición) de los elementos.  Valores de atributos implícitos (atributos opcionales), requeridos (atributos obligatorios) y por defecto.  Mayor complejidad y menor legibilidad que DTD.
  • 13.
  • 14.
    WSDL Conceptos básicos  WSDL: Web Services Description Language.  XML que se utiliza para describir servicios Web.  Describe la interfaz pública de los servicios Web.  El cliente sólo necesita WSDL para hacer llamadas a los métodos disponibles en el WS.  Sistema portable.  Estandarizado por el W3C.
  • 15.
    WSDL Tipos primitivos (*)El mapping por defecto para byte[ ] es xsd:base64Binary. Los datos pasados como byte[ ] se entienden como strings codificados en formato base64. Un formato alternativo es xsd:hexBinary.
  • 16.
  • 17.
  • 18.
  • 19.
    JAVA XML APIs Listadode APIs  JAXP: Java API for XML Processing.  JAXM: Java API for XML Messaging.  JAX-RPC: Java API for XML-based RPC.  JAX-WS: Java API for XML Web Services.  JAXR: Java API for XML Registries.  JAX-RS: Java API for RESTful Web Services.  JAXB: Java Architecture for XML Binding, or JAXB.  StAX: STreaming XML processing, or StAX.
  • 20.
    JAXP Conceptos básicos  Proveela posibilidad de validar, parsear, transformar y hacer querys sobre documentos XML.  Las tres interfaces básicas de parseo son: • DOM: Document Object Model parsing interface. • SAX: Simple API for XML parsing interface • StAX: Streaming API for XML (parte de JDK 6; jar separado disponible para JDK 5)  Además, provee XSLT interface → transformaciones.
  • 21.
    JAXP JAXP - DOM Parsea un documento cargándolo en memoria por completo.  Todo en memoria → es posible acceder o modificar cualquier elemento en acceso aleatorio.  El parser DOM se llama DocumentBuilder.  Se carga el XML en una estructura con forma de árbol.  No recomendado para grandes documentos por el consumo de memoria.
  • 22.
    JAXP JAXP – DOM(JDOM)  Biblioteca de código abierto para manipulaciones de datos XML optimizados para Java.  DOM lenguaje neutral → JDOM específicamente para usarse con Java.  Pensada especialmente para Java y por tanto mejor integrada en este lenguaje.  Facilidad de uso (para programadores Java). http://jdom.org/
  • 23.
  • 24.
    JAXP JAXP - SAX Procesa la información por eventos.  Mejor que DOM para manipular archivos grandes, ya que no genera un árbol en memoria.  Se recorre XML de manera secuencial.  Permite acceso a datos pero no modificarlos.  El parseo de SAX se puede detener en cualquier momento.
  • 25.
  • 26.
    JAXM Conceptos básicos  Provee una manera estándar de enviar XML sobre Internet a través de la plataforma Java.  Se basa en SOAP* 1.1 y SOAP con Attachments.  API de mensajería de peso ligero para el desarrollo de aplicaciones de mensajería de negocios basada en XML.  Soporta tanto mensajes asíncronos como síncronos. * SOAP = Simple Object Access Protocol
  • 27.
    JAXM Desventajas  JAXM fuerza a los desarrolladores a trabajar con los objetos SOAP. JAX-RPC provee un nivel más alto.  JAX-RPC provee un framework basado en WSDL que oculta los detalles de SOAP.  JAXM no usa WSDL → El desarrollador debe construir los mensajes “a mano” y enviarlos o procesarlos explícitamente.
  • 28.
    JAXM Obteniendoconexiones //Conexión punto a punto SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); The client can use factory to create a SOAPConnection object. SOAPConnection con = factory.createConnection(); //Conexión al Messaging Provider ProviderConnectionFactory pcFactory = ProviderConnectionFactory.newInstance(); ProviderConnection pcCon = pcFactory.createConnection();
  • 29.
    JAXM Creando unmensaje MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage m = messageFactory.createMessage(); SOAPPart sp = m.getSOAPPart(); SOAPEnvelope envelope = sp.getSOAPEnvelope(); SOAPBody body = envelope.getSOAPBody(); SOAPBodyElement bodyElement = body.addBodyElement( envelope.createName("text", "hotitems", "http://hotitems.com/products"); bodyElement.addTextNode("some-xml-text");
  • 30.
    JAXM Creandoun mensaje con DOM MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage m = messageFactory.createMessage(); SOAPPart soapPart = message.getSOAPPart(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse("file:///foo.bar/soap.xml"); DOMSource domSource = new DOMSource(doc); soapPart.setContent(domSource);
  • 31.
    JAXM Enviando mensaje SOAPMessageresponse = soapConnection.call(message, endpoint); //Usando un Messaging Provider providerConnection.send(message);
  • 32.
  • 33.
    JAXM JAXM + Otroselementos B2B
  • 34.
  • 35.
    JAX-RPC Conceptos básicos  Permite invocar Servicios Web conociendo su descripción.  Servicios web se describen mediante WSDL.  JAX-RPC 2.0 se renombró a JAX-WS 2.0  JAX-RPC 1 está deprecado con Java EE 6.  Proporciona compilador de WSDL a Java.  Proporciona compilador de Java a WSDL.
  • 36.
    JAX-RPC Funcionamiento 1.Un programa Java invoca un método de un stub (objeto local que representa un servicio remoto). 2. El stub invoca rutinas del JAX-RPC Runtime System (RS). 3. El RS convierte la invocación del método remoto en un mensaje SOAP. 4. El RS transmite el mensaje por HTTP.
  • 37.
  • 38.
  • 39.
    JAX-WS Conceptos básicos  API Java para la creación de Web Service.  Forma parte del estándar J2EE.  JAX-WS 2.0 reemplaza al API JAX-RPC.  Usa annotations (Java SE 5) para simplificar el desarrollo y el despliegue de los WS y los clientes.  JAX-WS RI (Reference Implementation): Parte del proyecto GlassFish.  Incluye: Java Architecture for XML Binding (JAXB) and SOAP with Attachments API for Java (SAAJ) 1.3.
  • 40.
  • 41.
    JAX-WS JAX-WS vs JAX-RPC  SOAP 1.2: JAX-RPC y JAX-WS soportan SOAP 1.1. JAX-WS también soporta SOAP 1.2.  Modelo de mapeo de datos: JAX-RPC tiene su propio modelo de mapeo de datos. JAX-WS usa JAXB para el mapeo de datos.  MTOM (Message Transmission Optimization Mechanism):JAX-WS (mediante JAXB) añade soporte para MTOM.  JAX-RPC vs JAX-WS: 1, 2, 3, 4, 5
  • 42.
    JAX-WS Ejemplo básico import javax.jws.WebService; @WebService public class CircleFunctions { public double getArea(double r) { return java.lang.Math.PI * (r * r); } public double getCircumference(double r) { return 2 * java.lang.Math.PI * r; } }
  • 43.
  • 44.
    JAXR Conceptos básicos  Proporciona acceso a registros de negocios estándars sobre Internet.  Las implementaciones actuales soportan ebXML Registry version 2.0 y UDDI version 2.0.  Registros de negocios = “páginas amarillas electrónicas” que contienen listados de negocios y los productos o servicios que los negocios ofrecen.
  • 45.
  • 46.
    JAXR ¿Qué es unRegistro XML?  Infrastructura que permite construir, desplegar y descubrir servicios web.  Es una parte neutral que facilita las interacciones dinámicas business-to-business (B2B).  Un registro está disponible para las organizaciones como un recurso compartido, a menudo como servicios web.  Tipos: UDDI, ebXML, etc.
  • 47.
  • 48.
    JAXR ebXML Electronic Business using eXtensible Markup Language (e-business XML or ebXML).  Basado en estándares XML.  Apoyado por OASIS y UN/CEFACT.  Agiliza las relaciones comerciales.
  • 49.
  • 50.
  • 51.
    JAXR UDDI - UniversalDescription Discovery and Integration  Registro XML que proporciona mecanismos estándar para las empresas para describir y publicar sus servicios, descubrir otras empresas, e integrarse: • Páginas Amarillas: Se registran empresas y los servicios que ofrecen. • Páginas Blancas: direcciones de trabajo e información de contacto. • Páginas Verdes: información técnica sobre los servicios. Se incluyen detalles técnicos suficientes para invocar un servicio determinado.
  • 52.
    JAXR UDDI - APIs  API de publicación: Métodos para guardar información: save_business, save_service, save_binding, etc.  API de investigación: Métodos para consultar el registro: find_service, get_businessDetail, get_serviceDetail, get_bindingDetail, etc.
  • 53.
  • 54.
  • 55.
    JAX-RS Conceptos básicos  Permite crear WS siguiendo arquitectura REST (Representational State Transfer).  JAX-RS usa annotations (Java SE 5).  Las comunicaciones se hace a través de HTTP utilizando las operaciones que este protocolo pone a disposición: POST, GET, PUT y DELETE.
  • 56.
    JAX-RS REST – Conceptosbásicos  Alternativa a SOAP y a WS basados en WSDL.  Grandes compañías Web 2.0 están migrando/han migrado a REST (Yahoo, Google, Facebook, etc.).  Los 4 principios de REST: • Utiliza los métodos HTTP de manera explícita. • No mantiene estado. • Expone URIs con forma de directorios. • Transfiere XML, JavaScript Object Notation (JSON), o ambos.
  • 57.
    JAX-RS REST y HTTP  Establece una asociación uno-a-uno entre las operaciones crear, leer, actualizar y borrar, y los métodos HTTP: • POST → crear un recurso en el servidor. • GET → obtener un recurso. • PUT → cambiar el estado de un recurso o actualizarlo. • DELETE → eliminar un recurso.
  • 58.
  • 59.
    JAX-RS REST – Cuándousarlo  Servicios orientados a recursos (la 'R'-EST) públicos,  Basados en HTTP.  Usables desde clientes de una aplicación web (los llama el navegador del usuario mediante AJAX).  Con un interfaz muy sencillo (para cargar una lista o una tabla).  Basados principalmente en búsquedas (Google).  Típico ejemplo: servicio de provincias-municipios.
  • 60.
    JAX-RS Implementaciones de JAX-RS  Apache CXF: Open source Web service framework.  Jersey: Implementación de referencia de Sun (now Oracle).  RESTEasy: Implementación de JBoss.  Restlet: Desarrollado por Jerome Louvel and Dave Pawson (pioneros en frameworks REST).  Apache Wink: Proyecto de la Apache Software Foundation.
  • 61.
  • 62.
    JAXB Conceptos básicos  Permite mapear clases a XML y viceversa.  Dos acciones principales: • Marshal: Objetos Java → XML. • Acceso y actualización de datos. • Unmarshal: XML → Objetos Java.  Es parte de Java SE, una API de la plataforma J2EE y parte del Java Web Services Development Pack (JWSDP).  Integración con varios IDEs (p.e. Eclipse).
  • 63.
  • 64.
    JAXB Porqué usar JAXB  Usa tecnología Java y XML.  Garantiza datos válidos.  Es rápida.  Es fácil de usar.  Puede restringir datos.  Es personalizable.  Es extensible.
  • 65.
  • 66.
  • 67.
    JMS Conceptos básicos  Java Message Service (Servicio de mensajes Java).  Solución Java para el uso de colas de mensajes.  Estándar de mensajería que permite a aplicaciones crear, enviar, recibir y leer mensajes.  JMS se sitúa como middleware en medio de la comunicación de dos aplicaciones.  Permite comunicación síncrona y asíncrona.
  • 68.
  • 69.
    JMS Ventajas  No se necesitan conocer (Ips, direcciones, etc.) los clientes para que se comuniquen entre sí.  JMS soporta comunicación punto a punto.  JMS soporta Publisher/Subscriber.  Comunicación síncrona y asíncrona.  Integración entre diferentes plataformas, entornos, lenguajes, etc.
  • 70.
    JMS Ejemplos de sistemasde MQ  WebSphere MQ de IBM (antes MQ*Series)  Message Queue de Microsoft (MSMQ)  Java Message Service de Sun (JMS)  Data Distribution Service del OMG (DDS)
  • 71.
    Integración de aplicaciones Java FIN Iker Canarias iker.canarias@gmail.com