En informática SOAP (inicialmente acrónimo de simple object access protocol ) es un protocolo para el intercambio de mensajes entre componentes de software . La palabra " objeto " manifiesta que el uso del protocolo debe realizarse de acuerdo al paradigma de la programación orientada a objetos .
SOAP es el marco operativo extensible y descentralizado que puede operar sobre varias pilas de protocolos para redes informáticas al proporcionar solicitudes de procedimientos remotos a través de mensajes . De hecho, las llamadas a procedimientos remotos se pueden modelar como la interacción de varios mensajes SOAP. SOAP es por tanto uno de los protocolos que habilitan los servicios web .
SOAP puede operar en diferentes protocolos de red , pero HTTP es el más utilizado y el único que ha sido estandarizado por el W3C , en el que se encapsula el mensaje relacionado . SOAP se basa en el metalenguaje XML y su estructura sigue la configuración cabeza-cuerpo , similar a HTML . El segmento de "encabezado" opcional contiene metadatos como parámetros de enrutamiento , seguridad , transacción y orquestación . El segmento de cuerpo obligatorio transporta el contenido de la información y, a veces, se denomina carga útil . Este debe seguir un esquema definido por el lenguaje XML Schema . SOAP se puede utilizar de dos maneras diferentes para una llamada:
Como primer ejemplo, mostramos cómo un cliente puede formatear un mensaje SOAP para solicitar información sobre un producto de un servicio web ficticio que simula un almacén.
<soap: Envelope xmlns: soap = "http://schemas.xmlsoap.org/soap/envelope/" > <soap: Body> <getProductDetails xmlns = "http://magazzino.example.com/ws" > <productId > 827635 </productId> </getProductDetails> </soap: Cuerpo> </soap: Sobre>El siguiente es el texto con el que el almacén web podría enviar su mensaje de respuesta con la información solicitada.
<soap: Envelope xmlns: soap = "http://schemas.xmlsoap.org/soap/envelope/" > <soap: Body> <getProductDetailsResponse xmlns = "http://magazzino.example.com/ws" > <getProductDetailsResult > <productName> Toptimate, juego de 3 piezas </productName> <productId> 827635 </productId> <description> Juego de maletas; 3 piezas; poliéster; negro. </description> <price> 96.50 </price> <inStock> true </inStock> </getProductDetailsResult> </getProductDetailsResponse> </ soap: Cuerpo> </ soap: Sobre>