lunes, 11 de enero de 2016

5.3.1 SOAP (Simple Object Access Protocol).

SOAP define un protocolo que da soporte a la interacción (datos + funcionalidad) entre aplicaciones en entornos distribuidos y heterogéneos, es interoperable es decir neutral a plataforma y lenguajes de programación, independiente del hardware y protocolos. Funciona sobre la infraestructura existente en Internet. SOAP define cómo organizar información usando
XML de forma estructurada para intercambiarla entre distintos sistemas.
SOAP especifica lo siguiente:

  •        Un formato de mensaje para una comunicación unidireccional, describiendo cómo se empaqueta la información en documentos XML.
  •         Un conjunto de convenciones para usar mensajes SOAP para implementar el patrón de interacción RPC (Remote Procedure Call), definiendo cómo los clientes pueden invocar un Procedimiento Remoto enviando un mensaje SOAP y cómo los servicios pueden responder enviando otro mensaje al llamador.
  •     Un conjunto de reglas que una entidad que procesa mensajes SOAP debe seguir, definiendo en particular los elementos XML que una entidad debe leer y entender, así como las acciones que deben toma si no entienden el contenido, estas reglas son llamadas: Reglas de Codificación de los Datos.
  •        Una descripción de cómo se debe transportar un mensaje SOAP sobre HTTP y SMTP.

SOAP intercambia información mediante mensajes. Los mensajes se utilizan como envoltorios que la aplicación utiliza para guardar la información que quiere enviar.
Cada mensaje contiene dos partes:

  •      Una cabecera (opcional). Que contiene información del mensaje, por ejemplo la cabecera puede contener  la fecha en que el mensaje es enviado, o información de autenticación, cuando está presente la cabecera siempre debe estar en la parte de arriba.
  •        Un cuerpo (obligatorio). Contiene los datos del mensaje.

La cabecera y el cuerpo pueden tener múltiples subpartes en forma de bloques de la cabecera y bloques del cuerpo.

Cuando una aplicación cliente hace una solicitud a un método Web, un paquete SOAP es creado. Este paquete contiene el nombre del método Web que es invocado, y los parámetros que son pasados al método Web en un formato XML. Cuando el paquete SOAP llega al servidor Web en el cual reside el servicio Web, el método Web y sus parámetros son extraídos del paquete SOAP y el método es invocado.
Este son unos ejemplos de una solicitud SOAP.

  •      Solicitud a un servicio de clima:
<?xml version='1.0' encoding='UTF8'?>
<SOAPENV:Envelope
xmlns:SOAPENV="http://www.w3.org/2001/09/soapenvelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAPENV:Body>
<ns1:getWeather
xmlns:ns1="urn:examples:weatherservice"
SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/09/soapencoding">
<zipcode xsi:type="xsd:string">10016</zipcode>
</ns1:getWeather>
</SOAPENV:Body>
</SOAPENV:Envelope>
ü  Respuesta de un servicio de clima:
<?xml version='1.0' encoding='UTF8'?>
<SOAPENV:Envelope
xmlns:SOAPENV="http://www.w3.org/2001/09/soapenvelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAPENV:Body>
<ns1:getWeatherResponse
xmlns:ns1="urn:examples:weatherservice"
SOAPENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding">
<return xsi:type="xsd:int">65</return>
</ns1:getWeatherResponse>
</SOAPENV:Body>
</SOAPENV:Envelope>

No hay comentarios:

Publicar un comentario