1. XMLRPCに対応したPingサーバー公開のニュース
2. ってかPingって何?
3. Pingサーバーってたくさんあるけどどこに送ればいい?
4. PingサーバーにPingを投げる開発者向けの話
xmlrpcに対応したpingサーバーのアドレスが、
2006/04/21 yahoo.co.jp (記事元: http://blogs.yahoo.co.jp/yjsearchblog/32495873.html)
2006/05/02 ask.jp (記事元: http://blog.ask.jp/2006/05/askjpping.html)
にそれぞれ公開された。
Yahoo!は、以前からPing受け付けはしていたが、XMLRPCでの受け付けは初めてになる。
Ask.jpは今までPingを受け付けていなかったので、Pingを送らなくても収集されることが多いとは言えるだろうが、漏れ率の減少の為には、送る設定にしておくといいだろう。
一般的な意味でのPingというのは、Pingの送信先のサーバーが生きているかどうか確認するコマンドのことであるが、ブログ投稿の時のPingとは、記事を更新したよ、とPingの送り先のサーバーに知らせて、そのコンテンツをとって、検索の対象にしてもらうことを指す。
技術的な詳細を言えば、
<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>サイト名</value>
</param>
<param>
<value>ブログサイトのURL</value>
</param>
</params>
</methodCall>
と言う内容のものを、POSTメソッドで、文字コードはUTF8で送ることを、XMLRPC形式によるPing送信という。
普通は、そんな技術的詳細まで知る必要はなく、ブログの設定のところで、Pingの送り先に、公開されているPingサーバーのPing受け付けのURLを指定すれば良い。
Pingを送るというのは、送り元のサーバーに結構大きい負荷がかかるが、送り先となるPingサーバーはたくさんあるので、送り先は必要なだけに絞った方がいいだろう。どうせ、送っても意味のある(アクセスを生む)検索エンジンは限られている。また、自分で運用しているMovable Typeのサイトとかでなく、ブログASPを利用すると、Pingの設定をしていても、必ずしも送られるわけでもない、ということも考えると、なるべく余計なものは外した方がいい。送り先で設定して意味があるのは、以下程度ではないかと思う。
Pingを送って意味があるPingサーバー
http://ping.ask.jp/xmlrpc.m: Ask.jpの最速ブログ検索対策
http://www.bloglines.com/ping: BloglinesのRSSリーダー + ブログ検索対策
http://api.my.yahoo.co.jp/RPC2: Yahoo! Japanのブログ検索対策
http://rpc.technorati.com/rpc/ping: Technoratiのブログ検索対策
http://blog.goo.ne.jp/XMLRPC: Gooのブログ検索対策
http://ping.cocolog-nifty.com/xmlrpc: 受け付けたPingを公開する公開Pingサーバーの一つ。更新頻度が遅いし、リストが巨大だし、海外からのPingも多く、利用するのは難しいところがあるとは思いますが。
http://ping.bloggers.jp/rpc/: 受け付けたPingを公開する公開Pingサーバーの一つ。混雑が酷くて、レスポンスは益々遅くなってきてしまっていますが。最近死亡していていることも結構ある。
http://rpc.weblogs.com/RPC2: 受け付けたPingを公開する公開Pingサーバーの一つ。何の意図を持ってかは知らないがVerisignが買収した。Google、Bloglines等、英語圏を起源としたブログ検索サービスの多くはここを見ている。レスポンスの遅さと、リストの巨大さはここでも問題になっていますが。
Pingサーバーに対するPingの送信の数は飛躍的に増大していますが、それに従い、Pingサーバーのレスポンスも飛躍的に悪化している状況が伺えます。調子が悪い時に、レスポンスを待ち過ぎないように、タイムアウトの処理を入れるのは必須でしょう。そうしないと、混雑時には、外部のPingサーバーの反応待ちのコネクションが大量に張っている状態ノプロセスが大量に残る状態になってしまいかねないので。
また、自分で作られたい場合には、普通のURLの送り方ではないので、仕組みを理解した上で、例えばperlだったら、Socketモジュールを使って、自由が利くように、自分で作られるといいでしょう。