XMLシステム設計における基本検討事項
インフォテリア株式会社 平野洋一郎
昨今、インターネットの新技術XMLが注目を浴び、XMLを採用したシステムも見受けられるようになってきました。しかしながら、XMLは、その仕様のシンプルさゆえに、安易な実装も多く見受けられます。
DTDを使用すべきかどうか
XMLのシステムというと、まずは「DTD設計」から入るケースが極めて多く見受けられます。しかし、まず最初に考えなければならないのは、「DTDが必要なのかどうか」ということです。DTDを使うということは、その時点で、データの拡張性を大きく制限することになります。確かに、XMLのベース技術となったSGMLの場合は「DTDありき」でした。しかし、XMLでは、重要な特長として「整形式(Well-Formed)」や「ネームスペース」があります。しばしば整形式は、「簡易版XML」と見られがちですが、そうではありません。また、ネームスペースを使うことで、データ設計のモジュール化や共有化が可能になるのです。整形式やネームスペースを使用して、データ交換を行うことで、柔軟なデータ設計、メンテナンスが可能となります。
- DTDには、技術的な問題も存在します。特にデータベースなどのデータを扱う場合に以下のような問題があります。
- DTDには、データ型の指定ができない。(例:整数型、浮動小数点型、日付型など)
- DTDの構造は、XMLの構造と全く違うものであるため、処理ソフトウェア開発およびパフォーマンスの障害になっている。
- DTDは、Namespaceを代表とする最近の仕様との相性が悪い。
ちなみに、DTDを使わないことは、データ設計をしないことを意味しません。DTDを使わない場合でも、用途への適合性や拡張性を十分に考慮したデータ設計が必要です。また、明示的なデータ定義が必要な場合にも、DTDの代わりにXMLそのものでのデータ定義(スキーマ)が使われるようになってきました。例えば、米CommerceOne社が提唱するCBL、米Microsoft社が提唱するBizTalkでは、DTDは使用されていません。さらに、DTDに代わるXMLベースの新しいスキーマ定義の技術として、2000年前半にもW3CからXML Schemaが勧告される予定です。
作り込み vs. ツール
どのようなXMLデータ定義を行うかどうかと同様に重要なポイントが、どのようなシステムを組むかということです。特にXMLは、HTMLと同じようにテキストのみで書かれ一見簡単に見えるため、CSVと同様の感覚で、アプリケーションプログラムそのものでXMLの解釈(パーシング)や生成を行うケースが多く見られます。しかし、このような「作りこみ」のプログラミングでは、XMLの最大の特長である「アプリケーションとデータの独立」を殺してしまうことになるのです。「作りこみ」ではXMLのデータ構造が変わるたびにプログラムを変更することが必要になってしまいます。
一方で、XMLのツールを使うことで、真にXMLの良さが発揮されるのです。例えば、XMLパーサーやエンジンを使用することで、どのような構造のXMLデータも処理できるようになります。また、インフォテリアの「iConnector」など、XSLT技術を使用したデータベース用ミドルウェアを使用することで、XMLの構造、データベースの構造の双方に変更があっても、それを処理する設定ファイル(XSLTで書かれている)を変更するだけで対応が可能となります。さらに、iConnectorの場合には、その設定ファイルを作成するGUIツールが含まれているため、XMLとデータベースを対応付ける設計を極めて容易に行うことができるのです。
フリーウェア vs. 製品
次に、重要なのはどのようなツールを使うかということです。XMLのツールには、大きく分けて、有償の「製品」と無償で配布されている「フリーウェア」があります。例えば、XMLエンジンで言えば、製品としては、インフォテリアの「iPEX」があり、フリーウェアとしては、IBMの「Parser for Java/C」やマイクロソフトの「XML Parser」がある。製品とフリーウェアの大きな違いは、「保証」と「サポート」である。フリーウェアは、その大半がそうであるように、保証やサポートは一切ありません。ダウンロードで提供されその契約書には、「何も保証しない、全てユーザーのリスクで使用する」と明記してあります。一方で、製品は、有償であるが、保証やサポートが提供されています。
このようなことから、プロトタイプや実証実験のレベルでは、フリーウェアでまかなえるケースも多くある。しかし、実稼動システムや顧客に納めるソフトウェアには、「XMLを処理する核の部分は保証がありません」では通用しないでしょう。このように、XMLのシステムに使用するツールは、その用途に応じて、製品とフリーウェアを使い分ける必要があるのです。
(C) 2000 Infoteria Corporation 【禁無断転載複製引用】
* 2000/01/15 初掲
* 2000/02/17 一部更新
日時: 2001年01月02日 00:00 | | TrackBack
