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

山田祥寛
2003/9/26


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

フルオートインデックスで“超”高速を実現、XRAD開発を可能とする

 「NeoCore XML Management System(XMS)」は、米NeoCore社が開発を行い、三井物産/三井情報開発が販売代理店となるネイティブXMLデータベースサーバである。国内実績という意味では、2003年4月に国内販売を開始してまだ日は浅いものの、すでに導入ベンダ数15社を数える。急速に普及しつつある製品である。

 NeoCore社は、もともとが数学理論を専門とするラボを前身とする歴史的経緯もあり、数学的な演算を前提に置いた検索技術では一日の長がある。NeoCore XMSの特徴とは、この検索技術を最大限に引き出した驚異的なパフォーマンスとスケーラビリティの実現にあるといえよう。

最大3万倍の高速アクセスを実現するインデックス技術「DPP」

 NeoCore XMSは、データ保管時にすべての要素に対してインデックス付けを行う「フルインデックス」方式を採用している。つまり、開発者はデータベースチューニングにおいて、これまで常に悩まされてきたインデックスキーの検討から解放されるというわけだ。NeoCore XMSでは、このインデックス方式はDPP(Digital Pattern Processing)と呼ばれている。

 以下にNeoCore XMSのパフォーマンスを裏付けする検索メカニズムについて、その概略を紹介することにしよう。

「ロケーションパス+データ」を64bitの固定長で表現

 XMLドキュメント中のノードは、ノードに至るまでの「ロケーションパス(階層構造)」とデータ本体で表現することができる。NeoCore XMSでは、この「ロケーションパス+データ」を独自のアルゴリズムを用いて、64bitの固定長データに変換する(変換された固定長データを「アイコン」と呼んでいる)。

 XMLのエレメントごとにアイコンが生成される

 DPP技術ではどのような長さのデータであっても、必ず64bitのアイコンに変換することができる。64bitというと、いかにもすぐに重複が発生するように思われるかもしれないが、ベクトル理論を利用して表現されたアイコンでは、その可能性は限りなく小さい。異なるデータが同一のアイコンに変換される可能性は、実に18×1018分の1なのだ。

 生成されたアイコンはそのままインデックスとして、NeoCore XMS上に自動登録される。

パターン検索に要する時間は、1.5メモリ・サイクル

 XPath/XQueryによる検索に際しては、指定された条件式が、インデックス作成時とまったく同じアルゴリズムを用いて、アイコンに変換される。つまり、NeoCore XMS内部ではアイコン同士のパターンマッチングを数学的に、かつダイレクトに行うことができるというわけだ。所要時間は平均で1.5メモリ・サイクルであり、しかも、データ量に依存せず一定のパフォーマンスを発揮することができる(理論的には、4E(エクサ)bytes(1018)まで一定のパフォーマンスを実現可能)。インデックス自体はフラットな構造であるので、XMLドキュメント自体のデータ階層にも依存しない。

 もちろん、検索条件によっては必ずしも完全一致するデータばかりではない。部分一致検索の場合などには、DPP技術による絞り込みがあらかじめ行われたうえで、通常の検索技術が併用される形となる。

更新処理にも有効なインデックス

 インデックスというと、とかく検索処理のためのデータテーブルであると思われがちだが、NeoCore XMSにおいては更新・削除時の(挿入・削除)データ位置特定に際しても、インデックスが利用されているようだ。上述のとおり、インデックスによるパターンマッチングはほとんど無視できる時間であるので、データ容量の増加に際しても、レスポンスタイムを比較的緩やかな上昇カーブに抑えることができる。

NeoCore XMSを支えるシステム構成

 NeoCore XMSは、ほかのネイティブXMLデータベースと比較しても、極めてコアなモジュールからなるコンパクトな構成が特徴といえる。以下にNeoCore XMSを構成する主要な構成を挙げてみた。

NeoCore XMSのシステムイメージ図

XMS Repository/DPPエンジン

 NeoCore XMSのコアエンジンというべきデータストアと処理エンジンである。前項で詳細はすでに述べているので、割愛する。

Query Manager/Store Manager

 データベースの作成・削除からバックアップ処理、データ本体の更新・削除などを行うモジュール。NeoCore XMSでは、標準でコマンドラインベースのNeoXML Utilsが用意されており、これを利用することで一元的にデータベースを管理できる。

 また、プラグインを導入することで、XML開発環境「XMLSpy」(開発元:Altova、国内販売元:東芝ITソリューション)からNeoCore XMSにアクセスすることも可能である。

XMSコンソール

 HTTPプロトコルを用いたアクセスを管理する。NeoCore XMSではHTTPプロトコルによる通信手段を備えており、WebブラウザやAPI経由のクライアントアプリケーション、先述のXMLSpyなどからアクセスすることができる。XMSコンソールはWebベースの管理ツールで、これを用いることでWebブラウザからデータベースの管理やXMLドキュメントの基本的なオペレーションが可能となる。

 以上からも分かるように、NeoCore XMSの構成は極めてシンプルである。NeoCore XMS自体は、ほかの製品に見られるような統合開発環境やリレーショナルデータベースとのマッピング機能、日本語全文検索機能などを提供しない。これら付随的な機能については、サードベンダから提供されているので、すでにメジャーとなっている製品と連携すればよいというのがNeoCore XMSの基本ポリシーだ。同様の理由で、アプリケーションフレームワークも提供していない。アクセスのためのAPIが用意されているのみである。

 また、NeoCore XMSはXML SchemaやDTD、RELAX NGなどによるデータ検証にも対応していない(つまり、アプリケーション層で実装する必要がある)。自己構成型データベースであるからスキーマ情報は不要というのがNeoCore XMSの考え方なのである。

 これは機能不足ではなく、NeoCore XMSがユーザーに与えた「自由な選択肢」であると筆者は考える。各ベンダからXML関連製品、アプリケーション開発環境が多くリリースされている現在、後発のNeoCore XMSがあえて類似した製品群を投入する価値はあまりないだろう。むしろXMLストレージとしてのコアな機能を軽量な形で提供することで、常にハイパフォーマンスを維持する――NeoCore XMSの姿勢はその点で極めて一貫している。これは現場のユーザーにとって最も必要なソリューションであるかもしれない。

NeoCore XMSの超高速が可能にするXRAD開発

 NeoCore XMSがDPP技術と並んで大々的にアピールしているのが、システム開発の新手法である「XRAD(eXtreme Rapid Application Development)」開発だ。XRADとは、文字どおり「“超”高速のアプリケーション開発」のための手法である。自己構成型データベースの長所を十分に活用することで、データベース開発の負荷を大幅に軽減するというものだ。

 従来のシステム開発においては、データベース(スキーマ)設計ができていないがために、開発フェイズに移行できないケースが少なくなかった。また、スキーマ設計の変更が、開発途中(または開発済み)のアプリケーションに対して与えるインパクトは極めて大きい。いわゆるデータベース設計・開発にかかわる作業は、システム開発全体の30〜70%を占めるといわれるから、開発コストを左右する最大の要素といっても過言ではないだろう。

 しかし、自己構成型データベースであるNeoCore XMSを利用すれば、事前のスキーマ定義は不要だ。DPP技術の超高速性を活かせば、データ量の拡張に際しても、インデックス・チューニングなどは必要ない。また、データベース上で各要素間の関連性、データマイニングが高速かつ簡単に行えるので、データを分析しつつ、イテレーティヴ(反復的)な開発も可能となる(それは複数のデータベースから抽出した異なるフォーマットのデータについても同様だ)。つまり、XRAD開発を利用すれば、パイロット的にスタートしたシステムをベースとして、実運用システムへと移行するという流れが現実のものとなるのだ(スパイラルアップ)。

 もっとも、こうして見ていくと、XRAD開発は、イコールDPP技術の“超”高速性をただいい換えているだけに見えるかもしれない。実際、それはしかりである。しかし、開発の現場に求められているのは複雑な小難しい概念ではない。このシンプルな概念がこれまでの開発パラダイムを大幅にシフトした点にこそ、NeoCore XMSの真価があるといえよう。

2/6 Tamino

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 記事ランキング

本日月間