Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

3,247 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.

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

×