Web Service

download Web Service

of 43

Transcript of Web Service

TEMA 6: WEB SERVICESAplicaciones TelemticasDavid 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 puertosNo 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-Way2 4 1 Componente 1 (Emisor)

HTTP Modelo Sncrono Request/Reply2 6

Componente 1 (Emisor)

1

4

Componente 2 (Receptor)

3 5

3

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 informacinBusca 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 . 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 ServicesLas 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

SOAPSOAP 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

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

Body

SOAPCliente 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: 947-TI 5

SOAP SOAP sobre HTTP:HTTP/1.1 200 OK Content-type: text/xml; charset=utf-8 Content-length: 388 true

Ejemplo de Respuesta

Formato de los mensajes SOAPSOAP 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.

Formato de los mensajes SOAPAlgunas 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 si no tuviera el espacio de nombres?

Formato de los mensajes SOAPAlgunas notas sobre XML, XML Schema y namespacesEjemplo 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 SOAPMensajes llamados sobres SOAP o SOAP Envelopes: SOAP Envelope Header (Opcional) Datos Pepe Pepe Pepe

Body

Formato de los mensajes SOAP Cabecera y cuerpo del SOAP Envelope:Claramente delimitados Pueden contener cualquier documento XML vlido y bien formado Datos Pepe Pepe Pepe

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: 1234

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 Arcelor Cuerpo

Tipos de datos en SOAP Se pueden expresar de 3 formas

Poniendo el tipo en la etiqueta de forma explcita Pepe

Indicando un esquema XML

Pepe

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

Tipos de datos en SOAPTipos de datos existentes Adoptados de XML Schema

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

Juan Luis Borja Mari

Otros elementos de SOAPFault:

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

Client.Authentication Nombre de Usuario Incorrecto http://www.it.uniovi.es

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

WSDLWSDL 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