Title: Servicios Web
1Servicios Web
2Intuitivamente es similar a un sitio web, pero
no existe interacción con una persona a través de
un web browser, sino que la interacción es entre
aplicaciones
- "Un Web Service es un componente de software que
se comunica con otras aplicaciones codificando
los mensaje en XML y enviando estos mensaje a
través de protocolos estándares de Internet tales
como el Hypertext Transfer Protocol (HTTP).
3Cómo Funcionan los Servicios Web?
4Requisitos de un Web Service
- Interoperabilidad Un servicio remoto debe
permitir su utilización por clientes de otras
plataformas. - Amigabilidad con Internet La solución debe poder
funcionar para soportar clientes que accedan a
los servicios remotos desde internet. - Interfaces fuertemente tipadas procedimentales.
Más aún, los tipos de datos definidos en el
servicio remoto deben poderse corresponder
razonablemente bien con los tipos de datos de la
mayoría de los lenguaje de programación.
5Requisitos de un Web Service
- Posibilidad de aprovechar los estándares de
Internet existentes La implementación del
servicio remoto debería aprovechar estándares de
Internet existentes tanto como sea posible y
evitar reinventar soluciones a problema que ya se
han resuelto. - Soporte para cualquier lenguaje Un cliente
debería ser capaz de implementar un nuevo
servicio Web existente independientemente del
lenguaje de programación en el que se halla
escrito el cliente.
6Bloques Constructivos de Servicios Web
7- Descubrimiento La aplicación cliente que
necesita acceder a la funcionalidad que expone un
Servicio Web necesita una forma de resolver la
ubicación de servicio remoto. Se logra mediante
un proceso llamado, normalmente descubrimiento - Descripción Una vez que se ha resuelto el
extremo de un servicio Web dado, el cliente
necesita suficiente información para interactuar
adecuadamente con el mismo. - Formato del mensaje Para el intercambio de
datos, el cliente y el servidor tienen que estar
de acuerdo en un mecanismo común de codificación
y formato de mensaje.
8- Codificación Los datos que se trasmiten entre el
cliente y el servidor necesitan codificarse en un
cuerpo de mensaje. - Transporte Una vez se ha dado formato al mensaje
y se han serializado los datos en el cuerpo del
mensaje se debe transferir entre el cliente y el
servidor utilizando algún protocolo de
transporte.
9SOAP - Protocolo simple de acceso a objetos
- Es un protocolo basado en XML, que permite la
interacción entre varios dispositivos y que tiene
la capacidad de transmitir información compleja.
Los datos pueden ser transmitidos a través de
HTTP , SMTP , etc. - SOAP especifica el formato de los mensajes
de la siguiente forma - envelope (envoltura) Es el elemento raíz del
mensaje para describir su contenido y la forma de
procesarlo. - header (encabezado) Es la información de
identificación del contenido. Un grupo de reglas
de codificación para expresar las instancias de
tipos de datos definidos por la aplicación. - body (cuerpo) Es el contenido del mensaje. Una
convención para representar las llamadas y las
respuestas a procedimientos remotos.
10Anatomía de un mensaje SOAP
11 SOAP y HTTP
Encabezado HTTP
Envoltura
Header (opcional)
Cuerpo
12Algunas de las Ventajas de SOAP
- No esta asociado con ningún lenguaje
- No se encuentra fuertemente asociado a ningún
protocolo de transporte - Aprovecha los estándares existentes en la
industria - Permite la interoperabilidad entre múltiples
entornos - Ampliamente aceptado
13RPC usando SOAP
- RPC Consiste en pasarle parámetros a un
procedimiento remoto en algún lenguaje
determinado (java, c, etc) utilizando un
esquema de comunicación xml via HTTP.
14RPC usando SOAP
- Para realizar una invocación RPC es necesario
conocer -
- La ubicación del objeto remoto
- El nombre del objeto remoto
- El nombre del método
- Los parámetros del método
-
15Descripción WSDL
- Lenguaje de Descripción de Servicios Web
- WSDL representa una especie de contracto entre
el proveedor y el que solicita. O sea permite que
un servicio y un cliente establezcan un acuerdo
en lo que se refiere a los detalles de transporte
de mensajes y su contenido, a través de un
documento procesable por dispositivos.
16WSDL
- Distingue claramente los mensajes de los puertos
- Los mensajes (la sintaxis y semántica que
necesita un servicio Web) son siempre abstractos - Los puertos (las direcciones de red en las que
se invoca al servicio Web) son siempre concretos -
17Descripción abstracta
- Existen tres componentes principales de esta
interfaz abstracta - El vocabulario
- El mensaje
- La interacción
18Descripción abstracta
- Los elementos utilizados para esto son
- Types contenedor de definiciones del tipo de
datos que utiliza algún sistema de tipos (por
ejemplo XSD). - Message definición abstracta y escrita de los
datos que se están comunicando. - Operation descripción abstracta de una acción
admitida por el servicio. - Port Type conjunto abstracto de operaciones
admitidas por uno o más puntos finales.
19Ejemplo
20Información concreta de enlace
- Para completar la descripción de una interacción
cliente- servidor se necesita saber - Qué protocolo de comunicación se va utilizar
(como SOAP sobre HTTP) - Como conseguir la interacción del servicio con
este protocolo - Donde termina la comunicación (la dirección de
red).
21Información concreta de enlace
- Para eso se utilizan los siguientes elementos
- Binding especificación del protocolo y del
formato de datos para un tipo de puerto
determinado. - Port punto final único que se define como la
combinación de un enlace y una dirección de red. - Service colección de puntos finales
relacionados.
22Ejemplo
23Objetivo de WSDL
- El objetivo de WSDL es el de liberar a los
usuarios y desarrolladores de la necesidad de
recordar o entender todos los detalles de acceso
a los servicios, solo es necesario una
descripción WSDL para poder acceder a estos.
24Descubrimiento UDDI
- Una vez creado el servicio web el siguiente paso
consiste en definir cómo se dará a conocer el
servicio Web para que los clientes interesados
puedan descubrirlo fácilmente y utilizarlo en sus
aplicaciones.
25Descubrimiento UDDI
- UDDI es un registro público diseñado para
almacenar de forma estructurada información sobre
empresas y los servicios que éstas ofrecen. A
través de UDDI, se puede publicar y descubrir
información de una empresa y de sus servicios.
26- En UDDI codifica tres tipos de información acerca
de un servicio web - Sección blanca - dirección, contacto y otros
identificadores conocidos. - Sección amarilla - categorización industrial
basada en taxonomías. - Sección verde - información técnica sobre los
servicios que aportan las propias empresas.
27Sección Blanca
- La estructura que almacena la sección blanca es
de tipo bussinessEntity, esta estructura describe
a un proveedor de servicios Web.
28Sección Amarilla
- Para almacenar la sección amarilla se utiliza la
estructura tipo bussinessService, que describe
una familia de servicios Web ofrecidos por el
proveedor descrito en el bussinnessEntity.
29Ejemplo
30Sección Verde
- La sección verde se almacena entre las
estructuras tipo bindingTemplate, que describen
la información técnica de acceso a un servicio
Web concreto.
31Ejemplo
32Información de la plantilla de enlace
- Dirección donde el servicio puede ser accedido,
esta dirección podría ser una url, una dirección
de email, o un numero de teléfono - tModelInstanceDetaills, el cual provee la
descripción técnica del servicio
33Para Concluir
- WSDL Ofrece un modo formal de definir servicios
web, independientemente del proveedor. - UDDI Proporciona una amplia infraestructura
estandarizada que permite al usuario describir y
descubrir servicios web.