XMLデータベース製品カタログ 2003
〜ネイティブXMLデータベース編〜

山田祥寛
2003/9/26


紹介する製品
NeoCore XMS
Tamino
Sonic XIS
EsTerra XSS
Apache Xindice
Apache Xindice

Apache Software Foundationから提供されるフリーのネイティブXMLサーバ

 「Apache Xindice」は、もともとは「dbXML Core」という名前で開発されていたJavaベースのオープンソースXMLデータベースで、2001年12月にApacheソフトウェア財団に寄贈され、現在の名称に変更された。「Xindice」というスペリングは非常に読みにくいが、イタリア語風に「ジンディーチェ」と読むのだそうだ(サイトには「読み方は間違えても構わない。ただ、スペリングだけは間違えないで」と記述されているが、スペリングもなかなかに覚えにくい)。

 その後、XindiceはApacheソフトウェア財団のプロジェクト「Apache XML Project」で日々開発が続けられている。XML Projectではさまざまなサブプロジェクトが展開されているので、特にJava開発者の方にとってはなじみ深いプロダクツも多いはずである。有名なXMLパーサXercesやXSLT変換エンジンXalan、Webサービス開発キットAxisなどは、いずれもこのXML Projectで開発されている(余談であるが、Xindiceといい、Xerces、Xalanといい、XML関係のプロダクツには読み方に悩むものが多いのはなぜだろうか?)。

フリーで使えるネイティブXMLサーバ

 Xindiceの最たる特徴を挙げるとしたら、やはり無料であることは看過できないだろう。Taminoをはじめとした商用製品には機能面で見劣りがするが、とにかくネイティブXMLサーバを実体験してみたいという方には最適なソリューションである。

 もちろん、Xindiceのスペックが実運用には堪えないというわけではない。事実、Java WSDP(Web Services Developer Pack)においてUDDIサービスを提供するJava WSDP Registry Serverの基本データベースとして、Xindiceは採用されている。

 現在のバージョンが1.0(2003年9月現在)というのも考慮すべきであろう。2001年12月にXML Projectに寄贈されてから2年近い時間が経過してしまったが、幾度にもわたるバージョンアップを繰り返してきた他製品に比べ、Xindiceはまだまだ進化の端緒に立ったばかり。今後の進展を期待したい。

Xindiceの構成と特徴

 冒頭で述べたように、Xindiceの構成は極めてコアなものに限られ、またシンプルである。以下ではXindiceの構成を含め、その特性を簡単に説明しておこう。

コレクションとドキュメント

 ファイルシステムにおけるディレクトリとファイルに該当するのが、Xindiceにおいてはコレクションとドキュメントという概念である。Xindiceのルートコレクション(dbコレクション)に対して、必要に応じて任意のコレクションを追加することができる。コレクションは、ファイルシステムにおけるディレクトリ同様、階層構造を構成することも可能である。

 Xindiceはコレクションの単位で検索処理を行うため、同一のコレクション内に複数用途(フォーマット)を持ったドキュメントを格納することは好ましくない(パフォーマンスの劣化を招く)。コレクションの構成をある程度設計時に吟味しなければならないのも、Xindiceの制約の1つといえるかもしれない。

インデックスはマニュアル作成

 NeoCore XMSをはじめとした自己構成型データベースと異なり、Xindiceはコマンドラインツール(インデックス管理コマンド)から自分自身でインデックスを生成する必要がある。インデックスは個別ドキュメント配下の要素・属性単位に定義することが可能である。

XML SchemaやDTDには対応しない

 NeoCore XMSと同様、XML SchemaやDTDへの対応はない。登録・更新データの妥当性を検証するロジックはすべてアプリケーション層に登録しなければならない。

セキュリティ関係の機能を持たない

 Xindiceはユーザーやユーザーグループの概念を持たない。従って、クライアントアプリケーションからのアクセスを制限するためには、アプリケーションレベルの認証制御を定義することはできない。ネットワークレベルのフィルタリングを別に行う必要がある。

Command Line Management Tools

 Xindiceの起動/終了からコレクション・ドキュメントの生成、インポート/エクスポート、インデックスの定義、XPath検索など、一連の機能を提供するコマンドラインツール。Xindiceへのアクセスはこのコマンドラインツールを用いるか、あるいは、Java XML:DB APIを介することによって可能となる。

モジュールベースのアーキテクチャ

 ここまで、もっぱらXindiceの機能不足な点ばかりをアピールしてきてしまったが、だからといって必ずしも「Xindiceは使えない」ということではない。Xindiceサーバ自体がいくつものモジュールベースの集合として構成されている。つまり、新たに必要なコンポーネントを追加したり、不要なコンポーネントを削除したりする場合にも容易に行える。

 最初から固定的なオプションにとらわれない分、既存の使い慣れたツールはそのままにデータストレージ部分にXindiceを適用するというような使い方も可能であろう。

 なお、Xindiceに関するより技術的な詳細については、別稿「Xindice:無料で使えるXMLデータベース」でも紹介している。コマンドラインツールの使い方やサーブレットアプリケーションなどからのアクセス方法については、こちらを参照してほしい。

Xindiceの今後

 現在、CVSサーバ上で管理されているXindiceの次期開発バージョンは、1.0の純粋な機能改良版というわけではなさそうだ。最後に、Xindiceの次期バージョンで予定されている主な変更点について挙げておくことにしよう。

変更点 概要
大容量XML文書への対応 圧縮されたDOMツリーを扱うための仮想bytes配列を実装することで、よりスケーラブルなXMLアプリケーションへの対応を可能とする
ノードレベルのトランザクション 現在はトランザクション機能にこそ対応しているものの、ノード単位のロックができないことから更新処理に際して、ボトルネックとなっていた。次期バージョンではノードレベルの共有/排他ロックに対応し、ノード単位のトランザクション処理を可能とする
XML-RPCサポート 1.0では通信インターフェイスとしてCORBAをサポートしていたが、次期バージョンではこれを廃止し、XML-RPCインターフェイスを実装する
XQueryのサポート 1.0ではXPathにのみ対応していたが、次期バージョンではW3C標準の検索言語XQueryにも対応する予定である
Xindiceの今後の開発予定


6/6  

Index
XMLデータベース製品カタログ 2003
〜ネイティブXMLデータベース編〜
  ネイティブXMLデータベース概要
  NeoCore XMS
フルオートインデックスで“超”高速を実現 XRAD開発を可能とする
三井物産株式会社/三井情報開発株式会社
  Tamino
メインフレームのノウハウを受け継いだ堅牢なデータベースサーバ

株式会社ビーコンIT
  Sonic XIS
統合的な製品ラインアップが魅力的のオールラウンドソリューション

プログレス ソフトウエア株式会社
  EsTerra XSS
日本発、日本語環境に最適化されたデータベースサーバ

株式会社メディアフュージョン
Apache Xindice
Apache Software Foundationから提供されるフリーのネイティブXMLサーバ

The Apache Software Foundation


関連記事
 ・XMLデータベース製品カタログ 2003 〜XML対応リレーショナルデータベース編〜
 ・XMLサーバカタログ 2001〜Summer 〜XMLデータベース編〜
 ・.NET Enterprise ServersのXML度を探る

「XMLデータベース製品カタログ2003」



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間