(57)【要約】【課題】障害の影響範囲の特定精度を向上させる。【解決手段】影響範囲特定装置２は、上位影響範囲特定装置１から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得する。次に影響範囲特定装置２は、探索経路情報に基づいて、被検知上位サービスからサービス間の関係を辿ることで到達できる対象サービス層内のサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断する。そして影響範囲特定装置２は、第１の影響範囲内サービスの識別子を、下位影響範囲特定装置３へ送信する。【選択図】図１
2019121863.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
提供するサービスが階層構造となっているクラウドサービス内の対象サービス層で提供されるサービスを利用して上位サービスを提供する上位サービス層内での障害の影響範囲を探索する上位影響範囲特定装置から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得し、
起点サービスから障害の影響範囲内のサービスを探索するための探索経路が示された探索経路情報に基づいて、前記被検知上位サービスを前記起点サービスとした場合の探索経路に従って、前記被検知上位サービスからサービス間の関係を辿ることで到達できる前記対象サービス層内のサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断し、
前記第１の影響範囲内サービスの識別子を、前記対象サービス層内のサービスの提供に利用している下位サービスの提供元である下位サービス層において障害の影響範囲を探索する下位影響範囲特定装置へ送信する、
処理を実行させる影響範囲特定プログラム。
【請求項２】
前記コンピュータに、さらに、
前記対象サービス層内の前記第１の影響範囲内サービスが障害の影響範囲内にあることを画面表示させる表示データを出力する、
処理を実行させる請求項１記載の影響範囲特定プログラム。
【請求項３】
前記コンピュータは、さらに、
前記下位影響範囲特定装置による前記第１の影響範囲内サービスに基づく障害影響範囲の探索で影響範囲内にあると判定された前記下位サービスを利用している、前記対象サービス層内の利用サービスの識別子を、前記下位影響範囲特定装置から取得し、
前記探索経路情報に基づいて、前記利用サービスを前記起点サービスとした場合の探索経路に従って、前記利用サービスからサービス間の関係を辿ることで到達できる前記対象サービス層内のサービスを、異常の影響を受ける可能性のある第２の影響範囲内サービスと判断し、
前記上位サービス層内の前記上位サービスのうち、前記第２の影響範囲内サービスを利用している利用上位サービスの識別子を、前記上位影響範囲特定装置へ送信する、
処理を実行させる請求項１または２に記載の影響範囲特定プログラム。
【請求項４】
前記コンピュータに、さらに、
前記被検知上位サービスが複数ある場合、複数の前記被検知上位サービスそれぞれを前記起点サービスとして前記第１の影響範囲内サービスを判断し、前記第１の影響範囲内サービスについて、前記被検知上位サービスからサービス間の関係を辿ることで到達できると判断された回数に応じた値を、前記第１の影響範囲内サービスの障害の影響度に決定し、
前記対象サービス層内の前記第１の影響範囲内サービスの前記影響度を画面表示させる影響度表示データを出力する、
処理を実行させる請求項１ないし３のいずれかに記載の影響範囲特定プログラム。
【請求項５】
前記コンピュータに、さらに、
前記第１の影響範囲内サービスの利用態様に基づいて、前記第１の影響範囲内サービスが障害の影響を受けた場合の深刻度を算出し、
前記対象サービス層内の前記第１の影響範囲内サービスの前記深刻度を画面表示させる深刻度表示データを出力する、
処理を実行させる請求項１ないし４のいずれかに記載の影響範囲特定プログラム。
【請求項６】
前記深刻度の算出では、前記第１の影響範囲内サービスの利用態様に基づいて算出した値と、前記第１の影響範囲内サービスを利用している前記上位サービス層内の前記上位サービスの利用態様に基づいて算出した値との合計を、前記第１の影響範囲内サービスの前記深刻度とする、
請求項５記載の影響範囲特定プログラム。
【請求項７】
コンピュータが、
提供するサービスが階層構造となっているクラウドサービス内の対象サービス層で提供されるサービスを利用して上位サービスを提供する上位サービス層内での障害の影響範囲を探索する上位影響範囲特定装置から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得し、
起点サービスから障害の影響範囲内のサービスを探索するための探索経路が示された探索経路情報に基づいて、前記被検知上位サービスを前記起点サービスとした場合の探索経路に従って、前記被検知上位サービスからサービス間の関係を辿ることで到達できる前記対象サービス層内のサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断し、
前記第１の影響範囲内サービスの識別子を、前記対象サービス層内のサービスの提供に利用している下位サービスの提供元である下位サービス層において障害の影響範囲を探索する下位影響範囲特定装置へ送信する、
影響範囲特定方法。
【請求項８】
起点サービスから障害の影響範囲内のサービスを探索するための探索経路が示された探索経路情報を記憶する記憶部と、
提供するサービスが階層構造となっているクラウドサービス内の対象サービス層で提供されるサービスを利用して上位サービスを提供する上位サービス層内での障害の影響範囲を探索する上位影響範囲特定装置から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得し、前記探索経路情報に基づいて、前記被検知上位サービスを前記起点サービスとした場合の探索経路に従って、前記被検知上位サービスからサービス間の関係を辿ることで到達できる前記対象サービス層内のサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断し、前記第１の影響範囲内サービスの識別子を、前記対象サービス層内のサービスの提供に利用している下位サービスの提供元である下位サービス層において障害の影響範囲を探索する下位影響範囲特定装置へ送信する処理部と、
を有する影響範囲特定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、影響範囲特定プログラム、影響範囲特定方法、および影響範囲特定装置に関する。
【背景技術】
【０００２】
コンピュータネットワークシステムでは、システム内の一部の機器で障害が発生した場合、その機器に依存している機器も障害の影響を受ける。障害の影響を受ける機器は、例えば通常よりも動作が遅くなったり、アプリケーションプログラムなどを実行できなくなったりする。このような障害の影響は、ネットワークを介して連鎖的に発生する。特に大規模システムにおいては、多くの機器が依存関係にある。そのため、障害の影響は、障害の発生下の機器やその機器に直接接続された機器に留まらず、周囲の様々な機器におよぶ。
【０００３】
ある機器で障害が発生し、他の機器がその障害の影響を受けた場合、利用者が影響を受けたことに気づく場合もあるが、機器によっては障害の影響を受けているにも関わらず、利用者がそのことに気づかない場合もある。障害の影響を受けていることに利用者が気づかない場合、障害の影響を受けた機器があることが、利用者からシステムの運用者に通知されず、運用者による対処も行われない。また、障害発生時には負荷がかかっていない（アプリケーションプログラムなどが実行されていない）ため現在は影響を受けていないが、負荷がかかると影響を受ける可能性が大きい機器もある。
【０００４】
利用者が気づいていない、または負荷がかかっていないため影響を受けていない機器は、今後トラブルの原因になる可能性がある。そのため、これらの影響を受ける可能性のある機器群（影響範囲）を、システムの運用者が認識しておくことは、システムの安定運用のために重要である。
【０００５】
障害の影響範囲を特定する技術としては、例えば、クラウド環境や障害許容性などを考慮した構成の対象システムにおける障害影響範囲などの状況を可視化する技術がある。また、個々の障害に対する影響範囲や個々のサービスの障害に対する原因部分を切り分けて表示可能にした運用管理装置もある。さらに仮想サーバが利用する計算機リソースの関係を漏れなくツリー構造で表現し、物理リソースを共有する仮想リソースの統計情報を自動的に集計する技術もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−３８０２８号公報
【特許文献２】特開２０１５−２２３９６号公報
【特許文献３】特開２０１２−９９０４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
クラウドコンピューティングシステムを用いたサービス（クラウドサービス）では、サービスが多階層の階層構造を有している。例えばＩａａＳ（Infrastructure as a Service）の提供を受けてＰａａＳ（Platform as a Service）が提供され、そのＰａａＳの提供を受けてＳａａＳ（Software as a Service）が提供されることがある。この場合、ＩａａＳ、ＰａａＳ、ＳａａＳそれぞれが、サービスの層となる。このようなクラウドサービスでは、各層で提供されている個々のサービスが、障害の影響範囲内にあるか否かの判断対象となる。
【０００８】
サービスが多階層構造となっている場合、ある層のサービスで発生した障害の影響は、階層を跨がって伝搬する可能性がある。例えばある層のサービスで発生した障害が原因で、他の層のサービスの通信速度が低下する場合がある。したがって、障害の影響範囲を探索する際には、１つの層のサービス内の探索だけでは不十分である。
【０００９】
しかし、従来は、層ごとに障害の影響範囲の探索が行われており、サービスの層を跨がった障害の影響範囲の探索は行われていない。そのため、障害の影響範囲を正確に把握できない。
【００１０】
１つの側面では、本件は、障害の影響範囲の特定精度を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、以下の処理をコンピュータに実行させる影響範囲特定プログラムが提供される。
コンピュータは、提供するサービスが階層構造となっているクラウドサービス内の対象サービス層で提供されるサービスを利用して上位サービスを提供する上位サービス層内での障害の影響範囲を探索する上位影響範囲特定装置から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得する。次にコンピュータは、起点サービスから障害の影響範囲内のサービスを探索するための探索経路が示された探索経路情報に基づいて、被検知上位サービスを起点サービスとした場合の探索経路に従って、被検知上位サービスからサービス間の関係を辿ることで到達できる対象サービス層内のサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断する。そしてコンピュータは、第１の影響範囲内サービスの識別子を、対象サービス層内のサービスの提供に利用している下位サービスの提供元である下位サービス層において障害の影響範囲を探索する下位影響範囲特定装置へ送信する。
【発明の効果】
【００１２】
１態様によれば、障害の影響範囲の特定精度が向上する。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るシステムの一例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】サーバのハードウェアの一構成例を示す図である。
【図４】クラウドサービスの一例を示す図である。
【図５】影響範囲特定装置間での情報の伝達経路を示す図である。
【図６】影響範囲特定装置の機能の一例を示すブロック図である。
【図７】影響範囲探索経路情報記憶部の一例を示す図である。
【図８】探索経路の例を示す図である。
【図９】スタック動作モデルの一例を示す図である。
【図１０】スタック情報管理部の機能の一例を示す図である。
【図１１】自スタックＮｏ．登録処理の手順の一例を示すフローチャートである。
【図１２】自スタックＮｏ．登録処理結果の一例を示す図である。
【図１３】他スタックＮｏ．登録処理の手順の一例を示すフローチャートである。
【図１４】他スタックＮｏ．登録処理結果の一例を示す図である。
【図１５】ダウンフロー処理部の機能の一例を示す図である。
【図１６】ダウンフロー処理の手順の一例を示す図である。
【図１７】障害検知機器と障害影響機器の検知例を示す図である。
【図１８】検知情報取得処理の一例を示す図である。
【図１９】検知情報取得処理の手順の一例を示すフローチャートである。
【図２０】情報収集処理の一例を示す図である。
【図２１】情報収集処理の手順の一例を示すフローチャートである。
【図２２】ダウンフロー処理における影響範囲探索処理の一例を示す図である。
【図２３】検知情報を反映させたスタック動作モデルの例を示す図である。
【図２４】ダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図２５】ダウンフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。
【図２６】ダウンフロー処理における探索結果通知処理の一例を示す図である。
【図２７】下位スタックへの探索結果通知処理の手順の一例を示すフローチャートである。
【図２８】最下層のスタックにおける障害影響範囲の例を示す図である。
【図２９】アップフロー処理部の機能の一例を示す図である。
【図３０】アップフロー処理の手順の一例を示す図である。
【図３１】下位スタック検知情報取得処理の一例を示す図である。
【図３２】下位スタック検知情報取得処理の手順の一例を示すフローチャートである。
【図３３】アップフローにおける影響範囲探索処理の一例を示す図である。
【図３４】下位スタック検知情報を反映させたスタック動作モデルの例を示す図である。
【図３５】アップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図３６】アップフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。
【図３７】アップフロー処理における探索結果通知処理の一例を示す図である。
【図３８】上位スタックへの探索結果通知処理の手順の一例を示すフローチャートである。
【図３９】障害影響範囲表示画面の一例を示す図である。
【図４０】第３の実施の形態のダウンフロー処理における影響範囲探索処理の一例を示す図である。
【図４１】第３の実施の形態のダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図４２】第３の実施の形態のダウンフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。
【図４３】第３の実施の形態のダウンフロー処理における探索結果通知処理の一例を示す図である。
【図４４】第３の実施の形態のアップフローにおける影響範囲探索処理の一例を示す図である。
【図４５】第３の実施の形態の下位スタック検知情報を反映させたスタック動作モデルの例を示す図である。
【図４６】第３の実施の形態のアップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図４７】第３の実施の形態のアップフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。
【図４８】第３の実施の形態のアップフロー処理における探索結果通知処理の一例を示す図である。
【図４９】深刻度を含む情報の受け渡しを示す図である。
【図５０】第４の実施の形態におけるダウンフロー処理部の機能を示す図である。
【図５１】第４の実施の形態におけるスタック動作モデルの一例を示す図である。
【図５２】第４の実施の形態におけるダウンフロー処理の手順の一例を示す図である。
【図５３】第４の実施の形態の検知情報取得処理の一例を示す図である。
【図５４】第４の実施の形態における検知情報を反映させたスタック動作モデルの例を示す図である。
【図５５】第４の実施の形態のダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図５６】スタック動作モデルへの深刻度設定例を示す図である。
【図５７】深刻度算出処理の手順の一例を示すフローチャートである。
【図５８】第４の実施の形態のダウンフロー処理における探索結果通知処理の一例を示す図である。
【図５９】第４の実施の形態のアップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。
【図６０】第４の実施の形態のアップフロー処理における探索結果通知処理の一例を示す図である。
【図６１】障害影響範囲探索ごとのスタック動作モデル生成例を示す図である。
【図６２】影響範囲特定装置を導入していないスタックを含むクラウド環境の例を示す図である。
【図６３】同じ層に別会社が運営する複数のスタックが存在するクラウド環境の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るシステムの一例を示す図である。クラウドコンピューティングシステム１０を用いて提供されるクラウドサービスは、階層構造となっている。図１の例では３階層の構造である。各サービス層は異なる管理者により管理されているものとする。以下の説明では、主に上から２階層目のサービス層の管理者のための、障害発生時の影響範囲特定処理について説明するものとする。そこで上から２階層目のサービス層を基準とし、最上位のサービス層を上位サービス層１１、上から２階層目のサービス層を対象サービス層１２、最下層のサービス層を下位サービス層１３と呼ぶ。
【００１５】
上位サービス層１１は、例えばＳａａＳを提供するサービス層である。上位サービス層１１では、複数の上位サービス１１ａ，１１ｂ，１１ｃが提供されている。上位サービス１１ａ，１１ｃは、対象サービス層１２内のサービス１２ａ，１２ｃを利用して提供されるサービスである。上位サービス１１ｂは、下位サービス層１３内の下位サービス１３ａを利用して提供されるサービスである。上位サービス１１ａ，１１ｂ，１１ｃは、例えばアプリケーションソフトウェアの利用環境を利用者に提供するサービスである。上位サービス１１ａの識別子は「Ａｐｐ＿ａ」、上位サービス１１ｂの識別子は「Ａｐｐ＿ｂ」、上位サービス１１ｃの識別子は「Ａｐｐ＿ｃ」である。
【００１６】
対象サービス層１２は、例えばＰａａＳを提供するサービス層である。対象サービス層１２では、複数のサービス１２ａ，１２ｂ，１２ｃが提供されている。サービス１２ａ，１２ｂ，１２ｃは、下位サービス層１３内の下位サービス１３ａ，１３ｂ，１３ｄを利用して提供されるサービスである。サービス１２ａ，１２ｂ，１２ｃは、例えばアプリケーションサーバやデータベースなどのソフトウェアの利用環境を利用者に提供するサービスである。サービス１２ａの識別子は「サーバＡ」、サービス１２ｂの識別子は「ＤＢ＿Ａ」、サービス１２ｃの識別子は「サーバＢ」である。
【００１７】
下位サービス層１３は、例えばＩａａＳを提供するサービス層である。下位サービス層１３では、複数の下位サービス１３ａ，１３ｂ，１３ｃ，１３ｄが提供されている。下位サービス１３ａ，１３ｂ，１３ｃ，１３ｄは、例えば仮想マシン（ＶＭ：Virtual Machine）やＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を含むストレージなどの利用環境を利用者に提供するサービスである。下位サービス１３ａの識別子は「ＶＭ＿α」、下位サービス１３ｂの識別子は「ＶＭ＿β」、下位サービス１３ｃの識別子は「ＲＡＩＤ」、下位サービス１３ｄの識別子は「ＶＭ＿γ」である。下位サービス１３ｃは、下位サービス１３ｂまたは下位サービス１３ｄを介して提供される。
【００１８】
クラウドコンピューティングシステム１０において障害が発生した場合、各サービス層に対応する影響範囲特定装置によって、障害の影響範囲にあるサービスが特定される。上位サービス層１１内での障害の影響範囲内のサービスの特定は、上位影響範囲特定装置１によって行われる。対象サービス層１２内での障害の影響範囲内のサービスの特定は、影響範囲特定装置２によって行われる。下位サービス層１３内での障害の影響範囲内のサービスの特定は、下位影響範囲特定装置３によって行われる。
【００１９】
上位影響範囲特定装置１、影響範囲特定装置２、および下位影響範囲特定装置３は、例えばプロセッサとメモリとを有するコンピュータによって実現される。例えば影響範囲特定装置２は、記憶部２ａと処理部２ｂとを有する。記憶部２ａは、例えば影響範囲特定装置２が有するメモリ、またはストレージ装置である。処理部２ｂは、例えば影響範囲特定装置２が有するプロセッサ、または演算回路である。
【００２０】
影響範囲特定装置２の記憶部２ａは、起点サービスから障害の影響範囲内のサービスを探索するための探索経路が示された探索経路情報２ａａを記憶する。探索経路情報２ａａは、起点サービスの種別や障害内容に応じた探索経路が示されている。
【００２１】
影響範囲特定装置２の処理部２ｂは、クラウドコンピューティングシステム１０内で障害が発生した場合、探索経路情報２ａａを参照して、対象サービス層１２内における障害の影響範囲にあるサービスを特定する。
【００２２】
なお、対象サービス層１２以外のサービス層で障害が検知された場合、影響範囲特定装置２は、上位影響範囲特定装置１または下位影響範囲特定装置３から取得した情報により、障害の発生を認識する。例えば上位サービス層１１内の上位サービス１１ｂで障害が検知されると、その障害の影響範囲内の上位サービス（被検知上位サービス）が、上位影響範囲特定装置１によって特定される。上位影響範囲特定装置１は、特定した被検知上位サービスの識別子を、影響範囲特定装置２に送信する。影響範囲特定装置２は、被検知上位サービスの識別子を受信することで、クラウドコンピューティングシステム１０内での障害の発生を認識する。そして処理部２ｂにより、障害の影響範囲が探索される。
【００２３】
例えば処理部２ｂは、上位影響範囲特定装置１から、異常の発生または異常の影響を受ける可能性が検知された被検知上位サービスの識別子を取得する。次に処理部２ｂは、探索経路情報２ａａに基づいて、影響範囲を探索する。すなわち処理部２ｂは、被検知上位サービスを起点サービスとした場合の探索経路に従って、被検知上位サービスからサービス間の関係を辿ることで到達できる対象サービス層内のサービスを探索する。処理部２ｂは、探索によって到達できたサービスを、異常の影響を受ける可能性のある第１の影響範囲内サービスと判断する。そして処理部２ｂは、第１の影響範囲内サービスの識別子を、下位影響範囲特定装置３へ送信する。
【００２４】
下位影響範囲特定装置３は、第１の影響範囲内サービスの識別子に基づいて、下位サービス層１３内の下位サービス１３ａ〜１３ｄのうち、障害の影響範囲内となる下位サービスを特定する。そして下位影響範囲特定装置３は、障害影響範囲の探索で影響範囲内にあると判定された下位サービスを利用している、対象サービス層１２内のサービス（利用サービス）の識別子を、影響範囲特定装置２に送信する。
【００２５】
影響範囲特定装置２の処理部２ｂは、下位影響範囲特定装置３から送られた利用サービスの識別子を取得する。次に処理部２ｂは、探索経路情報２ａａに基づいて、障害の影響範囲内のサービスを探索する。例えば処理部２ｂは、利用サービスを起点サービスとした場合の探索経路に従って、利用サービスからサービス間の関係を辿ることで到達できる対象サービス層内のサービスを、異常の影響を受ける可能性のある第２の影響範囲内サービスと判断する。そして処理部２ｂは、上位サービス層１１内の上位サービス１１ａ〜１１ｃのうち、第２の影響範囲内サービスを利用している利用上位サービスの識別子を、上位影響範囲特定装置１へ送信する。
【００２６】
上位影響範囲特定装置１は、利用上位サービスの識別子に基づいて、該当上位サービスが障害の影響を受ける可能性があることを認識する。
このような流れで、上位影響範囲特定装置１、影響範囲特定装置２、および下位影響範囲特定装置３が連携した処理を行うことで、サービス層を跨がった障害の影響の伝搬を考慮した、障害の影響範囲内のサービスを特定することができる。これにより、障害の影響範囲内のサービスの特定精度が向上する。
【００２７】
例えば上位サービス１１ｂにおいて障害が検知されたものとする。この場合、上位影響範囲特定装置１により、上位サービス１１ｂを起点サービスとして、障害の影響範囲内の上位サービスが探索される。図１の例では、上位サービス１１ａが、障害の影響範囲内にあると検知されている。すると上位影響範囲特定装置１は、影響範囲特定装置２に対して、被検知上位サービスの識別子「Ａｐｐ＿ａ，Ａｐｐ＿ｂ」を送信する。
【００２８】
影響範囲特定装置２の処理部２ｂは、被検知上位サービスの識別子「Ａｐｐ＿ａ，Ａｐｐ＿ｂ」を取得する。すると処理部２ｂは、被検知上位サービスそれぞれを起点とした影響範囲の探索を行う。図１の例では、サービス１２ａ，１２ｂが影響範囲内のサービス（第１の影響範囲内サービス）として特定されている。次に処理部２ｂは、第１の影響範囲内サービスの識別子「サーバＡ，ＤＢ＿Ａ」を、下位影響範囲特定装置３に送信する。
【００２９】
下位影響範囲特定装置３は、第１の影響範囲内サービスそれぞれを起点サービスとして、下位サービス層１３内の影響範囲内のサービスを探索する。図１の例では、下位サービス１３ａ〜１３ｄが影響範囲内にあると特定されている。すると下位影響範囲特定装置３は、特定した下位サービス１３ａ〜１３ｄを利用している対象サービス層１２内のサービス（利用サービス）の識別子「サーバＡ，ＤＢ＿Ａ，サーバＢ」を影響範囲特定装置２に送信する。
【００３０】
影響範囲特定装置２の処理部２ｂは、利用サービスの識別子「サーバＡ，ＤＢ＿Ａ，サーバＢ」を取得すると、利用サービスそれぞれを起点サービスとして、障害の影響範囲を探索する。図１の例では、サービス１２ａ〜１２ｃが障害の影響範囲のサービス（第２の影響範囲内サービス）であると判断されている。そして処理部２ｂは、第２の影響範囲内サービスを利用している上位サービス層１１内の上位サービス（利用上位サービス）の識別子「Ａｐｐ＿ａ，Ａｐｐ＿ｃ」を、上位影響範囲特定装置１に送信する。
【００３１】
このようにして、例えば対象サービス層１２の管理者は、影響範囲特定装置２による影響範囲の探索結果を確認することで、上位サービス層１１において検知された障害の対象サービス層１２への影響を正確に把握することができる。
【００３２】
なお、影響範囲特定装置２は、管理者が使用する端末装置に、障害の影響範囲の探索結果を表示させることができる。例えば影響範囲特定装置２の処理部２ｂは、対象サービス層１２内において障害の影響範囲内にあると特定されたサービス（第１または第２の影響範囲内サービス）を示す表示データを、管理者が使用する端末装置に出力する。これにより、管理者による影響範囲の探索結果の確認が容易となる。
【００３３】
なお影響範囲特定装置２の処理部２ｂは、被検知上位サービスが複数ある場合、複数の被検知上位サービスそれぞれを起点サービスとして第１の影響範囲内サービスを判断する。そして処理部２ｂは、第１の影響範囲内サービスについて、被検知上位サービスからサービス間の関係を辿ることで到達できると判断された回数に応じた値を、第１の影響範囲内サービスの障害の影響度として決定する。影響度を決定した場合、処理部２ｂは、対象サービス層１２内の第１または第２の影響範囲内サービスそれぞれ影響度を画面表示させる影響度表示データを、管理者が使用する端末装置に出力する。これにより、障害の影響を受ける複数のサービスについて、影響を受ける可能性の違いを比較することができ、管理者は、影響を受ける可能性が高いサービスについて、優先的に障害への対処を施すことができる。その結果、障害の影響の波及を効率的に抑止できる。
【００３４】
さらに影響範囲特定装置２の処理部２ｂは、第１または第２の影響範囲内サービスの利用態様に基づいて、第１または第２の影響範囲内サービスが障害の影響を受けた場合の深刻度を算出してもよい。この場合、処理部２ｂは、対象サービス層１２内の第１または第２の影響範囲内サービスの深刻度を画面表示させる深刻度表示データを、管理者が使用する端末装置に出力する。これにより、障害の影響を受ける複数のサービスについて、影響を受けた場合の深刻度の違いを比較することができ、管理者は、影響を受けた場合の深刻度が高いサービスについて、優先的に障害への対処を施すことができる。その結果、障害の影響によるサービス品質の低下が、サービスの利用者の業務に深刻な影響を与えることを抑止することができる。
【００３５】
なお、処理部２ｂは、深刻度を算出する際には、例えば第１または第２の影響範囲内サービスを利用している上位サービス層１１内の上位サービスの利用態様を、深刻度に反映させてもよい。例えば処理部２ｂは、第１または第２の影響範囲内サービスの利用態様に基づいて算出した値と、第１の影響範囲内サービスを利用している上位サービス層内の上位サービスの利用態様に基づいて算出した値とを合計する。そして処理部２ｂは、第１または第２の影響範囲内サービスそれぞれについて合計した値を、第１または第２の影響範囲内サービスそれぞれの深刻度とする。これにより、他の管理者によって管理されているサービス層のサービスの利用状況を考慮した深刻度を算出することができ、より信頼性の高い深刻度を算出することができる。
【００３６】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ＩａａＳ、ＰａａＳ、ＳａａＳが階層構造となって提供されているクラウドサービスにおいて、障害の影響範囲を探索するものである。
【００３７】
図２は、第２の実施の形態のシステム構成例を示す図である。クラウドコンピューティングシステム２０には、複数のサーバ１００，１００ａ，・・・が設けられている。複数のサーバ１００，１００ａ，・・・により、さまざまなクラウドサービスが提供される。クラウドコンピューティングシステム２０には、ネットワークを介して複数の端末装置３１，３２，・・・が接続されている。ユーザは、端末装置３１，３２，・・・を用いて、クラウドコンピューティングシステム２０にアクセスし、クラウドサービスの提供を受ける。
【００３８】
図３は、サーバのハードウェアの一構成例を示す図である。サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３９】
メモリ１０２は、サーバ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４０】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４１】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４２】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００４３】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４４】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４５】
機器接続インタフェース１０７は、サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４６】
ネットワークインタフェース１０８は、クラウドコンピューティングシステム２０内のネットワーク２０ａに接続されている。ネットワークインタフェース１０８は、ネットワーク２０ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４７】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した影響範囲特定装置１〜３も、図３に示したサーバ１００と同様のハードウェアにより実現することができる。
【００４８】
サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またサーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４９】
次に、クラウドサービスの階層構造について説明する。
図４は、クラウドサービスの一例を示す図である。クラウドサービスには、例えばインフラを提供するＩａａＳ、基盤を提供するＰａａＳ、アプリを提供するＳａａＳが、階層構造となっている。以下、クラウドサービスの各階層を、スタック５１〜５３と呼ぶこととする。
【００５０】
ＩａａＳのスタック５１では、ＶＭ５１ａ，５１ｂ，５１ｃの利用環境が提供される。図４の例では、端末装置３１を使用するユーザは、ＶＭ５１ａの上に顧客システム４１を構築し、顧客システム４１を運用している。同様に、端末装置３２を使用するユーザは、ＶＭ５１ｂの上に顧客システム４２を構築し、顧客システム４２を運用している。顧客システム４１，４２には、アプリケーションソフトウェア（以下、単に「アプリ」と呼ぶ）を動作させるプラットフォームと、そのプラットフォーム上のアプリとが含まれる。プラットフォームには、ＯＳ、各種ミドルウェア、データベースなどが含まれる。
【００５１】
ＶＭ５１ｃを使用しているユーザは、ＶＭ５１ｃを用いてＰａａＳのスタック５２におけるサービスを提供している。スタック５２には、プラットフォーム５２ａ，５２ｂが含まれる。端末装置３３を使用するユーザは、プラットフォーム５２ａ上に顧客アプリ４３を導入し、端末装置３３を用いて顧客アプリ４３を利用している。端末装置３４を使用するユーザは、プラットフォーム５２ｂ上に顧客アプリ４４を導入し、端末装置３４を用いて顧客アプリ４４を利用している。
【００５２】
また図４の例では、プラットフォーム５２ｂを用いて、ＳａａＳのスタック５３におけるサービスが提供されている。スタック５３では、サービスとしてアプリ５３ａ，５３ｂの使用環境が提供されている。端末装置３５を使用するユーザは、端末装置３５を用いて、スタック５３で提供されるアプリ５３ａを利用している。端末装置３６を使用するユーザは、端末装置３６を用いて、スタック５３で提供されるアプリ５３ｂを利用している。
【００５３】
このように、複数のスタックが階層的になっているとき、各スタックが別会社によって提供および管理されていることがある。また層の異なるスタックが同じ会社で提供されていても、スタックごとに、その会社内の別部門が提供、管理していることもある。例えば各スタックには、ＶＭによって実現された監視装置６１〜６３が設けられている。各監視装置６１〜６３は、属するスタック内のサービスの動作を監視し、動作に異常があれば、その異常を検知する。
【００５４】
なお監視装置６１〜６３は、提供されるサービスごとに監視する。監視対象のサービスの提供機能は、システム上は、該当機能を有する機器と同様に扱うことができる。そこで、以下の説明では、監視対象となるサービスの単位を「機器」と呼ぶこととする。例えば、ＶＭ５１ａ，５１ｂ，５１ｃ、プラットフォーム５２ａ，５２ｂ、アプリ５３ａ，５３ｂそれぞれを、監視対象の機器とする。
【００５５】
さらに、各スタックには、例えばＶＭによって実現された影響範囲特定装置２００，３００，４００が設けられている。影響範囲特定装置２００，３００，４００それぞれは、属するスタック内の監視装置６１〜６３から、障害が発生した機器の情報を取得する。そして、複数の影響範囲特定装置２００，３００，４００が連携して動作することで、発生した障害の影響を、異なるスタックを跨がって探索する。
【００５６】
ここで、影響範囲特定装置２００，３００，４００による影響範囲探索処理の詳細を説明する前に、影響範囲特定装置２００，３００，４００が連携していなかった場合に発生する問題について説明する。
【００５７】
図４に示すようなＩａａＳ，ＰａａＳ，ＳａａＳといった複数のスタックが階層的に繋がっているクラウド環境において、システムの一部の機器に障害が発生した場合、各スタックを跨いで障害が伝搬する。ところが、各スタックの提供者は、個人情報の保護や営業秘密の保護の観点から、自分が管理するシステムの構成情報や顧客情報（障害発生時に社会的影響が多大となる業種や抱えている顧客数など）を、各スタックの提供者間で教え合うことはできない。各スタックの提供者が知り得る情報としては、自分が管理する機器（物理的機器、仮想的機器やソフトウェア、ネットワーク機器などシステムを構成する機器）を利用している機器（上位側のスタックの機器）のみである。そのため、スタックの管理者は、自分が管理するスタック以外のスタック（上位スタックや下位スタック）の中での機器間の接続関係や、自分が管理するスタック以外のスタック間の接続関係を把握することができない。その結果、個々のスタックの管理者は、システム全体を俯瞰して、障害の伝搬を辿ることができず、障害の影響範囲の分析や障害原因を推定することができない。
【００５８】
そこで第２の実施の形態では、各スタックに影響範囲特定装置２００，３００，４００を設け、影響範囲特定装置２００，３００，４００を連携して動作させることで、スタックを跨がった障害の影響範囲の探索を可能としている。
【００５９】
図５は、影響範囲特定装置間での情報の伝達経路を示す図である。各スタック５１〜５３は、自身の上位側のスタックの情報を知ることはできる。そのため、上位側のスタックと下位側のスタックとの間の機器間の接続情報は、下位側のスタックの影響範囲特定装置が管理する。例えばスタック５３（上位側）内の機器とスタック５２（下位側）内の機器との接続情報は、下位側であるスタック５２の影響範囲特定装置３００が管理する。
【００６０】
障害が発生した場合、影響範囲特定装置２００，３００，４００間で、情報を交換し、障害の影響範囲を探索する。交換される情報は、障害が検知された機器（障害検知機器）の識別子、および障害の影響を受ける可能性がある機器（障害影響機器）の識別子である。例えば上位側のスタック内の影響範囲特定装置は、下位側のスタック内の影響範囲特定装置へ、自分が属するスタック内の障害発生機器および障害影響機器の識別子を伝達する。また下位側のスタックの影響範囲特定装置は、上位側のスタックの影響範囲特定装置へ、自スタック内の障害影響機器に接続された上位側のスタック内の機器の識別子を伝達する。
【００６１】
各スタック５１〜５３内の影響範囲特定装置２００，３００，４００は、取得した情報に基づいて、自スタック内での障害の影響範囲を探索し、探索結果を他のスタックの影響範囲特定装置に伝達する。
【００６２】
例えばスタック５３内の機器で障害が検出された場合、影響範囲特定装置２００が、スタック５３内での障害の影響範囲内の機器（障害影響機器）を探索し、障害検知機器と障害影響機器の識別子を、スタック５２内の影響範囲特定装置３００に通知する。影響範囲特定装置３００は、通知された障害検知機器と障害影響機器に接続されたスタック５２内の機器を起点として、障害の影響範囲を探索し、スタック５２内での障害影響機器を特定する。そして影響範囲特定装置３００は、スタック５２内での障害影響機器の識別子を、下位のスタック５１の影響範囲特定装置４００に通知する。影響範囲特定装置４００は、通知された障害影響機器に接続されたスタック５１内の機器を起点として、障害の影響範囲を探索し、スタック５１内での障害影響機器を特定する。
【００６３】
最下位のスタック５１内の影響範囲特定装置４００は、スタック５１内での障害影響機器に接続された上位側のスタック５２の機器の識別子を、スタック５２の影響範囲特定装置３００に通知する。影響範囲特定装置３００は、通知された機器を起点として、障害の影響範囲を探索し、スタック５２内での障害影響機器を特定する。そして影響範囲特定装置３００は、スタック５２内での障害影響機器に接続された上位のスタック５３の機器の識別子を、上位のスタック５３の影響範囲特定装置２００に通知する。
【００６４】
このように、上位のスタックの影響範囲特定装置から下位のスタックの影響範囲特定装置へ情報が伝達され、最も下位のスタックの影響範囲特定装置まで情報が伝達されると、そのスタックから順番に上位のスタックへと情報が伝達される。以下、上位のスタックの影響範囲特定装置から下位のスタックの影響範囲特定装置への情報伝達をダウンフローと呼び、下位のスタックの影響範囲特定装置から上位のスタックの影響範囲特定装置への情報伝達をアップフローと呼ぶ。
【００６５】
次に、影響範囲特定装置２００，３００，４００の機能について説明する。
図６は、影響範囲特定装置の機能の一例を示すブロック図である。図６には、影響範囲特定装置３００の機能を示しているが、他の影響範囲特定装置２００，４００の機能も影響範囲特定装置３００と同じである。
【００６６】
影響範囲特定装置３００は、影響範囲探索経路情報記憶部３１０、スタック動作モデル記憶部３２０、スタック情報管理部３３０、ダウンフロー処理部３４０、およびアップフロー処理部３５０を有する。
【００６７】
影響範囲探索経路情報記憶部３１０は、起点となる機器からの障害の影響範囲の探索経路を示す障害影響探索経路情報を記憶する。
スタック動作モデル記憶部３２０は、障害発生時における各機器の障害の影響範囲を示すスタック動作モデルを記憶する。スタック情報管理部３３０は、影響範囲特定装置３００が属するスタック５２、および上下のスタック５１，５３の識別番号を管理する。ダウンフロー処理部３４０は、上位側のスタックから下位側のスタックへの情報伝達であるダウンフロー処理を行う。アップフロー処理部３５０は、下位側のスタックから上位側のスタックへの情報伝達であるアップフロー処理を行う。また、ダウンフロー処理部３４０とアップフロー処理部３５０とは、スタック５２内の障害影響機器に関する情報を、管理者が使用する端末装置３０に表示させることができる。
【００６８】
なお、図６に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図６に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００６９】
図７は、影響範囲探索経路情報記憶部の一例を示す図である。影響範囲探索経路情報記憶部３１０には、影響範囲探索経路情報３１１が格納されている。影響範囲探索経路情報３１１には、スタック内での探索経路を示す障害・探索経路対応表３１１ａ、スタックを跨がった探索経路を示す障害・探索経路対応表３１１ｂ、および探索経路情報３１１ｃが含まれる。
【００７０】
障害・探索経路対応表３１１ａには、各スタック内の機器の機能と障害種別との組に対応付けて、探索経路を一意に示す探索経路番号が設定されている。障害種別は、例えばＤｉｓｋ関連障害やＣＰＵ関連障害というように、障害の原因となる資源の種別である。
【００７１】
障害・探索経路対応表３１１ｂには、起点となる機器が属するスタックと、そのスタックの上位または下位のスタックとの組ごとに、機器の機能と障害種別との組に対応付けて、探索経路を一意に示す探索経路番号が設定されている。
【００７２】
探索経路情報３１１ｃには、探索経路番号ごとに、その探索経路番号に対応する探索経路が示されている。探索経路は、影響範囲の探索を行う機器の機能の配列によって示されている。例えば「探索経路＃１」に示されている探索経路は、「ＶＭ→Ｄａｔａｓｔｏｒｅ→ＲＡＩＤ→Ｄａｔａｓｔｏｒｅ→ＶＭ」である。この探索経路では、まず機能が「ＶＭ」の機器から探索を開始することが示されている。次に「ＶＭ」の機器に接続された、機能が「Ｄａｔａｓｔｏｒｅ」の機器を探索することが示されている。該当する機器が検出できた場合、探索経路に示される順番で、対応する機能を有する機器が、最後に検出した機器に接続された機器の中から探索される。
【００７３】
以下、探索経路の例を、図８を参照して説明する。
図８は、探索経路の例を示す図である。図８には、スタック内の探索経路として、「探索経路＃１」、「探索経路＃２」、「探索経路＃１１」、および「探索経路＃２１」が示されている。
【００７４】
ＩａａＳ内の「探索経路＃１」は、障害原因がＤｉｓｋ関連で、起点となる機器がＶＭの場合に適用される。ＩａａＳ内の影響範囲探索時に「探索経路＃１」が適用された場合、「ＶＭ→Ｄａｔａｓｔｏｒｅ→ＲＡＩＤ→Ｄａｔａｓｔｏｒｅ→ＶＭ」という順番で、該当する機能を有する隣接機器（接続関係を有する機器）の探索が行われる。
【００７５】
ＩａａＳ内の「探索経路＃２」は、障害原因がＣＰＵ関連で、起点となる機器がＶＭの場合に適用される。ＩａａＳ内の影響範囲探索時に「探索経路＃２」が適用された場合、「ＶＭ→ＨＶ（ハイパーバイザ）→ＶＭ」という順番で、該当する機能を有する隣接機器の探索が行われる。
【００７６】
ＰａａＳ内の「探索経路＃１１」は、すべて障害原因で、起点となる機器がＷｅｂ／ＡＰの場合に適用される。ＰａａＳ内の影響範囲探索時に「探索経路＃１１」が適用された場合、「Ｗｅｂ／ＡＰ→ＤＢ→Ｗｅｂ／ＡＰ」という順番で、該当する機能を有する隣接機器の探索が行われる。
【００７７】
ＳａａＳ内の「探索経路＃２１」は、すべて障害原因で、起点となる機器がアプリ（Application）の場合に適用される。ＳａａＳ内の影響範囲探索時に「探索経路＃２１」が適用された場合、「Application→Application」という順番で、該当する機能を有する隣接機器の探索が行われる。
【００７８】
また図８には、スタック間の探索経路として、「探索経路＃３１」、「探索経路＃４１」、および「探索経路＃５１」が示されている。
ＰａａＳ→ＩａａＳ間における「探索経路＃３１」は、障害原因がＤｉｓｋ関連で、起点となる機器が上位側のスタックのＤＢである場合に適用される。ＩａａＳ内の影響範囲探索時に「探索経路＃３１」が適用された場合、起点となるＤＢが依存しているＩａａＳ内のＶＭから、「探索経路＃１」と同様の順番で、該当する機能を有する隣接機器の探索が行われる。なお、機器Ａが他の機器Ｂに依存するとは、機器Ｂの機能（ＶＭ、ＯＳ、ミドルウェアなど）を実行基盤として利用して、機器Ａが実行されていることを指す。
【００７９】
ＳａａＳ→ＰａａＳ間における「探索経路＃４１」は、すべての障害原因で、起点となる機器がＳａａＳのアプリ（Application）の場合に適用される。ＳａａＳ内の機器を起点としたＰａａＳ内の影響範囲探索時に「探索経路＃４１」が適用された場合、起点となるアプリが依存しているプラットフォーム（図８の例では「ｚｚｚ」）から、依存している機器が探索される。もし起点のアプリが依存しているプラットフォーム「ｚｚｚ」が依存している機器が、「ｚｚｚ」と同じスタックにない場合は、「ｚｚｚ」のみが影響範囲内の機器となる。
【００８０】
ＩａａＳ→ＰａａＳ間における「探索経路＃５１」では、すべての障害原因で、起点となる機器がＩａａＳのＶＭだった場合に適用される。ＩａａＳ内の機器を起点としたＰａａＳ内の影響範囲探索時に「探索経路＃５１」が適用された場合、起点となるＶＭに依存しているＤＢから、ＤＢに依存しているすべてのＷｅｂ／ＡＰ（Ｗｅｂアプリ）が、影響範囲内の機器となる。
【００８１】
次にスタック動作モデル記憶部３２０に格納されるスタック操作モデルの一例について説明する。
図９は、スタック動作モデルの一例を示す図である。スタック動作モデル３２１には、機器情報と接続関係情報とが含まれる。機器情報には、スタック５２と上位のスタック５３の各機器の識別子に対応付けて、機器の機能、属するスタックの識別子（スタックＮｏ．）、障害発生の有無を示す情報（「障害発生」の欄の値）、障害影響の有無を示す情報（「障害影響」の欄の値）が設定されている。
【００８２】
機器の機能としては、機器が属するスタックの種別（ＩａａＳ，ＰａａＳ，ＳａａＳ）が示される。また図９には示していないが、機器の機能として、ＤＢ、ＶＭといった、具体的なサービスの種別を示す情報が含まれる。
【００８３】
障害発生の有無を示す情報には、例えば対応する機器が障害検知機器の場合に、障害発生を示す値「１」が設定される。障害影響の有無を示す情報には、例えば対応する機器が障害影響機器の場合に、障害影響範囲内であることを示す値「１」が設定される。
【００８４】
接続関係情報には、スタック５２内の機器間の接続関係と、スタック５２内の機器と上位のスタック５３内の機器との接続関係が示される。スタック５２内の機器間の接続関係とは、サービスの提供の際に互いに連携して動作する２つの機器間の関係、または一方の機器に他方の機器が依存している２つの機器間の関係である。スタック５２内の機器と上位のスタック５３内の機器との接続関係とは、スタック５２内の機器と、その機器に依存している上位のスタック５３内の機器との関係である。
【００８５】
次に、スタック情報管理部３３０の機能について説明する。
図１０は、スタック情報管理部の機能の一例を示す図である。スタック情報管理部３３０は、スタック情報記憶部３３１、スタックＮｏ．生成部３３２、自スタックＮｏ．通知部３３３、およびスタックＮｏ．送受信部３３４を有する。
【００８６】
スタック情報記憶部３３１は、自身が属するスタック５２（ＰａａＳ）のスタックＮｏ．、下位のスタック５１（ＩａａＳ）のスタックＮｏ．、および上位のスタック５３（ＳａａＳ）のスタックＮｏ．を記憶する。
【００８７】
スタックＮｏ．生成部３３２は、スタック５２のスタックＮｏ．を生成する。自スタックＮｏ．通知部３３３は、自スタックＮｏ．を、下位のスタック５１の影響範囲特定装置４００に送信する。スタックＮｏ．送受信部３３４は、下位のスタック５１および上位のスタック５３のスタックＮｏ．を取得する。
【００８８】
以下、図１１と図１２とを参照して、スタックＮｏ．生成部３３２と自スタックＮｏ．通知部３３３とによる、自スタックＮｏ．登録処理の手順について説明する。
図１１は、自スタックＮｏ．登録処理の手順の一例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
【００８９】
［ステップＳ１０１］スタックＮｏ．生成部３３２は、自スタックのスタックＮｏ．を生成する。例えばスタックＮｏ．生成部３３２は、スタック５２に影響範囲特定装置３００が導入されたとき（スタック５２用のＶＭに影響範囲特定装置３００用のソフトウェアがインストールされたとき）に、ユニークなスタックＮｏ．を生成する。ユニークなスタックＮｏ．としては、例えばシステム全体でのスタックの識別子を含む番号である。また、スタックＮｏ．に、そのスタックＮｏ．の生成時刻を含めることで、ユニークな番号とすることもできる。
【００９０】
［ステップＳ１０２］スタックＮｏ．生成部３３２は、生成したスタックＮｏ．を、スタック５２のスタックＮｏ．としてスタック情報記憶部３３１に格納する。またスタックＮｏ．生成部３３２は、生成したスタックＮｏ．を、自スタックＮｏ．通知部３３３に送信する。
【００９１】
［ステップＳ１０３］自スタックＮｏ．通知部３３３は、取得したスタックＮｏ．を、下位のスタック５１の影響範囲特定装置４００に送信する。
図１２は、自スタックＮｏ．登録処理結果の一例を示す図である。図１２に示すように、スタックＮｏ．生成部３３２で生成されたスタックＮｏ．が、スタック情報管理部３３０内のスタック情報記憶部３３１に、自スタックのスタックＮｏ．として記憶される。また生成された自スタックのスタックＮｏ．は、下位のスタック５１内の影響範囲特定装置４００に送信される。
【００９２】
影響範囲特定装置４００では、送信された自スタックのスタックＮｏ．が、上位スタックのスタックＮｏ．として記憶される。その結果、スタック５２に導入された影響範囲特定装置３００の存在が、下位のスタック５１内の影響範囲特定装置４００で認識される。
【００９３】
次に、図１３と図１４とを参照して、スタックＮｏ．送受信部３３４による、他スタックＮｏ．登録処理の手順について説明する。
図１３は、他スタックＮｏ．登録処理の手順の一例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【００９４】
［ステップＳ１１１］スタックＮｏ．送受信部３３４は、下位のスタック５１内の影響範囲特定装置４００から、下位のスタック５１のスタックＮｏ．を取得する。
［ステップＳ１１２］スタックＮｏ．送受信部３３４は、取得したスタックＮｏ．を、下位スタックＮｏ．としてスタック情報記憶部３３１に格納する。
【００９５】
［ステップＳ１１３］スタックＮｏ．送受信部３３４は、スタック情報記憶部３３１から自スタックＮｏ．を取得し、上位のスタック５３内の影響範囲特定装置２００へ自スタックＮｏ．を送信する。
【００９６】
［ステップＳ１１４］スタックＮｏ．送受信部３３４は、上位のスタック５３内の影響範囲特定装置２００から、上位のスタック５３のスタックＮｏ．を取得する。
［ステップＳ１１５］スタックＮｏ．送受信部３３４は、取得したスタックＮｏ．を、上位スタックＮｏ．としてスタック情報記憶部３３１に格納する。
【００９７】
［ステップＳ１１６］スタックＮｏ．送受信部３３４は、スタック情報記憶部３３１に格納されているスタック情報（各スタックのスタックＮｏ．）を、ダウンフロー処理部３４０内のシステム構成情報記憶部３４１に格納する。これにより、ダウンフロー処理部３４０において、上位と下位のスタック内の影響範囲特定装置２００，４００をスタックＮｏ．で認識できる。その後、スタック情報管理の一連の処理（影響範囲特定装置の導入時の処理）が終了する。
【００９８】
なお、他スタックＮｏ．登録処理は、上位のスタック５３へスタック５２のスタックＮｏ．を伝達した時点で終了してもよい。この場合は、スタックＮｏ．送受信部３３４は、障害影響探索時に上位のスタック５３のスタックＮｏ．を取得し、取得したスタックＮｏ．をスタック情報記憶部３３１に格納すると共にシステム構成情報記憶部３４１に格納する。
【００９９】
図１４は、他スタックＮｏ．登録処理結果の一例を示す図である。図１４に示すように、下位のスタック５１内の影響範囲特定装置４００から取得したスタックＮｏ．が、スタック情報管理部３３０に下位スタックＮｏ．として記憶される。また上位のスタック５３内の影響範囲特定装置２００から取得したスタックＮｏ．が、スタック情報管理部３３０に上位スタックＮｏ．として記憶される。スタック情報記憶部３３１に格納されたスタックＮｏ．は、ダウンフロー処理部３４０内のシステム構成情報記憶部３４１にも格納される。
【０１００】
このようにして、スタック５２に影響範囲特定装置３００が導入された場合には、スタック情報管理部３３０が、上位のスタック５３や下位のスタック５１の影響範囲特定装置２００，４００との間でスタックＮｏ．を交換する。これにより、異なる層のスタック内の影響範囲特定装置間で互いを識別することができる。
【０１０１】
次にダウンフロー処理について詳細に説明する。
図１５は、ダウンフロー処理部の機能の一例を示す図である。ダウンフロー処理部３４０は、システム構成情報記憶部３４１、検知情報取得部３４２、情報収集部３４３、影響探索部３４４、および探索結果通知部３４５を有する。
【０１０２】
システム構成情報記憶部３４１は、上位のスタック５３内の機器とスタック５２内の機器との接続情報、スタック５２のシステム構成情報を記憶する。上位のスタック５３内の機器とスタック５２内の機器との接続情報には、スタック５２内の機器の識別子と、その機器に依存して動作している上位のスタック５３内の機器の識別子との組が含まれる。スタック５２のシステム構成情報には、スタック５２内の機器間で、互いに連携して動作する２つの機器の識別子の組が含まれる。
【０１０３】
検知情報取得部３４２は、上位のスタック５３の影響範囲特定装置２００から、障害検知機器および障害影響機器を示す情報（上位スタック検知情報）を取得する。また検知情報取得部３４２は、スタック５２内の監視装置６２から障害検知機器を示す情報（自スタック検知情報）を取得する。情報収集部３４３は、システム構成情報記憶部３４１内の情報に基づいて、スタック動作モデルを作成する。影響探索部３４４は、障害検知機器または障害影響機器を起点として、障害の影響範囲を探索する。探索結果通知部３４５は、下位のスタック５１の影響範囲特定装置４００へ、スタック５２で検知された障害検知機器および障害影響機器の情報を送信する。また探索結果通知部３４５は、スタック５２の管理者が使用する端末装置３０へ、障害の影響範囲を通知する。
【０１０４】
ダウンフロー処理部３４０が、クラウドコンピューティングシステム２０のどこかで障害が発生したことを検知した場合、ダウンフロー処理が開始される。例えばダウンフロー処理部３４０は、上位のスタック５３の影響範囲特定装置２００から、発生した障害の障害影響機器と障害検知機器との識別子を含む上位スタック検知情報の受信により、障害の発生を検知する。またダウンフロー処理部３４０は、監視装置６２から障害検知機器の識別子を含む自スタック検知情報の受信により、障害の発生を検知する。
【０１０５】
図１６は、ダウンフロー処理の手順の一例を示す図である。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ２０１］検知情報取得部３４２は、検知情報取得処理を行う。検知情報取得処理の詳細は後述する（図１９参照）。
【０１０６】
［ステップＳ２０２］情報収集部３４３は、情報収集処理を行う。情報収集処理により、スタック動作モデルが作成される。情報収集処理の詳細は後述する（図２１参照）。
［ステップＳ２０３］影響探索部３４４は、影響範囲探索処理を行う。影響範囲探索処理の詳細は後述する（図２５参照）。
【０１０７】
［ステップＳ２０４］探索結果通知部３４５は、下位のスタック５１への探索結果通知処理を行う。下位のスタック５１への探索結果通知処理の詳細は後述する（図２７参照）。
【０１０８】
上位スタック検知情報を取得した際に、このような手順でダウンフロー処理が実行される。上位スタック検知情報は、障害の発生に応じて障害検知機器を検出した上位のスタック５３の影響範囲特定装置２００から送信される。なお、障害の発生に伴いスタック５２内の機器も障害検知機器として検出される場合がある。
【０１０９】
図１７は、障害検知機器と障害影響機器の検知例を示す図である。図１７の例では、スタック５３内の機器「ａｐｐ＿ｃ」とスタック５２内の機器「ｂｂ」とにおいて障害が発生したことが検知されている。なお、スタック５３内の機器における障害の発生は監視装置６３で検知され、障害発生機器の識別子が監視装置６３から影響範囲特定装置２００に通知される（図４参照）。スタック５２内の機器における障害の発生は監視装置６２で検知され、障害発生機器の識別子が監視装置６２から影響範囲特定装置３００に通知される（図４参照）。
【０１１０】
図１７の例では、スタック５３内の影響範囲特定装置２００によって、機器「ａｐｐ＿ｃ」を起点とした影響範囲探索の結果、機器「ａｐｐ＿ａ」と機器「ａｐｐ＿ｂ」とが、障害影響機器として検知されている。この場合、スタック５３内の影響範囲特定装置２００からスタック５２内の影響範囲特定装置３００へは、障害検知機器「ａｐｐ＿ｃ」、障害影響機器「ａｐｐ＿ａ，ａｐｐ＿ｂ」を示す上位スタック検知情報が送信される。
【０１１１】
図１８は、検知情報取得処理の一例を示す図である。図１８に示すように、検知情報取得部３４２は、上位スタック検知情報７１と自スタック検知情報７２とを取得する。
上位スタック検知情報７１には、上位のスタック５３内の機器の識別子（機器名）に対応付けて、その機器が属するスタックのスタックＮｏ．、障害発生の有無を示す情報、および障害影響の有無を示す情報が設定されている。障害発生の有無を示す情報は、「障害発生」の欄に設定されており、障害影響の有無を示す情報は「障害影響」の欄に設定されている。障害検知機器である機器「ａｐｐ＿ｃ」は、障害発生の欄の値が「１」であり、障害影響の欄の値は「０」である。障害影響機器である機器「ａｐｐ＿ａ」と機器「ａｐｐ＿ｂ」は、障害発生の欄の値は「０」であり、障害影響の欄の値は「１」である。
【０１１２】
自スタック検知情報７２には、影響範囲特定装置３００が属するスタック５２内の機器の識別子（機器名）に対応付けて、その機器が属するスタックのスタックＮｏ．、障害発生情報、および障害影響情報が設定されている。障害検知機器である機器「ｂｂ」は、障害発生の欄の値が「１」であり、障害影響の欄の値は「０」である。
【０１１３】
検知情報取得部３４２は、上位スタック検知情報７１と自スタック検知情報７２とを統合した検知情報７３を生成し、生成した検知情報７３を影響探索部３４４に送信する。
図１９は、検知情報取得処理の手順の一例を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１１４】
［ステップＳ２１１］検知情報取得部３４２は、上位のスタック５３内の影響範囲特定装置２００から上位スタック検知情報７１を取得する。
［ステップＳ２１２］検知情報取得部３４２は、影響範囲特定装置３００が属するスタック５２内の監視装置６２から自スタック検知情報７２を取得する。
【０１１５】
［ステップＳ２１３］検知情報取得部３４２は、上位スタック検知情報７１と自スタック検知情報７２とを統合する。例えば検知情報取得部３４２は、上位スタック検知情報７１内の機器ごとのレコードと、自スタック検知情報７２内の機器ごとのレコードとを有する新たな検知情報７３を生成する。
【０１１６】
［ステップＳ２１４］検知情報取得部３４２は、生成した検知情報７３を影響探索部３４４に送信する。
このようにして、上位スタック検知情報７１と自スタック検知情報７２とを統合した検知情報７３が生成される。
【０１１７】
次に情報収集処理について詳細に説明する。
図２０は、情報収集処理の一例を示す図である。情報収集部３４３は、システム構成情報記憶部３４１に格納されている情報に基づいて、スタック動作モデル３２１を生成する。例えばシステム構成情報記憶部３４１には、接続情報３４１ａとシステム構成情報３４１ｂとが含まれる。接続情報３４１ａには、スタック５２内の機器間の接続関係を示す情報と、スタック５２内の機器と上位のスタック５３内の機器との接続関係を示す情報とが含まれる。システム構成情報３４１ｂには、スタック５２，５３内の機器が登録されている。システム構成情報３４１ｂに示されている機器には、機器の機能（ＶＭやＤａｔａｓｔｏｒｅ、ＰａａＳ、ＳａａＳなど）を示す情報が付与されている。
【０１１８】
情報収集部３４３は、スタック５２のシステムを構成する機器の識別子と、各機器の機能とを、システム構成情報３４１ｂから取得する。また情報収集部３４３は、接続情報３４１ａから、スタック５２内の機器と接続している上位のスタック５３内の機器の識別子を取得する。そして情報収集部３４３は、スタック５２内の機器と接続している上位のスタック５３内の各機器の機能を、システム構成情報３４１ｂから取得する。
【０１１９】
情報収集部３４３は、取得した情報に基づいて、スタック５２の機器間、およびスタック５２の機器と上位のスタック５３の機器の接続関係を１対１の接続情報として、スタック動作モデル３２１を作成する。情報収集部３４３によるスタック動作モデル３２１の作成は、例えば、障害発生時（上位スタック検知情報７１と自スタック検知情報７２の少なくとも一方の取得時）に行われる。なお、情報収集部３４３は、障害発生時に限らず、１日１回のように定期的にスタック動作モデル３２１を作成してもよい。定期的にスタック動作モデル３２１を作成することで、常に最新のスタック動作モデル３２１が得られる。また情報収集部３４３は、接続情報３４１ａまたはシステム構成情報３４１ｂに変化があったときに、スタック動作モデル３２１を作成することもできる。
【０１２０】
なお、図２０には初期状態のスタック動作モデル３２１が示されている。初期状態では、スタック動作モデル３２１内の各機器の障害発生情報の値はすべて「０」であり、各機器の障害影響情報の値もすべて「０」である。
【０１２１】
図２１は、情報収集処理の手順の一例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
［ステップＳ２２１］情報収集部３４３は、システム構成情報記憶部３４１から、接続情報３４１ａとシステム構成情報３４１ｂとを読み込む。
【０１２２】
［ステップＳ２２２］情報収集部３４３は、スタック動作モデル３２１を生成する。
［ステップＳ２２３］情報収集部３４３は、生成したスタック動作モデル３２１を、スタック動作モデル記憶部３２０に格納する。
【０１２３】
このようにして生成されたスタック動作モデル３２１を用いて、影響探索部３４４により影響範囲探索処理が行われる。
図２２は、ダウンフロー処理における影響範囲探索処理の一例を示す図である。影響探索部３４４は、上位のスタック５３の障害影響機器と、上位のスタック５３およびスタック５２の障害検知機器それぞれを起点として、障害の影響範囲を探索する。影響探索部３４４は、障害の影響範囲の探索において、あらかじめ定義された影響範囲探索経路情報３１１を用いる。また影響探索部３４４は、影響範囲探索の結果に応じて、スタック動作モデル３２１を更新する。
【０１２４】
図２２の例では、スタック５３内の障害影響機器「ａｐｐ＿ａ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ａａ」、機器「ｂｂ」、機器「ｃｃ」が障害影響機器として検知されている。またスタック５３内の障害検知機器「ａｐｐ＿ｃ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ｄｄ」、機器「ｅｅ」が障害影響機器として検知されている。さらに、スタック５２内の障害検知機器「ｂｂ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ａａ」、機器「ｃｃ」が障害影響機器として検知されている。なおスタック５３内の障害影響機器「ａｐｐ＿ｂ」は、スタック５２内のいずれの機器にも接続されていないため、影響探索部３４４は、障害影響機器「ａｐｐ＿ｂ」を起点とした影響範囲の探索を行われない。
【０１２５】
以下、図２３、図２４を参照して、スタック動作モデル３２１の更新状況について説明する。
図２３は、検知情報を反映させたスタック動作モデルの例を示す図である。検知情報７３を取得した影響探索部３４４は、スタック動作モデル３２１内の各レコードに、探索の起点となる機器か否かを示す情報（「起点機器」の欄の値）を追加する。起点となる機器か否かを示す情報の初期値は「０」である。そして、影響探索部３４４は、検知情報７３に示されている、障害が発生した機器の情報および障害の影響を受ける可能性のある機器の情報を、スタック動作モデル３２１に反映させる。また、影響探索部３４４は、障害が発生した機器および障害の影響を受ける可能性のある機器が、探索の起点となる機器であることを示す情報を、スタック動作モデル３２１に設定する。
【０１２６】
図２３の例では、機器「ｂｂ」のレコードの障害発生の有無を示す情報の値が「１」に変更され、探索の起点となる機器か否かを示す情報の値が「１」に変更されている。機器「ａｐｐ＿ａ」のレコードの障害影響の有無を示す情報の値が「１」に変更され、探索の起点となる機器か否かを示す情報の値が「１」に変更されている。機器「ａｐｐ＿ｃ」のレコードの障害発生の有無を示す情報の値が「１」に変更され、探索の起点となる機器か否かを示す情報の値が「１」に変更されている。
【０１２７】
その後、影響探索部３４４により、障害の影響範囲が探索されると、探索結果に応じて、スタック動作モデル３２１が更新される。
図２４は、ダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。図２４には、図２２に示したような探索結果を反映させたスタック動作モデル３２１が示されている。図２４の例では、機器「ａａ」、「ｃｃ」、「ｄｄ」、「ｅｅ」それぞれのレコードの障害影響の有無を示す情報の値が「１」に変更されている。
【０１２８】
次に、影響範囲探索処理の手順について、フローチャートを参照して説明する。
図２５は、ダウンフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。以下、図２５に示す処理をステップ番号に沿って説明する。
【０１２９】
［ステップＳ２３１］影響探索部３４４は、検知情報取得部３４２から、検知情報７３を受信する。
［ステップＳ２３２］影響探索部３４４は、受信した検知情報７３に基づいて、スタック動作モデル３２１を更新する。例えば影響探索部３４４は、図２３に示したように、障害検知機器と障害影響機器を示す情報をスタック動作モデル３２１に設定すると共に、障害検知機器と障害影響機器とが影響範囲探索の起点となることを、スタック動作モデル３２１に設定する。
【０１３０】
［ステップＳ２３３］影響探索部３４４は、スタック動作モデル３２１において探索の起点となることが示されている機器（起点機器）のうち、未選択の起点機器を１つ選択する。
【０１３１】
［ステップＳ２３４］影響探索部３４４は、適用する影響範囲探索経路を決定する。例えば影響探索部３４４は、起点機器が、スタック５２内の機器であれば、影響範囲探索経路情報３１１（図７参照）のスタック内の障害・探索経路対応表３１１ａを参照し、発生した障害の種別と障害検知機器の機能との組に対応する探索経路の識別子を取得する。そして、影響探索部３４４は、探索経路情報３１１ｃを参照し、取得した識別子に対応する探索経路を、適用する影響範囲探索経路として特定する。
【０１３２】
また影響探索部３４４は、起点機器が、上位のスタック５３内の機器であれば、影響範囲探索経路情報３１１（図７参照）のスタック間の障害・探索経路対応表３１１ｂを参照し、発生した障害の種別と障害検知機器の機能との組に対応する探索経路の識別子を取得する。そして、影響探索部３４４は、探索経路情報３１１ｃを参照し、取得した識別子に対応する探索経路を、適用する影響範囲探索経路として特定する。
【０１３３】
［ステップＳ２３５］影響探索部３４４は、適用する影響範囲探索経路に基づいて、影響範囲内の機器を探索する。例えば影響探索部３４４は、起点の機器から探索を開始し、影響範囲探索経路に示される機能の隣接する機器を、影響範囲探索経路に示される順番に沿って探索する。そして影響探索部３４４は、探索によって到達できた機器を、影響範囲内の機器と判断する。
【０１３４】
［ステップＳ２３６］影響探索部３４４は、スタック動作モデル３２１における、影響範囲内の機器の障害の影響の有無を示す情報の値を「１」に変更する。
［ステップＳ２３７］影響探索部３４４は、すべての起点機器を選択したか否かを判断する。影響探索部３４４は、すべての起点機器が選択済みの場合、影響範囲探索処理を終了する。また影響探索部３４４は、未選択の起点機器があれば、処理をステップＳ２３３に進める。
【０１３５】
このようにして、スタック５２内での障害の影響範囲探索処理が行われ、処理の結果に応じてスタック動作モデル３２１が更新される。その後、探索結果通知部３４５により、探索結果通知処理が行われる。
【０１３６】
図２６は、ダウンフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３４５は、スタック動作モデル３２１を参照し、スタック５２における障害検知機器と障害影響機器とを示す自スタック探索後検知情報７４を生成する。そして探索結果通知部３４５は、生成した自スタック探索後検知情報７４を、下位のスタック５１の影響範囲特定装置４００に送信する。
【０１３７】
また探索結果通知部３４５は、スタック動作モデル３２１を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８１を生成する。そして探索結果通知部３４５は、表示データ８１を、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８１に応じた画像が表示される。
【０１３８】
表示データ８１には、例えばスタック５２内の機器間の接続関係と、スタック５２内の機器と上位のスタック５３内の機器との接続関係とが示されている。そして、表示データ８１には、障害検知機器と障害影響機器とを強調表示することが示されている。例えば、障害検知機器と障害影響機器とは、異なる色で表示するように、表示データ８１に設定される。
【０１３９】
図２７は、下位スタックへの探索結果通知処理の手順の一例を示すフローチャートである。以下、図２７に示す処理をステップ番号に沿って説明する。
［ステップＳ２４１］探索結果通知部３４５は、スタック動作モデル記憶部３２０からスタック動作モデル３２１を読み込む。
【０１４０】
［ステップＳ２４２］探索結果通知部３４５は、端末装置３０に表示データ８１を送信し、端末装置３０にスタック５２への障害の影響範囲を表示させる。
［ステップＳ２４３］探索結果通知部３４５は、下位のスタック５１へ、スタック５２における影響範囲の探索結果を示す自スタック探索後検知情報７４を送信する。なお、スタック５２が最下層のスタックの場合には、下位のスタック５１への自スタック探索後検知情報７４の生成および送信は行われない。
【０１４１】
このようにして、ダウンフロー処理が実行される。スタック５２におけるダウンフロー処理によって送信された自スタック探索後検知情報７４は、下位のスタック５１の影響範囲特定装置４００で受信される。そして影響範囲特定装置４００においても、同様にダウンフロー処理が実行される。影響範囲特定装置４００におけるダウンフロー処理によって、スタック５１内における障害の影響範囲内にある機器が検知される。
【０１４２】
図２８は、最下層のスタックにおける障害影響範囲の例を示す図である。図２８に示すように、スタック５１の影響範囲特定装置４００では、機器「ｃｃ」を起点とした影響範囲探索処理が実行され、機器「ｘｘｘ」が障害影響機器として検知される。また機器「ｅｅ」を起点とした影響範囲探索処理が実行され、機器「ｙｙｙ」が障害影響機器として検知される。
【０１４３】
各スタックの影響範囲特定装置２００，３００，４００は、ダウンフロー処理の後、所定のタイミングでアップフロー処理を実行する。最下層のスタック５１内の影響範囲特定装置４００は、ダウンフロー処理が終了すると、アップフロー処理を開始する。最下層以外のスタック５２，５３の影響範囲特定装置２００，３００は、下位側のスタックにおける影響範囲の探索結果を示す情報を受信したときに、アップフロー処理を実行する。例えばスタック５２では、アップフロー処理部３５０が、アップフロー処理を行う。
【０１４４】
図２９は、アップフロー処理部の機能の一例を示す図である。アップフロー処理部３５０は、検知情報取得部３５１、影響探索部３５２、および探索結果通知部３５３を有する。
【０１４５】
検知情報取得部３５１は、下位のスタック５１の影響範囲特定装置４００から、障害検知機器および障害影響機器を示す情報（下位スタック検知情報）を取得する。影響探索部３５２は、下位スタック検知情報に示されている障害検知機器または障害影響機器を起点として、障害の影響範囲を探索する。探索結果通知部３５３は、上位のスタック５３の影響範囲特定装置２００へ、スタック５２で検知された障害検知機器および障害影響機器の情報を送信する。また探索結果通知部３５３は、スタック５２の管理者が使用する端末装置３０へ、障害の影響範囲を通知する。
【０１４６】
アップフロー処理部３５０が、下位のスタック５１の影響範囲特定装置４００から、発生した障害の障害影響機器と障害検知機器との識別子（下位スタック検知情報）を受信すると、アップフロー処理が開始される。
【０１４７】
図３０は、アップフロー処理の手順の一例を示す図である。以下、図３０に示す処理をステップ番号に沿って説明する。
［ステップＳ３０１］検知情報取得部３５１は、下位スタック検知情報取得処理を行う。下位のスタック５１からの検知情報取得処理の詳細は後述する（図３２参照）。
【０１４８】
［ステップＳ３０２］影響探索部３５２は、アップフローにおける影響範囲探索処理を行う。アップフローにおける影響範囲探索処理の詳細は後述する（図３６参照）。
［ステップＳ３０３］探索結果通知部３５３は、上位のスタック５３への探索結果通知処理を行う。上位のスタック５３への探索結果通知処理の詳細は後述する（図３８参照）。
【０１４９】
下位スタック検知情報を取得した際に、このような手順でアップフロー処理が実行される。
図３１は、下位スタック検知情報取得処理の一例を示す図である。下位のスタック５１において図２８に示すような障害影響機器が検知された場合、影響範囲特定装置４００においてスタック５１内の障害影響機器に接続されているスタック５２内の機器を示す下位スタック検知情報７５が生成される。そして生成された下位スタック検知情報７５が、影響範囲特定装置４００から影響範囲特定装置３００に送信されると、検知情報取得部３５１により、下位スタック検知情報取得処理が実行される。
【０１５０】
図３２は、下位スタック検知情報取得処理の手順の一例を示すフローチャートである。以下、図３２に示す処理をステップ番号に沿って説明する。
［ステップＳ３１１］検知情報取得部３５１は、スタック５１内の障害影響機器に依存する上位側のスタック５２内の機器を示す下位スタック検知情報７５を、影響範囲特定装置４００から取得する。
【０１５１】
［ステップＳ３１２］検知情報取得部３５１は、取得した下位スタック検知情報７５を、影響探索部３５２に送信する。
下位スタック検知情報７５を受信した影響探索部３５２は、影響範囲探索処理を行う。
【０１５２】
図３３は、アップフローにおける影響範囲探索処理の一例を示す図である。影響探索部３５２は、下位スタック検知情報７５に基づいて、下位のスタック５１の障害影響機器と接続されているスタック５２内の機器を起点として、障害の影響範囲を探索する。影響探索部３５２は、障害の影響範囲の探索において、あらかじめ定義された影響範囲探索経路情報３１１を用いる。また影響探索部３５２は、影響範囲探索の結果に応じて、スタック動作モデル３２１を更新する。
【０１５３】
図３３の例では、スタック５２内の機器「ｃｃ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ａａ」、機器「ｂｂ」が障害影響機器として検知されている。またスタック５２内の機器「ｅｅ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ｄｄ」が障害影響機器として検知されている。さらにスタック５２内の機器「ｆｆ」を起点として、障害の影響範囲を探索した結果、スタック５２内の機器「ｇｇ」が障害影響機器として検知されている。
【０１５４】
以下、図３４、図３５を参照して、スタック動作モデル３２１の更新状況について説明する。
図３４は、下位スタック検知情報を反映させたスタック動作モデルの例を示す図である。下位スタック検知情報７５を取得した影響探索部３５２は、スタック動作モデル３２１の起点機器の欄を初期化する。そして影響探索部３５２は、下位スタック検知情報７５に示されている、下位のスタック５１の障害影響機器に接続されているスタック５２内の機器が、探索の起点となる機器であることを示す情報を、スタック動作モデル３２１に設定する。図３４の例では、機器「ｃｃ」、「ｅｅ」、「ｆｆ」それぞれについて、探索の起点となる機器か否かを示す情報が「１」に変更されている。
【０１５５】
その後、影響探索部３５２により、障害の影響範囲が探索されると、探索結果に応じて、スタック動作モデル３２１が更新される。
図３５は、アップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。図３５には、図３３に示した探索結果を反映させたスタック動作モデル３２１が示されている。図３５の例では、機器「ｆｆ」、「ｇｇ」それぞれのレコードの障害影響の有無を示す情報の値が「１」に変更されている。
【０１５６】
次に、影響範囲探索処理の手順について、フローチャートを参照して説明する。
図３６は、アップフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。以下、図３６に示す処理をステップ番号に沿って説明する。
【０１５７】
［ステップＳ３２１］影響探索部３５２は、検知情報取得部３５１から、下位スタック検知情報７５を受信する。
［ステップＳ３２２］影響探索部３５２は、スタック動作モデル３２１のすべてのレコードの起点機器の値を「０」にリセットする。
【０１５８】
［ステップＳ３２３］影響探索部３５２は、受信した下位スタック検知情報７５に基づいて、スタック動作モデル３２１を更新する。例えば影響探索部３５２は、図３４に示したように、下位のスタック５１の障害影響機器に接続された機器が影響範囲探索の起点となることを、スタック動作モデル３２１に設定する。
【０１５９】
［ステップＳ３２４］影響探索部３５２は、スタック動作モデル３２１において探索の起点となることが示されている機器（起点機器）のうち、未選択の起点機器を１つ選択する。
【０１６０】
［ステップＳ３２５］影響探索部３５２は、適用する影響範囲探索経路を決定する。例えば影響探索部３５２は、影響範囲探索経路情報３１１（図７参照）のスタック内の障害・探索経路対応表３１１ａを参照し、発生した障害の種別と障害検知機器の機能との組に対応する探索経路の識別子を取得する。そして、影響探索部３５２は、探索経路情報３１１ｃを参照し、取得した識別子に対応する探索経路を、適用する影響範囲探索経路として特定する。
【０１６１】
［ステップＳ３２６］影響探索部３５２は、適用する影響範囲探索経路に基づいて、影響範囲内の機器を探索する。例えば影響探索部３５２は、起点の機器から探索を開始し、影響範囲探索経路に示される機能の隣接する機器を、影響範囲探索経路に示される順番に沿って探索する。そして影響探索部３５２は、探索によって到達できた機器を、影響範囲内の機器と判断する。
【０１６２】
［ステップＳ３２７］影響探索部３５２は、スタック動作モデル３２１における、影響範囲内の機器の障害の影響の有無を示す情報の値を「１」に変更する。
［ステップＳ３２８］影響探索部３５２は、すべての起点機器を選択したか否かを判断する。影響探索部３５２は、すべての起点機器が選択済みの場合、影響範囲探索処理を終了する。また影響探索部３５２は、未選択の起点機器があれば、処理をステップＳ３２４に進める。
【０１６３】
このようにして、スタック５２内での障害の影響範囲探索処理が行われ、処理の結果に応じてスタック動作モデル３２１が更新される。その後、探索結果通知部３５３により、探索結果通知処理が行われる。
【０１６４】
図３７は、アップフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３５３は、スタック動作モデル３２１を参照し、スタック５２における障害検知機器と障害影響機器とのいずれかに接続された上位のスタック５３内の機器を示す自スタック探索後検知情報７６を生成する。そして探索結果通知部３５３は、生成した自スタック探索後検知情報７６を、上位のスタック５３の影響範囲特定装置２００に送信する。
【０１６５】
また探索結果通知部３５３は、スタック動作モデル３２１を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８２を生成する。そして探索結果通知部３５３は、表示データ８２を、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８２に応じた画像が表示される。
【０１６６】
図３８は、上位スタックへの探索結果通知処理の手順の一例を示すフローチャートである。以下、図３８に示す処理をステップ番号に沿って説明する。
［ステップＳ３３１］探索結果通知部３５３は、スタック動作モデル記憶部３２０からスタック動作モデル３２１を読み込む。
【０１６７】
［ステップＳ３３２］探索結果通知部３５３は、端末装置３０に表示データ８２を送信し、端末装置３０にスタック５２への障害の影響範囲を表示させる。
［ステップＳ３３３］探索結果通知部３５３は、上位のスタック５３へ、スタック５２における影響範囲に含まれる機器（障害検知機器と障害影響機器）に接続された上位のスタック５３の機器を示す自スタック探索後検知情報７６を送信する。
【０１６８】
このようにして、アップフロー処理が実行される。その結果、端末装置３０には、スタック５２内の機器における障害の影響範囲が正しく表示される。
図３９は、障害影響範囲表示画面の一例を示す図である。端末装置３０には、影響範囲特定装置３００から送信された表示データ８１，８２に基づいて、障害影響範囲表示画面８３が表示される。図３９の例では、ダウンフロー処理の際に送信された表示データ８１が、上位のスタック５３からの影響反映結果として表示されている。またアップフロー処理の際に送信された表示データ８２が、上位と下位のスタックからの影響反映結果として表示されている。
【０１６９】
スタック５２の管理者は、障害影響範囲表示画面８３を参照することで、障害の影響範囲を適切に判断することができる。すなわち、管理者は、スタック５２内での障害の影響の伝搬だけでなく、上位のスタック５３または下位のスタック５１を経由した障害の影響範囲を適切に認識することができる。その結果、管理者は、障害に対して対処する際に、障害の影響を受ける可能性のある機器について優先的に対処することで、発生した障害によるサービスの品質低下を最小限に抑えることができる。
【０１７０】
なお、第２の実施の形態では、ダウンフロー処理とアップフロー処理の両方で、端末装置３０へ表示データを出力しているが、例えばダウンフロー処理における表示データの出力は省略してもよい。
【０１７１】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、障害の影響範囲の探索結果を重ね合わせることで、障害影響機器が障害の影響を受ける度合いの違いを判別できるようにするものである。
【０１７２】
例えば第２の実施の形態において、スタック５２の影響範囲特定装置３００は、ダウンフロー処理とアップフロー処理とにおいて、複数の機器を起点とする障害の影響範囲の探索を行っている。すると、異なる複数の起点から障害の影響範囲内であると判定される機器も存在する。そして、障害影響範囲探索において影響範囲内であると判定された回数が多い機器ほど、障害の影響を受ける可能性が高いと考えられる。そこで、第３の実施の形態では、各影響範囲特定装置２００，３００，４００は、機器ごとに、影響範囲内であると判定された回数をカウントし、カウントした値を、各機器の影響度として表示させる。これにより、管理者は、複数の障害影響機器について、障害の影響を受ける可能性の高さの違いを把握することができる。その結果、管理者が、重要な機器ではない機器から調査、対応してしまい、最も重要な機器を放置してしまうことが抑止される。
【０１７３】
以下、第３の実施の形態における第２の実施の形態との相違点について説明する。
第３の実施の形態におけるスタック動作モデルでは、障害影響の欄に代えて影響度の欄が設けられ、影響度の欄には、障害の影響範囲内として判定された回数が設定される。
【０１７４】
図４０は、第３の実施の形態のダウンフロー処理における影響範囲探索処理の一例を示す図である。図４０の例では、スタック５２内の機器「ａａ」、「ｃｃ」は、スタック５３内の機器「ａｐｐ＿ａ」を起点としたときの影響範囲内であると共に、スタック５２内の機器「ｂｂ」を起点としたときの影響範囲内である。その結果、機器「ａａ」、「ｃｃ」の影響度は「２」となる。それに対して、スタック５２内の機器「ｄｄ」、「ｅｅ」は、スタック５３内の機器「ａｐｐ＿ｃ」を起点としたときの影響範囲内である。そのため、機器「ｄｄ」、「ｅｅ」の影響度は「１」である。
【０１７５】
図４１は、第３の実施の形態のダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。影響探索部３４４は、影響範囲の探索結果に応じてスタック動作モデル３２２を更新する際に、各機器が影響範囲内として検知された回数（影響度）を、その機器に対応するレコードの影響度の欄の値として設定する。図４０の例では、スタック動作モデル３２２の機器「ａａ」、「ｃｃ」のレコードの影響度の欄の値が「２」となっている。またスタック動作モデル３２２の機器「ｄｄ」、「ｅｅ」のレコードの影響度の欄の値は「１」である。
【０１７６】
次に、ダウンフロー処理における影響範囲探索処理の手順について説明する。
図４２は、第３の実施の形態のダウンフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。図４２に示す処理のうち、ステップＳ４０１〜Ｓ４０５，Ｓ４０７の各処理は、それぞれ図２５に示した第２の実施の形態の処理のステップＳ２３１〜Ｓ２３５，Ｓ２３７と同じである。以下、第２の実施の形態と異なるステップＳ４０６の処理について説明する。
【０１７７】
［ステップＳ４０６］影響探索部３４４は、スタック動作モデル３２２における、影響範囲内の機器に対応するレコードの影響度の欄の値に「１」を加算する。
このように、影響範囲探索処理において機器が影響範囲内として検知されるごとに、影響度の欄の値に１ずつ加算することで、各機器が障害影響範囲内として検知された回数が計数できる。そして、探索結果通知部３４５は、障害影響範囲内となった回数を影響度として含む情報を、下位のスタック５１の影響範囲特定装置４００と端末装置３０とに送信する。
【０１７８】
図４３は、第３の実施の形態のダウンフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３４５は、スタック動作モデル３２２を参照し、スタック５２における障害検知機器と障害影響機器とを示す自スタック探索後検知情報７４ａを生成する。自スタック探索後検知情報７４ａにおいて、障害影響機器については、障害の影響度が示される。そして探索結果通知部３４５は、生成した自スタック探索後検知情報７４ａを、下位のスタック５１の影響範囲特定装置４００に送信する。
【０１７９】
また探索結果通知部３４５は、スタック動作モデル３２２を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８１ａを生成する。表示データ８１ａでは、障害影響機器の表示態様は、影響度に応じた表示態様に設定されている。例えば障害影響機器を示すオブジェクトの色が、影響度ごとに異なる色に設定される。
【０１８０】
そして探索結果通知部３４５は、表示データ８１ａを、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８１ａに応じた画像が表示される。
【０１８１】
以上が第３の実施の形態のダウンフロー処理である。アップフロー処理においても、影響度が更新される。第３の実施の形態のアップフロー処理における下位スタック検知情報取得処理は、第２の実施の形態と同様である。従って、図３１に示した下位スタック検知情報７５が影響探索部３５２に送信される。そして下位スタック検知情報７５に示される機器を起点として、影響探索部３５２が、アップフロー処理における影響探索処理を行う。
【０１８２】
図４４は、第３の実施の形態のアップフローにおける影響範囲探索処理の一例を示す図である。図４４に示すように、影響探索部３５２は、影響範囲探索処理によって検知した影響範囲内の機器について、スタック動作モデル３２２内の影響度の値を加算する。
【０１８３】
以下、図４５、図４６を参照して、スタック動作モデル３２２の更新状況について説明する。
図４５は、第３の実施の形態の下位スタック検知情報を反映させたスタック動作モデルの例を示す図である。下位スタック検知情報７５を取得した影響探索部３５２は、スタック動作モデル３２２の起点機器の欄を初期化する。そして影響探索部３５２は、下位スタック検知情報７５に示されている、下位のスタック５１の障害影響機器に接続されているスタック５２内の機器が、探索の起点となる機器であることを示す情報を、スタック動作モデル３２２に設定する。
【０１８４】
その後、影響探索部３５２により、障害の影響範囲が探索されると、探索結果に応じて、スタック動作モデル３２２が更新される。
図４６は、第３の実施の形態のアップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。図４６には、図４４に示した探索結果を反映させたスタック動作モデル３２２が示されている。スタック動作モデル３２２の機器「ａａ」、「ｃｃ」、「ｄｄ」、「ｅｅ」、「ｆｆ」、「ｇｇ」それぞれのレコードの影響度の値には、「１」が加算されている。
【０１８５】
次に、影響範囲探索処理の手順について、フローチャートを参照して説明する。
図４７は、第３の実施の形態のアップフロー処理における影響範囲探索処理の手順の一例を示すフローチャートである。図４７に示す処理のうち、ステップＳ４１１〜Ｓ４１６，Ｓ４１８の各処理は、それぞれ図３６に示した第２の実施の形態の処理のステップＳ３２１〜Ｓ３２６，Ｓ３２８と同じである。以下、第２の実施の形態と異なるステップＳ４１７の処理について説明する。
【０１８６】
［ステップＳ４１７］影響探索部３５２は、スタック動作モデル３２２における、影響範囲内の機器に対応するレコードの影響度の欄の値に「１」を加算する。
このようにして、ダウンフロー処理で計数された各機器の影響度が、アップフロー処理の影響範囲探索により影響範囲内として検知されるごとに、１ずつ加算される。そして、探索結果通知部３５３は、障害影響範囲内となった回数を影響度として含む情報を、上位のスタック５３の影響範囲特定装置２００と端末装置３０とに送信する。
【０１８７】
図４８は、第３の実施の形態のアップフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３５３は、スタック動作モデル３２２を参照し、スタック５２における障害検知機器と障害影響機器とに接続された上位のスタック５３内の機器を示す自スタック探索後検知情報７６を生成する。そして探索結果通知部３５３は、生成した自スタック探索後検知情報７６を、上位のスタック５３の影響範囲特定装置２００に送信する。
【０１８８】
また探索結果通知部３５３は、スタック動作モデル３２２を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８２ａを生成する。表示データ８２ａでは、障害影響機器の表示態様は、影響度に応じた表示態様に設定されている。例えば障害影響機器を示すオブジェクトの色が、影響度ごとに異なる色に設定される。
【０１８９】
そして探索結果通知部３５３は、表示データ８２ａを、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８２ａに応じた画像が表示される。
【０１９０】
このように、第３の実施の形態では、障害影響機器の影響度が求められ、影響度の違いが表示される。これにより、管理者は、障害の影響を受ける可能性が高い機器について優先的に対処することができ、障害に対する適確で迅速な対処が可能となる。
【０１９１】
〔第４の実施の形態〕
次に第４の実施の形態について説明する。第４の実施の形態は、各スタックにおけるサービスの利用状況に応じて、そのサービスを提供する機器に障害が発生したときの深刻度を求め、各スタックの影響範囲特定装置２００，３００，４００間で深刻度の情報を交換するものである。他のスタックの機器に障害が発生したときの深刻度が分かることで、自スタックの障害影響機器について、適切な順番で対処することが可能となる。
【０１９２】
例えば各スタックが異なる企業によって管理されているとき、各スタックを管理する企業は、サービスを利用している顧客の情報を開示することはできない。そのため、例えば下位側のスタック内の機器が障害の影響を受けたとき、その機器を使用している上位側のスタック内の機器で提供するサービスがどの程度重要であるかは、下位側のスタックの管理者にはわからない。機器の重要性としては、様々な側面があり、例えばその機器に接続している機器の台数や、開発環境、本番環境といった利用目的、その機器を利用している顧客数、その機器を利用している契約上の重要度や銀行などの社会的重要度などがある。このようなあるスタック内の機器の重要性の判断基準となる情報は、顧客情報と密接に関連しており、他のスタックの管理者に教えることができない。
【０１９３】
そこで、第４の実施の形態では、あるスタック内の機器が障害の影響を受けた場合の重要性を、深刻度という数値に置き換えて、他のスタックの影響範囲特定装置に送信する。他のスタック内の機器の深刻度を受信した影響範囲特定装置は、自スタック内の機器を利用している上位側のスタック内の機器の深刻度を考慮して、自スタック内の機器の深刻度を判断する。これにより、各スタックにおいて、自スタック内の機器の深刻度を正しく計算でき、管理者は、障害の影響により深刻なサービス品質低下を招かないように適切に対処することができる。
【０１９４】
以下、第４の実施の形態における第３の実施の形態との相違点について説明する。
図４９は、深刻度を含む情報の受け渡しを示す図である。例えば影響範囲特定装置３００は、上位のスタック５３の影響範囲特定装置２００から、障害影響機器の識別子にその障害影響機器の深刻度を付加した情報を取得する。そして影響範囲特定装置３００は、スタック５２の情報（深刻度を付加した障害影響機器の識別子）と、上位のスタック５３から取得した情報とを、下位のスタック５１の影響範囲特定装置４００に提供する。
【０１９５】
下位のスタック５１の影響範囲特定装置４００は、取得した情報に基づいて障害影響機器を探索し、スタック５２内の障害影響機器に接続されたスタック５２内の新たな障害影響機器の識別子を、スタック５２の影響範囲特定装置３００に送信する。影響範囲特定装置３００は、取得した情報に基づいて障害影響機器を探索し、スタック５２内の障害影響機器に接続された上位のスタック５３内の新たな障害影響機器の識別子を、スタック５３の影響範囲特定装置２００に送信する。
【０１９６】
このように、第４の実施の形態では、影響範囲特定装置３００内で深刻度を算出するため、ダウンフロー処理時に深刻度を算出する。
図５０は、第４の実施の形態におけるダウンフロー処理部の機能を示す図である。第４の実施の形態のダウンフロー処理部３４０ａは、図１５に示した第２の実施の形態のダウンフロー処理部３４０が有する要素に加え、深刻度算出部３４６を有する。
【０１９７】
深刻度算出部３４６は、スタック５２内の障害検知機器および障害影響機器それぞれで提供されるサービスの利用状況に基づいて、障害検知機器および障害影響機器それぞれの深刻度を算出する。また深刻度算出部３４６は、上位のスタック５３と接続している障害検知機器または障害影響機器については、算出した深刻度と接続している上位のスタック５３の機器の深刻度を合算した値を、その障害検知機器または障害影響機器の深刻度とする。そして深刻度算出部３４６は、算出した深刻度を、スタック動作モデルに設定する。
【０１９８】
なお、深刻度の算出方法としては、以下のような方法が考えられる。
［契約上の利用金額に基づいて深刻度を算出する方法］
例えば影響範囲特定装置３００に、スタック５２で提供されるサービスを利用する各顧客の一月ごとの利用金額を記憶するデータベースを設ける。そして深刻度算出部３４６は、前月の利用金額を５段階評価し、利用金額が高い顧客ほど深刻度を高く設定する。例えば深刻度算出部３４６は、利用金額が最も高い評価となる顧客が使用している機器の深刻度を「１００」とする。深刻度算出部３４６は、利用金額が２番目に高い評価となる顧客が使用している機器の深刻度を「８０」とする。深刻度算出部３４６は、その後も同様に、評価が１段階下がるごとに、深刻度を２０ずつ低い値とする。
【０１９９】
［過去の障害により発生した被害額に基づいて深刻度を算出する方法］
例えば影響範囲特定装置３００に、過去の障害事例の業種、顧客規模、およびその被害金額を記憶するデータベースと、現在の顧客の業者と顧客規模とを記憶するデータベースを設ける。そして深刻度算出部３４６は、過去の障害事例の業種、顧客規模とその被害金額から、同等の業種、顧客規模の顧客に対するサービスが停止すると、同様の被害金額が発生するものと推定し、想定被害金額に応じて深刻度を算出する。例えば深刻度算出部３４６は、被害金額が大規模であるほど、深刻度の値を大きくする。
【０２００】
［開発環境か運用環境かの違いに基づいて深刻度を算出する方法］
例えば影響範囲特定装置３００に、顧客による機器の利用が開発環境としての利用か、運用環境としての利用かを記憶するデータベースを設ける。そして深刻度算出部３４６は、機器が開発環境で利用されているか、実際に顧客が業務として利用する運用環境であるかに応じて、その機器の深刻度を算出する。例えば深刻度算出部３４６は、開発環境で利用されている機器の深刻度よりも、運用環境で使用されている機器の深刻度を高くする。
【０２０１】
［接続された上位スタックの機器の台数に基づいて深刻度を算出する方法］
例えば深刻度算出部３４６は、スタック５２内の各機器に接続される上位のスタック５３内の機器の台数を算出する。そして深刻度算出部３４６は、各機器に接続される上位のスタック５３内の機器の台数に応じて深刻度を算出する。例えば深刻度算出部３４６は、接続されている上位のスタック５３内の機器の台数を５段階評価し、接続数の多い機器ほど、深刻度の値を高くする。
【０２０２】
［機器を利用する顧客の業種に基づいて深刻度を算出する方法］
例えば影響範囲特定装置３００に、顧客の業種を記憶するデータベースを設ける。そして深刻度算出部３４６は、銀行などの社会的重要度が高い業種の顧客が利用する機器は、それ以外の機器よりも深刻度を高くする。
【０２０３】
深刻度算出部３４６は、以上のいずれか１つの方法で深刻度を算出してもよく、複数の方法で算出された深刻度の合計を、各機器の深刻度としてもよい。
図５１は、第４の実施の形態におけるスタック動作モデルの一例を示す図である。第４の実施の形態におけるスタック動作モデル３２３は、各機器のレコードに深刻度の欄が追加されている。深刻度の初期値は「０」であり、対応する機器が障害検知機器または障害影響機器となったとき、その機器の深刻度を示す値が、深刻度の欄に設定される。
【０２０４】
図５２は、第４の実施の形態におけるダウンフロー処理の手順の一例を示す図である。以下、図５２に示す処理をステップ番号に沿って説明する。
［ステップＳ５０１］検知情報取得部３４２は、検知情報取得処理を行う。検知情報取得処理の詳細は、図１９に示す第２の実施の形態の検知情報取得処理とほぼ同様である。第４の実施の形態の検知情報取得処理における第２の実施の形態との相違点は、取得する情報に、障害検知機器または障害影響機器の深刻度の値が含まれる点である。
【０２０５】
［ステップＳ５０２］情報収集部３４３は、情報収集処理を行う。情報収集処理により、スタック動作モデルが作成される。情報収集処理の詳細は、図２１に示す第２の実施の形態の情報収集処理とほぼ同様である。第４の実施の形態の情報収集処理における第２の実施の形態との相違点は、図５１に示すように、生成するスタック動作モデル３２３に各機器の深刻度を設定する欄が含まれる点である。
【０２０６】
［ステップＳ５０３］影響探索部３４４は、影響範囲探索処理を行う。影響範囲探索処理の詳細は、図４２に示す第３の実施の形態の影響範囲探索処理とほぼ同様である。第４の実施の形態の影響範囲探索処理における第３の実施の形態との相違点は、情報収集部３４３から取得した検知情報に応じてスタック動作モデル３２３を更新する際に、深刻度の値についても更新する点である。
【０２０７】
［ステップＳ５０４］深刻度算出部３４６は、深刻度算出処理を行う。深刻度算出処理の詳細は後述する（図５７参照）。
［ステップＳ５０５］探索結果通知部３４５は、下位のスタック５１への探索結果通知処理を行う。下位のスタック５１への探索結果通知処理の詳細は、図２７に示す第２の実施の形態の下位のスタック５１への探索結果通知処理とほぼ同様である。第４の実施の形態の下位のスタック５１への探索結果通知処理における第２の実施の形態との相違点は、通知する情報に各機器の深刻度の情報が含まれる点である。
【０２０８】
以下、図５２に示す各ステップの処理を具体的に説明する。
図５３は、第４の実施の形態の検知情報取得処理の一例を示す図である。図５３に示すように、検知情報取得部３４２は、上位スタック検知情報７１ｂと自スタック検知情報７２ｂとを取得する。
【０２０９】
上位スタック検知情報７１ｂには、上位のスタック５３内の機器の識別子（機器名）に対応付けて、その機器が属するスタックのスタックＮｏ．、深刻度、障害発生の有無を示す情報、および障害影響範囲内として検知された回数（影響度）が設定されている。図５３の例では、機器「ａｐｐ＿ａ」の深刻度は「１００」、機器「ａｐｐ＿ｂ」の深刻度は「１０」、機器「ａｐｐ＿ｃ」の深刻度は「８０」である。
【０２１０】
自スタック検知情報７２ｂには、影響範囲特定装置３００が属するスタック５２内の機器の識別子（機器名）に対応付けて、その機器が属するスタックのスタックＮｏ．、深刻度、障害発生情報、および影響度が設定されている。図５３の例では機器「ｂｂ」の深刻度は、「０」である。
【０２１１】
検知情報取得部３４２は、上位スタック検知情報７１ｂと自スタック検知情報７２ｂとを統合した検知情報７３ｂを生成し、生成した検知情報７３ｂを影響探索部３４４に送信する。影響探索部３４４は、受信した検知情報７３ｂに基づいて、スタック動作モデル３２３を更新する。
【０２１２】
図５４は、第４の実施の形態における検知情報を反映させたスタック動作モデルの例を示す図である。検知情報７３ｂを取得した影響探索部３４４は、スタック動作モデル３２３内の各レコードに、探索の起点となる機器か否かを示す情報（「起点機器」の欄の値）を追加する。そして、影響探索部３４４は、検知情報７３ｂに示されている、障害が発生した機器の情報および障害の影響を受ける可能性のある機器の影響度の情報を、スタック動作モデル３２３に反映させる。また、影響探索部３４４は、障害が発生した機器および障害の影響を受ける可能性のある機器が、探索の起点となる機器であることを示す情報を、スタック動作モデル３２３に設定する。さらに影響探索部３４４は、検知情報７３ｂに示されている機器の深刻度を、スタック動作モデル３２３の該当する機器の深刻度として設定する。
【０２１３】
その後、影響探索部３４４により、障害の影響範囲が探索されると、探索結果に応じて、スタック動作モデル３２３が更新される。
図５５は、第４の実施の形態のダウンフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。図５５には、図４０に示したような探索結果を反映させたスタック動作モデル３２３が示されている。図５５の例では、機器「ａａ」、「ｃｃ」それぞれのレコードの影響度の値が「２」に変更され、機器「ｄｄ」、「ｅｅ」それぞれのレコードの影響度の値が「１」に変更されている。
【０２１４】
ダウンフロー処理における影響範囲探索処理が終了すると、深刻度算出部３４６によって、障害影響機器の深刻度が算出され、算出された深刻度がスタック動作モデル３２３に設定される。
【０２１５】
図５６は、スタック動作モデルへの深刻度設定例を示す図である。深刻度算出部３４６は、まず上位のスタック５３の機器の深刻度を考慮に入れずに、スタック５２内の障害検知機器および障害影響機器の深刻度を計算する。図５６の例では、機器「ａａ」の深刻度は「５０」、機器「ｂｂ」の深刻度は「８０」、機器「ｃｃ」の深刻度は「３０」、機器「ｄｄ」の深刻度は「３０」、機器「ｅｅ」の深刻度は「６０」である。
【０２１６】
深刻度算出部３４６は、上位のスタック５３の障害検知機器または障害影響機器に接続されている機器については、該当機器自身の深刻度に対して、接続された上位のスタック５３の機器の深刻度を加算する。図５６の例では、機器「ａａ」については、自身の深刻度「５０」に機器「ａｐｐ＿ａ」の深刻度「１００」が加算され、機器「ａａ」の深刻度は「１５０」となる。また機器「ｄｄ」については、自身の深刻度「３０」に機器「ａｐｐ＿ｃ」の深刻度「８０」が加算され、機器「ｄｄ」の深刻度は「１１０」となる。
【０２１７】
そして深刻度算出部３４６は、スタック５２内の機器について算出した深刻度の値を、スタック動作モデル３２３の該当機器のレコードの深刻度の欄に設定する。
以下、深刻度算出処理の手順について、フローチャートを参照して説明する。
【０２１８】
図５７は、深刻度算出処理の手順の一例を示すフローチャートである。以下、図５７に示す処理をステップ番号に沿って説明する。
［ステップＳ５１１］深刻度算出部３４６は、スタック動作モデル記憶部３２０からスタック動作モデル３２３を読み込む。
【０２１９】
［ステップＳ５１２］深刻度算出部３４６は、スタック５２の障害発生機器または障害影響機器の深刻度を算出する。このステップでは、深刻度算出部３４６は、上位のスタック５３内の機器の深刻度を考慮に入れない。
【０２２０】
［ステップＳ５１３］深刻度算出部３４６は、スタック５２の機器の深刻度に、その機器に接続されている上位のスタック５３の機器の深刻度を加算する。
［ステップＳ５１４］深刻度算出部３４６は、スタック動作モデル３２３の各機器の深刻度を、算出した深刻度の値に更新する。
【０２２１】
このようにして、スタック５２内での障害の影響範囲探索処理が行われ、処理の結果に応じてスタック動作モデル３２３の深刻度が更新される。その後、探索結果通知部３４５により、探索結果通知処理が行われる。
【０２２２】
図５８は、第４の実施の形態のダウンフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３４５は、スタック動作モデル３２３を参照し、スタック５２における障害検知機器と障害影響機器とを示す自スタック探索後検知情報７４ｂを生成する。自スタック探索後検知情報７４ｂには、各機器の深刻度の値が含まれている。そして探索結果通知部３４５は、生成した自スタック探索後検知情報７４ｂを、下位のスタック５１の影響範囲特定装置４００に送信する。
【０２２３】
また探索結果通知部３４５は、スタック動作モデル３２３を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８１ｂを生成する。そして探索結果通知部３４５は、表示データ８１ｂを、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８１ｂに応じた画像が表示される。
【０２２４】
表示データ８１ｂに応じた画像には、例えばスタック５２内の機器間の接続関係と、スタック５２内の機器と上位のスタック５３内の機器との接続関係とが示される。また、表示データ８１ｂに応じた画像では、障害検知機器と障害影響機器とが、強調表示される。例えば、障害検知機器と障害影響機器とは、異なる色で表示される。また表示データ８１ｂに応じた画像では、障害影響機器が、影響度ごとに異なる色で表示される。さらに表示データ８１ｂに応じた画像では、各機器を表すオブジェクトの近くに、対応する機器の深刻度の値が表示される。
【０２２５】
以上が第４の実施の形態のダウンフロー処理である。アップフロー処理では、深刻度は更新されない。従って、第４の実施の形態のアップフロー処理は、第３の実施の形態と同様である。
【０２２６】
図５９は、第４の実施の形態のアップフロー処理における影響範囲の探索結果を反映させたスタック動作モデルの例を示す図である。図５９には、図４４に示した探索結果を反映させたスタック動作モデル３２３が示されている。スタック動作モデル３２３の機器「ａａ」、「ｃｃ」、「ｄｄ」、「ｅｅ」、「ｆｆ」、「ｇｇ」それぞれのレコードの影響度の値には、「１」が加算されている。
【０２２７】
このようなスタック動作モデル３２３に基づいて、探索結果通知処理が行われる。
図６０は、第４の実施の形態のアップフロー処理における探索結果通知処理の一例を示す図である。探索結果通知部３５３は、スタック動作モデル３２３を参照し、スタック５２における障害検知機器と障害影響機器とに接続された上位のスタック５３内の機器を示す自スタック探索後検知情報７６を生成する。そして探索結果通知部３５３は、生成した自スタック探索後検知情報７６を、上位のスタック５３の影響範囲特定装置２００に送信する。
【０２２８】
また探索結果通知部３５３は、スタック動作モデル３２３を参照し、上位のスタック５３と自身が属するスタック５２とのそれぞれにおける障害検知機器と障害影響機器とを示す表示データ８２ｂを生成する。表示データ８２ｂでは、障害影響機器の表示態様は、影響度に応じた表示態様に設定されている。例えば障害影響機器を示すオブジェクトの色が、影響度ごとに異なる色に設定される。さらに表示データ８１ｂでは、各機器を表すオブジェクトの近くに、対応する機器の深刻度の値を示すオブジェクトが設定される。
【０２２９】
そして探索結果通知部３５３は、表示データ８２ｂを、スタック５２の管理者が使用する端末装置３０に送信する。すると端末装置３０に表示データ８２ｂに応じた画像が表示される。
【０２３０】
このようにして、障害検知機器や障害影響機器の障害の影響度と深刻度とが、端末装置３０に表示される。スタック５２の管理者は、表示された画像を参照して、障害に対する対処の優先順を適切に判断することができる。例えば、管理者は、影響度または深刻度のいずれかが所定値以上の機器については、最優先で対処する。
【０２３１】
［その他の実施の形態］
第２〜第４の実施の形態では、同時期に検知された複数の機器の障害の影響を、１つのスタック動作モデルで管理している。これは、同時期に発生した障害であれば、何らかの関連性があるものと想定されるためである。ただし、システムが大規模になれば、複数の異なる原因の障害が同時期に発生する可能性もある。そこで、影響範囲特定装置２００，３００，４００は、障害の影響範囲を探索するごとに、個別のスタック動作モデルを生成してもよい。
【０２３２】
図６１は、障害影響範囲探索ごとのスタック動作モデル生成例を示す図である。例えば情報収集部３４３は、スタック５２の機器情報およびスタック５２の機器と接続している上位スタック機器情報と、各機器間の接続情報のみからなるスタック動作モデル３２４を作成する。情報収集部３４３は、スタック動作モデル３２４を定期的に最新情報に更新する。
【０２３３】
影響探索部３４４は、障害の影響範囲を探索するたびに、スタック動作モデル３２４を元にした影響探索スタック動作モデル３２４ａ，３２４ｂ，・・・を作成する。影響探索スタック動作モデル３２４ａ，３２４ｂ，・・・には、機器ごとのレコードに、深刻度、障害発生の有無、影響度、起点機器となるか否かの情報が含まれる。また影響探索スタック動作モデル３２４ａ，３２４ｂ，・・・には、発生した障害の識別子である障害発生Ｎｏ．が設定されている。
【０２３４】
影響範囲特定装置２００，３００，４００は、他の影響範囲特定装置に情報を送信する場合、送信する情報に、その情報の生成に利用した影響探索スタック動作モデルの障害発生Ｎｏ．を付与する。
【０２３５】
これにより、影響範囲特定装置２００，３００，４００は互いに連携し、いずれかの機器における障害の発生を検知するごとに障害発生Ｎｏ．を生成し、障害の影響範囲、各機器の深刻度、影響度の分析を、障害発生Ｎｏ．ごとに行うことができる。
【０２３６】
また、階層構造の複数のスタックの中には、影響範囲特定装置を導入していないスタックが存在する場合もある。この場合、影響範囲特定装置を導入しているスタック間でのみ、障害の影響を探索することができる。
【０２３７】
図６２は、影響範囲特定装置を導入していないスタックを含むクラウド環境の例を示す図である。図６２では、複数のスタック９１〜９７が階層構造となっている。スタック９２とスタック９３は、同じ層のスタックである。スタック９５とスタック９６も同じ層のスタックである。図６２の例では、スタック９１，９２，９４，９５，９７には、ＶＭによって実現された影響範囲特定装置９１ａ，９２ａ，９４ａ，９５ａ，９７ａが導入されている。それに対して、スタック９３，９６には、影響範囲特定装置が導入されていない。この場合、影響範囲特定装置９１ａ，９２ａ，９４ａ，９５ａ，９７ａ間でのみ障害の影響範囲の探索が行われる。その結果、スタック９１，９２，９４，９５，９７内を伝搬した障害の影響範囲を探索できる。
【０２３８】
また、同じ層に別会社が運営する複数のスタックが存在する場合も考えられる。
図６３は、同じ層に別会社が運営する複数のスタックが存在するクラウド環境の例を示す図である。図６３の例は、スタック９１〜９７のうち、スタック９５とスタック９６は、同じ層でありながら、異なる会社によって管理・運営されているものとする。そしてスタック９１，９２，９４〜９７には、ＶＭによって実現された影響範囲特定装置９１ａ，９２ａ，９４ａ，９５ａ，９６ａ，９７ａが導入されている。このような場合、上下に隣接するスタックのうち、影響範囲特定装置を導入しているそれぞれの会社間で、影響範囲特定装置により、スタックを跨いだ障害影響探索が行われる。
【０２３９】
また影響範囲特定装置は、起点となる機器の種別によって影響度に重み付けを行ってもよい。例えば第２〜第４の実施の形態に示した影響範囲特定装置２００，３００，４００は、起点となる機器が障害検知機器か障害影響機器かによって、その起点からの影響範囲内の機器の影響度に加算する値を変更する。例えば影響範囲特定装置２００，３００，４００は、起点となる機器が障害検知機器であれば、影響範囲内の機器の影響度に「２」を加算し、起点となる機器が障害影響機器であれば、影響範囲内の機器の影響度に「１」を加算する。このように、起点となる機器が障害検知機器の場合は、実際に異常が起きている機器が起点となっているため、起点となる機器が障害影響機器の場合よりも大きな値を影響度に加算する。さらに影響範囲特定装置２００，３００，４００は、例えば、起点となる機器が障害影響機器の場合は、この機器を起点とした障害影響機器の影響度に、起点となる機器の影響度を加算してもよい。
【０２４０】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０２４１】
１  上位影響範囲特定装置
２  影響範囲特定装置
２ａ  記憶部
２ａａ  探索経路情報
２ｂ  処理部
３  下位影響範囲特定装置
１０  クラウドコンピューティングシステム
１１  上位サービス層
１１ａ，１１ｂ，１１ｃ  上位サービス
１２ａ，１２ｂ，１２ｃ  サービス
１３ａ，１３ｂ，１３ｃ，１３ｄ  下位サービス
【図１】
2019121863.tif 000003
【図２】
2019121863.tif 000004
【図３】
2019121863.tif 000005
【図４】
2019121863.tif 000006
【図５】
2019121863.tif 000007
【図６】
2019121863.tif 000008
【図７】
2019121863.tif 000009
【図８】
2019121863.tif 000010
【図９】
2019121863.tif 000011
【図１０】
2019121863.tif 000012
【図１１】
2019121863.tif 000013
【図１２】
2019121863.tif 000014
【図１３】
2019121863.tif 000015
【図１４】
2019121863.tif 000016
【図１５】
2019121863.tif 000017
【図１６】
2019121863.tif 000018
【図１７】
2019121863.tif 000019
【図１８】
2019121863.tif 000020
【図１９】
2019121863.tif 000021
【図２０】
2019121863.tif 000022
【図２１】
2019121863.tif 000023
【図２２】
2019121863.tif 000024
【図２３】
2019121863.tif 000025
【図２４】
2019121863.tif 000026
【図２５】
2019121863.tif 000027
【図２６】
2019121863.tif 000028
【図２７】
2019121863.tif 000029
【図２８】
2019121863.tif 000030
【図２９】
2019121863.tif 000031
【図３０】
2019121863.tif 000032
【図３１】
2019121863.tif 000033
【図３２】
2019121863.tif 000034
【図３３】
2019121863.tif 000035
【図３４】
2019121863.tif 000036
【図３５】
2019121863.tif 000037
【図３６】
2019121863.tif 000038
【図３７】
2019121863.tif 000039
【図３８】
2019121863.tif 000040
【図３９】
2019121863.tif 000041
【図４０】
2019121863.tif 000042
【図４１】
2019121863.tif 000043
【図４２】
2019121863.tif 000044
【図４３】
2019121863.tif 000045
【図４４】
2019121863.tif 000046
【図４５】
2019121863.tif 000047
【図４６】
2019121863.tif 000048
【図４７】
2019121863.tif 000049
【図４８】
2019121863.tif 000050
【図４９】
2019121863.tif 000051
【図５０】
2019121863.tif 000052
【図５１】
2019121863.tif 000053
【図５２】
2019121863.tif 000054
【図５３】
2019121863.tif 000055
【図５４】
2019121863.tif 000056
【図５５】
2019121863.tif 000057
【図５６】
2019121863.tif 000058
【図５７】
2019121863.tif 000059
【図５８】
2019121863.tif 000060
【図５９】
2019121863.tif 000061
【図６０】
2019121863.tif 000062
【図６１】
2019121863.tif 000063
【図６２】
2019121863.tif 000064
【図６３】
2019121863.tif 000065