XML-RPC と SOAP の違いは何ですか?
-
09-06-2019 - |
質問
Web サービスの実装者がなぜ一方を選択するのか、私にはまったく理解できません。XML-RPC は一般的に古いシステムで使用されますか?これを理解する上で助けていただければ幸いです。
解決
違いは?
SOAP はより強力であり、ソフトウェア ツール ベンダー (MSFT .NET、Java Enterprise Edition など) によって非常に好まれています。
SOAP は、長い間 (2001 年から 2007 年頃まで) SOA に最適なプロトコルとみなされていました。xml-rpc はそれほど多くはありません。REST はプロトコルではありませんが、新しい SOA の最愛の人です。
SOAP はより冗長ですが、より高機能です。
SOAP は、一部の古いものではサポートされていません。たとえば、(私が見つけた)クラシック ASP 用の SOAP ライブラリはありません。
SOAP は Python では十分にサポートされていません。XML-RPC は、標準ライブラリで Python で優れたサポートを備えています。
SOAP はドキュメント レベルの転送をサポートしますが、xml-rpc は構造体やリストなどの構造を転送できますが、値の転送に重点を置いています。
xm-rpc は実際には、プログラム言語に依存しないプログラム間の転送を目的としています。主に http/https を経由します。SOAP メッセージは電子メール経由でも送信できます。
xml-rpc はより一意性が高くなります。これにより、物事を簡単に行うことができ、何をしているのかがわかっていれば、端末のテキスト エディタを使用している場合でも、高品質の Web サービスを非常に迅速に展開できます。そのように SOAP を実行するのは動物園です。それを実現するには優れた IDE が必要です。
ただし、フォーチュン 500 に入る IT の仕事を目指している場合は、SOAP を知っていれば、履歴書/CV での見栄えが大幅に向上します。
xml-rpc には、非 ASCII 文字セットに関するいくつかの問題があります。
XML-RPC は名前付きパラメータをサポートしません。それらは正しい順序でなければなりません。SOAP についてはよくわかりませんが、そう考えてください。
他のヒント
他の回答に追加するために、おそらく Ethereal でキャプチャして、SOAP および XML-RPC 呼び出しの実際のテキスト表現を確認することをお勧めします。「XML-RPC はより単純である」という議論全体は、SOAP 呼び出しがどれほど信じられないほど冗長であるかを理解するまではあまり意味がありません。世の中のかなり人気のある Web サイトの多くは、人々が SOAP を広範囲に使用し始めると帯域幅を消費してしまうため、API として SOAP を使用することを避けています。
Kate Rhodes は、以下の違いについて素晴らしいエッセイを書いています。 http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap