Archive for the ‘ウェブサービス’ Category

次世代ウェブのプロトコールは (OSCON 2008より)

Friday, August 22nd, 2008


オレゴン州ポートランドで開催されたOSCON (オスコン) で、一番人気であったのが「Beyond REST?, Building data services with XMPP PubSub (RESTを超える?XMPP PubSubで構築するデータサービス) と題する分科会であった。会場の部屋は満杯で、立ち見スペースも一杯になり、通路に座り込んで見る盛況振りであった。OSCON主催者のTim O’Reilly (ティム・オライリー) もこの分科会を中央通路に座り込んで聞いていた。

 

RESTの次はXMPPなのか

この講演は写真サイトでお馴染みのFlickr (フリッカー) Kellan Elliott-McCrea (キーラン・エリオット・マクリー) らによって行なわれた。Elliott-McCrea30代半ばのエンジニアで、FlickrでのタイトルHackr(ハッカー)が示しているように、業界トップクラスのウェブ開発者である。この分科会ではRESTXMPPが議論された。

 

RESTとは「Representational State Transfer」の略で、ウェブのような分散環境におけるソフトウェアのアーキテクチャを示している。これがRESTの一般的な定義であるが、ここではRESTHTTPというプロトコールでデータの送受信を行なうウェブという意味で使われている。Flickrのように写真の閲覧や掲載をブラウザー経由で行なう、一番標準的なウェブを指している。

 

これに対してXMPPとは「Extensible Messaging and Presence Protocol」の略で、インスタント・メッセージングのプロトコールを表している。XMPPはインスタント・メッセージングのサーバーであるJabber (ジャバー) Google Talkで使われている。Jabberはオープンソースであり、誰でも自由にダウンロードして使うことができる。この分科会では、RESTの代わりにXMPPを使って、次世代のウェブサイトを構築する技法が紹介された。

 

RESTの問題点

講演の中でElliott-McCreaFlickrが直面しているRESTに起因する問題点を説明した。人気ウェブサイトの一つに「Friedfeed (フレンドフィード) がある。このサイトに加入すれば、友人や著名人が投稿した写真やブログ等を纏めて読むことができる大変便利なサービスである。

g037_flickr_a.jpg

上のスクリーンショット(出展:FriedFeed)Friedfeedの画面で、知人がFlickrに掲載した写真をここで纏めてみることができる。これらの写真はFriedfeedFlickrに頻繁に(11秒ごとに)アクセスして収集している。

 

これは利用者にとって便利なサービスで、いちいちFlickrTwitter(トゥイッター、マイクロブログ)などに行かなくても、Friedfeedに入れば事前に登録しておりた会員の写真やブログを収集して表示してくれる。一方、このサービスの背後では、システムに大きな負荷がかかっている。Elliott-McCreaは、721日の24時間にFriedfeedFlickrにアクセスした履歴を紹介した。「Friedfeed298万回Flickrにアクセスし、45,745人の会員の写真をチェックした。しかしその中で6,721人の会員しかFlickrを利用していなかった」と説明した。つまり6,721人の会員が掲載したであろう写真を集めるために、290万回もFlickrにアクセスしていた。これが現在のRESTによるウェブサービスであり、限りあるリソースが浪費されている実態が明らかにされた。

 

XMPPによる新方式のウェブサービス

Elliott-McCreaは、この問題に対処するために、「Message Passing(メッセージ・パッシング)が重要である」と議論を展開した。FriedfeedFlickrに定期的にアクセスして、最新の写真があればそれを収集する仕組みである。これに対してMessage Passing方式では、新しい写真が掲載されれば、Flickrから通知する方式である。これがMessage Passingであるが、企業システムでは古くから使っている技術である。このMessage PassingXMPPのプロトコールで行なうというのが、今回の講演のポイントである。Elliott-McCreaは、XMPPでのデータの配信を「PubSub(パブサブ)と呼んでいる。これはPublicationSubscribeを合わせた造語で、コンテンツを「予約」しておけば「配信」されるという意味で、従来型の配信サービスであるRSSと区別している。

 

XMPPを使ったサービス事例

FlickrXMPPを実装したサービスを計画しているが、Elliott-McCreaは、新しいサービスの事例としてYahooの「FireEagle(ファイアー・イーグル)を説明した。FireEagleとは利用者の位置情報をアプリケーションに配信する機能である。次のスクリーンショット(出展:FireEagle)FireEagleの初期画面で、パソコンから自分がいまいる場所(Mountain View, CA)を入力したところである。GPS付きの携帯端末であれば、位置情報が自動的にアップロードされる。

g037_flickr_b.jpg

ここに他のウェブサイトがアクセスして、利用者の位置情報を読み込んで利用する仕組みとなる。「outside.in」というサイトは、利用者の周辺1000フィート (300メートル) 以内で発生しているニュースを送信するサイトである。利用者の位置情報については、FireEagleから手に入れる。outside.inが利用者の位置情報をFireEagleに定期的に問い合わせるのではなく、FireEagleは利用者の位置情報が更新された時にだけ通知する。この仕組みがXMPPで実装されている。利用者からすると場所を移動しても、常に自分の周り1000フィート以内で起こっているニュースを読むことができる。

 

トレンド

FireEagleと連携するアプリケーションが登場し始めている。outside.inのように、まだ単純な仕組みであるが、これからは位置情報を使ったアプリケーションが鍵を握る。先週のレポートで紹介したように、インターネット携帯端末が大きく普及しそうである。携帯端末と位置情報を組み合わせた領域でキラー・アプリケーションの登場が予感される。分科会の題名の通り、ウェブを支える技術は、RESTの次はXMPPとなるのか。