デザインテクノロジーの最前線 - 桐山孝司

m.c.t.ホーム > エクスペリエンスマガジン > デザインテクノロジーの最前線 - 桐山孝司 > Atom出版プロトコル

2008.10.10Atom出版プロトコル

Atom出版プロトコル(Atom Publishing Protocol/略称AtomPub)とは、 ウェブ上でブログやカレンダーなどを公開するサービスに対して、利用者側のプログラムからデータの取得、生成、編集、削除を行う方法である。 2007年10月に候補の段階で仕様が公開されたが、それ以前からドラフトが存在しており、 すでにグーグルやはてな検索がAtomPubに準拠したアプリケーションインタフェース(API)を提供している。

AtomPubは何よりもその背後にある考え方がすっきりしていることが開発者にとって良いのだが、 関係があるのは開発者だけではない。ここから新しいサービスの利用形態が生まれる可能性もあるので、 ウェブで公開する内容を作ることに関わる立場にいてもぜひ存在を知っておきたい技術である。

もともとウェブの利用者の立場からすると、データを公開するにあたって基本的な障壁が2つあるといわれていた[1]。 ひとつは文書を正しくマークアップすることである。これに関しては今ではMS OfficeやOpenOfficeからでもHTMLで書き出せるので、 マークアップについて詳しく知らなくても視覚的なページを作れるようになった。

もうひとつの障壁はデータ転送で、かなり長い間、 データの更新のためにはFTPでファイルをサーバにアップするという手順を知らなければならなかった。その点、 ブログはブラウザから書き加えられる点が画期的だが、インタフェースがサービスと一体化しているため、 たとえば自分のエディタから直接データを編集するようにはできていない。これに対してAtomPubは、 サービスから独立したアプリケーションからデータを編集できるようにするものである。

アプリケーション開発者の立場でも、APIがAtomPubで統一されていると、 いろいろなサービスの機能を利用する便利なアプリケーションを開発しやすい。 またデータの表現に使われるXMLの名前空間を使い分けることで、 AtomPubが利用する情報と特定のサービスに渡す情報とを一緒に転送できる拡張性があることも利点である。

AtomPubでは、標準的なウェブプロトコルのHTTPを通してデータの送信が行われる。送信にはGET、POST、PUT、 DELETEのいずれかの操作をメソッド名として、対象となるデータを識別するURIと内容をXML形式にして送り出す。 すべてのサービスに関して操作を4種類に限定していること、 必要なデータをXMLで明示的に送っていることがAtomPubの単純明快なゆえんである。この背後にはREST (Representational State Transfer)というウェブサービス全体に関する考え方がある。 RESTに沿ったアプリケーションでは、サービスに対して一連の通信をするときに、途中の状態をサービス側が覚えていることを要請せず、 引き継ぐべきデータがあればそのつど送信する。たとえば検索結果が100個あったとして、まず最初の10個を送信してもらった後、 次の問い合わせのときには11番目からの結果を送信してもらいたいと明示的に指定する。 これによってサービス側が状態を覚えておかなければならないことからくる複雑さがなくなり、 毎回の問い合わせをみるだけで何を要求しているかが分かることになる。

すでにグーグルはAtomPubを拡張する形でGoogle Data APIを公開している。Google Dataは文書やスプレッドシート、クラシファイドなどの広告、ブログ、カレンダー、写真などさまざまなデータを扱うサービス群である。 たとえばbaseサービスに不動産賃貸の広告を出すと、自分のウェブサイトを持っていなくてもその物件のデータが検索されるようになる。 そこでもし専門業者が何百もの物件を登録して常時更新していこうとすると、とてもひとつひとつをブラウザから入力していくわけにはいかない。 そのときに自分のデータをAPI経由で送ることによって、このサービスを使ったデータ公開が現実的なものになる。 AtomPubに基づくAPIが普及すると、柔軟なデータ利用が展開していくと考えられる。

今後のウェブでの出版は、自分の手元にある内容(コンテント)をアプリケーションを使って編集し、 ウェブ上のサービスを使って公開することが一般的になるだろう。 AtomPubは対応サービスやアプリケーションが増えていくことを期待しつつ、注目しておきたい技術である。

 

[1] Elliotte Rusty Harold, XMLの将来, http://www.ibm.com/developerworks/jp/xml/library/x-xml2008prevw.html

gdata_base


 

 

 

 

 

 

 

 

 

 

Google Dataでデータを公開するためにAtomPubに基づいたAPIが提供されている。