(57)【要約】【課題】複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置を提供すること。【解決手段】  各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、インタフェース定義を入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及びサーバ負荷生成処理を記述したスケルトン実装コードとを生成するＩＤＬコンパイラ（２０２）と、サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力し、前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行する手段とを備えた。【選択図】図１
2005085060.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、
インタフェース定義を入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及びサーバ負荷生成処理を記述したスケルトン実装コードとを生成するＩＤＬコンパイラと、  サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力し、前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする分散アプリケーションのサーバ処理性能評価装置。
【請求項２】
請求項１に記載の性能評価装置において、前記負荷情報設定ファイルは書き換え可能であることを特徴とする分散アプリケーションのサーバ処理性能評価装置。
【請求項３】
複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、
インタフェース定義と、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及び前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行するコードを記載したスケルトン実装コードとを生成するＩＤＬコンパイラと、
サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、前記スケルトン実装コードに記載されたサーバ負荷生成処理の設定内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする分散アプリケーションのサーバ処理性能評価装置。
【請求項４】
請求項１又は請求項３に記載の性能評価装置において、前記負荷情報設定ファイルはサーバ処理の呼び出し間隔と呼び出し回数を含むことを特徴とする分散アプリケーションのサーバ処理性能評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散アプリケーションにおいて、ＣＯＲＢＡ(Common Object Request Broker Architecture)仕様に基づくＯＲＢ(Object Request Broker)を介してクライアント−サーバ間で実施されるリモート呼び出しの性能を評価する性能評価装置に関する。
【背景技術】
【０００２】
従来の分散計算機環境において、サーバに存在するオブジェクトをクライアントがアクセスするための手段として、ＣＯＲＢＡ仕様が知られている。このＣＯＲＢＡ仕様は、クライアント−サーバ間のリモート呼び出しを容易に実現するための手段として、広く用いられている。
【０００３】
この種の分散アプリケーションにおけるサーバアプリケーションの処理性能の評価方法として、次のような評価方法が知られている（特許文献１参照）。この方法では、１つないし複数のクライアントアプリケーションから、アプリケーション評価者が定める回数のサーバ呼び出しを一定時間に行い、一定時間当たりのサーバ呼び出し回数を変動させながら、各々の呼び出しに要したサーバ処理時間、通信時間を含めた応答時間を測定し、サーバ処理性能を評価する。しかしながら、ＣＯＲＢＡ仕様に基づいたリクエスト授受はクライアント−サーバ間での１対１の通信となるため、以下の（１）、（２）のような問題があった。
【０００４】
（１）  クライアントからのサーバ呼び出し回数を変動させると、クライアント−サーバ間のネットワークを流れる通信量が変動する。この通信量の変動によりネットワークのデータ転送性能が呼び出しの応答時間に影響するため、サーバ処理時間のみを測定することが困難である。
【０００５】
（２）  クライアントから一定時間に多数のサーバ呼び出しを実施することにより、クライアントの負荷が増加する。このため、クライアントアプリケーションの処理性能がサーバ処理時間の測定に影響するため、サーバ処理時間のみを測定することが困難である。
【特許文献１】特開２００３−１８６７０７
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の局面に係る発明は、複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、インタフェース定義を入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及びサーバ負荷生成処理を記述したスケルトン実装コードとを生成するＩＤＬコンパイラと、  サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力し、前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする。
【０００８】
本発明の第２の局面に係る発明は、複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、インタフェース定義と、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及び前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行するコードを記載したスケルトン実装コードとを生成するＩＤＬコンパイラと、サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、前記スケルトン実装コードに記載されたサーバ負荷生成処理の設定内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする。
【０００９】
なお、本発明は、装置のみに限らず、上記の装置によって達成される機能を実現するための方法やプログラムも含むものとする。
【発明の効果】
【００１０】
本発明によれば、負荷情報設定ファイルの内容に基づいてサーバ処理を実行する回数を決定しているので、アプリケーション評価者が定める回数のサーバ処理をクライアントの１回の呼び出しで実行できる。このため、通信量が一定となり、呼び出し応答時間におけるネットワーク性能の影響が軽減され、精度の高いサーバ処理時間測定を容易に行うことができる。また、クライアントの呼び出しが１回で済むことにより、サーバ処理時間の測定におけるクライアント負荷の影響も軽減され、精度の高いサーバ処理時間測定を容易に行うことができる。負荷情報設定ファイルの書き換えを行うことにより、サーバ呼び出し回数等を変動させたときのサーバ処理性能の測定を容易に行うことができる。
【発明を実施するための最良の形態】
【００１１】
図面を参照して本発明の実施の形態を説明する。
【００１２】
（第１の実施の形態）  
第１の実施の形態では、ＩＤＬコンパイル時にクライアント実装、測定用の通常スケルトン実装に加えて、新たに負荷用のスケルトン実装を生成し、クライアント実装、クライアントスタブ実装を当該プログラム言語用コンパイラ・リンカでコンパイル・リンクし、クライアントアプリケーションを生成すると共に、サーバ実装、サーバント実装及び前記スケルトン実装を当該プログラム言語用コンパイラでコンパイル・リンクし、サーバアプリケーションを生成する。サーバアプリケーション生成時に、リンクするスケルトンオブジェクトを切り替えることにより、測定用サーバアプリケーション及び負荷用のサーバアプリケーションを選択的に生成するようにしている。上記の手順により生成された負荷用のサーバアプリケーションは、起動時にサーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを参照し、クライアントからの１回のサーバ呼び出しに対して、記載された設定内容に従ってサーバ処理を複数回実行する。このような負荷用のサーバアプリケーションを生成することにより、クライアントアプリケーションの処理回数と、ネットワーク通信量を一定としたままサーバ処理回数を変動させることが可能となり、サーバ処理性能測定におけるネットワーク性能の影響、及びクライアントへの負荷の影響を軽減し、精度の高いサーバ処理性能測定を容易に実現することができる。以下具体的に説明する。
【００１３】
図１は、第１の実施の形態に係るサーバ処理性能評価装置のハードウェア構成を示す図である。図１において、サーバ１は、サーバ負荷用のクライアントアプリケーション１０１及び測定用クライアントアプリケーション１０２を備えている。サーバ２は、負荷用のサーバアプリケーション１０３及び測定用サーバアプリケーション１０４に加えて負荷情報設定ファイル１０５を備えている。上記の構成において、サーバ負荷用のクライアントアプリケーション１０１と負荷用のサーバアプリケーション１０３との間、及び測定用クライアントアプリケーション１０２と測定用サーバアプリケーション１０４との間で通信が行われて、サーバ２の処理性能測定が実行される。なお、本明細書において、「アプリケーション」という表現は、アプリケーションそのものを指す場合と、アプリケーションを格納するための記憶部をいう場合とがあり、機能的な説明を行う場合は、アプリケーションそのものを、ハードウェア構成をいう場合は、アプリケーションを格納する記憶部を指すものとして説明する。また、各アプリケーションは、従来と同様に各サーバ内に装備されるＣＰＵで実行されるので、図示及び説明は省略する。また、負荷情報設定ファイル１０５等の各種のファイルもアプリケーションと同様に図示しないサーバ内の記憶部（メモリやＨＤＤ、或いは光ディスク等の記憶装置）などに記憶されることは、従来と同様であるので、図示及び説明は省略する。
【００１４】
図２は、本発明の第１の実施の形態に係わるサーバ処理性能評価装置において、性能評価を実行するための分散アプリケーションの作成方法を示す図である。
【００１５】
まず、アプリケーション開発者は、インタフェース定義言語ＩＤＬを用いてインタフェース定義２０１を記述する。このインタフェース定義２０１には、オブジェクトのインタフェースが定義される。ＩＤＬコンパイラ２０２は、インタフェース定義２０１を入力して、この入力されたインタフェース定義２０１の情報を解析して、クライアントスタブ実装２０３と、負荷用のコードを含む負荷用のスケルトン実装２０４及び負荷用のコードを含まない通常のスケルトン実装２０５のいずれか一方とを出力する。
【００１６】
このＩＤＬコンパイラ２０２の動作を簡単に説明する。図３は、第１の実施の形態に係るＩＤＬコンパイラ２０２の機能構成を示す図である。このＩＤＬコンパイラ２０２は、起動時に引数で指定される動作オプションに従って動作環境を設定する動作環境設定部３０１と、インタフェース定義を入力する入力部３０２とを備えている。ＩＤＬコンパイラ２０２は、更に、動作環境設定部３０１で与えた動作環境情報とインタフェース定義入力部３０２より受け取ったインタフェース定義情報とから、クライアントスタブ実装と、負荷用のスケルトン実装と測定用の通常スケルトン実装とを生成するスタブコード生成部３０３と、生成された実装コードを出力するスタブコード出力部３０４とを備えている。
【００１７】
上記のような構成において、本第１の実施の形態においては、ＩＤＬコンパイラ２０２の起動時に、引数で動作オプションを設定することによって、測定用の通常のスケルトン実装と、負荷生成スケルトン実装とのいずれかを選択的に生成することができる。例えば、Ｈｅｌｌｏ．ｉｄｌという名前のインタフェース定義ファイルをＩＤＬコンパイラ２０２でＩＤＬコンパイルし、（ａ）通常のスケルトン実装、（ｂ）負荷用のスケルトン実装、を生成するためのコマンド例を以下に示す。なお、下記のコマンドにおいて、コマンドｉｄｌｃｏｍｐｉｌｅはＩＤＬコンパイラ２０２を起動するコマンドである。  
（ａ）  ｉｄｌｃｏｍｐｉｌｅ  Ｈｅｌｌｏ．ｉｄｌ  
（ｂ）  ｉｄｌｃｏｍｐｉｌｅ  −ｌ  Ｈｅｌｌｏ．ｉｄｌ
上記の各例において、（ａ）の例では、引数“−ｌ”が指定されておらず、この場合には、インタフェース定義ファイルＨｅｌｌｏ．ｉｄｌに対してＩＤＬコンパイルを実行し、クライアントスタブ実装と、通常スケルトン実装を生成する。このように、ＩＤＬコンパイラ起動時に引数“−ｌ”が指定されない場合には、動作環境設定部３０１において通常のスケルトン実装を生成する設定が為され、ＩＤＬコンパイルを実行すると通常のスケルトン実装が生成される。また、（ｂ）の例ではＩＤＬコンパイラ起動時に引数“−ｌ”を指定しており、この場合には、動作環境設定部３０１において負荷用のスケルトン実装を生成する設定が為され、ＩＤＬコンパイルを実行すると負荷用のスケルトン実装が生成される。
【００１８】
コンパイラ・リンカ２０９は、各ＯＳ用のＣコンパイラ、Ｃ＋＋コンパイラなど、分散アプリケーションを構築する上で必要となるコンパイラや、リンカから構成される。コンパイラ・リンカ２０９は、アプリケーション開発者が作成したクライアント実装２０６と、ＩＤＬコンパイラによって生成されたクライアントスタブ実装２０３を入力としてコンパイル・リンクを行うことでクライアントアプリケーション２１０を生成し、また、ＩＤＬコンパイラによって生成された負荷用のスケルトン実装２０４と、アプリケーション開発者が作成したサーバ実装２０７、サーバント実装２０８を入力としてコンパイル、リンクを行うことで負荷用のサーバアプリケーション２１１を生成し、また、ＩＤＬコンパイラによって生成された通常スケルトン実装２０５と、アプリケーション開発者が作成したサーバ実装２０７、及びサーバント実装２０８を入力としてコンパイル、リンクを行い、測定用である通常のサーバアプリケーション２１２を生成する。生成されたクライアントアプリケーション２１０を図１のサーバ１に配置し、また負荷用のサーバアプリケーション２１１及び測定用サーバアプリケーション２１２、負荷情報設定ファイル１０５をサーバ２に配置する。
【００１９】
負荷用の負荷用のサーバアプリケーション２１１は、詳細は後述するように、起動時にサーバ上に存在する負荷情報設定ファイル１０５を読み込んで、サーバアプリケーションの負荷設定情報を取得する。負荷用のサーバアプリケーション２１１は、特定の名前のファイルを負荷情報設定ファイルとして読み込むように作られる。このため、負荷情報設定ファイル１０５には、負荷用のサーバアプリケーション２１１で読み込み可能な前記特定の名前を名付けておけば良い。負荷情報設定ファイル１０５には、例えば、以下の（ａ）、（ｂ）の負荷情報設定項目を記載可能である。  
（ａ）  サーバ処理の呼び出し間隔  
（ｂ）  サーバ処理の繰り返し回数
この負荷情報設定ファイル１０５の記載例を図４に示す。図４は、設定内容をＸＭＬで記述した例を示している。なお、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）は、構造化データをテキスト形式で記述するためのマークアップ言語であり、ユーザが独自のタグを作って利用することができる。従って、ＸＭＬには表示するデータの意味を情報として記述しておくことができ、データの構造とその意味を保持したままネットワーク上でデータ交換が可能になる特徴を持つ。もちろん、負荷情報設定ファイル１０５はＸＭＬ言語記述に限るものではなく、定義内容が記述できればよいので、例えば単なるテキストファイルであっても良く、他の言語であってもよい。
【００２０】
図４にＸＭＬで記述されたファイルの内容は以下の通りである。  
第１行目の“＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝  …  …  ＞”はＸＭＬの規格に基づく記述部分であり、本発明の内容には無関係な部分である。  
第２行目以降最終行までが負荷情報設定部分であり、“＜ｌｏａｄｓｅｔｔｉｎｇｓ＞”が始まりのタグ、“＜／ｌｏａｄｓｅｔｔｉｎｇｓ＞”が終わりのタグである。  
第３行目の“＜ｉｎｔｅｒｖａｌ＞”  タグ、“＜／ｉｎｔｅｒｖａｌ＞”タグで囲まれた部分に、サーバ処理の呼び出し間隔（単位ナノ秒）が記述される。図４の例では呼び出し間隔として、５０ミリ秒（＝５０，０００，０００ナノ秒）が設定されている。  
第４行目の“＜ｒｅｐｅａｔｃｏｕｎｔ＞”  タグ、“＜／ｒｅｐｅａｔｃｏｕｎｔ＞”タグで囲まれた部分に、サーバ処理の繰り返し回数が記述される。図４の例では、５０００回が設定されている。
【００２１】
このような負荷情報設定ファイル１０５を使用してサーバの性能評価を行う場合におけるクライアントアプリケーション２１０、負荷用のサーバアプリケーション２１１及び測定用サーバアプリケーション２１２の動作フローをそれぞれ図５から図７に示す。
【００２２】
まず、負荷用のサーバアプリケーション２１１は、例えば、上記のような設定情報を取得し（ステップＢ１）、その後、一般的なＣＯＲＢＡサーバのＯＲＢ初期化、ＰＯＡ作成、オブジェクト活性化を行い（ステップＢ２）、リクエスト待ち状態に遷移する（ステップＢ３）。
【００２３】
クライアントアプリケーション２１０は、起動した後に、一般的なＣＯＲＢＡクライアントのＯＲＢの初期化、ＣＯＲＢＡネームサービスのコンテキスト取得、サーバオブジェクトのリファレンス取得を行い（ステップＡ１）、その後、サーバオブジェクトに対してリクエスト呼び出しを行う（ステップＡ２）。ステップＢ３において、リクエスト待ち状態の負荷用のサーバアプリケーション２１１は、クライアントからのリクエストを受信すると（ステップＢ４のＹｅｓ）、終了条件が満たされるまでサーバ処理を繰り返し実行する（ステップＢ５からステップＢ１０）。ステップＢ５からステップＢ１０の具体的な処理は次のように行われる。  
まず、実行回数ｎが初期化（ｎ＝０）される（ステップＢ５）。次に、実行回数ｎが、負荷情報設定ファイル１０５にて定められた回数（すなわち、呼び出し回数Ｎ）になるまで（ステップＢ６）、サーバ処理を実行するが（ステップＢ７〜ステップＢ９）、具体的には以下の通りである。ステップＢ６において、実行回数ｎが呼び出し回数Ｎに達していない場合には、サーバ処理が実行される（ステップＢ７）。そして、サーバ処理実行時刻から、負荷情報設定ファイル１０５にて定められた時間Ｔが経過すると（ステップＢ８）、実行回数ｎを１だけインクリメントして（ステップＢ９）、ステップＢ６に戻る。ステップＢ６において、実行回数ｎが呼び出し回数Ｎに達した場合には、、クライアントへ処理結果を返し（ステップＢ１０）、リクエスト待ち状態に遷移する（ステップＢ３）。ステップＢ３のリクエスト待ち時において、リクエスト受信がない場合に（ステップＢ４のＮＯ）、ｓｈｕｔｄｏｗｎリクエストを受信まで（ステップＢ１１）リクエスト待ち状態を継続し、ｓｈｕｔｄｏｗｎリクエストを受信すると、負荷用のサーバアプリケーション２１１の終了処理を実行する。
【００２４】
そして、負荷用のサーバアプリケーション２１１からリプライを受信すると（ステップＡ３）、クライアントアプリケーション２１０は処理を終了する。また、測定用サーバアプリケーション２１２は、起動後に一般的なＣＯＲＢＡサーバのＯＲＢ初期化、ＰＯＡ作成、オブジェクト活性化を行い（ステップＣ１）、リクエスト待ち状態に遷移する（ステップＣ２）。そして、クライアントアプリケーション２１０からのリクエストを受信すると（ステップＣ３）、サーバ処理を実行し（ステップＣ４）、実行結果をクライアントに送信し（ステップＣ５）、再びリクエスト待ち状態に遷移する（ステップＣ２）。そして、ｓｈｕｔｄｏｗｎリクエストを受信まで（ステップＣ６）リクエスト待ち状態を継続し、ｓｈｕｔｄｏｗｎリクエストを受信すると、測定用サーバアプリケーション２１２の終了処理を実行する。
【００２５】
図４に示す負荷情報設定ファイル１０５を用いた場合の負荷用クライアント（図１におけるサーバ１、以下「サーバ１」と称する）及び負荷用のサーバ（図１におけるサーバ２、以下「サーバ２」と称する）の動作例を、図８に示す。  
図８に示すように、サーバ１から送出されたリクエストをサーバ２が受信すると、サーバ２は、図４に示す負荷情報設定ファイル１０５の処理内容に従って、５０ミリ秒の呼び出し間隔で、５０００回のサーバ処理（測定処理）が実行され、５０００回目の処理が終了した時点で、リプライがサーバ１に送信される。
【００２６】
なお、負荷情報設定ファイル１０５は前述したように、書き換え可能であって、例えば、図９に示すように負荷情報設定ファイル１０５の内容の書き換えても良い。図９の場合は、図４の場合と、呼び出し間隔を変えており、呼び出し間隔を２０ミリ秒と設定し、繰り返し回数を５０００回と設定している。この場合のサーバ１及びサーバ２の動作例を、図１０に示す。このように、負荷情報設定ファイル１０５の内容を書き換えることにより、サーバ性能測定時におけるサーバの負荷を変動させることができる。
【００２７】
上記のように、第１実施の形態の分散アプリケーションにおけるサーバ処理性能測定方式によれば、次のような効果が得られる。
【００２８】
（１）  負荷情報設定ファイル１０５の内容に基づいてサーバ処理を実行する回数を決定しているので、アプリケーション評価者が定める回数のサーバ処理をクライアントの１回の呼び出しで実行できる。このため、通信量が一定となり、呼び出し応答時間におけるネットワーク性能の影響が軽減され、精度の高いサーバ処理時間測定を容易に行うことができる。
【００２９】
（２）  クライアントの呼び出しが１回で済むことにより、サーバ処理時間の測定におけるクライアント負荷の影響も軽減され、精度の高いサーバ処理時間測定を容易に行うことができる。
【００３０】
（３）  負荷情報設定ファイル１０５の書き換えを行うことにより、サーバ呼び出し回数を変動させたときのサーバ処理性能の測定を容易に行うことができる。
【００３１】
（第２の実施の形態）  
第２の実施の形態では、第１の実施の形態とは異なり、ＩＤＬコンパイラがインタフェース定義、及びサーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイル１０５を入力として、クライアント実装、測定用の通常のスケルトン実装に加えて、負荷用のスケルトン実装コードを生成し、クライアント実装、クライアントスタブ実装を当該プログラム言語用コンパイラ・リンカでコンパイル・リンクし、クライアントアプリケーションを生成すると共に、サーバ実装、測定用サーバ実装サーバアプリケーションを作成する。また、サーバ実装コード、サーバント実装コード及び前記スケルトン実装を当該プログラム言語用コンパイラ・リンカでコンパイル・リンクし、サーバアプリケーションを生成する。サーバアプリケーション生成時に、リンクするスケルトンオブジェクトを切り替えることで、負荷用のサーバアプリケーション、測定用サーバアプリケーションを選択的に生成することができる。前記手順により生成された負荷用のサーバアプリケーションは、ＩＤＬコンパイル時に入力として与えた負荷情報設定ファイル１０５に記載される設定内容に従って、クライアントからの１回のサーバ呼び出しに対して、サーバ処理を複数回実行する。このようなサーバアプリケーションを生成することにより、第１の実施の形態と同様に、精度の高いサーバ処理性能の測定を容易に実施することができる。以下具体的に第２の実施の形態を説明する。
【００３２】
第２の実施の形態のハードウェア構成を図１１に示す。図１１において、図１と同じ部分には同じ符号を付している、図１１に示すように、サーバ１はサーバ負荷用のクライアントアプリケーション１０１及び測定用クライアントアプリケーション１０２を備えている。サーバ２は負荷用のサーバアプリケーション１００１及び測定用サーバアプリケーション１０４を備えている。上記の構成において、サーバ負荷用のクライアントアプリケーション１０１と負荷用のサーバアプリケーション１００１との間、及び測定用クライアントアプリケーション１０２と測定用サーバアプリケーション１０４との間で通信が行われる。
【００３３】
図１２は、本発明の第２の実施の形態に係わるサーバ処理性能評価方法の対象となる分散アプリケーションの作成方法を示した図である。なお、図１２において、図２と同じ部分には同じ符号を付している。
【００３４】
アプリケーション開発者は、第１の実施の形態と同様に、インタフェース定義言語ＩＤＬを用いてインタフェース定義２０１を記述する。インタフェース定義２０１では、オブジェクトのインタフェースが定義される。第２の実施の形態では、インタフェース定義２０１に加えて、サーバ負荷生成処理に係わる設定情報（例えば、サーバ処理の呼び出し間隔、サーバ処理の繰り返し回数）を記述した負荷情報設定ファイル１０５が、ＩＤＬコンパイラ１１０１に入力として与えられる。ＩＤＬコンパイラ１１０１は、入力されたインタフェース定義２０１と、負荷情報設定ファイル１０５で与えられた情報から、クライアントスタブ実装２０３と、負荷用のスケルトン実装１１０２と、負荷用のコードを含まない通常のスケルトン実装２０５を出力する。このように生成された負荷用のスケルトン実装１１０２には、負荷情報設定ファイル１０５によって与えられた、（ａ）サーバ処理の呼び出し間隔、（ｂ）サーバ処理の繰り返し回数、に関する設定情報が含まれる。
【００３５】
ＩＤＬコンパイラ１１０１の機能構成を図１３に示す。なお、図１３において、図３と同じ部分には同じ符号を付している。このＩＤＬコンパイラ１１０１は、起動時に引数で指定される動作オプションに従って動作環境を設定する動作環境設定部１２０１より受け取った動作設定情報と、インタフェース定義入力部１２０２より受け取ったインタフェース定義情報と、負荷情報設定入力部１２０３より受け取った負荷設定情報から、クライアントスタブ実装と、負荷用のスケルトン実装と、測定用の通常スケルトン実装とを生成するスタブコード生成部１２０４と、生成された実装コードを出力するスタブコード出力部１２０５とを備えている。この場合において、第１の実施の形態のＩＤＬコンパイラ２０２と同様に、ＩＤＬコンパイラ１１０１の起動時に引数で動作オプションを指定することによって、測定用の通常のスケルトン実装と、負荷用のスケルトン実装とのいずれかを選択的に生成できる。
【００３６】
コンパイラ・リンカ２０９は、アプリケーション開発者が作成したクライアント実装２０６と、ＩＤＬコンパイラによって生成されたクライアントスタブ実装２０３を入力としてコンパイル・リンクを行うことでクライアントアプリケーション２１０を生成する。また、コンパイラ・リンカ２０９は、ＩＤＬコンパイラによって生成された負荷用のスケルトン実装１１０２と、アプリケーション開発者が作成したサーバ実装２０７、サーバント実装２０８を入力としてコンパイル、リンクを行うことで負荷用のサーバアプリケーション１１０３を生成する。更に、コンパイラ・リンカ２０９は、ＩＤＬコンパイラによって生成された通常スケルトン実装２０５、サーバ実装２０７、サーバント実装２０８のコンパイル、リンクを行うことで測定用である通常のサーバアプリケーション２１２を生成する。なお、負荷情報設定ファイル１０５の内容を変更した場合は、再度ＩＤＬコンパイルを実行して、変更された設定内容を反映した負荷用のスケルトン定義を生成し、負荷用のスケルトン定義のコンパイル・リンクを行い、負荷用のサーバアプリケーションを生成する必要がある。
【００３７】
生成されたクライアントアプリケーション２１０をサーバ１に配置し、また負荷用のサーバアプリケーション１１０３及び測定用サーバアプリケーション２１２をサーバ２に配置する。負荷用のサーバアプリケーション１１０３の動作フローを図１４に示す。図１４において、図６と同じ部分には同じ符号を付している。また、クライアントアプリケーション２１０と測定用サーバアプリケーション２１２の動作は、第１の実施の形態と同じであるので、図示及び説明を省略する。図１４において、図６と異なる部分は、ステップＤ１において、図６のように負荷情報設定ファイルを読み出す必要がないということである。それ以降の動作は、全て図６と同様であるので、その説明を省略する。
【００３８】
上記のように、第２実施の形態の分散アプリケーションにおけるサーバ処理性能測定装置によれば、第１の実施の形態と同様の効果が得られる。
【００３９】
上記の各実施の形態から下記の発明が抽出できる。なお、下記の各発明は単独で適用しても良いし、適宜組み合わせて適用しても良い。
【００４０】
本発明の第１の局面に係る発明は、複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、インタフェース定義を入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及びサーバ負荷生成処理を記述したスケルトン実装コードとを生成するＩＤＬコンパイラと、  サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力し、前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする。  
第１の局面において、前記負荷情報設定ファイルは書き換え可能であることが好ましい。
【００４１】
本発明の第２の局面に係る発明は、複数のサーバを備える分散型計算機システム上で動作する分散アプリケーションにおいて、前記各サーバ間で実施されるリモート呼び出しの性能を測定する性能評価装置であって、インタフェース定義と、サーバ負荷生成処理に係わる設定情報を記載した負荷情報設定ファイルを入力して、クライアントアプリケーションとＯＲＢとの間のインタフェースを記述したクライアントスタブ実装コードと、サーバアプリケーションとＯＲＢとの間のインタフェース及び前記負荷情報設定ファイルの内容に従ってサーバ負荷生成処理を実行するコードを記載したスケルトン実装コードとを生成するＩＤＬコンパイラと、サーバ実装コード、サーバント実装コード、前記スケルトン実装コードから生成されたサーバアプリケーションを起動して、前記スケルトン実装コードに記載されたサーバ負荷生成処理の設定内容に従ってサーバ負荷生成処理を実行する手段とを具備することを特徴とする。
【００４２】
第１及び第２の局面において、前記負荷情報設定ファイルはサーバ処理の呼び出し間隔と呼び出し回数を含むことが好ましい。
【００４３】
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。さらに、上記各実施の形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。
【００４４】
また、例えば各実施の形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００４５】
【図１】第１の実施の形態に係るサーバ処理性能評価装置のハードウェア構成を示す図。
【図２】本発明の第１の実施の形態に係わるサーバ処理性能評価装置において、性能評価を実行するための分散アプリケーションの作成方法を示す図。
【図３】第１の実施の形態に係るＩＤＬコンパイラの機能構成を示す図。
【図４】負荷情報設定ファイルの記載例を示す図。
【図５】負荷情報設定ファイルを使用してサーバの性能評価を行う場合におけるクライアントアプリケーションの動作フローを示す図。
【図６】負荷情報設定ファイルを使用してサーバの性能評価を行う場合における負荷用のサーバアプリケーションの動作フローを示す図。
【図７】負荷情報設定ファイルを使用してサーバの性能評価を行う場合における測定用サーバアプリケーションの動作フローを示す図。
【図８】負荷情報設定ファイルを用いた場合の負荷用クライアント及び負荷用のサーバの動作例を示す図。
【図９】負荷情報設定ファイルの他の記載例を示す図。
【図１０】図９の負荷情報設定ファイルを使用してサーバの性能評価を行う場合におけるクライアントアプリケーションの動作フローを示す図。
【図１１】第２の実施の形態に係るサーバ処理性能評価装置のハードウェア構成を示す図。
【図１２】本発明の第２の実施の形態に係わるサーバ処理性能評価方法の対象となる分散アプリケーションの作成方法を示した図。
【図１３】第２の実施の形態に係るＩＤＬコンパイラの機能構成を示す図。
【図１４】第２の実施の形態において、負荷情報設定ファイルを使用してサーバの性能評価を行う場合における負荷用のサーバアプリケーションの動作フローを示す図。
【符号の説明】
【００４６】
１…サーバ、２…サーバ、１０１…クライアントアプリケーション、１０２…測定用クライアントアプリケーション、１０３…サーバアプリケーション、１０４…測定用サーバアプリケーション、１０５…負荷情報設定ファイル、２０１…インタフェース定義、２０２…ＩＤＬコンパイラ、２０３…クライアントスタブ実装、２０４…スケルトン実装、２０５…スケルトン実装、２０６…クライアント実装、２０７…サーバ実装、２０８…サーバント実装、２０９…コンパイラ・リンカ、２１０…クライアントアプリケーション、２１１…サーバアプリケーション、２１２…測定用サーバアプリケーション、３０１…動作環境設定部、３０２…入力部、３０３…スタブコード生成部、３０４…スタブコード出力部、１００１…サーバアプリケーション、１１０１…ＩＤＬコンパイラ、１１０２…スケルトン実装、１１０３…サーバアプリケーション、１２０１…動作環境設定部、１２０２…インタフェース定義入力部、１２０３…負荷情報設定入力部、１２０４…スタブコード生成部、１２０５…スタブコード出力部。
【図１】
2005085060.tif 000003
【図２】
2005085060.tif 000004
【図３】
2005085060.tif 000005
【図４】
2005085060.tif 000006
【図５】
2005085060.tif 000007
【図６】
2005085060.tif 000008
【図７】
2005085060.tif 000009
【図８】
2005085060.tif 000010
【図９】
2005085060.tif 000011
【図１０】
2005085060.tif 000012
【図１１】
2005085060.tif 000013
【図１２】
2005085060.tif 000014
【図１３】
2005085060.tif 000015
【図１４】
2005085060.tif 000016