93
Gestión de Procesos de Gestión de Procesos de Negocios BPM” Negocios BPM” M.Sc.Daniel Alejandro Yucra Sotomayor M.Sc.Daniel Alejandro Yucra Sotomayor E-mail: [email protected] E-mail: [email protected] Lima - Perú Marzo – Mayo del 2011 GNU/LinuX Parte II: SOA Parte II: SOA Universidad Inca Garcilaso de la Vega Universidad Inca Garcilaso de la Vega XLIX XLIX CURSO DE ACTUALIZACIÓN PROFESIONAL CURSO DE ACTUALIZACIÓN PROFESIONAL DE INGENIERÍA DE SISTEMAS Y CÓMPUTO. DE INGENIERÍA DE SISTEMAS Y CÓMPUTO. Área: Gestión de Procesos Área: Gestión de Procesos

Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

  • Upload
    volien

  • View
    218

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

““Gestión de Procesos de Gestión de Procesos de Negocios BPM”Negocios BPM”

M.Sc.Daniel Alejandro Yucra SotomayorM.Sc.Daniel Alejandro Yucra SotomayorE-mail: [email protected]: [email protected]

Lima - PerúMarzo – Mayo del 2011

GNU/LinuX

Parte II: SOAParte II: SOA

Universidad Inca Garcilaso de la VegaUniversidad Inca Garcilaso de la VegaXLIXXLIX CURSO DE ACTUALIZACIÓN PROFESIONAL CURSO DE ACTUALIZACIÓN PROFESIONAL

DE INGENIERÍA DE SISTEMAS Y CÓMPUTO.DE INGENIERÍA DE SISTEMAS Y CÓMPUTO.

Área: Gestión de ProcesosÁrea: Gestión de Procesos

Page 2: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

Gestión de Procesos Gestión de Procesos de Negocio (BPM)de Negocio (BPM)

XLIX XLIX Curso de Actualización - 2011 Curso de Actualización - 2011Facultad de Ingeniería de Sistemas y ComputoFacultad de Ingeniería de Sistemas y Computo

Page 3: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

Parte II: SOAParte II: SOA� 1. Principios SOA y los Servicios Web.� 2. Tecnologías básicas: XML, XML Schema y

XSLT� 3. Describiendo servicios con WSDL� 4. Formato de los mensajes en los servicios:

SOAP y REST

Page 4: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

Sub Unidad 1:Sub Unidad 1:Principios de SOA y Servicios WebPrincipios de SOA y Servicios Web

Temas:1.1 Principios de la Orientación a Servicios y SOA1.2 Servicios Web1.3 Análisis de herramientas para proyectos SOA1.4 Referencias

Page 5: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

Concepto de Servicio:Concepto de Servicio:� No es un concepto nuevo y No es un concepto nuevo y

tampoco es único del ámbito tampoco es único del ámbito tecnológico tecnológico

� Se puede pensar en un servicio Se puede pensar en un servicio como en un “como en un “contratocontrato” en el ” en el cual se dicen las prestaciones cual se dicen las prestaciones que se le van a dar al usuario que se le van a dar al usuario del mismo.del mismo.

� Nuestra sociedad actual se Nuestra sociedad actual se mueve por “servicios”mueve por “servicios”

… “… “Servicios son maneras de Servicios son maneras de entregar valorentregar valor a los clientesa los clientes como como soporte de los resultados que los soporte de los resultados que los clientes pueden obtener sin clientes pueden obtener sin incurrir en costos y riesgos incurrir en costos y riesgos específicos. Servicios no son bienes específicos. Servicios no son bienes intangibles.” …intangibles.” …

Page 6: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

Concepto Formal de Servicio:Concepto Formal de Servicio: “ “Funcionalidad concreta que puede ser Funcionalidad concreta que puede ser descubiertadescubierta y y

describe describe tanto lo que puede hacer como el modo de tanto lo que puede hacer como el modo de interactuar con élinteractuar con él ” ”

� Adaptado al contexto empresarial:Adaptado al contexto empresarial: Un servicio realiza una tarea concretaUn servicio realiza una tarea concreta – – Sencilla: “Sencilla: “Devolver los datos personales de un Devolver los datos personales de un

clientecliente””– – Compleja ó compuesta: “Comunicar a cada cliente de Compleja ó compuesta: “Comunicar a cada cliente de la empresa una promoción comercial”la empresa una promoción comercial”

Page 7: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

Arquitecturas Orientadas a ServiciosArquitecturas Orientadas a Servicios� SOA = SOA = Service Service Oriented ArchitectureOriented Architecture� Llevar al ámbito Tecnológico la utilización del Llevar al ámbito Tecnológico la utilización del

concepto de Servicioconcepto de Servicio� PERO … ¡No se desliga del contexto empresarial!PERO … ¡No se desliga del contexto empresarial!

¿ Cómo alinear los objetivos empresariales y los ¿ Cómo alinear los objetivos empresariales y los objetivos tecnológicos?objetivos tecnológicos?

SOA qué más …. ¿?SOA qué más …. ¿?

Page 8: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

Y donde esta BPM?Y donde esta BPM?

Page 9: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

BPMBPM

SOASOA

Arquitectura TIArquitectura TI

NEGOCIONEGOCIO

TECNOLOGIATECNOLOGIA

Page 10: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.1 Principios de la Orientación a Servicios y SOA

BPM y SOA BPM y SOA van de la mano van de la mano

““SOA es el soporte SOA es el soporte tecnológico de BPM”tecnológico de BPM”““BPM se implementaBPM se implementaen SOA”en SOA”

Page 11: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Mecanismo más utilizado para implantar SOA� Su filosofía ….

“¿Por qué no usar la web actual (HTTP) que es un mecanismo de transporte ampliamente probado, eficiente, robusto y escalable para las aplicaciones inter e intra organizaciones?”

� Los servicios exponen un conjunto de puntos de acceso (endpoint) que pueden ser invocados por procesos externos- Accedidos mediante HTTP (ó HTTP/S) y expresados como URL- Las invocaciones y las respuestas de las mismas se codifican típicamente mediante XML

Page 12: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web ServicesTendencias actuales:� Servicios web basados en SOAP

• Se utilizan mensajes SOAP (estructura de mensajes basado en XML), los cuales van transportados sobre HTTP• Protocolo estandarizado para los servicios web• Sobre él se han desarrollado las otras dos tecnologías básicas de los servicios: WSDL y UDDI

� Servicios web basados en REST (Representational Style Transfer)• Nuevo tendencia arquitectónica

• Intentan ofrecer un rendimiento más ágil utilizando única y exclusivamente los protocolos ya existentes en la web HTTP, sobre el que viaja XML (sin formato estandarizado)

� Peticiones GET, POST, PUT …

Page 13: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web ServicesRoles de los servicios y sus clientes:� Proveedor del servicio (Web Services Proveedor)

• El que ofrece el servicio• Análogo al rol de servidor en arquitecturas cliente/servidor

Page 14: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web ServicesRoles de los servicios y sus clientes:� Solicitante del servicio (Web Services Consumidor)

• El que solicita la ejecución en un servicio• Análogo al rol de cliente en una arquitectura Cliente/Servidor tradicional

Page 15: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web ServicesRoles de los servicios y sus clientes:� Servicios intermediarios (Brokers o ESB)

• Especie de “Proxy” de mensajes• PASIVO: Sólo pasa información• ACTIVO: Realiza cambios cuando el mensaje pasa por él

Page 16: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Composición de Servicios

– Colección de servicios y relación entre ellos– Cada uno de los web services son parte de SOA

– Un conjunto de procesos implementados son parte de la composición de los servicios

Page 17: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Clasificación de los servicios atendiendo al modelo

– Servicios de Negocio• Ofrecen acceso a la lógica del negocio• Pueden ser Autónomos, pero pensados para ser miembros de una composición de servicios– Servicios de Utilidad• Pensados para su reutilización• NO representan una aplicación específica• Pueden ser servicios intermediarios• Gran grado de autonomía– Servicio Controlador• “Coordinador” de una composición de servicios• Puede haber “subcontroladores”

Page 18: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Servicios web de Primera generación

La plataforma tecnológica de servicios web original está compuesta de los siguientes tecnologías• XML Schema• Web Services

Description Language (WSDL)

• SOAP• UDDI

Page 19: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Nuevas tecnologías y tendencias

La segunda generación de servicios web intenta cubrir alguna de las lagunas existentes en las primeras tecnologías de servicios web• Calidad de Servicio– WS-Transaction, WS-Reliability, …• Seguridad– WS-Security• Composición de servicios– WS-BPEL

AQUÍ PROCESOSAQUÍ PROCESOS

Page 20: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPM

Históricamente las compañías han intentado conjugar dos visiones para realizar su negocio:• Visión de Negocio: Especificar y mejorar sus procesos empresariales (modelado y análisis de procesos de negocio mediante workflows, certificaciones ISO)• Visión de Tecnología (IT): Informatizar el negocio a través de la tecnología (frameworks, desarrollo e integración de software, metodologías CMMi e ITIL)

Page 21: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPM

Lo clásico y convencional … hasta cuando ?Lo clásico y convencional … hasta cuando ?

A R

T I C

U L

A N

A R

T I C

U L

A N

Page 22: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPMBPM = Business Process Management ó

Automatización de los Procesos de Negocio

– Intentar unificar estas dos perspectivas en una VISION COMUN

Perspectiva del Negocio + Perspectiva TI = BPM

Gestion + Tecnología = BPMGestion + Tecnología = BPM

Page 23: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPM

- Indicadores claves de desempeño- Indicadores claves de desempeño- Optimizar ProcesosOptimizar Procesos- Modelos de Calidad Modelos de Calidad

- Aplicaciones ActualesAplicaciones Actuales- Marcos de Trabajo TecnológicoMarcos de Trabajo Tecnológico-Hoja de Ruta o Mapa del Camino Hoja de Ruta o Mapa del Camino TecnológicoTecnológico

Page 24: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPM- Enfoque gerencial y operativo que se basa en la

coordinación de las actividades y decisiones que comprenden los procesos de negocio de una organización

- Lenguaje más cercano a los analistas, consultores y directivos

Page 25: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.2 Web Services� Enfoque basado en BPM

Page 26: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Tipos de herramientas para trabajar con Servicios

1. Definir los Servicios - Crear los tipos de datos intercambiados con el servicio (XML

Schema) - Diseñar y modelar el descriptor del servicio (ficheros WSDL) - Crear cualquier otro fichero basado en XML adicional a los

servicios2. Frameworks de Servicios Web

- Contienen un conjunto de tecnologías en un lenguaje particular (JAVA, C++, PL/SQL …) para facilitar la implementación de los servicios

Page 27: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Tipos de herramientas para trabajar con Servicios

3. Entornos de desarrollo- Facilitan la implementación de los servicios- Se les pueden integrar las librerías que ofrecen los frameworks anteriores

4. Servidores de aplicaciones- Contienen los servicios ya implementados y compilados- Suelen contar con un motor de ejecución de SOAP (el que ofrece el framework utilizado para el desarrollo

Page 28: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Herramientas para el trabajo con la definición de Servicios:– Altova XML Spy: Herramienta comercial muy potente para el trabajo con casi todas las tecnologías basadas en XML (documentos XML, XML Schema, WSDL, SOAP, XSLT, XSL-FO, …)– Módulos del entorno de ECLIPSE: Las últimas versiones del entorno de trabajo ECLIPSE, llevan las herramientas para trabajar visualmente con: Documentos XML, XML Schemas, – WSDL, además existen plugins que le dan soporte para trabajar también con XSLT

Page 29: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Entornos de desarrollo (IDEs)– ECLIPSE 3.5.2. Edición EE• Plataforma de programación utilizada para crear entornos de desarrollo (IDE)• La más difundida junto a Netbeans• Permite el trabajo nativo con la pila de servicios web AXIS y AXIS2, y desde hace poco con Apache CXF• NO ofrece características visuales avanzadas para SOA ( ESB, BPEL , ….)– NetBeans• La eterna alternativa a ECLIPSE de SUN• Total compatibilidad con JAVA• Ofrece herramientas visuales avanzadas para SOA, tanto para BPEL como ESB

Page 30: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Frameworks de Servicios Web (I)– Apache AXIS y AXIS2• Motores e implementación de SOAP• Ofrecen un framework para construir servicios basados en SOAP y clientes de los mismos• Implementaciones en JAVA y C++• Incluye– Un servidor para su ejecución de manera autónoma (Stand-alone)– Librerías necesarias para ser integrados en un servidor de aplicaciones– Herramientas para convertir desde JAVA a WSDL y Viceversa– Herramientas para la monitorización de los paquetes TCP/IP• AXIS 2 además es extensible y soporta varios protocolos WS-*, como WSSecurity

Page 31: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Frameworks de Servicios Web (II)– Apache CXF• Framework para el desarrollo de servicios web de código abierto• Consta de un conjunto de APIs diferentes para el desarrollo de los servicios , tanto de SOAP como de REST• Soporte para un gran conjunto de estándares de extensión• Los servicios desarrollados pueden ser accedidos desde diferentes protocolos de transporte, como SOAP, XML/HTTP, ….• El framework puede ser utilizado de manera independiente ó integrado en otro servidor de aplicaciones– SUN Metro• La alternativa de SUN a Apache CXF• Ofrece unas prestaciones muy similares, pero está pensado para ser integrado principalmente en el servidor GlassFish

Page 32: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.3 Análisis de herramientas para proyectos SOA

� Servidores de aplicaciones– Apache Tomcat• Contenedor de aplicaciones e implementación de Java Servlet y JavaServer Pages.• No lleva herramientas por sí mismo para servicios web• Éstas deben ser añadidas aparte– GlassFish• Servidor de aplicaciones de SUN• Es totalmente compatible con la arquitectura j2EE 5, y por tanto lleva internamente soporte para servicios web (basados en Metro)– Jboss• Competidor de GlassFish, ofrece también una implementación completa de J2EE 5, con soporte para servicios web– Oracle OC4J

Page 33: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

1.4 Referencias Bibliográficas� Bibliografía

– “SOA: Principles of Service Design”. Thomas Erl. Prentice Hall. ISBN: 0-13-234482-3 (2007)– “Service-Oriented Architecture: Concepts, Technology, and Design”. Thomas Erl. Prentice Hall (2005)– “Building Web Services with Java. Making sense of XML, SOAP, WSDL, and UDDI”. Developer’s Library. ISBN: 0-672-32641-8 (2005) – ATICA

• Enlaces– W3 Schools. Full web building tutorials. http://www.w3schools.com/– XML Schema specification. http://www.w3.org/XML/Schema– World Wide Web Consortium. http://www.w3c.es

• Herramientas para SOA– Netbeans + SOA: https://open-esb.dev.java.net– Plataforma ECLIPSE + WTP: http://www.eclipse.org– Apache CXF: http://cxf.apache.org ; Apache AXIS2: http://ws.apache.org/axis2

Page 34: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

Sub Unidad 2: Tecnologías Sub Unidad 2: Tecnologías Básicas:XML, XML Schema y XSLBásicas:XML, XML Schema y XSL

Temas:2.1 El lenguaje de etiquetas XML2.2 Mecanismo de Espacios de Nombres en XML2.3 XML Schema: Estructurando los documentos

XML2.4 XSL: La tecnología para transformar

documentos XML2.5 Edición de documentos XML2.6 Referencias

Page 35: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� XML = eXtensible Markup LanguageXML = eXtensible Markup Language– – Nace en 1998 basado en SGML (pero simplificado)Nace en 1998 basado en SGML (pero simplificado)– – Objetivos inicialesObjetivos iniciales

• • Lenguaje estructurado, extensible y que se pueda Lenguaje estructurado, extensible y que se pueda validarvalidar• • Permitir la Permitir la transmisión de información realmente transmisión de información realmente estructuradaestructurada

– – Es un metalenguaje:Es un metalenguaje:• • Lenguaje creado para Lenguaje creado para definir otros lenguajesdefinir otros lenguajes– – Permite Permite definir otros lenguajesdefinir otros lenguajes de etiquetas por medido de de etiquetas por medido de dos mecanismos básicos:dos mecanismos básicos:• • DTD (Document Type Definition)DTD (Document Type Definition)• • XML SchemasXML Schemas

Page 36: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� ¿Para qué sirve XML?– HTML ofrece una forma de “presentar” los contenidos en un navegador (Formato de los contenidos)• Está centrado en la “maquetación” o “presentación”– XML fue diseñado para transportar y almacenar datos• Centrado en el “contenido” y la “estructura” de los datos, NO en como se “ven” o “presentan”– XML NO “hace” nada– Aunque sea difícil de entender, XML no hace nada• XML fue creado para estructurar, almacenar y transportar información

Page 37: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

Ventajas de los ficheros XMLVentajas de los ficheros XML� Fácilmente interpretable tanto por humanos Fácilmente interpretable tanto por humanos

como por el softwarecomo por el software� Separa la información o el contenido de su Separa la información o el contenido de su

presentación o formatopresentación o formato� Diseñado para ser utilizado en cualquier Diseñado para ser utilizado en cualquier

lenguaje o alfabetolenguaje o alfabeto� Su análisis sintáctico es fácil debido a las Su análisis sintáctico es fácil debido a las

estrictas reglas que rigen la composición de estrictas reglas que rigen la composición de un documentoun documento

� Estructura jerárquicaEstructura jerárquica

Page 38: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

Estructura de un documento XMLEstructura de un documento XML

Page 39: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

Estructura de un documento XMLEstructura de un documento XML� Prólogo del documentoPrólogo del documento

<?xml version=“1.0” encoding=“iso-8859-1”?><?xml version=“1.0” encoding=“iso-8859-1”?>� Instrucciones de procesamientoInstrucciones de procesamiento

– – <?xml … ?><?xml … ?>� VersionVersion

– – 1.0 ó 1.11.0 ó 1.1� EncodingEncoding

– – Representa la norma de codificación utilizada en el Representa la norma de codificación utilizada en el documentodocumento– – UTF-8; UTF-16 (Unicode); iso-8859-1 (Europeo UTF-8; UTF-16 (Unicode); iso-8859-1 (Europeo occidental); …occidental); …

Page 40: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� ComentariosComentarios<!-- Ejemplo de comentario --><!-- Ejemplo de comentario -->

� Encerrados entre <!-- y -->Encerrados entre <!-- y -->� Se pueden poner en cualquier lugar del Se pueden poner en cualquier lugar del

documentodocumento– – Excepto dentro de la definición de un Excepto dentro de la definición de un elemento o un atributoelemento o un atributo

Page 41: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� Caracteres especiales– & lt; = <– & gt; = >– & amp; = &– & quot; = "– & apos; = ‘

� Cualquier carácter Unicode puede indicarse mediante & seguido del número y acabado por ;

Page 42: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� Elementos– “Formalismo” para el par (XML):• Etiqueta Inicial / Etiqueta Final• Ejemplo: <Persona> … </Persona>– Puede contener otros elementos anidados. Ejemplos<Persona> <Nombre> … </Nombre> <Apellidos> … </Apellidos></Persona>

� Posibilidades para el Nombre de los elementos• Letras , subrayado ( _ ), guión ( - ), dos puntos ( : ) , números• NO pueden comenzar con Números

Page 43: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

� Atributos– Se definen / crean en la etiqueta inicial de un elemento– Par Nombre / Valor– El valor va siempre entre comillas dobles<Elemento atributo=“…”> ... </Elemento>– Posibilidad de usar prefijos delante del atributo:

prefijo:atributo = “ …”– Ejemplos de prefijos mas utilizados• Para indicar el idioma del elemento (Internacionalización)<Descripcion xml:lang=“sp”>¿que color es?</Descripcion><Descripcion xml:lang=“en-GB”>What colour is it?</Descripcion><Descripcion xml:lang=“en-US”>What color is it?</Descripcion>

Page 44: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

Representación de documentos como un árbol– Los documentos XML pueden ser vistos con una estructura de “árbol”, en el

que hay un elemento raíz, subelementos del mismo, … hasta llegar a las hojas

Page 45: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML

Documentos BIEN formadosDocumentos BIEN formados� Un documento XML está bien formado si cumple todas las reglas Un documento XML está bien formado si cumple todas las reglas

anterioresanteriores� Una condición básica para trabajar con un documento XML es que Una condición básica para trabajar con un documento XML es que

esté bien formadoesté bien formado

Documentos VALIDOSDocumentos VALIDOS� Un documento XML es válido si cumple una gramática previamente Un documento XML es válido si cumple una gramática previamente

creadacreada� Las “gramáticas” se crean mediante uno de estos dos mecanismosLas “gramáticas” se crean mediante uno de estos dos mecanismos

• • DTD (Document Type Definitions)DTD (Document Type Definitions)• • XML SchemaXML Schema

� En la siguiente parte veremos como podemos construir documentos En la siguiente parte veremos como podemos construir documentos XML Schema para definir la gramática de los documentos XMLXML Schema para definir la gramática de los documentos XML

Page 46: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML� Ejemplos de documentos bien formadosEjemplos de documentos bien formados

– – Listado de un conjunto de libros y sus datosListado de un conjunto de libros y sus datos

Page 47: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.1 El lenguaje de etiquetas XML2.1 El lenguaje de etiquetas XML� Ejemplos inválidos … ¿por qué?

– Datos de un libro:<Libro>

<Titulo>Viaje al centro de la Tierra</Libro></Titulo>

– Protocolo de red:<Protocolo_Red>

<835HA>...</835HA></Protocolo_Red>

– ¿Dos elementos raíz?:<?xml version=“1.0” encoding=“iso-8859-1”><Persona>...</Persona><Libro>...</Libro>

Page 48: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.2 Mecanismo de Espacios de Nombres en XML2.2 Mecanismo de Espacios de Nombres en XML� Espacios de nombres XML (namespaces)

– “Mecanismo” para poder combinar varios documentos XML– Permiten utilizar “conceptos” definidos en diferentes XML en un tercero, sin el:• Problema de la colisión de nombres:

Page 49: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.2 Mecanismo de Espacios de Nombres en XML2.2 Mecanismo de Espacios de Nombres en XML� La programación en Schema XML se basa en La programación en Schema XML se basa en

Namespaces. Namespaces. � Podemos encontrar una analogía entre éstos y los Podemos encontrar una analogía entre éstos y los

llamados packages en Java. Cada Namespace contiene llamados packages en Java. Cada Namespace contiene elementos y atributos que están estrechamente elementos y atributos que están estrechamente relacionados con el Namespace.relacionados con el Namespace.

Page 50: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.2 Mecanismo de Espacios de Nombres en XML2.2 Mecanismo de Espacios de Nombres en XML� Utilización de “cualificadores”

– Identificadores adicionales– Definen el ámbito ó contexto del documento– Concepto parecido a los paquetes en Java• Cualificadores = URI’s. Ejemplos:– “http://bpm.somoslibres.org" <= URL– “[email protected]” <= Formato “e-mail”– “urn:umu:eadmin:services:common:schema” <= Formato OMG

� TODOS los elementos pertenecientes a un mismo URI, serán considerados del mismo contexto

Page 51: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.2 Mecanismo de Espacios de Nombres en XML2.2 Mecanismo de Espacios de Nombres en XML� Para establecer el cualificador por defecto del

documento ACTUAL, el cual será utilizado en otros documentos, se usa el atributo targetNamespace:<docN targetNamespace=“nombre_namespace”…>

� Para utilizar elementos de otros documentos en el actual se utiliza el prefijo de atributo xmlns: y se le asigna un prefijo:<docN xmlns:prefijo=“nombre_namespace” …>

� Si en el documento actual no se quiere utilizar prefijo, se hará:

� <docN xmlns=“nombre_namespace” …>

Page 52: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.2 Mecanismo de Espacios de Nombres en XML2.2 Mecanismo de Espacios de Nombres en XML� Ejemplo

<mensaje targetNamespace=‘urn:umu:atica:mensajeria’ xmlns=‘urn:umu:atica:mensajeria’xmlns:ped=‘http://www.somoslibres.org/proceso/pedidos' >…<ped:PedidoCompra> … </ped:PedidoCompra></mensaje>

� Ejemplo (el mismo significado)<msg:mensaje targetNamespace=‘urn:umu:atica:mensajeria’xmlns:msg=‘urn:umu:atica:mensajeria’xmlns:ped=‘http://www.um.es/atica/pedidos' >…<ped:PedidoCompra> … </ped:PedidoCompra></msg:mensaje>

Page 53: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

� En los documentos XML¿Cómo puedo definir cuál es la estructura del documento?

¿Cuál es la “gramática”?¿Cuáles son los posibles valores para un elemento?¿Cuantas veces puedo escribir un determinado elemento y en qué orden deben ponerse?

� Primera aproximación: Document Type Definitions (DTDs)– Definen un vocabulario con la estructura del documento XML– No integran espacios de nombre– No son modulares– Carencias importantes en la semántica

Page 54: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

� Estándar del W3C: Esquemas XML (XSD)– Meta-lenguaje para describir la estructura de los documentos XML– Se describe en XML asimismo– Los ficheros con un XML Schema tienen la extensión “*.xsd”– Utiliza el espacio de nombres:

http://www.w3.org/2001/XMLSchema– Y el prefijo normalmente asociado:

xsd:– Se utiliza para modelar información• Idea parecida a SQL, UML, Modelo Entidad / Relación …• … pero aplicado a documentos XML

Page 55: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

Ejemplo:Ejemplo:

Page 56: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

¿Cómo se asocia un XML Schema a un documento XML?

Cláusula schemaLocation. Compuesta de:– Identificador del espacio de nombres– Ubicación del fichero físico donde se define el espacio de nombres.

<?xml version=”1.0” encoding=”UTF-8”?><?xml version=”1.0” encoding=”UTF-8”?><op:OrdenPedido<op:OrdenPedidoxmlns:opxmlns:op=‘urn:umu:atica:gestionPedidos'=‘urn:umu:atica:gestionPedidos'xmlns:xsixmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'='http://www.w3.org/2001/XMLSchema-instance'xsi:schemaLocationxsi:schemaLocation='urn:umu:atica:gestionPedidos='urn:umu:atica:gestionPedidos http://www.somoslibres.org/bpm/xsd/pedidos.xsd’>http://www.somoslibres.org/bpm/xsd/pedidos.xsd’>……</op:OrdenPedido></op:OrdenPedido> Ubicación del esquemaUbicación del esquema

Page 57: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

Elementos– Representan conceptos “instanciables”• Sólo se pueden crear documentos XML de los elementos– Tiene los dos siguientes atributos posibles:• name: Nombre del elemento.• type: tipo del elemento, que puede ser simple o complejo– Ejemplos creación de elementos:…<xsd:element name=‘UnaCadena‘ type=‘xsd:String‘ /><xsd:element name=‘DNI‘ type=‘op:DNIType‘ /><xsd:element name=‘OrdenPedido‘ type=‘op:TipoOrdenDePedido‘ />

Page 58: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

Tipos simples (Simple Types)– Tipos Predefinidos ó primitivos

• Definidos por el lenguaje, se utilizan directamente• String, boolean, integer, float …

– Tipos extendidos• Basados en los tipos predefinidos, se le añaden

restricciones (llamadas facets) para formar nuevos tipos• Posibles restricciones:– Length, minLength, maxLength– Pattern, Enumeration– WhiteSpace– minExclusive, minInclusive, maxInclusive, maxExclusive– totalDigits, fractionDigits

Page 59: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

Tipos simples: Ejemplos de Tipos extendidos (I)

Page 60: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.3 2.3 XML Schema: Estructurando los documentos XML

Tipos simples: Ejemplos de Tipos extendidos (II)

Page 61: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLThe Extensible Stylesheet Language Family (XSL)– Creado por W3C– Familia de recomendaciones para definir como• Transformar los documentos XML• Presentarlos y visualizarlos– Formada por tres lenguajes / tecnologías

• XPATH. Lenguaje utilizado para seleccionar las diferentes partes de undocumento XML.• XSL Transformation (XSLT). Lenguaje para describir como transformar un documento XML en cualquier otra cosa.• XSL Formatting Object (XSL-FO). Incluye al anterior (XSLT) + un conjunto de objetos y propiedades para dar formato a los documentos– Utilizado principalmente como base para la creación de PDFs

Page 62: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLNotación XPATH– Utilizado para recorrer y seleccionar partes de un árbol XML– Permite navegar a través de los atributos y elementos del documento– Se utiliza dentro de otros lenguajes • Principalmente en XSLT y XSL-FO • También es la base del lenguaje de consulta para XML: Xquery– En Intalio Designer lo utilizaremos– Un ejemplo

Page 63: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLMás ejemplos:

Page 64: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLXSL Transformation ó XSLT– Lenguaje basado en XML para describir como hacer la transformación de un documento XML a otro tipo de documento

• A texto plano• A formatos para su presentación en navegador: HTML, XHTML, WAP• A otra estructura de XML diferente: XML• A formato que permita su posterior procesamiento para impresión: XSLFO• … A cualquier cosa

– Utiliza XPATH para seleccionar las partes del documento de origen a transformar

Page 65: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLFlujo de trabajo con XSLT

Page 66: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.4 XSL: Transformando XMLEjemplo de transformación

Page 67: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.5 Edición de documentos XML¿Cómo edito un documento XML?¿Cómo edito un documento XML?– Con cualquier programa que nos permita editar “texto plano”

• Bloc de Notas• Microsoft Word• OpenOffice Writer• …

– Editores que son capaces de validar que un documento esté bienformado, que cumpla la gramática de DTD’s y XML Schema, …

• Altova XMLSpy (Comercial)• Gratuitos: EditPlus, UltraEdit, Open XML Editor, …

– Los entornos de programación tradicionales también soportancaracterísticas comunes a los anteriores

• ECLIPSE también en Intalio Designer• Netbeans

Page 68: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

2.5 Edición de documentos XML

Page 69: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

Sub Unidad 3:Sub Unidad 3:Describiendo servicios con WSDL

Temas:3.1 Estructura de un documento WSDL3.2 Elementos de WSDL3.3 Diseñando el contrato para los servicios

Page 70: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.1Estructura de un doc. WSDL

� Web Service Description Languaje (WSDL)– Es el mecanismo de los servicios web para describir el servicio– Puede verse como la “interfaz” ó contrato que proporciona el Proveedor

del Servicio– Proporcionan al Solicitante del Servicio

• Estructura de los mensajes de solicitud / salida• Localización física (address) del servicio (endpoint)

Page 71: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.1Estructura de un doc. WSDL

� ¿Dónde se sitúa WSDL?

Page 72: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.1Estructura de un doc. WSDL� Estructura de un documento WSDL

– Son documentos basados en XML con un elemento raíz definitions y un conjunto de elementos• Que describen el servicio y como un punto de acceso ó endpointque implementa el servicio es accesible– Contienen DOS secciones• Descripción Abstracta ó lógica

– Describe el servicio en alto nivel, en términos “neutrales”– No referencia ninguna tecnología

• Descripción Concreta– Define como el punto de acceso que implementa el servicio es “expuesto en la red”– Se define el protocolo de transporte concreto (HTTP, SOAP)

Page 73: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL

Fichero WSDL

Page 74: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� Elemento raíz: definitions

– Elemento Raíz de cada documento WSDL– Engloba al resto de secciones

Page 75: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� Types (II) – Ejemplo de importación de un esquema externo:

Page 76: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� Types (III)

– Ejemplo de definición de elementos internamente:

Page 77: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� Messages y part

– Definen los mensajes que se utilizarán en las operaciones del servicio– Cada mensaje contiene uno o más elementos part

• Cada elemento part se enlaza a un tipo de datos de XML Schema, bien definido en la sección Type o bien primitivo– Ejemplo con tipos de datos externos:

Page 78: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� porType y operations

– Un portType -> Conjunto de operaciones con un nombre– Cada operación se define con una cláusula operation– En WSDL 2.0, portType ha sido reemplazado por interface– Similar al concepto de “Clase” en paradigma orientado a objetos– Ejemplo:

Page 79: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL� Input y output (utilizados con porType) (I)

– Representan los mensajes de entrada (input) y salida (output) de cada operation– Se enlazan con mensajes definidos en la sección messages– Ejemplo (Request-Response)

Page 80: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL

� Binding (I)– El protocolo de transporte concreto utilizado para acceder al servicioa través del endpoint– Define como los mensajes abstractos son transformados al tipo dedatos concreto utilizado por el punto de acceso– Tiene una estructura similar al portType

• Contiene también elementos operations• Atributo type: contiene el nombre del PortType con el que se

enlaza• Contiene el elemento <soap:binding style=“…” transport=“..”> indica el estilo de codificación y el transporte por defecto para cada operación• El atributo style debería establecerse al valor document; el estilo rpc se mantiene por compatibilidad con XML-RPC

Page 81: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL

� Binding: ejemplo

Page 82: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL

� Service– Una colección de port relacionados. Estos elementos son repositorios que permiten organizar los puntos de acceso al servicio

� port– Establece el punto de acceso al servicio físico (endpoint) para un binding.– Ejemplo:

Page 83: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.2 Elementos de WSDL3.2 Elementos de WSDL

� import– Permite importar las definiciones de tipos de datos de un WSDLExterno (SOLO los XML Schema de dicho WSDL)<wsdl:import namespace=“urn:umu:atica:ServicioContabilidad"

location=“./ServicioContabilidadUMU.wsdl"/>� documentation

– Utilizado para añadir información adicional, comentarios …– Ejemplo:

Page 84: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.3 Diseñando el contrato3.3 Diseñando el contrato� Pasos para crear el WSDL (Diseñar el contrato)

1. Definir los tipos de datos (XML Schema que utilizarán los servicios)

• En la sección types ó en XML Schemas externos2. Definir los mensajes que utilizarán los servicios

• En la Sección messages del WSDL3. Definir las interfaces utilizadas por los servicios

• Crear el portType y las operaciones4. Definir el binding entre los mensajes utilizados por la interfaz y la representación concreta de los datos5. Definir los detalles del transporte para cada uno de los servicios

Page 85: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

3.3 Diseñando el contrato3.3 Diseñando el contrato� Edición visual de WSDL con ECLIPSE

Page 86: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4. Formato de los mensajes en los servicios: SOAP y REST

1. Introducción a SOAP2. Estructura de los mensajes SOAP3. Introducción a los servicios RESTful

Page 87: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4. Formato de los mensajes en los servicios: SOAP y REST

4.1 Introducción a SOAP4.2 Estructura de los mensajes SOAP4.3 Introducción a los servicios RESTful

Page 88: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4.1 Introducción a SOAP

Donde se sitúa SOAP

Page 89: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4.1 Introducción a SOAP

� Objetivo de SOAP– Especificar como organizar la información de forma estructurada y tipada usando XML para que sea intercambiada entre los extremos de la invocación– Creado por el W3C (versión actual 1.2), y definido formalmente como:

“Protocolo ligero para el intercambio de información en una arquitectura distribuida y descentralizada”

Page 90: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4.2 Estructura de los mensajes SOAP

� Estructura general de los mensajes SOAP– Estructura bastante simple:

• SOAP envelope– “Contenedor” de cada mensaje

� – Dentro del mismo, dos secciones:• header (cabecera), contienemeta-información y los headerblocks (mecanismo extensión)• body, guarda el contenido delmensaje (payload)

Page 91: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4.2 Estructura de los mensajes SOAP

� Ejemplo

Page 92: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

4.3 Servicios RESTful4.3 Servicios RESTful

� ¿Qué es REST?– Representational State Transfer• Fruto de una Tesis Doctoral de Roy Fielding• NO es un protocolo o una tecnología, sino un estilo “arquitectónico”– Intento de implementar una arquitectura SOA mas ligera

• Tan sencilla como enviando recibiendo mensajes directamente sobre HTTP (Hypertext Transfer Protocol)

� Servicios RESTful– Alternativos a SOAP• El centro de los servicios es el concepto de RECURSO, en vez de las acciones

Page 93: Parte II: SOA - somoslibres.org · – Cada uno de los web services son parte de SOA ... integración de software, ... completa de J2EE 5, con soporte para servicios web

M.Sc. Ing. Daniel Alejandro Yucra SotomayorM.Sc. Ing. Daniel Alejandro Yucra Sotomayorhttp://danielyucra.somoslibres.orghttp://danielyucra.somoslibres.org

Contactos: [email protected]: [email protected]@[email protected]

¿Preguntas ?¿Preguntas ?