カテゴリー
技術

SSE (Simple Sharing Extensions)発表 – 次世代 RSS となれるか?

via TechCrunch SSE (Simple Sharing Extensions) とは、一方向の通知を実現する RSS に対して、最低限の拡張によって双方向の同期を実現するもの、ということらしい。 マイクロソ […]

via TechCrunch

SSE (Simple Sharing Extensions) とは、一方向の通知を実現する RSS に対して、最低限の拡張によって双方向の同期を実現するもの、ということらしい。

マイクロソフトの CTO 、Ray Ozzie が自身のブログでこの SSE 発表について解説している

このブログ記事によれば、SSE によって、家族間でスケジュールのアップデートを共有することができるようになるという。その際に、プライベートなスケジュール、共有スケジュール、公開されたスケジュールをそれぞれ適切な公開レベルのまま扱うことができる。スケジュールは一例で、アドレス帳の中の共有エントリなどについても同様に、個人アドレス帳アプリケーションの中から共有されているアドレスを更新すると、その更新が共有相手側にも伝えられてシンクロナイズするようなアプリが作れるという。

「あの」マイクロソフトが提案する仕様だが、ライセンスはクリエイティブ・コモンズ、具体的にはこれで、自由に使っても後でマイクロソフトから利用を禁止されたり利用料を請求されたりすることはなさそうなライセンス。

レイ・オジーは、RSS の持つ簡単さとオープンさが RSS を普及させたことを考慮した上で、SSE をできるだけ簡単な仕様に押さえたと書いている。実際に、ここ数週間で、マイクロソフトの複数の製品開発グループが、この SSE のプロトタイプ実装やデモを作成し、それらが相互に働き合うことを確認したそうだ。

また、RSS の父である Dave Winer にも協力を要請し、彼の要求で OPML のほうにもこの SSE を適用できるようにしたとのこと。デイブ自身のブログでも SSE について述べられている。

とりあえず彼らの売り口上を読んで、非常に気になっている。シンクロナイズ用のデータ仕様といえば、SyncML なんてのも前からあるわけだし、はたしてこの SSE のどこがすごい/簡単/普及しそうなのか、仕様書を読んでみるとしよう。

SSE 仕様書のドラフト(バージョン 0.9)はこちら

SSE に関する FAQ はこちら

# 最初みたときに思ったんだが、SSE といっても、Pentium III とかに載ってる、浮動小数点計算を早く処理するアレじゃないよ


追記: いちおう仕様書を読んだ。メモを末尾につける。ほんとに素の RSS を保ったままなので、この拡張情報を入れたとしてもこれまでと同じ RSS として問題なく動く(はず。いいかげんなパーザを使ってるところはダメかも)。その上で、RSS-SSE を解する複数のサイト間で、更新情報をシンクロナイズさせることができるということになりそうだ。

簡単とはいっても、扱う問題がこれ以上簡略化できないので、これをライブラリに落とすのは多少面倒そうだ。マイクロソフトは社内でいろいろ試しているから準備はできているわけだが、各スクリプト言語など向けのライブラリが揃って遊べるようになるのが普及への鍵かと。

カレンダーやアドレスの共有という点で、非公開にするための新たな仕組みがこの拡張の中に含まれているわけではない。RSS の認証については、これまで同様 RSS の下のレイヤで考えないといけない。


サイトA とサイトB が、お互いの SSE フィードを購読しあう。SSE フィードには、更新されたとか削除されたという拡張情報がつくため、各サイトでは相手サイトで行われた変更を取り込んで反映させることができる、ということ。 (仕様書 1.3)

SSE の拡張エレメント(2)

拡張がある場合のトップレベル要素 sx:sharing (2.1)。関連フィードを示す sx:related (2.2)。完全なフィードと更新情報だけのフィード(2.2.1)。外部を指す集約フィード(2.2.2)。更新を伝えるための sx:sync 要素(2.3)。更新時刻を時系列で保持する sx:history 要素(2.4)。更新情報 sx:update 要素(2.5)。

順序情報を気にしない更新と、順序を保つように動かなければならない更新がある (3.1, 3.2)

アイテムの新規生成(4.1)、更新(4.2)の流れ。複数サイトでの同時更新(4.3)と、どの更新を優先させるかのルール(4.4)。

オプション要素 sx:conflict による衝突の解決(オプション。 5)