Integración de aplicaciones           Java
IntroducciónIntegración de aplicaciones Necesidad de integrar entornos. Aplicaciones desarrolladas con diferentestecnolo...
XML
XMLConceptos básicos XML hace los datos portables. APIs Java para XML hacen fácil el uso del XML. Se consigue: Portabil...
XMLQué es XML XML = eXtensible Markup Language Estándar industrial para representar datos,independiente del sistema. La...
XMLDTD Document Type Definition.Lenguaje que permite definir nuestros propios tipos dedocumentos XML. Sintaxis no basad...
XMLXML esquema Lenguaje de esquema utilizado para describir laestructura Desarrollado por World Wide Web Consortium (W3C...
XMLXML esquema Sintaxis basada en XML. XML Schema supera muchas de las limitaciones ydebilidades de los DTDs. Diseñado ...
XMLXML esquema vs DTD Ejemplo de DTD: aquí Declaraciones de elementos: ELEMENT. Declaraciones de atributos de un elemen...
XMLXML esquema vs DTD Ejemplo de DTD: aquí Valores de atributo enumerados (el atributo sólopuede tomar un valor de entre...
XMLXML esquema vs DTD Ejemplo de XML Schema: aquí. Sintaxis XML. Definiciones de tipos y uso de tipos básicos:XMLSchema...
XMLXML esquema vs DTD Ejemplo de XML Schema: aquí. Cardinalidad (elementos opcionales, con 0 o másapariciones, ...) y or...
WSDL
WSDLConceptos básicos    WSDL: Web Services Description Language.    XML que se utiliza para describir servicios Web.   ...
WSDL Tipos primitivos(*) El mapping por defecto para byte[ ] es xsd:base64Binary. Los datos pasadoscomo byte[ ] se entiend...
WSDLClases estándar
WSDLProceso de desarrollo
JAVA XML APIs
JAVA XML APIsListado de APIs JAXP: Java API for XML Processing. JAXM: Java API for XML Messaging. JAX-RPC: Java API for...
JAXPConceptos básicos Provee la posibilidad de validar, parsear, transformary hacer querys sobre documentos XML. Las tre...
JAXPJAXP - DOM Parsea un documento cargándolo en memoria porcompleto. Todo en memoria → es posible acceder o modificarcu...
JAXPJAXP – DOM (JDOM) Biblioteca de código abierto para manipulaciones dedatos XML optimizados para Java. DOM lenguaje n...
JAXPEJEMPLOS JAXP - DOM
JAXPJAXP - SAX Procesa la información por eventos. Mejor que DOM para manipular archivos grandes, yaque no genera un árb...
JAXPEJEMPLOS JAXP - SAX
JAXMConceptos básicos    Provee una manera estándar de enviar XML sobre   Internet a través de la plataforma Java.    Se...
JAXMDesventajas    JAXM fuerza a los desarrolladores a trabajar   con los objetos SOAP. JAX-RPC provee un nivel más   alt...
JAXM  Obteniendo conexiones//Conexión punto a puntoSOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();The...
JAXM Creando un mensajeMessageFactory messageFactory = MessageFactory.newInstance();SOAPMessage m = messageFactory.createM...
JAXM  Creando un mensaje con DOMMessageFactory messageFactory = MessageFactory.newInstance();SOAPMessage m = messageFactor...
JAXM Enviando mensajeSOAPMessage response = soapConnection.call(message, endpoint);//Usando un Messaging ProviderproviderC...
JAXMEjemplo mensaje SOAP     EJEMPLO SOAP
JAXMJAXM + Otros elementos B2B
JAXMEJEMPLOS JAXM
JAX-RPCConceptos básicos    Permite invocar Servicios Web conociendo su   descripción.    Servicios web se describen med...
JAX-RPCFuncionamiento  1. Un programa Java invoca un método de un stub (objeto local que representa un servicio remoto).  ...
JAX-RPCFuncionamiento
JAX-RPCEJEMPLOS JAX-RPC
JAX-WSConceptos básicos    API Java para la creación de Web Service.    Forma parte del estándar J2EE.    JAX-WS 2.0 re...
JAX-WSJAX-WS Escenario
JAX-WSJAX-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 ma...
JAX-WSEjemplo básico   import javax.jws.WebService;   @WebService   public class CircleFunctions {     public double getAr...
JAX-WSEJEMPLOS JAX-WS
JAXRConceptos básicos    Proporciona acceso a registros de negocios   estándars sobre Internet.    Las implementaciones ...
JAXRArquitectura
JAXR¿Qué es un Registro XML?    Infrastructura que permite construir, desplegar y   descubrir servicios web.    Es una p...
JAXRUso de registros
JAXRebXML   Electronic Business using eXtensible Markup  Language (e-business XML or ebXML).   Basado en estándares XML....
JAXRebXML – Escenario sin ebXML
JAXRebXML – Escenario con ebXML
JAXRUDDI - Universal Description Discovery and Integration     Registro XML que proporciona mecanismos estándar    para l...
JAXRUDDI - APIs    API de publicación: Métodos para guardar   información: save_business, save_service,   save_binding, e...
JAXRUDDI – Escenario
JAXREJEMPLOS JAXR
JAX-RSConceptos básicos    Permite crear WS siguiendo arquitectura REST   (Representational State Transfer).    JAX-RS u...
JAX-RSREST – Conceptos básicos    Alternativa a SOAP y a WS basados en WSDL.    Grandes compañías Web 2.0 están migrando...
JAX-RSREST y HTTP   Establece una asociación uno-a-uno entre las  operaciones crear, leer, actualizar y borrar, y los  mé...
JAX-RSREST y HTTP
JAX-RSREST – Cuándo usarlo    Servicios orientados a recursos (la R-EST) públicos,    Basados en HTTP.    Usables desde...
JAX-RSImplementaciones de JAX-RS    Apache CXF: Open source Web service framework.    Jersey: Implementación de referenc...
JAX-RSEJEMPLOS JAX-RS
JAXBConceptos básicos    Permite mapear clases a XML y viceversa.    Dos acciones principales:       • Marshal: Objetos ...
JAXBArquitectura
JAXBPorqué usar JAXB    Usa tecnología Java y XML.    Garantiza datos válidos.    Es rápida.    Es fácil de usar.    ...
JAXBEJEMPLOS JAXB
JMS
JMSConceptos básicos    Java Message Service (Servicio de mensajes Java).    Solución Java para el uso de colas de mensa...
JMSEscenario de ejemplo
JMSVentajas    No se necesitan conocer (Ips, direcciones, etc.) los   clientes para que se comuniquen entre sí.    JMS s...
JMSEjemplos de sistemas de MQ    WebSphere MQ de IBM (antes MQ*Series)    Message Queue de Microsoft (MSMQ)    Java Mes...
Integración de aplicaciones            Java          FIN                               Iker Canarias                   ike...
Upcoming SlideShare
Loading in …5
×

Integración de aplicaciones Java

2,904 views
2,743 views

Published on

Integración de aplicaciones
Java se centra en las API XML para Java tales como JAXP, JAXB, JAX-RPC, JAX-WS, etc. También hace una pequeña introducción a JMS.

3 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total views
2,904
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
84
Comments
3
Likes
3
Embeds 0
No embeds

No notes for slide

Integración de aplicaciones Java

  1. 1. Integración de aplicaciones Java
  2. 2. IntroducciónIntegración de aplicaciones Necesidad de integrar entornos. Aplicaciones desarrolladas con diferentestecnologías, frameworks, etc. incluso lenguajes. Reutilización de funcionalidades. Varias alternativas: • JAVA XML APIs • JMS • JBI
  3. 3. XML
  4. 4. XMLConceptos básicos XML hace los datos portables. APIs Java para XML hacen fácil el uso del XML. Se consigue: Portabilidad de datos, portabilidad decodigo y facilidad de uso. XML ayuda a la integración de aplicaciones yplataformas.
  5. 5. XMLQué es XML XML = eXtensible Markup Language Estándar industrial para representar datos,independiente del sistema. Las etiquetas XML especifican el contenido y laestructura de los datos. Extensibilidad: podemos crear las etiquetas quenecesitemos para un tipo de documento en particular.
  6. 6. XMLDTD Document Type Definition.Lenguaje que permite definir nuestros propios tipos dedocumentos XML. Sintaxis no basada en XML.
  7. 7. XMLXML esquema Lenguaje de esquema utilizado para describir laestructura Desarrollado por World Wide Web Consortium (W3C) Describe la estructura de un conjunto de documentosXML. Es un lenguaje de esquema escrito en XML. Usualmente extensión .xsd (XML Schema Definition).
  8. 8. XMLXML esquema Sintaxis basada en XML. XML Schema supera muchas de las limitaciones ydebilidades de los DTDs. Diseñado alrededor de namespaces ≈ package. Soporta tipos de datos típicos de los lenguajes deprogramación. Permite procesado con herramientas capaces deprocesar XML. Mayor capacidad expresiva (sobre todo en tipos).
  9. 9. XMLXML 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ásapariciones, ...) y ordinalidad (secuencia de aparición)de los elementos. Valores de atributos implícitos (atributos opcionales),requeridos (atributos obligatorios) y por defecto.
  10. 10. XMLXML esquema vs DTD Ejemplo de DTD: aquí Valores de atributo enumerados (el atributo sólopuede tomar un valor de entre un conjunto finito). Atributos de tipo ID (caracterizan unívocamente a unelemento en un documento y sólo pueden tomarvalores que sean identificadores XML válidos)
  11. 11. XMLXML 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, compuestospor otros. Declaraciones de elementos: xsd:element. Declaraciones de atributos de un elemento:xsd:attribute.
  12. 12. XMLXML esquema vs DTD Ejemplo de XML Schema: aquí. Cardinalidad (elementos opcionales, con 0 o másapariciones, ...) 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. 13. WSDL
  14. 14. WSDLConceptos 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. 15. WSDL Tipos primitivos(*) El mapping por defecto para byte[ ] es xsd:base64Binary. Los datos pasadoscomo byte[ ] se entienden como strings codificados en formato base64. Unformato alternativo es xsd:hexBinary.
  16. 16. WSDLClases estándar
  17. 17. WSDLProceso de desarrollo
  18. 18. JAVA XML APIs
  19. 19. JAVA XML APIsListado 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.
  20. 20. JAXPConceptos básicos Provee la posibilidad de validar, parsear, transformary 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. 21. JAXPJAXP - DOM Parsea un documento cargándolo en memoria porcompleto. Todo en memoria → es posible acceder o modificarcualquier 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 elconsumo de memoria.
  22. 22. JAXPJAXP – DOM (JDOM) Biblioteca de código abierto para manipulaciones dedatos XML optimizados para Java. DOM lenguaje neutral → JDOM específicamente parausarse con Java. Pensada especialmente para Java y por tanto mejorintegrada en este lenguaje. Facilidad de uso (para programadores Java). http://jdom.org/
  23. 23. JAXPEJEMPLOS JAXP - DOM
  24. 24. JAXPJAXP - SAX Procesa la información por eventos. Mejor que DOM para manipular archivos grandes, yaque 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 cualquiermomento.
  25. 25. JAXPEJEMPLOS JAXP - SAX
  26. 26. JAXMConceptos 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. 27. JAXMDesventajas  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. 28. JAXM Obteniendo conexiones//Conexión punto a puntoSOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();The client can use factory to create a SOAPConnection object.SOAPConnection con = factory.createConnection();//Conexión al Messaging ProviderProviderConnectionFactory pcFactory = ProviderConnectionFactory.newInstance();ProviderConnection pcCon = pcFactory.createConnection();
  29. 29. JAXM Creando un mensajeMessageFactory 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. 30. JAXM Creando un mensaje con DOMMessageFactory 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. 31. JAXM Enviando mensajeSOAPMessage response = soapConnection.call(message, endpoint);//Usando un Messaging ProviderproviderConnection.send(message);
  32. 32. JAXMEjemplo mensaje SOAP EJEMPLO SOAP
  33. 33. JAXMJAXM + Otros elementos B2B
  34. 34. JAXMEJEMPLOS JAXM
  35. 35. JAX-RPCConceptos 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. 36. JAX-RPCFuncionamiento 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. 37. JAX-RPCFuncionamiento
  38. 38. JAX-RPCEJEMPLOS JAX-RPC
  39. 39. JAX-WSConceptos 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. 40. JAX-WSJAX-WS Escenario
  41. 41. JAX-WSJAX-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. 42. JAX-WSEjemplo 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. 43. JAX-WSEJEMPLOS JAX-WS
  44. 44. JAXRConceptos 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. 45. JAXRArquitectura
  46. 46. 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.
  47. 47. JAXRUso de registros
  48. 48. JAXRebXML  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. 49. JAXRebXML – Escenario sin ebXML
  50. 50. JAXRebXML – Escenario con ebXML
  51. 51. JAXRUDDI - 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.
  52. 52. JAXRUDDI - 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. 53. JAXRUDDI – Escenario
  54. 54. JAXREJEMPLOS JAXR
  55. 55. JAX-RSConceptos 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. 56. JAX-RSREST – 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.
  57. 57. JAX-RSREST 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. 58. JAX-RSREST y HTTP
  59. 59. JAX-RSREST – 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.
  60. 60. JAX-RSImplementaciones 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. 61. JAX-RSEJEMPLOS JAX-RS
  62. 62. JAXBConceptos 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. 63. JAXBArquitectura
  64. 64. JAXBPorqué 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. 65. JAXBEJEMPLOS JAXB
  66. 66. JMS
  67. 67. JMSConceptos 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. 68. JMSEscenario de ejemplo
  69. 69. JMSVentajas  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. 70. JMSEjemplos 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)
  71. 71. Integración de aplicaciones Java FIN Iker Canarias iker.canarias@gmail.com

×