Servicios Web
"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).
Intuitivamente 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
¿Cómo Funcionan los Servicios Web?
Requisitos 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.
Requisitos 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.
Bloques Constructivos de Servicios Web:

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.

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.
SOAP - 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.
Anatomía de un mensaje SOAP
SOAP y HTTP
Encabezado
HTTP
Envoltura
Header (opcional)
Cuerpo
Algunas 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
RPC 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.
RPC 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
Descripció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.
WSDL
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
Descripción abstracta:
Existen tres componentes principales de esta interfaz abstracta:

El vocabulario

El mensaje

La interacción
Descripció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.
Ejemplo:
Información concreta de enlace
Para completar la descripción de una interacción clienteservidor 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).
Informació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.
Ejemplo:
Objetivo 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.
Descubrimiento: 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.
Descubrimiento: 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.
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.
Sección Blanca

La estructura que almacena la sección
blanca es de tipo bussinessEntity, esta
estructura describe a un proveedor de
servicios Web.
Secció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.
Ejemplo:
Secció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.
Ejemplo:
Informació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
Para 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.
Descargar

Servicios Web