Google、PubSubHubbubで真のリアルタイムインデックスを実現

Googleのインデックス速度はスピードアップする一方で、コンテンツを新しく公開した数分後にはすでに検索結果に出てくることも決して珍しくありません。

リアルタイムにインデックスしていると言えそうですが、リアルタイム検索のように、厳密な意味でのリアルタイムではなく、数分と言えどもタイムラグが存在します。
またすべてのサイトが素早くインデックスされるわけではなく、更新頻度や外部からのリンク状態、PageRankなどの要因によってクローリング・インデックスが左右されます。

しかし、Googleは”PubSubHubbub“という新しいテクノロジーを利用してすべてのウェブサイトに対して真のリアルタイムインデックスを実現させるかもしれません。

まず、PubSubHubbubについて簡単に説明します。
PubSubHubbubが何かを知っている人は、スキップして下まで飛んでください。

PubSubHubbubとは

読み方は「ハブサブハブバブ」もしくは「パブサブハバブ」ですが、舌を噛みそうなので略して“PuSH”(プッシュ)と呼ぶこともあります。

何をするのかをおおまかに言うと、“Hub”というサービス(サーバー)がコンテンツの更新を随時通知する仕組みになります。

現在は、たとえばRSSリーダーでブログを購読していたとすると、RSSリーダーは定期的にブログに「更新はありますか?」と問い合わせして、更新があれば新しいコンテンツを取得しています。
更新がなければ「はい、そうですか。ではまた出直します。」と言って終わりです。

このやりとりにはいくつか問題があります

  • 一定間隔での問い合わせ(ポーリングと言います)なので更新直後の最新コンテンツの取得が困難
  • 更新があろうがなかろうが問い合わせが発生するので帯域の消費やサーバーへの余計なアクセスが発生する(数が増えると無視できなくなる)
  • クライアント(ここではRSSリーダー)の数が多くなるとサーバーに負荷がかかる

これらの問題を解決するのがPuSHです。

PuSHでは、ブログとRSSリーダーの間にHub(ハブ)が介在します。

PuSHに対応したサーバー(分かりやすくブログと考えてもらって結構です)は、更新がある度にその旨をハブに伝えます。
更新通知がなくてもハブは定期的にサーバーに更新があるかどうか問い合わせします。
ネットワークの障害などで一時的に通信ができなくなったことが原因で、更新通知が届かなかったなんていうことがあるかもしれませんよね。
つまり、ハブには最新の情報がリアルタイムで常に届くということになります。

ハブは更新を受け取り新しいコンテンツを取得します。

そして、次は自分のクライアント(RSSリーダーと考えてもらって結構です)に対して更新通知と最新のコンテンツを送ります。

結果としてクライアントも常に最新のコンテンツをほぼリアルタイムで受け取ることが可能になるのです。

「ハブなんて介さずにサーバーから直接更新通知を受けとればいいじゃん」と思うかもしれませんが、サーバーとやりとりするのはハブだけです。
ハブが複数のクライアントを相手にします。
サーバーの負担が少なくなりますよね。
ハブの負荷が増して1台で面倒がみきれなくなったとしても、ハブの台数を増やせば対応できます。

ここまでの説明を図に表すとこんな感じです。

「発行者(Publisher)」はブログ、「購読者(Subscriber)」はRSSリーダーに置き換えてもらうと分かりやすいでしょう(実際にはもっと幅広い定義を持ちます)。

PubSubHubbubの仕組み概略図

GoogleがPubSubHubbubでコンテンツを取得

さて、ここからが本題です。

GoogleがPuSHをコンテンツ発見のために利用するというのです。

米サンタクララで先日開催されたSMX WestでGoogleのDylan Casey(ディラン・ケイシー)氏が明らかにしたReadWriteWebが伝えています。

冒頭でも言ったように、現在はリアルタイムに近いインデックスと言ってもクローラがサイトに訪問して新しいコンテンツを取得するので、クローラが来なければインデックスされることはありません。

Twitterのような本当のリアルタイム性を実現することはできないかもしれないし、小さなサイト・更新頻度の低いサイトはリアルタイムにインデックスしてもらえなさそうです。

しかしPubSubHubbubに対応していさえすれば、こちらからGoogleに更新を伝えることができるのです。
「新しいコンテンツを公開したからインデックしに来い」と。

数分後ではなく数秒後のインデックスが可能になります。

まだ解決しなければならない問題もあるようですが PubSubHubbubによるリアルタイムインデックスが実現すれば、「更新したのに2週間たってもインデックスされない」などという悲鳴を上げることもなくなるでしょう。

PubSubHubbubを利用したインデックスが実現するのが楽しみですね。

P.S.
Googleリーダーとlivedoor Readerが購読側としてPubSubHubbubに対応しているそうです。
発行者としてはlivedoor BlogとWordPress.comが対応しているようです。
今後対応者が増えていくでしょう。