En el siguiente punto vamos a estudiar como se realiza una comunicación mediante Web service. Lo primero que vamos a ver son los protocolos y lenguajes que se utilizan en la comunicación entre computadores remotos cuando esta comunicación la realizamos a través de un Web service. Estos son XML, SOAP, WSDL, UDDI.
<?xml version="1.0"?> //version del xml
//el documento raiz es un elemento envelope(sobre)
//donde especificamos el namespace y el encoding
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
//cabecera con referencias al mensaje (pj: autentificación)
<soap:Header>
...
</soap:Header>
// cuerpo del mensaje, puede ser de petición o respuesta
<soap:Body>
...
// los fallos se notifican en esta sección
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
<?xml version="1.0">
//elemento raiz
<definitions>
// Especifica los tipos de datos a usar en el webservice
<types>
...
</types>
// Se definen los metodos y parámetros que se usuaran
// en la comunicación.
<message>
...
</message>
// Aqui es donde estan definidas las llamadas,
// tanto de peticion como de respuesta.
<portType>
...
</portType>
// especifica el formato del mensaje y
// detalles de cada portType
<binding>
...
</binding>
</definitions>
En el siguiete esquema se puede ver como se realiza una comunicación mediante mensajes SOAP entre un cliente (Web User) y un servidor que ofrece un Web Service:
De forma global, podemos ver la interacción entre los diferentes componentes de la comunicación por Web service en el diagrama que mostramos a continuación. Tenemos dos entidades (un cliente y un servidor) que se comunican mediante mensajes SOAP a través de HTTP (Internet). La forma de comunicarse se establece en el documento WSDL. También se puede ver como el cliente encuentra el Web service que ofrece el servidor en el catálogo UDDI (por ejemplo, busco un Web service de conversión de divisas en UDDI).