remote clientとNinf Server間は、パケット単位の通信を行う。 このレベルのプロトコルは、Ninf libraryの関数名からのインターフェイス の取得、 Ninf Executable の起動を行うものである。
このレベルのプロトコルは、MAX_PKT_LEN
以下のパケットを単位とし
て通信する。パケットのheaderには、以下の情報が格納されている。
Ninf Serverには、登録されているNinf Executable と関数名の対応表があり、関 数名を指定して、このテーブルのindexを取得して、このindexを用いて、 Ninf Executable を起動する。
パケットのコマンドは以下の通りである。
NINF_PKT_REQ_STUB_INFO
NINF_PKT_RPY_STUB_INFO
パケットで、このindexを返す。
NINF_PKT_RPY_STUB_INFO
NINF_PKT_REQ_STUB_INFO
に対する応答パケット。arg1にindexが格納さ
れており、データ部にはxdr形式の インターフェイス を返す。
NINF_PKT_REQ_CALL
NINF_PKT_RPY_CALL
を返す。
NINF_PKT_RPY_CALL
NINF_PKT_REQ_CALL
が成功したことを通知する。
NINF_PKT_KILL
NINF_PKT_TO_STUB
NINF_PKT_TO_CLIENT
NINF_PKT_ERROR
クライアントプログラムとNinf Executable の通信は
このレベルのプロトコルに埋め込んで行なう。
クライアントプログラムからNinf Executable への通信は
NINF_PKT_TO_STUB
パケットに埋め込まれる。
Ninf Server はこのパケットのヘッダを取り外し、中身を
Ninf Executable へのストリームに流す。
Ninf Executable からクライアントプログラムへの通信は、
NINF_PKT_TO_CLIENT
に埋め込まれる。
Ninf Server が Ninf Executable からのストリームを切りわけ、
ヘッダをつけてNINF_PKT_TO_CLIENT
のパケットとして
クライアントプログラムへ送信する。
図4に、remote client Ninf_call
の概要を示す。