(57)【特許請求の範囲】
【請求項１】
ソフトウェアの状態遷移確率モデルに基づく、状態遷移毎の状態遷移確率を用いて、前記ソフトウェアの異常を検出する異常検出方法であって、１つ以上の前記ソフトウェアの実行において、前記ソフトウェア毎に予め前記ソフトウェアの前記状態遷移毎の状態遷移確率を固定値に定めることにより第１の状態遷移確率モデルを設定し、さらに、前記状態遷移毎のしきい値を設定し、前記ソフトウェアの実行時において、前記ソフトウェアの実行時における状態の遷移回数を計測し、計測された遷移回数から状態遷移確率を求めて前記固定値に定められた状態遷移確率を更新することにより第２の状態遷移確率モデルを算出し、前記第１の状態遷移確率モデルと前記第２の状態遷移確率モデルとの前記状態遷移毎の状態遷移確率を比較することにより前記状態遷移毎の異常度を求め、前記状態遷移毎の前記異常度を前記状態遷移毎の前記しきい値と比較することにより異常か否かのどちらかを判断することを特徴とする異常検出方法。
【請求項２】
請求項１記載の異常検出方法において、前記第２の状態遷移確率モデルは、前記ソフトウェアの実行時に、前記状態遷移毎の前記状態遷移の状態遷移回数を計測し、前記状態遷移回数から前記状態遷移確率を求め、前記第２の状態遷移確率モデルを更新することを特徴とする異常検出方法。
【請求項３】
請求項１記載の異常検出方法において、前記第１の状態遷移確率モデルの前記状態遷移確率と、前記しきい値は、前記１つ以上の前記ソフトウェアを予め実行することにより算出して求めることを特徴とする異常検出方法。
【請求項４】
請求項１記載の異常検出方法において、前記第１の状態遷移確率モデルの前記状態遷移確率および前記しきい値は、前記ソフトウェアの実行前に予め記憶しておくことを特徴とする異常検出方法。
【請求項５】
請求項１記載の異常検出方法において、前記ソフトウェアは、１つ以上の状態遷移確率モデルで構成されることを特徴とする異常検出方法。
【請求項６】
請求項１記載の異常検出方法において、前記ソフトウェアの実行において前記異常と判断された前記状態遷移に対応した前記ソフトウェアの実行箇所を特定することを特徴とする異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア実行時における異常検知の方法に関し、特に実行環境でしか検出されないソフトウェアの障害が検出可能であり、更に異常発生箇所の特定が容易でありソフトウェアの早期修正を可能とする、異常検知方法およびそれを用いた情報処理システムに関する。
【背景技術】
【０００２】
従来、統計的手法を用いた学習により統計モデルを作成し、稼働情報と統計モデルから統計的距離を計算して異常度を求め、設定ファイルで指定したしきい値を使って異常度が異常であるか否かを判断する方法があった（例えば、特許文献１参照）。
【０００３】
また、従来、機器の種類毎に異常を判定するしきい値を予め設定して、稼働情報が異常か否かを判断する方法があった（例えば、特許文献２参照）。
【０００４】
また、大規模ソフトウェアの開発において、非機能要求（性能）の不備に起因した後工程におけるテスト段階での機能未達の問題が発生し、前工程のソフトウェア修正といった手戻り工数の発生が問題になっている。このような問題に対し、従来人命にかかわる鉄道航空などのミッションクリティカルな分野のソフトウェア開発に導入されていた形式検証手法が広く採用されつつある。例えば形式仕様記述の面では、フェリカネットワークスのＶＤＭ＋＋の導入事例がある。また、モデル検査は、関西電力のＳＭＶ、ＪＡＸＡのＳＰＩＮやＵＰＰＡＡＬなどの導入した事例が報告されている。モデル検査は、形式システムをアルゴリズム的に検証する手法である。仕様は時相論理の論理式で記述され、状態遷移モデルが形式仕様を満足するかどうかを網羅的に検証することができる。これにより仕様の反例が示されれば、状態遷移モデルを修正することにより、設計段階でソフトウェアの不具合を未然に発見し修正することを可能とする技術が紹介されている（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１８２６４７号公報
【特許文献２】特開２０００−１８１７６１号公報
【非特許文献】
【０００６】
【非特許文献１】高信頼ソフトウェア構築技術に関する動向調査報告書、独立行政法人情報処理推進機構（２００７）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、ソフトウェアにより多様な機能を実現するマイクロプロセッサの登場により、マイクロプロセッサが工業、民生を問わずほとんどの機器に搭載されている。マイクロプロセッサの性能向上にともない、実行可能なソフトウェアの規模が大きくなり、より多機能な機器が実現できるようになっている。
【０００８】
さらに、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の搭載によりマルチタスク、マルチスレッドによるアプリケーションの実現が可能となり、多種多様なアプリケーションがＯＳ管理下で同時に実行できるようになっている。
【０００９】
例えば、電話・データ通信・ストリーミング放送の統合したマルチメディアサービスを実現するＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ、次世代通信網）上で、加入者宅に設置されるＨＧＷ（Ｈｏｍｅ  Ｇａｔｅｗａｙ）は、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）フレームワーク技術を利用することで遠隔からアプリケーションの、インストール・起動・停止・アンインストールが可能となり、多様なサービスが実現できる。
【００１０】
このような機器において、ソフトウェアの高機能化の反面、複数のソフトウェアの動作に起因する異常が問題となっている。ソフトウェアの高機能化大規模化に伴い、ユーザ環境の多様化、他社ソフトウェアとの相性、さらに、年々新しくソフトウェアをクラッシュさせる悪意のあるウィルスソフトウェアなど、予想が困難な異常の発生が益々高くなっている。このような背景において、機器の稼働中の異常（障害）を検出することが重要になっている。
【００１１】
例えば特許文献１において、学習部は、電子機器から受信した機器運用情報を既存の統計モデルを基にして確率分布計算処理を行い新たな統計モデルを作成し、解析部は、機器運用情報と統計モデルから統計的距離を計算して解析結果として各データのスコアを出力し、検知・通知部は、設定ファイルに予め設定されたしきい値以上のスコアが存在するか判断し、設定されたしきい値以上であれば異常があるとして管理者に電子メールで通知するようになっている。
【００１２】
例えば特許文献２において、端末監視装置は、端末毎の障害監視情報を読み込み、端末の種類に応じたしきい値を用いて、障害監視情報としきい値を比較することにより障害の予測および検出を行うようになっている。
【００１３】
ＯＳＧｉフレームワークを導入したＨＧＷシステムのような環境では、システムの運用中に新たな機器の追加、機器のハードウェア構成の変更、実行されるアプリケーションの変更など稼働構成が変更される。特定の稼働構成における複数のソフトウェアの動作に関連する異常を予め予想するには、事前に同一の稼働構成において全てのソフトウェアの組合せにおける異常を調べる必要がある。しかしながら、例えば他社が作成したソフトウェアとの組合せにおける異常を全て調べる事は困難である。このため、機器におけるソフトウェアの実行に伴う機器の稼働中の状態の特徴を表す稼働情報から、統計的手法を用いた学習により統計モデルを作成し、稼働情報と統計モデルから統計的距離を計算して異常度を求め、異常度が異常か否かを判断する必要がある。しかしながら、全く新しい稼働構成の機器の稼働情報では、新しい構成の機器の稼働情報を使った学習がされていないため、誤った統計モデルを使って異常度を求め、異常度が異常か否かを誤って判断してしまう。
【００１４】
これに対して、特許文献１では、統計的手法を用いた学習により統計モデルを作成し、稼働情報と統計モデルから統計的距離を計算して異常度を求め、設定ファイルで指定したしきい値を使って異常度が異常であるか否かを判断する方法が開示されているものの、新しい構成の機器の稼働情報による異常の判断に必要な構成が記載されていない。
【００１５】
特許文献２では、機器の種類毎に異常を判定するしきい値を予め設定して、稼働情報が異常か否かを判断する方法が開示されているものの、統計的手法を用いた学習により統計モデルを作成していないので、事前に全ての機器の種類毎に適切なしきい値を設定するというコストや手間を強いることになる。
【００１６】
さらに、異常の発生箇所の特定を速やかに行うことにより短時間にソフトウェアの問題が修正できることが重要である。
特許文献１乃至２では、また、ソフトウェアの実行時の異常を検出するが、異常が発生したソフトウェアの実行状態を特定する方法が記載されていない。
【００１７】
図１は、本発明との違いを説明するために特許文献１の主要部の構成を例示するブロック図である。
【００１８】
稼働情報取得手段１１は、機器の運用時の稼働情報を収集し、稼働情報データ２１に記憶する。学習手段３１は、稼働情報データ２１から統計的手法を用いた学習を行い、学習された学習データを学習データ４１に記憶する。解析手段５１は、前記稼働情報と前記学習データから統計的距離のスコアを出力する。異常判定手段６１は、予めしきい値情報７１に記憶されたしきい値と前記スコアを比較し、異常か否かを判断する。
【００１９】
図２は、本発明との違いを説明するために特許文献２の主要部の構成を例示するブロック図である。稼働情報取得手段１２は、機器の運用時の稼働情報を収集し、稼働情報データ２２に記憶し、稼働情報を出力する。
稼働構成取得手段１７は、機器の種類を識別し、予め機器毎のしきい値を記憶したしきい値情報７２から、前記稼働情報を収集した機器のしきい値を出力する。異常判定手段６２は、前記稼働情報と前記しきい値を比較し、異常か否かを判断する。
【００２０】
従来、稼働中のソフトウェアの異常検知においては、ソフトウェア稼働中の機器の状態を利用していた。
ソフトウェア開発においては、モデル検査手法を採用することにより、状態遷移モデルに対応した状態遷移確率モデルを用い、ソフトウェアの品質の向上を図ることが可能となる。
【００２１】
本発明の目的は、モデル検査で用いる状態遷移モデルおよび状態遷移確率モデルを利用し、ソフトウェアの実行時において、状態遷移モデルに基づく状態遷移から第２の状態遷移確率求め、事前に設定した第１の状態遷移確率モデルと第２の状態遷移確率モデルとを確率差を計算して求めて異常度とし、しきい値から異常度が異常か否かの判別による異常検知をおこなう異常検出方法および情報処理システムを提供することにある。
【００２２】
また、稼働構成の変更（ハードウェアおよびソフトウェアの変更、更新、追加、削除など）が必要に応じて随時行われるソフトウェア実行環境において、複数の機器の稼働情報から遷移確率モデルを学習し、学習した遷移確率モデルと稼働情報から求めた状態遷移確率から確率差を計算して求めた異常度と、しきい値からの異常か否かの判別により、異常検知に好適な異常検出方法および情報処理システムを提供することにある。
【００２３】
また、モデル検査手法に基づく状態遷移モデルを利用することにより、異常検出と検出された状態との対応づけにより、ソフトウェア上の異常発生検出時のソフトウェアの状態を特定するのに好適な異常検出方法および情報処理システムを提供することにある。
【課題を解決するための手段】
【００２４】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記の通りである。
【００２５】
すなわち、本発明の異常検出方法は、ソフトウェアを実行する機器の稼働情報を監視し、前記機器の異常を検出するモデル検査に基づく状態遷移モデルにおける状態遷移確率モデルを利用した異常検出方法であって、前記ソフトウェアの開発におけるモデル検査に基づく状態遷移確率モデルから第１の状態遷移確率モデルを作成する検査ステップと、前記稼働情報から前記状態遷移モデルに基づく実行中のソフトウェアの状態遷移をトレースする状態遷移取得ステップと、前記状態遷移から第２の状態遷移確率モデルを学習して記憶する学習ステップと、前記第１の状態遷移確率モデルと前記第２の状態遷移確率モデルを比較して、各状態遷移の異常度を出力する解析ステップと、前記異常度と前記各状態遷移に設定したしきい値とを比較して、前記異常度が異常か否かのどちらの値を示すかを判断する異常判定ステップとを有することを特徴とする。
【００２６】
また、本発明の情報処理システムは、ソフトウェアを実行する複数の機器と、前記機器の稼働状態を監視すると共に前記機器の異常を検出する異常監視装置とを備えて成る情報処理システムであって、
前記稼働情報から前記状態遷移モデルに基づく実行中のソフトウェアの状態遷移を取得する状態遷移取得手段と、前記状態遷移から第２の状態遷移確率モデルを学習する第１の学習手段と、第１の状態遷移確率モデルと前記第２の状態遷移確率モデルとを比較して各状態遷移の異常度を出力する解析手段と、前記異常度と前記状態遷移毎に設定したしきい値とを比較して、前記異常度が異常か否かのどちらの値を示すかを判断する異常判定手段を備える前記機器と、前記異常監視装置は、前記各機器から前記第２の状態遷移確率モデルを収集する収集手段と、前記収集手段で収集した、前記各機器の前記第２の状態遷移確率モデルから、第１の状態遷移確率モデルと、前記状態遷移毎にしきい値を学習する第２の学習手段とを前記異常監視装置に備えることを特徴とする。
【００２７】
尚、本発明の情報処理システムにおいては、前記異常判定手段を前記機器の代わりに前記異常監視装置に備えるよう構成してもよい。
【００２８】
第１の発明の特徴は、（１）ソフトウェアの状態遷移確率モデルに基づく、状態遷移毎の状態遷移確率を用いて、前記ソフトウェアの異常を検出する異常検出方法であって、
１つ以上の前記ソフトウェアの実行において、前記ソフトウェア毎に
第１の状態遷移確率モデルを設定し、前記ソフトウェアの実行により第２の状態遷移確率モデルを算出し、前記第１の状態遷移確率モデルと前記第２の状態遷移確率モデルとを前記状態遷移毎の状態遷移確率を比較することにより前記状態遷移毎の異常度を求め、前記状態遷移毎の前記異常度を前記状態遷移毎のしきい値と比較することにより異常か否かのどちらかを判断する異常検出方法にある。
（１）において、（２）前記第２の状態遷移確率モデルは、前記ソフトウェアの実行時に、前記状態遷移毎の前記状態遷移の状態遷移回数を計測し、前記状態遷移回数から前記状態遷移確率を求め、前記第２の状態遷移確率モデルを更新することが望ましい。
（１）において、（３）前記１つ以上の前記ソフトウェアの実行において、予め前記ソフトウェアを実行することにより前記第２の状態遷移確率モデルを算出し、前記第２の状態遷移モデルに基づいて前記第１の状態遷移確率モデルと、前記しきい値を学習することが望ましい。
（１）において、前記第１の状態遷移確率モデルと、前記しきい値は、前記１つ以上の前記ソフトウェアを予め実行することにより算出して求めておくことが望ましい。
（１）において、（４）前記第１の状態遷移確率モデルおよび前記しきい値は、予め記憶しておくことが望ましい。
（１）において、（５）前記ソフトウェアは、１つ以上の状態遷移確率モデルで構成されることが望ましい。
（１）において、（６）前記異常と判断された前記状態遷移に対応した前記ソフトウェアの実行箇所を特定することが望ましい。
【００２９】
第２の発明の特徴は、（７）複数の端末装置と、前記端末装置と通信接続する障害監視装置とを備える情報処理システムにおいて、
前記端末装置は、ソフトウェア実行手段と、第１の状態遷移確率モデルと、第２の状態遷移確率モデルと、計測手段と、第１の学習手段と、解析手段と、識別手段を備え、
前記障害監視装置は、複数の前記端末装置から、前記通信接続により、前記第２の状態遷移確率モデルの情報を受信する収集手段と、前記第２の状態遷移確率モデルから、前記ソフトウェア毎に、第１の状態遷移確率モデルとしきい値とを生成する第２の学習手段を備え、前記第１の状態遷移確率モデルの情報と前記しきい値を、前記通信接続により、前記端末装置に送信する情報処理システムにある。
（７）において、（８）前記第１の状態遷移確率モデルは、前記端末装置で実行する前記ソフトウェア毎の前記第１の状態遷移確率モデルを選択して送信することを特徴とする情報処理システム。
【発明の効果】
【００３０】
本発明によれば、ソフトウェア開発におけるモデル検査において用いる状態遷移モデルにおいてあらかじめ設定した状態遷移確率と、ソフトウェア実行時の実測に基づく状態遷移確率を比較することができるので、前記ソフトウェア実行時の異常を検出することができる。
【００３１】
また、モデル検査手法に基づくソフトウェア設計では、前記モデル検査における状態遷移モデルと前記ソフトウェアは、前記状態遷移モデルの状態遷移に基づきプログラムされるので、前記状態遷移モデルに基づく前記状態遷移と、前記ソフトウェアの実行箇所とは１対１に対応するので、異常検出による、異常が検出された前記状態遷移を基にして前記ソフトウェアの実行箇所を容易に特定可能であり、前記ソフトウェアの修正を容易に可能とすることができる。
【図面の簡単な説明】
【００３２】
【図１】特許文献１の主要部の構成を例示するブロック図である。
【図２】特許文献２の主要部の構成を例示するブロック図である。
【図３】本発明の一実施の形態の概要を例示するブロック図である。
【図４】本発明の一実施の形態の状態遷移モデルを例示するオートマトン図である。
【図５】本発明の一実施の形態の状態遷移確率モデルを例示するオートマトン図である。
【図６】本発明の一実施の形態の動作を示すフローチャート図である。
【図７】本発明の一実施の形態の第１の状態遷移確率モデルの作成を例示するブロック図である。
【図８】本発明の一実施の形態の他の第１の状態遷移確率モデルの作成を例示するブロック図である。
【図９】本発明の一実施の形態の他の第１の状態遷移確率モデルの作成を例示するフローチャート図である。
【図１０】本発明の一実施の形態の確率情報を例示する図である。
【図１１】本発明の一実施の形態の異常の判定を例示する図である。
【図１２】本発明の一実施の形態である情報処理システムの構成を例示するブロック図である。
【図１３】本発明の一実施の形態で異常監視装置の構成を例示するブロック図である。
【図１４】本発明の一実施の形態でＨＧＷの構成を例示するブロック図である。
【図１５】本発明の一実施の形態である異常監視装置とＨＧＷの構成を例示するブロック図である。
【図１６】本発明の一実施の形態である図１５の動作の流れを例示するシーケンス図である。
【図１７】本発明の一実施の形態であるＨＧＷ毎に実行されるソフトウェアリスト２５０を例示する図である。
【図１８】本発明の一実施の形態であるソフトウェアに対応した状態遷移モデルリスト２５１を例示する図である。
【図１９】本発明の一実施の形態である状態遷移から実行したソフトウェア障害位置を特定する方法を例示する図である。
【発明を実施するための形態】
【００３３】
本発明は、ソフトウェアを実行する機器の運用中に、ソフトウェア毎の状態遷移モデルに基づいた状態遷移毎の遷移確率を計測し第２の状態遷移確率モデルとして出力する計測手段と、前記第２の状態遷移確率モデルとあらかじめ求めた第１の状態遷移確率モデルとを比較することにより異常度を求める比較手段と、異常度が異常を示す値か否かを判断する異常判定手段を備えることを特徴とする。
【００３４】
本発明は、前記機器の運用中に、前記複数の機器から第２の状態遷移確率モデルを受信し、前記複数の機器から収集した第２の状態遷移確率モデルから統計的な手法を用いた学習を行い、第１の状態遷移確率モデルと状態遷移毎のしきい値情報を更新して出力する第２の学習手段を備えることを特徴とする。
【００３５】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。なお、実施の形態を説明する図において、同一部には原則として同一の符号を付し、その繰り返し説明は省略する。
【００３６】
以下一実施の形態について詳述する。
【実施例１】
【００３７】
本発明の代表的な実施の形態について、その概要を実施例１として説明する。
各部の動作の詳細を図３のブロック図と図６のフローチャート図を用いて詳細に説明する。図３は、本発明の一実施の形態の概要を例示するブロック図である。図６は、本発明の一実施の形態の動作を示すフローチャート図である。
【００３８】
図３において、２１１はソフトウェア実行手段、２０２は実行するソフトウェアの状態遷移モデル、２１２は状態遷移取得手段、２０３は第１の状態遷移確率モデル、２１５は第２の状態遷移確率モデル、２１３は状態遷移の回数から第２の状態遷移確率モデル２１５を生成する学習手段、２１４は第１の状態遷移確率モデル２０３と第２の状態遷移確率モデル２１５において、状態遷移毎の異常度を計算する解析手段、２０４は状態遷移毎に異常度が異常を示す値か否かを判断するしきい値を記憶するしきい値情報、２１６は異常を判定する異常判定手段である。
【００３９】
ソフトウェアはソフトウェア実行手段２１１で実行する（Ｓ１００）。状態遷移取得手段２１２は、実行中の前記ソフトウェアの状態遷移モデル２０２に基づいて、状態遷移毎の状態遷移回数を取得する（Ｓ１１０）。学習手段２１３は、状態遷移モデル２０２に示す状態遷移の状態遷移毎に、前記状態遷移回数が十分収集されたことを確認した後（Ｓ１２０）、前記状態遷移回数を集計して前記状態遷移毎の遷移確率を計算し、第２の状態遷移確率モデル２１５を更新する（Ｓ１３０）。
解析手段２１４は、あらかじめ作成した第１の状態遷移確率モデル２０３と第２の状態遷移確率モデル２１５とを、前記状態遷移毎の前記状態遷移確率で比較することにより前記状態遷移毎の異常度を計算する（Ｓ１４０）。あらかじめ作成したしきい値情報２０４は、状態遷移毎に異常度が異常を示す値か否かを判断するしきい値を記憶し、異常判定手段２１６は、前記状態遷移毎の前記異常度と前記しきい値とを比較することにより、前記状態遷移毎の異常度が異常か否かを判別する（Ｓ１５０）。異常と判断された場合は、異常に基づく異常処理を実行する（Ｓ１６０）。
【００４０】
本発明では、実行するソフトウェアの開発における設計技法としてモデル検査においてソフトウェアをモデル化した状態遷移モデルおよび、状態遷移確率モデルを用いる。
モデル検査については文献等で詳しく紹介されているため、ここでは簡単に紹介する。実行するソフトウェアの開発においてモデル検査手法を用いる。モデル検査では、ソフトウェアを抽象化した状態遷移モデルを入力として、数学的なモデルのオートマトンとして表すことにより、時相論理等で記述したモデルの性質が成り立つかどうかを検証する。成り立たないことの反例となる状態遷移系列を提示することで、モデルの不具合を明らかにすることが可能であり、これにより、ソフトウェアの実装およびテスト前に不具合を発見することが可能となり、ソフトウェアの信頼性や、不具合がテスト時発見された場合の手戻りによる開発期間の遅延を防ぐことができる。
【００４１】
次に本発明における状態遷移モデルと状態遷移確率モデルを図４と図５を用いて簡単に説明する。図４は、本発明の一実施の形態の状態遷移モデルを例示するオートマトン図である。図５は、本発明の一実施の形態の状態遷移確率モデルを例示するオートマトン図である。
【００４２】
図４において、ソフトウェアの特定の状態を、例えば状態Ｓ１〜Ｓ５とする。状態遷移モデルにおいて、ある時間における状態をＳ１とする。各状態は、ガード条件を満たすことにより例えばＳ１からＳ２へ状態が遷移する。その条件をガード条件と呼び、図４において［］でくくった条件式で例示した。
【００４３】
図５において、状態遷移確率モデルは、図４に示す状態遷移モデルと状態および状態の遷移先が同じである。状態遷移確率モデルでは、ある状態において複数の状態遷移先が存在する場合、それぞれの遷移する確率を定義することでモデル化する。状態遷移確率モデルでは、ガード条件にかかわらず、例えば状態Ｓ１から状態Ｓ２への遷移確率がｐ＝０．４、状態Ｓ３への遷移確率がｐ＝０．６の確率で起こることを示す。
【００４４】
次に本発明の、あらかじめ設定した第１の状態遷移確率モデル２０３としきい値情報２０４の作成方法の一実施例を図７と図１０を用いて詳細に説明する。図７は、本発明の一実施の形態の第１の状態遷移確率モデルの作成を例示するブロック図である。図１０は、本発明の一実施の形態の確率情報を例示する図である。
２０１は登録する確立情報、２０５は登録手段である。確立情報２０１の一例を図１０に例示する。登録手段２０５は、登録するソフトウェアの状態遷移モデル２０２に対して、ユーザが作成した状態遷移モデル毎の確率情報２０１から、状態遷移モデル２０２毎に第１の状態遷移確率モデル２０３および、しきい値情報２０４を作成することができる。
【００４５】
次に、図３の異常判定手段２１６において異常か否かを求める方法について図１１を用いて説明する。図１１は、本発明の一実施の形態の異常の判定を例示する図である。
前記解析手段２１４は、前記第１の状態遷移確率モデル２０３と前記第２の状態遷移確率モデル２１５を比較して前記異常度を求める。前記第１の状態遷移確率モデル２０３は、図１０に例示した状態遷移確率に示すように固定値であり、前記第２の状態遷移確率モデル２１５は、学習手段２１３によって毎時学習されるため状態遷移確率が変動する。したがって、例えば解析手段２１４は、前記第１の状態遷移確率モデル２０３と前記第２の状態遷移確率モデル２１５の差分を前記異常度とすれば、前記異常度は図１１に示すように時間と供に変動する。しきい値情報２０４は、例えば図１０に例示したしきい値として、前記第１の状態遷移確率モデル２０３の状態遷移確率を平均とする許容範囲を設定することにより、しきい値を超えた場合に異常と判断することが可能である。
【実施例２】
【００４６】
次に本発明の、あらかじめ設定した第１の状態遷移確率モデル２０３としきい値情報２０４の他の作成方法の一実施例を、図８と図９を用いて詳細に説明する。図８は、本発明の一実施の形態である他の第１の状態遷移確率モデルの作成を例示するブロック図である。図９は、本発明の一実施の形態である他の第１の状態遷移確率モデルの作成を例示するフローチャート図である。
【００４７】
図８において、２２１は、第２の学習手段である。第１の状態遷移確率モデル２０３の対象となるソフトウェアは、前記ソフトウェアの実行条件を設定（Ｓ２００）し、ソフトウェア実行手段２１１で実行する（Ｓ２１０）。状態遷移取得手段２１２は、前記ソフトウェア実行手段２１１で実行した前記ソフトウェアに対応した前記状態遷移モデル２０２に基づいて、状態遷移毎の状態遷移回数を収集する（Ｓ２２０）。第２の学習手段２２１は、前記状態遷移モデル２０２の状態遷移毎に、前記状態遷移毎の回数が統計的に十分収集されたことを確認した後（Ｓ２３０）、前記状態遷移毎の回数を集計して状態遷移毎の状態遷移確率を計算し、第１の状態遷移確率モデル２０３、および、前記状態遷移確率のばらつきに応じたしきい値を計算し、しきい値情報２０４を更新する（Ｓ２４０）。前記第１の状態遷移確率モデル２０３および前記しきい値情報２０４の学習が完了するまで（Ｓ２５０）、繰返し前記ソフトウェアの全ての実行条件を設定し（Ｓ２００）、前記第１の状態遷移確率モデル２０３と前記しきい値情報２０４の学習を実行する。学習の完了後、前記第１の状態遷移確率モデル２０３と前記しきい値情報２０４を図３における、前記第１の状態遷移確率モデル２０３と前記しきい値情報２０４にコピーする。
【００４８】
前記第２の学習手段２２１は、例えば、前記状態遷移毎の状態遷移確率が正規分布に従うとすれば、例えば前記状態遷移確率を前記状態遷移確率の平均値、前記しきい値を標準偏差のＮ倍とすることも可能である。
【実施例３】
【００４９】
次に本発明の、異常を検出した状態遷移から実行したソフトウェア障害位置を特定する方法の一実施例を、図１９を用いて詳細に説明する。図１９は本発明の一実施の形態である状態遷移から実行したソフトウェア障害位置を特定する方法を例示する図である。
【００５０】
図１９において、２３０は実行するソフトウェアソースコード、２３１はソースコード解析手段、２３２は異常コードリストである。異常判定手段２１６は、異常度より異常か否かを判断し、前記異常を判断した場合、前記異常度が検出された状態遷移を出力し、ソースコード解析手段２３１は、前記状態遷移に該当する状態遷移モデル２０２から該当のソフトウェアソースコード２３０を抽出し、前記抽出された異常が検出されたソフトウェアの異常コードリスト２３２を出力する。
【００５１】
なお、本実施例では、異常コードリスト２３２は異常を検出した状態遷移モデル２０２の状態遷移に対応する、ソフトウェアソースコード２３０を例示したが、ソースコードに限定するものではなく、実行アドレス、関数名、状態変数、などソフトウェアの実行箇所を明らかにするものであれば良い。
【実施例４】
【００５２】
次に、本発明の他の一実施の形態である実施例１乃至２に係る情報処理システムの構成を、図１２を用いて説明する。図１２は、本発明の一実施の形態である情報処理システムの構成を例示するブロック図である。
【００５３】
当該情報処理システムは、インターネット１２０と、例えばＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ）等の加入者線ネットワーク１１０の双方に接続された加入者線基地局１００と、加入者線ネットワークに接続された複数の加入者宅１３０を有する構成となっている。
【００５４】
加入者線基地局１００は、プログラム配信装置１０１、ゲートウェイ１０２、異常監視装置１０３、を有する構成となっている。
【００５５】
加入者宅１３０は、ＨＧＷ１３１、センサ装置１３４、情報家電１３５、を有する構成となっている。
【００５６】
プログラム配信装置１０１、異常監視装置１０３は、加入者線ネットワーク１１０に接続しており、所定の手順にしたがって情報の送受信を行うことができる。
【００５７】
ゲートウェイ１０２は、インターネット１２０と加入者線ネットワーク１１０の双方に接続しており、インターネット１２０に接続された機器と、加入者線ネットワーク１１０に接続された機器との情報の送受信を行うためのゲートウェイとしての機能を有する。
【００５８】
ＨＧＷ１３１は、加入者線ネットワーク１１０とホームネットワーク１３２の双方に接続しており、加入者線ネットワーク１１０に接続された機器と、ホームネットワーク１３２に接続された機器との情報の送受信を行うためのゲートウェイとしての機能を有する。
【００５９】
センサ装置１３４、情報家電１３５は、有線または無線で構成されるホームネットワーク１３２と接続し、所定の手順にしたがって情報の送受信を行うことができる。
【００６０】
次に、本実施例における異常監視装置１０３とＨＧＷ１３１のハードウェア構成の一例を図１３、図１４を用いて説明する。図１３は、本発明の一実施の形態である異常監視装置の構成を例示するブロック図である。図１４は、本発明の一実施の形態でＨＧＷの構成を例示するブロック図である。
【００６１】
図１３において、異常監視装置１０３は、ＣＰＵ３００、通信ＩＦ３０１、不揮発性記憶装置３０２、メインメモリ３０３、不揮発性メモリ３０４、を有する構成となっており、これらはそれぞれバス３０５と接続され、所定の手順にしたがって情報の送受信を行うことができる。
【００６２】
不揮発性メモリ３０４にはブートプログラムが記憶されており、また、不揮発性記憶装置３０２には各種プログラムが記憶されている。異常監視装置１０３が起動すると、不揮発性メモリ３０４に記憶されたブートプログラムによって不揮発性記憶装置３０２から各種プログラムがメインメモリ３０３へと読み出される。ＣＰＵ３００はメインメモリ３０３に読み出された各種プログラムを実行することにより情報を処理し、通信ＩＦ３０１等による情報の送受信等を行うことができる。
【００６３】
不揮発性記憶装置３０２には、上述のように、ＣＰＵ３００がメインメモリ３０３に読み出して実行するための各種プログラムが記憶されており、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＤＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク（Ｏｐｔｉｃａｌ  Ｄｉｓｋ  Ｄｒｉｖｅ）等によって実現することができる。通信ＩＦ３０１は、ネットワークカード等により実現することができる。通信ＩＦ３０１は、加入者線ネットワーク１１０と接続しており、加入者線ネットワーク１１０と接続する機器との間で情報の送受信を行うことができる。
【００６４】
図１４は、本発明の一実施の形態であるＨＧＷ１３１の構成を例示するブロック図である。ＨＧＷ１３１は、ＣＰＵ３１０、メインメモリ３１３、不揮発性メモリ３１４、センサ装置３１５、異常対策装置３１６、第１の通信ＩＦ３１１、第２の通信ＩＦ３１２を有する構成となっており、これらはそれぞれバス３１７と接続され、所定の手順にしたがって情報の送受信を行うことができる。
【００６５】
不揮発性メモリ３１４にはブートプログラム、各種プログラムが記憶されており、ＨＧＷ１３１が起動すると不揮発性メモリ３１４に記憶されたブートプログラムによって不揮発性メモリ３１４から各種プログラムがメインメモリ３１３へと読み出される。ＣＰＵ３１０はメインメモリ３１３に読み出された各種プログラムを実行することにより情報を処理し、第１の通信ＩＦ３１１、第２の通信ＩＦ３１２等による情報の送受信等を行う。
【００６６】
センサ装置３１５は、各種プログラムのＣＰＵ３１０による実行に伴い発生する各種状態の変動を取得することができる。異常対策装置３１６は、異常の検出または異常の予兆を検出したときに指示により、異常の復旧または異常が起こらないよう対策を行う。
【００６７】
第１の通信ＩＦ３１１は、ネットワークカード等により実現することができる。第２の通信ＩＦ３１２は、ネットワークカード等により実現することができる。第１の通信ＩＦ３１１は、加入者線ネットワーク１１０と接続しており、加入者線ネットワーク１１０と接続する機器との間で情報の送受信を行うことができる。第２の通信ＩＦ３１２は、ホームネットワーク１３２と接続しており、ホームネットワーク１３２に接続する機器との間で情報の送受信を行うことができる。
【００６８】
なお、上述した異常監視装置１０３およびＨＧＷ１３１の構成は、図１３および図１４に例示する構成に限定されないことは当然である。例えば、ＨＧＷ１３１において、センサ装置３１５および異常対策装置３１６は、全てソフトウェアプログラムによって実現され、ＣＰＵ３１０で実行されるような場合は、センサ装置３１５および異常対策装置３１６を有さない構成となる。この場合、当該ソフトウェアプログラムは不揮発性メモリ３１４に記憶され、メインメモリ３１３上に読み出されてＣＰＵ３１０によって実行される。
【００６９】
プログラム配信装置１０１のハードウェア構成は例示しないが、少なくとも１台以上のコンピュータ（ＣＰＵ、メインメモリ、不揮発性記憶装置、入力装置、出力装置、通信ＩＦ等を含む）から構成されている。不揮発性記憶装置からメインメモリに読み出され、ＣＰＵによって実行される各種プログラムは、例えば不揮発性記憶装置に格納された各種プログラムを、例えばＯＳＧｉフレームワークの技術を利用してＨＧＷ１３１からの要求により配信するプログラムが実装されている。また、不揮発性記憶装置には、ＨＧＷ１３１で実行されるプログラムが記憶される。
【００７０】
ゲートウェイ装置１０２のハードウェア構成は例示しないが、少なくとも１台以上のコンピュータ（ＣＰＵ、メインメモリ、不揮発性記憶装置、入力装置、出力装置、通信ＩＦ等を含む）から構成されている。不揮発性記憶装置からメインメモリに読み出され、ＣＰＵによって実行される各種プログラムは、例えばＨＧＷ１３１とインターネット１２０との間で各種インターネットプロトコルに従ったデータの送受を仲介するプログラムが実装されている。
【００７１】
情報家電１３５のハードウェア構成は例示しないが、少なくとも１台以上のコンピュータ（ＣＰＵ、メインメモリ、不揮発性記憶装置、入力装置、出力装置、通信ＩＦ等を含む）から構成されている。不揮発性記憶装置からメインメモリに読み出され、ＣＰＵによって実行される各種プログラムは、例えばローカルネットワーク１３２を経由してＨＧＷ１３１を介してインターネット１２０上の各種サーバ装置と接続し、サーバ装置が提供する各種サービスを実現するプログラムが実装されている。
【００７２】
センサ装置１３４のハードウェア構成は例示しないが、少なくとも１台以上のコンピュータ（ＣＰＵ、メインメモリ、不揮発性メモリ、入力装置、出力装置、通信ＩＦ等を含む）から構成されている。不揮発性メモリからメインメモリに読み出され、ＣＰＵによって実行される各種プログラムは、例えばローカルネットワーク１３２を経由してＨＧＷ１３１を介してインターネット１２０上の各種サーバ装置と接続し、サーバ装置が提供する各種サービスを実現するために必要な温度情報や位置情報など各種情報を取得して送信するプログラムが実装されている。
【００７３】
次に、本発明の一実施の形態である異常監視装置１０３とＨＧＷ１３１の各部の動作を図１５と図１６、図１７，図１８を用いて説明する。図１５は、本発明の一実施の形態である異常監視装置とＨＧＷの構成を例示するブロック図である。図１６は、本発明の一実施の形態である図１５の動作の流れを例示するシーケンス図である。図１７は、本発明の一実施の形態であるＨＧＷ毎に実行されるソフトウェアリスト２５０を例示する図である。図１８は本発明の一実施の形態であるソフトウェア２５１に対応した状態遷移モデルリストを例示する図である。
【００７４】
図１５において、複数のＨＧＷ１３１は、ネットワーク１１０を経由して異常監視装置１０３と接続する。
ＨＧＷ１３１において、１６５はＨＧＷ１３１毎に実行するソフトウェアと実行するソフトウェアの状態遷移モデルを対応つけて記録する構成情報、８０は実行するソフトウェアに対応する状態遷移モデルを管理する実行管理手段、２５１は第１の学習手段、である。
異常監視装置１０３において、２４６は複数のＨＧＷ１３１で実行するソフトウェアリスト２５０と状態遷移モデルリスト２５１を記憶する機器構成情報、１６は構成情報取得手段、２４２は第２の学習手段、２４５は状態遷移確率モデル収集手段、である。
【００７５】
ＨＧＷ１３１において、実行管理手段８０は、構成情報１６５からソフトウェア実行手段２１１で実行するソフトウェアと、前記ソフトウェアに対応する状態遷移モデル２０２を選択し、状態遷移取得手段２１２は、ソフトウェア実行手段２１１で実行中の状態を監視し、状態遷移モデル２０２の状態遷移毎の状態遷移の回数を収集（６００）する。第１の学習手段２５１は、状態遷移毎の状態遷移の回数から第２の状態遷移確率モデル２１５を更新する（６０５）。
【００７６】
解析手段２１４は、第１の状態遷移確率モデル２０３と第２の状態遷移確率モデル２１５を比較して異常度を求め、異常判定手段２１６はしきい値情報２０４と前記異常度から前記異常度が異常を示すか否かを判別し（６２０）、異常であれば異常対策実行手段１７０が異常時の処理を実行する（６５０）。
【００７７】
異常監視装置１０３において、複数のＨＧＷ１３１から、ネットワーク１１０を経由して構成情報１６５を取得し、機器構成情報２４６を作成する。一方、ＨＧＷ１３１で更新されたソフトウェアに対応した第２の状態遷移確率モデル２１５を、ネットワーク１１０を経由して取得し、機器構成情報２４６から対応する状態遷移モデル２０２を選択する（６１１）。第２の学習手段２４２は、複数のＨＧＷ１３１から入手した第２の状態遷移確率モデル２１５から、同じソフトウェア毎に第１の状態遷移確率モデル２０３を作成し（６１０）、ＨＧＷ１３１にネットワーク１１０を経由して転送する。また、同時に第２の学習手段２４２は、複数の第２の状態遷移確率モデル２１５の遷移確率のばらつきを考慮して、しきい値情報を更新し（６４０）、ネットワーク１１０を経由して各ＨＧＷ１３１に転送する。
【００７８】
なお、構成情報１６５は、ＨＧＷ１３１毎の実行可能なソフトウェアの種類および状態遷移モデル２０２を記憶する。前記ソフトウェアは、複数の状態遷移モデル２０２から構成することも可能である。
【００７９】
なお、前記第２の学習手段２４２は、例えば、複数のＨＧＷ１３１から収集した第２の状態遷移確率モデル２１５における前記状態遷移毎の状態遷移確率が正規分布に従うとすれば、各ＨＧＷ１３１の前記状態遷移毎の前記状態遷移確率から平均値および分散を求め、更新する第１の状態遷移確率モデル２０３における前記状態遷移毎の前記状態遷移確率を前記平均値、前記状態遷移毎の前記しきい値を統計的な棄却率から求めることも可能である。
【００８０】
また、状態遷移モデル２０２を用いることにより、異常を検出した状態遷移モデル２０２における状態遷移を特定することが可能であり、ソフトウェアの問題箇所の特定が容易にできる。
【００８１】
一実施の形態において、図１５は、１台のＨＧＷ１３１と１台の異常監視装置１０３からなる構成を例示したが、ＨＧＷ１３１の数を制限するのもではない。
【００８２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８３】
以上の説明から明らかなように、
機器の運用中に複数の機器から収集した第２の状態遷移確率モデルを用いて第１の状態遷移確率モデルを学習できるので、予め試験環境では検出できない異常の検出が可能である。
【００８４】
また、ソフトウェア毎の状態遷移確率モデルと状態遷移毎のしきい値を学習することにより、新設、機能の追加、削除、更新などによる機器の構成が変更されても、学習済みの学習モデルを使った異常の判定を誤検出する確率を低減することが可能になる。
【００８５】
また、状態遷移モデルを用いることにより、異常の検出により状態遷移モデルにおける状態遷移部分を特定することが可能であり、実行時の異常からソフトウェアの問題箇所の特定が容易にできる。
【産業上の利用可能性】
【００８６】
予め予想しないソフトウェアの異常動作に対しても、ソフトウェア（機器）の実行（稼働）時の異常（障害）を検出することができ、また、異常発生箇所の特定が容易であり、ソフトウェアの早期修正が可能となるため、ソフトウェアの異常検知方法やそれを用いた情報処理システムとして産業上の利用可能性がある。
【符号の説明】
【００８７】
２０２    状態遷移モデル
２０３    第１の状態遷移確率モデル
２０４    しきい値情報
２１１    ソフトウェア実行手段
２１２    状態遷移取得手段
２１３    学習手段
２１４    解析手段
２１５    第２の状態遷移確率モデル
２１６    異常判定手段
【図１】
0005604312.tif 000002
【図２】
0005604312.tif 000003
【図３】
0005604312.tif 000004
【図４】
0005604312.tif 000005
【図５】
0005604312.tif 000006
【図６】
0005604312.tif 000007
【図７】
0005604312.tif 000008
【図８】
0005604312.tif 000009
【図９】
0005604312.tif 000010
【図１０】
0005604312.tif 000011
【図１１】
0005604312.tif 000012
【図１２】
0005604312.tif 000013
【図１３】
0005604312.tif 000014
【図１４】
0005604312.tif 000015
【図１５】
0005604312.tif 000016
【図１６】
0005604312.tif 000017
【図１７】
0005604312.tif 000018
【図１８】
0005604312.tif 000019
【図１９】
0005604312.tif 000020