0% encontró este documento útil (0 votos)
27 vistas24 páginas

Servicios Web

Servicios Web Java
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas24 páginas

Servicios Web

Servicios Web Java
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte