2.1.1 リモートプロシジャコールの実現方法
TP1/EEを使用するシステムの場合,サーバUAPはSPPです。クライアントUAPは,SUP,SPP,およびCUPです。TP1/EEはSPPとして動作します。
遠隔サービスを要求するサービス関数を次に示します。
- クライアントUAPがTP1/EEの場合
-
-
ee_rpc_call関数【CBLEERPC('CALL ')】
-
ee_rpc_call_to関数【CBLEERPC('CALLTO ')】
-
- クライアントUAPがTP1/Server BaseのSUP,SPPの場合,またはTP1/ClientのUAP(CUP)の場合
-
-
dc_rpc_call関数【CBLDCRPC('CALL ')】
-
dc_rpc_call_to関数
なお,dc_rpc_call_to関数に対応するCOBOL-UAP作成用プログラムはありません。
-
クライアントUAPから,サービスを要求する関数を使ってサーバUAP(SPP)のサービスを要求できます。クライアントUAPからサービスを要求するときは,サーバUAPのサービスグループ名とサービス名を引数に設定したdc_rpc_call関数,dc_rpc_call_to関数,ee_rpc_call関数,またはee_rpc_call_to関数を呼び出します。
dc_rpc_call関数,またはee_rpc_call関数では,要求されるサービスが,クライアントUAPと別のノードにあっても同じノードにあってもかまいません。要求されるサービスがどのノードにあるかは,TP1/Server Baseのネームサービスで管理しているので,UAPで意識する必要はありません。これに対し,dc_rpc_call_to関数,またはee_rpc_call_to関数を使えば,特定のサービス要求先にサービスを要求できます。dc_rpc_call_to関数,またはee_rpc_call_to関数では,サービスグループ名とサービス名を引数に設定するのに加え,ホスト名またはノード識別子を指定して,特定のサービス要求先にサービスを要求します。
クライアントUAPが,開始していないTP1/EE(サーバUAP)にサービスを要求すると,dc_rpc_call(dc_rpc_call_to)関数,ee_rpc_call(ee_rpc_call_to)関数はエラーリターンします。
RPCを使った通信のクライアント/サーバの関係を次の図に示します。