Está en la página 1de 43

TEMA 6: WEB SERVICES

Aplicaciones Telemticas
David Melendi Palacio Abel Rionda Rodrguez

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

Introduccin Problemas tecnologas de integracin:


Problemas en algunos dispositivos

Consumen muchos recursos computacionales (DOT, TPMs, )

Son demasiado complejos (CORBA, Microsoft Transaction Server, DCOM, etc.)


Curva de aprendizaje muy pronunciada

Introduccin Problemas tecnologas de integracin:

Utilizan protocolos de propsito especfico (como IIOP):


Tpicamente utilizan asignacin dinmica de puertos
No se extiende su uso debido a los Firewalls de las empresas Frente a aquellos basados en texto plano

Tienen naturaleza binaria: trfico no interpretable Difcil de establecer una Poltica de Seguridad

Introduccin Cmo se soluciona esto?

Existen tecnologas con consumos de recursos reducidos:


Servidores Web implementados desde 512 bytes Mltiple oferta de servidores Web libres

IPic - A Match Head Sized Web-Server Hariharasubrahmanian Shrikumar (http://www-ccs.cs.umass.edu/~shri/iPic.html

Introduccin Cmo se soluciona esto?

Existen protocolos ampliamente extendidos:

HTTP, FTP, SMTP, etc. Muchos trabajan con simples mensajes de texto Se pueden reutilizar para implementar diferentes modelos de comunicacin:
SMTP Modelo Sncrono One-Way
2 4 1 Componente 1 (Emisor)

HTTP Modelo Sncrono Request/Reply


2 6

Componente 1 (Emisor)

Componente 2 (Receptor)

3 5

Componente 2 (Receptor)

4 5

Introduccin Puede ser la Web una solucin? Nace como repositorio de documentos:

Pginas estticas en lenguaje HTML Humanos como destinatarios de la informacin


Busca un fichero en el disco duro Cadena de peticin HTTP Conexin TCP Conexi Solicitud de fichero

Enva fichero como resultado

Cadena de respuesta HTTP

Introduccin La Web como entorno de aplicaciones:

Aplicaciones generan documentos de forma dinmica con diferentes tecnologas: PHP, ASP, JSP, Servlets, CGIs, etc. Humanos como principales destinatarios (B2C)
Ejecucin del programa Cadena de peticin HTTP Conexin TCP Conexi Solicitud de ejecucin

Cadena de respuesta HTTP Resultados

Introduccin La Web como entorno de aplicaciones:

Ejemplo de aplicacin Web dinmica usando PHP

Indique la secuencia de eventos cliente navegador/servidor (desde la peticin HTTP hasta la correspondiente respuesta) suponiendo:
Un archivo .html como el de la figura sin la lnea <?php ?>. Un archivo. php como el que se muestra en la figura.

Introduccin La Web como repositorio de servicios:

Funciones que permiten ejecutar acciones concretas Se ofrecen para ser ejecutados por otros procesos

WEB SERVICES (BSB)


Programa Servidor

Cadena de peticin HTTP Conexin TCP Conexi

Cadena de respuesta HTTP Resultados

Programa Cliente

Introduccin Son aplicaciones modulares e independientes que pueden ser descritas, publicadas, localizadas e invocadas a travs de la red Los Web Services se sustentan sobre la siguiente pila tecnolgica:
Descubrimiento Descripcin Empaquetamiento Transporte Red

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

La Pila Tecnolgica tras los Web Services Descubrimiento:

Mecanismo para encontrar los descriptores de los web services Solucin ms extendida: UDDI Solucin IBM+Microsoft: WS-Inspection Mecanismo para describir un web service: qu red, qu transporte, qu protocolo de empaquetamiento, Estndar de facto: WSDL ? Otros: RDF del W3C o DAML de DARPA

Descripcin:

La Pila Tecnolgica tras los Web Services Empaquetamiento:

Establece un formato de datos comprensible Ms extendido: SOAP Otros: XML, HTML,

Transporte:

Mecanismo para la comunicacin directa entre aplicaciones Intercambio datos localizaciones distintas Estndar: TCP, HTTP, SMTP No estndar: Jabber (asncrono)

La Pila Tecnolgica tras los Web Services Red:

Mecanismos para realizar tareas bsicas de comunicacin Direccionamiento, encaminamiento, etc. Internet

La Pila Tecnolgica tras los Web Services

Infraestructura Bsica:
XML Internet WSDL UDDI SOAP Formato Universal de Datos Medio de Comunicacin Descripcin de los Servicios Publicacin y Descubrimiento de Servicios Gestin del Intercambio de Informacin

La Pila Tecnolgica tras los Web Services Los servicios Web como Middleware muy verstil:

MOM o de mensajera: Para implementar un sistema de mensajera puro basado en mensajes SOAP. DOT u objetos distribuidos: Para implementar mtodos de objetos remotos (Uso de tecnologas como WSDL como IDL, generacin de stubs, registro de servicios mediante UDDI,)
Ms usada

La Pila Tecnolgica tras los Web Services


Las tecnologas de la pila no solucionan todo:
Seguridad Cifrado Workflow

Otras iniciativas de estandarizacin:

XML Protocol, XKMS, SAML, XML-Dsig, XML-Enc, XSD, P3P, WSFL, Jabber, ebXML, etc. Las especificaciones en torno a los servicios Web se renen en WS-*.
WS-Security WS-I

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

SOA en Web Services Se sigue un patrn arquitectnico llamado SOA (Service-Oriented Architecture):
Registro De Servicio Bsqueda Publicacin

Solicitante De Servicio Invocacin

Proveedor De Servicio

SOA en Web Services Proveedor de Servicio:

Responsable de crear una descripcin de un servicio y publicarla en un Registro de Servicio Recibe invocaciones a web services desde uno o varios Solicitantes de Servicio Similar al lado servidor en un modelo cliente-servidor

Registro De Servicio Solicitante De Servicio

Publicacin Proveedor De Servicio

Invocacin

SOA en Web Services Solicitante de Servicio:

Invoca web services de Proveedores de Servicio utilizando descripciones que obtiene de un Registro de Servicio Similar al lado cliente en un modelo cliente-servidor

Bsqueda Solicitante De Servicio

Registro De Servicio

Invocacin

Proveedor De Servicio

SOA en Web Services Registro de Servicio:

Publica descripciones enviadas por Proveedores de Servicio y permite hacer bsquedas a los Solicitantes de Servicio Cuando un Solicitante obtiene la informacin que necesita, deja de utilizar el Registro para comunicarse con el Proveedor

Bsqueda Solicitante De Servicio

Registro De Servicio

Publicacin

Proveedor De Servicio

SOA en Web Services Arquitectura Bsica de Servicio:


2 Encontrar Web Service Registro UDDI

Cliente 3 Invocar Web Service (SOAP) Implementacin de SOAP, UDDI y WSDL Aplicacin Servidor de Aplicaciones 1 Publicar Web Service (WSDL)

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

SOAP
SOAP son las siglas de Simple Object Access Protocol Es un protocolo de comunicacin basado en mensajes que permite el intercambio de datos estructurados entre aplicaciones de un entorno distribuido Es un protocolo basado en XML que consta de:
Un mecanismo para describir qu hay en un mensaje y cmo se debe procesar Un conjunto de reglas para insertar informacin especfica de cada aplicacin Una convencin para invocar llamadas a procedimientos remotos (RPC) y procesar sus respuestas

SOAP
Los Mensajes SOAP se transportan utilizando otros protocolos como FTP, SMTP o HTTP Lo ms habitual es utilizar HTTP para el transporte de los mensajes SOAP
Mensaje HTTP SOAP Envelope Header (Opcional)

Body

SOAP
Cliente y Servidor intercambian mensajes HTTP Peticiones y respuestas SOAP se mapean a peticiones y respuestas HTTP En una invocacin se utilizan:
La URI del destinatario El nombre del procedimiento remoto Los parmetros de ejecucin

Cliente

HTTP

HTTP

Aplicacin Servidor de Aplicaciones

SOAP SOAP sobre HTTP:

Ejemplo de Peticin

POST http://AAA.BBB.CCC.DDD:8080/ConsultaAlmacen HTTP/1.1 Host: AAA.BBB.CCC.DDD Content-type: text/xml; charset=utf-8 Content-length: 383 SOAPAction: <?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/> <SOAP-ENV:Body> <DatosChequeo> <arg0 xsi:type=xsd:string>947-TI</arg0> <arg1 xsi:type=xsd:int>5</arg1> </DatosChequeo> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAP SOAP sobre HTTP:


HTTP/1.1 200 OK Content-type: text/xml; charset=utf-8 Content-length: 388 <?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/> <SOAP-ENV:Body> <RespuestaConsultaAlmacen> <ResultadoChequeo xsi:type=xsd:boolean>true</ResultadoChequeo> </RespuestaConsultaAlmacen> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Ejemplo de Respuesta

Formato de los mensajes SOAP


SOAP est basado en XML:
Es Estndar:
Gestionado por el W3C Independiente de lenguajes y plataformas Documentos fcilmente definidos, validados, transformados, publicados,

Es Universal: Es Fcil:

Un documento XML tiene representacin en forma de rbol (los navegadores lo representan utilizando el llamado rbol DOM) Las APIS que recorren un XML tienen mtodos con las signatura tpica de recorrer rboles.

<?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope > <SOAP-ENV:Body> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Formato de los mensajes SOAP


Algunas notas sobre XML, XML Schema y namespaces

Un namespace o espacio de nombres permite incluir distintos vocabularios de etiquetas y atributos en un mismo documento XML. Elimina la ambigedad.

Qu pasara con <Direccion> si no tuviera el espacio de nombres?

Formato de los mensajes SOAP


Algunas notas sobre XML, XML Schema y namespaces
Ejemplo de XML Schema Posible XML conforme al anterior esquema

La estructura del XML se define usando XML Schema y DTD.

Un XML Schema permite definir para un documento XML: El vocabulario (etiquetas y atributos) El modelo (estructura y relaciones) Los tipos de datos

Formato de los mensajes SOAP


Mensajes llamados sobres SOAP o SOAP Envelopes:
<SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/> SOAP Envelope Header (Opcional) <SOAP-ENV:Header> <t:inmediateChild xmlns:t=http:> <t:childElem> Datos </t:childElem> </t:inmediateChild> <SOAP-ENV:Header> <SOAP-ENV:Body> <m:Client xmlns:t=http:> <nombre>Pepe</nombre> <DNI>Pepe</DNI> <Direccion>Pepe</Direccion> </m:Client> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Body

Formato de los mensajes SOAP Cabecera y cuerpo del SOAP Envelope:


Claramente delimitados Pueden contener cualquier documento XML vlido y bien formado
<SOAP-ENV:Header> <t:inmediateChild xmlns:t=http:> <t:childElem> Datos </t:childElem> </t:inmediateChild> <SOAP-ENV:Header> <SOAP-ENV:Body> <m:Client xmlns:t=http:> <nombre>Pepe</nombre> <DNI>Pepe</DNI> <Direccion>Pepe</Direccion> </m:Client> </SOAP-ENV:Body>

Formato de los mensajes SOAP La Cabecera del SOAP Envelope:


Es opcional Est compuesto por bloques de cabecera Contiene datos sobre cmo debe ser procesado el mensaje (encaminamiento, autenticacin, priorizacin, informacin transaccional, )
SOAP Envelope Bloque de Cabecera Bloque de Cabecera Bloque de Cabecera

Header (Opcional)

Formato de los mensajes SOAP La Cabecera del SOAP Envelope:


<?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/> <SOAP-ENV:Header> <t:transaction xmlns:t=una_URI s:mustUnderstand=true> <transactionId>1234</transactionId> </t:transaction> <p:Priority xmlns:p=otra_URI> <MuyMuyMuyAlta/> </p:Priority> <SOAP-ENV:Header> <SOAP-ENV:Body> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Bloques de Cabecera

mustUnderstand: Si no se entiende este bloque de cabecera, debe rechazarse el mensaje

Formato de los mensajes SOAP El Cuerpo del SOAP Envelope:


Es el mensaje en s mismo Slo hay un cuerpo
<?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/> <SOAP-ENV:Header> <SOAP-ENV:Header> <SOAP-ENV:Body> <m:devuelveCotizacion xmlns:n=urn:ServicioCotizaciones> <empresa xsi:type=xsd:string>Arcelor</empresa> </m:devuelveCotizacion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Cuerpo

Tipos de datos en SOAP Se pueden expresar de 3 formas

Poniendo el tipo en la etiqueta de forma explcita


<persona> <nombre xsi:type=xsd:string>Pepe</nombre> </persona>

Indicando un esquema XML

<persona xmlns=esquemaPersonas.xsd> <nombre>Pepe</nombre> </persona>

Proporcionando otro tipo de esquema en el que se definan esos tipos


<persona xmlns=urn:otro_tipo_de_esquema> <nombre>Pepe</nombre> </persona>

Tipos de datos en SOAP


Tipos de datos existentes Adoptados de XML Schema

Tipos de datos en SOAP Tambin Arrays y Estructuras tipo registro:


<persona> <nombre xsi:type=SOAP-ENC:Array SOAP-ENC:arrayType=se:string[2]> <se:string>Juan</se:string> <se:string>Luis</se:string> </nombre> </persona>

<nombres xsi:type=SOAP-ENC:Array SOAP-ENC:arrayType=xsd:string[2,2]> <nombre>Juan</nombre> <nombre>Luis</nombre> <nombre>Borja</nombre> <nombre>Mari</nombre> </nombres>

Otros elementos de SOAP


Fault:

Tipo especial de mensaje Indica algn error procesando un mensaje SOAP Aparece en el cuerpo de un mensaje SOAP

<?xml version=1.0 encoding=UTF-8?> <SOAP-ENV:Envelope > <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>Client.Authentication</faultcode> <faultstring>Nombre de Usuario Incorrecto</faultstring> <faultactor>http://www.it.uniovi.es</faultactor> <details> <! Detalles especificos de aplicacion --> </details> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

faultcodes: VersionMismatch; MustUnderstand; Server; Client

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

WSDL Preguntas cuando se quiere acceder a un WebService:


Qu tipo de mensaje se le debe enviar? Qu datos de entrada necesita? Cmo son los resultados que devuelve? A dnde hay que enviar la invocacin? Qu ponemos dentro del sobre SOAP? A dnde enviamos el sobre? Qu protocolo tenemos que utilizar?

SOAP no da respuesta a estas preguntas:

WSDL Podramos

Poner una pequea descripcin textual de cmo usar el web-service en una pgina web:
Demasiado impreciso Puede llevar a malentendidos

Podramos poner ejemplos de utilizacin en la documentacin:


Demasiado trabajo para los desarrolladores

Necesitamos un mecanismo ms formal:

Sin ambigedades Que permita construir herramientas de soporte al desarrollo WSDL

WSDL
WSDL son las siglas de Web Service Description Language Es un lenguaje de descripcin que permite indicar qu hace, dnde est y cmo se usa un Web Service Es similar al lenguaje IDL en otras herramientas middleware: RPCs, CORBA, Es un estndar para describir la sintaxis de invocacin de un Web-Service Propuesto como estndar al W3C por Microsoft, IBM y otros a finales de 2.000 Actualmente versin 2.0 (http://www.w3.org/TR/wsdl20)

WSDL WSDL describe:

El modelo de comunicacin: sncrono por peticin/respuesta, de un sentido (one-way), Los tipos de datos de las entradas y salidas (basados en XML Schema) La localizacin del servicio

El esquema que define la estructura del mensaje Informacin sobre los errores (los Fault de SOAP)

WSDL

<?xml version="1.0"?> <definitions name="StockQuote targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all><element name="tickerSymbol" type="string"/></all> </complexType> </element> <element name="TradePrice"> <complexType> <all><element name="price" type="float"/></all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message>

Ejemplo:

WSDL

<message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>

Ejemplo (continuacin):

WSDL
Dentro de una descripcin WSDL hay:
types: Definiciones de Tipos message: representan los datos intercambiados portType: Equivale a las operaciones, que hacen referencia a un mensaje de entrada y otro de salida. binding: especifica el protocolo a utilizar y las especificaciones de formato de datos para las operaciones definidas en portType port: Que especifica una direccin a la que conectarse service: Que se emplea para agregar puertos relacionados

WSDL Permite generar cdigo de forma dinmica:


Precompilador (*) FICHERO WSDL Precompilador (*)

CLIENTE

SERVIDOR

STUB Otras Lib

SOAP

SKELETON Otras Lib

(*) Ejemplo WSDL2Java de Apache

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

Taller Prctico Servicios Web Prctica usando SOAP UI http://www.soapui.org

Herramienta para inspeccionar, probar y desarrollar servicios Web de forma visual.

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

UDDI SOAP y WSDL solucionan todo?


Con su localizacin

Con WSDL tengo una descripcin detallada del webservice

Pero

Cmo encuentro un proveedor de servicios? Qu servicios proporciona ese proveedor? De dnde saco las descripciones WSDL?

UDDI Puede utilizarse un registro centralizado


Alta Funcionalidad UDDI

Repositorio WSDL

Simplicidad

E-mail, FTP, HTTP Esttico Dinmico

UDDI
UDDI son las siglas de Universal Description and Discovery Integration Es toda una tecnologa que permite descubrir webservices tanto en tiempo de diseo como en tiempo de ejecucin Creada a finales de 2000 por Ariba, IBM y Microsoft Ahora controlada por OASIS, consorcio de ms de 310 empresas (http://www.uddi.org), versin 3.0 de 2.004 Permite disponer de registros centralizados de webservices Su complejidad ha evitado su adopcin

SOA y UDDI Registro UDDI:

Proveedores proporcionan descripciones en WSDL Solicitantes obtienen descripciones del registro

Bsqueda Solicitante De Servicio

Registro UDDI

Publicacin En WSDL

Proveedor De Servicio

UDDI UDDI consiste en:


Protocolos:
Publicacin y Bsqueda de web-services Control en el acceso al registro Comunicacin entre registros UDDI

Tipos de datos y esquemas propios Libreras de programacin (APIs)


Interaccin desde el Proveedor: Publicacin Interaccin desde el Solicitante: Bsqueda

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

WS-*

WS-* son el conjunto de especificaciones que se han publicado en torno a los servicios Web
WS-I WS-Addressing WS-Security WS-Transaction

WS-* WS-I: Web Services Interoperability


Esfuerzo de diferentes agentes de la industria para definir servicios Web interoperables. Por qu? En ocasiones las especificaciones incorporan caractersticas complejas o ambiguas que las implementaciones evitan
WS-I Basic Profile: Define buenas prcticas en torno a SOAP, WSDL o UDDI para garantizar interoperabilidad y evitar implementaciones deficientes

WS-* WS-I: Web Services Interoperability

Ntese esta recomendacin del perfil 1.2 WS-I Basic Profile: Intenta eliminar una ambigedad en la spec de SOAP que puede conducir a errores de implementacin y as potenciar la interoperabilidad http://www.ws-i.org/Profiles/BasicProfile-1.2.html

WS-* WS-Addressing

Define dos elementos para incluir en las cabeceras de los mensajes SOAP y permitir el enrutado del mensaje:
EndPoint References: Informacin sobre el destino de la peticin

Message Information Headers: Informacin sobre el origen de la peticin. Ntese que el elemento replyTo permite Servicios Web Asncronos.

WS-* WS-Addressing

Define dos elementos para incluir en las cabeceras de los mensajes SOAP y permitir el enrutado del mensaje:
Message Information Headers: Informacin sobre el origen de la peticin. Ntese que el elemento replyTo permite Servicios Web Asncronos. No es necesario usar la misma conexin HTTP Peticin/Respuesta (sncrona)!

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

REST Web Services Servicios Web tipo REST (Representational State Transfer)

Surge como respuesta a la excesiva complejidad de los servicios Web y el creciente nmero de especificaciones (WS-*) Objetivo de mantener las cosas simples
Eliminacin de protocolos SOAP, WSDL o UDDI

REST Web Services: Los servicios son recursos a los que se accede con un identificador nico (URL) y soportan una serie de operaciones (mtodos HTTP). La representacin del recurso debe darse en un formato determinado (e.g. XML)

REST Web Services Servicios Web tipo REST (Representational State Transfer)
Ejemplo: Se pretende modelar el siguiente servicio Web que tiene los siguientes mtodos remotos con una aproximacin tipo REST

REST Web Services Servicios Web tipo REST (Representational State Transfer)
Identificador Operacin

Representacin (XML)

REST Web Services Servicios Web tipo REST (Representational State Transfer)
Identificador Representacin (XML) Operacin

Si fuera getCoche (String marca, String modelo) ?

REST Web Services Servicios Web tipo REST (Representational State Transfer)
Identificador Representacin (XML) Operacin

REST Web Services Servicios Web tipo REST (Representational State Transfer)
Identificador Representacin (XML) Operacin

Identificador

Operacin

REST Web Services Servicios Web tipo REST (Representational State Transfer)

La gran ventaja de los servicios Web REST es su simplicidad

Qu necesito para implementar los servicios REST anteriores?

Algunos escenarios son difciles de modelar con el modelo REST por lo que habra que utilizar WS tradicionales. No contempla utilidades como seguridad, gestin de transacciones,

NDICE Introduccin La Pila Tecnolgica tras Web Services SOA en Web Services SOAP WSDL Taller prctico con SOAP UI UDDI WS-* REST Web Services ESB Herramientas de soporte

ESB Comunicacin Web Services:

Entre solicitante y proveedor de servicio Alta complejidad


Interfaz de Gestin

Empleado

Cobros

Gestin de Flotas Pedidos

Facturacin

ESB Bus de servicios:

Enterprise Service Bus

Empleado

Interfaz de Gestin

Bus de Mensajes

Gestin de Flotas

Cobros

Facturacin

Pedidos

ESB Mule

ESB Mule
Mule: Especificaciones tcnicas

ESB Apache ServiceMix

Herramientas de soporte

Ms conocimientos?

NOOOO!!!

Existen muchas herramientas de soporte al desarrollo:


Para Para Para Para trabajar con UDDI trabajar con WSDL trabajar con SOAP hacer web-services

Herramientas de soporte

Algunas herramientas para UDDI:

AUDDI: navegador, apis, herr. validacin, etc. jUDDI: registro y herramientas java Herramientas de Microsoft:
Enterprise UDDI Services en Ms. Win. Server 2003 Microsoft UDDI SDK Microsoft Visual Studio .NET WebSphere UDDI Registry WebSphere Studio Application Developer Web Services Gateway Emerging Technologies Toolkit

Herramientas de IBM:

Herramientas de soporte Algunas herramientas para WSDL:

WST: editores, herramientas de validacin, herramientas de prueba, navegadores, XMLSpy 2006 de Altova: edicin de documentos WSDL

WSDL Analyzer de Xmethods: validacin y navegacin Sun Java Studio de Sun: Generacin automtica de descripciones WSDL

Herramientas de soporte

Algunas herramientas para SOAP:

XMLSpy 2006 de Altova: creacin de sobres SOAP y depuracin de mensajes SOAP

SOAP Test Utility: Permite hacer llamadas de prueba a Web-Services SOAP UI: Testing de Web-Services SOAP Trace .Net: Permite capturar mensajes SOAP

Herramientas de soporte Algunas herramientas para crear web-services y clientes en general:


Microsoft Visual Studio .NET Sun Java Studio y plataforma J2EE de Sun: Generacin de cdigo y publicacin de servicios MapForce y Visual Web Services Builder de Altova: generacin automtica de cdigo WSDL Tool de Microsoft: generacin de cdigo Apache SOAP y Apache AXIS: infraestructura completa de desarrollo

Herramientas de soporte
Plataformas ESB:

BEA AquaLogic Service Bus Cape Clear ESB Fiorano SOA IBM WebSphere Apache ServiceMix Oracle SOA Software AG Enterprise Service Integrator Sonic SOA TIBCO IONA Artix Microsoft BizTalk Server PolarLake Integration Suite Sun Java ESB webMethods Enterprise Service Platform Apache ServiceMix Mule