web-dev-qa-db-ja.com

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

Webサービスの実装者がなぜ他のWebサービス実装者を選ぶのか、私は本当に理解していません。 XML-RPCは一般的に古いシステムにありますか?これを理解するのにどんな助けでも大歓迎です。

76
Scott Saad

違いは?

SOAPはより強力であり、ソフトウェアツールベンダー(MSFT .NET、Javaエンタープライズ版、そのようなもの)に好まれています。

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

SOAPはより冗長ですが、より能力があります。

SOAPは、古いものの一部ではサポートされていません。たとえば、no SOAPクラシックのlibs ASP(見つけることができた))。

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

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

xm-rpcは、実際にはプログラム間の言語に依存しない転送に関するプログラムです。主にhttp/httpsについて説明します。 SOAPメッセージもメールで送信できます。

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

ただし、Fortune 500のIT職を求めている場合は、履歴書/履歴書でSOAPを知っている方がはるかによく見えます。

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

XML-RPCは名前付きパラメーターをサポートしていません。それらは正しい順序でなければなりません。 SOAPについてはわかりませんが、そう考えてください。

84

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

13
bmdhacks

Kate Rhodesは http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap で違いについての素晴らしいエッセイを持っています

5
Dexter