SPPまたはMHPでサービス関数を作成する方法は,次の二つです。
ここでは,上記の二つの方法について説明します。
RPCを使ってUAP間で通信するときには,スタブが必要です。スタブとは,クライアントUAPが指定した「サービスグループ名+サービス名」とサーバUAPのサービスとを対応づけるプログラムです。
スタブではUAPの各サービスの入り口点(エントリポイント)を指定します。
スタブはサーバUAPの作成時に,サーバUAPのオブジェクトファイルと結合させます。
クライアント専用のUAPであるSUPと,オフラインの業務をするUAPには,スタブを定義して結合させる必要はありません。
スタブを使用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。
図2-18 スタブを使用する場合(SPP)
図2-19 スタブを使用する場合(MHP)
サービス関数動的ローディング機能を使う場合,UAPの各サービスの入り口点(エントリポイント)を指定したUAPライブラリからサービス関数を取得するため,スタブは不要です。その代わりに,サービス関数を共用ライブラリ化してUAP共用ライブラリ※を作成する必要があります。これによって,UAP共用ライブラリからサービス関数を取得できるとともに,複数のサービスをメイン関数にまとめる作業は不要になります。
サービス関数動的ローディング機能を使用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。
図2-20 サービス関数動的ローディング機能だけを使用する場合(SPP)
図2-21 サービス関数動的ローディング機能だけを使用する場合(MHP)
なお,サービス関数動的ローディング機能は,スタブを使ったUAPでも使用できます。この場合,スタブを使ったUAPを変更しないで,サービス関数を追加できます。
サービス関数動的ローディング機能とスタブを併用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。
図2-22 サービス関数動的ローディング機能とスタブを併用する場合(SPP)
図2-23 サービス関数動的ローディング機能とスタブを併用する場合(MHP)