ブログ  前の記事  次の記事  2008-06-26 

たけまる / OpenSocial の XRDS-Simple が AtomPub に与える影響


2008-06-26

_ OpenSocial の XRDS-Simple が AtomPub に与える影響 [atompub][opensocial]

二週間ほど前に えーじさん から AtomPub のことで相談を受けて,あとで
ブログに書きますと言ったきりほったらかしてしまいました.Erlang 関係
でバタバタしてたもんですみません ><

そういえば,数ヶ月前に "AtomPub のマニアックな話題について書いてい
きます" と言ったあと,ほとんど書いてない気もする….

3月〜4月に書いたエントリに関連した標準化動向もあったことなので,
AtomPub についていくつか書いていこうと思います.Rails2 についても
ちょっとかくつもりです.

というわけで,久々に AtomPub の話題です.お題は OpenSocial の
XRDS-Simple です.


■ サービス文書の記述力不足を解決する XRDS-Simple

以前に,「AtomPub のサービス文書は記述力に乏しいので,仕様変更があ
るかも」ということを書きました.

たけまる / AtomPub - サービス文書の記述力

サービス文書の問題は,静的な URI のコレクションしか記述できないこと
です.OpenSocial では,これを解決するために XRDS-Simple + URI
Template を使うことで落ち着いたそうです.

サービス文書にURI Template を埋め込むとか,OpenSearch を拡張すると
いうような手もあったと思います.しかし,XRDS は OpenID に使われるよ
うになったりして,サービスディスカバリのデファクトになるかもしれな
いので,その動きに同調したのでしょう.OpenSocial に限らず,AtomPub
で XRDS が使われる使われる例は増えるのではないでしょうか.

XRDS-Simple の内容については,えーじさんの翻訳が素晴らしいです.

Tender Surrender » OpenSocial/RESTful API Specification

■ XRDS-Simple を使うと AtomPub 標準に違反するのか?

えーじさんから受けた相談というのは,「これって AtomPub 標準に違反
してるんじゃないの?」というものでした.

結論からいうと,「典型的な AtomPub サービスではないけど,違反という
わけでもなさそう」というところです.

AtomPub 仕様では,コレクションを見つけるための方法としてサービス文
書が導入されました.しかし,かならずサービス文書から処理を開始しな
ければならないかというと,そういうわけではありません.何らかの方法
でコレクションの URI を知ることができれば,サービス文書をスキップし
てもかまわないです.たとえば,オフラインでコレクションの URI を受け
取って,そのコレクションに直接アクセスしてもいいわけです.

そう考えると,XRDS-Simple を使ってダメな理由はありません.というわ
けで,「RFC に書かれているような典型的な方法ではないけど,違反でも
ない」ということになります.

■ 関連する標準化動向

Google でこのへんの仕事をしている Joe Gregorio は,multipart という
拡張仕様の標準化作業を始めるときに,「他の拡張仕様も時間があれば標
準化するよ」と言っています.

Official Google Data APIs Blog: AtomPub Multipart Media Creation Internet-Draft

ひょっとしたら XRDS-Simple も AtomPub 拡張として正式に認められる日
がくるかもしれません.とはいえ,新仕様というより Best Practice の範
疇になるので,なさそうな気がしますが.

なお,えーじさんのエントリにも紹介されている features 拡張 (サービ
ス文書そのものの拡張仕様) ですが,さんざん揉めたあげく,起案者の
James Snell が「疲れたからもうやめる」というようなことを言い出した
ので,日の目を見ることはないでしょう.

■ クライアントへの影響

最後に,クライアントへの影響について簡単に書いておきます.世の中に
は,サービス文書ありきで実装されているクライアントがいくつかありま
す.たとえば,Windows Live Writer はサービス文書の URI を設定する
必要があります.それ以外にも,少なからず影響がありそうです.

ちなみに,Perl の Atompub::Client モジュールは,サービス文書を取得
するプロセスをスキップできるので,OpenSocial でも使えると思います
(認証方式次第ってとこはあるけど).

一言メッセージをこっそり送信できます (非公開)
 今年の西暦→
Referrer (Inside): [2008-04-09-1]