Aplicaciones y Servicios Web (Web Services) Joaquín Salvachúa DIT- jsalvachua@.upm.es -1- Internet NG
Índice Problema a resolver Arquitectura SOAP WSDL UDDI Conclusiones -2- Internet NG
Aplicaciones WEB El Web se ha llenado de aplicaciones. Usuarios utilizan interfaces Web. Queremos hacerlos accesibles a otros ordenadores y aplicaciones. Acceso directo, no mediante la simulación de un cliente: múltiples problemas. -3- Internet NG
Web Services Qué es un servicio Web? Un servicio Web es una aplicación Web identificada por un URI, cuyos interfaces y enlaces pueden ser definidos, descritos y descubiertos mediante artefactos XML y que soporta la interacción directa con otras aplicaciones Web que interfaz que define una colección de operaciones que son accesibles de forma remota usando mensajes XML mediante protocolos estándar de Internet. -4- Internet NG
Arquitectura orientada a servicios I Service Registry Find Publish Service Requestor Bind (HTTP) -5- Internet NG Service Provider
Arquitectura orientada a servicios II Service Registry Find UDDI WSDL Publish Service Requestor SOAP / XML Bind (to protocol) -6- Internet NG Service Provider
Modelo de Llamada Remota a Procedimiento (RPC) x = 5; y = fxx (x); z = y +1;... 10 25 SEND RECV 10 25 int fxx (int a) { return a * 5; } -7- Internet NG
Tecnologías Usadas XML 4 Describe la información a ser usada. SOAP 4 Empaqueta la información y la transporta entre cliente y el proveedor del servicio. WSDL 4 Describe un servicio. UDDI 4 Proporciona una lista de servicios disponibles. -8- Internet NG
XML Describe estructuras de datos XML puede describir tanto datos como documentos: 4 Cual es la diferencia. 4 Podemos manejar Ambos. XML se usa para datos y para metadatos. Forma sencilla de describir estructuras de datos complejas y jerárquicas (serizalizaciones). Flexibilidad, facilidad de procesado e independencia de plataformas arquitecturas. -9- Internet NG
SOAP SOAP es un protocolo basado en XML para el intercambio de informacion de una forma descentralizada sobre entornos distribuidos. Define un mecanismo para el paso de instrucciones (comandos) y parametros entre clientes y servidores. Es totalmente independiente de la plataforma, el modelo de datos y el lenguaje de programación usado. -10- Internet NG
Estructura de SOAP Requiere un cuerpo (body) soap y un sobre (envelop). Cabeceras (header) opcionales Modelo RPC vs. Documentos. -11- Internet NG
Estructura de SOAP Requiere un cuerpo (body) soap y un sobre (envelop). Cabeceras (header) opcionales HTTP SOAP SOAP Body -12- Internet NG
SOAP como protocolo SOAP Se basa sobre XML SOAP RPC SOAP Messaging SOAP Encoding Authentication Encryption BTF2.0 Attachments SOAP Envelope XML Framework -13- Internet NG
Modelos de procesado de Servicios Web Servicio Web Modelo de interacción Modelo de procesado Tipo de interacción. Orientado a RPC RPC Centrado en objetos de negocio Básicamente Síncrono Orientado a documento RPC + XML attachment Centrado en Documento Básicamente Asíncrono -14- Internet NG
WSDL (Web Services Description Language) Información XML para la descripción de servicios de red y de un conjunto de puntos finales donde se dan los detalles de la conexión. Informalmente: WSDL defines 4Que operaciones puede realizar 4Donde está 4Como es necesario invocarlo -15- Internet NG
Funcionamiento Localización de un servicio. Localización del interfaz WSDL. Peticiones y respuestas codificadas dentro de sobres SOAP. Uso típico de SOAP sobre HTTP. Necesidad de nuevos tipos de firewalls -16- Internet NG
Funcionamiento Localización de un servicio. Localización del interfaz WSDL. Petición SOAP: <?xml version="1.0" encoding="utf-8"?> <soap:envelope > <soap:body> <MakeEncRequest > <principal>adg@microsoft.com</principal> <cipher>+oxhdacxvk =</cipher> Peticiones y respuestas codificadas dentro de sobres SOAP. Uso típico de SOAP sobre HTTP. </MakeEncRequest> </soap:body> </soap:envelope> Necesidad de nuevos tipos de firewalls -17- Internet NG
Funcionamiento Localización de un servicio. Localización del interfaz WSDL. Petición SOAP: <?xml version="1.0" encoding="utf-8"?> Respuesta SOAP: <soap:envelope Peticiones > y respuestas codificadas dentro de <soap:body> sobres SOAP. <?xml version="1.0" encoding="utf-8"?> <MakeEncRequest > <soap:envelope > <principal>adg@microsoft.com</principal> <soap:body> <cipher>+oxhdacxvk =</cipher> Uso típico de SOAP sobre <MakeEncRequestResponse HTTP. > </MakeEncRequest> <MakeEncRequestResult> </soap:body> Accepted: with nonce=1 </soap:envelope> Necesidad de nuevos tipos de firewalls -18- Internet NG </MakeEncRequestResult> </MakeEncRequestResponse> </soap:body> </soap:envelope>
Descripción Interfaz WSDL : Funcionamiento <s:element name="makeencrequest"> <s:complextype> <s:sequence> <s:element name="principal" type="s:string" /> <s:element name="cipher" type="s:base64binary" /> </s:sequence> Localización de un servicio. Localización </s:complextype> del interfaz WSDL. Petición SOAP: </s:element> <?xml version="1.0" encoding="utf-8"?> Respuesta SOAP: <soap:envelope Peticiones > y respuestas codificadas dentro de <soap:body> sobres SOAP. <?xml version="1.0" encoding="utf-8"?> <MakeEncRequest > <soap:envelope > <principal>adg@microsoft.com</principal> <soap:body> <cipher>+oxhdacxvk =</cipher> Uso típico de SOAP sobre <MakeEncRequestResponse HTTP. > </MakeEncRequest> <MakeEncRequestResult> </soap:body> Accepted: with nonce=1 </soap:envelope> Necesidad de nuevos tipos de firewalls -19- Internet NG </MakeEncRequestResult> </MakeEncRequestResponse> </soap:body> </soap:envelope>
UDDI (Universal Description Discovery and Integration) UDDI Estructura de Datos estándar. UDDI XML Schema UDDI Programmatic Interface (API) 4Utiliza XML and SOAP Es un servicio Web. Soporta: 4Gestión de taxonomía para ayudar las búsquedas. 4 Búsquedas por personas y máquinas. -20- Internet NG
Ejemplo de registro -21- Internet NG
Servicios Web en acción Web Service SOAP/HTTP Web Service SOAP/HTTP Clientes -22- Internet NG Base de Datos
Aplicaciones existentes Permite acceder directamente a sus servicios, manejando directamente el carrito de compra. Puedes actualizar tus paginas con su información. Pueden invocar la búsqueda directamente usando una API. -23- Internet NG
Conclusiones y referencias Permite la integración de sistemas heterogéneos. Uso de Estándares totalmente neutros respecto a la plataforma. Evolución Natural de Internet de páginas a servicios y aplicaciones. Necesidad de nuevas tecnologías para su localización. -24- Internet NG