我々は、以上のような要請に基づきNinf RPC システムを開発実装した。 このシステムではインターフェイス を実行時に動的に転送することで、 ユーザーの負荷を減らしている。 また、インターフェイス に実行時に評価する式を含み、 動的にこの式を評価することで、転送量を実行時に決定する
我々のシステムは、サーバとクライアント・ライブラリで構成される。 計算ライブラリを提供する人は、対象となるライブラリの 仕様をNinf IDL(Interface Description Language)と呼ばれる言語で記述する。 Ninf stub generator が、このIDLから引数に関する情報を とりだし、計算ライブラリとの間を橋渡しするstub プログラムを生成する。 このstubプログラムと計算ライブラリをリンクすることで、 ターゲットプログラムが生成される。 このターゲットプログラムを Ninf Executable と呼ぶ。 計算ライブラリのインターフェイス はNinf Executable 自身に蓄えられている。 サーバはあらかじめNinf Executable にアクセスし、 Ninf Executable のインターフェイス をテーブルに格納しておく。 クライアント・ライブラリはNinf Executable の実行の際に、 引数の送信に先だってサーバと通信し、インターフェイス を取得し、 その情報にしたがって引数を送信する。 もちろん、これらの過程は、ライブラリによってユーザから隠蔽される。
図1に Ninf RPC の概要を示す。