Este documento proporciona una introducción a los servicios web. Define los servicios web, describe su modelo de interacción entre proveedores, registros y clientes. Explica los protocolos y estándares clave como WSDL, UDDI y SOAP. También cubre temas como la seguridad, la construcción de servicios web y el flujo de trabajo típico.
1. Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Web Services Servicios y Protocolos
WSDL
UDDI
SOAP
Richard Rossel Seguridad
rrossel@inf.utfsm.cl Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
23 de noviembre de 2004 JAVA2WSDL
Conclusiones
2. TOC Web Services
Definici´n Web Services
o
Outline
Modelo Definici´n Web Services
o
Workflow Modelo
Workflow
Servicios y Protocolos Servicios y Protocolos
WSDL
WSDL UDDI
SOAP
UDDI Seguridad
SOAP Acercamiento
Construcci´n Web Service
o
Seguridad JWS
TCPmonitor
WSDD
Acercamiento JAVA2WSDL
Conclusiones
Construcci´n Web Services
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
3. Definici´n
o Web Services
Aplicaciones Autocontenidas y Modulares Outline
Basado en est´ndares (XML,HTTP)
a Definici´n Web Services
o
Modelo
Aplicaciones se anuncian por la red Workflow
Servicios y Protocolos
Son los bloques de construcci´n para sistemas
o WSDL
UDDI
distribuidos abiertos. SOAP
Seguridad
Ensamblaje = Desarrollo
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Componentes
4. Definici´n
o Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
Compuestas con otros servicios WEB WSDL
UDDI
SOAP
Web Services predominantemente B2B Seguridad
Ejemplos, Acercamiento
Construcci´n Web Service
o
Cotizaci´n de Stock
o JWS
Mapas de rutas TCPmonitor
WSDD
Bolsa de Valores JAVA2WSDL
Autenticaci´n
o Conclusiones
5. Ejemplo Web Services
Un Web Service puede usar varios Web Service, por
Outline
ejemplo, sistema de turismo. Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Aplicacion para el Turismo
6. Modelo Web Services
Outline
Definici´n Web Services
o
Modelo
Interacci´n entre 3 roles:
o Workflow
Proveedor de Servicio Servicios y Protocolos
WSDL
Servicio de Registro UDDI
SOAP
Cliente
Seguridad
Operaciones implican: Acercamiento
Construcci´n Web Service
o
Publicaci´n
o JWS
B´squeda
u TCPmonitor
WSDD
Ligamiento, conexi´n
o JAVA2WSDL
Conclusiones
Artefactos:
Web Service Software module
Descripci´n
o
7. Modelo Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Modelo Web Service
8. Roles Web Services
Outline
Definici´n Web Services
o
Proveedor de Servicio Due˜o del servicio, Plataforma a la
n Modelo
Workflow
cual los host acceden a los servicios Servicios y Protocolos
WSDL
Servicio de Registro Dep´sito de descripciones de
o UDDI
SOAP
servicios. Proveedores publican servicios y Seguridad
clientes buscan servicios junto a su Acercamiento
descripci´n
o Construcci´n Web Service
JWS
o
TCPmonitor
Cliente Cliente que requiere cierto servicio, WSDD
JAVA2WSDL
Aplicaci´n que invoca un servicio.
o Conclusiones
Un browser manejado por una persona
Aplicaci´n sin una interfaz de usuario
o
(otro webservice)
9. Operaciones Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
Publicaci´n Proveedores publican su servicio a uno o
o UDDI
SOAP
m´s registros de servicios (o cancelan)
a Seguridad
B´squeda Clientes usan uno o m´s registros para
u a Acercamiento
Construcci´n Web Service
o
descubrir los servicios JWS
TCPmonitor
Ligamiento Clientes negocian con proveedores para usar WSDD
JAVA2WSDL
los servicios Conclusiones
10. Artefactos Web Services
Outline
Definici´n Web Services
o
Servicio Modulo de software la cual es accedido a Modelo
trav´s de una red y ofrecida por un
e Workflow
Servicios y Protocolos
proveedor de servicios WSDL
UDDI
Descripci´n Detalles de la interfaz e implementacion del
o SOAP
Seguridad
servicio. Publicados al servidor de registro o Acercamiento
al cliente. Construcci´n Web Service
o
JWS
Tipos de Datos TCPmonitor
WSDD
Operaciones JAVA2WSDL
Conclusiones
informaci´n de Ligamiento
o
Ubicaci´n de servicio (URL)
o
Puede incluir meta-datos para facilitar
descubrimiento y uso
11. Workflow Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
1. Descritas mediante un lenguaje SOAP
Seguridad
2. Se publican en alg´n registro
u Acercamiento
3. Clientes buscan servicios en registros Construcci´n Web Service
JWS
o
TCPmonitor
4. Una vez encontrada se liga WSDD
JAVA2WSDL
Conclusiones
12. Workflow Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Workflow Web Service (Modelo UDDI/SOAP)
13. Servicios y Protocolos Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
WSDL Web Service Description Language, describe Servicios y Protocolos
WSDL
el servicio, ubicaci´n, funciones, y como
o UDDI
SOAP
acceder a esta.
Seguridad
UDDI Universal Description Discovery and Acercamiento
Construcci´n Web Service
o
Integration, define una forma de publicar y JWS
TCPmonitor
descubrir informaci´n de servicios Web
o WSDD
JAVA2WSDL
SOAP Simple Object Access Protocol, protocolo Conclusiones
para iniciar las conversaciones con un
servicio UDDI.
14. WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
Documento XML que contiene informaci´n acerca
o WSDL
UDDI
de la interfaz, sem´ntica, y administraci´n
a o SOAP
Seguridad
Estandarizado por la W3C Acercamiento
WSDL define solo un servicio (generalmente) Construcci´n Web Service
JWS
o
TCPmonitor
La descripci´n del servicio se divide en dos:
o WSDD
JAVA2WSDL
Implementaci´n del Servicio
o
Conclusiones
Interfaz del Servicio
15. WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Implementaci´n del Servicio:
o Servicios y Protocolos
Service Servicio que se ofrece WSDL
UDDI
Port donde se ubica el servicio SOAP
Seguridad
Interfaz del Servicio Acercamiento
Construcci´n Web Service
o
Binding , Protocolo de comunicaci´n
o JWS
TCPmonitor
PortType qu´ operaciones provee servicio
e WSDD
JAVA2WSDL
Message define entrada y salida de parametros
Conclusiones
de una operaci´n
o
Type Tipo de dato usado por el servicio
16. WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Descripci´n de un servicio b´sico
o a
17. Estructura WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Estructura WSDL
18. Ejemplo WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Ejemplo WSDL
19. Tipos de Operaciones Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
One way Operaci´n solo recibe mensaje
o SOAP
Seguridad
Request Response Operaci´n puede recibir y enviar
o Acercamiento
Construcci´n Web Service
o
Solicit Response Enviar solicitud y esperar respuesta JWS
TCPmonitor
Notification Enviar mensaje pero no espera WSDD
JAVA2WSDL
Conclusiones
20. Ejemplo One Way Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Ejemplo One Way
21. UDDI Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
Universal Description, Discovery and Integration WSDL
UDDI
Permite registrar y publicar servicios WEB SOAP
Seguridad
Tres secciones: Acercamiento
Construcci´n Web Service
o
Blanca Informaci´n del proveedor de servicio
o JWS
Amarilla Servicios clasificados por especialidad, TCPmonitor
WSDD
ubicacion, etc. JAVA2WSDL
Conclusiones
Verde Informaci´n t´cnica
o e
22. SOAP Web Services
Outline
Definici´n Web Services
o
Protocolo para iniciar las conversaciones con un Modelo
servicio UDDI. Workflow
Servicios y Protocolos
Crea un bloque XML con datos necesarios para WSDL
UDDI
acceder al servicio SOAP
Seguridad
Consta de dos partes (o cuatro): Acercamiento
Envoltura qu´ hay en el mensaje y qui´n debe de
e e Construcci´n Web Service
JWS
o
atenderlo TCPmonitor
WSDD
header Informaci´n del header (opcional)
o JAVA2WSDL
Conclusiones
body Informaci´n de llamadas y respuestas
o
Fault Informaci´n acerca de los errores
o
ocurridos durante el procesamiento
(opcional)
23. Estructura SOAP Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Estructura SOAP
24. Ejemplo Petici´n SOAP
o Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Ejemplo SOAP - Petici´n
o
25. Ejemplo Respuesta SOAP Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Ejemplo SOAP - Respuesta
26. Seguridad Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
SSL, provee sistema de encriptamiento de datos
Seguridad
entre cliente/servidor. Acercamiento
Construcci´n Web Service
o
Provee ademas autenticaci´n de una y dos v´
o ıas. JWS
TCPmonitor
Pero SSL no es suficiente WSDD
JAVA2WSDL
Conclusiones
27. Seguridad Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
SSL falla en tradicionales formas de ataques, por Servicios y Protocolos
WSDL
ejemplo Buffer Overflow UDDI
SOAP
Ejemplo Seguridad
Acercamiento
de la vulnerabilidad de SOAP::Lite, la cual ejecutaban
Construcci´n Web Service
o
HTTP::DAEMON::ClientConn::send file(“/etc/passwd”) JWS
TCPmonitor
Se debe validar el contenido de los mensajes WSDD
JAVA2WSDL
Tecnolog´ Seguridad XML provee de seguridad al
ıa Conclusiones
Web Service, que no provee SSL
28. XML Security Web Services
Outline
XML Schema Asegura la estructura del mensaje, para Definici´n Web Services
o
evitar el env´ de datos maliciosos
ıo Modelo
Workflow
XML Signature Genera una firma digital para evitar que Servicios y Protocolos
WSDL
el mensaje sea modificado por terceros UDDI
SOAP
XKMS (XML Key Management Specification) es Seguridad
un servicio web que da acceso a usuarios Acercamiento
Construcci´n Web Service
o
registrados mediante sistemas de llaves. JWS
TCPmonitor
SAML Permite a los proveedores de Web Services WSDD
JAVA2WSDL
autorizar u autenticar usuarios que no estan Conclusiones
registrados
Para m´s informaci´n ver paper “Is SSL
a o
enough security for first-generation Web
Services?”,
http://www.webservices.org
29. Una Acercamiento a WS Web Services
Escenario Motor de b´squeda de Memorias para
u
Outline
el DI UTFSM Definici´n Web Services
o
Lenguaje Java para desarrollar la Modelo
aplicaci´n
o Workflow
Servicios y Protocolos
La aplicaci´n es explotada como
o WSDL
UDDI
Servicio Web SOAP
Seguridad
El ciclo de vida del software es desarrollado,
Acercamiento
explotado y admnistrado completamemte Construcci´n Web Service
o
JWS
por herramientas Open Source. TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Ciclo de Vida de un WS
30. Herramientas Web Services
Outline
FC Linux Definici´n Web Services
o
Modelo
Servidor de Aplicaciones Apache Tomcat Workflow
Motor SOAP (Toolkit) Apache Axis Servicios y Protocolos
WSDL
UDDI
J2SDK SOAP
Seguridad
Browser Konqueror
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Contenedor Web Services
31. Apache Axis Web Services
Outline
Es una colecci´n de paquetes jar
o Definici´n Web Services
o
Modelo
Se instala como una aplicaci´n en Tomcat (webapps)
o Workflow
La versi´n actual esta escrita en Java
o Servicios y Protocolos
WSDL
UDDI
Implementacion en C++ est´ en desarrollo
a SOAP
Seguridad
Tambien nos da soporte para WSDL Acercamiento
Una herramienta para monitorear trafico TCP/IP Construcci´n Web Service
JWS
o
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
32. Deployment Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
Existen dos maneras de hacer un deploy a un Web WSDL
Service. UDDI
SOAP
V´ JWS
ıa Seguridad
V´ WSDD
ıa Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
33. JWS Web Services
Outline
Java Web Service (JWS) es solo un archivo java Definici´n Web Services
o
pero con extensi´n jws
o Modelo
Workflow
Axis encuentra el *.jws, lo compila autom´ticamente
a Servicios y Protocolos
WSDL
Luego publica los m´todos de la clase como un
e UDDI
SOAP
webservice
Seguridad
Ventaja: Acercamiento
Construcci´n Web Service
o
Es la forma m´s r´pida de crear un webservice
a a JWS
Simple para crear TCPmonitor
WSDD
Simple para hacer el deploy y accederlo JAVA2WSDL
Conclusiones
Desventajas:
Se requiere del conocimiento de las fuentes de la
clase
No soporta autenticaci´n o control de acceso
o
No hay transparencia remota
Dificil para publicar
34. Ejemplo JWS Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
Dos programas WSDL
UDDI
Aplicaci´n Paper.jws
o SOAP
Seguridad
Cliente PaperClient.java
Acercamiento
JWS no permite usar empaquetamiento Construcci´n Web Service
o
JWS
Probar con TCPmonitor TCPmonitor
WSDD
JAVA2WSDL
Class en $TOMCAT HOME/webapp/axis/WEB- Conclusiones
INF/jwsClasses
35. TCPmonitor Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
Permite chequear los mensajes SOAP UDDI
SOAP
Trabaja como un proxy Seguridad
Acercamiento
Cliente llama al monitor con una petici´n SOAP
o
Construcci´n Web Service
o
Monitor despliega la patici´n SOAP y lo envia al
o JWS
TCPmonitor
servidor local WSDD
SOAP despliega la respuesta y la reenvia al cliente JAVA2WSDL
Conclusiones
36. WSDD Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Web Service Description Deployment Servicios y Protocolos
WSDL
UDDI
Formato XML SOAP
Seguridad
Especificaci´n de Axis, no de W3C/WS Est´ndar
o a Acercamiento
Se compila “a mano” las fuentes y se llama a Construcci´n Web Service
o
JWS
AdminClient TCPmonitor
WSDD
AdminClient realiza el deploy de acuerdo al *.wsdd JAVA2WSDL
Conclusiones
De la misma manera se realiza en undeploy
37. Deploy Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Deploy Service
38. Undeploy Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
Figura: Undeploy Service
39. Deployment usando WSDD Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Ventajas Construicci´n y deploy sigue siendo
o Servicios y Protocolos
WSDL
simple UDDI
SOAP
Permite la definici´n del nombre del
o
Seguridad
servicio Acercamiento
Permite la definici´n de la
o Construcci´n Web Service
o
JWS
implementaci´n de la clase
o TCPmonitor
WSDD
(Session—Request—Application) JAVA2WSDL
Conclusiones
Desventajas No existe transparencia Remota (Stubs
y Skeletons)
40. Transparencia Remota WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
41. Generando WSDL: JAVA2WSDL Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
Herramienta proporcionada por Axis SOAP
Seguridad
Crea la descripci´n de la interfaz del WS desde .java
o Acercamiento
Es decir genera WSDL desde .java Construcci´n Web Service
JWS
o
TCPmonitor
Ver ejemplo WSDD
JAVA2WSDL
Conclusiones
42. Resumen Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
WSDL
UDDI
SOAP
Seguridad
Acercamiento
Construcci´n Web Service
o
JWS
TCPmonitor
WSDD
JAVA2WSDL
Conclusiones
43. Conclusiones WS Web Services
Ventajas F´cil, r´pido y barato de implementar
a a Outline
Extensible e Independiente del Definici´n Web Services
o
Modelo
Lenguaje Workflow
Transparente para el usuario final Servicios y Protocolos
WSDL
Seguro UDDI
SOAP
Basado en estandares Seguridad
Alto grado de reusabilidad Acercamiento
Puede ser implementado con Construcci´n Web Service
JWS
o
herramientas Open Source TCPmonitor
WSDD
Grandes empresas lo apoyan Microsoft, JAVA2WSDL
Conclusiones
Sun, Oracle, IBM, Apache
Desventajas No es la soluci´n a todos los problemas
o
Relativamente nuevo, algunos
est´ndares no definidos
a
Dependencia de la disponibilidad de
servidores y comunicaciones
44. Lo que no se vio Web Services
Outline
Definici´n Web Services
o
Modelo
Workflow
Servicios y Protocolos
LAMENTABLEMENTE LA APLICACION :( WSDL
UDDI
Una portal de webservices SOAP
Seguridad
Servidor UDI de aplicaciones Acercamiento
Utilizaci´n de XML Security
o Construcci´n Web Service
JWS
o
TCPmonitor
Comparaci´n entre herramientas Open Source v/s
o WSDD
JAVA2WSDL
Comerciales Conclusiones
Comparaci´n entre distintos lenguajes
o