WebSub

WebSub（ウェブサブ）とは、インターネット上の分散型出版-購読型モデル（PubSub）のためのオープン標準プロトコルである。以前はPubSubHubbub（パブサブハブバブ）という名称だった。

元々はデータフィード用のAtomやRSSプロトコルを拡張するために設計された。HTTPを介してアクセスできるデータであればどんなデータ形式にも（例えばテキスト、画像、音声、動画ファイルなど）適用できるプロトコルとなっている。

このプロトコルの主な目的はデータが変更されたことをリアルタイムに通知することである。WebSubはHTTPの通知をPush技術を用いて行う。これはクライアントがポーリングに資源を消費しないで済むため、サーバ上のフィードに一定間隔でアクセスして更新を確かめるポーリングを行うより優れている。

プロトコル 
WebSubは、出版者(publishers)、購読者(subscribers)、ハブ(hubs)の三者で構成される。

最初に購読者はウェブサーバからHTTPリソース(URL)を要求して、そのコンテンツを取得する。次に購読者はレスポンスの内容を調べ、もしそれがハブを参照しているならば、購読者はそのハブ上にあるそのリソースのURL(これは仕様上は「トピック(topic)」と呼ばれる)を購読できる。購読したトピックのうちのいずれかが更新された場合にwebhookの仕組みを使ってハブからの通知を直接受けられるように、購読者はウェブ接続可能なサーバを走らせておく必要がある。

出版者は自身のコンテンツをHTTPヘッダ内にハブ参照を含めて公開する。出版者が何かを出版するときは必ずそれらの参照されたハブに通知を流す。つまり、出版イベントが発生した場合、出版者はそのハブに連絡し、そのハブが購読者たちに連絡する。

WebSubは不正な購読を防止するため、簡単な意志確認機能を持っており、確認機能により個人用や保護されたウェブリソースの購読も可能となる。購読者が購読申請をハブに送るとき、購読者のアドレスとコードを含める必要がある。ハブは直ちにトピックのURLと先ほどのコードを添えて確認メッセージを購読者に送る。この確認要請に対して購読者が肯定する返事を送った場合のみ購読申請が受け入れられる。

セキュアなチェーンを提供するため、購読者はハブと秘密のパスワードを共有すべきである。ハブはこのパスワードを使って、購読者に送るHMACキーを計算する。後者のキーは、与えられたデジタル署名と、同様に自分の側で計算した署名とを比較することで簡単に検証できる。

使用例 
 ブログ - blogger、など
 ニュース - CNN、Fox news
 SNS - diaspora*
 防災情報 - 気象庁

参考

外部リンク 
w3c/websub - GitHub

オープンコンテント
分散処理