XMLコンソーシアムは2003年5月7日,Webサービスを使って観光情報を収配信するシステムを試作,その実用性を確認したと発表した。実際に業務で使われているデータを使い,現実に通用できる事例を実現することで,Webサービスの実用性を検証した。このシステムは,全国各地の地方自治体から観光情報を集めて一つのXMLデータベースに蓄積し,それを一般消費者や旅行代理店などに送信するというもの。日本観光協会など国内の観光情報を一元的に集めている団体の業務を仮想的にWebサービスでシステム化した。今回のシステム構築にあたり,日本観光協会から約16万件のXMLの実データの提供を受け,実験で利用した。

 このシステムが実装したWebサービスは4種類。そのうち観光協会が用意するものは三つだ。(1)自治体が送信した観光情報を受信し,データベースに登録する,(2)情報の利用者の情報を検索する,(3)情報の利用者から送られた観光情報の検索要求に対して結果を返す,である。もう一つの(4)は,情報の利用者が提供するもの。観光協会からデータを受信するためのWebサービスだ。自治体から観光協会にデータが登録された時点で,観光協会からそれを受け取る。具体的に情報の利用者として想定されているのは,ポータルサイトや旅行代理店などである。

 この四つのWebサービスは,次のように連携してデータをやり取りする。まず,観光客を呼び込みたい地方自治体が(1)を利用して,スキー場の積雪や桜の開花状況などの最新情報を観光協会に送る。それをトリガーとして,観光協会が情報の利用者に届ける。このときまず,(2)を使ってその情報を送る対象の利用者を検索する。観光協会は,プライベートのUDDI(Universal Description,Discovery and Integration)サーバーに情報利用者の情報を登録している。このサーバーを検索すると(4)の情報が得られるため,これを使って情報利用者にXMLデータを送る。ただし,ポータルサイトや旅行代理店がそれぞれ(4)を実装するのは大変だ。そこで情報の利用者は,観光協会が用意する(3)を呼び出して,能動的に情報を取りに行くこともできる。

 ここでやり取りされるデータは,すべてXMLで記述されている。従ってポータルサイトや旅行代理店は,送られたXMLデータを目的に応じてさまざまな方法で利用できる。例えばポータルサイトは,Webサイトなどで好みに沿った情報を提示できる。旅行代理店なら,店頭に置いた端末に最新の観光情報を表示して道行く人の目を引くことができる。

 Webサービスならではの工夫もある。Webブラウザのような使い勝手に制約のあるものではなく,使い勝手のよいソフトを実現できる。例えば情報の送信側である自治体には,データの入力を容易にするために「Microsoft Excel」を利用したクライアント・ソフトを用意した。自治体の担当者がExcelに入力したデータを,Excelに組み込んだプログラムでXML形式に自動変換し,Webサービスに送信する。いちいちWebブラウザに再入力する必要がない。

 異なるプラットフォーム間での相互運用性も検証した。観光協会側のシステムは,Java2 Enterprise Edition(J2EE)版と.NET Framework版をそれぞれ作成。どちらを使っても問題なく動作することを確認したという。

LiteralエンコーディングでWebサービスに新たな道

 今回のシステムにはもう一つ特徴がある。「Literalエンコーディング」というデータの表現方法を採用し,複数のWebサービス間でやり取りされる観光情報データの構造を統一したことだ。Webサービスで受け渡すデータ表現方法には,RPCエンコーディングとLiteralエンコーディングの2種類がある。RPCエンコーディングは,あらかじめ定められた規則にしたがって,データの型情報を付加して送る。送られたデータをメソッドにそのまま引き渡せるので,RPC(Remote Procedure Call:遠隔手続き呼び出し)には適している。しかし裏を返せば,個々のAPIに合わせてXMLデータを記述しなければならないということである。XMLの本来の意義である,データの「意味」に基づいて記述しにくい。さらに,メソッドの仕様が変われば,それに合わせて送信するXMLデータの内容を変える必要がある。

 これに対してLiteralエンコーディングでは,XMLデータそのものをごっそり送信する。受け取った側は,別途存在しているスキーマ情報を元にデータの内容を解析して必要な情報を抽出する。処理が複雑になるし,データの内容も把握していなければならない。ただし,やり取りするXMLデータの構造に多少の変更が加わっても,必要のない部分は無視すればよいためシステムを変更する必要がないというメリットがある。既存のXMLデータ資産がある場合は,そのまま利用できる。だから今回のシステムでは,16万件の既存のデータを活用できたのだ。

 Literalエンコーディングを採用するメリットには,データの意味に基づいてXMLのスキーマを決定できるということもある。「RPCエンコーディングでは,APIの仕様に合わせて受け渡すデータが決まってしまう。これに対してLiteralエンコーディングでは,APIとデータを分離して考えられる。つまりそのデータが何を意味するか,という観点でXMLの構造を定義できる。このため,受け取ったデータを様々な形で利用しやすい」(今回のシステム構築に携わった,日本ユニシスサービスビジネス開発本部アーキテクチャ開発部シニアITコンサルタントの牧野友紀氏)。ただし,変更の少ない単純なデータのやり取りや,RPCの利用を目的としたWebサービスならば,RPCエンコーディングの方が便利に利用できるのは事実だ。このため「両方を,用途に合わせて使い分けていくことが大切だ」(牧野氏)。

(八木 玲子=日経バイト)

XMLコンソーシアム