Quelle est la différence entre XML-RPC et SOAP?

Je n’ai jamais vraiment compris pourquoi un implémenteur de service Web choisirait l’un sur l’autre. XML-RPC se trouve-t-il généralement dans les anciens systèmes? Toute aide pour comprendre cela serait grandement appréciée.

    Différences?

    La spécification xml-rpc s’adapte sur 1 page 6 pages. La spécification SOAP 1.2 vous coûtera une rame de 500 pages et 44 pages.

    SOAP est plus puissant et est très apprécié par les fournisseurs d’outils logiciels (MSFT .NET, Java Enterprise Edition, etc.).

    SOAP a longtemps été considéré (2001-2007ish) comme le protocole de choix pour l’architecture SOA. xml-rpc pas tellement. REST est le nouveau SOA chéri, bien que ce ne soit pas un protocole.

    SOAP est plus verbeux, mais plus capable.

    SOAP n’est pas pris en charge dans certaines des anciennes versions. Par exemple, pas de librairie SOAP pour ASP classique (que j’ai pu trouver).

    SOAP n’est pas bien pris en charge en python. XML-RPC a un excellent support en python, dans la bibliothèque standard.

    SOAP prend en charge le transfert au niveau du document, tandis que xml-rpc concerne davantage le transfert de valeurs, bien qu’il puisse transférer des structures telles que des structures, des listes, etc.

    xm-rpc est vraiment une question de programme pour transférer le langage agnostique. Il passe principalement par http / https. Les messages SOAP peuvent également être transmis par courrier électronique.

    xml-rpc est plus unixy. Il vous permet de faire les choses simplement et, lorsque vous savez ce que vous faites, il est très rapide de déployer des services Web de qualité, même lorsque vous utilisez des éditeurs de terminaux. Faire du soap de cette façon est un zoo; vous avez vraiment besoin d’un bon IDE pour le rendre réalisable.

    Connaître SOAP, cependant, sera beaucoup mieux sur votre CV / CV si vous visez un emploi du Fortune 500 IT.

    xml-rpc présente des problèmes avec les jeux de caractères non ascii.

    Édité: Je voulais juste append que XML-RPC ne supporte pas les parameters nommés. Ils doivent être dans le bon ordre. Pas sûr de SOAP, mais pensez-y.

    Pour append aux autres réponses, je vous encourage à examiner les représentations textuelles réelles des appels SOAP et XML-RPC, peut-être en en capturant une avec Ethereal. Tout l’argument “XML-RPC est plus simple” n’a de sens que lorsque vous voyez à quel point un appel SOAP est verbeux. Bon nombre des sites Web assez populaires se détournent de SOAP en tant qu’API en raison de la quantité de bande passante nécessaire si les utilisateurs commençaient à l’utiliser de manière intensive.

    Kate Rhodes a un excellent essai sur les différences à http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap