Q : XMLはインタフェイスなのか?
A : 既に取り上げたとおり,XMLは情報の受け渡しのためのインタフェイスだけでなく,情報のモデル化とスキーマ定義,情報の検索方法の提供,あるツリーから別のツリーへの構造変換,そして情報を処理するプログラミング言語など,さまざまな形で情報を表現・検索・変換・処理できる便利な規格である。
コミュニケーション革命であるインターネットの世界から見れば,XMLがインタフェイスとして大変優れた技術であるため,特にこの分野が強調されているのもうなずける。しかしXMLは,単なるインタフェイスとしてだけでなく,情報そのもののモデル化と,その処理という分野で最も力を発揮する。
Q : 今後XMLはどのように使われるか?
A : 私はセミナーなどにおいて,XML適応の順序を以下のように説明している(下記はデータ管理分野に絞ったものである。XMLはこのほかにもプログラミング言語やプロトコルなど活躍の場を広げている)。
@XMLをシステム間のインタフェイスとして使う
各システムの内部では依然として独自のデータ形式が使用されるが,システムとシステムの間はEDIのような交換規約としてXMLを使用する。使われるDTDは固定的。
各種フォーマットをXMLに片方向で変換するコンバータを利用することになる(他形式対XMLのコンバート)。
AXMLをアプリケーション間のインタフェイスとして使う
システム内の各アプリケーションが標準的にXMLに対応するようになり,XMLがアプリケーション間のネイティブなデータ形式になる。使用するDTDは多様化し,アプリケーション側の柔軟な対応が求められる。
各種フォーマットをXMLに双方向で変換するコンバータと,XML間の構造コンバートつまりXML対XMLのコンバートが必要となる。
BXMLを情報の保管に使用
データベースシステムがXML対応機能を高め,ツリー構造をそのまま扱えるようになる(表構造ではなく木構造でデータ管理ができるようになる)。パフォーマンスの問題や操作性の問題も解決。
XML形式でデータを保管できるようになり,システム依存だった開発スタイルも,データモデル確立の方向へ。つまり,これまでは使用するデータベースシステムの機能に合わせてスキーマを定義していたが,本来あるべき姿でデータを管理できるようになる(きちんとしたDTDの必要性が高まる)。データは短命なシステム依存ではなく,独自のライフサイクルをもつようになる。
Cオブジェクト指向によるデータ管理
Webサービスの時代となり,データとプロセスを両方オブジェクト指向で捉え,分散環境の小さなアプリケーションを動的に組み合わせる時代に。
今までは業務プロセスをプログラミングで定義していたが,これからはプロセスモデルの形でXMLで定義(UMLによるデータとプロセスの定義)。
このWebサービスの目指すものは,いわばプログラマーが要らなくなる,システム開発環境の一大転機となるもの。
現在はまだ,@かAのXMLをインタフェイスとしてしか見ていない時代であるが,今後はBやCのようにXMLの適用がより高度になっていった場合,データをXMLでモデル化できることが必須となる。
情報をそのあるべき姿でXML化できれば,そのデータモデルはシステムが変わっても使い続けることができるはずである。この「あるべき論」によるモデル化と管理は,情報の新たな価値創造の扉を開くものとなる。
Q : XMLは処理速度が遅いというのは本当か?
A : これは今のところ残念ながら本当である。
XMLはテキストそのものを扱うため,しかもタグがついている分冗長であるため,そのままで使うととても遅く感じられると思う。ツリー構造を扱うための仕組みはうまく使わないと表操作と違って遅くなるし,パースによるツリーの全展開は時間が掛かる。検索も特別なデータベースを使わない限り,インデックスなどを使った検索の仕組みと比べて遅いし,RDBの表構造からXMLのツリー構造に変換するにも時間が掛かる。また今のところXMLは,同じオブジェクト指向で操作できるJavaと組み合わせて使われることが多いが,このJavaも実行時の速度はほかの言語などと比べると遅く感じる。それで,「XML+Java」という遅いもの同士の組み合わせは,今のところ速度の点からは実用的とはいえない状況にある。
しかし,速度の問題はハードウエアの進歩やさまざまな技術革新によって改善されていくものである。事実データベースベンダー各社は,XMLが実用的に使えるさまざまな手法を提供し始めている。また,さまざまな利用技術上の工夫によって現状でも速度の問題は解決できる。
Q : XMLを使うとワンソース・マルチユースが実現するか?
A : ここで言うワンソース・マルチユースとは,入力や出力のためにいろいろなアプリケーションを使用するとしても,管理するファイル形式をXMLで統一して,XMLファイルさえ保管しておけばおのおのの独自形式のファイルを持たなくてもよくなるという考え方である。
管理検索用のファイルと印刷や画面表示用のファイルを別々に管理しなくてよくなるという点では理想的な方法だが,現状では実現は難しいようである。たとえ管理用のファイルとしてXMLを採用したとしても,QuarkXPressやInDesignなどで見栄えを整えるのであれば,それら独自形式のファイルは必ず保管しておくだろうし,XMLへの双方向のコンバートも現状では見栄えの細かいところまでは保証されないからである。印刷会社やWebデザイン会社のノウハウや技術は,実のところこれら特定のアプリケーションの利用技術に頼る部分が多く,今のところそこに付加価値が集中しているという現状もある。
XML関連規格としては,XSL-FOなどによってXMLに見栄えの情報を付加できるようになってきている。近い将来アプリケーション側のサポートも進めば,QuarkXPress・InDesign・FrameMaker・Wordなどのアプリケーションが見栄え情報付きのXMLファイルを相互に交換できるようになるだろう。そうなれば,XMLによる真のワンソース・マルチユースが実現するだろう。
しかし現時点でも,XMLをインデックスとして使った管理やXMLのメタデータ検索機能など,管理のファイル形式としてXMLを使うことが最善である場合もある。またライフサイクルの長い文書など,特定のアプリケーションに依存することができないデータはXMLで管理することを検討すべきである。
Q : XMLを導入するにはまずデータベースを購入することが不可欠なのか?
A : これは極端な考え方で,もしかしたらデータベースメーカーの宣伝に乗せられているのかもしれない。確かにXMLでデータを管理するのは最も有効なXML活用法だが,そのために必ず高価なデータベースシステムを購入する必要があるわけではない。
印刷業から見ると,XMLは現在のところ見栄えに関する情報やアプリケーション固有の情報を十分に扱えないため,入力や出力よりも管理や保存の部分での活用を主な用途としている。しかし「このパッケージソフトを買えばXMLに関するどんな仕事もこなします」というものは存在しないため,さまざまなアプリケーションを必要に応じて上手に組み合わせる必要がある。
RDBシステムを購入すれば問題は解決するかというとそうではない。RDBは本来XMLを扱うことが苦手だからである。XMLデータはツリー構造であるため,そのままではRDBで扱うことはできず,各RDBシステムは独自のコンバートを行ったり特別な関数を用意したりして,さまざまな方法でXMLをサポートしている。RDBシステムの中には高いXML機能を有するものもあるが,自分が扱いたいXMLデータに合わせて自前で開発しなければならない部分が少なくないのが現状である。
それではXMLデータベースを導入すると簡単かというとそうでもなく,自分の欲しい情報を検索したりツリー構造を切り出したりするにはXML独自の手法を学ばねばならない。また,自前で開発しなければならない部分が多いという状況は変わらない。
XMLデータを管理するためには必ずXMLデータベースが必要というわけではないので,安易にシステムの導入を考えず,まず専門のXMLコンサルに相談するのが近道であろう。
Q : なぜXMLシステムの構築は難しいのか?
A : それは一言で言うと,XMLの考え方がシステム依存ではなくコンテンツ依存だからである。
つまり,特定のアプリケーションやパッケージシステムの機能に依存したシステム開発ではなく,XMLとして扱うデータ(正確にはデータモデル)を中心としたシステム開発手法を取るからである。
既に説明したが,XMLはシステム依存でないためデータはあるべき姿でモデル化され,システム寿命に引きずられて短命に終わることはない。
XMLの場合,扱うXMLデータ,その元となるXMLスキーマやDTD,そしてXMLを処理するシステムの3者のバランスがとても重要になる。現在のところ,システムを設計するのはシステムベンダーで,データを入力するのは印刷会社という構図になることが多いが,それでは良いシステムは完成しない。
もし印刷会社がXMLの技術を身に着けるなら,デジタルコンテンツの扱い方に長けて,さらに顧客の業務内容に通じて,長年顧客のデータを管理してきた印刷会社のほうが,アプリケーションの機能からしか発想できないシステムベンダーよりもずっと有利な立場にあるといえる。
Q : XMLを導入するには大掛かりなシステム構築が必要なのか?
A : 今のところ,XMLはオーダーメードかカスタムメードのシステムが主流となっているため,開発規模は大きくなりがちである。しかし,XMLの数々の利点から,大規模に始めずに小さく始めて徐々にXML化していくことは可能だ。
XMLデータの特徴として,とりあえずデータを貯めておき,後から使い方を考えることが可能である。データ構造が柔軟で,しかもXMLの関連規格を用いて簡単にほかの構造へのコンバートが可能なためである。
表構造の場合は,項目を追加したい場合列か行を足す必要があるが,それは全データに影響を及ぼすだけでなく,システムの修正が必ず必要になる。ツリー構造の場合は,途中で項目を足しても新旧データの混在が可能で,しかも追加データを扱えるシステムと扱えないシステムが同じ新旧混在データを処理し続けることが可能である。
最近は,簡単にXMLを扱えるアプリケーションも増えてきたので,身近なところからXML化を始めてみるのもよいだろう。
はじめに | 第2回〔基本編〕|第3回〔システム編〕|第4回〔ツール編〕|第5回〔XSLT編〕
2002/11/11 00:00:00