[C1.7]メッセージシステムクラス

KONOEでは様々なプロセスがネットワーク上に分散して、相互に通信しながら 共同作業をします。このとき、プロセスの間でやり取りされるデータのうち、 プロセスへの命令やそれへの応答を扱う部分をメッセージシステムと呼ぶことに します。

メッセージシステムは常に呼び手と応え手がいることが想定されています。 システム全体を確実に制御するために一つ一つの要求に必ず応答があることを 期待します。タイムアウトなどが発生すると、相手側プロセスやネットワークの 障害の可能性があるので例外を起動します。

メッセージの送受信には基本的にオブジェクトソケットを利用します。その ため、メッセージ自身がオブジェクトとして定義されます。単なる命令文以外に 補助的な情報を付け加えることが出来ます。それによってトラフィックの モニターを行なったりすることもできます。

1.メッセージシステムの設計

1.1.メッセージオブジェクト

DAQプロセス間でやりとりされるメッセージはあるオブジェクトとして 送受信されます。コマンドやオプション、アーギュメントなどを構造体と して管理します。

1.2.メッセージ送受信

メッセージはオブジェクトソケットを通して送受信されます。そのための ソケットは、メッセージシステムがハンドシェークを行なうことから、 メッセージの送信のほか、応答メッセージの受信、タイムアウトの検出 などを行なう必要があります。

2.メッセージシステムの実装

2.1.メッセージオブジェクトクラス

コマンドメッセージは、プロセスに組み込まれたあるオブジェクトに対し、 なんらかの要求をあたえるものです。その要求の表現では動作のほか、 それに必要な引数を与えることになります。引数としては任意のオブジェクトを 考えることが出来ます。

コマンドメッセージはある一連の手順を起動するという場合もあります。 そのようなメッセージシーケンスを記録し呼び出すメカニズムが必要で しょう。マクロコマンドの管理を行なう機能を実装する必要があります。

2.2.メッセージソケットクラス

メッセージソケットを通るオブジェクトはメッセージオブジェクトだけです。 その意味では実装は簡単です。

メッセージ送受信は必ず送信に対して応答を行なうことで信頼性を確保 します。タイムアウトなどの例外処理が必要です。

[classes/msgsystem.html] Last Modified : 25-Apr-1997.

KONOEコラボレーション konoe-req@konoe.kek.jp