(57)【要約】【課題】複数のアプリケーションロジックを複数のサーバに分散配置してベンチマークテストを行なう際に、試験時間の大幅な短縮が可能になる分散アプリケーションのベンチマークテストシステムを提供する。【解決手段】あらかじめ全てのアプリケーションロジックＡ，Ｂを全てのサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃに対して、ロジック［Ａ−１］［Ｂ−１］、ロジック［Ａ−２］［Ｂ−２］、ロジック［Ａ−３］［Ｂ−３］として配置することで、テストパターンを変更してもロジックの配置と削除は不要となるため、短時間でテストパターンを変更できる。また、ベンチマークテストのテストパターンを変更する際の通信経路の設定を、メッセージ仲介装置１０の処理により自動化したので、ベンチマークテストに要する時間を大幅に短縮できる。【選択図】      図１Ａ
2018136602.tif 000002
【特許請求の範囲】
【請求項１】
試験対象とするアプリケーションロジックを予め配置した複数のサーバとそれぞれ個別にネットワーク装置を介して通信接続する通信接続手段と、
前記複数のサーバと当該サーバに配置されているアプリケーションロジックとの組み合わせからなる試験条件を決定する試験条件決定手段と、
予め測定された前記複数のサーバ間の通信時間を保存するサーバ間通信時間保存手段と、
前記試験条件決定手段により決定された試験条件に従い、試験対象とするサーバと前記通信接続手段により通信接続し、当該サーバに試験対象のアプリケーションロジックを通知し、当該サーバでの当該試験対象のアプリケーションロジックによるロジック処理時間を測定するサーバ内ロジック処理時間測定手段と、
前記サーバ内ロジック処理時間測定手段により測定された試験対象とするサーバでの試験対象のアプリケーションロジックによるロジック処理時間と、前記サーバ間通信時間保存手段により保存されている試験対象とした各サーバ間の通信時間とを加算して、分散アプリケーションの合計遅延時間を求める遅延時間算出手段と、
を備えたことを特徴とする分散アプリケーションのベンチマークテストシステム。
【請求項２】
前記試験条件決定手段は、前記複数のサーバと当該サーバに配置されているアプリケーションロジックとを選択的に組み合わせた全ての組み合わせのそれぞれを順番に試験条件として決定する全試験条件決定手段を有する、
ことを特徴とする請求項１に記載の分散アプリケーションのベンチマークテストシステム。
【請求項３】
前記試験条件決定手段は、
前記複数のサーバと当該サーバに配置されているアプリケーションロジックとを選択的に組み合わせた全ての組み合わせのうち予め設定された数毎に間引いた組み合わせを順番に試験条件として決定する第１の試験条件決定手段と、
前記第１の試験条件決定手段により決定された各試験条件に従って、前記遅延時間算出手段により求められた当該各試験条件それぞれに対応する合計遅延時間に基づき、当該合計遅延時間が最小の試験条件に対応する前記サーバとアプリケーションロジックとの組み合わせの周辺の予め設定された範囲の組み合わせについて順番に試験条件として決定する第２の試験条件決定手段とを有する、
ことを特徴とする請求項１又は請求項２に記載の分散アプリケーションのベンチマークテストシステム。
【請求項４】
前記サーバ内ロジック処理時間測定手段により測定された試験対象とするサーバでの試験対象のアプリケーションロジックによるロジック処理時間を当該サーバとアプリケーションロジックとの組み合わせに対応付けて保存するサーバ内ロジック処理時間保存手段を備え、
異なる種類の分散アプリケーションの試験を行なう際に、前記遅延時間算出手段は、前記試験条件決定手段により決定された試験条件としてのサーバとアプリケーションロジックとの組み合わせに対応付けられて前記サーバ内ロジック処理時間保存手段によりロジック処理時間が保存されている場合は、当該保存されているロジック処理時間を再利用して分散アプリケーションの合計遅延時間を求める試験結果再利用手段を有する、
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の分散アプリケーションのベンチマークテストシステム。
【請求項５】
前記試験条件決定手段により決定された試験条件毎に、前記遅延時間算出手段により求められた分散アプリケーションの合計遅延時間を保存する試験結果保存手段と、
前記試験結果保存手段により試験条件毎に保存された分散アプリケーションの合計遅延時間を出力する試験結果出力手段と、
を備えたことを特徴とする請求項１乃至請求項４の何れか１項に記載の分散アプリケーションのベンチマークテストシステム。
【請求項６】
試験対象とするアプリケーションロジックを予め配置した複数のサーバとそれぞれ個別にネットワーク装置を介して通信接続し、
前記複数のサーバと当該サーバに配置されているアプリケーションロジックとの組み合わせからなる試験条件を決定し、
予め測定された前記複数のサーバ間の通信時間を保存し、
前記決定された試験条件に従い、試験対象とするサーバと通信接続し、当該サーバに試験対象のアプリケーションロジックを通知し、当該サーバでの当該試験対象のアプリケーションロジックによるロジック処理時間を測定し、
前記測定された試験対象とするサーバでの試験対象のアプリケーションロジックによるロジック処理時間と、前記保存されている試験対象とした各サーバ間の通信時間とを加算して、分散アプリケーションの合計遅延時間を求める、
ことからなる分散アプリケーションのベンチマークテスト方法。
【請求項７】
前記試験条件の決定は、前記複数のサーバと当該サーバに配置されているアプリケーションロジックとを選択的に組み合わせた全ての組み合わせのそれぞれを順番に試験条件として決定する、
ことを特徴とする請求項６に記載の分散アプリケーションのベンチマークテスト方法。
【請求項８】
前記試験条件の決定は、
前記複数のサーバと当該サーバに配置されているアプリケーションロジックとを選択的に組み合わせた全ての組み合わせのうち予め設定された数毎に間引いた組み合わせを順番に試験条件として決定する第１の試験条件の決定と、
前記第１の試験条件の決定により決定された各試験条件に従って、前記求められた当該各試験条件それぞれに対応する合計遅延時間に基づき、当該合計遅延時間が最小の試験条件に対応する前記サーバとアプリケーションロジックとの組み合わせの周辺の予め設定された範囲の組み合わせについて順番に試験条件として決定する第２の試験条件の決定とを有する、
ことを特徴とする請求項６又は請求項７に記載の分散アプリケーションのベンチマークテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションロジック（アプリケーション機能群）を複数の分散されたサーバに配置して構成される分散アプリケーションに対してベンチマークテスト（性能試験）を行なう分散アプリケーションのベンチマークテストシステムおよびその方法に関する。
【背景技術】
【０００２】
インターネットのWebアプリケーションは、複数のアプリケーションロジック（以降、ロジックと称する）の組み合わせにより実現され、大きく二つの実現方法がある。一つ目は、モノリシック（一枚岩）と呼ばれ、単一の実行プロセス（実行ファイル）内に全てのロジックを実装することで実現される。二つ目は、マイクロサービスと呼ばれ、複数のロジックを複数の実行プロセスに分割し、それらを組み合わせることで実現される（例えば、非特許文献１参照。）。
【０００３】
このうち、二つ目のマイクロサービスは、分散アプリケーションとして実現できるため、ロジックを地理的に分散した複数のサーバに配置することで性能をさらに向上できる可能性が有る。この場合、ロジックを配置できるサーバの候補を複数選択できる状況下では、ロジックをどのように配置するかによって性能が大きく異なる。
【０００４】
例えば、アプリケーションの利用者に（地理的に）近い場所のサーバにロジックを配置することで、通信速度が向上しアプリケーションの応答時間を高速化できる。また、ロジックの種類ごとに動作時のハードウェア要件が異なるため、ロジックの動作に最適なハードウェア要件を満たすサーバに配置することで、ロジックの性能を最大化することもできる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】O'Reilly Media.“Microservice Architecture: Aligning Principles, Practices, and Culture,” July, 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように「各ロジックを地理的に分散されたサーバのどこに配置すると、アプリケーションの性能を最大化できるか」というロジック配置の最適化問題を解くには、厳密には複数のロジックを複数のサーバに配置するすべての組み合わせについて性能試験（ベンチマークテスト）を行うことで可能となるが、性能試験の組み合わせの数は、サーバやロジックの数に応じて指数的に増加し、また、ロジックを配置するサーバを変更するたびにロジックの配置および削除やサーバ及びネットワーク装置の通信設定を変更する必要があるため、膨大な時間を要するという問題がある（例えば、１０個のロジックを１０台のサーバのどこでも配置できるような状況において、ベンチマークテストの組み合わせ総数は1010 = 10,000,000,000パターンとなる。ベンチマークテスト１回が１秒で終わるとして、全てのパターン実行に約３１７年必要）。
【０００７】
本発明は、このような課題に鑑みなされたもので、複数のアプリケーションロジックを複数のサーバに分散配置するテストパターンを変更する際に、ロジックの配置・削除やネットワーク装置の設定の変更を手動操作で行なう必要なく、試験時間の大幅な短縮が可能になる分散アプリケーションのベンチマークテストシステムおよびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る分散アプリケーションのベンチマークテストシステムは、試験対象とするアプリケーションロジックを予め配置した複数のサーバとそれぞれ個別にネットワーク装置を介して通信接続する通信接続手段と、前記複数のサーバと当該サーバに配置されているアプリケーションロジックとの組み合わせからなる試験条件を決定する試験条件決定手段と、予め測定された前記複数のサーバ間の通信時間を保存するサーバ間通信時間保存手段と、前記試験条件決定手段により決定された試験条件に従い、試験対象とするサーバと前記通信接続手段により通信接続し、当該サーバに試験対象のアプリケーションロジックを通知し、当該サーバでの当該試験対象のアプリケーションロジックによるロジック処理時間を測定するサーバ内ロジック処理時間測定手段と、前記サーバ内ロジック処理時間測定手段により測定された試験対象とするサーバでの試験対象のアプリケーションロジックによるロジック処理時間と、前記サーバ間通信時間保存手段により保存されている試験対象とした各サーバ間の通信時間とを加算して、分散アプリケーションの合計遅延時間を求める遅延時間算出手段と、を備えたことを特徴としている。
【発明の効果】
【０００９】
本発明によれば、複数のアプリケーションロジックを複数のサーバに分散配置するテストパターンを変更する際に、ロジックの配置・削除やネットワーク装置の設定の変更を手動操作で行なう必要なく、試験時間の大幅な短縮が可能になる。
【図面の簡単な説明】
【００１０】
【図１Ａ】本発明の第１実施形態に係る分散アプリケーションのベンチマークテストシステムでありテストパターン１の動きに対応した構成を示す機能ブロック図。
【図１Ｂ】本発明の第１実施形態に係る分散アプリケーションのベンチマークテストシステムでありテストパターン２の動きに対応した構成を示す機能ブロック図。
【図２Ａ】前記分散アプリケーションのベンチマークテストシステムを実施する上で前提となるテストパターン１に対応した考え方を説明する図。
【図２Ｂ】前記分散アプリケーションのベンチマークテストシステムを実施する上で前提となるテストパターン２に対応した考え方を説明する図。
【図３】本発明の第２実施形態の分散アプリケーションのベンチマークテストシステムによるテストパターンを示す図。
【図４】前記第２実施形態の分散アプリケーションのベンチマークテストシステムを実施する上で前提となるテストパターンの考え方を説明する図。
【図５】本発明の第３実施形態の分散アプリケーションのベンチマークテストシステムによる複数の分散アプリケーションでのテストパターンの一例を示す図。
【図６】前記第３実施形態の分散アプリケーションのベンチマークテストシステムを実施する上で前提となる複数の分散アプリケーションでのテストパターンの考え方を説明する図。
【発明を実施するための形態】
【００１１】
以下図面により本発明の実施の形態について説明する。
【００１２】
（第１実施形態）
図１Ａ、図１Ｂは、本発明の第１実施形態に係る分散アプリケーションのベンチマークテストシステムの構成を示す機能ブロック図であり、図１Ａは、テストパターン１の動きに対応した構成を示す機能ブロック図、図１Ｂは、テストパターン２の動きに対応した構成を示す機能ブロック図である。
【００１３】
分散アプリケーションのベンチマークテストを自動化するためには、複数のロジックを複数のサーバに配置し、ロジック間の通信設定や通信経路上のネットワーク装置の設定について変更する処理を自動化する必要がある。
【００１４】
図２Ａ、図２Ｂは、前記分散アプリケーションのベンチマークテストシステムを実施する上で前提となる考え方を説明する図であり、図２Ａは、テストパターン１に対応した考え方を説明する図、図２Ｂは、テストパターン２に対応した考え方を説明する図である。
【００１５】
先ず、図２Ａ、図２Ｂを参照して、前記分散アプリケーションのベンチマークテストシステムを実施する上で前提となる考え方について説明する。
【００１６】
この分散アプリケーションは、２種類のロジックで構成され、ロジックＡからロジックＢに向けて通信が行われる。なお、図２Ａ、図２Ｂで示す分散アプリケーションの構成は一例に過ぎず、本実施形態の適用対象はこれに限定されるわけではない。
【００１７】
図２Ａで示すテストパターン１でベンチマークテストを実施するためには、以下(1)〜(5)の処理を自動化する必要がある。
【００１８】
(1)サーバ<#1>２０ＡにロジックＡを配置する。
【００１９】
(2)サーバ<#2>２０ＢにロジックＢを配置する。
【００２０】
(3)ロジックＡがロジックＢと通信を行えるように、ロジックＡの通信設定を行う。例えば、ロジックＡからのインタフェース２３Ａを介した宛先IPアドレスをサーバ<#2>２０Ｂにおけるインタフェース２３ＢのIPアドレスβに変更する。
【００２１】
(4)ロジックＡとロジックＢの通信経路上のネットワーク装置<X>３０Ａ、ネットワーク装置<Y>３０Ｂの通信設定を行う。例えば、ネットワーク装置<X>３０Ａ，<Y>３０Ｂがルータの場合は、サーバ<#1>２０Ａからサーバ<#2>２０Ｂへの通信経路設定を行う。また、ネットワーク装置<Y>３０Ｂがファイアウォールの場合は、サーバ<#1>２０ＡのIPアドレスαからサーバ<#2>２０ＢのIPアドレスβへの通信を許可する設定を行う。
【００２２】
(5)前記(1)から(4)の設定が完了した後に、分散アプリケーション（テストパターン１）のベンチマークテストを開始する。各ロジックＡ，Ｂのサーバ<#1>２０Ａ，<#2>２０Ｂ内での処理遅延時間ＴＡ<#1>，ＴＢ<#2>と、ロジックＡ，Ｂ間の通信遅延時間ｔＡ<#1>-Ｂ<#2>を足していくことで、分散アプリケーション（テストパターン１）の合計遅延時間Ｔ１（＝ＴＡ<#1>＋ＴＢ<#2>＋ｔＡ<#1>-Ｂ<#2>）を算出し、ベンチマークテスト（テストパターン１）の結果として記録する。
【００２３】
続いて、前記図２Ａで示したテストパターン１のベンチマークテストを実施した後、図２Ｂのテストパターン２に変更してベンチマークテストを実施するためには、以下(1)〜(5)の処理を自動化する必要がある。
【００２４】
(1)サーバ<#1>２０ＡのロジックＡを削除し、サーバ<#2>２０ＢにロジックＡを配置する。
【００２５】
(2)サーバ<#2>２０ＢのロジックＢを削除し、サーバ<#3>２０ＣにロジックＢを配置する。
【００２６】
(3)ロジックＡがロジックＢと通信を行えるように、ロジックＡの通信設定を行う。例えば、ロジックＡからインタフェース２３Ｂを介した宛先IPアドレスをサーバ<#3>のインタフェース２３ＣにおけるIPアドレスγに変更する。
【００２７】
(4)ロジックＡとロジックＢの通信経路上のネットワーク装置<Y>３０Ｂ、ネットワーク装置<Z>３０Ｃの通信設定を行う。例えば、ネットワーク装置<Y>３０Ｂ，<Z>３０Ｃがルータの場合は、サーバ<#2>２０Ｂからサーバ<#3>２０Ｃへの通信経路設定を行う。また、ネットワーク装置<Y>３０Ｂ，<Z>３０Ｃがファイアウォールの場合は、サーバ<#2>２０ＢのIPアドレスβからサーバ<#3>２０ＣのIPアドレスγへの通信を許可する設定を行う。
【００２８】
(5)前記(1)から(4)の設定が完了した後に、分散アプリケーション（テストパターン２）のベンチマークテストを開始する。各ロジックＡ，Ｂのサーバ<#2>２０Ｂ，<#3>２０Ｃ内での処理遅延時間ＴＡ<#2>，ＴＢ<#3>と、ロジックＡ，Ｂ間の通信遅延時間ｔＡ<#2>-Ｂ<#3>を足していくことで、分散アプリケーション（テストパターン２）の合計遅延時間Ｔ２（＝ＴＡ<#2>＋ＴＢ<#3>＋ｔＡ<#2>-Ｂ<#3>）を算出し、ベンチマークテスト（テストパターン２）の結果として記録する。
【００２９】
このように、前記図２Ａ，図２Ｂを参照して説明した分散アプリケーションのベンチマークテスト（テストパターン１，２）を連続して行なうための考え方を前提とし、前記図１Ａ，図１Ｂを参照し、本第１実施形態に係る分散アプリケーションのベンチマークテストシステムの構成及び動作について説明する。
【００３０】
本第１実施形態のベンチマークテストシステムは、メッセージ仲介装置１０を備える。
【００３１】
このメッセージ仲介装置１０は、例えばコンピュータである制御装置（ＣＰＵ）と記憶装置と通信装置と入出力装置を含むハードウェアから構成され、制御装置（ＣＰＵ）が、記憶装置に記憶されたプログラム（ソフトウェア）に従い各装置を制御し、分散アプリケーションの複数のテストパターン１，２，…，ｎに対応するベンチマークテストを実行するように機能させる。
【００３２】
前記メッセージ仲介装置１０は、ベンチマークテストの対象とする複数のサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃとの間で、各対応するネットワーク装置<X>３０Ａ，<Y>３０Ｂ，<Z>３０Ｃと広域通信網(Internet)Ｎを介して個別にメッセージのデータを送受信可能な通信機能を有し、制御部１１、メッセージ仲介部１２、出力部１３の各機能を含む。
【００３３】
前記制御部１１は、データ格納部１４、遅延時間算出部１７、試験結果格納部１８、試験条件設定部１９の各機能を含み、前記データ格納部１４は、サーバ間通信時間格納部１５、サーバ内ロジック処理時間格納部１６の各機能を含む。
【００３４】
前記データ格納部１４のサーバ間通信時間格納部１５には、予め測定しておいたすべてのサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ間の通信時間が保存されている。
【００３５】
前記サーバ内ロジック処理時間格納部１６には、メッセージ仲介部１２を介して得られた、各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃからのロジックの種類、処理開始時間、処理終了時間のデータに基づき求められ測定された、当該各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０ＣでのロジックＡ，Ｂごとの処理時間が、その測定の都度、保存される。
【００３６】
前記遅延時間算出部１７は、データ格納部１４のサーバ内ロジック処理時間格納部１６に保存された前記各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０ＣでのロジックＡ，Ｂごとの処理時間と、サーバ間通信時間格納部１５に保存された前記各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ間の通信時間を用いて、各テストパターン（測定環境（試験条件））１，２，…，ｎにおける遅延時間を算出し、その結果を試験結果格納部１８に保存する。
【００３７】
前記試験条件設定部１９は、サーバ内ロジック処理時間格納部１６と試験結果格納部１８に保存された情報に基づいて、次のテストパターン（測定環境（試験条件））を決定し、メッセージ仲介部１２を介してサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃに試験条件を送信する。
【００３８】
前記試験結果格納部１８に保存された各テストパターン（測定環境（試験条件））１，２，…，ｎ毎の試験結果は、出力部１３を介して表示、確認できる。
【００３９】
前記各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃは、ロジック管理部<#1>２１Ａ，<#2>２１Ｂ，<#3>２１Ｃ、メッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ、インタフェース２３Ａ，２３Ｂ，２３Ｃを有する。
【００４０】
前記ロジック管理部<#1>２１Ａ，<#2>２１Ｂ，<#3>２１Ｃには、ベンチマークテストの対象になる全てのロジックＡ，Ｂが格納されており、当該ロジック管理部<#1>２１Ａ，<#2>２１Ｂ，<#3>２１Ｃが、メッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃを介して前記メッセージ仲介装置１０からの指令を受け、ベンチマークテストの対象となるロジックの処理を実行する。
【００４１】
すなわち、このように構成されたベンチマークテストシステムは、複数のアプリケーションロジックＡ，Ｂ，…を複数のサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ，…に分散配置することにより実現されるマイクロサービスにおいて、ロジックＡ，Ｂ，…の性能を最大化するサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ，…への配置を試験するシステムであり、複数のサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ，…がそれぞれネットワーク装置<#1>３０Ａ，<#2>３０Ｂ，<#3>３０Ｃ，…を介してメッセージ仲介装置１０と接続されており、各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ，…はメッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ，…とロジック管理部<#1>２１Ａ，<#2>２１Ｂ，<#3>２１Ｃ，…を有し、メッセージ仲介装置１０は、制御部１１とメッセージ仲介部１２を有し、メッセージ仲介装置１０は制御部１１で決定された試験条件（テストパターン）に従い、対象サーバ（<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ，…）に配置するロジック（Ａ，Ｂ，…）を通知して各サーバでのロジック処理時間を測定し、予め測定しておいた対象サーバ間の通信時間をこれに加えることで分散アプリケーションの合計遅延時間を求めることを特徴とする。
【００４２】
次に、前記構成の第１実施形態の分散アプリケーションのベンチマークテストシステムによる具体的な動作について説明する。
【００４３】
ここでの分散アプリケーションは、２種類のロジックＡ，Ｂで構成され、ロジックＡからロジックＢに向けて通信が行われる。なお、図１Ａと図１Ｂの分散アプリケーションの構成は一例に過ぎず、本実施形態の適用対象はこれに限定されない。
【００４４】
本第１実施形態では、ベンチマークテストを開始する前に、前記図１Ａ，図１Ｂで示したベンチマークテストシステムの構成にて説明したように、下記の５つの前提条件(A)〜(D)を設定する。
【００４５】
(A)事前に全てのサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃに全てのロジックＡ，Ｂを配置しておく。図１Ａ，図１Ｂにおいて、ロジックＡ−１、ロジックＡ−２、ロジックＡ−３は同じ機能を持つ。同様に、ロジックＢ−１、ロジックＢ−２、ロジックＢ−３は同じ機能を持つ。
【００４６】
(B)各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃにメッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃを配置する。メッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃは、メッセージ仲介装置１０のメッセージ仲介部１２とのみメッセージ送受信を行い、他のメッセージ送受信部（<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ）と直接のメッセージ送受信は行わない。
【００４７】
(C)全てのサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃと通信可能な場所にメッセージ仲介装置１０を配置する。メッセージ仲介装置１０は、メッセージ送受信部（<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ）から受信したメッセージを、他のメッセージ送受信部（<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃ）へ転送する機能を持つ。
【００４８】
(D)メッセージ送受信部<#1>２２Ａ，<#2>２２Ｂ，<#3>２２Ｃとメッセージ仲介装置１０がお互いに通信できるように、通信経路上のネットワーク装置<X>３０Ａ，<Y>３０Ｂ，<Z>３０Ｃの通信設定を行う。例えば、ネットワーク装置<X>３０Ａ，<Y>３０Ｂ，<Z>３０Ｃがルータの場合は、サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃからメッセージ仲介装置１０への通信経路、及び、メッセージ仲介装置１０からサーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃへの通信経路設定を行う。ネットワーク装置<X>３０Ａ，<Y>３０Ｂ，<Z>３０Ｃがファイアウォールの場合は、サーバ<#1>２０ＡのIPアドレスα、サーバ<#2>２０ＢのIPアドレスβ、サーバ<#3>２０ＣのIPアドレスγからメッセージ仲介装置１０のIPアドレスへの通信、及び、メッセージ仲介装置１０のIPアドレスからサーバ<#1>２０ＡのIPアドレスα、サーバ<#2>２０ＢのIPアドレスβ、サーバ<#3>２０ＣのIPアドレスγへの通信を許可する設定を行う。
【００４９】
(E)サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ間の通信遅延を測定し、メッセージ仲介装置１０のサーバ間通信時間格納部１５に保存する。
【００５０】
そして、図１Ａに示すように、テストパターン（試験条件）１でのベンチマークテストの処理を実行する。
【００５１】
（処理１）メッセージ仲介装置１０では、メッセージ仲介部１２に対して、サーバ<#1>２０Ａのメッセージ送受信部<#1>２２Ａからメッセージ仲介部１２へメッセージが転送された際に、メッセージ仲介部１２からサーバ<#2>２０Ｂのメッセージ送受信部<#2>２２Ｂへメッセージを再度転送するように設定する。
【００５２】
（処理２）この後、分散アプリケーションのベンチマークテスト（テストパターン１）を開始し、データ格納部１４のサーバ内ロジック処理時間格納部１６に保存した各ロジックＡ−１，Ｂ−２の各サーバ<#1>２０Ａ，<#2>２０Ｂ内での処理遅延時間ＴＡ１<#1>，ＴＢ２<#2>と、事前に測定してサーバ間通信時間格納部１５に保存したサーバ<#1>２０Ａ，<#2>２０Ｂ間の通信遅延時間ｔＡ１<#1>-Ｂ２<#2>（前提条件(E））とを、遅延時間算出部１７により加算することで、分散アプリケーション（テストパターン１）の合計遅延時間Ｔ１（＝ＴＡ１<#1>＋ＴＢ２<#2>＋ｔＡ１<#1>-Ｂ２<#2>）を算出し、ベンチマークテスト（テストパターン１）の結果として試験結果格納部１８に保存して記録する。
【００５３】
そして、前記テストパターン（試験条件）１でのベンチマークテストの実施が終了すると、メッセージ仲介装置１０の試験条件設定部１９により次のテストパターン（試験条件）２が設定され、図１Ｂに示すように、テストパターン（試験条件）２でのベンチマークテストの処理を実行する。
【００５４】
（処理１）メッセージ仲介装置１０では、メッセージ仲介部１２に対して、サーバ<#2>２０Ｂのメッセージ送受信部<#2>２２Ａからメッセージ仲介部１２へメッセージが転送された際に、メッセージ仲介部１２からサーバ<#3>２０Ｃのメッセージ送受信部<#3>２２Ｃへメッセージを再度転送するように設定する。
【００５５】
（処理２）この後、分散アプリケーションのベンチマークテスト（テストパターン２）を開始し、データ格納部１４のサーバ内ロジック処理時間格納部１６に保存した各ロジックＡ−２，Ｂ−３の各サーバ<#2>２０Ｂ，<#3>２０Ｃ内での処理遅延時間ＴＡ２<#2>，ＴＢ３<#3>と、事前に測定してサーバ間通信時間格納部１５に保存したサーバ<#2>２０Ｂ，<#3>２０Ｃ間の通信遅延時間ｔＡ２<#2>-Ｂ３<#3>（前提条件(E））とを、遅延時間算出部１７により加算することで、分散アプリケーション（テストパターン２）の合計遅延時間Ｔ２（＝ＴＡ２<#2>＋ＴＢ３<#3>＋ｔＡ２<#2>-Ｂ３<#3>）を算出し、ベンチマークテスト（テストパターン２）の結果として試験結果格納部１８に保存して記録する。
【００５６】
この後さらに、前記テストパターン（試験条件）１，２での各ベンチマークテストの処理と同様に、前記各サーバ<#1>２０Ａ，<#2>２０Ｂ，<#3>２０Ｃ間での各ロジックＡ−Ｂ間通信の組み合わせにおける全てのテストパターン（試験条件）３，４，…について、それぞれその合計遅延時間Ｔ３，Ｔ４，…を算出し、前記試験結果格納部１８に保存して記録することで、本第１実施形態での分散アプリケーションのベンチマークテストを終了する。
【００５７】
したがって、前記構成の第１実施形態の分散アプリケーションのベンチマークテストシステムによれば、従来と比較して以下の効果を生じる。
【００５８】
従来は、ベンチマークテストのテストパターンを変更する度にロジックの配置と削除を繰り返すため、テストパターンの変更に長時間を要した。これに対し、本第１実施形態のベンチマークテストシステムでは、あらかじめ全てのロジックを全てのサーバに配置することで、テストパターンを変更してもロジックの配置と削除は不要となるため、短時間でテストパターンを変更できる。
【００５９】
また従来は、ベンチマークテストのテストパターンを変更する度に、手動操作により、ロジックの設定を変更したり、通信経路上にあるネットワーク装置の設定を変更したりする必要がある。ロジックの設定を変更する方法は、ロジックの開発ベンダや種類ごとに異なる。また、ネットワーク装置の設定についても同様で、ネットワーク装置の開発ベンダや種類ごとに異なる。このためベンチマークテストのテストパターンを変更するためには、複数のロジックやネットワーク装置の設定変更方法を組み合わさなければならなくなり、設定変更方法が複雑化し、ベンチマークテストのコストが増加していた。これに対し、本第１実施形態のベンチマークテストシステムでは、ベンチマークテストのテストパターンを変更する設定を、メッセージ仲介装置１０の処理により自動化したので、ベンチマークテストに要する時間を削減できる。
【００６０】
なお、前記第１実施形態のベンチマークテストシステムでは、ロジック間の通信を行なうのに、通信元サーバのメッセージ送受信部からメッセージ仲介装置１０を介して通信先サーバのメッセージ送受信部へ転送するオーバヘッド遅延が存在するが、各ロジックのサーバ内での処理遅延時間と、事前に測定したサーバ間の通信遅延時間を足すことで、前記メッセージ仲介装置１０によるオーバヘッド遅延を取り除くことができ、分散アプリケーションの合計遅延時間を正確に算出できる。
【００６１】
（第２実施形態）
前記第１実施形態のベンチマークテストシステムでは、ベンチマークテストの全てのテストパターン（試験条件）を総当りで実行する構成としたが、本第２実施形態では、重要度の低いテストパターン（試験条件）のベンチマークテストを省略することで、ベンチマークテストが完了するまでの実行時間をさらに短縮する。
【００６２】
図３は、本発明の第２実施形態の分散アプリケーションのベンチマークテストシステムによるテストパターンを示す図である。
【００６３】
図４は、前記第２実施形態の分散アプリケーションのベンチマークテストシステムを実施する上で前提となるテストパターンの考え方を説明する図である。
【００６４】
先ず、図４を参照して、前記ベンチマークテストシステムを実施する上で前提となるテストパターンの考え方について説明する。
【００６５】
ロジックＡとロジックＢの２種類で構成される分散アプリケーションのベンチマークシステムにおいて、地理的に分散するサーバがｎ台ある場合、厳密には、ロジックＡとロジックＢのサーバへの配置場所を変更しながら、ｎ×ｎの全てのテストパターンのベンチマークテストを総当りで実行する必要がある。サーバがｎ台でロジック数が３つになると、ｎ^3のテストパターンの組み合わせが必要となる。ロジック数やサーバの台数が増えてくると、組み合わせ数が指数的に増加する。
【００６６】
分散アプリケーションの性能指標(遅延、スループット、分散配置コストなど)は複数存在し、それらの性能指標の間にはトレードオフが存在することが一般的である。例えば、分散アプリケーションの遅延を最も少なくするようにロジックをサーバに配置すると、分散配置コストが増加したりする。各性能指標を最も良くするためのロジックの配置場所は、全テストパターンの中に最低１つ存在する。
【００６７】
例えば、図４で示すＸ、Ｙ、Ｚは、各性能指標(遅延、スループット、分散配置コスト)をそれぞれ最も良くできるテストパターンを示している。テストパターンＸは遅延を最小化できるロジック配置、テストパターンＹはスループットを最大化できるロジック配置、テストパターンＺは分散配置コストを最小化できるロジック配置を示す。
【００６８】
前記第１実施形態のベンチマークテストシステムでは、全てのテストパターンについてのベンチマークテストを順番に実施していくことで、各性能指標を最も良くできるテストパターンＸ、Ｙ、Ｚを厳密に全て発見することができる。
【００６９】
このように、前記図４を参照して説明した分散アプリケーションのベンチマークテストシステムを実施する上で前提となるテストパターンの考え方を前提とし、前記図３を参照し、本第２実施形態に係るベンチマークテストシステムでのテストパターンについて説明する。
【００７０】
図３に示すＸ、Ｙ、Ｚは、前記同様に、各性能指標(遅延、スループット、分散配置コスト)をそれぞれ最も良くできるテストパターンを示している。テストパターンＸは遅延を最小化できるロジック配置、テストパターンＹはスループットを最大化できるロジック配置、テストパターンＺは分散配置コストを最小化できるロジック配置を示す。
【００７１】
本第２実施形態のベンチマークテストシステムでは、全てのテストパターンについてのベンチマークテストを順番に実施するのではなく、最初は広範囲に荒い粒度で間引いて決定したテストパターンを設定してベンチマークテストを実施する。
【００７２】
例えば、前記メッセージ仲介装置１０における制御部１１の試験条件設定部１９により決定するテストパターン（試験条件）の順番を、３個飛ばし、５個飛ばし等の荒い粒度で間引いて決定し順番にベンチマークテストを実施する。そして、間引いて実施した各テストパターンそれぞれのベンチマークテストの結果から、分散アプリケーションの各性能指標(遅延、スループット、分散配置コストなど)を最も良くできるテストパターンを選択する。ここで、テストパターンＸ´は遅延を最小化できるロジック配置、テストパターンＹ´はスループットを最大化できるロジック配置、テストパターンＺ´は分散配置コストを最小化できるロジック配置を示す。このテストパターンＸ´、Ｙ´、Ｚ´は、荒い粒度で間引いたテストパターンでベンチマークテストを実施した結果となるため、前記第１実施形態のベンチマークテストシステムにより発見できる厳密な最適解を得られるテストパターンＸ、Ｙ、Ｚよりも性能指標の値が悪くなる。しかし、テストパターンＸ´、Ｙ´、Ｚ´の周辺には、前記厳密な最適解が得られるテストパターンＸ、Ｙ、Ｚが存在するため、重点的に前記テストパターンＸ´、Ｙ´、Ｚ´の周辺の予め設定された範囲の各テストパターンについてベンチマークテストを実施していくことで、全てのテストパターンについて総当りでベンチマークテストを実施しなくても、前記厳密な最適解が得られるテストパターンＸ、Ｙ、Ｚに短時間で到達することができる。
【００７３】
したがって、前記構成の第２実施形態の分散アプリケーションのベンチマークテストシステムによれば、分散アプリケーションのベンチマークテストを、全てのテストパターンに対して総当りで実施するのではなく、全テストパターンのうち最初に荒い粒度で間引いて決定したテストパターンの組み合わせでベンチマークテストを実施し、その後、各性能指標の値が高いテストパターンの周辺の予め設定された範囲の各テストパターンに対するベンチマークテストを重点的に実施することで、前記第２実施形態のベンチマークテストシステムよりも更に短時間にベンチマークテストを完了できるようになる。
【００７４】
なお、前記第２実施形態の分散アプリケーションのベンチマークテストシステムでは、全てのテストパターンのうち、荒い粒度で間引いたテストパターンの組み合わせに対するベンチマークテストを行ない、そのテスト結果を用いてさらに細かい粒度で間引いたテストパターンに対するベンチマークテストを行うという２段階のベンチマークテストにより、ベンチマークテストの実施完了時間の更なる短縮を可能としたが、全てのテストパターンに対するベンチマークテストを実施しないため、完全に抜けのない厳密なベンチマークテスト結果を得られるという点は保証されない。しかしながら、分散アプリケーションのベンチマークテストでは、分散アプリケーションの開発コストの削減や開発期間の短縮のために、全てのテストパターンの組み合わせを実施し厳密なベンチマークテスト結果を得ることよりも、限られた予算、時間の中で可能な限り最良なベンチマークテスト結果を得ることが重要である。したがって、前記第１実施形態と第２実施形態の分散アプリケーションのベンチマークテストシステムの組み合わせは、合理的な組み合わせであると評価できる。
【００７５】
（第３実施形態）
複数の分散アプリケーションのベンチマークテストをその各テストパターンに対して実施する場合、当該テストパターンに冗長性が現れることがある。この第３実施形態のベンチマークテストシステムでは、冗長なベンチマークテストのテストパターンについては、複数の分散アプリケーションの間でベンチマークテストの結果を共用することで、不要なベンチマークテストのテストパターンを省略し、更に短時間で効率的にベンチマークテストを実施する。
【００７６】
図５は、本発明の第３実施形態の分散アプリケーションのベンチマークテストシステムによる複数の分散アプリケーションでのテストパターンの一例を示す図である。
【００７７】
図６は、前記第３実施形態の分散アプリケーションのベンチマークテストシステムを実施する上で前提となる複数の分散アプリケーションでのテストパターンの考え方を説明する図である。
【００７８】
先ず、図６を参照して、前記第３実施形態のベンチマークテストシステムを実施する上で前提となる複数の分散アプリケーションでのテストパターンの考え方について説明する。
【００７９】
分散アプリケーションは複数のロジックで構成されていることが一般的であり、分散アプリケーションの種類が異なっても、複数の分散アプリケーション間で同じロジックを使っていることが多い。
【００８０】
図６（Ａ）（Ｂ）（Ｃ）に示すように、ロジックＡは３種類の分散アプリケーション<#1><#2><#3>に全て含まれている。ロジックＢは分散アプリケーション<#1>と分散アプリケーション<#3>に含まれている。ロジックＥは分散アプリケーション<#2>と分散アプリケーション<#3>に含まれている。
【００８１】
３種類の分散アプリケーション<#1><#2><#3>それぞれのベンチマークテストを実施する際には、前述したように複数のロジックのサーバへの配置場所を変更した各テストパターンに対してベンチマークテストを実施する。このベンチマークテストを複数のテストパターンで実施する際に、テストパターンに冗長性が現れることがある。例えば、３種類の分散アプリケーション<#1><#2><#3>それぞれのテストパターンにおいて、「サーバ<#1>２０ＡにロジックＡを配置する」という点は同一であり、冗長性がある。このような場合でも、全ての種類の分散アプリケーション<#1><#2><#3>で、「サーバ<#1>２０ＡにロジックＡを配置する」場合のベンチマークテストを実施する。
【００８２】
これに対し、図５（Ａ）（Ｂ）（Ｃ）に示すように、第３実施形態の分散アプリケーションのベンチマークテストシステムでは、３種類の分散アプリケーション<#1><#2><#3>のベンチマークテストを実施する際に、そのテストパターンに冗長性が現れる場合は、既に実施したベンチマークテストの結果を、複数の分散アプリケーションの間で共用する。
【００８３】
具体的には、例えば、３種類の分散アプリケーション<#1><#2><#3>のテストパターンにおいて、「サーバ<#1>２０ＡにロジックＡを配置する」という点は同一であり、冗長性がある。分散アプリケーション<#1>のベンチマークテストを実施する際に、「サーバ<#1>２０ＡにロジックＡを配置する」場合のベンチマークテスト結果を保存しておく。そして、分散アプリケーション<#2>と分散アプリケーション<#3>のベンチマークテストにおいて「サーバ<#1>２０ＡにロジックＡを配置する」というテストパターンが出現した場合に、前記分散アプリケーション<#1>のベンチマークテスト時に保存しておいたベンチマークテスト結果を再利用する。これにより、分散アプリケーション<#2>と分散アプリケーション<#3>のベンチマークテストでは、全てのロジックのベンチマークテストを行なう必要はなく、他の分散アプリケーションのベンチマークテストで未だ実施したことがないテストパターンのみのベンチマークテストを実施する。
【００８４】
したがって、前記構成の第３実施形態の分散アプリケーションのベンチマークテストシステムによれば、分散アプリケーションの各テストパターンでのベンチマークテストの実行時において、各ロジックの配置先サーバとの組み合わせに対応する動作条件とそのテスト結果である性能指標の値とを保存（例えば、サーバ内ロジック処理時間格納部１６に保存）しておき、他の分散アプリケーションの各テストパターンでのベンチマークテストの実行時に再利用する。これにより、複数種類の分散アプリケーションの中で、良く利用されるロジックや、良く利用される動作条件について、繰り返し何度も同じベンチマークテストを実施する必要がなくなり、短時間で効率的に多様な分散アプリケーションのベンチマークテストを実施できるようになる。
【００８５】
なお、分散アプリケーションの性能は、ロジックの動作条件（ロジックをどのサーバ上に配置して動作させるか等）に強く依存し、ロジック間の接続関係にはほとんど影響を受けない。例えば、図５においてロジックＡに注目すると、３種類の分散アプリケーション<#1><#2><#3>において、ロジックＡとつながっているロジックは異なっている（ロジック間の接続関係が異なる）。しかしながら、３種類の分散アプリケーション<#1><#2><#3>において「サーバ<#1>２０ＡにロジックＡを配置する」という点は等しい。ロジックＡの動作条件は３種類の分散アプリケーション<#1><#2><#3>で等しいため、ロジックＡの性能指標の値（処理遅延等）は当該３種類の分散アプリケーション<#1><#2><#3>でほぼ等しくなる。
【００８６】
したがって、このような分散アプリケーションの性質を利用し、複数の分散アプリケーション間でベンチマークテストの結果を再利用することで、不要なベンチマークテストのテストパターンを削除し、ベンチマークテストに要する時間を更に短縮できる。
【００８７】
なお、前記各実施形態において記載した分散アプリケーションのベンチマークテストシステムによる各処理の手法、すなわち、図１Ａ，図１Ｂの構成に示す第１実施形態のベンチマークテストシステムによるメッセージ仲介装置１０を中心とする複数のテストパターンでのベンチマークテストの自動化処理、図３に示す第２実施形態のベンチマークテストシステムによるテストパターンの間引きによる所要時間短縮処理、図５に示す第３実施形態のベンチマークテストシステムによる複数の分散アプリケーション間でのテスト結果の再利用による所要時間短縮処理等の各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード（ＲＯＭカード、ＲＡＭカード等）、磁気ディスク（フロッピ（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の外部記録装置の媒体に格納して配布することができる。そして、電子機器（メッセージ仲介装置１０）のコンピュータ（制御装置：ＣＰＵ）は、この外部記録装置の媒体に記録されたプログラムを記憶装置に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記各実施形態において説明した分散アプリケーションのベンチマークテスト機能を実現し、前述した手法による同様の処理を実行することができる。
【００８８】
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態としてネットワークＮ上を伝送させることができ、このネットワークＮに接続されたコンピュータ装置から前記プログラムのデータを電子機器に取り込んで記憶装置に記憶させ、前述した分散アプリケーションのベンチマークテスト機能を実現することもできる。
【００８９】
本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【００９０】
１０…メッセージ仲介装置、  １１…制御部、  １２…メッセージ仲介部、
１３…出力部、  １４…データ格納部、  １５…サーバ間通信時間格納部、
１６…サーバ内ロジック処理時間格納部、  １７…遅延時間算出部、
１８…試験結果格納部、  １９…試験条件設定部、
２０Ａ〜２０Ｃ…サーバ<#1>〜<#3>、  ２１Ａ〜２１Ｃ…ロジック管理部<#1>〜<#3>、
２２Ａ〜２２Ｃ…メッセージ送受信部<#1>〜<#3>、
２３Ａ〜２３Ｃ…インタフェース、  ３０Ａ〜３０Ｃ…ネットワーク装置<X><Y><Z>、
Ｎ…広域網(Internet)。
【図１Ａ】
2018136602.tif 000003
【図１Ｂ】
2018136602.tif 000004
【図２Ａ】
2018136602.tif 000005
【図２Ｂ】
2018136602.tif 000006
【図３】
2018136602.tif 000007
【図４】
2018136602.tif 000008
【図５】
2018136602.tif 000009
【図６】
2018136602.tif 000010