« XMLRPC::Liteで更新Ping | トップページ | grubブートフロッピーからの起動と復旧 »

2009-05-30

テスト用更新Pingダミーサーバーを作成して検証。アクセスアップにつながるのか?

更新Pingとは
更新Pingとは、ブログなどを更新した際に、更新した事を通知する仕組みです。

ブログの設定で更新通知を送るサーバーを設定しておくと、記事の更新時にブログ名とブログのトップページのURLがサーバーに通知されます。

この情報を元に、受信サーバーは、RSSなどを取得したりして、更新情報を取得し、新着記事などとしてリンクを作成したりするのに使ったり、ブログ検索などにエントリーされます。
これによって、自分のブログへのリンクが増えたり、検索サイトでヒットする確率が増えるので、アクセス増加の可能性があります。

更新通知サービスが使えないブログ
楽天ブログでは、この更新Pingを送るサービスがありません。(と思います)
トラックバックPingなどのサービスを利用して、更新通知を送る事はできますが、更新Pingサーバーの設定はできないと思います。

このココログもベーシックだからか、自由な追加はできないみたいです。
あらかじめ用意された選択肢にチェックするようになっています。
ブロガーも設定方法がわかりませんでした。

そこで、自作しようというのが、そもそもの企みでした。

しかしながら、あまりいい加減に、現在稼動中のサービスに頻繁に更新Pingを送るのも迷惑ですし、実際にキチンと届いているのか。
また、送られるデータの形式は、本当に正しいのかを判断する事ができません。

更新Pingのしくみ
更新Pingは、RPC (Remote Procedure Call) という仕組みを使います。
リモートの手続きをコールします。
他のサーバーで動いているプログラムに、何らかのデータを渡して処理を行ってもらいます。

プログラミング言語のパスカル (Pascal) では、プロシージャは、値を返しませんが、RPCは戻値というか、レスポンスを返します。
これは、RPCがCGIなどのウェブアプリケーションで作られていて、HTTPアクセスに対する応答が必要だからではないかと思います。

更新Pingに更新を通知するには、XMLという形式のデータを、サーバーにPOSTします。
受信サーバーは、更新通知が送られてくると、エラーかどうかの情報と、そのメッセージ文字列をXML形式で戻してくれます。

しかし、実際には、エラーなし、「Thanks for the ping.」なんてメッセージが戻ってきても、本当に正常に送られているのかどうか、わかりません。
Pingサーバーにアクセスしている事、結果を受け取っている事は確認できますが、その先でブログ名が文字化けしてしまったり、URLが空文字列だったりという事があるかもしれません。

更新Pingを受け取ってみよう
そこで、正しく送られているであろう更新通知と、自作した更新通知を比較してみようと思い、受信した更新通知のXMLをファイル出力するCGIを作成しました。

そして、更新Ping送信機能のあるブログから、自作のPingサーバーに更新通知を送ります。
次に、自作のツールで更新通知を送ります。

その二つを比較してみました。
結果は、ほぼ同じでした。
<?xml version="1.0"?>
が、
<?xml version="1.0" encoding="UTF8"?>
だったりしましたが、調べてみると、encodingを省略した場合にはUTF-8として扱われるようなので、問題はなさそうです。

ということで、どうやら正常に送られていると考えて良さそうです。
ちょっとでも、アクセスアップにつながるといいかなと。

テスト用ダミーPingサーバーソース
#!/usr/bin/local/perl

# 受信データ読み込み
read (STDIN, $xml, $ENV{CONTENT_LENGTH});

# ファイルに出力
open OUT, ">> ping.xml";
print OUT $xml . "\n\n";
close OUT;

# 結果出力
print <<EOF
content-type: text/xml

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<struct>
  <member>
    <name>flerror</name>
    <value><boolean>0</boolean></value>
  </member>
  <member>
    <name>message</name>
    <value><string>Thanks for the ping.</string></value>
  </member>
</struct>
</value>
</param>
</params>
</methodResponse>
EOF

こんな感じで、エラー処理も何もしていないテストCGIを作りました。
危なっかしいので、テスト後は、すぐに削除しました。

ただ、普段は、MetaGatewayを使って書いているので、MetaGatewayの機能でPingを送る事ができるので、あまり使うことはなさそうですけど。

色々と勉強になりました。



|

« XMLRPC::Liteで更新Ping | トップページ | grubブートフロッピーからの起動と復旧 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: テスト用更新Pingダミーサーバーを作成して検証。アクセスアップにつながるのか?:

« XMLRPC::Liteで更新Ping | トップページ | grubブートフロッピーからの起動と復旧 »