1.3.2 スタブの作成
OpenTP1で使うUAPを作成するときには,UAP間でサービスを要求できるようにするライブラリが必要となります。このライブラリをスタブといいます。スタブには,UAPのサービスに関する情報を指定します。また,通信相手の情報を作成する場合もあります。
スタブの作成方法については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。
(1) アプリケーションプログラムに結合させるスタブの種類
スタブには,サーバUAPに結合させるスタブとクライアントUAPに結合させるスタブがあります。
(a) サーバUAPに結合させるスタブ
サーバUAPに結合させるスタブは,サービスを振り分ける関数と連動してUAPのサービスを実行できるようにします。サービスを振り分ける関数は,サーバUAPのメイン関数で呼び出します。サービスを振り分ける関数を,次に示します。
サーバUAPに結合させるスタブの概要を次の図に示します。
|
(b) クライアントUAPに結合させるスタブ
クライアントUAPに結合させるスタブは,サーバUAPの情報を指定することで,サーバUAPと通信できるようにします。クライアントUAPにスタブが必要になるのは,XATMIインタフェースを使った通信の場合だけです。OpenTP1のRPCを使う場合は,クライアントUAPにスタブは必要ありません。
(2) スタブが必要なUAP
UAPにスタブが必要かどうかは,UAPの種類や通信方法によって異なります。
-
OpenTP1のリモートプロシジャコールを使うUAP(SUP,SPP)
SPPにスタブが必要です。SUPにはスタブは必要ありません。
-
MHPの場合
MHPにはスタブが必要です。SPPと同様の手順でスタブを作成します。
-
XATMIインタフェースを使ってクライアント/サーバ形態の通信をする場合
クライアントUAP(SUP,SPP)とサーバUAP(SPP)の両方に,スタブが必要です。
オフラインの業務をするUAPは,サービス関数がないので,スタブを作成する必要はありません。
(3) スタブの作成手順
スタブを作成するときは,UAPに関する情報の定義を格納したファイル(RPCインタフェース定義ファイル※)を作成します。そして,RPCインタフェース定義ファイルを引数にして,スタブを生成するコマンドを実行します。スタブを生成するコマンドを,次に示します。
スタブを生成するコマンドを実行すると,スタブのソースファイル(C言語のソースファイル)が作成されます。このファイルをC言語のコンパイラで翻訳して,UAPのオブジェクトファイルに結合させます。
MHPをANSI C形式,およびC++形式でコーディングした場合,そのMHPに結合するスタブの翻訳時には,DCMHPを定義してください。
スタブの内容を変更するときは,UAPを作成する一連の作業をやり直します。定義ファイルの内容を変更して,スタブを作り直してから,コンパイルし直したUAPのオブジェクトファイルに結合させてください。
スタブの作成手順を次の図に示します。
|