monthly gimite

試験運用中。

Google Maps API→AJAX→XML-RPC

という流れで、最近たまに聞くXML-RPCって何だろうと思って調べてみました。XML Remote Procedure Callっていう名前の通り、HTTPでXMLを送ってリモートマシンの関数を呼ぶものらしい。ふむふむ。dRubyとか.NETが使ってるSOAPとかと似たようなもんですね。

このページを見る限り仕様はかなりシンプル。Rubyからは標準ライブラリで簡単に使えるようです。クライアント側だと

require "xmlrpc/client"

server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
result = server.call("sample.sumAndDifference", 5, 3)
# => {"difference"=>2, "sum"=>8}

こんな感じ。dRubyと違うのは

  • Ruby同士じゃなくても使える。
  • HTTPなのでサーバ側はただのCGIでいい。
  • あくまで関数呼び出し。オブジェクトは扱えない。
  • サーバ側からクライアント側の関数を呼ぶことはできない。

てな所でしょうか?