PR

★XMLを利用したWebシステムの実用化が始まろうとしている。これに合わせてXMLを扱うサーバー製品が続々と登場してきた。
★XML専用サーバーだけでなく,既存のSQL型データベース・サーバーでも,最新製品はこぞってXML対応をうたっている。これらはXMLデータを解釈する「XMLパーサー」と呼ぶ機能を持つ。
★マイクロソフトのSQL Serverの次期版は,URLにSQL文を記述し,検索結果をXMLで受け取るユニークな機能を備える予定だ。

 インターネットを利用した企業間取引,いわゆるインターネットEDI*をXML(Extensible Markup Language)を利用して実現しようという動きが活発になってきた。金融,流通,製造などの各業界で規格化,標準化の作業が進められている。

 こうした動きに合わせて,XMLを積極的に利用するサーバー製品が続々と登場している。図1[拡大表示]に示したように,既存システムのデータをXMLに変換するゲートウエイの役割を果たすXML-EDIサーバーや,XML文書をそのままデータベースに保存/管理できるXMLデータベースなどがそうである。

図1●インターネットEDI(電子商取引)などでの利用を想定したXML対応サーバー製品が増えてきた
Windows NTで利用可能な主な製品。ただし,今後出荷予定の製品を含む

 これらはXMLに特化した製品であるが,最近では汎用のリレーショナル・データベース・サーバーでもSQLデータに加えてXMLデータを扱えることが当たり前になりつつある。たとえば,ともに2000年4月に出荷開始予定のサイベース「Sybase Adaptive Server Enterprise12」と日本オラクル「Oracle8i R8.1.6」では“JavaとXML対応の強化”が大きな柱になっている。またマイクロソフトは,2000年内に登場予定のSQL Serverの次期版「SQL Server 2000」でのXMLサポートの強化を明らかにしている。

 ここでは,多くの管理者や開発者にかかわりのあるSQLデータベース・サーバーのXML対応状況を紹介する。

なぜ今XMLが注目されているのか

 まず,データベース・ベンダーがなぜXML対応を進めているのか,その理由を整理しておこう。XMLは,HTMLと同様に「<」と「>」ではさんだ予約語(タグ)を用いる言語である。本来,マニュアルなどの構造化文書を表現するSGML*から派生したもので,HTMLと異なり,文書の内容や構造に合わせて自由にタグを決められるのが特徴だ。

図2●HTMLと異なるXMLの特徴と,企業間取引などで利用するメリット

 HTMLは,基本的に人間が見るための表示用のタグしか備えておらず,その構成内容をデータとして切り出すようなプログラムを作るのが難しい。

 これに対して,XMLは<商品コード>や<商品名>,<数量>などのようにデータの内容を示すタグを付けられる。これは人間が読めると同時にプログラムも解釈可能だ。そのため,インターネット上のコンピュータ同士がデータ通信を行うのに最適な言語として注目を集めた(図2[拡大表示])。現在では,インターネットEDIや電子商取引,オンライン・トレーディングなどさまざまなサービスへの応用が検討されており,一部実用化が始まっている。

 つまり,XMLは今後のインターネットに不可欠なものになる。そのため,インターネット関連製品はこぞってXML対応を進めているわけだ。Webサーバーのバックエンドで利用されるデータベース・サーバーでも,XMLデータを柔軟に扱えるようにすることが急務になりつつある。

XMLパーサーを使ってデータを解釈

 では,SQLデータベース・サーバーは,どのようにXMLを取り込もうとしているのか。いずれも出荷前の製品であるが,公開された情報をまとめてみよう。

 サイベースのAdaptive Server Enterprise12では,(1)XMLをテキスト・データとして,TEXT/IMAGE列に格納,(2)個々のXMLデータをSQLテーブルの各列にマッピングして格納,(3)テキスト・データとSQLテーブルの両方に保管──の3とおりが可能という。格納したXMLデータに対しては,Javaベースのメソッドを使って更新やクエリー(問い合わせ)を実行できる。

 こうした処理を行うため,Adaptive Server Enterpriseでは,内部にXMLパーサーを持っている。XMLパーサーとは,XMLファイルを読み込んでデータを解析し,アプリケーションからアクセス可能にするソフトで,XMLデータ処理には不可欠の機能である。

写真1●米Oracleが無償で提供しているXML Developer's KitのWebサイト
ここで紹介するツール群はhttp://technet.oracle.com/
software/index.htm
でダウンロードできる。なお,現在日本オラクルのサイトでもダウンロードできるよう準備中である。

 Oracle8i R8.1.6でも,米Oracle社が開発したXMLパーサーを利用する。ただし,このXMLパーサーは,開発者向けのキット「Oracle XML Developer's Kit(XDK)」としてOracle 8iとは別に提供している(写真1[拡大表示])。基本的に,Oracle 8iでのXML対応とは,このXDKを使ってXMLアプリケーションを開発することを意味する。

 XDKの特徴は,JavaやC/C++,PL/SQLなど各種言語に対応した複数のパーサーが含まれていることだ。開発者は,自分の得意な言語のパーサーを選べばよい。XDKのほかに,いくつかのユーティリティも入手できる。たとえば,Oracle XML SQL Utility for Javaを使うと,データベースへのクエリー結果をXMLデータに変換したり,XMLデータをSQLテーブルに保存することができる。

MSはURLにクエリーを記述可能に

 マイクロソフトのSQL Server 2000は,現時点では詳細が明らかでない。しかし,XMLサポートに関しては,現行のSQL Server 7.0向けに提供されている「Microsoft SQL Server XMLテクノロジプレビュー」と呼ぶプログラムを見ることで,新機能の一部を伺い知ることができる。

 XMLテクノロジプレビューは,その名の通り,新機能のプレビューを目的としたもので正式な製品ではない(サポート対象外)。これをインストールすると,URLにSQL文を記述してSQL Serverにクエリーを実行し,結果をXMLで取得できる(URLクエリーと呼ぶ)。

図3●SQL Server XML テクノロジプレビューを使って,URLで問い合わせを実行したところ
図4●既存のWebシステムと,XMLテクノロジープレビューを導入したSQL Server 7.0やSQL Server 2000によるWebシステムの違い
XMLサポートを強化したSQL Serverでは,検索結果をXMLで返す。IIS:Internet Information Server(Services),ASP:Active Server Pages,ADO:ActiveX Data Objects,ODBC:Open Database Connectivity

 たとえば,Webブラウザのアドレス・バーに
http://localhost/Northwind
?sql=select+firstname,lastname
+from+employees+for+xml+auto

と入力して実行すると,結果をXMLで表示する(図3[拡大表示])。この場合,localhostとはInternet Information Server(IIS)が稼働するホスト名で,NorthwindとはIISに作成した仮想ルート名である。仮想ルートは,提供されるユーティリティを使ってあらかじめ作成しておく必要がある。同時に,SQL ServerのユーザーIDとパスワード,使用するデータベースなども設定する。これらの設定にはIISに関する知識が必要になる。

 SQL文の後にあるfor xmlというのは結果をXMLで返すことを要求するキーワードである。その後のAutoとは,返されるXMLデータの形式を決めるパラメータだ。検索結果のXMLデータは,表示方法を指定するXSL*などを変更することで,さまざまな見せ方で表示できる。その点が従来型のWebシステムと異なるところだ(図4[拡大表示])。

 URLにクエリーを記述するのは実用的とは言えないが,HTMLやXMLファイルを用意することなく,直接データベースにアクセスできるのは面白い。開発者や管理者はシステム・テストなどに使えるかもしれない。

(道本 健二=michi@nikkeibp.co.jp)