Pour faire communiquer deux morceaux d’une même application ou deux applications distinctes, les programmeurs pouvaient jusqu'à présent utiliser trois propositions difficilement compatibles : COM+, la version distribuée du modèle objet de Microsoft limitée dans les faits au monde Windows ; CORBA, spécification normative d'un bus objet multi-plate-forme et multilangage et le modèle des Enterprise Java Beans (EJB), spécification d'architecture pour la construction et l'exécution de composants Java proposée par Sun. Indépendamment des apports des uns et des autres, qui sont en dehors de cette étude, peu de passerelles logicielles permettent de convertir aisément les requêtes issues d’un environnement afin qu'elles soient acceptées dans un autre environnement. Il est donc illusoire de vouloir faire cohabiter simplement au sein d’une même application plusieurs bus logiciels (« middleware ») d’interconnexion. Le besoin étant essentiel, plusieurs types de passerelles existent.
Microsoft, IBM et d’autres par la suite, observant que les incompatibilités et la lourdeur de ces propositions conduisaient au développement de solutions fondées sur des requêtes HTTP, ont introduit SOAP (Simple Object Access Protocol), un protocole de communication entre objets, très simple, reposant sur les acquis de l’Internet. En particulier, cette proposition utilise XML pour la description des requêtes et HTTP pour leur transport, ce qui permet d’éviter les problèmes liés au filtrage par des pare-feu (« firewall »). Ces deux standards, largement diffusés, sont utilisés en lieu et place de tout autre schéma propriétaire. Pour être plus précis, SOAP consolide et rend normative une proposition existante « XML-RPC ». SOAP, soumis à l’IETF et adopté par le W3C, comble une lacune du Web.
L’objectif de ce document est de présenter les principes de fonctionnement de SOAP ainsi que de donner quelques exemples d’utilisation.