XML-RPC

XML-RPCは、遠隔手続き呼出し(RPC)を実現するためのプロトコルの一つです。その最大の特徴は、データのエンコードにXML(Extensible Markup Language)を使用し、データの転送にはHTTP(Hypertext Transfer Protocol)を利用するという点です。

このプロトコルの設計思想は非常にシンプルであり、定義されているデータ型やコマンドはごく少数に限られています。そのため、XML-RPCの仕様は非常にコンパクトで、わずか2枚の紙にまとめられるほどです。多くのRPCシステムが複雑な規格と実装を必要とするのとは対照的で、XML-RPCの簡潔さが際立っています。

XML-RPCは1998年に、UserLand Software社とマイクロソフト社が共同で開発しました。その後、このプロトコルに機能を追加し、より複雑なプロトコルであるSOAP(Simple Object Access Protocol)が誕生しました。しかし、SOAPよりもXML-RPCのシンプルさを好む開発者も多く、現在でも広く利用されています。

類似のプロトコルとしては、(JavaScript Object Notation)をベースとした-RPCがあります。これはXML-RPCと同様にRPCを実現しますが、データ形式にを使用します。

XML-RPCのデータ型


XML-RPCでは、以下のようなデータ型を扱います。

整数(i4/int)
文字列(string)
ブール値(boolean)
倍精度浮動小数点数(double)
日付(dateTime.iso8601)
base64エンコードされたデータ(base64)
配列(array)
構造体(struct)

これらのデータ型を用いて、メソッドの呼び出しや応答を表現します。

XML-RPCの具体的な例



以下に、XML-RPCの要求、応答、およびエラー応答の例を示します。

XML-RPC要求の例


xml


examples.getStateName


40





この例では、`examples.getStateName`というメソッドを呼び出し、パラメータとして整数値`40`を渡しています。

XML-RPC応答の例


xml




South Dakota





この例は、上記の要求に対する応答で、文字列`South Dakota`が返されています。

XML-RPCエラー応答の例


xml






faultCode
4


faultString
Too many parameters.







この例は、エラーが発生した場合の応答を示しており、`faultCode`と`faultString`が含まれています。

XML-RPCの関連項目



XML-RPCは、他の技術やプロトコルとも関連があります。

Ajax: 非同期通信技術であるAjaxは、XML-RPCをデータ交換手段として利用できます。
ソフトウェアコンポーネント: XML-RPCは、分散環境でソフトウェアコンポーネント間の連携を可能にします。
OPML: XMLベースのアウトラインプロセッサマークアップ言語であるOPMLは、XML-RPCで利用されるXMLに関連する技術です。
Webサービス: XML-RPCは、Webサービスを構築するための技術の一つとして利用されます。
WDDX: XMLベースのデータ交換形式であるWDDXも、XML-RPCと同様にデータ交換に用いられます。

XML-RPC関連リンク



XML-RPC Homepage
Forum
Tutorials
Technology Reports
Citations from CiteSeer
XEP-0009: Jabber-RPC XMPPプロトコル上のXML-RPC
pyJabberXMLRPC: Python用(Jabber上のXML-RPC)
Secure Apache XML-RPC
RemObjects SDK SOAPなどへのXML-RPC対応
RealThinClient SDK: Delphi/C++用
XML-RPC in Flash ActionScript 2.0
XML-RPC.NET: .NET用
Redstone XML-PRC Library Java用オープンソースライブラリ

XML-RPCは、そのシンプルさから現在でも利用されているプロトコルであり、特に小規模なシステムや、複雑な設定を避けたい場合に適しています。また、その歴史から、多くのプログラミング言語やプラットフォームでライブラリが提供されているため、比較的簡単に導入することができます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。