PubSubHubbub

[あとで調査]
MOONGIFT: 安全、かつ効果的にデータを配信する「PubSubHubbub」

フィードがブログやCMSで当たり前のように使われるようになっており、さらにWeb APIなどを公開したことによって人が使う以外のシステムからのアクセスが非常に多くなっている。一見しただけではDOSアタックと見分けがつきづらいく らいアクセスしてくるものも存在する。


配信システムのコンテンツ作成

 

そのような過負荷なやり取りを一つのサーバで行うのは無理がある。そこで提言されているのがPubSubHubbubだ。

今回紹介するオープンソース・ソフトウェアはPubSubHubbub、オープンなコンテンツ配信、購読プロトコルだ。

PubSubHubbubは全部で3つの技術からなる。一つは配信サーバ、もう一つは購読システムそして最後にハブだ。ハブは配信サーバと購読システムに間に立つ。購読システムは常にハブに対して購読の申し込み(Atom形式)を行う。


購読システムの設定

 

その後がちょっと変わっており、ハブから購読システムにコールバックで詐称がないか確認する。そこで購読システム側も了承の旨を伝えると、ハブが配 信サーバにデータを取得する。そしてハブから各購読システムに対して配信を行う。配信する際にはハブから購読システムを呼び出す形になるので、より効率的 な配信が可能になる。

これにより配信サーバが一つであってもハブを多数増やすことによってスケールできるようになる。またDOSアタックのようなものも、ハブを仲介しさらにコールバックを用いることで安全性を高めることができるようになる。

システムはGoogle App Engineで動作するようになっており、配信サーバ/購読システム/ハブの3つのシステムそれぞれについてデモ版が提供されている。フィードやWeb APIはアクセスが非常に激しく、システムの負荷を高めるのでこのような仕組みは重要になるのではないだろうか。

 

PubSubHubbub で最速に更新を通知しつつ,舌をかまないためのテスト : nabokov7; rehash - livedoor Blog

PubSubHubbub は分散型の更新ping のようなものです。Publisher は Hub に更新を通知し,Subscriber は Hub から更新通知を受け取ります。Publisher は Hub にだけ更新を通知すれば済みます。複数の Subscriber へ通知する処理は Hub が肩代わりしてくれるし,Subscriber は自分が選んだ更新通知だけを受け取れるのでスパムの被害を抑えられるといった利点があります。