El documento trata sobre el desarrollo y consumo de servicios web. Explica brevemente qué son los servicios web, sus componentes y estándares como SOAP, WSDL y UDDI. Luego describe la creación de servicios web mediante ejemplos y el consumo de servicios web a través de los archivos generados en el cliente como .wsdl, .disco y .cs. Finalmente, aborda cuestiones de seguridad en servicios web como WS-Security y SAML.
2. (CC) Antonio Jesús Contreras Sánchez Septiembre 2002
Introducción a los Servicios Web
Introducción a los Servicios Web
¿Qué son?
Justificación de la tecnología
Componentes
Estándares de los servicios Web
Creación de Servicios Web
Consumo de Servicios Web
3. (CC) Antonio Jesús Contreras Sánchez Septiembre 2003
Qué son los servicios Web - I
Definición que varía según el autor,
dependiendo de si el servicio incluye todos
los componentes del Web Services Protocol
Stack.
A “grosso modo”, podemos definirlos como
un conjunto de tecnologías que permiten
computación distribuida
Cambio de filosofía respecto a la
computación distribuida tradicional:
Cliente – servidor a peer-to-peer
4. (CC) Antonio Jesús Contreras Sánchez Septiembre 2004
Qué son los servicios Web - II
Definición estricta:
un Servicio Web es una colección de protocolos y
estándares que sirve para intercambiar datos entre
aplicaciones. Las aplicaciones que proporcionan
datos (servicio) pueden ser:
Descritas por un lenguaje de descripción del servicio
(WSDL)
Publicadas en un registro (UDDI)
Encontradas en ese registro
Invocadas para usar el servicio, usando un formato de
mensaje (SOAP)
5. (CC) Antonio Jesús Contreras Sánchez Septiembre 2005
Qué son los servicios Web - III
Definición genérica:
Relajación de la definición estricta. No
tienen por que estar todos los elementos.
conjunto de tecnologías que permiten
utilizar funcionalidad existente en otras
aplicaciones (servicio) a través de una
infraestructura Web.
6. (CC) Antonio Jesús Contreras Sánchez Septiembre 2006
Justificación de la tecnología
Reutilización: aprovechar recursos
existentes que serían costosos de
implementar
Mejorar tecnologías previas:
RPC
Java - RMI
CORBA
DCOM
Problemas: firewalls, no multiplataforma,
tecnología propietaria.
Soportado por la industria
7. (CC) Antonio Jesús Contreras Sánchez Septiembre 2007
Justificación de la tecnología - II
No todo son ventajas:
Problemas con transacciones
Ineficiente: basado en texto
Problemas de seguridad: basado en http
8. (CC) Antonio Jesús Contreras Sánchez Septiembre 2008
Componentes de un Servicio Web
Servicio (f(x)):
Proveedor de
servicio Service
provider)
Registro de
servicios (Service
broker)
Solicitante de
servicios (Service
requester)
9. (CC) Antonio Jesús Contreras Sánchez Septiembre 2009
Estándares de Servicios Web - I
XML (eXtended Markup Language):
Estándar de manejo de datos del W3C
El restos de estándares se basan en
éste.
Otras tecnologías asociadas: Xschema,
Xpath, XSL.
La información es fácilmente serializable:
son cadenas de texto, fácil transporte por
la red
10. (CC) Antonio Jesús Contreras Sánchez Septiembre 20010
Estándares de servicios Web
SOAP (Simple Object Access Protocol):
Evolución de xml-rpc
Usa http como transporte (w3c)
No ligado a tecnologías de componentes
No ligado a lenguajes de programación
Mensaje soap:
Envoltorio
Cabecera
Cuerpo
11. (CC) Antonio Jesús Contreras Sánchez Septiembre 20011
Estándares de servicios Web
WSDL (Web Services Description
Lenguaje):
Estándar de descripción de servicios.
Soap no especifica nada.
Trata de describir una aplicación
(servicio) para saber que hace, como lo
hace y donde se localiza.
12. (CC) Antonio Jesús Contreras Sánchez Septiembre 20012
Estándares de servicios Web
UDDI (Universal Description, Discovery and
Integration):
Existe un gran numero de servicios disponibles:
necesidad de organización.
Directorio para almacenar información de
servicios web, entre otra, su descripción (wsdl)
tModel: abstracción técnica,metadatos e
interfaces del servicio (generalmente en wsdl)
Dos acciones básicas: pedir información y
publicar información.
13. (CC) Antonio Jesús Contreras Sánchez Septiembre 20013
Creación de servicios web
Antes de nada
Hola mundo.
14. (CC) Antonio Jesús Contreras Sánchez Septiembre 20014
Creación de servicios web
Ejercicio 1:
Paso de parámetros: sumar dos enteros
15. (CC) Antonio Jesús Contreras Sánchez Septiembre 20015
Creación de servicios web
Ejercicio 2:
Tipos de datos complejos: DataSet.
16. (CC) Antonio Jesús Contreras Sánchez Septiembre 20016
Creación de servicios web
Ejercicio 3:
Uso de encabezados soap para
autenticación.
17. (CC) Antonio Jesús Contreras Sánchez Septiembre 20017
Creación de servicios web
Ejercicio 4:
Excepciones soap.
18. (CC) Antonio Jesús Contreras Sánchez Septiembre 20018
Consumo de Servicios Web
Ficheros generados por Visual
Studio .net:
Archivo .wsdl
Archivo .disco
Archivo .map
Archivo .cs
23. (CC) Antonio Jesús Contreras Sánchez Septiembre 20023
.wsdl:DÓNDE
Servicio: conjunto de puertos, dónde puerto
indica la URI donde se hospeda el servicio
<service name="ej1_sumar">
<port name="ej1_sumarSoap" binding="s0:ej1_sumarSoap">
<soap:address
location="http://localhost/WebService1/ej1_sumar.asmx" />
</port>
</service>
24. (CC) Antonio Jesús Contreras Sánchez Septiembre 20024
.disco
Permite establecer vínculos con las
descripciones del servicio, que pueden ser
publicas o no
<contractRef
ref="http://localhost/WebService1/ej1_sumar.asmx?wsdl"
docRef="http://localhost/WebService1/ej1_sumar.asmx"/>
25. (CC) Antonio Jesús Contreras Sánchez Septiembre 20025
.cs
Clase que actúa como proxy en el
cliente.
Aporta transparencia: no tenemos que
preocuparnos de conexiones,
mensajes soap, etc.
26. (CC) Antonio Jesús Contreras Sánchez Septiembre 20026
Consumo de Servicios Web
Ejemplo 1:
Sumar 2 números
27. (CC) Antonio Jesús Contreras Sánchez Septiembre 20027
Consumo de Servicios Web
Ejercicio 1:
Servicio de traducción automática:
Altavista Babelfish.
28. (CC) Antonio Jesús Contreras Sánchez Septiembre 20028
Consumo de Servicios Web
La url de descripción de servicio es
conocida: no es necesario su
descubrimiento:
http://www.xmethods.net/sd/2001/BabelFishService.wsdl
29. (CC) Antonio Jesús Contreras Sánchez Septiembre 20029
Consumo de Servicios Web
Ejercicio 2: descubrimiento de
servicios web
http://uddi.microsoft.com/
http://services.xmethods.net/
30. (CC) Antonio Jesús Contreras Sánchez Septiembre 20030
Consumo de Servicios Web
31. (CC) Antonio Jesús Contreras Sánchez Septiembre 20031
Consumo de Servicios Web
Ejercicio 3:
Rellenar un DataGrid con un DataSet.
32. (CC) Antonio Jesús Contreras Sánchez Septiembre 20032
Consumo de Servicios Web
Ejercicio 4:
Cabeceras soap.
33. (CC) Antonio Jesús Contreras Sánchez Septiembre 20033
Consumo de Servicios Web
Ejercicio 5:
Excepciones soap.
34. (CC) Antonio Jesús Contreras Sánchez Septiembre 20034
Seguridad en servicios Web
Soap no propone nada acerca de seguridad
Primera solución: aplicar políticas de seguridad como el resto
de aplicaciones web:
SSL
IIS/windows: mecanismos de autenticación
https
Problema:
SSL es de una capa inferior, no distingue entre varios servicios
web del mismo punto de red, y https esta ligado con http
Atados a plataforma windows, problemas con servicios web
complejos multiplataforma
Mecanismos ajenos a los protocolos de servicios web
Varias soluciones propuestas por la industria
35. (CC) Antonio Jesús Contreras Sánchez Septiembre 20035
Seguridad en servicios Web
WS-Security:
Propuesto por IBM, Microsoft y VeriSign,
actualmente gestionado por Oasis
Extensión de SOAP
Intercambio de tokens de seguridad entre
pares: integridad de mensaje,
confidencialidad y autenticación
Problema en servicios complejos, gran
trafico de tokens de seguridad
36. (CC) Antonio Jesús Contreras Sánchez Septiembre 20036
Seguridad en servicios Web
SAML (Security Assertion Markup
Language): framework para
intercambiar datos de autenticación y
autorización en servicios web.
Conceptos de proveedor de
identidades y proveedor de servicios
Propuesto por Oasis
Mecanismo Single Sign-on
37. (CC) Antonio Jesús Contreras Sánchez Septiembre 20037
Enlaces de interés
Generales
http://msdn.microsoft.com/library/spa/default.asp?
url=/library/SPA/cpguide/html/cpconhandlingraisingexceptionsinxmlwebservices.asp
es.wikipedia.org
Sobre SOAP:
http://www.perfectxml.com/articles/xml/soapguide.asp
http://www.perfectxml.com/soap.asp
Sobre WSDL:
http://www.w3.org/TR/wsdl
http://www.devxpert.com/tutors/wsdl/wsdl.asp
http://www-128.ibm.com/developerworks/webservices/library/ws-soap/
http://www.pocketsoap.com/wsdl/
Sobre UDDI:
http://www.uddi.org/
http://uddi.microsoft.com/
http://www.soapclient.com/uddisearch.html
http://www-306.ibm.com/software/solutions/webservices/uddi/
http://www.uddicentral.com/
http://www.zvon.org/xxl/uddiReference/Output/
http://services.xmethods.net/