Contenidos
Introducci
on
Est
andares
Arquitecturas
Introduccion a los Servicios Web
Jose Emilio Labra Gayo
Octubre 2006
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Contenidos
Introduccion
Estandares
SOAP
WSDL
UDDI
Arquitecturas
Retos
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Est
andares
Arquitecturas
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Servicios Web
Aplicaciones auto-contenidas, auto-descritas que pueden ser
publicadas, localizadas e invocadas a traves de la Web
Una vez desarrolladas, otras aplicaciones (y otros servicios
Web) pueden descubrirlas e invocar el servicio dado
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Servicios Web
Posible definicion:
I
Aplicaciones auto-contenidas, auto-descritas que pueden ser
publicadas, localizadas e invocadas a traves de la Web
Una vez desarrolladas, otras aplicaciones (y otros servicios
Web) pueden descubrirlas e invocar el servicio dado
Nota: No todos los servicios Web estan publicados para ser
descubiertos automaticamente
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Objetivos
I
Independencia del lenguaje y de la plataforma
I
Interoperabilidad
I
Utilizacion de estandares: XML, SOAP, WSDL, UDDI...
Acoplamiento debil: Sistemas basados en mensajes
I
Separacion de especificaci
on de la implementacion
Interacciones sncronas y asncronas
A traves de Internet
I
I
I
Sin control centralizado
Utilizacion de Protocolos establecidos
Consideraciones de seguridad
Modularidad y Reusabilidad de servicios
Escalabilidad: Uno-a-uno frente a uno-a-muchos
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Principales acciones
I
I
Transporte de mensajes: Habitualmente HTTP (pueden
utilizarse otros)
Representacion de mensajes
I
I
I
Descripcion del servicio: Representacion del tipo de
operaciones y su funcionalidad (Interfaz)
I
I
Mensajes=documentos XML
SOAP = vocabulario XML para incluir mensajes XML
SOAP puede representar otra informaci
on: Cabecera
(meta-informaci
on) y c
odigos de errores
WSDL es el vocabulario mas utilizado
Define las operaciones y el tipo que tienen (no define
funcionalidad)
Registro: Registrar y localizar servicios.
I
I
UDDI es la propuesta estandar
Otras propuestas: servicios web semanticos
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Estandares de servicios Web
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Arquitecturas
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
SOAP
SOAP
I
I
SOAP define el formato de los mensajes
Evolucion:
I
I
I
I
I
Desarrollado a partir de XML-RPC
SOAP 1.0 (1999), SOAP 1.1 (2000), SOAP 1.2 (2003)
Participacion inicial de Microsoft
Adopcion posterior de IBM, Sun, etc.
Aceptacion industrial
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
SOAP
SOAP
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Est
andares
Arquitecturas
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
SOAP
Ejemplo SOAP
<s o a p : E n v e l o p e
x m l n s : s o a p= h t t p : //www . w3 . o r g /2001/12/ soape n v e l o p e
x m l n s : p = h t t p : //www . m a f i a . i t / p i z z a s >
<s o a p : H e a d e r>
< p : p r i o r i t y> u r g e n t e </ p : p r i o r i t y>
< p : o r i g i n>p e p e @ o v i e d o . e s</ p : o r i g i n>
</ s o a p : H e a d e r>
<s o a p : B o d y>
< p : o r d e r>
< p : p i z z a nombre= M a r g a r i t a >
< p : s i z e> f a m i l i a r</ p : s i z e>
<p:comment>con mucho q u e s o
</ p:comment>
</ p : p i z z a>
</ p : o r d e r>
</ s o a p : B o d y>
</ s o a p : E n v e l o p e>
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
SOAP
Formato SOAP
SOAP especifica el formato de mensajes
Es independiente del protocolo de transporte
Aunque se define un enlace (binding) con HTTP
envelope contiene: header (opcional) y body (obligatorio)
I
I
body contiene datos en formato XML
header contiene meta-informaci
on
Tambien se pueden indicar errores mediante fault
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
WSDL
WSDL
I
WSDL (Web Services Description Language) permite describir
servicios web
I
I
I
Vocabulario basado en capas
I
Que puede hacer el servicio?
Donde reside?
Como invocarlo?
Es posible concentrarse en una capa cada vez
Evolucion
I
I
I
Iniciativa conjunta de Ariba, IBM y Microsoft
(2001) Propuesto a W3C como recomendacion (WSDL 1.1)
(2003) En desarrollo WSDL 2.0
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
WSDL
Estructura de WSDL
definitions incluye las siguientes entradas:
I
I
I
I
types: Tipos de datos usados en los mensajes (XML Schema)
message: Definici
on abstracta de los datos transmitidos.
portType: Conjunto de operaciones abstractas
binding: Protocolo concreto y especificaciones de las
operaciones del mensaje
port: Especifica una direcci
on para el enlace definiendo un
u
nico punto de destino
service: Colecci
on de puntos de destino
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
WSDL
Ejemplo WSDL (1/3)
<? xml v e r s i o n= 1 . 0 ?>
< d e f i n i t i o n s name= P i z z a s
t a r g e t N a m e s p a c e= h t t p : // m a f i a . i t / p i z z a s . w s d l
x m l n s : t n s= h t t p : // m a f i a . i t / p i z z a s . w s d l
x m l n s : x s d 1= h t t p : // m a f i a . i t / p i z z a s . x s d
x m l n s : s o a p= h t t p : // sc hemas . x m l s o a p . o r g / w s d l / s o a p /
x m l n s= h t t p : // sc he mas . x m l s o a p . o r g / w s d l / >
<t y p e s>
<schema t a r g e t N a m e s p a c e= h t t p : // m a f i a . i t / p i z z a s . x s d
x m l n s= h t t p : //www . w3 . o r g /2000/10/ XMLSchema>
<e l e m e n t name= P r e c i o P i z z a R e q u e s t >
<complexType>
< a l l>
<e l e m e n t name= n o m b r e P i z z a t y p e= s t r i n g />
</ a l l>
</ complexType>
Jose Emilio Labra </
Gayoe l e m e n t>
l e m eWeb
n t name= P r e c i o P i z z a >
Introducci
on a los <e
Servicios
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
WSDL
Ejemplo WSDL (2/3)
<m e s s a g e name= p r e c i o P i z z a I n p u t >
<p a r t name= body e l e m e n t= x s d 1 : P r e c i o P i z z a R e q u e s t />
</ m e s s a g e>
<m e s s a g e name= p r e c i o P i z z a O u t p u t >
<p a r t name= body e l e m e n t= x s d 1 : p r e c i o P i z z a />
</ m e s s a g e>
<p o r t T y p e name= P i z z a s P o r t T y p e >
<o p e r a t i o n name= v e r P r e c i o >
<i n p u t m e s s a g e= t n s : p r e c i o P i z z a I n p u t />
<o u t p u t m e s s a g e= t n s : p r e c i o P i z z a O u t p u t />
</ o p e r a t i o n>
</ p o r t T y p e>
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
WSDL
Ejemplo WSDL (3/3)
<b i n d i n g name= P i z z a s S o a p B i n d i n g
t y p e= t n s : P i z z a s P o r t T y p e >
< s o a p : b i n d i n g s t y l e = document
t r a n s p o r t= h t t p : // schema s . x m l s o a p . o r g / s o a p / h t t p />
<o p e r a t i o n name= p r e c i o P i z z a >
< s o a p : o p e r a t i o n s o a p A c t i o n= h t t p : // m a f i a . i t / P i z z a s />
<i n p u t>
<s o a p : b o d y u s e= l i t e r a l />
</ i n p u t>
<o u t p u t>
<s o a p : b o d y u s e= l i t e r a l />
</ o u t p u t>
</ o p e r a t i o n>
</ b i n d i n g>
< s e r v i c e name= P i z z a s S e r v i c e >
<d o c u m e n t a t i o n>E j e m p l o de s e r v i c i o</ d o c u m e n t a t i o n>
<p o r t name= P i z z a s P o r t
Jose Emilio Labra Gayo b i n d i n g= t n s : P i z z a s S o a p B i n d i n g >
o a p Web
: a d d r e s s l o c a t i o n= h t t p : // m a f i a . i t / P i z z a s />
Introducci
on a los <s
Servicios
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
UDDI
UDDI
I
I
I
I
UDDI: (Universal Discovery, Description and Integration)
Estandar para la publicacion y registro de servicios Web
Consorcio formado por IBM, Hp, Sun, Microsoft, Oracle, etc.
Evolucion:
I
I
UDDI 1.0 (2000) Fundaci
on del registro
UDDI 2.0 (2001) Alineaci
on con estandares y taxonoma de
servicios mas flexible
UDDI 3.0 (2002) Interacci
on de implementaciones p
ublicas y
privadas
2 partes
I
Descripcion de negocios
I
I
I
P
aginas blancas (informaci
on de contacto)
P
aginas amarillas (informaci
on de la industria)
P
aginas verdes (informaci
on tecnica y especificaciones)
Registro de servicios
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
UDDI
Funcionamiento de UDDI
Funcionamiento como una base de datos distribuida P2P
Provider: Informacion sobre la entidad que ofrece el servicio
Service: Informacion sobre una familia particular de ofertas
Binding: Informacion tecnica sobre un punto de entrada a un
servicio
tModel: Descripcion de especificaciones de servicios
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Arquitecturas Orientadas a Servicios
I
Importancia de las Interfaces
I
I
I
Descripcion rigurosa de las interfaces
Preferiblemente: Tratamiento automatico
Recomendacion: Desarrollar el sistema a partir de las interfaces
Modelos Debilmente acoplados
I
Sistemas de comunicaci
on asncrona
I
I
Estilo documento vs estilo RPC
Gesti
on de colas de mensajes
Ejemplo: Solicitud de libro
Interoperabilidad
I
I
I
Independencia de Lenguajes y plataformas
Adaptacion de arquitecturas ya existentes
Utilizacion de estandares: REST vs RPC
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Estilos de arquitecturas
Documentos vs RPC
I
Estilo orientado a documentos: Los mensajes conllevan toda la
informacion necesaria.
Estilo RPC (Remote procedure call): los mensajes incluyen los
parametros de la llamada
SOAP vs REST
I
I
SOAP incluye un nuevo protocolo de mensajera
REST propone reutilizar protocolos ya existentes
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Modelo REST
REST (REpresentational State Transfer) fue un modelo
propuesto por uno de los desarrolladores de HTTP
Dos posibilidades:
I
I
Conjunto de principios de arquitectura
Utilizacion de XML basico sobre HTTP sin a
nadir ninguna
otra capa de mensajera
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Principios de diseno REST
I
El estado y la funcionalidad de las aplicaciones se divide en
recursos
Todo recurso es identificado de forma u
nica global
I
En HTTP los recursos se identifican mediante URIs
Todos los recursos comparten un interfaz uniforme formado
por
I
Conjunto de operaciones limitado para transferencia de estado
I
En HTTP: GET, PUT, POST, DELETE
Conjunto limitado de tipos de contenidos
Un protocolo cliente/servidor, sin estado y basado en capas
En HTTP se idenfican mediante tipos MIME
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Ventajas de REST
Mejores tiempos de respuesta y disminucion de carga en
servidor
Mayor escalabilidad al no requerir mantenimiento de estado
Facilita desarrollo de clientes
Mayor estabilidad frente a futuros cambios
I
I
Permite evoluci
on independiente de los tipos de documentos
La creacion de nuevos tipos de documentos no afecta a los
anteriores
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos
Contenidos
Introducci
on
Est
andares
Arquitecturas
Retos para los servicios Web
I
Gestion de servicios Web
I
WSDM - Web Services Distribution Management
Coordinacion de servicios
Evolucion de los servicios
Orquestacion vs coreografa
Ejemplo. Reserva de avi
on + hotel
Ejemplo: cambio en la interfaz
Modelizacion de procesos de negocios
I
I
BPEL - Business Process Execution Language
Contratos, facturaci
on: Quien gana dinero? Que pasa
cuando algo falla?
Seguridad y fiabilidad
Calidad de servicios
XML Security
Tiempos de respuesta, soporte, monitorizaci
on, etc.
Jose Emilio Labra Gayo
Introducci
on a los Servicios Web
Retos