インターネット、イントラネットのデータ交換形式として昨年来、XMLが注目を集めている。拡張性、柔軟性に富んだXMLによって政府、企業、個人を結ぶ新しい様々なサービスが実現されようとしている。こうしたXMLアプリケーションを開発するためには、XMLデータの作成、解析、格納、処理、出力の過程が必要となる。本講ではXMLデータを利用するアプリケーションの開発環境を総覧し、XMLアプリケーションの特性と可能性について論ずる。
1. XMLの意義
XMLアプリケーションとはXMLデータを扱うアプリケーションである。XMLデータはデータをカンマやスペースなどで区切るかわりに、<項目名>のタグで挟む。データ一つ一つに、あるいはデータのあるかたまりに名札をつける訳である。これにより誰が見てもそのデータ値がなんであるのか、またその階層構造はどうなっているのか判明できる。データ構造とデータ項目名、そしてデータの値が一体になったものがXMLデータである。たとえば健康診断結果のデータがあるとして、
加藤哲義,188,174, 63,124, 78
と表現されると、これがどんなデータなのか分からないが
<氏名>加藤哲義</氏名>
<社員番号>188</社員番号>
<身長>174</身長>
<体重>63</体重>
<血圧>
<上>124</上>
<下>78</下>
</血圧>
とタグ付きで表現されることによりデータの意味が分かる。また新たに身長と体重から肥満度を出して処理する必要が生じたとき、以下のように「肥満度」タグを設定し、任意の場所におけばよい。
<氏名>加藤哲義</氏名>
<社員番号>188</社員番号>
<身長>174</身長>
<体重>63</体重>
<肥満度>-3<肥満度>
<血圧>
<上>124</上>
<下>78</下>
</血圧>
カンマ区切りのデータはデータの並び順でデータを特定するため新たに項目が増えて、既存データの並びに挿入されると、アプリケーションに影響を与えることになる。データの出現順序を変えるとすべてアプリケーションを見直す必要がある。一方XMLデータはタグで特定されるため、処理対象のタグの値をつど抽出して処理するというアルゴリズムを取る。したがって新しいデータ(タグ)がどこに挿入されようが既存の処理に影響は無い。自分にとって必要なタグの値のみを処理し、不要なタグは無視すればよい訳だ。新しい取引先や新しいサービスが生じたときに必要なタグを作ってデータを拡張でき、しかもそれが既存の処理に影響を与えないという点で、XMLは組織間のデータ交換業務で寛容、柔軟なシステムを実現することができる。これからの組織間のデータ交換は、インターネットを基幹とし、表示はブラウザ、データはXML、という構成で行われることになる。XMLはインターネットとの親和性も高い。さらにビジネスは今後どんどん既存の系列や業界の枠を越えていく。参入の自由化とオークション性が企業間取引のキーワードとなる時代では、XMLデータの拡張性、寛容性が注目される。
2.XMLアプリケーションの開発スタイル
(1)データオリエンティッドな開発
従来、システム開発のデータ設計にはどのアプリケーションソフトを選択するかに依存する。データ構造はそのアプリケーションソフトウエアの決めているデータ構造である。しかしXMLデータはアプリケーションから独立しているため、どのアプリからではなく、どんなデータを設計するか、からスタートする。これによりデータをアプリの盛衰から守ることができるのである。
(2)プロトタイプかから本番システムへ
XMLデータは拡張性に優れている。まず最小のデータを作り、必要に応じて拡張させることができる。はじめから完全なデータ構造を作る必要がないため、プロトタイプから開発をはじめていって、だんだん完成させていくシステム開発が可能になる。
(3)ワンソース・マルチユース
データそのものとその表示スタイルを別管理するXMLのコンセプトにより、一つのデータソースでも表現をかえることにより適用の幅を拡げることができる。
(4)標準の開発環境の利用
ネットワーク環境はインターネット(TCP/IP)、マンマシンインターフェースはWEB、開発言語はVB、Javaといったデファクトスタンダードな開発環境を利用できるため、短納期、抵コストの開発が可能になる。また特定のアプリケーションソフトに依存しないため、その時々の最良の製品を選択する自由がある。
3. XML開発ツールと用途
1998年2月にW3Cから最初の勧告が出て以来、XMLはインターネットの重要な技術として注目を集めるようになった。1999年半ばよりXPathやXSLTなど、実際のシステム構築に必要な関連仕様が固まり、各ベンダーがこれらの仕様に準拠したツール類を提供し始めた。これによってXMLベースのシステムが実際に構築されはじめている。ここでは、現状のXMLツールを総覧してみよう。XMLアプリケーションの開発環境は大きく「入力系」「格納系」「処理系」「出力系」に分けることができる(下図参照)。それぞれの系では各ベンダーから各種の商用製品がリリースされている。
(1) 入力系
まずXMLデータを作成する過程をみてみよう。方法としては2つあり、最初からデータを作成するか、既存データをXML化するかである。一から作成するには、
・XMLエディタで入力する。
・専用入力フォームを作成し、入力データにタグを付加してXML化する。
という方法がある。後者はHTMLやフォーム作成ツールを使用して入力フォームを設計する。最近ではWEB対応のリアルな帳票デザインツールが発売されている(FormFlow99 ジェットフォーム社)。
一方、既存データをXML化する方法としては、データベースや他アプリケーションの既存データからXMLデータへコンバートことになる。例としてはMS Excelの表中のデータをXML化するiMaker(インフォテリア)やLotus NotesのデータをXML化するXML Server(同)、あるいはOracleやAccessなどのDBからのデータをXML専用DBに格納するeXcelon Xconnect(エクセロン社)などの製品がある。
(2) 出力系
XMLデータ利用の最終局面として、出力は重要である。通常、処理されたXMLデータは次の形で表現される。・検索結果としてWEB(ブラウザ)上に表示される。
その際XMLデータのWEB上への表示スタイルとして、XSL言語を利用する。XSLはXMLデータ用の表示スタイル記述言語である。このGUIエディタとしてeXcelon Stylus(エクセロン社)がある。
あるいは上記FormFlow99を利用すればWEB電子帳票上に出力することもできる。
・XMLデータをカタログ化する。
DSSSLというスタイル記述言語によって、XSL以上の高度なレイアウトが可能になる。したがって
XMLデータから高品質のマニュアル、カタログを生成することが可能になる。DSSSLのプロセッサ
としてはDSSSL Print(ネクストソリューション)がある。
さらにはXMLファイルをメールやワークフローで流通させる手段もある。前者は企業間の、後者は
企業内でのXMLデータを使った実用システムを迅速に立ち上げることが可能になる。
(3)格納系
必要なタグの値を抽出して処理する、というのがXMLアプリケーションのスタイルである。しかしXMLデータはそのままでは単なるテキストであるため、データを構文解析(パーシング)して、タグ名で検索したり更新処理できるデータ要素にばらす必要がある。すなわちXMLアプリケーション開発の肝は、XMLデータをタグ単位にDB格納し、データ処理することである。(下図参照)
このタグ要素をDB格納する際、リレーショナルデータベース(RDB)に格納するか、オブジェクト指向データベース(ODB)に格納するかの選択がある。RDBではXMLの木構造をテーブルに置き換える処理が必要となり、開発、運用上のネックになることがある。とはいってもタグの階層が浅い場合、普及度の高いRDBを利用することが多い。一方階層性が深く、複雑な構造をもったXMLデータの場合、パーシング後のXMLデータを処理可能な木構造(DOM Tree)にして、そのまま格納できるODBが有利である。最近ではRDB製品でも、XMLのデータマッピングを内部的に巧妙に処理したり、あるいは一つの可変長フィールドにXMLの全データを格納することで、XML対応を打ち出すものが現れてきている。XML用のODBとしてはeXcelon(エクセロン社)が著名である。
(4)処理系
XMLの処理としては、XMLデータの構文解析プロセッサであるパーサーが上げられる。パーサーはXMLデータが事前定義された構文規則(DTD)に則っているかのチェックや、またDBに格納の前処理としてXMLデータのメモリへの展開などで必要とされる。DB化されたXMLデータは通常のDBデータのようにクエリー言語(XQL等)によって検索される。XMLはタグの階層性を活かしたクエリーによって、効率的な全文検索も可能になる。通常全文検索エンジンは文書の全てを検索対象にするため効率が悪くなるが、XMLDBに対してはタグでまず検索対象を絞り込み、それ以下の階層すべてに全文検索をかけるといった「構造的全文検索」が可能になる。これにより的中性の高い、効率的な全文検索ができ、文書管理やナレッジマネージメントへの応用がはかれる。
4.まとめ
本稿では、XMLデータの意義からXMLアプリケーションの開発スタイル、ツール製品までを概括した。XMLは比較的シンプルな技術であり、またその開発環境もシンプルである。それゆえに活用の可能性はひろい。XMLはデータをアプリケーションの束縛から解放し、データ中心にシステムを考えるための新しいな試みである。いいかえればデータとシステムの設計にビジネスのリアリティを素直に反映させとうという画期的な指向である。2000年を迎え、あらゆるビジネスがインターネットの上に展開されようとしている。XMLによってその変革がいよいよ加速されることになるだろう。