Hitachi

OpenTP1 Version 7 分散アプリケーションサーバ TP1/LiNK 使用の手引


1.4.3 サーバになるアプリケーションプログラム(SPP)

サーバになるアプリケーションプログラム(SPP)について説明します。

〈この項の構成〉

(1) SPPのプログラムの構成

SPPのプログラムは,メインのプログラムと,サービスを提供するプログラムから構成されます。メインのプログラムは,SPPの開始と終了を宣言したり,サービスを提供するプログラムへサービス要求を振り分ける宣言をしたりします。サービスを提供するプログラムは,要求されたサービスの処理を実行します。

メインのプログラムをC言語の場合はメイン関数,COBOL言語の場合はメインプログラムといいます。

サービスを提供するプログラムをC言語の場合はサービス関数,COBOL言語の場合はサービスプログラムといいます。

SPPのプログラムの構成を次の図に示します。

図1‒17 SPPのプログラムの構成(スタブを使う場合)

[図データ]

サービス関数動的ローディング機能を使う場合,あらかじめサービス関数をUAP共用ライブラリとしてまとめておきます。SPP実行時は,UAP共用ライブラリからSPP起動時にサービス関数を取得して実行します。

サービス関数動的ローディング機能を使用したSPPプログラムの構成を次の図に示します。

図1‒18 SPPのプログラムの構成(サービス関数動的ローディング機能を使う場合)

[図データ]

(2) SPPの作成手順

SPPの作成手順は,「スタブを使用するSPP」と「サービス関数動的ローディング機能を使用するSPP」によって異なります。

(a) SPPの作成手順(スタブ)

スタブを使用してアプリケーションプログラムをSPPの実行形式ファイルにする手順について説明します。スタブとは,要求されたサービスをどのサービス関数(サービスプログラム)で処理するかを管理するライブラリです。

スタブを生成するには,SPPの実行環境を設定します。SPPの実行環境を設定するときに,スタブのソースファイルが自動的に生成されます。生成したスタブのソースファイルは,Cコンパイラでオブジェクトファイルにします。そして,SPPのオブジェクトファイルにリンケージさせます。

スタブの詳細については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

スタブを使用したSPPの作成手順を次の図に示します。

図1‒19 SPPの作成手順(スタブを使う場合)

[図データ]

(b) SPPの作成手順(サービス関数動的ローディング機能)

サービス関数動的ローディング機能を使用してアプリケーションプログラムをSPPの実行形式ファイルにする手順について説明します。

サービス関数動的ローディング機能を使用すると,SPPの各サービスの入り口点(エントリポイント)を指定したUAPライブラリからサービス関数を取得するため,スタブは不要です。その代わりに,サービス関数を共用ライブラリ化してUAP共用ライブラリを作成する必要があります。これによって,UAP共用ライブラリからサービス関数を取得できるとともに,複数のサービスをメイン関数にまとめる作業は不要になります。

サービス関数動的ローディング機能の詳細については,マニュアル「OpenTP1 解説」を参照してください。

注※

UAP共用ライブラリとは,UAPのソースファイルを翻訳(コンパイル)して作成したUAPオブジェクトファイルを結合(リンケージ)して,共用ライブラリとしてまとめたものです。

サービス関数動的ローディング機能を使用したSPPの作成手順を次の図に示します。

図1‒20 SPPの作成手順(サービス関数動的ローディング機能を使う場合)

[図データ]