(57)【特許請求の範囲】
【請求項１】
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
【請求項２】
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記第１の状態モデルと、前記第２の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
【請求項３】
請求項１に記載のソフトウェア延命時期決定システムであって、
前記状態モデル解析部は、
前記パラメタ値と前記評価関数を用いて、ソフトウェア若化処理によるソフトウェアの状態変化を表す第３の状態モデルをさらに解析し、
前記第１の状態モデル、前記第２の状態モデル、および前記第３の状態モデルの解析結果に基づいて、ソフトウェア延命処理またはソフトウェア若化処理の実施を行うか否かを判定するエージング対処決定部と、を備えたソフトウェア延命時期決定システム。
【請求項４】
請求項１から３のいずれか１項に記載のソフトウェア延命時期決定システムであって、
ソフトウェアを実行させるソフトウェア実行装置と、
前記ソフトウェア実行装置における前記ソフトウェアの稼働状態を監視し、前記稼動状態に基づいて、前記パラメタ値を決定するソフトウェア稼働状態監視部と、
前記ソフトウェア実行装置に対し、前記ソフトウェア延命時期決定システムで決定されたソフトウェア延命処理を実施するソフトウェア延命処理実施部と、をさらに備えたソフトウェア延命時期決定システム。
【請求項５】
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデル、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたソフトウェア延命時期決定方法。
【請求項６】
コンピュータを、
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラムに関する。
【背景技術】
【０００２】
ソフトウェアのバグは、ＩＴシステムの障害を引き起こす主要な要因の一つである。ソフトウェアの開発やテスト段階で完全にバグを取り除くことは難しく、運用段階においてソフトウェアのバグに起因したシステム障害が発生することは稀ではない。【０００３】
運用段階において発生するソフトウェアバグの典型例としてエージングバグが知られている。エージングバグとは、ソフトウェアの長期連続稼働により、ソフトウェアの実行環境に劣化現象を生じるバグであり、大幅な性能低下やシステム障害の原因となる。例えば、長時間連続稼働によってメモリ消費量が徐々に増え、メモリリークを生じるバグはエージングバグの一種である。また、プログラム内で持つカウンタの値が長時間の連続稼働によって制限値を超えてオーバーフローする例も、エージングバグの一種として捉えられる。【０００４】
このようなエージングバグは、ソフトウェア単体でのテストでは発見が容易ではなく、ソフトウェアの運用段階に入ってから顕在化する場合が多い。ＩＴシステムとして統合されてからバグが発現すると、システム停止や性能低下などの問題を生じるばかりでなく、バグの発見や除去自体が難しくなる。【０００５】
エージングバグに対するソフトウェア運用時の対処法の例として、特許文献１や特許文献２には、ソフトウェア若化について記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０８−０９５８１４号公報
【特許文献２】特許３７３７６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１，２に記載されているソフトウェア若化は、エージングにより劣化するソフトウェアの稼働環境をリブートやリセットによって初期状態に戻すことにより、障害や性能低下を未然に防ぐ技術である。具体的にはソフトウェアを稼働させるアプリケーションサーバやオペレーティングシステム（ＯＳ）の再起動などによって実施されることが多い。ソフトウェア若化により、エージングバグによるＩＴシステムの障害を回避あるいは延期できる。しかし、稼働状態にあるソフトウェアを一端停止して再稼働させる必要があるため、不必要にソフトウェア若化を実施するとシステムの稼働率の低下を招く。【０００８】
そこで、本発明の目的は、システムの可用性（稼働率）と性能の両方を考慮して、最適なソフトウェアエージング対策を実施することである。
【課題を解決するための手段】
【０００９】
本発明に係るソフトウェア延命時期決定システムは、ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたものである。【００１０】
本発明に係るソフトウェア延命時期決定システムは、ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記第１の状態モデルと、前記第２の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたものである。【００１１】
本発明に係るソフトウェア延命時期決定方法は、ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデル、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたものである。【００１２】
本発明に係るプログラムは、コンピュータを、ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのものである。
【発明の効果】
【００１３】
本発明によれば、システムの稼働率と性能の両方を考慮して、最適なソフトウェアエージング対策を実施することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態１による、ソフトウェア延命時期決定システムの構成を示すブロック図。
【図２】本発明の実施の形態１による、ソフトウェア延命時期決定システムの動作のフローチャート。
【図３】本発明の実施の形態２による、ソフトウェア延命時期決定システムの動作のフローチャート。
【図４】本発明の実施の形態３による、ソフトウェア延命時期決定システムの構成を示すブロック図。
【図５】本発明の実施の形態３による、ソフトウェア延命時期決定システムの動作のフローチャート。
【図６】本発明の実施の形態３による、ソフトウェア延命時期決定システムの動作のフローチャート。
【図７】本発明の実施の形態４による、ソフトウェア延命時期決定システムの構成を示すブロック図。
【図８】本発明の実施の形態５による、ソフトウェア延命時期決定システムの構成を示すブロック図。
【図９】本発明の実施例を説明する図。
【図１０】本発明の実施例を説明する図。
【図１１】本発明の実施例を説明する図。
【図１２】本発明の実施例を説明する図。
【発明を実施するための形態】
【００１５】
実施の形態１．
次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
図１は、本発明の実施の形態１によるソフトウェア延命時期決定システム１０の構成を示すブロック図である。図１に示すように、ソフトウェア延命時期決定システム１０は、エージング状態モデル記憶部１０１、ソフトウェア延命状態モデル記憶部１０２、パラメタ入力部１０３、評価関数記憶部１０４、状態モデル解析部１０５、ソフトウェア延命時期決定部１０６、およびソフトウェア延命処理ポリシ記憶部１０７を備えている。
【００１６】
ソフトウェア延命時期決定システム１０は、ＣＰＵ、ＲＯＭやＲＡＭ等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。なお、ソフトウェア延命時期決定システム１０は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。
【００１７】
パラメタ入力部１０３、状態モデル解析部１０５、ソフトウェア延命時期決定部１０６は、ＣＰＵがＲＯＭ等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。エージング状態モデル記憶部１０１、ソフトウェア延命状態モデル記憶部１０２、評価関数記憶部１０４、ソフトウェア延命処理ポリシ記憶部１０７は、外部記憶装置により実装される。
【００１８】
エージング状態モデル記憶部１０１は、ソフトウェアのエージングによる状態変化を捉えたモデルを格納している。
ソフトウェア延命状態モデル記憶部１０２は、ソフトウェア延命処理の振る舞いを捉えたモデルを格納している。
【００１９】
パラメタ入力部１０３は、ソフトウェア障害率や復旧率などのモデルのパラメタの入力を受ける。
評価関数記憶部１０４は、システムが目標とする可用性や性能の値を定めるための評価関数を格納している。
【００２０】
状態モデル解析部１０５は、状態モデルの過渡状態や定常状態を解析し、入力されたパラメタの値に基づいて評価関数の値を求める。
ソフトウェア延命時期決定部１０６は、状態モデル解析の結果に基づいてソフトウェア延命処理の実施を判定する。
ソフトウェア延命処理ポリシ記憶部１０７は、ソフトウェア延命時期決定部１０６が決定した結果を保持するソフトウェア延命処理ポリシを格納する。
【００２１】
ここで、ソフトウェア延命とはエージングバグに対する対処方法である。ソフトウェア若化が、ソフトウェアの稼働環境をリブートやリセットによって初期状態に戻すことにより、障害や性能低下を未然に防ぐのに対し、ソフトウェア延命は、システムの稼働状態をできるだけ維持しつつ、障害を先送りさせる手法である。
【００２２】
例えば、メモリ消費量の増加がソフトウェアにかかるワークロードに依存する場合、ワークロードを削減することでメモリ消費量の増加を抑制してメモリリークに至る時間を先延ばしする処理は、ソフトウェア延命処理の一例である。
【００２３】
また、仮想化技術によって実現された仮想サーバ上では、動的にメモリ容量を追加することが可能であるため、メモリの一時的な追加によってメモリリークの障害を先延ばしすることもソフトウェア延命処理の一例である。
【００２４】
このようなソフトウェア延命処理は、ソフトウェアシステムの運用管理において対処療法的に利用することができるが、システムの可用性（稼働率）や性能を考慮して計画的に利用することが望ましい。すなわち、システムの可用性や性能を考慮した場合には、どの時点でソフトウェア延命処理を実施するかの判断が重要である。
【００２５】
具体的には、延命処理はワークロード処理量の低下や追加リソースの投入などのコストを伴うため、初めから延命のための縮退状態（あるいはオーバースペックな状態）でソフトウェアを稼働させることは適当ではない。一方、稼働時間の継続に伴ってシステムの故障率は高まるため、何れかの時点において縮退状態へ移行（あるいはリソースを追加）することが望ましい。このように、ソフトウェアの延命処理は、システムの可用性や性能の観点からもっとも効果的なタイミングで実施するのが望ましい。
【００２６】
次に、図２を用いてソフトウェア延命時期決定システム１０の動作について説明する。
まず、状態モデル解析部１０５は、評価関数記憶部１０４から評価関数Ｆを取得する（図２、ステップ１００１）。
【００２７】
次に、状態モデル解析部１０５は、パラメタ入力部１０３を介して解析のために必要なパラメタ値を読み込む（ステップ１００２）。パラメタ値は、少なくとも、ソフトウェアの障害率、エージングレート、復旧率、延命処理実行レート、および延命処理後の障害率を含む。
【００２８】
次に、状態モデル解析部１０５は、エージング状態モデル記憶部１０１からエージング状態モデルを取得し（ステップ１００３）、入力されたパラメタ値を用いて状態モデルの解析を行う（ステップ１００４）。例えば、定常状態の解析では、連立方程式を直接式解析する方法や、反復解法を用いて数値解析する方法や、離散事象シミュレーションによって解析する方法などが適用できる。状態モデル解析により、エージング状態モデルにおける評価関数値Ｆａを求める（ステップ１００５）。
【００２９】
次に、状態モデル解析部１０５は、ソフトウェア延命状態モデル記憶部１０２からソフトウェア延命状態モデルを取得し（ステップ１００６）、ステップ１００４と同様に状態モデルの解析を行う（ステップ１００７）。
【００３０】
状態モデルの解析には、エージング状態モデルの解析で用いた手法と同じ手法を用いる。解析により評価関数値Ｆｂを求める（ステップ１００８）。次に、状態モデル解析部１０５は、評価関数値ＦａとＦｂを比較し（ステップ１００９）、ＦｂがＦａよりも大きければ（Ｙｅｓ）ソフトウェア延命処理が有効であると判断し、ソフトウェア延命処理ポリシを設定してソフトウェア延命処理ポリシ記憶部１０７に格納する（ステップ１０１０）。
【００３１】
より小さな評価関数値Ｆが望ましい場合は、ＦｂがＦａより小さい場合にソフトウェア延命処理が有効であると判断する。ソフトウェア延命処理が有効でない場合は、ソフトウェア延命処理を実施しない（ステップ１０１１）。
【００３２】
以上のように、本実施形態によれば、エージング状態モデルの状態モデル解析結果Ｆａと、ソフトウェア延命状態モデルの状態モデル解析結果Ｆｂとの比較結果に基づいて、ソフトウェア延命を行うか否かを判定するようにしたので、システムの可用性（稼働率）や性能の観点からソフトウェア延命処理が有効かどうかを判定することができる。
【００３３】
実施の形態２．
図３は本発明の実施の形態２によるソフトウェア延命時期決定システム１０の動作のフローチャートである。
実施の形態２では、まず、状態モデル解析部１０５は、パラメタ入力部１０３を介して延命時期を表す可変パラメタの定義域Ｘ＝（ｘ１，ｘ２，…  ，ｘｎ）を読み込む（ステップ１０２１）。可変パラメタの例としては、ソフトウェア延命実行レート（単位時間あたりのソフトウェア延命処理実行回数）や平均ソフトウェア延命処理実施間隔などがある。
【００３４】
次に、状態モデル解析部１０５は、入力された定義域Ｘの範囲でパラメタ値ｘｉ（１≦ｉ≦ｎ）を順番に設定し、状態モデル解析によって評価関数値Ｆｂ（ｘｉ）を導出する（ステップ１０２３〜１０２５）。定義域Ｘ内の全てのｘｉについてステップ１０２３〜１０２５を繰り返す（ステップ１０２６，１０２７）。
【００３５】
全てのｘｉについて評価関数値Ｆｂ（ｘｉ）を導出したら、評価関数値が最大となるｘｉを求め、このときのｉの値をｉｏｐｔとする（ステップ１０２８）。さらに、ｘｉｏｐｔに基づいてソフトウェア延命処理を実行するソフトウェア延命処理ポリシを設定する（ステップ１０２９）。
【００３６】
例えば、パラメタｘｉがソフトウェア延命処理実行レートを表す場合は、レートの逆数から平均ソフトウェア延命処理実行間隔を求め、この実行間隔に基づいてソフトウェア延命処理を実行するポリシを設定する。
【００３７】
以上のように、本実施形態によれば、延命時期を表す可変パラメタの定義域から、状態モデル解析により目標とする指標を最大化あるいは最小化する最適なパラメタ値ｘｉｏｐｔを求めてソフトウェア延命処理を実施するようにしたので、システムの可用性や性能を最適化するソフトウェア延命処理時期を決定することができる。
【００３８】
実施の形態３．
図４は、本発明の実施の形態３によるソフトウェア延命時期決定システム３０の構成を示すブロック図である。図１と同一の符号は同様の構成要素を表している。
図４に示すように、ソフトウェア延命時期決定システム３０は、ソフトウェア延命判定式導出部１０８と、ソフトウェア延命判定式記憶部１０９を備えている点が実施の形態１と異なっている。
【００３９】
ソフトウェア延命判定式導出部１０８は、エージング状態モデル１０１から取得したエージング状態モデルと、ソフトウェア延命状態モデル記憶部１０２から取得したソフトウェア延命状態モデル、および評価関数記憶部１０４から取得した評価関数に基づいて、事前にソフトウェア延命判定式を導出して格納し、ソフトウェア延命判定式記憶部１０９に格納しておく。ソフトウェア延命時期決定部１０６は、パラメタ入力部１０３を介して読み込んだパラメタ値とソフトウェア延命判定式記憶部１０９から取得したソフトウェア延命判定式に基づいて、ソフトウェア延命時期を決定する。
【００４０】
図５、図６を用いてソフトウェア延命時期決定システム３０の動作について説明する。
まず、ソフトウェア延命判定式導出部１０８は、評価関数記憶部１０４から評価関数Ｆを取得し（図５、ステップ２００１）、エージング状態モデル記憶部１０１からエージング状態モデルを取得する（ステップ２００２）。
【００４１】
次に、ソフトウェア延命判定式導出部１０８は、エージング状態モデルにおける評価関数を式解析により導出する（ステップ２００３）。評価関数は入力パラメタΘ＝（θ１，  θ２，  …，  θｎ）の関数Ｆａ（Θ）として表される。
【００４２】
次に、ソフトウェア延命判定式導出部１０８は、ソフトウェア延命状態モデル記憶部１０２からソフトウェア延命状態モデルを取得し（ステップ２００４）、ステップ２００３と同様に、評価関数の解析結果Ｆｂ（Θ）を導出する（ステップ２００５）。
【００４３】
ソフトウェア延命判定式導出部１０８は、次にＦａ（Θ）とＦｂ（Θ）を比較し、Ｆａ（Θ）＜Ｆｂ（Θ）となるΘに関する条件σｘ（Θ）を導出し、ソフトウェア延命判定式記憶部１０９に格納する（ステップ２００６）。
【００４４】
以上の処理は、ソフトウェア延命処理時期の決定を行う前、すなわちパラメタ値が未知の場合でも事前に行うことができる。
【００４５】
次に、延命処理の有効性を判定する必要が生じた際には、ソフトウェア延命時期決定部１０６がソフトウェア延命判定式σｘ（Θ）を参照する（図６、ステップ２００７）。
【００４６】
次に、パラメタ入力部１０３を介してパラメタ値を読み込み（ステップ２００８）、判定式σｘ（Θ）に入力し、判定を行う（ステップ２００９）。
【００４７】
判定の結果Ｆａ（Θ）＜Ｆｂ（Θ）となる条件が満たされればソフトウェア延命処理実施ポリシを設定する（ステップ２０１０）。条件が満たされなければ延命処理は実施しない（ステップ２０１１）。
【００４８】
以上のように、本実施形態によれば、ソフトウェア延命処理が有効となる条件や最適な延命処理を実施するパラメタ値に関する条件を事前に式解析によって導出して格納するようにした。このため、延命処理の有効性の判定時には、パラメタ値を与えれば判定が可能になるので、判定処理を簡略化することができる。また、本実施形態では、パラメタ値のみで延命処理の有効性を判定できるため、導出した判定式を様々なシステムでの判定基準として再利用することができる。
【００４９】
実施の形態４．
図７は、本発明の実施の形態４によるソフトウェア延命時期決定システム４０の構成を示すブロック図である。図１と同一の符号は同様の構成要素を表している。
図７に示すように、ソフトウェア延命時期決定システム４０は、ソフトウェア若化状態モデル記憶部１１０、エージング対処決定部１１１、およびソフトウェア若化処理ポリシ記憶部１１２を備えている点が実施の形態１と異なっている。
【００５０】
実施の形態４によるソフトウェア延命時期決定システム４０の動作について説明する。
状態モデル解析部１０５は、実施の形態１と同様にエージング状態モデルおよびソフトウェア延命状態モデルを用いて評価関数Ｆａ，Ｆｂを導出する。さらに、状態モデル解析部１０５は、ソフトウェア若化状態モデル記憶部１１０からソフトウェア若化状態モデルを取得し、入力パラメタに基づいて評価関数Ｆの値Ｆｃを導出する。
【００５１】
さらに、エージング対処決定部１１１において、図２のステップ１００９と同様に、Ｆａ、Ｆｂ、Ｆｃの大小関係の評価から、ソフトウェア延命を実施するか、ソフトウェア若化を実施するか、どちらも実施しないかを判定する。システムの状況によっては、ソフトウェア延命処理よりもソフトウェア若化を実施した方が有効な場合もある。
【００５２】
以上のように、本実施形態によれば、ソフトウェア若化状態モデルも考慮してソフトウェアエージングに対処する有効な手段を判定するようにしたので、システムの可用性や性能の観点でより有効なエージング対処手段を判定できる。
【００５３】
実施の形態５．
図８は、本発明の実施の形態５によるソフトウェア延命時期決定システム５０の構成を示すブロック図である。図１と同一の符号は同様の構成要素を表している。
図８に示すように、ソフトウェア延命時期決定システム５０は、ソフトウェア稼働状態監視部１１３、ソフトウェア実行装置１１４、およびソフトウェア延命処理実施部１１５を備えている点が実施の形態１と異なっている。
【００５４】
ソフトウェア実行装置１１４は、エージングによる劣化現象のあるソフトウェアを実行させる装置であり、ソフトウェア稼働状態監視部１１３は、ソフトウェア実行装置１１４におけるソフトウェアの稼働状態を監視する。
【００５５】
ソフトウェア稼働状態監視部１１３は、監視情報の統計からモデルに入力するパラメタ値を決定し、パラメタ入力部１０３に供給する。
【００５６】
一方、ソフトウェア延命処理実施部１１５は、ソフトウェア延命時期決定部１０６によって設定されたソフトウェア延命処理ポリシを参照し、ソフトウェア実行装置１１４に対して、ポリシで指定されたタイミングでソフトウェア延命処理を実施する。具体的には、ソフトウェア延命処理は、ソフトウェアに与える負荷やワークロードの削減、動的なリソースの追加、指定された縮退構成への移行などを含む。
【００５７】
以上のように、本実施形態によれば、稼働中のソフトウェアの監視情報に基づいてパラメタ値を決定してソフトウェア延命処理の実施可否を判定するようにしたので、稼働状況に応じて動的にソフトウェア延命処理の有効性を判定することができる。
【実施例】
【００５８】
次に、本発明の実施例について、具体例を用いて説明する。
図９は、連続時間マルコフ連鎖（ＣＴＭＣ）を用いてソフトウェアエージング状態モデルを表現した例である。図中の丸は状態を、矢印は状態の遷移パスを表しており、状態の遷移にかかる時間はラベル付けされた値をパラメタ値とする指数分布に従うものとする。【００５９】
状態ＵＰはソフトウェアの正常な稼働状態を表し、状態ＦＰはソフトウェアエージングにより劣化した状態を表す。状態Ｆはエージングの進行によってソフトウェア障害が発生した状態を表している。【００６０】
状態ＵＰから状態ＦＰへはλ１のレートで遷移し、状態ＦＰから状態Ｆへはλ２のレートで遷移し、状態Ｆから状態ＵＰへはμのレートで遷移する。λ１、λ２、μなどのレートを表すパラメタ値は、平均遷移時間の逆数と等価であり、ソフトウェア平均エージング状態遷移時間、平均故障時間、平均復旧時間から求めることができる。【００６１】
例えば、障害後に正常な稼働状態に復帰するまでにかかる時間が平均２時間であったとすると、μ＝１／２となる（単位は［１／ｈｏｕｒ］）。このモデルにおいて、ソフトウェア稼働状態であるのは状態ＵＰと状態ＦＰである。【００６２】
したがって、システムの可用性はこのソフトウェアが状態ＵＰにある確率と状態ＦＰにある確率の和で表される。定常状態における状態ＵＰの確率をπＵＰ、状態ＦＰの確率をπＦＰと表せば、可用性ＡＮはπＵＰ＋πＦＰで求まる。πＵＰ、πＦＰの値はＣＴＭＣの定常状態解析により求めることができる。【００６３】
図１０は、ソフトウェア延命処理の振る舞いをＣＴＭＣでモデル化した例を示す図である。ソフトウェアエージング状態モデルのＣＴＭＣに加え、延命処理を実施した後の状態ＬＰを持つ。ソフトウェア延命処理によって状態ＦＰから状態ＬＰにδのレートで遷移し、最終的に状態Ｆにλ３のレートで遷移する。【００６４】
状態ＬＰ状態もソフトウェア稼働状態の一つであるため、システムの可用性ＡＬはπＵＰ＋πＦＰ＋πＬＰで求まる。ただし、πＵＰ、πＦＰの値はソフトウェアエージング状態モデルのπＵＰ、πＦＰの値とは異なる。【００６５】
ＣＴＭＣの定常状態の解析手法としては、状態方程式を解析的に解く方法、反復解法によって数値解析により解く方法、離散時間シミュレーションによって解く方法がある。ここでは解析的に解く場合の例を示す。図９のＣＴＭＣと図１０のＣＴＭＣについて式解析によって定常状態を解析すると、ＡＮおよびＡＬはそれぞれ下記の式１、２のように求まる。【００６６】
【数１】
0005445726.tif 000002
【数２】
0005445726.tif 000003
【００６７】
パラメタ値としてλ１＝１／（２４＊２０）、λ２＝１／（２４＊１０）、λ３＝１／（２４＊１５）、δ＝１／２４、ｍ＝１を入力すると、ＡＮ＝０．９９８６１３、ＡＬ＝０．９９８７９５と求まる。【００６８】
この結果、ＡＮ＜ＡＬであるため、ソフトウェア延命処理は可用性の観点で有効であると判断できる。【００６９】
次に、ソフトウェア延命処理実行レートδの候補としてδ１＝１／１２、δ２＝１／２４、δ３＝１／４８がある状況を考える。パラメタ値を変えて可用性を評価するとＡＬ（δ１）＝０．９９８８０３、ＡＬ（δ２）＝０．９９８７９５、ＡＬ（δ３）＝０．９９８７８２となり、δ１のとき可用性が最も高くなることがわかる。したがって、δ１の延命処理実行レートで延命処理を実施するポリシを設定することで、可用性を最大化できる。【００７０】
次に、ソフトウェア延命処理が有効となる条件を考慮する。ソフトウェア延命処理が可用性の観点で有効となるのはＡＬ≧ＡＮが満たされる場合である。この条件に式１、式２を当てはめて式を整理するとλ３≦λ２の条件と等価であることが求まる。この条件をソフトウェア延命判定式として用いることで、様々な状況でソフトウェア延命処理を実施する判断の基準として用いることができる。【００７１】
λ３≦λ２は、延命処理後のソフトウェア故障率が、延命処理を実施しない場合の故障率と比べて小さいことを表しており、直観的な判断とも一致する。ソフトウェアエージングを表すモデルや延命処理を表すモデルがより複雑である場合や、評価関数が性能やコストなどを含んだ場合などは、直観的に判断できるとは限らない。【００７２】
図１１はソフトウェアエージングの状態遷移をセミマルコフ過程（ＳＭＰ）でモデル化した例である。状態Ｕが稼働状態を表し、状態Ｆがソフトウェア障害状態を表す。状態Ｕから状態Ｆへの状態遷移時間は確率分布Ｆｆ（ｔ）に従い、状態Ｆから状態Ｕへの復旧を表す状態遷移時間は確率分布Ｆｒ（ｔ）に従う。【００７３】
ソフトウェアの障害はエージングによって徐々に故障率が高くなるため時間の経過に伴って障害率が増加する種類の確率分布が用いられる（例えばｈｙｐｏ−ｅｘｐｏｎｅｎｔｉａｌ分布）。このシステムの可用性は定常状態で状態Ｕにある確率で表され、以下の式で求めることができる。【００７４】
【数３】
0005445726.tif 000004
【００７５】
次に、エージング状態を特定せず、ソフトウェアが稼働してから一定時間Ｔが経過した後にソフトウェア延命処理を実施する場合を考える。エージング状態を特定する必要がないため、ソフトウェア延命処理の実施が容易であるが、適切な延命処理実施時期を判断することが難しい。【００７６】
図１２は、このシステムの振る舞いをＳＭＰでモデル化した例を示す図である。図１２のモデルでは、ソフトウェアエージングのＳＭＰモデルに加え、ソフトウェア延命処理を実施した後の状態Ｌを持つ。状態Ｕから状態Ｌへの状態遷移時間は確率分布Ｆｐｒ（ｔ）に従い、状態Ｌから状態Ｆへの状態遷移時間は確率分布Ｆｆ２（ｔ）に従う。ここで、状態Ｕから状態Ｌへの遷移は決定的であり、単位ステップ関数ｕ（ｔ）を用いてｕ（ｔ−Ｔ）と表されるものとする。すなわち、時刻ｔ＝Ｔで決定的に状態遷移が発生する場合を考えると、このシステムにおける可用性はソフトウェアが状態Ｕにあるか状態Ｌにある確率で表されるため、以下の式で求めることができる。【００７７】
【数４】
0005445726.tif 000005
【００７８】
Ｆｆ（ｔ）、Ｆｒ（ｔ）、Ｆｆ２（ｔ）に対して特定の確率分布を仮定し、与えられたパラメタ入力値をモデルに与えて式３と式４を評価することで、ソフトウェア延命処理が有効であるか否かを判定することが可能となる。また、Ｔの値を変化させて可用性を評価することにより、可用性を最大化するＴを特定することができる。特に以下の式５の条件が満たされるとき、０＜Ｔ＜∞の範囲で可用性を最大化するＴｏｐｔが存在する。この場合、Ｔｏｐｔは以下の式６を満たす値として求められる。【００７９】
【数５】
0005445726.tif 000006
【数６】
0005445726.tif 000007
【００８０】
この出願は、２０１２年３月３０日に出願された日本出願特願２０１２−８０１９８を基礎とする優先権を主張し、その開示の全てをここに取り込む。【００８１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００８２】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。【００８３】
（付記２）ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記第１の状態モデルと、前記第２の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。【００８４】
（付記３）付記１に記載のソフトウェア延命時期決定システムであって、
前記状態モデル解析部は、
前記パラメタ値と前記評価関数を用いて、ソフトウェア若化処理によるソフトウェアの状態変化を表す第３の状態モデルをさらに解析し、
前記第１の状態モデル、前記第２の状態モデル、および前記第３の状態モデルの解析結果に基づいて、ソフトウェア延命処理またはソフトウェア若化処理の実施を行うか否かを判定するエージング対処決定部と、を備えたソフトウェア延命時期決定システム。【００８５】
（付記４）付記１から３のいずれか１項に記載のソフトウェア延命時期決定システムであって、
ソフトウェアを実行させるソフトウェア実行装置と、
前記ソフトウェア実行装置における前記ソフトウェアの稼働状態を監視し、前記稼動状態に基づいて、前記パラメタ値を決定するソフトウェア稼働状態監視部と、
前記ソフトウェア実行装置に対し、前記ソフトウェア延命時期決定システムで決定されたソフトウェア延命処理を実施するソフトウェア延命処理実施部と、をさらに備えたソフトウェア延命時期決定システム。【００８６】
（付記５）ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデル、前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたソフトウェア延命時期決定方法。【００８７】
（付記６）コンピュータを、
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第１の状態モデルおよび前記第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第１の状態モデルおよび前記第２の状態モデルを解析する状態モデル解析部と、
前記第１の状態モデルおよび前記第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのプログラム。
【産業上の利用可能性】
【００８８】
本発明は、ソフトウェアを長期連続稼働させるためのシステムの高信頼設計ツールに適用できる。また、ソフトウェアの稼働状況を監視して適切な管理操作を実施するシステム管理ツールにも適用できる。
【符号の説明】
【００８９】
１０，３０，４０，５０  ソフトウェア延命時期決定システム、１０１  エージング状態モデル記憶部、１０２  ソフトウェア延命状態モデル記憶部、１０３  パラメタ入力部、１０４  評価関数記憶部、１０５  状態モデル解析部、１０６  ソフトウェア延命時期決定部、１０７  ソフトウェア延命処理ポリシ記憶部、１０８  ソフトウェア延命判定式導出部、１０９  ソフトウェア延命判定式記憶部、１１０  ソフトウェア若化状態モデル記憶部、１１１  エージング対処決定部、１１２  ソフトウェア若化処理ポリシ記憶部、１１３  ソフトウェア稼働状態監視部、１１４  ソフトウェア実行装置、１１５  ソフトウェア延命処理実施部
【要約】
ソフトウェアのエージングによるソフトウェアの状態変化を表す第１の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第２の状態モデルを格納するソフトウェア延命状態モデル記憶部と、第１の状態モデルおよび第２の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、パラメタ値と評価関数を用いて、第１の状態モデルおよび第２の状態モデルを解析する状態モデル解析部と、第１の状態モデルおよび第２の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部とを備える。【図１】
0005445726.tif 000008
【図２】
0005445726.tif 000009
【図３】
0005445726.tif 000010
【図４】
0005445726.tif 000011
【図５】
0005445726.tif 000012
【図６】
0005445726.tif 000013
【図７】
0005445726.tif 000014
【図８】
0005445726.tif 000015
【図９】
0005445726.tif 000016
【図１０】
0005445726.tif 000017
【図１１】
0005445726.tif 000018
【図１２】
0005445726.tif 000019