オブジェクト指向データベースの復権(前編)
CachéとObjectStore、脱RDBMSの真価を探る Page 2
2004/9/2
山田祥寛
Cachéは、データの永続化モデルに特徴を持つ「多次元データベース」というべき製品だ。従来のRDBにおける永続化モデルは、2次元のフラットなテーブルで行と列とからなる単純な構造を提供するため、複雑なデータを表現するのに苦労を伴うことが多い。しかし、多次元データモデルを利用することで、Cachéでは複雑なデータモデルをオリジナルの構造を崩すことなく表現できる。
Cachéでは、オブジェクトをデータベースに格納する際に、そのオブジェクト構造に最適な形で多次元配列に分割格納する。この際、値を持たないプロパティ、参照などに対してはデータ領域を確保しないので、オブジェクト構造を効率的に格納できる。
これは単に消費するストレージの容量を少なく抑えられるという効果だけではない。一度の入出力処理でより多くの関連するデータを処理でき、また、キャッシュ・ヒット率も高くなるため、パフォーマンスの改善にも直結する。このようなデータ構造のことを、Cachéでは「スパース配列(Sparse Multidimensional Array)」と呼んでいる。「スパース配列」に関する詳細は、別稿「個性派DB「Caché」、RDBの牙城を崩せるか」が詳しいので、興味のある方は併せて参照してほしい。
しかし、ここで開発者として気になるのは、Cachéのスパース配列にアクセスするために独自のインターフェイスを学習しなければならないのか、という点だ。これだけ技術進歩の激しい昨今、Cachéを利用するために新たな言語/技術を習得しなければならないとしたら、それだけでも腰が引けるというものだ。事実、多くの新しいテクノロジは、その独自性が故に注目され、その独自性が故に敬遠されて表舞台から去っていった。だが、心配することなかれ。Cachéのもう1つの特徴は、「統一データベース・アクセス」にある。
図2 Cachéの統一データベース・アクセス |
Cachéでは、データを参照/更新するためのさまざまなアクセス手段を提供している。
名称 | 概要 |
SQLアクセス | SQLゲートウェイを介した通常のSQLによるアクセス |
Webアクセス | ASP/JSPなどによく似たWebページ構築用のCSP技術からCachéサーバにアクセス |
オブジェクトアクセス | Java、C++、COMオブジェクトとしてアクセス |
多次元アクセス | Cachéサーバ・ネイティブなアクセス。Cachéサーバ内の格納方法など細部までを完全にコントロールできるのが特徴 |
表1 Cachéにおけるデータアクセス・モデル |
これらの「統一データベース・アクセス」モデルを、開発者が状況や自身のスキルに応じて自由に使い分けることができるのだ。これは、開発生産性という意味でとても重要なポイントだ。
また、ここでCSP(Caché Server Pages)という技術が登場するが、これはいわゆるJ2EEの代表的なページ構築技術であるJSP(JavaServer Pages)やWindows標準のサーバサイド技術であるASP(Active Server Pages)によく似た「HTML埋め込み型」のWebページ記述言語(技術)だと思っていただければよいだろう。Webアプリケーション構築に最低限必要なビルトイン・オブジェクトと、タグ形式の命令のみで高度な処理を実現できるCSPタグが技術の中核だ。
CSPを利用することで、Cachéサーバ連携のWebアプリケーションを効率的に構築できる。もちろん、一般的なASP/JSP技術を利用することもできるが、Cachéサーバを採用した企業の実に6〜7割までが、CSPを採用していることからも、CSPの開発生産性の高さがうかがい知れるのではないだろうか。
もう1つ、Caché+CSPが有利なポイントとして、CSPプロセスがCachéが搭載するネイティブなアプリケーションサーバ、Caché Application Server上で動作するという点が挙げられる。つまり、CSPを用いることで、データベースサーバとアプリケーションが同一のプロセスで処理されるので、通信のオーバーヘッドが少なく、より高いパフォーマンスが期待できる。
図3 Caché+CSPとほかのWebアーキテクチャとの比較 CSPはビジネスロジック/データベース間を内部プロセス通信で高速に処理できる |
多次元データベースサーバCachéが、これまでに歩んできた機能進化の歴史について見てみることにしよう。
1997年に登場したバージョン2.1が、国内で本格的に発売された最初のCachéとなる。当初からCachéにはSQLエンジンが搭載されており、「OODBとRDBとの融合」が中核の理念として確立されていたといえる。ただし、この時点でデータエンジンが十分にマルチバイトに対応できておらず、Shift-JISコード以外での日本語操作ができなかった。しかし、これも翌1998年にリリースされたバージョン3.0で、データエンジンがUnicodeに対応したことで、本格的に日本語対応が確立された。次のバージョン3.1で統一データアーキテクチャが導入されたことで、多次元エンジンやSQLエンジンが共通基盤の上で動作するようになり、共通的なデータ・リポジトリの下でより高速なデータアクセスが可能になった。これが、前述した「統一データベース・アクセス」モデルの原点でもある。現在のCachéサーバにおけるアーキテクチャがひととおり確立したのも、この3.1だといえるだろう。
その後は、Cacheサーバ上での開発生産性を高めることに力点が置かれるようになる。2000年にリリースされたバージョン4.0では、前述したCSP技術やCachéサーバ・ネイティブなCaché ObjectScriptやCaché Basicが導入されたことで、より効率的なCachéサーバ連携が可能になった。Caché ObjectScriptはBasicやC言語にシンタックス上の類似性があり、Caché BasicはVBScript互換のスクリプト言語で、Cachéの多次元配列にダイレクト・アクセスできるよう独自の拡張がなされているが、C/VBを知っている開発者ならば、ほとんど違和感なく習得できるはずだ。いずれの言語も、Caché Application Serverに搭載されたCaché仮想マシン上で動作するため、より高いスケーラビリティとパフォーマンス、そして、相互運用性を実現できる。
図4 Caché Data Server/Caché Application Serverのアーキテクチャ |
そして、執筆時点での最新バージョンは、2003年1月にリリースされた5.0である。ここでの主な変更点は言語インターフェイスの確立だ。Java、C++、XML(SOAP)などの主要な技術(言語)に対するインターフェイスが用意されたことで、従来アプリケーションからの移行がより容易になった。また、内部的な変更点ではあるが、Cachéサーバ内の各機能をより厳密にコンポーネント化したことで、将来的な変更に対する耐性をより強化しているのも見逃せない。
今後、リリースが予定されている次期バージョンでは、セキュリティの強化、.NET Frameworkインターフェイスの追加をはじめ、RDBからのマイグレーション機能、スクリプト言語の互換性など、主に相互運用性の強化に力点が置かれる予定だという。(次ページへ続く)
2/4 |
Index | |
連載:オブジェクト指向データベースの復権(前編) CachéとObjectStore、脱RDBMSの真価を探る |
|
Page
1 ・オブジェクト指向データベースの置かれた状況 ・オブジェクトモデルをそのまま格納できるメリット |
|
Page
2 ・Caché―多次元データモデルが効率的なデータ管理を実現 ・Cachéの機能進化の歴史 |
|
Page
3 ・ObjectStore―CFAがパフォーマンスと拡張性を支える ・ObjectStoreの機能進化の歴史 |
|
Page
4 ・個性的な進化を遂げたOODB |
オブジェクト指向データベースの復権 |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|