(57)【要約】【課題】復旧作業手順の安定性及び安全性を提供すること。【解決手段】復旧支援装置は、通信ネットワークを構成する機器群で発生した異常から復旧するための作業手順を示す復旧作業列に基づいて、前記復旧作業列に対する所定の指標値を計算する指標値計算手段と、前記指標値計算手段により計算された指標値を所定の出力先に出力する出力手段と、を有することを特徴とする。【選択図】図１
2020086474.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを構成する機器群で発生した異常から復旧するための作業手順を示す復旧作業列に基づいて、前記復旧作業列に対する所定の指標値を計算する指標値計算手段と、
前記指標値計算手段により計算された指標値を所定の出力先に出力する出力手段と、
を有することを特徴とする復旧支援装置。
【請求項２】
前記指標値計算手段は、
前記指標値として、前記復旧作業列の実行によって前記異常から復旧可能な確実性を示す安定性と、前記復旧作業列の実行によって前記機器群の性能値及び前記通信ネットワークの疎通性に与える影響を示す安全性とのうちの少なくとも一方を計算する、ことを特徴とする請求項１に記載の復旧支援装置。
【請求項３】
前記指標値計算手段は、
前記復旧作業列に含まれる各作業が実行された場合における前記性能値に対する影響度と前記疎通性に対する影響度との合計値が予め学習された関数を用いて、前記安全性を計算する、ことを特徴とする請求項２に記載の復旧支援装置。
【請求項４】
前記指標値計算手段は、
前記復旧作業列に含まれる各作業が実行された場合における前記性能値の変化量と前記疎通性の変化量とが予め学習された関数を用いて、前記安全性を計算する、ことを特徴とする請求項２に記載の復旧支援装置。
【請求項５】
前記指標値計算手段は、
前記関数としてＳＶＲ又はＤＮＮを用いて、前記安全性を計算する、ことを特徴とする請求項３又は４に記載の復旧支援装置。
【請求項６】
前記指標値計算手段は、
前記復旧作業列に含まれる各作業が実行される確率、エントロピー又はパープレキシティを用いて、前記安定性を計算する、ことを特徴とする請求項２乃至５の何れか一項に記載の復旧支援装置。
【請求項７】
通信ネットワークを構成する機器群で発生した異常から復旧するための作業手順を示す復旧作業列に基づいて、前記復旧作業列に対する所定の指標値を計算する指標値計算手順と、
前記指標値計算手順で計算された指標値を所定の出力先に出力する出力手順と、
をコンピュータが実行することを特徴とする復旧支援方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか一項に記載の復旧支援装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復旧支援装置、復旧支援方法及びプログラムに関する。
【背景技術】
【０００２】
近年、仮想化ネットワーク等では管理・制御対象数が膨大になってきており、異常や故障、障害、トラブル等（以降、異常や故障、障害、トラブル等をまとめて単に「異常」と表す。）が発生した際の運用負荷低減のため、異常発生時の制御の自動化が必要となってきている。特に、異常発生時に自動復旧を行うことは、顧客サービスに対する影響の最小化やオペレータの稼働削減等のために重要である。
【０００３】
異常発生時の自動復旧に関連する技術として、異常から復旧するための作業手順（以降、「復旧作業手順」とも表す。）を示す復旧作業列を自動的に生成する技術（以降、「自動生成技術」とも表す。）が知られている。例えば、複数のトラブルチケットを用いて、復旧作業手順をワークフローとして作成及び可視化する技術が提案されている（例えば、非特許文献１及び２）。なお、トラブルチケットとは、過去の異常発生時における復旧作業手順等が記載された対応記録のことである。
【０００４】
上記の自動生成技術では、例えば、通信ネットワーク上で発生したアラートに対して、そのアラートに対応する複数のトラブルチケットに記載されている復旧作業手順の共通部分と作業の分岐ポイントとを自動で抽出している。異常発生時の復旧方法は試行錯誤が必要であったり、複数の復旧方法があったりする場合があり、同一の異常であってもトラブルチケットの記載内容が異なっていることが多い。そこで、自動生成技術では、トラブルチケットに記載されている過去の復旧作業手順等を用いて、各異常に対して複数の復旧作業列を生成する。
【０００５】
このとき、過去に発生した回数が多い異常に関しては、この異常に対処した回数も多いためトラブルチケットの記載内容から定型的な復旧作業列を生成することができる。定型的な復旧作業列は、当該異常に対して正確な復旧作業手順（つまり、確実に異常から復旧可能な作業手順）と見做すことができる。
【０００６】
また、復旧作業列を自動的に実行する技術（以降、「自動実行技術」とも表す。）として、ランブック・オートメーション（ＲＢＡ：Run Book Automation）と呼ばれるツール（又はプログラム等）が知られている。近年では、このようなツールがネットワーク機器ベンダ等からも提供されており、復旧作業列の自動実行が実現されている。
【０００７】
また、自動実行のトリガーとなるアラートと復旧作業手順とを一対一に対応させたルールを用いたルールベース手法も知られている。このようなルールは、例えば、上記の自動生成技術を用いずに、過去の異常発生時の成功事例等に基づいて、復旧作業手順の実行に伴う顧客サービスやシステムへの影響を確認しながらオペレータ等により作成される。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】A. Watanabe, K. Ishibashi, T. Toyono, T. Kimura, K. Watanabe, Y. Matsuo and K. Shiomoto, "Workflow Extraction for Service Operation using Multiple Unstructured Trouble Tickets", IEEE/IFIP NOMS 2016 (mini-conf.), pp. 652-658, Apr. 2016.
【非特許文献２】川原 亮一，渡辺 敬志郎，原田 薫明，川田 丈浩，"ネットワークオペレーションのAI活用", 通信ソサエティマガジン, 12巻, vol.1, pp.29-38, 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ここで、上記の自動生成技術では、異常の種別やトラブルチケットの数等によって定型的な復旧作業列を生成することができるか否かが変わる。しかしながら、生成された復旧作業列が正確であるか否か（つまり、確実に異常から復旧可能であるか否か）の判定は行っていないため、当該復旧作業列をそのまま実行すると誤った復旧作業を行ってしまう場合がある。なお、以降では、復旧作業列の正確性を示す指標値を「安定性」と表す。
【００１０】
一方で、上記の自動実行技術は、どの復旧作業列（つまり、どの復旧シナリオ）を実行するか等の判定に特化している場合が多く、復旧作業列の実行に伴う顧客サービスやシステムへの影響は考慮していない。しかしながら、例えばネットワーク異常は復旧作業時のオペレーション起因で発生する場合も多い。このため、復旧作業列の実行がより大きな被害に繋がる場合もあり、復旧作業列を自動的に実行することはリスクを伴う。
【００１１】
また、上記のルールベース手法では、ルールを作成する際に、オペレータ等は顧客サービスやシステムへの影響を確認する必要があり、多大な稼働を要する。なお、以降では、復旧作業列（復旧作業手順）の実行に伴う顧客サービスやシステムへの影響を示す指標値を「安全性」と表す。
【００１２】
本発明は、上記の点に鑑みてなされたもので、復旧作業手順の安定性及び安全性を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の実施の形態における復旧支援装置は、通信ネットワークを構成する機器群で発生した異常から復旧するための作業手順を示す復旧作業列に基づいて、前記復旧作業列に対する所定の指標値を計算する指標値計算手段と、前記指標値計算手段により計算された指標値を所定の出力先に出力する出力手段と、を有することを特徴とする。
【発明の効果】
【００１４】
復旧作業手順の安定性及び安全性を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【図２】本発明の実施の形態における復旧支援処理の一例を示すフローチャートである。
【図３】復旧作業に関するワークフローの一例を示す図である。
【図４】本発明の実施の形態における復旧支援装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、通信ネットワーク（仮想化ネットワークも含む。）で異常が発生した場合に、当該異常から復旧するための１以上の復旧作業列を生成し、これらの復旧作業列の安定性及び安全性をユーザ等に提供することで、当該異常から復旧を支援する復旧支援装置１０について説明する。例えば、ユーザ等は、復旧作業列の安定性及び安全性（又は、安定性と安全性との合計）を確認することで、当該復旧作業列を実行するか否かを判断することができる。なお、本発明の実施の形態では、復旧作業列は、例えば、上記の非特許文献１又は２に記載されている自動生成技術により生成されるものとする。
【００１７】
ここで、復旧作業列の安定性及び安全性（又は、安定性と安全性との合計）は、例えば、自動実行技術を実現するツール等に提供されてもよい。この場合、当該ツールが、当該復旧作業列の安定性及び安全性に基づいて、当該復旧作業列を実行するか否かを判定することになる。
【００１８】
本発明の実施の形態では、復旧作業列とは、異常から復旧するための作業手順（復旧作業手順）のことである。復旧作業列は、システムに対する作業系列で表される。なお、システムとは、通信ネットワークを構成する各種機器（ネットワーク機器やネットワーク機器を監視又は制御する装置等も含む。）のことである。
【００１９】
作業とは、システムに対してオペレータ等が行う操作（例えば、コマンドの実行操作やログ中の文字列検索操作等）やエンジニア等が行う物理的な作業（例えば、部品の交換等）等のことである。すなわち、作業とは、異常から復旧するために人が実行する何等かの復旧作業（特に、システムに対する操作を含む作業）のことを意味する。なお、作業手順は、例えば、「作業フロー」又は「ワークフロー」と称されてもよい。
【００２０】
ただし、復旧作業列は、異常から復旧するためのコマンド系列であってもよい。この場合、復旧作業列は「復旧コマンド列」又は単に「コマンド列」とも称されるが、本発明の実施の形態では、復旧コマンド列（又はコマンド列）も「復旧作業列」と表すものとする。同様に、復旧コマンド列を構成する各コマンドも「作業」と表すものとする。すなわち、以降で説明する実施の形態では、「復旧作業列」とは、異常から復旧するために人が実行する何等かの作業の系列（作業系列）であってもよいし、異常から復旧するためのコマンド系列であってもよい。
【００２１】
ここで、上述したように、安定性とは復旧作業列の正確性を示す指標値のことであり、安全性とは復旧作業列の実行に伴う顧客サービスやシステムへの影響を示す指標値のことである。なお、顧客サービスやシステムに影響あるとは、例えば、復旧作業やコマンドにより通信が遮断したり、システムに対して高負荷な作業等が行われたりすることで、顧客サービスやシステムが一時的に利用不可となったり、利用が制限されたりすること等をいう。システムに対する高負荷作業には、例えば、「システム全体への文字列検索」等の処理自体が高負荷となる作業の他、「システムの再起動」や「通信インタフェースのｄｏｗｎ／ｕｐ」等のシステム全体又は一部の機能が一時的に利用不可となる作業も含まれる。
【００２２】
＜安定性＞
本発明の実施の形態では上記の非特許文献１又は２に記載されている自動生成技術によって各異常に対して複数の復旧作業列が生成されるが、復旧作業列が定型的であるか否かにより正確性を判定することができると考えられる。そこで、安定性を「復旧作業列の一意性」と定義する。この一意性を計算することで、復旧作業列の安定性が得られる。
【００２３】
一意性を計算する方法としては任意の方法を用いることができるが、例えば、エントロピーを計算する、パープレキシティを計算する、復旧作業列を構成する各作業の確率を計算する等の方法が挙げられる。以降では、一例として、復旧作業列を構成する各作業の確率を計算する方法について説明する。
【００２４】
或る異常ｓに対して生成される復旧作業列を
【００２５】
【数１】
2020086474.tif 000003
とする。ここで、Ｎは復旧作業列を構成する作業数、ｘｉｓ（ｉ＝１，・・・，Ｎ）はＭ種類の作業の確率を要素ｘｉｊｓ（ｊ＝１，・・・，Ｍ）とするＭ次元のベクトルとする。Ｍは異常から復旧するための作業の種類数である。
【００２６】
また、復旧作業列を実行する際には、各作業の中で確率が最大となる種類の作業を実行するものとする。すなわち、ｉ＝１，・・・，Ｎに対して、
【００２７】
【数２】
2020086474.tif 000004
を実行するものとする。
【００２８】
すなわち、例えば、作業（コマンド）の種類が「systemctl stop network」、「system start network」及び「shutdown -h npw」の３種類（つまり、Ｍ＝３）であり、或るｉに対して、ｘｉ＝［０．９，０，０．１］であるとした場合、ｉ番目の作業としては、確率が９０％である「systemctl stop network」が実行される。
【００２９】
このとき、安定性は以下により計算される。
【００３０】
【数３】
2020086474.tif 000005
例えば、或る同一種類の異常が過去に多数発生していた場合、当該異常に対応するトラブルチケットも多数存在し、復旧作業手順も定まってくると考えられるため、復旧作業列を構成するｘｉｓでは或る特定種類の作業の確率ｘｉｊ´ｓ（ｊ´∈｛１，・・・，Ｍ｝）が高くなる。したがって、過去に頻発した異常に対しては、この異常に対する復旧作業列の安定性は高くなる。
【００３１】
一方で、稀な異常（つまり、過去にあまり発生していない異常）に対しては、復旧作業手順もあまり定まっておらず、復旧作業列を構成するｘｉｓではどの種類の作業の確率ｘｉｊｓ（ｊ＝１，・・・，Ｍ）もあまり変わらない場合が多い。したがって、稀な異常に対しては、この異常に対する復旧作業列の安定性は低くなる。
【００３２】
＜安全性＞
異常から復旧するための作業の中には、通信の遮断が発生したり、システムが高負荷となったりするものがある（例えば、システムの再起動やシステム全体への文字列検索等）。このため、予期せずに顧客サービスが利用不可となったり、他のサービスに何等かの影響が発生したりする場合がある（すなわち、復旧作業によって二次災害が発生する場合がある。）。
【００３３】
そこで、以降では、復旧作業列の安全性を定義する。
【００３４】
（安全性の定義（その１））
安全性の定義（その１）では、安全性を「復旧作業列を構成する各作業ｘｉｓ（ｉ＝１，・・・，Ｎ）の各々がシステムの性能値に与える影響度と通信ネットワークの疎通性に与える影響度との合計値に応じた値」と定義する。この合計値に応じた値を計算することで、復旧作業列の安全性が得られる。
【００３５】
ここで、システムの性能値とは、当該システムの計算資源（例えば、ＣＰＵ（Central Processing Unit）等）やメモリ資源（例えば、ＨＤＤ（Hard Disk Drive）等）、通信インタフェース等の各種ハードウェア資源の使用率等のことである。
【００３６】
このとき、安全性は以下により計算される。
【００３７】
【数４】
2020086474.tif 000006
ここで、関数ｆ（・）は作業ｘｉｓがシステムの性能値に与える影響度と通信ネットワークの疎通性に与える影響度との合計値ｙを予測する関数であり、機械学習の手法により事前に学習させておく。これにより、復旧作業列を構成する各作業ｘｉｓの影響度の合計値（性能値に与える影響度と疎通性に与える影響度との合計値）が小さい程、当該復旧作業列の安全性は高くなり、一方で、当該合計値が大きい程、当該復旧作業列の安全性は低くなる。
【００３８】
関数ｆの学習方法としては、例えば、まず、過去のトラブルチケットに記載されている各作業ｘｉｓに対して、その作業が実行された場合におけるシステムの性能値に与える影響度と通信ネットワークの疎通性に与える影響度との合計値ｙを正解データとして付与して、学習データを作成する。これらの学習データは、例えば、過去のトラブルチケットに記載されている１つ１つの作業ｘｉｓに対してオペレータ等が正解データを付与することで作成すればよい。
【００３９】
そして、これらの学習データを用いて、ｆ（ｘｉｓ）が正解データｙに近付くように、任意の最適化手法により学習を行えばよい。ここで、ｆとしては、例えば、ＳＶＲ（Support Vector Regression）やＤＮＮ（Deep Neural Network）等を用いることができる。なお、ＳＶＲについては、例えば、以下の参考文献１を参照されたい、また、ＤＮＮについては、例えば、以下の参考文献２を参照されたい。
【００４０】
［参考文献１］
V. Vapnik, A. Lerner. "Pattern recognition using generalized portrait method", Automation and Remote Control, 24, 1963.
［参考文献２］
D. S. Broomhead, David Lowe, "Radial basis functions, multi-variable functional interpolation and adaptive networks", (Technical report). RSRE. No. 4148,1988.
ここで、影響度（つまり、システムの性能値に与える影響度及び通信ネットワークの疎通性に与える影響度）はオペレータが任意に決定することができるが、例えば、単位時間あたりの性能値の変化量（以降、「性能値変化量」とも表す。）や単位時間あたりの疎通性の変化量（以降、「疎通性変化量」とも表す。）に基づいて決定することが好ましい。これにより、影響度を、作業が実行された場合におけるシステム及び通信ネットワークへの影響を事前に予測することが可能な指標とすることができる。なお、性能値変化量は、例えば、ｓａｒ（System Admin Reporter）コマンドにより取得することができる。また、疎通性変化量は、例えば、ｐｉｎｇ等により取得することができる。通信インタフェースのｄｏｗｎ／ｕｐは、例えば、システムからのアラート等から取得することができる。
【００４１】
また、オペレータが特に重視したい項目（例えば、疎通性）については、その変化量に対する影響度を大きくしてもよい。これにより、システムや通信ネットワークの運用に応じた影響度を計算することができるようになる。
【００４２】
また、例えば、異常があまり発生しない等の理由により、過去のトラブルチケットが少数しか存在しない場合がある。この場合、上記の学習方法では学習データが少量しか作成することができない。このため、このような場合には、例えば、プロセスの再起動等では性能値及び疎通性に対して正常時及び異常時いずれにおいても同様の影響を与えると考えて、正常時に多数の作業（例えば、多数のコマンド）を実行し、その時の性能値変化量及び疎通性変化量から影響度を決定することで学習データを作成してもよい。これにより、過去のトラブルチケットが少数しか存在しない場合でも大量の学習データを作成することができる。
【００４３】
（安全性の定義（その２））
安全性の定義（その１）では安全性を「復旧作業列を構成する各作業ｘｉｓ（ｉ＝１，・・・，Ｎ）の各々がシステムの性能値に与える影響度と通信ネットワークの疎通性に与える影響度との合計値に応じた値」と定義した。したがって、オペレータは、学習データを作成する際に、例えば、性能値変化量や疎通性変化量から影響度を決定した上で、各作業ｘｉｓに対して正解データを付与する必要がある。このため、大量の学習データを作成する場合には、オペレータの稼働が多大となることがある。
【００４４】
そこで、安全性の定義（その２）として、安全性を「復旧作業列を構成する各作業ｘｉｓ（ｉ＝１，・・・，Ｎ）の各々を実行した場合におけるシステムの性能値変化量と通信ネットワークの疎通性変化量とのそれぞれの値の合計値」と定義してもよい。これにより、例えば、ｓａｒコマンドにより取得した性能値変化量やｐｉｎｇ等により取得した疎通性変化量等を正解データとして使用することができるため、学習データを作成する際のオペレータの稼働を少なくすることができる。
【００４５】
ｙｉを、性能値変化量及び疎通性変化量を各要素ｙｉｋとするＫ次元ベクトルとする。ここで、Ｋは、性能値変化量の種類と疎通性変化量の種類との合計数である。例えば、性能値変化量として「ＣＰＵ使用率」及び「メモリ使用率」、疎通性変化量として「ｐｉｎｇ疎通度合い」を用いる場合、Ｋ＝３である。
【００４６】
そして、ｙｉの各要素ｙｉｋを予測する関数ｆを
【００４７】
【数５】
2020086474.tif 000007
として、この関数ｆを事前に学習させておく。つまり、関数ｆ（・）を作業ｘｉｓから性能値変化量及び疎通性変化量に予測する関数として、事前に学習させておく。なお、ｆは、ｙｉのｋ番目の要素（つまり、ｋ番目の変化量）を予測する関数をｆｋとして、ｆ＝（ｆ１，・・・，ｆｋ，・・・，ｆＫ）と表される。
【００４８】
このとき、安全性は以下により計算される。
【００４９】
【数６】
2020086474.tif 000008
関数ｆの学習方法は、影響度を予測する場合の関数ｆと同様であるが、ｆｋにより予測する変化量のｐ種類に応じた性能値変化量又は疎通性変化量を正解データとして用いる。なお、関数ｆは、上記と同様に、例えば、ＳＶＲやＤＮＮ等を用いることができる。
【００５０】
また、上記と同様に、例えば、異常があまり発生しない等の理由により、過去のトラブルチケットが少数しか存在しない場合には、プロセスの再起動等では正常時及び異常時いずれにおいても同様の性能値変化量及び疎通性変化量であると考えて、正常時に多数の作業（例えば、多数のコマンド）を実行し、その時の性能値変化量及び疎通性変化量から学習データを作成してもよい。これにより、過去のトラブルチケットが少数しか存在しない場合でも大量の学習データを作成することができる。
【００５１】
＜システムの全体構成＞
次に、本発明の実施の形態におけるシステムの全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【００５２】
図１に示すように、本発明の実施の形態におけるシステムには、復旧支援装置１０と、機器群２０とが含まれる。
【００５３】
機器群２０は、通信ネットワークを構成する各種機器（例えば、ネットワーク機器やネットワーク機器を監視又は制御する装置等）のことである。機器群２０に含まれる各機器によって顧客サービス等が実現される。
【００５４】
復旧支援装置１０は、機器群２０で発生した異常を検知し、当該異常からの復旧を支援するコンピュータ又はコンピュータシステムである。このとき、復旧支援装置１０は、当該異常から復旧するための１以上の復旧作業列を生成し、これらの復旧作業列の安定性及び安全性をユーザ等に提供する。なお、復旧支援装置１０は、例えば、複数のコンピュータで構成されるサーバ等であってもよいし、ＰＣ（パーソナルコンピュータ）等であってもよい。
【００５５】
ここで、復旧支援装置１０は、異常検知部１０１と、復旧作業列生成部１０２と、指標値計算部１０３と、ＵＩ部１０４と、乖離度計算部１０５と、再学習指示部１０６とを有する。これら各機能部は、復旧支援装置１０にインストールされた１以上のプログラムがプロセッサに実行させる処理により実現される。
【００５６】
また、復旧支援装置１０は、過去事例ＤＢ１１０と、変化量ＤＢ１２０とを有する。これら各ＤＢ（データベース）は、例えばＨＤＤ等の補助記憶装置を用いて実現可能である。なお、これら各ＤＢの少なくとも１つが、復旧支援装置１０と通信ネットワークを介して接続される記憶装置等を用いて実現されていてもよい。
【００５７】
異常検知部１０１は、機器群２０に含まれる機器で発生した異常を検知する。なお、異常検知部１０１は、既知の任意の異常検知技術により、当該異常を検知すればよい。例えば、異常検知部１０１は、機器群２０に含まれる各機器の生死確認を行うことで異常を検知してもよいし、機器群２０に含まれる各機器からアラートを受信することで異常を検知してもよい。
【００５８】
復旧作業列生成部１０２は、異常検知部１０１により異常が検知された場合、例えば上記の非特許文献１や非特許文献２に記載された自動生成技術により、当該異常から復旧するための１以上の復旧作業列を生成する。このとき、復旧作業列生成部１０２は、過去自列ＤＢ１１０に格納されているトラブルチケット等を用いて、各復旧作業列を生成する。なお、生成される復旧作業列は１つでもよいが、本発明の実施の形態では、複数の復旧作業列が生成されるものとする。
【００５９】
ここで、過去事例ＤＢ１１０には、過去のトラブルチケットが格納されている。ただし、これ以外にも、復旧作業列の生成や異常検知に必要な情報（例えば、機器群２０の構成情報等）が過去事例ＤＢ１１０に格納されていてもよい。
【００６０】
指標値計算部１０３は、復旧作業列生成部１０２により生成された複数の復旧作業列の各々に対して、指標値として、安定性及び安全性を計算する。このとき、指標値計算部１０３は、変化量ＤＢ１２０に格納されている性能値変化量及び疎通性変化量を用いて、安全性を計算する。なお、指標値計算部１０３により計算される安全性は、上記の数４又は数６により計算されるものであり、正確には安全性の予測値である。
【００６１】
ここで、変化量ＤＢ１２０には、作業毎に、当該作業が実行された場合における性能値変化量及び疎通性変化量が格納されている。ただし、これ以外にも、当該作業が性能値変化量に与える影響度と疎通性変化量に与える影響度とが変化量ＤＢ１２０に格納されていてもよい。
【００６２】
ＵＩ部１０４は、指標値計算部１０３により計算された安定性及び安全性をＵＩ（ユーザインタフェース）等に出力してユーザに提示する。
【００６３】
乖離度計算部１０５は、復旧作業列が実行された場合、当該復旧作業列の安全性の予測値と、安全性の実測値との乖離度を計算する。ここで、安全性の実測値とは、実行された復旧作業列から実際に得られる性能値変化量及び疎通性変化量を用いて計算される安全性のことである。
【００６４】
なお、安全性の定義が「安全性の定義（その１）」である場合、安全性の実測値についても「安全性の定義（その１）」に従って計算された実測値を用いる。同様に、安全性の定義が「安全性の定義（その２）」である場合、安全性の実測値についても「安全性の定義（その２）」に従って計算された実測値を用いる。
【００６５】
再学習指示部１０６は、乖離度計算部１０５により計算された乖離度が所定の閾値以上であった場合（つまり、安全性の予測値と実測値との乖離が大きい場合）、関数ｆの再学習を指示する。
【００６６】
なお、図１に示す例では、各機能部及び各ＤＢを１つの装置が有している場合を示したが、これは一例であって、各機能部の一部や各ＤＢの一部を他の装置が有していてもよい。すなわち、上記の各機能部及び上記の各ＤＢを複数の装置で分散して有していてもよい。
【００６７】
＜復旧支援処理＞
次に、機器群２０に含まれる機器で異常が発生した場合に、当該異常からの復旧を支援する処理（復旧支援処理）について、図２を参照しながら説明する。図２は、本発明の実施の形態における復旧支援処理の一例を示すフローチャートである。
【００６８】
まず、異常検知部１０１は、機器群２０に含まれる機器で発生した異常を検知する（ステップＳ１０１）。次に、復旧作業列生成部１０２は、過去事例ＤＢ１１０に格納されているトラブルチケット等を用いて、既知の自動生成技術により複数の復旧作業列を生成する（ステップＳ１０２）。
【００６９】
次に、指標値計算部１０３は、上記のステップＳ１０２で生成された複数の復旧作業列の中から１つの復旧作業列を選択する（ステップＳ１０３）。そして、指標値計算部１０３は、変化量ＤＢ１２０に格納されている情報（性能値変化量や疎通性変化量、影響度等）を用いて、選択した復旧作業列に対して、上記の数３により安定性を計算すると共に、上記の数４又は数６により安全性を計算する（ステップＳ１０４）。なお、上記の数４により安全性を計算するか又は上記の数６により安全性を計算するかは、例えば設定情報等により予め決定される。
【００７０】
ここで、上記のステップＳ１０３で未だ選択されていない復旧作業列が存在する場合、ステップＳ１０３に戻る。これにより、上記のステップＳ１０４では、複数の復旧作業列に含まれる各復旧作業列に対して、その安定性及び安全性が計算される。
【００７１】
ＵＩ部１０４は、各復旧作業列の安定性及び安全性（又は、その合計）をＵＩ等に出力する（ステップＳ１０５）。これにより、上記のステップＳ１０２で生成された複数の復旧作業列の各々の安定性及び安全性（又は、その合計）がユーザに提示される。なお、ユーザは、例えば、安定性及び安全性（又は、その合計）を参考に、どの復旧作業列を実行させるかを選択することができる。ユーザにより復旧作業列が選択されることで、選択された復旧作業列が実行される。これにより、機器群２０に含まれる機器で発生した異常からの復旧が行われる。
【００７２】
ここで、上述したように、各復旧作業列の安定性及び安全性（又は、その合計）は、例えば、自動実行技術を実現するツール等に提供されてもよい。この場合、当該ツールが、各復旧作業列の安定性及び安全性（又は、その合計）に基づいて、どの復旧作業列を実行するかを判定した上で、復旧作業列を実行させる。なお、このようなツールは、例えば、安定性及び安全性のいずれもが所定の閾値以上であり、かつ、最も安定性及び安全性が高い復旧作業列を実行させると判定すればよい。
【００７３】
このように、各復旧作業列の安定性及び安全性の出力先は、ＵＩであってもよいし、自動実行技術を実現するツール等のプログラムであってもよい。これら以外にも、安定性及び安全性の出力先としては、ＨＤＤ等の補助記憶装置であってもよいし、通信ネットワークを介して接続される他の装置等であってもよい。
【００７４】
復旧作業列が実行された場合、乖離度計算部１０５は、当該復旧作業列の安全性の予測値と、安全性の実測値との乖離度を計算する（ステップＳ１０６）。ここで、乖離度としては、例えば、当該復旧作業列の安全性の予測値と、安全性の実測値との差とすればよい。
【００７５】
続いて、再学習指示部１０６は、上記のステップＳ１０６で計算された乖離度が所定の閾値以上であった場合（つまり、安全性の予測値と実測値との乖離が大きい場合）、関数ｆの再学習を指示する（ステップＳ１０７）。ここで、再学習指示部１０６は、指標値計算部１０３に再学習を指示することで関数ｆを再学習してもよいし、ＵＩ部１０４に再学習を指示することでユーザに対して関数ｆの再学習を促すＵＩを提示してもよい。
【００７６】
なお、本発明の実施の形態では、復旧作業列に対して安定性及び安全性の両方を計算したが、必ずしも両方が計算される必要はなく、例えば、安定性及び安全性のいずれか一方のみが計算されてもよい。
【００７７】
＜具体例＞
ここで、安定性及び安全性の計算の具体例を図３のワークフローを用いて説明する。図３に示すワークフローは、或る異常ｓが発生した場合に、過去のトラブルチケットを用いて、上記の非特許文献１に記載された技術によって可視化されたワークフロー（つまり、復旧作業に関するワークフロー）の一例である。
【００７８】
図３に示す例では、作業ノードは、ワークフローを構成する１つの作業を表すノードである。また、作業ノード内の各ボックスには、当該ノードを経由するワークフローが実行する具体的な作業が記載されている。例えば、ワークフローＡは、作業ノード１→作業ノード２→作業ノード４→作業ノード７を経由し、作業ノード１では「作業Ａ−１」を実行し、作業ノード２では「作業Ａ−２」を実行し、作業ノード４では「作業Ａ−４」を実行し、作業ノード７では「作業Ａ−７」を実行する。同様に、ワークフローＢは、作業ノード１→作業ノード２→作業ノード５→作業ノード７を経由し、作業ノード１では「作業Ｂ−１」を実行し、作業ノード２では「作業Ｂ−２」を実行し、作業ノード５では「作業Ｂ−５」を実行し、作業ノード７では「作業Ｂ−７」を実行する。他のワークフローも同様である。
【００７９】
また、同一作業ノード内の各ボックスに記載された各作業は、実質的に同一内容の作業と見做せるものである。例えば、作業ノード１が「異常検知」の作業内容を表すノードであるとすれば、「作業Ａ−１」〜「作業Ｅ−１」はいずれも異常検知のための具体的な作業を表す。例えば、「作業Ａ−１」は「○○監視装置からのアラートによる異常検知」、「作業Ｂ−１」は「保守担当者甲からの電話連絡による異常検知」、「作業Ｃ−２」は「××監視装置からのアラートによる異常検知」等である。他の作業ノード及びボックスについても同様である。
【００８０】
更に、同一作業ノード内のボックス数はその作業を行った頻度を表し、或る作業ノードから他の作業ノードへの矢印の本数は或る作業から他の作業へ遷移する頻度を表す。例えば、作業ノード１の作業を行った頻度は「５」、作業ノード２の作業を行った頻度は「４」等である。同様に、例えば、作業ノード１から作業ノード２へ遷移する頻度は「４」、作業ノード１から作業ノード３へ遷移する頻度は「１」等である。他の作業ノードについても同様である。
【００８１】
図３に示す例における各ワークフロー（つまり、復旧作業列）に対して安定性及び安定性を計算すると、以下のようになる。
【００８２】
（安定性）
ワークフローＡ：作業ノード１→作業ノード２→作業ノード４→作業ノード７と各作業ノードを経由する。このため、作業ノード１→作業ノード２へ遷移する頻度を用いて、作業ノード２の作業の確率は４／５となる。同様に、作業ノード２→作業ノード４へ遷移する頻度を用いて、作業ノード４の作業の確率は１／４となる。同様に、作業ノード４→作業ノード７へ遷移する頻度を用いて、作業ノード７の作業の確率は１となる。これにより、ワークフローＡの安定性は、ｌｏｇ（４／５）＋ｌｏｇ（１／４）＝−ｌｏｇ５となる。
【００８３】
ワークフローＢ：上記と同様に計算することで、ワークフローＢの安定性は、ｌｏｇ（４／５）＋ｌｏｇ（３／４）＝ｌｏｇ（３／５）となる。ワークフローＣ及びワークフローＤも同様である。
【００８４】
ワークフローＥ：上記と同様に計算することで、ワークフローＥの安定性は、ｌｏｇ（１／５）＝−ｌｏｇ５となる。
【００８５】
したがって、安定性は、ワークフローＢ（＝ワークフローＣ＝ワークフローＤ）＞ワークフローＡ＝ワークフローＥとなる。
【００８６】
（安全性）
図３に示す例では、簡単のため、ｆ（作業Ａ−４）＝５、ｆ（作業Ｅ−６）＝３、ｆ（作業Ｂ−５）＝ｆ（作業Ｃ−５）＝ｆ（作業Ｄ−５）＝１０、ｆ（作業Ａ−７）＝ｆ（作業Ｂ−７）＝ｆ（作業Ｃ−７）＝ｆ（作業Ｄ−７）＝１、ｆ（その他の作業）＝０と関数ｆが事前に学習されているものとする。
【００８７】
ワークフローＡ：ワークフローＡの安全性は、ｌｏｇ（１／５）＋ｌｏｇ（１／１）＝ｌｏｇ（１／５）となる。
【００８８】
ワークフローＢ：上記と同様に計算することで、ワークフローＢの安全性は、ｌｏｇ（１／１０）＋ｌｏｇ（１／１）＝ｌｏｇ（１／１０）となる。
【００８９】
ワークフローＥ：上記と同様に計算することで、ワークフローＥの安全性は、ｌｏｇ（１／３）＋ｌｏｇ（１／１）＝ｌｏｇ（１／３）となる。
【００９０】
したがって、安全性は、ワークフローＥ＞ワークフローＡ＞ワークフローＢ（＝ワークフローＣ＝ワークフローＤ）となる。
【００９１】
以上により、図３に示す例では、安定性はワークフローＢ（＝ワークフローＣ＝ワークフローＤ）＞ワークフローＡ＝ワークフローＥとなり、安全性はワークフローＥ＞ワークフローＡ＞ワークフローＢ（＝ワークフローＣ＝ワークフローＤ）となった。
【００９２】
このことは、ユーザは、例えば、ワークフローＢ（＝ワークフローＣ及びワークフローＤ）は、過去の実行回数が多い一方で、システムに与える影響度は大きいことを意味している。したがって、ユーザは、ワークフローＢ（＝ワークフローＣ及びワークフローＤ）の実行を判断する際には、システムの性能値及び疎通性を考慮して慎重に行う必要があることがわかる。このように、復旧作業列の安定性及び安全性を提示することで、復旧作業列の実行を判断する際や復旧作業列を自動実行させる際等に、適切な判断又は判定を行うことができるようになる。
【００９３】
また、復旧作業列の安定性及び安全性が復旧支援装置１０によって計算されることで、例えば、オペレータは、復旧作業列の安定性及び安全性をシステム構成図等により自身で確認する必要がなくなり、異常発生に伴う稼働を削減することもできる。
【００９４】
＜復旧支援装置１０のハードウェア構成＞
最後に、本発明の実施の形態における復旧支援装置１０のハードウェア構成について、図４を参照しながら説明する。図４は、本発明の実施の形態における復旧支援装置１０のハードウェア構成の一例を示す図である。
【００９５】
図４に示すように、本発明の実施の形態における復旧支援装置１０は、入力装置２０１と、表示装置２０２と、外部Ｉ／Ｆ２０３と、ＲＡＭ（Random Access Memory）２０４と、ＲＯＭ（Read Only Memory）２０５と、プロセッサ２０６と、通信Ｉ／Ｆ２０７と、補助記憶装置２０８とを有する。これら各ハードウェアは、それぞれがバス２０９を介して通信可能に接続されている。
【００９６】
入力装置２０１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置２０２は、例えばディスプレイ等であり、復旧支援装置１０の処理結果を表示する。なお、復旧支援装置１０は、入力装置２０１及び表示装置２０２のうちの少なくとも一方を有していなくてもよい。
【００９７】
外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。復旧支援装置１０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込み等を行うことができる。記録媒体２０３ａには、復旧支援装置１０が有する各機能部（例えば、異常検知部１０１、復旧作業列生成部１０２、指標値計算部１０３、ＵＩ部１０４、乖離度計算部１０５及び再学習指示部１０６等）を実現する１以上のプログラムが記録されていてもよい。
【００９８】
記録媒体２０３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００９９】
ＲＡＭ２０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ２０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ２０５には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【０１００】
プロセッサ２０６は、例えばＣＰＵやＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ２０５や補助記憶装置２０８等からプログラムやデータをＲＡＭ２０４上に読み出して処理を実行する演算装置である。なお、復旧支援装置１０は、プロセッサ２０６としてＣＰＵとＧＰＵとの両方を有していてもよいし、ＣＰＵ又はＧＰＵのいずれか一方のみを有していてもよい。
【０１０１】
通信Ｉ／Ｆ２０７は、復旧支援装置１０を通信ネットワークに接続するためのインタフェースである。復旧支援装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ２０７を介して、所定のサーバ装置等から取得（ダウンロード）されてもよい。
【０１０２】
補助記憶装置２０８は、例えばＨＤＤやＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置２０８に格納されているプログラムやデータには、例えば、ＯＳ、各種アプリケーションプログラム、復旧支援装置１０が有する各機能部を実現する１以上のプログラム等がある。
【０１０３】
本発明の実施の形態における復旧支援装置１０は、図４に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図４に示す例では、本発明の実施の形態における復旧支援装置１０が１台の装置（コンピュータ）で実現される場合について説明したが、これに限られない。本発明の実施の形態における復旧支援装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、本発明の実施の形態における復旧支援装置１０は、複数のプロセッサ２０６や複数のメモリ（ＲＡＭ２０４、ＲＯＭ２０５、補助記憶装置２０８等）を備える装置（コンピュータ）で実現されていてもよい。
【０１０４】
以上、本発明の実施の形態について説明したが、本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０５】
１０        復旧支援装置
２０        機器群
１０１      異常検知部
１０２      復旧作業列生成部
１０３      指標値計算部
１０４      ＵＩ部
１０５      乖離度計算部
１０６      再学習指示部
１１０      過去事例ＤＢ
１２０      変化量ＤＢ
【図１】
2020086474.tif 000009
【図２】
2020086474.tif 000010
【図３】
2020086474.tif 000011
【図４】
2020086474.tif 000012