SOAP est un protocole pour l'échange d'information dans un environnement décentralisé et distribué, comme internet par exemple.Il a été pris en compte comme note par le W3C.
SOAP est donc un protocole permettant l'invocation de méthodes, de services, de composants et d'objets sur des serveurs distants. SOAP peut normalement fonctionner sur de nombreux protocoles, des systèmes de messageries à l'utilisation des RPC mais il opère particulièrement bien avec le protocole HTTP. SOAP repose sur l'utilisation combinée de :
- XML pour la structuration des requêtes et des réponses, représentant les paramètres des méthodes, les valeurs de retours et les éventuelles erreurs liées aux traitements
- HTTP comme mécanisme d'invocation de méthodes. Pour ce faire, il repose sur un jeu réduit de paramètres précisés dans les en-têtes HTTP, facilitant le filtrage par les proxy et firewall.
Il est donc basé sur l'utilisation de XML pour structurer la nature d'un échange dont on peut distinguer :
- une enveloppe, qui propose un framework visant à décrire ce qui est présent dans un message (la requête) et la façon dont il doit être traité,
- un ensemble de règles de codage permettant de décrire les instances des types de données liées à l'application,
- une convention pour représenter les appels aux procédures distantes réalisant le traitement et les réponses.
Sur la base de cette courte présentation, vous pouvez pensez qu'Il est similaire à IIOP pour CORBA, ORPC pour DCOM, Java Remote Method Protocol (JRMP) pour Java Remote Method Invocation (RMI). Alors pourquoi un nouvelle façon pour l'invocation de méhtodes à distance. Et bien, IIOP, ORPC et JRMP sont des protocoles orientés binaires alors que SOAP est un protocole basé sur du texte. De plus, basé sur HTTP et étant orienté ASCII, il pose moins de problèmes avec les équipements de sécurité.