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