インターネットプロトコルの上位にSOAP(Simple Object Access Protocol)を用いてウェブアプリケーションへのアクセスを可能にすることにより,ウェブ上に分散オブジェクト環境を構築し,クライアントにサービスを提供するウェブサービスが普及してきた.その後,SOAPを用いずに,HTTP(Hypertext Transfer Protocol)の上でREST(Representational State Transfer)に基づくウェブサービスも現れている.
ウェブ上の新たな文化となったウェブログ(またはブログ)は,
・頻繁な更新がある
・ハイパリンクが多い
・短いコメントに基づく内容
に特徴をもつウェブページであり,
・読者によるコメント付けが可能
・trackback(リンク先への関連情報提供)が可能
・更新情報の配信が可能
などのサービスが用意されている[1-1].既にさまざまな形式の実装と関連サービスツールが普及している.
今回の"インターネットメディア"では,これらのウェブサービスをサポートする関連技術について,幾つかの主要なキーワードに着目してその概要と動向を示す.
RSSは各種ウェブサイトのメタデータ等のコンテンツを配信するXML形式のフォーマットであり,幾つかの規定がある.国内ではRSS 1.0が普及し,RSSをサポートするサイトが増加している.RSSで記述されたデータはRSSリーダなどで表示でき,多様なウェブの情報を集約できるため,効率的な情報収集手段として利用されている[2-1].
RSS 1.0は,Netscapeが1999年に"My Netscape Network"ポータルにおいてchannel(タイトル,概要などの短いコメント,関連リソースへのリンクなどを含む)記述のために開発したRSS 0.9に基づく.その後RSS-DEV作業グループが検討を加え,2000年12月にRSS 1.0を公開した[2-2].RSS 0.9は,メタデータ記述のフレームワークであるRDF(Resource Description Framework)に基づき,限定された語彙(要素と属性)からなる規定であった.RSS 1.0はこれにXML名前空間を導入し,モジュール化によって拡張性を高める共に,軽量であることを維持している.頻繁に使われる語彙をRSSコアとし,その他に次のようなモジュールを規定して,語彙の充実を図っている.
・RDF Site Summary 1.0 Modules: Dublin Core
・RDF Site Summary 1.0 Modules: Syndication
・RDF Site Summary 1.0 Modules: Content
UserLandのDave Winerはブログソフトでの利用を主目的として,RDFではないXMLによって記述を行うRSS 0.91を開発した.これは語彙の拡張によってRSS 0.9より多くの情報の配信を可能にしたため,Rich Site Summaryと呼ばれた.RSS 0.91はRSSによるコンテンツ配信の需要をいっそう喚起することになり,フォーマットの拡張要求がさらに高まった.RSS 1.0によってもこの要求は充分には満たされず,UserLandは2000年12月以降,互換性を維持したままRSS 0.92, 0.93, 0.94への拡張を続け[2-3],2002年8月にそれらの上位仕様のReally Simple Syndication (RSS) 2.0を発表した[2-4].これは,RSS 0.9xとは互換性をもつが,RDFに基づくRSS 1.0とは異なるものである.
RSSリーダはウェブログ(ブログ),ポッドキャスト(オーディオのブログ),ニュースサイトなどが配信するRSS(または3.に示すAtom)情報を取得し,配信データ(フィード)の管理を行うソフトウェアであり,アグリゲータ(Aggregator)またはフィードリーダ(Feed Reader)とも呼ばれる.WikipediaはRSSリーダを次のように分類している[2-5].
Atomはウェブ上の各種コンテンツを配信するXML形式のフォーマット,およびウェブ上のコンテンツを編集するためのプロトコルである.RSS 2.0に代わるベンダ中立なコンテンツ配信技術を目標として,IBMのSam Rubyなどを中心とするThe Atom Projectにおいて,Wiki(ウェブ上の共著システム)やメーリングリストでの議論から始まった.この活動はIETF(Internet Engineering Task Force)のAtom作業グループに引き継がれ,次の基本方針に基づいて検討されている[3-1].
・ベンダ非依存とする
・だれでも実装してよい
・だれでも拡張してよい
・明確かつ詳細な規定とする
Atom配信フォーマットは,ウェブサイトのメタデータ,コンテンツ等の配信(Syndication),蓄積(Archive)のためのAtom文書と呼ばれるXMLで記述された構造であって,RSS・Atomアグリゲータなどのアプリケーションはこのフォーマットを扱う. ブログやニュースサイトの更新情報の配信だけでなく,MP3や動画などのリッチメディアの配信にも用いられる.2005年12月には,IETFで検討された仕様がRFC 4287として公開され[3-2],既に利用されている.
RFC 4287は次の内容を規定している.
Atom公表プロトコルは,アプリケーションレベルのプロトコルであって,HTTPとXML 1.0を用いてウェブリソースを公表し,編集する.このプロトコルは任意のウェブリソースの生成をサポートし,コレクション,内観(introspection),編集のための機能を提供する.The Atom APIとして仕様検討が始まり,その後IETFに検討が移されて,既にInternet draftが公開されている[3-3].ブログ関連のアプリケーションでは,The Atom APIのドラフト0.9[3-4]が実装され,実際に広く利用されている.
Internet draftは次の内容を規定している.
REST(Representational State Transfer)は,ネットワークシステムのアーキテクチャスタイル(architectural style, 複数のアーキテクチャに共通する性質,様式など)を提供し,クライアントサーバアーキテクチャスタイルにステートレス(セションの状態を記憶しない),キャッシュなどの制約を与える.RESTでは,一意に識別可能な情報をリソースとよび,それをURIによって参照する.リソースの状態は時間・条件によって変化するが,その意味は変わらず,リソースのある時間・条件での状態(representation state)を転送するために,次の基本的なメソッドを用意している[4-1].
・HTTP GET: リソースを取得する
・HTTP PUT: リソースを更新する
・HTTP DELETE: リソースを削除する
・HTTP POST: リソースを新規作成する
RESTの制約によってインタフェースはHTTPに限定され,リソース間の関係はハイパリンクで記述される.
このアーキテクチャスタイルは,Roy T. Fieldingによって2000年に提案された[4-2]が,その後このRESTのアーキテクチャの制約の意義が広く認識され,SOAPを使わずにXMLやHTTPを使った簡単なインタフェースを備えたシステムが普及した.ブログで注目されているAtom公表ProtocolとTrackback APIは,RESTに基づく[4-3].Amazonのウェブサービスには,SOAPインタフェースとRESTインタフェースの両方が採用されている[4-4].
Ajax(Asynchronous Javascript And XML)は,既存の技術の組合せである.主要部分はJavaScript組込みクラスのXMLHttpRequestであり,それはInternet Explorerのversion 4以降に実装されている.Ajaxの名前が普及する以前は,同じコンセプトはXMLHTTPと呼ばれることがあった.2005年にGoogleがGmailとGoogleMapsにXMLHttpRequestを使用したことが,このフォーマットの成功に寄与した[5-1].
これらのアプリケーションがFlashなどのプラグインを必要とせず,画面全体の切替えなしに動的なアクションを実現していたことに多くの利用者は注目し,そのソースを調べたウェブ開発者は,DHTMLとJavaScriptだけでその機能が実現されていることに驚かされた[5-2].この時点ではAjaxという名前はなく,2005年2月に公開されたブログのエントリで,Jesse J. GarrettがDHTMLとJavaScriptを使った非同期通信アプリケーションをAjaxと呼んだ[5-3].
Garrettは,そのブログでAjaxを次の技術の組合せと定義し,従来のウェブアプリケーションモデルとAjaxウェブアプリケーションモデルとを図示して比較している.
・XHTMLとCSSとを用いた規格に基づく表現
・DOM(Document Object Model)を用いた動的な表示と相互動作
・XMLとXSLTとを用いたデータ交換とデータ操作
・XMLHttpRequestを用いた非同期データ取得
・すべてをJavaScriptで結合
ウェブサービスをサポートする幾つかの最近の技術を概観した。その多くは,草の根活動によって開発され,その価値を評価する利用者によって急速に普及していった。このような技術について国内の開発現場の技術者・関係者が議論する場として,画像電子学会はコンファレンス“XML開発者の日”[4-3]を提供している。標準化については,De Facto Standardで対応することが多かった分野ではあるが,最近は国際的な市場への情報機器提供に関連するDe Jure Standardの必要性も主張され,IEC/TC100がそのスコープにおけるSNS(Social Networking Site)の扱いを検討する[6-1]などの動向が注目される。
[1-1] ウェブログ, http://kotonoha.main.jp/weblog/000037_weblogfaq.html
[2-1] 鈴木潤一: RSS現状と将来, 2004年度 将来型文書統合システム標準化調査研究委員会(AIDOS)報告書, 日本規格協会, 2005-03
[2-2] RSS-DEV Working Group: RDF Site Summary (RSS) 1.0, http://web.resource.org/rss/1.0/spec, 2000-12
[2-3] RSS, Wikipedia, http://ja.wikipedia.org/wiki/RSS
[2-4] RSS Advisory Board: Really Simple Syndication RSS 2.0 Specification, http://www.rssboard.org/rss-2-0, 2002-08
[2-5] RSSリーダー, Wikipedia, http://ja.wikipedia.org/wiki/RSS%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC
[3-1] Atom, Wikipedia, http://ja.wikipedia.org/wiki/Atom
[3-2] RFC 4287, The Atom Syndication Format, http://www.ietf.org/rfc/rfc4287, 2005-12
[3-3] Internet-Draft, The Atom Publishing Protocol, http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/, 2006-06
[3-4] J.C. Gregorio: draft-gregorio-09.html, The Atom API, http://www.atomenabled.org/developers/api/atom-api-spec.php, 2003-12
[4-1] YAMAMOTO Yohei: REST入門, http://yohei-y.blogspot.com/2005/04/rest_23.html
[4-2] Roy Thomas Fielding: Architectural Styles and the Design of Network-based Software Architectures, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
[4-3] 小町,村田: XML技術コンファレンス第8回“XML開発者の日”の開催, 画像電子学会誌, Vol.35, No.2, 2006-03
[4-4] Tim O'Reilly: REST vs. SOAP at Amazon, http://www.oreillynet.com/pub/wlg/3005
[5-1] Ajax tutorial for creating dynamic web pages, client side, http://www.xul.fr/en-xml-ajax.html
[5-2] Ajax推進委員会: 古くて新しいAjaxの真実を見極める, http://www.atmarkit.co.jp/fwcr/special/ajax01/01.html, 2005-08
[5-3] Jesse J. Garrett: Ajax - A New Approach to Web Applications, http://www.adaptivepath.com/publications/essays/archives/000385.php, 2005-02
[6-1] IEC/TC100/AGS(Secr.)235, Agenda of the 20th meeting of the TC100/AGS, http://www.y-adagio.com/public/committees/iec_tc100_ags/meetings/20/100ags235(agenda).htm, 2006-09