(57)【要約】    情報処理装置（１００）は、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行部（１０２）と、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置（１２０）に出力し、当該テスト実行装置（１２０）でのテストの結果を取得するテスト実行制御部（１０４）と、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する補正部（１０６）と、を備える。
2018181293.tif 000002
【特許請求の範囲】
【請求項１】
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置において、
前記テスト実行制御手段は、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理装置。
【請求項４】
請求項２に記載の情報処理装置において、
前記テスト実行制御手段は、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
前記補正手段は、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理装置において、
前記補正手段は、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする、情報処理装置。
【数７】
2018181293.tif 000009
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理装置。
【請求項７】
請求項１から６のいずれか一項に記載の情報処理装置において、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する出力手段をさらに備え、
前記補正手段は、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理装置。
【請求項８】
請求項１から７のいずれか一項に記載の情報処理装置において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理装置。
【請求項９】
請求項８に記載の情報処理装置において、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理装置。
【請求項１０】
請求項２から７のいずれか一項に記載の情報処理装置において、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理装置。
【請求項１１】
請求項１から１０のいずれか一項に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置において、
前記テスト実行制御手段は、
前記補正手段におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記補正手段は、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
【請求項１３】
請求項２から１２のいずれか一項に記載の情報処理装置において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理装置。
【請求項１４】
情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する情報処理装置の情報処理方法。
【請求項１５】
請求項１４に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理方法。
【請求項１６】
請求項１４または１５に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理方法。
【請求項１７】
請求項１５に記載の情報処理方法において、
前記情報処理装置が、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理方法。
【請求項１８】
請求項１４から請求項１７のいずれか一項に記載の情報処理方法において、
前記情報処理装置が、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする、情報処理方法。
【数８】
2018181293.tif 000010
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
【請求項１９】
請求項１４から１８のいずれか一項に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理方法。
【請求項２０】
請求項１４から１９のいずれか一項に記載の情報処理方法において、
前記情報処理装置が、さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力し、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理方法。
【請求項２１】
請求項１４から２０のいずれか一項に記載の情報処理方法において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理方法。
【請求項２２】
請求項２１に記載の情報処理方法において、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理方法。
【請求項２３】
請求項１５から２２のいずれか一項に記載の情報処理方法において、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理方法。
【請求項２４】
請求項１４から２３のいずれか一項に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
【請求項２５】
請求項２４に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を補正する際におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
【請求項２６】
請求項１５から２５のいずれか一項に記載の情報処理方法において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理方法。
【請求項２７】
コンピュータに、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得する手順、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する手順、を実行させるためのプログラム。
【請求項２８】
請求項２７に記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する手順、をコンピュータに実行させるためのプログラム。
【請求項２９】
請求項２７または２８に記載のプログラムにおいて、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する手順、をコンピュータに実行させるためのプログラム。
【請求項３０】
請求項２８に記載のプログラムにおいて、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択する手順、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索する手順、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行する手順、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う手順、をコンピュータに実行させるためのプログラム。
【請求項３１】
請求項２７から３０のいずれか一項に記載のプログラムにおいて、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする手順、をコンピュータに実行させるためのプログラム。
【数９】
2018181293.tif 000011
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
【請求項３２】
請求項２７から３１のいずれか一項に記載のプログラムにおいて、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す手順、をコンピュータに実行させるためのプログラム。
【請求項３３】
請求項２７から３２のいずれか一項に記載のプログラムにおいて、
さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する手順、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う手順、をコンピュータに実行させるためのプログラム。
【請求項３４】
請求項２７から３３のいずれか一項に記載のプログラムにおいて、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含むプログラム。
【請求項３５】
請求項３４に記載のプログラムにおいて、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現されるプログラム。
【請求項３６】
請求項２８から３５のいずれか一項に記載のプログラムにおいて、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示されるプログラム。
【請求項３７】
請求項２７から３６のいずれか一項に記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索する手順、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
【請求項３８】
請求項３７に記載のプログラムにおいて、
前記シミュレーション結果を補正する手順におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなす手順、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記テスト実行装置上で前記他のノードに対応する前記システム構成の前記テストを実行する手順、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
【請求項３９】
請求項２８から３８のいずれか一項に記載のプログラムにおいて、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要件を満たすシステムの構成を高速かつ正確に算出する方法に関する。
【背景技術】
【０００２】
仮想化技術の普及に伴い、システムの構成を柔軟に設計、変更することが可能になっている。さらに、ハードウェアアクセラレータ等の高速化技術も仮想化技術と組み合わせて使われるようになってきている。例えば、ＮＦＶ（Network Function Virtualization）の領域においては、Ｉｎｔｅｌ  ＤＰＤＫ（Data Plane Development Kit）、ＳＲ−ＩＯＶ（Single Root I/O Virtualization）、ＶｘＬＡＮ（Virtual eXtensible Local Area Network）アクセラレータなどの高速化技術が存在する。また、システムのコンフィグレーション（例えば、システムに割当てるリソース量、仮想マシンの数、および、アクセラレーションの使用の有無）を最適化し、ＣＡＰＥＸ（Capital Expenditure：投資コスト）を削減することが求められている。【０００３】
既存技術として、待ち行列やペトリネットなどのシミュレーション技術を用いることで、あるコンフィグレーションのシステム構成の動作や性能を計算することが可能である。また、非特許文献１においては、可能性のあるコンフィグレーション（ＳＲ−ＩＯＶの使用／未使用）の性能テストを実行し、得られた結果から、顧客の要件を満たす最適なコンフィグレーションを算出することを可能にしている。【０００４】
また、特許文献１には、トランザクションベースのパフォーマンスモデルの自動的な妥当性検査および較正を行う方法が記載されている。特許文献１に記載の方法は、複数の装置を含むインフラストラクチャのモデルを生成し、生成されたモデルを用いてシミュレーションを実行し、シミュレーションからパフォーマンスデータを識別し、シミュレーションされたパフォーマンスデータと、インフラストラクチャを監視する管理アプリケーションによって提供される測定されたパフォーマンスデータとの比較に少なくとも部分的に基づいて、誤差を計算し、誤差が閾値以内である場合にモデルを妥当であるとすることを含む。【０００５】
特許文献２には、複数種類の業務が稼働しているシステムの運用管理システムが記載されている。特許文献２に記載の運用管理システムは、システムのアクセスログを収集して業務パターンを抽出し、システム構成からハードウェア構成情報を抽出し、抽出した業務パターンおよびハードウェア構成情報から性能予測シミュレーションによって応答時間とスループットおよび各構成のリソース消費量を算出し、算出した応答時間とスループットから要求性能を満足していることを判定し、予測性能が要求性能を満足しない場合は、判定ポリシにより構成変更の対象を特定し、性能予測シミュレーションにより再計算を繰り返し、要求性能を満足する最適な構成を提案構成として出力装置に提示する。【０００６】
特許文献３には、システム構成の見積り時に精度の高い性能評価を行い、性能要件および価格要件を満たす構成を提案する方法が記載されている。特許文献３に記載の方法は、あるシステム構成における応答時間を性能シミュレータによるシミュレーションの実行によって算出し、当該システム構成のハードウェアおよびソフトウェアの合計価格を算出し、算出された結果をグラフに表示し、要件を満たす構成を提案対象の構成として処理することを含む。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−０４８７０３号公報
【特許文献２】特開２００５−０９９９７３号公報
【特許文献３】特開２００２−１８３４１６号公報
【非特許文献】
【０００８】
【非特許文献１】Vincenzo Riccobene（ビンセンゾ・リコビーン）、外４名、“Automated generation of VNF deployment rules using infrastructure affinity characterization（インフラストラクチャ・アフィニティ・キャラクタリゼイションを用いたＶＮＦ開発ルールの自動生成）”、［online］、２０１６年６月、Conference Paper: IEEE NetSoft 2016、［平成28年9月27日検索］、インターネット〈URL：https://www.researchgate.net/profile/George_Xilouris/publication/303903530_Automated_Generation_of_VNF_Deployment_Rules_Using_Infrastructure_Affinity_Characterization/links/575c0c3008aed88462130354.pdf?origin=publication_detail〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献に記載された技術のように、シミュレーション結果に基づく性能評価は、高速な算出が可能であるが、テストに基づく手法に比べ、精度が低くなるという問題点があった。また、非特許文献１に記載の技術においては、全ての可能性のあるコンフィグレーションのテストが必要であり、テストに膨大な時間がかかるという問題点があった。【００１０】
本発明の目的は、最適なシステム構成を高速かつ高精度に算出することにある。
【課題を解決するための手段】
【００１１】
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。【００１２】
第一の側面は、情報処理装置に関する。
第一の側面に係る情報処理装置は、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、を有する。【００１３】
第二の側面は、少なくとも１つのコンピュータにより実行される情報処理方法に関する。
第二の側面に係る情報処理方法は、
情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する、ことを含む。【００１４】
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも１つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、情報処理装置上で、その情報処理方法を実施させるコンピュータプログラムコードを含む。【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。【００１６】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。【００１７】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。【００１８】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１９】
上記各側面によれば、最適なシステム構成を高速かつ高精度に算出する情報処理装置、情報処理方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００２０】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００２１】
【図１】本発明の実施の形態に係る情報処理装置の論理的な構成を示す機能ブロック図である。
【図２】本実施形態の情報処理装置を実現するコンピュータの構成の一例を示す図である。
【図３】本実施形態の処理対象とするシステムの機能コンポーネントの例とこれらの接続関係を示す。
【図４】本実施形態の処理対象となる複数のシステム構成の構成例を示す図である。
【図５】本実施形態の情報処理装置の動作の一例を示すフローチャートである。
【図６】本実施形態の処理対象のシステム構成の一例を示す機能ブロック図である。
【図７】本実施形態の処理対象のシステム構成の各リソースのコストの例を示す図である。
【図８】本実施形態の処理対象のシステムの要件の例を示す。
【図９】本実施形態の情報処理装置のシミュレーション実行部によるシミュレーション結果の例を示す。
【図１０】本実施形態の情報処理システムの処理対象の各システム構成のコストを示す図である。
【図１１】本実施形態において、初回のテスト結果の一例を示す図である。
【図１２】本実施形態のシステム構成グラフの一例を示す図である。
【図１３】本実施形態の情報処理システムの動作の一例を示すフローチャートである。
【図１４】本実施形態の情報処理システム１の補正処理の詳細手順の一例を示すフローチャートである。
【図１５】本実施形態において、補正処理により補正されたシミュレーション結果に基づき構築されたシステム構成グラフを示す図である。図１５（ａ）が、初回の補正処理後、図１５（ｂ）が２回目の補正処理後、図１５（ｃ）が３回目の補正処理後のシステム構成グラフを示す。
【図１６】本実施形態において、テスト実行後のテスト結果と、補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグについて、補正前の状態を示す図である。
【図１７】本実施形態において、端点ノード探索後のフラグの状態を説明するための図である。
【図１８】本実施形態において、初回の補正処理により算出された補正値を示す図である。
【図１９】本実施形態において、初回の補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグの状態を説明するための図である。
【図２０】本実施形態において、２回目の補正処理により算出された補正値を示す図である。
【図２１】本実施形態において、２回目の補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグの状態を説明するための図である。
【図２２】本実施形態において、２回目の補正処理後のシミュレーション結果とテスト結果の差を示す図である。
【図２３】本実施形態の情報処理システムの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２３】
図１は、本発明の実施の形態に係る情報処理装置１００の構成を論理的に示す機能ブロック図である。
なお、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
情報処理装置１００は、シミュレーション実行部１０２と、テスト実行制御部１０４と、補正部１０６と、を備える。
【００２４】
シミュレーション実行部１０２は、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する。
テスト実行制御部１０４は、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置１２０に出力し、当該テスト実行装置１２０での動作テストのテスト結果を取得する。
補正部１０６は、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する。
【００２５】
本明細書において、「取得」とは、自装置が他の装置や記憶媒体に格納されているデータまたは情報を取りに行くこと（能動的な取得）、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読み出すこと等、および、自装置に他の装置から出力されるデータまたは情報を入力すること（受動的な取得）、たとえば、配信（または、送信、プッシュ通知等）されるデータまたは情報を受信すること等、の少なくともいずれか一方を含む。また、受信したデータまたは情報の中から選択して取得すること、または、配信されたデータまたは情報を選択して受信することも含む。
【００２６】
テスト実行装置１２０は、テスト対象の実機または実機と同じシステム構成を有するサーバ装置とすることができる。テスト実行装置１２０は、情報処理装置１００からのテスト実行指示としてシステム構成を示すデータを受信して、データを受信したシステム構成のシステムやソフトウェアが要件通りに動作するかを、実機を用いて調べる。具体的には、テスト実行装置１２０は、テスト実行制御部１０４から指定されたシステム構成のコンフィグレーション（システムで利用する仮想マシン数や割り当てるリソース数）に従って仮想マシンやリソースを設定して、実機上に対象のシステムを実現するソフトウェア（プログラムおよびデータ）をデプロイし、動作させてテストを行い、実機の各種性能を計測してテスト結果として出力する。あるいは、異なるスペックを有する実機が混在する環境下では、テスト実行装置１２０は、テスト実行制御部１０４から指定されたシステム構成に従い、コンフィグレーションの設定に加え、実機自体を切り替えて動作テストを行う。
【００２７】
本実施形態において、シミュレーション結果やテスト結果は、システム構成毎にスループットやレイテンシ等の性能指標を示す情報で取得されるが、これに限定されない。
【００２８】
本発明において、テスト対象のシステムは、複数の種別の機能コンポーネントからなり、機能コンポーネント毎にコンフィグレーションが存在する。例えば、ＷＥＢサーバ、アプリケーションサーバ、データベースサーバの３つの機能コンポーネントからなるＷＥＢ３層モデルの場合、機能コンポーネントごとに仮想マシン（ＶＭ：Virtual Machine）の数をいくつにするか、割り当てるリソースをどの程度にするか、などのコンフィグレーションが存在し、それぞれ個別に設定できる。
【００２９】
本明細書において、システム構成は、システムを構成する機能コンポーネント毎に、仮想マシンの数、および仮想マシンに割当てるリソース量の少なくともいずれか一つを含むコンフィグレーションを示すデータで定義されるものとする。システム構成の具体例については後述する。
【００３０】
また、情報処理装置１００は、記憶装置１１０にアクセス可能に接続される。記憶装置１１０は、たとえば、ハードディスク、ＳＳＤ（Solid State Drive）、またはメモリカードなどであり、情報処理装置１００に含まれてもよいし、外部装置であってもよい。
記憶装置１１０は、シミュレーション実行部１０２によるシミュレーション結果を格納するシミュレーションデータベース１１２と、テスト実行装置１２０によるテスト結果を格納するテストデータベース１１４と、を含む。
【００３１】
情報処理装置１００は、テスト実行装置１２０と接続される。各装置間は、有線および無線の少なくともいずれか一方で接続することができる。接続手段も特に限定されるものではなく、様々な形態が考えられる。
【００３２】
図２は、本実施形態の情報処理装置１００を実現するコンピュータ８０の構成の一例を示す図である。なお、テスト実行装置１２０も同様なコンピュータ８０によって構成される。後述する本発明の他の実施形態の各装置も同様にコンピュータ８０によって構成される。
【００３３】
本実施形態のコンピュータ８０は、少なくとも１つのＣＰＵ（Central Processing Unit）８２、メモリ８４、メモリ８４にロードされた図１の構成要素を実現するプログラム９０、そのプログラム９０を格納するストレージ８５、Ｉ／Ｏ（Input/Output）８６、およびネットワーク接続用インタフェース（通信Ｉ／Ｆ８７）を備える。
【００３４】
ＣＰＵ８２、メモリ８４、ストレージ８５、Ｉ／Ｏ８６、通信Ｉ／Ｆ８７は、バス８９を介して互いに接続される。ただし、ＣＰＵ８２などを互いに接続する方法は、バス接続に限定されない。
【００３５】
メモリ８４は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などのメモリである。ストレージ８５は、ハードディスク、ＳＳＤ（Solid State Drive）、またはメモリカードなどの記憶装置である。また、ストレージ８５は、ＲＡＭやＲＯＭなどのメモリであってもよい。
【００３６】
Ｉ／Ｏ８６は、コンピュータ８０と他の入出力装置間のデータおよび制御信号の入出力制御を行う。他の入出力装置とは、たとえば、コンピュータ８０に接続されるキーボード、タッチパネル、マウス、およびマイクロフォン等の入力装置（不図示）と、ディスプレイ、プリンタ、およびスピーカ等の出力装置（不図示）と、これらの入出力装置とコンピュータ８０のインタフェースとを含む。さらに、Ｉ／Ｏ８６は、他の記録媒体の読み取りまたは書き込み装置（不図示）とのデータの入出力制御を行ってもよい。
【００３７】
通信Ｉ／Ｆ８７は、コンピュータ８０と外部の装置との通信を行うためのネットワーク接続用インタフェースである。通信Ｉ／Ｆ８７は、有線回線と接続するためのネットワークインタフェースでもよいし、無線回線と接続するためのネットワークインタフェースでもよい。例えば、情報処理装置１００を実現するコンピュータ８０は、通信Ｉ／Ｆ８７を介してテスト実行装置１２０を実現するコンピュータと接続される。
【００３８】
ＣＰＵ８２がプログラム９０を読み出して実行することにより情報処理装置１００全体が制御される。
図１の本実施形態の情報処理装置１００の各構成要素は、図２のコンピュータ８０のハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各実施形態の情報処理装置を示す機能ブロック図は、ハードウェア単位の構成ではなく、論理的な機能単位のブロックを示している。
【００３９】
図１の情報処理装置１００の各構成要素について、以下詳細に説明する。
シミュレーション実行部１０２は、システム構成毎に定義されたシミュレーションモデルを用いて、システム全体の挙動をシミュレートする。
【００４０】
シミュレーションモデルは、例えば、待ち行列モデルなどを用いることで、システム全体の性能をシミュレーションすることができる。しかし、本発明では、シミュレーションの方法に関しては限定しない。シミュレーション実行部１０２は、実行したシミュレーションの結果をシステム構成毎にシミュレーションデータベース１１２へ格納する。
【００４１】
コンフィグレーションは、機能コンポーネント毎に、割り当てるリソース（ＣＰＵ（Central Processing Unit）、メモリ、ディスク（ハードディスクやＳＤＤ等のストレージ））、仮想マシンの数、およびアクセラレータの利用有無等の少なくともいずれか一つを示す情報を含む。
【００４２】
図３に、本実施形態の情報処理装置１００の処理対象とするシステムの機能コンポーネントの例とこれらの接続関係を示す。本実施形態における処理対象のシステム１０は、３種類のネットワーク機能（ファイアウォール１２（図中、Firewallと示す）、ＮＡＴ（Network Address Translation）１４、ルータ１６（図中、Routerと示す））を有し、それぞれ仮想マシン上に実装されるものとする。
【００４３】
また、説明を簡単にするため、同一機能コンポーネントに割当てるリソース量は同じとし、各機能コンポーネントの前段に１つのロードバランサ（不図示）を配備するものとする。
【００４４】
図４は、本実施形態の処理対象となる複数のシステム構成の構成例を示す図である。
本図では、コンフィグレーションは、システム構成毎に、識別情報（ＩＤ：Identifier）と、各機能コンポーネントの仮想マシンの数（図中、「ＶＭ」と示す）と、各機能コンポーネントに割り当てられるリソース数（図中、「Ｒｅｓ」と示す）とを示しているが、これに限定されない。本図では、説明の簡略化のため省略してあり、他の構成（例えば、アクセラレータの利用有無等）を定義することもできる。
【００４５】
本実施形態では、機能コンポーネントに割当てるリソースはＳ（Small）、Ｍ（Medium）、Ｌ（Large）の３種類とし、仮想マシンの最大数は機能コンポーネント毎に４ＶＭとする。
図４の例では、ＩＤ１のシステム構成は、全ての機能コンポーネントのＶＭの数が１かつ割当てられるリソースもＳである。
【００４６】
また、図４には、説明の簡略化のため、６種類のシステム構成のみを示している。例えば、３つの機能コンポーネントと３つのロードハランサを含むシステムの場合、コンフィグレーションの取り得る数の組合せは、ロードバランサのコンフィグレーションの取り得る数は３（リソース数）で、それ以外は４（仮想マシン数）×３（リソース数）＝１２となり、その掛け合わせで計算され、４６６５６種類となる。
【００４７】
テスト実行制御部１０４は、選択されたシステム構成を示すデータをテスト実行装置１２０に出力し、当該システム構成を実現するソフトウェア（プログラムおよびデータ）をテスト実行装置１２０にデプロイし、動作テストを実行させ、テスト実行装置１２０からテスト結果を取得してテストデータベース１１４に格納する。
【００４８】
本実施形態では、テスト対象となるシステム構成の選択方法を限定しない。後述する実施形態でテスト対象のシステム構成の選択方法について詳細に説明する。
【００４９】
補正部１０６は、テスト実行済みの２つのシステム構成のテスト結果とシミュレーション結果を用いて、補正対象のテスト未実施の少なくとも一つのシステム構成のシミュレーション結果を補正する。
【００５０】
本実施形態では、補正処理の詳細および、補正対象となるシステム構成の選択方法を限定しない。後述する実施形態で補正処理の詳細および、補正対象となるシステム構成の選択方法について詳細に説明する。
【００５１】
図２のコンピュータ８０のＣＰＵ８２が、ストレージ８５に記憶されるプログラム９０をメモリ８４に読み出して実行することにより、図１の情報処理装置１００の各ユニットの各機能を実現することができる。
【００５２】
本実施形態のコンピュータプログラムは、情報処理装置１００を実現させるためのコンピュータ８０に、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置での動作のテストの結果を取得する手順、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する手順、を実行させるように記述されている。
【００５３】
本実施形態のコンピュータプログラム９０は、コンピュータ８０で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム９０は、記録媒体からコンピュータ８０のメモリ８４にロードされてもよいし、ネットワークを通じてコンピュータ８０にダウンロードされ、メモリ８４にロードされてもよい。
【００５４】
コンピュータプログラム９０を記録する記録媒体は、非一時的な有形のコンピュータ８０が使用可能な媒体を含み、その媒体に、コンピュータ８０が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム９０が、コンピュータ８０上で実行されたとき、コンピュータ８０に、情報処理装置１００を実現する以下の情報処理方法を実行させる。
【００５５】
このように構成された本実施形態の情報処理装置１００の情報処理方法について、以下説明する。
図５は、本実施形態の情報処理装置１００の動作の一例を示すフローチャートである。
本発明の実施の形態に係る情報処理方法は、情報処理装置１００の情報処理方法であり、情報処理装置１００を実現するコンピュータ８０により実行される情報処理方法である。
本実施形態の情報処理方法は、情報処理装置１００が、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し（ステップＳ１０１）、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し（ステップＳ１０３）、当該テスト実行装置での動作のテストの結果を取得し（ステップＳ１０５）、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する（ステップＳ１０７）、ことを含む。
【００５６】
本実施形態の情報処理装置１００において、シミュレーション実行部１０２が、考えられうるコンフィグレーションの組み合わせの全てのシステム構成についてシミュレーションを実行する。シミュレーションは実機テストに比較して容易に高速に行うことが可能である。しかし、シミュレーションの結果は実機テストに比較して精度が低い。
【００５７】
そこで、本実施形態では、補正部１０６が、シミュレーション結果を、テスト実行済みのシステム構成のシミュレーション結果とテスト結果の差を用いて補正する。
このとき、テスト実行制御部１０４は、複数のシステム構成のうち全てのシステム構成についてテストを実行するのではなく、選択された一部のシステム構成についてのみテストを実行すればよい。
【００５８】
以上説明したように、本実施形態によれば、多数のコンフィグレーションの組み合わせが考えられるシステム構成のうち一部についてのみテストを実行するのでテストにかかる時間を短縮でき、負荷を低減できるとともに、シミュレーション結果に比較して精度が高いテスト結果を反映して補正されたシミュレーション結果を用いてシステム構成を評価できる。そのため、本実施形態によれば、高速かつ高精度に最適なシステム構成を算出することができるという効果を奏する。
【００５９】
（第１の実施の形態）
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図６は、本実施形態の情報処理システム１のシステム構成の一例を示す機能ブロック図である。
本実施形態の情報処理システム１では、補正処理を行う際、各システム構成（ノード）のコンフィグレーションに基づき構築されるシステム構成グラフを用いて、最適システム構成候補を選択し、候補のテスト結果に基づいて、候補と構成上の関連のあるノードについて補正処理を行う構成を有する点で、上記実施形態と相違する。
本実施形態の情報処理システム１は、図１の情報処理装置１００を実現する管理ノード２００と、図１のテスト実行装置１２０を実現するサーバ装置２２０と、を備える。
【００６０】
管理ノード２００は、図１の情報処理装置１００と同様なシミュレーション実行部１０２と、テスト実行制御部１０４と、補正部１０６と、シミュレーションデータベース１１２と、テストデータベース１１４と、を有する。
【００６１】
テスト実行制御部１０４は、性能値がシステムの要件を満たすシステム構成を特定し、特定されたシステム構成のコストに基づいて、コストが最小となるシステム構成を最適なシステム構成の候補として選択する。
そして、サーバ装置２２０上で選択された最適システム構成候補の動作テストを実行する。
【００６２】
そして、補正部１０６が、最適システム構成候補のテスト結果とシステム構成グラフを用いて、候補と構成上の関連性のあるノードを探索し、それらのノードに候補のテスト結果を用いて補正処理を行うことで、シミュレーション結果の精度を向上させる。この構成により、複数のシステム構成のうち、コストが最小となり、かつ要件を満たす性能を有する最適なシステム構成を高精度に高速に算出することができることとなる。
【００６３】
ここで、システム構成のコストとは、例えば、リソース量で示すことができる。
図７は、各リソースのコストの例を示す図である。
例えば、図４のＩＤ１のシステム構成は、６つのＶＭからなり、全てのＶＭのリソースがＳであるため、ＩＤ１のシステム構成のコストは１×６となる。
【００６４】
図８は、本実施形態の処理対象のシステムの要件の例を示す。スループットが２５０Ｍｂｐｓで、Ｅｎｄ−ｔｏ−Ｅｎｄ（ファイアウォール１２からルータ１６まで）のレイテンシが１００ｍｓである。本実施形態の情報処理システム１の目的は、この要件を満たすシステム構成を算出することである。
【００６５】
情報処理装置１００は、最適システム構成候補のテスト結果とシミュレーション結果の性能値の差が所定値未満の場合、そのシステム構成を最適システム構成として出力する出力部２０２をさらに有する。また、補正部１０６は、シミュレーション結果とテスト結果の性能値の差が所定値以上の場合、選択されたシステム構成について補正処理を行う。
【００６６】
ここで、所定値は、例えば、１０％とする。
本実施形態では、具体的には、各機能コンポーネントのコンフィグレーション、仮想マシンの数、および、仮想マシンに割当てるリソース量を求め、最適システム構成の情報として出力する。
【００６７】
最適システム構成の情報の出力方法は、特に限定されず、表示装置に表示してもよいし、プリンタ等に印字出力してもよいし、データファイルとして出力し、記憶装置１１０に記憶してもよい。
【００６８】
つまり、本実施形態では、最適システム構成候補のシステム構成のシミュレーション結果の精度が良ければ（シミュレーション結果とテスト結果の差が所定値未満の場合）、そのまま候補を最適システム構成として出力する。一方、最適システム構成候補のシステム構成のシミュレーション結果の精度が悪いと想定される場合（シミュレーション結果とテスト結果の差が所定値以上の場合）、最適システム構成候補と構成上の関連性のある少なくとも一つの他のシステム構成についてもシミュレーション結果の補正処理を行うことでシミュレーション結果の精度を上げることができる。その結果、候補以外のシステム構成も含む複数のシステム構成の中から最適システム構成となりうるものを、信頼性の高いシミュレーション結果を用いて見つけることができることとなる。
【００６９】
図９は、シミュレーション実行部１０２によるシミュレーション結果の例を示す。ここでは、図４の６つのシステム構成のシミュレーション結果を示している。例えば、ＩＤ１のシステム構成は、全ての機能コンポーネントのＶＭの数が１かつ割当てられるリソースもＳである場合を示し、シミュレーション結果が１００Ｍｂｐｓのスループット、レイテンシが１３０ｍｓであることを示している。本実施形態のシミュレーション実行部１０２により実行されるシステム構成のシミュレーションの最大数は４６６５６であるが、説明簡易化のため、ここでは、この６つのシステム構成が処理対象となる全てのシステム構成と仮定する。
【００７０】
ここで、図９のシミュレーション結果において、要件を満たすシステム構成は、ＩＤ４、ＩＤ５、ＩＤ６の３つである。
また、図４の各システム構成のコストは図１０に示される。要件を満たす３つのシステム構成の中でコストが最小であるシステム構成は、ＩＤ４である。
【００７１】
テスト実行制御部１０４は、このＩＤ４のシステム構成を最適システム構成候補として選択する。なお、この例では、コスト最小のシステム構成は一つであるが、実際には複数の最適システム構成候補が選択される。そして、テスト実行制御部１０４は、選択した少なくとも一つの最適システム構成候補をサーバ装置２２０上にデプロイし、動作テストを実施する。そして、テスト実行制御部１０４は、ＩＤ４のテスト結果をテストデータベース１１４に記憶する。
【００７２】
このテストの結果を図１１に示す。ここでは、ＩＤ４のシミュレーション結果がスループット２５０Ｍｂｐｓ、およびレイテンシ９０ｍｓに対して、テスト結果がスループット２００Ｍｂｐｓ、およびレイテンシ１２０ｍｓとなり、誤差はそれぞれ２５％および２５％となり、シミュレーション結果Ｓとテスト結果Ｔ（実際の値）が大きく乖離していることがわかる。ここで、誤差は、以下の式（１）により算出される。
誤差（％）＝|Ｓ−Ｔ|／Ｔ×１００        ・・・式（１）
【００７３】
このように、シミュレーション結果とテスト結果（実際の値）の誤差は、他のシステム構成にも存在すると考えられ、本実施形態では、他のシステム構成についてはテストを実行せずに、補正部１０６が、このテスト実行済みのシステム構成のテスト結果を用いて他のシステム構成のシミュレーション結果の補正処理を行う。このとき、補正部１０６は、テスト結果を反映させる他のシステム構成を、システム構成グラフを用いて選択する。このように、あるシステム構成のテスト結果を、テストを実行していない他のシステム構成のシミュレーション結果に反映させることで、効率的に補正を行うことが可能となる。システム構成グラフは、後述するように、システム構成のコンフィグレーションが１制御単位だけ異なるノードが隣接する。システム構成グラフを用いると、あるノードのシステム構成とコンフィグレーションが１制御単位だけ異なる、つまり、構成や性能が似ている、または、ノード間の距離が所定、つまり、構成や性能が所定の距離離れている、システム構成の他のノードを選択することができる。
【００７４】
以下、システム構成グラフについて説明する。
図１２は、図９のシミュレーション結果から構築したシステム構成グラフの一例を示す。
図中、円で示されるノードは、１つのシステム構成を指し、円内の番号が図９の各システム構成のＩＤを示している。
【００７５】
システム構成グラフは、有向グラフである。グラフ上では、隣接するノードは、システム構成のコンフィグレーションのいずれか１つのみ異なる。例えば、ＩＤ１のノードとＩＤ２のノードは、あるコンフィグレーション（図９の例では、ＮＡＴのコンフィグレーション）のＶＭ数が１つだけ異なるだけで、それ以外のコンフィグレーションは同一となる。
【００７６】
ここで、ある２つのシステム構成間で、コンフィグレーションが１つ異なるとは、システム構成の機能コンポーネントのいずれかのコンフィグレーションの１つが制御単位だけ異なることを指す。制御単位は、例えば、仮想マシンの数やＣＰＵ数であれば１であり、メモリやディスク等はシステムが動作する基盤によって異なる場合もあり、本発明では限定しない。２つのシステム構成のシミュレーション結果を比較し、結果が高い方が子ノードとなり、この結果の差を有向エッジの重み（距離）として定義する。
【００７７】
シミュレーション結果は、例えば、スループットの値などであり、この場合、２つのシステム構成のシミュレーション結果のスループットの差が有向エッジの重みとなる。しかしながら、結果の高低の定義は、本発明では限定せず、また、有向エッジの重みの付け方も他の方法を用いてもよい。
【００７８】
また、図１２の例では、２つの性能指標を用いてシステム構成グラフを構築しているが、これに限定されず、少なくとも一つの性能指標を用いて構築してもよい。複数の性能指標がある場合（ここでは、スループットとレイテンシ）、２つの隣接するノードのエッジの向きが同一にならない場合があるが、その場合、性能指標毎にシステム構成グラフを定義すればよい。この例では、全ての同一になるため、１つのグラフで表現しているものとする。
【００７９】
補正部１０６は、ノードＡのシミュレーション結果とテスト結果の差とノードＢのシミュレーション結果とテスト結果の差、つまり、２つのノードのシミュレーション誤差をノードＡとノードＢの間のテスト未実施の中間ノードのシミュレーション結果に反映する。その際、ノードＡからノードＢへのパスに含まれる有向エッジの重みを補正値計算に考慮する。
【００８０】
以下、補正処理について説明する。
例えば、ノードＡとノードＢの間にノードＣがあり、ノードＡ、Ｂ、Ｃのシミュレーション値がそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とする。エッジＡＣ（ノードＡからＣへの有向エッジ）の重みはＷＡＣ＝ＳＣ−ＳＡ、エッジＣＢの重みはＷＢＣ＝ＳＢ−ＳＣとなる。ノードＡ、Ｂのテスト結果をＴＡ、ＴＢとすると、補正部１０６は、ノードＣのシミュレーション結果ＳＣをノードＡ、Ｂの結果と重み情報を用いて補正し、補正後のシミュレーション結果ＳＣ’とする。エッジの重みに対して線形に誤差を按分する場合、補正式は、下式のようになる。
【数１】
2018181293.tif 000003
【００８１】
補正部１０６は、さらに、補正されたノードに対し、そのノードを起点として、再度前述の補正アルゴリズムを実行する。具体的には、補正部１０６は、補正されたシステム構成をテスト済みのシステム構成とみなし、補正されたシミュレーション結果を用いて、補正処理を繰り返す。ここでは、補正されたノードをノードＡとすると、上記式（２）において、起点ノードＡのシミュレーション結果ＳＡに補正前のシミュレーション結果を用い、テスト結果ＴＡに補正されたシミュレーション結果ＳＡ’を用いる。
【００８２】
例えば、前述のノードＣに対して、ノードＤとノードＥがエッジＥＤとエッジＤＣで接続されている場合で、ノードＥがテスト実行済みの場合、ノードＤのシミュレーション結果を補正することが可能となる。これは、補正されたノードＣをテストが実行されたノードとみなすことで、補正処理をより広範囲に伝播させることができるようになる。
【００８３】
このように、探索処理において、システム構成グラフ上で、一のシステム構成に対応するノードを起点とした有向パスにおいて、テストが実行済みのシステム構成に対応する他のノードを探索する。そして、見つかった他のノードと、起点のノードを両端とする有向パスが、２つのノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う。
【００８４】
また、探索処理において、過去にテスト実行されたノードが存在せず、システム構成グラフ上の根または葉のノードに到達した場合、そのノードをテスト実行済みノードとして選択することができる。この場合、上記式（２）において、根または葉のノードのテスト結果として、当該ノードのシミュレーション結果の値を用いる。また、根または葉のノードに対応するシステム構成についてテスト実行装置１２０上でテストを実行してもよい。
【００８５】
この一連の補正処理完了後、補正部１０６は、再度、補正後のシミュレーション結果を元に、システムの要件を満たす最適システム構成候補を探索する。テスト実行制御部１０４は、選ばれた最適システム構成候補に対して、テストを実行し、補正部１０６が、候補と構成上の関連性のあるシステム構成について、再度前述の補正処理を繰り返す。
【００８６】
そして、候補と構成上の関連性のあるシステム構成について補正処理を行った後、補正後のシミュレーション結果を用いて、システムの要件を満たし、かつ、最小コストとなるシステム構成を最適システム構成候補として選択する。そして、選択されたシステム構成がテスト未実行であればテストを実行し、テスト結果と（補正後の）シミュレーション結果の誤差が所定値未満、つまり、シミュレーション結果の精度がよく、信頼性が高い場合に、その候補を最適システム構成として出力する。
【００８７】
このようにして、本実施形態では、システムの要件を満たすシステム構成を効率的かつ高精度に算出することが可能となる。
【００８８】
このように構成された本実施形態の情報処理システム１の動作を以下説明する。
図１３は、本実施形態の情報処理システム１の動作の一例を示すフローチャートである。
【００８９】
まず、シミュレーション実行部１０２が、システム構成の取り得る全てのコンフィグレーションに対してシミュレーションを実行する。シミュレーション結果は、シミュレーションデータベース１１２に格納される（ステップＳ２０１）。
次に、補正部１０６は、シミュレーションデータベース１１２に格納されたシミュレーション結果に基づいて、システム構成グラフを構築する（ステップＳ２０３）。
【００９０】
次に、補正部１０６は、システムの要件を満たす最適システム構成候補を算出する。この算出方法は既存の技術を用い、例えば、シミュレーションデータベース１１２に格納されたシミュレーション結果を性能の高い順にソートし、要件を満たす中で（ステップＳ２０５のＹＥＳ）必要なリソース量が最も小さくなるシステム構成を選ぶという方法がある（ステップＳ２０７）。なお、要件を満たすシステム構成がなかった場合（ステップＳ２０５のＮＯ）、出力部２０２は、要件を満たすシステム構成がなかったことを示す情報を出力し（ステップＳ２０９）、本処理を終了する。
【００９１】
テスト実行制御部１０４は、選ばれた最適システム構成候補がテスト実行済みか否かを判定する（ステップＳ２１１）。テスト済みの場合（ステップＳ２１１のＹＥＳ）、出力部２０２は、選択された候補を最適システム構成として出力し（ステップＳ２１３）、本処理を終了する。
【００９２】
ステップＳ２１１の判定に必要な、過去にそのノードがテストを実行したかを示す情報は、テストデータベース１１４にノードに対応付けて格納されているものとするが、テストデータベース１１４以外であってもよく、メモリ８４またはストレージ８５の他の記憶領域でもよい。あるいは、テストデータベース１１４にそのノードのテスト結果が格納されているか否かで過去にテストが実行されているか否かを判定してもよい。
【００９３】
ステップＳ２１１で、候補がテスト済みか否かを判定する理由は、テスト済みでない場合は、テスト結果よりも信頼性の低いシミュレーション結果または補正されたシミュレーション結果に基づいて候補として選択されていることを意味するため、選択された最適システム構成の信頼性も低くなってしまう恐れがあるからである。
【００９４】
テスト未実施の場合（ステップＳ２１１のＮＯ）、テスト実行制御部１０４は、選択されたシステム構成を示すデータをサーバ装置２２０に出力して、選択されたシステム構成を実現するソフトウェアをサーバ装置２２０にデプロイし、動作テストを実行する（ステップＳ２１５）。テスト結果はテストデータベース１１４に格納される。
【００９５】
このテスト結果の性能値と、シミュレーション結果の性能値との差が所定値以下の場合（ステップＳ２１７のＹＥＳ）、出力部２０２が、この構成を最適システム構成として出力し（ステップＳ２１３）、本処理を終了する。
【００９６】
シミュレーション結果とテスト結果の性能値の差が所定値以上の場合（ステップＳ２１７のＮＯ）、補正部１０６が、最適システム構成候補を起点として、その候補と構成上の関連性のある他のシステム構成についてシミュレーション結果の補正処理を行う（ステップＳ２１９）。補正処理後、シミュレーションデータベース１１２を更新し、ステップＳ２０３に戻る。
【００９７】
ステップＳ２１９の補正処理の際、ステップＳ２０３で構築されたシステム構成グラフを用いる。まず、ステップＳ２１５で今テストを実行したノードＡを起点に、他の過去にテストを実行したノードを探索する。
【００９８】
探索処理では、ノードＡから同じ向きのパス中に他のノードを探索していき、過去にテストを実行したノードＢを見つけた場合、ノードＢより先のノードは探索しないものとする。つまり、ノードＡと探索されたノードＢのパス中には、他の過去にテストが実行されたノードは含まれず、エッジの向きも全て同じとなる。なお、例えば、ノードＡからノードＢへのパスＡＢとは異なるノードＡからノードＣへの別のパスＡＣは、互いに向きは異なっていてもよい。
【００９９】
また、言い換えると、ノードＡと探索されたノードＢのパス中のＡとＢ以外のノードはテスト実行されたことがなく、シミュレーション結果のみ（もしくは補正されたシミュレーション結果のみ）存在することになる。
【０１００】
補正部１０６は、このようにして探索されたノードについて補正処理を行い、最適システム構成候補と構成上の関連性のある他のノードについてもシミュレーション結果を補正して精度を上げることができる。そして、ステップＳ２０５に戻り、補正部１０６は、更新されたシミュレーションデータベース１１２の中から要件を満たすシステム構成を見つけ（ステップＳ２０５のＹＥＳ）、その中でコストが最小となるノードを最適システム構成候補として選択する（ステップＳ２０７）。
【０１０１】
そして、テスト実行制御部１０４は、選ばれた最適システム構成候補がテスト実行済みか否かを判定する（ステップＳ２１１）。テスト済みの場合（ステップＳ２１１のＹＥＳ）、出力部２０２は、選択された候補を最適システム構成として出力し（ステップＳ２１３）、本処理を終了する。
【０１０２】
テスト未実施の場合（ステップＳ２１１のＮＯ）、テスト実行制御部１０４は、選択されたシステム構成を示すデータをサーバ装置２２０に出力して、動作テストを実行し（ステップＳ２１５）、上述した動作を繰り返す。
【０１０３】
以上説明したように、本実施形態の情報処理システム１において、補正部１０６は、システム構成グラフを用いて、テスト未実施の少なくとも一つのシステム構成を補正対象として選択する。
この構成によれば、上記実施形態と同様な効果を奏するとともに、さらに、システム構成グラフを用いて、構成に関連性があり、また、性能が近いシステム構成間で、テスト済みのノードのテスト結果を、テスト未実施のノードのシミュレーション結果に反映させてシミュレーション結果の精度を向上させる。その上で、シミュレーション結果（補正後のシミュレーション結果を含む）を元に最適システム構成の評価を行うことができるので、時間や手間のかかるテストは一部のノードについて実行するだけで、最適システム構成を高精度に効率よく算出することができるという効果を奏する。
【０１０４】
（第２の実施の形態）
本実施形態の情報処理システム１は、上記第１の実施の形態の情報処理システム１の補正処理の詳細について説明する。構成は上記実施形態と同じであり、上記実施形態の図面も用いて説明する。
【０１０５】
図１４は、本実施形態の情報処理システム１の図１３のフローチャートのステップＳ２１９の補正処理の詳細手順の一例を示すフローチャートである。
まず、補正部１０６は、図１３のステップＳ２１７で、テスト結果とシミュレーション結果の差が所定値以上と判定された少なくとも一つの最適システム構成候補を起点ノード集合に追加し、補正候補パス集合を空にする（ステップＳ３０１）。
【０１０６】
次に、補正部１０６は、システム構成グラフ中の根ノード（親ノードの存在しないノード）および葉ノード（子ノードの存在しないノード）をテスト実行済みノードとしてマーク（フラグをセット）する（ステップＳ３０３）。ここでテスト実行済みノードとしてマークされたノードは、実際にはテスト未実施である。
【０１０７】
なお、ステップＳ３０３で設定するテスト実行済みのマーク（例えば、フラグ）は、ノードのＩＤ毎に設けられ、テストデータベース１１４、シミュレーションデータベース１１２またはメモリ８４またはストレージ８５等の所定の記憶領域（不図示）に格納することができる。
【０１０８】
さらに、補正部１０６は、起点ノード集合の各ノードに対し、そのノードを起点としてテスト実行済みノードを１つのみ含むパスを探索し、補正候補パス集合に追加する（ステップＳ３０５）。
【０１０９】
ステップＳ３０５の探索処理における「テスト実行済みノード」とは、補正処理の過程で、テスト実行済みとしてマークされた（フラグがセットされた）（実際にはテスト未実行で、補正済み）ノードと、実際に実機（サーバ装置２２０）上でテストが実行されたノードの両方を含む。補正候補パスのうち、補正処理されていない中間ノードが存在するパスが存在しない場合（ステップＳ３０７のＮＯ）、補正部１０６は、テスト実行済みとしてマークしたノードのマークをクリア（フラグをリセット）し、補正処理を完了させ（ステップＳ３０９）、図１３のステップＳ２０３に戻る。
【０１１０】
このとき、少なくとも一つの最適システム候補と構成上の関連性のある他のノードについて、補正処理が終わったことを意味する。複数の最適システム構成候補が存在する場合は、どれか１つを選択し同様な処理を繰り返す、または、全ての最適システム構成候補について同様な処理を繰り返すものとする。
【０１１１】
補正処理されていない中間ノードが存在する場合（ステップＳ３０７のＹＥＳ）、補正部１０６は、複数存在する場合はその全ての中間ノードのシミュレーション結果をパスの両端のノード情報（テスト結果およびシミュレーション結果）を用いて、補正する（ステップＳ３１１）。そして、補正部１０６は、補正後のシミュレーション結果をシミュレーションデータベース１１２に記憶するとともに、補正された中間ノード（補正済みノード）をテスト実行済みノードとしてマークする（ステップＳ３１３）。そして、補正部１０６は、補正された中間ノード（補正済みノード）を起点ノード集合に追加し、ステップＳ３０５に移行する（ステップＳ３１５）。
【０１１２】
ステップＳ３１５で起点ノード集合に追加された補正済みノードは、後述する第２ステップで、起点ノードとして採用されて、その候補と構成上の関連性のある他のノードの補正処理を行うこととなる。
【０１１３】
ステップＳ３０７で、補正候補パスのうち、補正処理されていない中間ノードが存在している間は、ステップＳ３１１〜ステップＳ３１５、およびステップＳ３０５の処理を繰り返す。そして、補正候補パスのうち全ての中間ノードの補正処理が終了した時（ステップＳ３０７のＮＯ）、補正部１０６は、テスト実行済みとしてマークしたノードのマークをクリア（フラグをリセット）し、本処理を終了し、図１３のステップＳ２０３に戻る。
【０１１４】
また、テスト実行済みのマーク（フラグ）は、図１４のフローを抜ける際に、ステップＳ３０９で全てクリアされる。よって、図１３のステップＳ２１１におけるテスト実行済みか否かの判定は、このフラグを用いて行うのではなく、上述したように、実際にテストか実行されたか否かを示す情報に基づいて行われる。
【０１１５】
本実施形態において、補正処理は、次の２つの段階（ステップ）がある。すなわち、実際にテストを実行したシステム構成（最適システム構成候補）を起点として補正対象のシステム構成を選択して補正処理を行う第１ステップと、第１システムで補正されたシステム構成（補正済みノード）をテスト実行済みとみなし、当該システム構成を起点として補正対象のシステム構成を選択して補正処理を行う第２ステップとを含む。
【０１１６】
これにより、シミュレーション結果から選択される、要件を満たし、かつ、コストが最小となる、各最適システム構成候補について、その候補と構成上の関連性のある他のシステム構成について、補正処理を伝播させていくことができる。これにより、一部のノードについてのみテストを実行すれば、テストを実行していない候補と構成上の関連性のある他の複数のノードについてもシミュレーション結果と実際の値との誤差を小さくすることができる。つまり、最適システム構成候補と構成上の関連性のあるノードのシミュレーション結果の精度を上げた上で、最適システム構成を算出することができるので、最適システム構成候補の信頼性を向上させることができる。
【０１１７】
以下、本実施形態の情報処理システム１の動作を具体的な数値例を用いて説明する。
上記実施形態で説明したように、図１３のフローチャートに従い、最適システム構成候補としてＩＤ４が選択され、ＩＤ４のシステム構成のテスト結果がテストデータベース１１４に格納されているものとする。
【０１１８】
図１６は、各ノードのシミュレーション結果の補正前の値と補正後の値と、テスト結果の値と、テスト実行済みのマーク（フラグ）について、ＩＤ４のテスト実行後の状態を示している。ＩＤ４のシステム構成のテスト結果は、スループットは２００Ｍｂｐｓで、レイテンシが１２０ｍｓである。なお、シミュレーション結果の補正前の値と補正後の値は、両方をシミュレーションデータベース１１２に記憶してもよいし、補正前の値を補正後の値で上書きして更新する構成としてもよい。また、ここでは、テスト結果とフラグはテストデータベース１１４に格納されているものとする。
【０１１９】
この結果を元に再構築されたシステム構成グラフは、図１５（ａ）のようになる。このとき、テスト実行済みのＩＤ４のシステム構成のシミュレーション結果には、テスト結果の値を用いるものとする。
【０１２０】
まず、第１ステップとして、実際にテストが実行されたＩＤ４のシステム構成が最適システム構成候補として起点ノード集合に追加され、補正候補パス集合が空にされる（ステップＳ３０１）。
【０１２１】
次に、補正部１０６は、図１５（ａ）のシステム構成グラフを用いて、根ノード（親ノードの存在しないノード）および葉ノード（子ノードの存在しないノード）を探索し、この例では、ＩＤ１とＩＤ６のノードを実行済みノードとしてマーク（フラグをセット）する（ステップＳ３０３）。
【０１２２】
そして、補正部１０６は、起点ノード集合に含まれる各ノードについて（ここでは、ＩＤ４のノード）、各ノードを起点として、他の過去にテストを実行したノードを探索する。探索する際は、有向エッジの同一方向のみ探索対象とする。
【０１２３】
なお、本図の例では、ステップＳ３０３で、先に根または葉のノードをテスト実行済みノードとしてマークする構成としているが、他の例では、各ノードを起点とした探索処理において、テスト実行済みノードが見つからず、根または葉のノードに到達した場合に、そのノードを終点ノードとして選択し、テスト実行済みノードとしてマークしてもよい。
【０１２４】
この時点の探索処理においては、ＩＤ４のみが起点ノードであり、２つのパスＩＤ４→ＩＤ５→ＩＤ６と、ＩＤ４→ＩＤ１と、２つの終点ノードＩＤ６とＩＤ１が抽出される。そして、補正部１０６は、この２つのパスを補正候補パス集合に追加する（ステップＳ３０５）。このときのフラグの状態は図１７のようになる。
【０１２５】
補正候補パスのうち、未補正の中間ノードが存在するパスが存在する場合（ステップＳ３０７のＹＥＳ）、以下の式を用いて全ての中間ノードＣのシミュレーション結果を補正する（ステップＳ３１１）。
【数２】
2018181293.tif 000004
【０１２６】
ここで、Ａ、Ｂはそれぞれ、パスの両端を指すノードであり、ここでは、ＩＤ４→ＩＤ５→ＩＤ６のパスが抽出され、起点ノードＡはＩＤ４、終点ノードＢはＩＤ６、中間ノードＣはＩＤ５を指す。
ＳＸは、ノードＸのシミュレーション結果を指し、ＳＴは、スループットのシミュレーション結果、ＳＬは、レイテンシのシミュレーション値を指す。ＴＸは、ノードＸのテスト結果（すなわち、実測値）を指し、ＴＴは、スループットの実測値、ＴＬは、レイテンシの実測値を指す。
【０１２７】
また、ＷＸＹは、ノードＸからノードＹへの有向エッジのシミュレーション結果の補正に用いる重みを指し、ＷＴは、スループットのシミュレーション結果の補正に用いる重み、ＷＬは、レイテンシのシミュレーション結果の補正に用いる重みを指す。
また、スループットおよびレイテンシのシミュレーション結果の補正に用いる重みは、それぞれ以下の式（５）および式（６）により定義される。
【０１２８】
【数３】
2018181293.tif 000005
【０１２９】
ＩＤ５の補正結果を図１８（ａ）（スループット）および図１８（ｂ）（レイテンシ）に示す。ＩＤ５のノードの補正後のシミュレーション結果は、スループットが２６７Ｍｂｐｓ、レイテンシが９５ｍｓとなる。この補正後のシミュレーション結果を元に構築されたシステム構成グラフは、図１５（ｂ）のようになる。
【０１３０】
次に、第２ステップとして、第１ステップで補正処理されたノード（ＩＤ５）をテスト実行済みノードとみなし（テスト実行済みとマーク（フラグをセット））（ステップＳ３１３）、起点ノード集合に追加し（ステップＳ３１５）、ステップＳ３０３に戻る。ＩＤ５の補正後の各システム構成の各値の状態を図１９に示す。そして、補正されたノード（ＩＤ５）を起点に第１ステップと同様の補正処理を実行する。
【０１３１】
まず、補正部１０６は、ＩＤ５を起点ノードとして、他の過去にテストが実行されたノードまたは根または葉のノード（テスト実行済みとマークされたノード）を探索する。探索されたパスは、ＩＤ５→ＩＤ６、ＩＤ５→ＩＤ４、ＩＤ５→ＩＤ３→ＩＤ１の３つとなる。このパスの中で、第１ステップの検索パスの部分パスになっているＩＤ５→ＩＤ６、ＩＤ５→ＩＤ４は対象外とする。よって、ＩＤ５→ＩＤ３→ＩＤ１のパスを補正候補パス集合に追加する（ステップＳ３０５）。
【０１３２】
中間ノード（テスト未実施）が存在するパス（ＩＤ５→ＩＤ３→ＩＤ１）が存在するので（ステップＳ３０７のＹＥＳ）、補正部１０６は、ＩＤ５→ＩＤ３→ＩＤ１のパス内の中間ノードであるＩＤ３の補正処理を行う（ステップＳ３１１）。計算方法は、第１ステップと同様であり、その結果を図２０に示す。ＩＤ３の補正後のシミュレーション値は、スループットが１８４Ｍｂｐｓであり、レイテンシが１１６ｍｓである。この補正後のシミュレーション結果を元に構築されたシステム構成グラフは、図１５（ｃ）のようになる。
【０１３３】
補正されたＩＤ３のノードのシミュレーション値でシミュレーションデータベース１１２を更新し、補正されたＩＤ３のノードをテスト実行済みノードとみなし（テスト実行済みとマーク（フラグをセット））（ステップＳ３１３）、起点ノード集合に追加し（ステップＳ３１５）ステップＳ３０３に戻る。ＩＤ３の補正後の各システム構成の各値の状態を図２１に示す。
【０１３４】
ステップＳ３０３の戻り、第２ステップで補正されたＩＤ３のノードを起点として再度補正処理を実行する。まず、補正候補パスの探索処理において、ＩＤ３→ＩＤ１、ＩＤ３→ＩＤ５のパスが見つかるが（ステップＳ３０５）、中間ノードが存在しないため（ステップＳ３０７のＮＯ）、補正処理はここで完了する。このとき、テスト実行済みとしてマークしていたノードのマークを全てクリア（フラグをリセット）する（ステップＳ３０９）。
【０１３５】
このようにして、最適システム構成候補と構成上の関連性のあるシステム構成について補正処理が終了した後、図１３のステップＳ２０３に戻り、補正後のシミュレーション結果（テスト実行済みノードはテスト結果）を用いてシステム構成グラフを再構築する。
【０１３６】
そして、補正部１０６は、シミュレーション結果（補正されたシミュレーション結果を含む）に基づき、要件を満たすシステム構成を（ステップＳ２０５のＹＥＳ）最適システム構成候補として選択する（ステップＳ２０７）。
【０１３７】
ここでは、初回に候補として選択されていたＩＤ４のシステム構成は、図２１に示すように、テスト結果から性能値が要件を満たさなくなったため、ＩＤ５のノードが候補として選択される。ここで、ＩＤ５のシステム構成は、テスト未実施であるので（ステップＳ２１１のＮＯ）、テスト実行制御部１０４は、ＩＤ５のシステム構成のテストをサーバ装置２２０に実行させ、テストデータベース１１４にテスト結果を格納する（ステップＳ２１５）。
【０１３８】
このテスト結果を図２２に示す。実測されたスループットおよびレイテンシの値がシミュレーション結果（補正後）の値と比較し１０％以下の誤差であるため（ステップＳ２１７のＹＥＳ）、出力部２０２は、この最適システム構成候補のＩＤ５を最適システム構成として出力し（ステップＳ２１３）、本処理を終了する。
【０１３９】
ここで、ＩＤ５のノードのシミュレーション結果とテスト結果の差が所定値未満にならなかった場合は（ステップＳ２１７のＮＯ）、ＩＤ５のシステム構成を起点ノードに追加して、再度補正処理（図１４）を繰り返すこととなる。つまり、最適システム構成の候補で、要件を満たし、かつ、シミュレーション結果（または補正後のシミュレーション結果）とテスト結果の差が所定値のノードが見つかるまで、補正処理を繰り返す。
【０１４０】
また、上記の例では、図１３の初回のステップＳ２０７で、１つのノード（ＩＤ４）のみが最適システム構成候補として選択されているが、他の例において、複数の最適システム構成候補が選択された場合、各候補について、図１４の補正処理をそれぞれ行い、全ての候補と構成上の関連性のあるノードについて補正処理が終了した後、図１３のステップＳ２０３に戻る。
【０１４１】
このように、最適システム構成候補として選択された少なくとも一つのノードを起点ノードとして、候補のテスト結果に基づき、その候補と構成上の関連性のある他のノードについて補正処理を行うことで、シミュレーション結果の精度を上げることができる。補正後のノードをテスト集合済みとしてさらにそのノードと構成上の関連性のある他のノードについても補正処理を行い、テスト結果を伝播させることができる。
【０１４２】
そして、最適システム構成候補と構成上の関連性のあるノードの補正処理が終わった後に、最適システム構成候補を再度算出し直すので、信頼性の高い結果を得ることが可能になる。また、候補として選ばれたシステム構成については、テストを実行し、テスト結果とシミュレーション結果（補正後のシミュレーション結果も含む）の誤差が所定値未満になった場合に最適システム構成として出力するので、より信頼性の高い最適システム構成の算出が可能になる。
【０１４３】
以上説明したように、本実施形態の情報処理システム１によれば、上記実施形態と同様な効果を奏する。
【０１４４】
（第３の実施の形態）
本実施形態は、上記実施形態の構成と同様の構成を有し、上記実施形態の図面も用いて説明する。
上記実施形態では、システムが満たすべき要件を入力として、要件を満たす最適なシステム構成が導出されるまで、テスト実行とシミュレーション値の補正を繰り返す処理となっているが、本実施形態では、要件は存在せず、補正される度合いに基づいて、次にテストを実行するシステム構成を決定する。つまり、補正される度合いが大きいシステム構成を選択し、その周辺のシステム構成についても補正処理を実行することで、シミュレーション結果の精度を上げることを目的とする。
【０１４５】
ここで、補正される度合いが大きいシステム構成とは、テスト結果とシミュレーション結果の差が大きいものを指す。本実施形態では、ランダムに複数のシステム構成を選択してテストを実行し、その中でテスト結果とシミュレーション結果の差が最大のものを選択して、その周辺のシステム構成について補正処理を行う。
【０１４６】
本実施形態では、システムの性能値が起点ノードから所定の距離にあるノードを「周辺」のノード（システム構成）と呼ぶ。あるノードＹが起点ノードＣから所定の距離にあるとは、下限距離ρと上限距離σを用いて、以下の条件を満たすときである。
|ＳＹ−ＳＣ|≧ρ  かつ  |ＳＹ−ＳＣ|≦σ
【０１４７】
つまり、テストを実行したノードのすぐ近くは補正により正しい値に近くなっているという推測のもとに、一定距離れたノード（比較的近傍のノード）のテストを実行する。つまり、システム構成グラフ上の一定距離ごとにテストを実行する。さらに効率的にするために、テスト実行したノードのシミュレーション結果との誤差が小さい場合は、一定距離離れたノードのシミュレーション結果は正しいものとして、一定距離離れたノードのテストは実行しない。
【０１４８】
本実施形態において、補正部１０６は、複数のシステム構成のコンフィグレーションを元に構築された、各のシステム構成間の性能値の距離を示すシステム構成グラフを用いて、補正対象のテスト未実施の少なくとも一つのシステム構成を選択して補正する。
【０１４９】
システム構成グラフにおいて、ある２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能（有向パス）である場合に定義され、当該２つのシステム構成のシミュレーション結果の性能値の差で示される。
【０１５０】
本実施形態において、テスト実行制御部１０４は、システム構成グラフにおいて、シミュレーション結果とテスト結果の差が閾値以上であり、かつ、差が最大のシステム構成を選択し、選択されたシステム構成に対応するノードを起点として、システム構成間の性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索する。そして、テスト実行制御部１０４は、起点のノードと、探索された各ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索されたノードについて、テスト実行装置１２０上で動作テストを実行する。
そして、補正部１０６は、各ノードについて、各ノードのシミュレーション結果とテスト結果の差が閾値未満になるまで、補正処理を繰り返し行う。
【０１５１】
図２３は、本実施形態の情報処理システム１の動作の一例を示すフローチャートである。
まず、上記実施形態と同様に、シミュレーション実行部１０２は、全てのシステム構成のシミュレーションを実行し、シミュレーションデータベース１１２に結果を格納する（ステップＳ２０１）。そして、シミュレーション実行部１０２は、システム構成グラフを構築する（ステップＳ２０３）。
【０１５２】
次に、テスト実行制御部１０４は、ランダムに選択された複数のシステム構成のテストをサーバ装置２２０上で実行し、その結果をテストデータベース１１４に格納する（ステップＳ４０１）。ただし、テスト対象となる複数のシステム構成の選択の仕方はランダム選択手法に限定されない。
【０１５３】
そして、補正部１０６は、そして、ステップＳ４０１でテストされたノードと、起点ノードの間のパスに存在する全ての中間ノードについて、上記実施形態と同様に式（３）および式（４）を用いてシミュレーション結果を補正する（ステップＳ４０２）。補正後のシミュレーション結果は、シミュレーションデータベース１１２に格納される。
【０１５４】
そして、補正部１０６は、テストが実行されたシステム構成のうち、シミュレーション結果とテスト結果の差が所定値以上あり（ステップＳ４０３のＹＥＳ）、かつ、差が最も大きいシステム構成を選択する（ステップＳ４０５）。これにより、誤差が大きいシステム構成の周辺の一定の距離にあるノードについて優先的にシミュレーション結果の補正を行うことができることとなる。
【０１５５】
次に、補正部１０６は、システム構成グラフ上で、選択されたシステム構成を起点に、距離が所定範囲内にあるノードを探索する（ステップＳ４０７）。つまり、起点ノードと同じような性能値を有するノードが少なくとも一つ選択される。探索されたテスト実行済みのノードは（ステップＳ４０９のＹＥＳ）、ステップＳ４０３に戻る。また、起点ノードから距離が所定範囲内に、テスト実行済みのノードが無い場合（ステップＳ４０９のＮＯ）、テスト実行制御部１０４は、起点から距離が所定範囲内にある少なくとも一つのノードについて、サーバ装置２２０上で動作テストを実行する（ステップＳ４１１）。テスト結果はテストデータベース１１４に格納される。
【０１５６】
そして、ステップＳ４０２に戻り、上記の処理をシミュレーション結果とテスト結果の値の差が所定値以上のものが無くなるまで繰り返す。シミュレーション結果とテスト結果の値の差が所定値以上のノードがなくなった時（ステップＳ４０３のＮＯ）、本処理を終了する。
【０１５７】
以上の処理により、全てのテスト実行済みノードについて、シミュレーション結果（または補正後のシミュレーション結果）とテスト結果の差が所定値未満となり、少なくともテスト実行済みノードと性能値の近いノードについて、シミュレーション結果の精度を上げることができる。
【０１５８】
以上説明したように、本実施形態によれば、要件が未定の場合でも、シミュレーションとテストを組み合わせて、システム構成グラフの精度を向上させることができ、ひいては高精度なシミュレーション補正値を高速に算出することが可能となる。
【０１５９】
本発明は、システムの要件から必要なシステム構成を算出するサイジングツールおよびオーケストレータにも適用できる。
【０１６０】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【０１６１】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
【０１６２】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
１．  異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、
を備える情報処理装置。
２．  １．に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理装置。
３．  １．または２．に記載の情報処理装置において、
前記テスト実行制御手段は、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理装置。
４．  ２．に記載の情報処理装置において、
前記テスト実行制御手段は、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
前記補正手段は、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理装置。
５．  １．から４．のいずれか一つに記載の情報処理装置において、
前記補正手段は、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする、情報処理装置。
【数４】
2018181293.tif 000006
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
６．  １．から５．のいずれか一つに記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理装置。
７．  １．から６．のいずれか一つに記載の情報処理装置において、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する出力手段をさらに備え、
前記補正手段は、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理装置。
８．  １．から７．のいずれか一つに記載の情報処理装置において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理装置。
９．  ８．に記載の情報処理装置において、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理装置。
１０．  ２．から９．のいずれか一つに記載の情報処理装置において、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理装置。
１１．  １．から１０．のいずれか一つに記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
１２．  １１．に記載の情報処理装置において、
前記テスト実行制御手段は、
前記補正手段におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記補正手段は、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
１３．  ２．から１２．のいずれか一つに記載の情報処理装置において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理装置。
【０１６３】
１４．  情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する情報処理装置の情報処理方法。
１５．  １４．に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理方法。
１６．  １４．または１５．に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理方法。
１７．  １５．に記載の情報処理方法において、
前記情報処理装置が、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理方法。
１８．  １４．から１７．のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする、情報処理方法。
【数５】
2018181293.tif 000007
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
１９．  １４．から１８．のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理方法。
２０．  １４．から１９．のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力し、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理方法。
２１．  １４．から２０．のいずれか一つに記載の情報処理方法において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理方法。
２２．  ２１．に記載の情報処理方法において、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理方法。
２３．  １５．から２２．のいずれか一つに記載の情報処理方法において、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理方法。
２４．  １４．から２３．のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
２５．  ２４．に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を補正する際におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
２６．  １５．から２５．のいずれか一つに記載の情報処理方法において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理方法。
【０１６４】
２７．  コンピュータに、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得する手順、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する手順、を実行させるためのプログラム。
２８．  ２７．に記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する手順、をコンピュータに実行させるためのプログラム。
２９．  ２７．または２８．に記載のプログラムにおいて、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する手順、をコンピュータに実行させるためのプログラム。
３０．  ２８．に記載のプログラムにおいて、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択する手順、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索する手順、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行する手順、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う手順、をコンピュータに実行させるためのプログラム。
３１．  ２７．から３０．のいずれか一つに記載のプログラムにおいて、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする手順、をコンピュータに実行させるためのプログラム。
【数６】
2018181293.tif 000008
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
３２．  ２７．から３１．のいずれか一つに記載のプログラムにおいて、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す手順、をコンピュータに実行させるためのプログラム。
３３．  ２７．から３２．のいずれか一つに記載のプログラムにおいて、
さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する手順、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う手順、をコンピュータに実行させるためのプログラム。
３４．  ２７．から３３．のいずれか一つに記載のプログラムにおいて、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含むプログラム。
３５．  ３４．に記載のプログラムにおいて、
ある２つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに１制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記２つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現されるプログラム。
３６．  ２８．から３５．のいずれか一つに記載のプログラムにおいて、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示されるプログラム。
３７．  ２７．から３６．のいずれか一つに記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索する手順、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
３８．  ３７．に記載のプログラムにおいて、
前記シミュレーション結果を補正する手順におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなす手順、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記テスト実行装置上で前記他のノードに対応する前記システム構成の前記テストを実行する手順、
前記２つのノードを両端とする前記有向パスが、２つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
３９．  ２８．から３８．のいずれか一つに記載のプログラムにおいて、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築されるプログラム。
【０１６５】
この出願は、２０１７年３月３０日に出願された日本出願特願２０１７−０６７４７１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2018181293.tif 000012
【図２】
2018181293.tif 000013
【図３】
2018181293.tif 000014
【図４】
2018181293.tif 000015
【図５】
2018181293.tif 000016
【図６】
2018181293.tif 000017
【図７】
2018181293.tif 000018
【図８】
2018181293.tif 000019
【図９】
2018181293.tif 000020
【図１０】
2018181293.tif 000021
【図１１】
2018181293.tif 000022
【図１２】
2018181293.tif 000023
【図１３】
2018181293.tif 000024
【図１４】
2018181293.tif 000025
【図１５】
2018181293.tif 000026
【図１６】
2018181293.tif 000027
【図１７】
2018181293.tif 000028
【図１８】
2018181293.tif 000029
【図１９】
2018181293.tif 000030
【図２０】
2018181293.tif 000031
【図２１】
2018181293.tif 000032
【図２２】
2018181293.tif 000033
【図２３】
2018181293.tif 000034
【手続補正書】
【提出日】令和1年9月26日(2019.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置において、
前記テスト実行制御手段は、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理装置。
【請求項４】
請求項２に記載の情報処理装置において、
前記テスト実行制御手段は、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
前記補正手段は、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理装置において、
前記補正手段は、
以下の式（ａ）を用いて、補正対象のシステム構成のシミュレーション結果Ｓｃを補正し、補正後のシミュレーション結果をＳＣ’とする、情報処理装置。
【数１】
2018181293.tif 000035
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する２つのノードＡとノードＢの間のノードＣとし、前記ノードＡ、Ｂ、Ｃのシミュレーション結果をそれぞれＳＡ、ＳＢ、ＳＣ（ＳＡ＜ＳＣ＜ＳＢ）とし、前記ノードＡから前記ノードＣへの有向エッジＡＣの重みをＷＡＣ＝ＳＣ−ＳＡ、前記ノードＣから前記ノードＢへの有向エッジＣＢの重みをＷＣＢ＝ＳＢ−ＳＣとし、前記ノードＡ、Ｂの前記テスト結果をＴＡ、ＴＢとする。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理装置。
【請求項７】
請求項１から６のいずれか一項に記載の情報処理装置において、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する出力手段をさらに備え、
前記補正手段は、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理装置。
【請求項８】
請求項２から７のいずれか一項に記載の情報処理装置において、
前記システム構成グラフにおいて、前記２つのノードの間の距離は、当該２つのノードを結ぶパスが到達可能である場合に定義され、当該２つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理装置。
【請求項９】
情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する情報処理装置の情報処理方法。
【請求項１０】
コンピュータに、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得する手順、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する手順、を実行させるためのプログラム。
【国際調査報告】
2018181293.tif 000036
2018181293.tif 000037