1.4.3 サーバになるアプリケーションプログラム(SPP)
サーバになるアプリケーションプログラム(SPP)について説明します。
- 〈この項の構成〉
(1) SPPのプログラムの構成
SPPのプログラムは,メインのプログラムと,サービスを提供するプログラムから構成されます。メインのプログラムは,SPPの開始と終了を宣言したり,サービスを提供するプログラムへサービス要求を振り分ける宣言をしたりします。サービスを提供するプログラムは,要求されたサービスの処理を実行します。
メインのプログラムをC言語の場合はメイン関数,COBOL言語の場合はメインプログラムといいます。
サービスを提供するプログラムをC言語の場合はサービス関数,COBOL言語の場合はサービスプログラムといいます。
SPPのプログラムの構成を次の図に示します。
|
サービス関数動的ローディング機能を使う場合,あらかじめサービス関数をUAP共用ライブラリとしてまとめておきます。SPP実行時は,UAP共用ライブラリからSPP起動時にサービス関数を取得して実行します。
サービス関数動的ローディング機能を使用したSPPプログラムの構成を次の図に示します。
|
(2) SPPの作成手順
SPPの作成手順は,「スタブを使用するSPP」と「サービス関数動的ローディング機能を使用するSPP」によって異なります。
(a) SPPの作成手順(スタブ)
スタブを使用してアプリケーションプログラムをSPPの実行形式ファイルにする手順について説明します。スタブとは,要求されたサービスをどのサービス関数(サービスプログラム)で処理するかを管理するライブラリです。
スタブを生成するには,SPPの実行環境を設定します。SPPの実行環境を設定するときに,スタブのソースファイルが自動的に生成されます。生成したスタブのソースファイルは,Cコンパイラでオブジェクトファイルにします。そして,SPPのオブジェクトファイルにリンケージさせます。
スタブの詳細については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。
スタブを使用したSPPの作成手順を次の図に示します。
|
(b) SPPの作成手順(サービス関数動的ローディング機能)
サービス関数動的ローディング機能を使用してアプリケーションプログラムをSPPの実行形式ファイルにする手順について説明します。
サービス関数動的ローディング機能を使用すると,SPPの各サービスの入り口点(エントリポイント)を指定したUAPライブラリからサービス関数を取得するため,スタブは不要です。その代わりに,サービス関数を共用ライブラリ化してUAP共用ライブラリ※を作成する必要があります。これによって,UAP共用ライブラリからサービス関数を取得できるとともに,複数のサービスをメイン関数にまとめる作業は不要になります。
サービス関数動的ローディング機能の詳細については,マニュアル「OpenTP1 解説」を参照してください。
- 注※
-
UAP共用ライブラリとは,UAPのソースファイルを翻訳(コンパイル)して作成したUAPオブジェクトファイルを結合(リンケージ)して,共用ライブラリとしてまとめたものです。
サービス関数動的ローディング機能を使用したSPPの作成手順を次の図に示します。
|