PubSubHubbub は“サーバ間をweb-hookの仕組みで繋いだ、オープンな配信/購読プロトコルであり、Atom (とRSS)を拡張した”ものだ。このプロトコルを使えば、関係者はフィードが更新されたとき、ほぼ即時に通知を受け取れる。このプロトコルを開発したのはGoogleであり、同じ名前のプロジェクトとしてGoogle Codeで公開されている。
クライアント側が定期的にサーバ側へポーリングしてフィードが更新されていないかを確かめるかわりに、PubSubHubbubプロトコルはこのプル型の方法をプッシュ型に変える。クライアントはハブを購読すれば、ほとんど即時にフィード更新の通知を受け取れる。この一連の仕組みはプロジェクトのホームページで下記のように説明されている。
- あるフィードは(ある"トピック"を表す)このフィードのハブサーバを<link rel="hub" ...>のような形式でAtomやRSSのXMLファイルの中に記述します。ハブはフィードの配信者によって運営される場合もありますし、誰でも利用できるコミュニティハブもあります。 (AtomとRssフィード をサポートしています)
- 購読者(このトピックに興味のあるサーバ)は、最初、普通にAtomのURLを取得します。取得したAtomファイルにハブが定義されていれば、以後、購読者はこのURLに対して不細工なポーリングを続けることをやめ、代わりにこのフィードのハブを登録して更新を購読します。
- 購読者がトピックを購読するのは、そのトピックのURLが定義するハブからです。
- 次に配信者がトピックを更新すると、更新があったことを配信者側のソフトウエアがハブに対して通知します。
- ハブは効率良くフィードを取得して、新しい/更新されたコンテンツを登録済みの購読者へマルチキャストで通知します。
Googleはこのプロトコルを、FeedBurnerやReader(shared items機能)、Bloggerや最近ではAlertsなど、いくつかのサービスで実装している。プロトコル自体はApache License 2.0で公開されているので、誰でも利用できる。その上、どんなサーバでもハブとして運用できる。GoogleのApp Engine上で動かす必要はない。
Googleはハブの実装サンプルを作った。これは配信/購読プロセスをテストして、どのように動作しているのか確かめるのに使えるだろう。またこのビデオでは、実際にこのプロトコルをつかったデモが見られる。