Je n'ai jamais vraiment compris pourquoi un implémenteur de service Web choisirait l'un plutôt que l'autre. XML-RPC est-il généralement trouvé dans les systèmes plus anciens? Toute aide pour comprendre cela serait grandement appréciée.Quelle est la différence entre XML-RPC et SOAP?
Répondre
Différences?
La spécification xml-rpc correspond à
1 page
6 pages. La spécification SOAP 1.2 vous coûtera
une rame de 500 pages
44 pages.
SOAP est plus puissant, et est beaucoup préféré par les fournisseurs d'outils logiciels (MSFT .NET, Java Enterprise Edition, ce genre de choses).
SOAP a été pendant longtemps (2001-2007) considéré comme le protocole de choix pour SOA. xml-rpc pas tellement. REST est le nouveau chouchou de la SOA, bien qu'il ne s'agisse pas d'un protocole. SOAP est plus verbeux, mais plus capable.
SOAP n'est pas pris en charge dans certains composants plus anciens. Par exemple, aucune librairie SOAP pour ASP classique (que j'ai pu trouver).
SOAP n'est pas bien supporté en python. XML-RPC a un très bon support en python, dans la bibliothèque standard.
SOAP prend en charge le transfert au niveau du document, alors que xml-rpc est plus sur le transfert de valeurs, même si elle peut transférer des structures telles que les structures, listes, etc.
XM-rpc est vraiment un programme à transfert linguistique agnostique . Il va principalement sur http/https. Les messages SOAP peuvent également être envoyés par e-mail.
xml-rpc est plus unixy. Il vous permet de faire les choses simplement, et quand vous savez ce que vous faites, il est très rapide de déployer des services Web de qualité, même en utilisant des éditeurs de texte de terminal. Faire 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 curriculum vitae/CV si vous êtes en concurrence pour un emploi informatique Fortune 500. Xml-rpc a quelques problèmes avec les jeux de caractères non-ascii.
Édité: Je voulais juste ajouter que XML-RPC ne supporte pas les paramètres nommés. Ils doivent être dans le bon ordre. Pas sûr à propos de SOAP, mais pensez-y.
Kate Rhodes a un grand essai sur les différences à http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap
Juste pour ajouter aux autres réponses, je vous encourage à regarder les représentations textuelles réelles des appels SOAP et XML-RPC, peut-être en capturant un avec Éthéré. L'argument "XML-RPC est plus simple" n'a pas beaucoup de sens jusqu'à ce que vous voyiez à quel point un appel SOAP est incroyablement verbeux. La plupart des sites Web assez populaires ne font pas confiance à SOAP en raison de la quantité de bande passante qu'ils consommeraient si les gens commençaient à l'utiliser intensivement.
- 1. Quelle est la différence entre dict() et {}?
- 2. quelle est la différence entre:.! et: r !?
- 3. Quelle est la différence entre = et: =
- 4. Quelle est la différence entre les schémas W3 et xmlsoap.org?
- 5. Quelle est la différence entre X509Certificate2 et X509Certificate in .NET?
- 6. Quelle est la différence entre Databinder.Eval et Container.DataItem?
- 7. Quelle est la différence entre DAO et Data Mapper
- 8. Quelle est la différence entre Keyboard.Focus (point) et item.Focus()?
- 9. Quelle est la différence entre JAIN SIP et MJSIP?
- 10. Quelle est la différence entre openGL et EAGL/openAL?
- 11. Quelle est la différence entre un nanokernel et un exokernel?
- 12. Quelle est la différence entre UML 2.1.2 et UML 2.2
- 13. Quelle est la différence entre ASP.NET DynamicData et IronSpeed?
- 14. Quelle est la différence entre DTCPing et DTCTester?
- 15. Quelle est la différence entre RMI et Corba?
- 16. Quelle est la différence entre "bool" et "bool?"
- 17. Quelle est la différence entre -ggdb gcc et -g gcc
- 18. Quelle est la différence entre RTN concret et RTN abstrait?
- 19. Quelle est la différence entre% Q et% {} dans ruby?
- 20. Quelle est la différence entre Page.IsPostBack et Page.IsCallBack?
- 21. Quelle est la différence entre C et Embedded C?
- 22. Quelle est la différence entre nohup et un démon?
- 23. Quelle est la différence entre // et /// dans Visual Studio?
- 24. Quelle est la différence entre memset et memcpy dans C
- 25. Quelle est la différence entre Server.MapPath et HostingEnvironment.MapPath?
- 26. Quelle est la différence entre latin1_general_ci et utf8_bin dans MYSQL
- 27. Quelle est la différence entre debug.write et Trace.write?
- 28. Quelle est la différence entre un midlet et un corelet?
- 29. Quelle est la différence entre TAggregateField.IsNull et (TAggregateField.Value = Null)
- 30. quelle est la différence entre stringstream et str
Pour SOAP avec Python, il y a le package ZSI. C'est assez bon, mais vous avez absolument besoin d'un wsdl. – edomaur
Je crois que l'ancien SOAP Toolkit avait un support pour "ASP classique". Plus précisément, vous pouvez utiliser votre langage .NET favori pour créer un composant COM qui enveloppe une référence de service, permettant à ASP classique de consommer même un service Web moderne. –
@ Mark Harrison et Christopher: Que voulez-vous dire "Faire SOAP de cette façon est un zoo" .Désolé, je ne pouvais pas comprendre le mot "zoo" .Veuillez le décrire ... – Saravanan