XML-RPCとSOAPの違いは何ですか?


81

Webサービスの実装者がなぜどちらかを選択するのか、私は本当に理解していません。XML-RPCは一般的に古いシステムに見られますか?これを理解する上での助けをいただければ幸いです。

回答:


88

違いは?

SOAPはより強力であり、ソフトウェアツールベンダー(MSFT .NET、Java Enterpriseエディションなど)に非常に好まれています。

SOAPは長い間(2001-2007ish)、SOAに最適なプロトコルと見なされていました。xml-rpcはそれほど多くありません。RESTはプロトコルではありませんが、新しいSOAの最愛の人です。

SOAPはより冗長ですが、より機能的です。

一部の古いものではSOAPはサポートされていません。たとえば、従来のASP用のSOAPライブラリはありません(私が見つけたものです)。

SOAPはPythonでは十分にサポートされていません。XML-RPCは、標準ライブラリでPythonを強力にサポートしています。

SOAPはドキュメントレベルの転送をサポートしますが、xml-rpcは値の転送に関するものですが、構造体やリストなどの構造を転送することはできます。

xm-rpcは、実際にはプログラム間で言語に依存しない転送に関するものです。これは主にhttp / httpsを経由します。SOAPメッセージは電子メールを経由することもできます。

xml-rpcはよりユニキシです。それはあなたが物事を簡単に行うことを可能にし、あなたが何をしているのかを知っているとき、ターミナルテキストエディタを使用しているときでさえ、高品質のウェブサービスを展開することは非常に速いです。そのようにSOAPを行うのは動物園です。それを実現するには、本当に優れたIDEが必要です。

ただし、Fortune 500のIT求人を争っている場合は、SOAPを知っていると、履歴書/履歴書の見栄えがよくなります。

xml-rpcには、ASCII以外の文字セットに関するいくつかの問題があります。

XML-RPCは名前付きパラメーターをサポートしていません。それらは正しい順序である必要があります。SOAPについてはよくわかりませんが、そう思います。


1
Pythonを使用したSOAPには、ZSIパッケージがあります。かなり良いですが、絶対にwsdlが必要です。
edomaur 2008年

2
古いSOAPToolkitは「ClassicASP」をサポートしていたと思います。さらに重要なことに、お気に入りの.NET言語を使用して、サービス参照をラップするCOMコンポーネントを作成し、ClassicASPが最新のWebサービスを利用できるようにすることができます。
ジョンサンダース

1
@edomaur実際、sudはよりPython的で、より簡単で、使いやすいので、より良い選択です。pypi.python.org
pypi /

14

他の回答に追加するために、おそらくEtherealでキャプチャすることにより、SOAPおよびXML-RPC呼び出しの実際のテキスト表現を確認することをお勧めします。「XML-RPCの方が単純です」という議論全体は、SOAP呼び出しが非常に冗長であることがわかるまではあまり意味がありません。そこにあるかなり人気のあるWebサイトの多くは、人々がそれを広範囲に使用し始めた場合に消費する帯域幅の量のために、APIとしてのSOAPを敬遠しています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.