SOAP et WSDL sont des normes extrêmement complexes, avec de nombreuses implémentations qui prennent en charge différents sous-ensembles de ces normes. SOAP ne correspond pas très bien à une simple interface de fonction étrangère de la même manière que XML-RPC fait. En revanche, vous devez comprendre les espaces de noms XML, les enveloppes, les en-têtes, le WSDL, les schémas XML, etc. pour produire des messages SOAP corrects. Tout ce que vous devez faire pour appeler un service XML-RPC est de définir un point de terminaison et d'appeler une méthode sur celui-ci. Par exemple, en Ruby :
require 'xmlrpc/client'
server = XMLRPC::Client.new2("http://example.com/api")
result = server.call("add", 1, 2)
Outre XML-RPC, il existe d'autres techniques qui peuvent également être beaucoup plus simples et légères, comme le XML simple ou le JSON sur HTTP (fréquemment appelé REST (bien que cela implique certaines autres considérations de conception). L'avantage de quelque chose comme XML ou JSON par rapport à HTTP est qu'il est facile à utiliser à partir de JavaScript ou même d'une simple page Web avec un formulaire à soumettre. Il est également possible de le scripter facilement à partir de la ligne de commande avec des outils tels que bouclette . Il fonctionne avec à peu près n'importe quel langage car les bibliothèques HTTP, XML et JSON sont disponibles presque partout, et même si un analyseur JSON n'est pas disponible, il est très facile d'écrire le vôtre.
Editar: Je dois préciser que je fais référence à la façon dont conceptuellement SOAP est un poids lourd, par opposition au poids lourd qu'il représente en termes de quantité brute de données. Je pense que la quantité brute de données est moins importante (bien qu'elle s'accumule rapidement si vous devez traiter de nombreuses petites requêtes), alors que la lourdeur conceptuelle est assez importante, car cela signifie qu'il y a beaucoup plus d'endroits où quelque chose peut mal tourner, où il peut y avoir une incompatibilité, etc.