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