[C1.4]オブジェクトデータベースクラス
データ収集システムの重要な機能の一つであり、かつ
オブジェクトストリームの
直接的な応用にオブジェクトデータベースがあります。オブジェクト
データベースはシステム全体のデータベースを管理するサーバと
それを利用するクライアントから構成されることになります。
オンラインで利用される比較的簡単なデータに関しては別途
パラメータネームスペースとして別に実装します。ここでの処理対象は
より一般的なオブジェクトであり、アクセスに要する時間なども
比較的遅くても構わない静的なものを考えています。
ただ、実際には任意のあらゆるオブジェクトを扱うことは大変な問題ですし、
データ収集系で必要なものと限定すればかなり簡単な実装でも十分であると
考えられます。そこで、データ収集系で必要とされるデータベースとは
どういうものかをまず考えてみましょう。
現実的にも、全く独立のデータベースを構築することが効率的とは
いえません。市販のものを含め、オブジェクトデータベースに関する
検討は高エネルギー物理分野全体でも進められています。最終的には
そういったデータベースとインターフェースすることが必要になります。
KONOEの側で、データベースに対する方針をはっきりともっていれば
それとのインターフェースを実装することは難しくはありません。
ここで考えるべきことはKONOEで用いるデータベースモデルを明確に
するということです。
1.データ収集用データベース
例えばCAMACの
モジュールをどのスロットにさしているか、それぞれのチャンネルに
何がつながっているか、これまではこういう情報はCのヘッダーファイルに
#defineで記述され、その利用はプログラムの文脈の中に埋めこまれる
のが普通でした。もちろんこうした場合そのプログラムはその設定専用に
なってしまいます。KONOEの目指す方向とは違います。
例えばCAMACのADCモジュールというものそのもの情報についてもプログラムの
中に書き込まれるべきものではありません。商品として出回っているもので
あれば、だれかがどこかでその情報をオブジェクトにしてしまえば、任意の
ところから呼び出して使えるような情報です。この意味で、グローバルな
データベースを考えることもできます。
実際の実験のセットアップもなんらかのオブジェクトとして記述できるはず
です。
2.データベースの実装
データベースが単なるオブジェクトのファイルなどと違うところは、それが
検索のための情報を追加して持っているところです。エントリーはオブジェクト
そのものと検索情報の両方から構成されます。
データベースは単一のファイルに閉じて実装されるとは限りません。共通で
変更の少ない部分、セットアップに関する部分など、管理上もファイルとしての
概念の導入は必要です。
データベースの項目は、通常のオブジェクトに検索のための名前や追加情報を
与えたものとして管理されます。これは単にファイルの中での話ではなく、
プログラムの中に保持されているオブジェクトをデータベースの値で置き換えたり
できなければならないことを意味します。
2.1.データベースアイテムクラス
データベースに記憶されるべきオブジェクトのクラスは本来のクラスに
加えてオブジェクト入出力が必要なことから、KonoeStreamableObject
クラスの継承が必要です。また、データベース項目としての付加情報を
合わせ持つために、データベースアイテムクラスを継承する必要があります。
2.2.データベースエントリークラス
データベースオブジェクトを検索するために、それがファイルに書かれている
ものであるならそのファイルを、他のサーバがあるならばそのサーバを認識
する必要があります。
2.3.データベースエントリーリストクラス
データベースエントリーのリストを用いてすべてのデータベースを管理する
ことになります。
2.4.データベースサーバプロセスクラス
データベースサーバ側の機能をプロセスクラスとして実装します。
2.5.データベースインターフェースクラス
クライアントは任意のアイテムをサーバに問い合わせます。そのための
インターフェースクラスを用意します。

[classes/objdatabase.html] Last Modified : 06-Mar-1997.
KONOEコラボレーション
konoe-req@konoe.kek.jp