No hablamos de sopa ni de series de televisión, hablamos de Simple Object Access Protocol. es un protocolo de comunicaciones remotas estándar desarrollado por Microsoft, IBM y otros autores importantes del sector. En la actualidad este protocolo está bajo el auspicio del W3C.
Un mensaje bajo este protocolo tiene los siguientes elementos:
Ejemplo de respuesta:
Con Java y con .NET este tipo de protocolo funciona muy bien, pero con PHP o con Python su implementación es incompleta, puedes usarlo pero no tienes acceso a todos los elementos del proceso.
Un mensaje bajo este protocolo tiene los siguientes elementos:
- Envelope (Envoltorio): Establece la estructura e identifica el mensaje como SOAP.
- Header (Cabecera): Envía información de como debe de ser procesado el mensaje,
- Body (obligatorio): Contiene la información relativa a la llamada y la respuesta.
- Fault (Fallo): Bloque que contiene información relativa a errores.
El modelo de procesado es un sistema distribuido en el que intervienen diferentes nodos que se organizan según los roles:
- Sender: Nodo que envía un mensaje.
- Receiver: Nodo que recibe un mensaje.
- Message path: Conjunto de nodos por los cuales asa el mensaje, incluyendo el inicial y el final.
- Initial Sender: Emisor inicial.
- Intermediary: Intermediario.
- Ultimate receiver: Receptor final del mensaje.
Un nodo puede efectuar varios roles a la vez.
SOAP puede funcionar bajo http pero también bajo smtp (emails).
Ejemplo de solicitud:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://soap.example.com/ws"> <productId>3526532</productId> </getProductDetails> </soap:Body> </soap:Envelope>
Ejemplo de respuesta:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://soap.example.com/ws"> <getProductDetailsResult> <productName>Pelador de patatas</productName> <productId>3526532</productId> <description>El mejor pelador del mercado.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
Con Java y con .NET este tipo de protocolo funciona muy bien, pero con PHP o con Python su implementación es incompleta, puedes usarlo pero no tienes acceso a todos los elementos del proceso.
Comentarios