高エネルギー物理学においてこういった技術が最も必要とされる分野に オンラインデータ収集業務(DAQ)があります。これまで、DAQシステムは その性能を確保するために、実験毎に専用のシステムを構築する必要が ありました。場合によっては専用のまたは非常に特殊なハードウエアの 導入も必要でした。また、それらを開発・保守するために専門の知識が 必要でした。
個別の計算機の単価が下がり、ネットワークの転送容量が増大した今日では 特殊なハードウエアの導入などの必要性は非常に少なくなり、また、 システムを最初からネットワーク上に分散配置する設計により、能力が 不足すれば計算機を買い足せばよいというスケーラブルなシステム設計が 可能になってきています。
また、異なった種類の計算機のあいだでも標準的なネットワークプロトコルで あるTCP/IPで接続することにより自由に通信することが可能です。手持ちの 計算機資源をかき集めて、ある程度の仕事をさせることが、小さい研究室でも 可能になってきました。
このような状況で問題になるのはソフトウエア開発です。自分で開発するのは もちろん大変ですが、他の計算機で動いているソフトウエアを自分の計算機に 移植するだけでも結構な知識と労力が必要でした。このような状況も少し 変わってきています。例えばJavaという言語システムはバイトコードと呼ばれる 命令語をそれぞれの計算機で翻訳実行することで、機種や環境にまったく 依存しないプログラムを書くことを可能にしてくれました。
もちろん、データ収集の先端の部分は強く機種に依存します。この部分は やはり開発には専門性を要しますが、一つにはオブジェクト指向技術により 機種依存部分を限定し、プログラマーにつじつまのあった実装を強制する ことが可能なこと、もう一つにはクライアント・サーバモデルにより さらに機種依存部分とそうでない部分の分離を徹底することができること などから、ソフトウエアの再利用性やテスタビリティをあげ、開発時間を 短縮することが可能です。
KONOEプロジェクトは上に述べたような観点から高エネルギー分野で用いられる DAQソフトウエアを組み上げるためのツールやライブラリの開発を行なう ものです。
実用的なシステムとするため、次のような点に重点をおくことを考えています。
K toolKit for O Object Oriented, N Network Distributed O Online E Environmentの略称をもってプロジェクト名および産物名konoeを名乗っています。
KONOEはネットワーク分散システムです。複数のプロセスがいくつもの 計算機の上で走り、それらの間でメッセージやデータのやりとりをします。 そのためには、それぞれの計算機の上にいて、メッセージにしたがって 必要なプロセスを起動したり停止したりする仕組みがまず必要です。 (ネットワークプロセス階層)
いったんネットワーク上に最初に必要なプロセスがそれぞれ走り出すと、 あとはそれぞれに命令を送り、その状態を問い合わせることにより 全体を制御することが出来るようになります。行なった作業の記録を 取ったり、エラーに対処したりする仕組みも必要です。 (コマンドメッセージング階層)
後は実際の要求に応じてデータを取り込み、処理し、書き出す作業を 指示していくことになります。データはネットワークの上を流れます。 KONOEではデータソース、データフィルター、データシンクと呼ばれる プロセスの間をストリームで接続するデータ収集モデルに従って 動かしていきます。任意の数のプロセスが任意の接続形態で 接続されることが出来ます。(データフロー階層)
データ収集を行なううえで必要な様々な制御データなどについてKONOE 全体で管理をする機能も必要です。これについては制御パラメータと して外から与えるものもあれば実行の結果として得られたデータとして 次の作業のために記憶されなければならないものもあります。 (パラメータデータベース階層)
これらの階層はそれぞれに対応するクラスライブラリとして実現されます。
これらの「階層」を横糸としてたくさんのプロセスが縦糸の役割を してシステム全体を織り上げていきます。プロセスにはユーザが 意識しないものも多くありますし、画面の上で向き合うことになる GUIやディスプレイなどのプロセスもあります。多くの場合、 ユーザが直接見ている画面を制御しているプロセスは単なるインターフェース プロセスに過ぎません。
KONOEが実際に働いているときに走っているプロセスには次のようなものが あります。
次の章以降でプロセスやクラスライブラリについて見ていきましょう。