Servicios Web
6.1
Elementos de un servicio web
1
Componentes software
El diseño del software tiende a ser cada vez más modular
– Aplicaciones compuestas por componentes reutilizables
• P.ej. Objetos CORBA o EJBs
– Estos componentes pueden encontrarse distribuidos
Componente
– Unidad de la que se componen las aplicaciones
– Ofrece una determinada interfaz y cumpleciertos requisitos
– Deberá poder ser integrado en la aplicación y combinado con
otros componentes de forma independiente.
Descripción de Servicio Web
Un Servicio Web es un componente al que se podrá acceder
mediante protocolos Web estándar
– Los mensajes para invocar el servicio se codifican en XML
– Estos mensajes se pueden transportar utilizando HTTP
Normalmente constará de una interfaz(conjunto de métodos)
que podremos invocar de forma remota desde cualquier
lugar de la red
– Nos permiten crear aplicaciones distribuidas en Internet
Son independientes de la plataforma y del lenguaje de
programación en el que estén implementados
2
Web “para humanos” vs. “para máquinas”
Petición HTTP
Respuesta HTTP en HTML
Petición HTTP
Aplicación
Aplicación
Otrasaplicaciones
Respuesta HTTP en XML
Características de los servicios
Deben ser accesibles a través de la Web
– Debe utilizar protocolos de transporte estándares como HTTP y codificar
los mensajes en un lenguaje estándar (XML).
Deben ser “interoperables”
– Flexibilidad en el lenguaje de programación de cliente/servidor
– Tecnologías: protocolos estándar: SOAP
Deben describirse a si mismos
–De esta forma una aplicación podrá conocer cuál es la interfaz del
servicio, y podrá integrarlo y utilizarlo de forma automática.
– Generación automática de un cliente
– Tecnologías: WSDL
Deben ser localizables
– Debe existir algún mecanismo de localizar un servicio que realice una
determinada función, sin tenerlo que conocer previamente el usuario.
– Búsqueda automática o manual
–Tecnologías: UDDI
3
Arquitectura funcional
Registro
Busca
Publica
Cliente
Proveedor
Invoca
Arquitectura de protocolos
Localización de Servicios
(UDDI)
Descripción de Servicios
(WSDL)
Mensajería XML
(SOAP, XML-RPC)
Transporte de Servicios
(HTTP, SMTP, FTP, BEEP, ...)
4
Ejemplos de servicios web
– Hacer búsquedas, con los mismos parámetros que através de la pág.
Web
– Sugerencias de ortografía
– Obtener página en cache
Amazon
– Hacer búsquedas por título, autor,…
– Ver datos de un producto
Ebay
– Chequear el precio de un producto
Datos meteorológicos, cotizaciones de bolsa, noticias,….hasta
citas aleatorias de Bush (!)
6.2
Envío de mensajes: SOAP
5
SOAP
Protocolo derivado de XML
– Se usa para intercambiarinformación
Independiente de:
– S.O. y lenguaje (por ser XML)
– Protocolo de transporte (HTTP, SMTP,...), normalmente se usa
HTTP
Aplicaciones:
– Orientados a RPC
• Llamada a función remota (mensaje), retorno de resultado
(mensaje)
– Orientados al documento
• Envío de mensajes para comunicación asíncrona
Servicios web con SOAP
Normalmente se aprovecha un servidor HTTP ya enfuncionamiento
Cliente y servicio se comunican mediante XML a través del servidor
web
El cliente necesita una librería SOAP. El servicio “no sabe” que
funciona con SOAP, es simplemente un objeto con métodos que llama
el servidor
XML
Cliente
Cliente
(C#)
(C#)
Librería
SOAP para
.NET
Servidor web
Servidor web
(Tomcat)
(Tomcat)
con aplicación
con aplicación
SOAP
SOAP
getForo(1)Servicio
Servicio
(Java)
(Java)
Librería
SOAP
para Java
6
Elementos de SOAP
– Sobre SOAP (Envelope). Contiene:
• Descripción del mensaje (destinatario, forma
de procesarlo, definiciones de tipos)
• Cabecera (opcional) y cuerpo SOAP
– Cabecera SOAP (Header). Contiene:
• Información sobre el mensaje (obligatorio,
actores, etc)
– Cuerpo SOAP (Body). Contiene:
• Mensaje...
Regístrate para leer el documento completo.