Quees SOAP?

SOAP es Simple Object Access Protocol, un estándar propuesto por Microsoft, IBM y otros al Consorcio WWW (W3C) para el intercambio de mensajes entre servicios web y los consumidores de estos servicios.

El protocolo SOAP esta construido sobre XML y solo describe el formato de los mensajes dejando abierta la posibilidad de usar varios transportes, aunque actualmente el transporte usado es HTTP. La elección de HTTP como transporte se debe a que es el transporte más usado, y si una organización de cualquier tipo provee una sola salida o conexion con el mundo exterior (internet) lo mas probable es que sea HTTP.

El protocolo define un «sobre» (envelope) en el que se empaqueta el requerimiento donde se especifica el destinatario de la llamada, el nombre del método que se invoca y opcionalmente una serie de parametros con tipos definidos. La respuesta a este requerimiento se empaqueta de la misma forma, en un «sobre» que contiene el resultado del método invocado.

Para qué sirve?
La utilidad de este mecanismo consiste en que con un conjunto de servicios simples se puede implementar aplicaciones que entreguen funcionalidad valiosa mediante la integración de estos servicios básicos o mediante el uso programático de estos.

SOAP se enmarca dentro de lo que se llama «component based arquitectures», o sea arquitecturas basadas en componentes. Aqui la idea básica es que es mas facil identificar ciertas tareas que se programan muchas veces y en lugar de programarlas cada vez que se requieren es mas eficiente hacerlas una vez de manera que puedan ser invocadas desde una variedad de aplicaciones clientes o, para usar un termino mas moderno, «consumidores de servicios». De esto se desprende una de las cualidades fundamentales que debe tener la tecnología necesaria para crear componentes y es que debe ser muy flexible permitiendo incorporarla con la misma facilidad a aplicaciones en plataformas muy diversas, por ejemplo una aplicación web escrita en PHP o JSP, una aplicación de escritorio en Visual Basic o C++ o una aplicación servidor en Java.

Otras tecnologías que persiguen estos objetivos son por ejemplo la arquitectura COM de Microsoft o la arquitectura CORBA de OMG que permiten la invocación de métodos de objetos que pueden ser remotos. La ventaja de SOAP frente a estos esquemas es que es mas sencillo de implementar y dado que es XML via HTTP el vocabulario y el método de transporte son ubicuos en la actualidad.