(57)【要約】【課題】必要最小限のリソースを使用して的確な障害予測を行うことができるソフトウェア挙動監視装置等を提供する。【解決手段】ソフトウェア挙動監視装置１は複数の挙動監視モジュール４３で構成されたアプリケーション２３とアプリケーション２３の挙動監視を統括する挙動監視統括部２１と挙動監視モジュール４３の挙動監視情報を格納する挙動監視情報データベース２５とを備える。そして、挙動監視統括部２１は、挙動監視情報データベース２５に格納された挙動監視情報を解析して障害の兆候が検知された挙動監視モジュール４３を中心に挙動監視リソースを配分する。また、各挙動監視モジュール４３は、サブプログラムの実行後に、配分された挙動監視リソースを用いて挙動監視情報を出力する。出力した挙動監視情報は、挙動監視情報データベース２５に格納されて、次回の挙動監視情報の解析に用いられる。【選択図】図２
2008234520.tif 000002
【特許請求の範囲】
【請求項１】
複数の挙動監視モジュールで構成されたアプリケーションと、
前記アプリケーション全体の挙動監視を統括する挙動監視統括部と、
前記挙動監視モジュールから出力された挙動監視情報を格納する挙動監視情報データベースと、
を具備し、
前記挙動監視情報に含まれる挙動監視対象は、前記挙動監視統括部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視装置。
【請求項２】
前記挙動監視モジュールは、
前記挙動監視統括部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、
本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、
を具備することを特徴とする請求項１に記載のソフトウェア挙動監視装置。
【請求項３】
前記挙動監視統括部は、
前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、
解析結果に基づいて前記挙動監視モジュールごとに挙動監視リソースを配分し、挙動監視情報量を制御する挙動監視情報量制御手段と、
配分された前記挙動監視リソースの増減結果に基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定し、前記挙動監視モジュールに送信する挙動監視シグナル送信手段と、
を具備し、
前記挙動監視調整部は、
前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、
を具備し、
前記アプリモジュール部は、
前記挙動監視フラグがオンになっている前記サブプログラムと前記データ群との前記挙動監視情報を出力する挙動監視情報出力手段、
を具備することを特徴とする請求項２に記載のソフトウェア挙動監視装置。
【請求項４】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることを特徴とする請求項３に記載のソフトウェア挙動監視装置。
【請求項５】
前記挙動監視情報量制御手段は、障害の兆候が検知された前記挙動監視モジュールの前記挙動監視リソースと、障害の兆候が検知された前記挙動監視モジュールに先行または後続する前記挙動監視モジュール群の前記挙動監視リソースとを増加させるものであることを特徴とする請求項３または請求項４に記載のソフトウェア挙動監視装置。
【請求項６】
前記挙動監視情報量制御手段は、全ての前記挙動監視モジュールに対する前記挙動監視リソースの合計を、挙動監視のために全体で使用可能な挙動監視リソースの量である最大挙動監視リソース以下に抑えるものであることを特徴とする請求項５に記載のソフトウェア挙動監視装置。
【請求項７】
複数の挙動監視モジュールで構成されたアプリケーションからなるソフトウェア挙動監視装置であって、
前記挙動監視モジュールは、
自らの挙動監視を統括する局所挙動監視部と、
前記局所挙動監視部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、
本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、
前記挙動監視情報を格納する挙動監視情報データベースと、
を具備し、
前記挙動監視情報に含まれる挙動監視対象は、前記局所挙動監視部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視装置。
【請求項８】
前記局所挙動監視部は、
前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、
自らの前記挙動監視情報の前回解析結果と隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果とに基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定する挙動監視シグナル決定手段と、
を具備し、
前記挙動監視調整部は、
前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、
を具備し、
前記アプリモジュール部は、
前記挙動監視フラグがオンになっているサブプログラムとデータ群との前記挙動監視情報を出力する挙動監視情報出力手段、
を具備することを特徴とする請求項７に記載のソフトウェア挙動監視装置。
【請求項９】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることを特徴とする請求項８に記載のソフトウェア挙動監視装置。
【請求項１０】
前記挙動監視シグナル決定手段は、自らの前記挙動監視情報の前回解析結果または先行隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、自らの前記挙動監視モジュールに促進の前記挙動監視シグナルを送信し、後続隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果が障害の兆候であった場合には、自らに抑制の前記挙動監視シグナルを送信するものであることを特徴とする請求項８または請求項９に記載のソフトウェア挙動監視装置。
【請求項１１】
前記挙動監視シグナル決定手段は、自らの前記挙動監視情報の前回解析結果または先行隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、自らの前記挙動監視モジュールに抑制の前記挙動監視シグナルを送信し、後続隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果が障害の兆候であった場合には、自らに促進の前記挙動監視シグナルを送信するものであることを特徴とする請求項８または請求項９に記載のソフトウェア挙動監視装置。
【請求項１２】
複数の挙動監視モジュールで構成されたアプリケーションを具備する第１のコンピュータと、
前記アプリケーション全体の挙動監視を統括する挙動監視統括部と、前記挙動監視モジュールから出力された挙動監視情報を格納する挙動監視情報データベースとを具備する第２のコンピュータと、
からなるソフトウェア挙動監視システムであって、
前記挙動監視情報に含まれる挙動監視対象は、前記挙動監視統括部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視システム。
【請求項１３】
前記挙動監視モジュールは、
前記挙動監視統括部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、
本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、
を具備することを特徴とする請求項１２に記載のソフトウェア挙動監視システム。
【請求項１４】
前記挙動監視統括部は、
前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、
解析結果に基づいて前記挙動監視モジュールごとに挙動監視リソースを配分し、挙動監視情報量を制御する挙動監視情報量制御手段と、
配分された前記挙動監視リソースの増減結果に基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定し、前記挙動監視モジュールに送信する挙動監視シグナル送信手段と、
を具備し、
前記挙動監視調整部は、
前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、
を具備し、
前記アプリモジュール部は、
前記挙動監視フラグがオンになっている前記サブプログラムと前記データ群との前記挙動監視情報を出力する挙動監視情報出力手段、
を具備することを特徴とする請求項１３に記載のソフトウェア挙動監視システム。
【請求項１５】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることを特徴とする請求項１４に記載のソフトウェア挙動監視システム。
【請求項１６】
前記挙動監視情報量制御手段は、障害の兆候が検知された前記挙動監視モジュールの前記挙動監視リソースと、障害の兆候が検知された前記挙動監視モジュールに先行または後続する前記挙動監視モジュール群の前記挙動監視リソースとを増加させるものであることを特徴とする請求項１４または請求項１５に記載のソフトウェア挙動監視システム。
【請求項１７】
前記挙動監視情報量制御手段は、全ての前記挙動監視モジュールに対する前記挙動監視リソースの合計を、挙動監視のために全体で使用可能な挙動監視リソースの量である最大挙動監視リソース以下に抑えるものであることを特徴とする請求項１６に記載のソフトウェア挙動監視システム。
【請求項１８】
コンピュータを請求項１から請求項１１のいずれかに記載のソフトウェア挙動監視装置として機能させるためのプログラム。
【請求項１９】
コンピュータを請求項１２から請求項１７のいずれかに記載の第１のコンピュータとして機能させるためのプログラム。
【請求項２０】
コンピュータを請求項１２から請求項１７のいずれかに記載の第２のコンピュータとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの挙動を監視するソフトウェア挙動監視装置、ソフトウェア挙動監視システム、及びそのプログラムに関する。
【背景技術】
【０００２】
現在、多くの企業等においてソフトウェアを用いたシステムを運用している。こうしたシステムでは、障害発生の兆候を検知するためにソフトウェアの挙動を監視することが行われている。例えば、ソフトウェアの挙動を監視するものとして、特許文献１がある。特許文献１によると、一般的なＯＳである第１ＯＳ上で、通常の業務処理を行うサービスアプリケーションが実行される。第１ＯＳは、第１ＯＳが行った動作を、動作した時間とともに動作記録情報として記録する。第１ＯＳよりも信頼性の高い第２ＯＳに備えられるマルチＯＳ制御部インタフェースは、第２のＯＳ上で動作する解析予測アプリケーションからマルチＯＳ制御部を操作する。そして、解析予測アプリケーションが第１ＯＳ及びサービスアプリケーションの状態を解析して、障害の兆候を検知する。
【特許文献１】特開２００５−１１５７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１を始めとする従来技術では、挙動監視対象を動的に調整するといった仕組みがない。従って、挙動監視対象を詳細に設定していない場合、上位層の挙動監視対象で障害の兆候が検知されたときでも、下位層の挙動監視対象で詳細な挙動監視情報を取得できず、的確な障害予測を行うことができない。一方、挙動監視対象を詳細に設定している場合、ソフトウェアが正常に動作しているときでも、ＣＰＵやメモリといったリソースを不必要に使用することになり、本来のアプリケーションの処理に支障をきたすことになる。
【０００４】
本発明は、前述した問題点に鑑みてなされたもので、その目的は必要最小限のリソースを使用して的確な障害予測を行うことができるソフトウェア挙動監視装置等を提供することである。
【課題を解決するための手段】
【０００５】
前述した目的を達成するために第１の発明は、複数の挙動監視モジュールで構成されたアプリケーションと、前記アプリケーション全体の挙動監視を統括する挙動監視統括部と、前記挙動監視モジュールから出力された挙動監視情報を格納する挙動監視情報データベースと、を具備し、前記挙動監視情報に含まれる挙動監視対象は、前記挙動監視統括部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視装置である。
【０００６】
挙動監視対象は、挙動監視モジュールに含まれるサブプログラム、データ群等といった監視部分と、実行時間、ＣＰＵ負荷変化率、入出力値、内部データ、プログラムカウンタの移行履歴等といった監視項目と、によって定められる。そして、挙動監視統括部は、監視部分と監視項目とを動的に変更する。
【０００７】
第１の発明において、前記挙動監視モジュールは、前記挙動監視統括部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、を具備する。
【０００８】
前記挙動監視統括部は、前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、解析結果に基づいて前記挙動監視モジュールごとに挙動監視リソースを配分し、挙動監視情報量を制御する挙動監視情報量制御手段と、配分された前記挙動監視リソースの増減結果に基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定し、前記挙動監視モジュールに送信する挙動監視シグナル送信手段と、を具備し、前記挙動監視調整部は、前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、を具備し、前記アプリモジュール部は、前記挙動監視フラグがオンになっている前記サブプログラムと前記データ群との前記挙動監視情報を出力する挙動監視情報出力手段、を具備する。
【０００９】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることが望ましい。
【００１０】
前記挙動監視情報量制御手段は、障害の兆候が検知された前記挙動監視モジュールの前記挙動監視リソースと、障害の兆候が検知された前記挙動監視モジュールに先行または後続する前記挙動監視モジュール群の前記挙動監視リソースとを増加させるものであることが望ましい。
【００１１】
前記挙動監視情報量制御手段は、全ての前記挙動監視モジュールに対する前記挙動監視リソースの合計を、挙動監視のために全体で使用可能な挙動監視リソースの量である最大挙動監視リソース以下に抑えるものであることが望ましい。
【００１２】
第２の発明は、複数の挙動監視モジュールで構成されたアプリケーションからなるソフトウェア挙動監視装置であって、前記挙動監視モジュールは、自らの挙動監視を統括する局所挙動監視部と、前記挙動監視統括部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、前記挙動監視情報を格納する挙動監視情報データベースと、を具備し、前記挙動監視情報に含まれる挙動監視情報は、前記局所挙動監視部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視装置である。
【００１３】
第２の発明において、前記局所挙動監視部は、前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、自らの前記挙動監視情報の前回解析結果と隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果とに基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定する挙動監視シグナル決定手段と、を具備し、前記挙動監視調整部は、前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、を具備し、前記アプリモジュール部は、前記挙動監視フラグがオンになっているサブプログラムとデータ群との前記挙動監視情報を出力する挙動監視情報出力手段、を具備する。
【００１４】
挙動監視モジュールの実行順序は一定であり、実行順序が最初と最後の挙動監視モジュール以外は隣接する挙動監視モジュールが２つ存在する。実行順序が最初と最後の挙動監視モジュールは隣接する挙動監視モジュールが１つ存在する。
【００１５】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることが望ましい。
【００１６】
前記挙動監視シグナル決定手段は、自らの前記挙動監視情報の前回解析結果または先行隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、自らの前記挙動監視モジュールに促進の前記挙動監視シグナルを送信し、後続隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果が障害の兆候であった場合には、自らに抑制の前記挙動監視シグナルを送信するものであることが望ましい。
【００１７】
また、前記挙動監視シグナル決定手段は、自らの前記挙動監視情報の前回解析結果または先行隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、自らの前記挙動監視モジュールに抑制の前記挙動監視シグナルを送信し、後続隣接する前記挙動監視モジュールの前記挙動監視情報の前回解析結果が障害の兆候であった場合には、自らに促進の前記挙動監視シグナルを送信するものであっても良い。
【００１８】
先行隣接する挙動監視モジュールとは、隣接する挙動監視モジュールのうち先行して実行されるものを指す。また、後続隣接する挙動監視モジュールとは、隣接する挙動監視モジュールのうち後続して実行されるものを指す。
【００１９】
第３の発明は、複数の挙動監視モジュールで構成されたアプリケーションを具備する第１のコンピュータと、前記アプリケーション全体の挙動監視を統括する挙動監視統括部と、前記挙動監視モジュールから出力された挙動監視情報を格納する挙動監視情報データベースとを具備する第２のコンピュータと、からなるソフトウェア挙動監視システムであって、前記挙動監視情報に含まれる挙動監視対象は、前記挙動監視統括部によって動的に変更されるものであることを特徴とするソフトウェア挙動監視システムである。
【００２０】
第３の発明において、前記挙動監視モジュールは、前記挙動監視統括部から送信される情報に基づいて、自らの挙動監視を調整する挙動監視調整部と、本来のアプリケーションの機能を果たすプログラムを実行し、前記挙動監視調整部によって調整された挙動監視を行い、自らの挙動監視情報を出力するアプリモジュール部と、を具備する。
【００２１】
前記挙動監視統括部は、前記挙動監視情報データベースを参照し、直前に格納された前記挙動監視情報を解析する挙動監視情報解析手段と、解析結果に基づいて前記挙動監視モジュールごとに挙動監視リソースを配分し、挙動監視情報量を制御する挙動監視情報量制御手段と、配分された前記挙動監視リソースの増減結果に基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定し、前記挙動監視モジュールに送信する挙動監視シグナル送信手段と、を具備し、前記挙動監視調整部は、前記挙動監視シグナルに基づいて、前記挙動監視モジュールに含まれるサブプログラムとデータ群との挙動監視フラグを設定する挙動監視フラグ設定手段、を具備し、前記アプリモジュール部は、前記挙動監視フラグがオンになっている前記サブプログラムと前記データ群との前記挙動監視情報を出力する挙動監視情報出力手段、を具備する。
【００２２】
前記挙動監視情報解析手段は、前記挙動監視対象の現在値と事前に測定または予測された前記挙動監視対象の正常値との差が許容値以内かどうかを判断するものであることが望ましい。
【００２３】
前記挙動監視情報量制御手段は、障害の兆候が検知された前記挙動監視モジュールの前記挙動監視リソースと、障害の兆候が検知された前記挙動監視モジュールに先行または後続する前記挙動監視モジュール群の前記挙動監視リソースとを増加させるものであることが望ましい。
【００２４】
前記挙動監視情報量制御手段は、全ての前記挙動監視モジュールに対する前記挙動監視リソースの合計が、挙動監視のために全体で使用可能な挙動監視リソースの量である最大挙動監視リソース以下に抑えるものであることが望ましい。
【００２５】
第４の発明は、コンピュータを請求項１から請求項１１のいずれかに記載のソフトウェア挙動監視装置として機能させるためのプログラムである。
【００２６】
第５の発明は、コンピュータを請求項１２から請求項１７のいずれかに記載の第１のコンピュータとして機能させるためのプログラムである。
【００２７】
第６の発明は、コンピュータを請求項１２から請求項１７のいずれかに記載の第２のコンピュータとして機能させるためのプログラムである。
【発明の効果】
【００２８】
本発明により、必要最小限のリソースを使用して的確な障害予測を行うことができるソフトウェア挙動監視装置等を提供することができる。
【発明を実施するための最良の形態】
【００２９】
以下図面に基づいて、第１の実施の形態を詳細に説明する。
【００３０】
図１は、第１の実施の形態に係るソフトウェア挙動監視装置１を実現するコンピュータのハードウェア構成図である。尚、図１のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
ソフトウェア挙動監視装置１は、制御部３、記憶部５、メディア入出力部７、通信制御部９、入力部１１、表示部１３、周辺機器Ｉ／Ｆ部１５等が、バス１７を介して接続される。
【００３１】
制御部３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
【００３２】
ＣＰＵは、記憶部５、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１７を介して接続された各装置を駆動制御し、ソフトウェア挙動監視装置１が行う後述する処理を実現する。
ＲＯＭは、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部５、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部３が各種処理を行う為に使用するワークエリアを備える。
【００３３】
記憶部５は、ＨＤＤ（ハードディスクドライブ）であり、制御部３が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述の処理に相当するアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部３により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００３４】
メディア入出力部７（ドライブ装置）は、データの入出力を行い、例えば、フロッピー（登録商標）ディスクドライブ、ＣＤドライブ（−ＲＯＭ、−Ｒ、ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＭＯドライブ等のメディア入出力装置を有する。
【００３５】
通信制御部９は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク１９間の通信を媒介する通信インタフェースであり、ネットワーク１９を介して、他のコンピュータ間との通信制御を行う。
【００３６】
入力部１１は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部１１を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
【００３７】
表示部１３は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
【００３８】
周辺機器Ｉ／Ｆ（インタフェース）部１５は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１５を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１５は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３２Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
【００３９】
バス１７は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００４０】
次に、図２を参照しながら、ソフトウェア挙動監視装置１の機能を実現する構成について説明する。
図２は、ソフトウェア挙動監視装置１の機能の概要を示すブロック図である。
【００４１】
図２に示すように、ソフトウェア挙動監視装置１は、アプリケーション２３、挙動監視統括部２１、挙動監視情報データベース２５等を備える。アプリケーション２３は、複数の挙動監視モジュール４３で構成される。挙動監視統括部２１は、アプリケーション２３全体の挙動監視を統括する。挙動監視情報データベース２５は、挙動監視モジュール４３から出力された挙動監視情報を格納する。そして、挙動監視情報に含まれる挙動監視対象は、挙動監視統括部２１によって動的に変更される。
第１の実施の形態では、挙動監視統括部２１は、３個の挙動監視モジュール４３で構成されるアプリケーション２３の挙動監視を統括する。挙動監視統括部２１が何らかの障害の兆候を検知した場合、挙動監視のためのリソースである挙動監視リソースを、挙動監視のために全体で使用可能な挙動監視リソースの量である最大挙動監視リソース以下に抑えて配分し、障害の兆候を検知した挙動監視モジュール４３を中心に挙動の監視を強化する。
【００４２】
まず、挙動監視の対象となるアプリケーション２３を説明する。
アプリケーション２３は、複数の挙動監視モジュール４３から構成されており、各挙動監視モジュール４３は、挙動監視調整部４５とアプリモジュール部５７等を備える。挙動監視調整部４５は、挙動監視統括部２１から送信される情報に基づいて、自らの挙動監視を調整する。アプリモジュール部５７は、本来のアプリケーションの機能を果たすプログラムを実行し、挙動監視調整部４５によって調整された挙動監視を行い、自らの挙動監視情報を出力する。本来のアプリケーションの機能とは、挙動監視に係る機能を除いたものを指し、アプリケーション２３に本来求められている業務機能というべきものである。
【００４３】
挙動監視調整部４５は、挙動監視フラグ設定手段を具備し、挙動監視シグナル送信部４１から送信される挙動監視シグナルに基づいて、挙動監視モジュール４３に含まれるサブプログラムとデータ群との挙動監視フラグ６３を設定する。尚、挙動監視調整部４５は、対応するアプリモジュール部５７が参照できる挙動監視対応表５１を保持している。
【００４４】
アプリモジュール部５７は、プログラム部５９、データ部６１等から構成される。そして、アプリモジュール部５７は、挙動監視情報出力手段を具備し、挙動監視フラグ６３がオンになっているサブプログラムとデータ群との挙動監視情報を出力する。
第１の実施の形態では、プログラム部５９は、２段階の階層を成すサブプログラムから構成される。挙動監視モジュール（１）の場合、上位層はサブプログラムＰ１、下位層はサブプログラムＰ１１、サブプログラムＰ１２であり、各サブプログラムは挙動監視フラグ６３を有する。また、データ部６１は、下位層のサブプログラムごとに使用するデータ群で構成され、データ群Ｄ１１、データ群Ｄ１２も挙動監視フラグ６３を有する。そして、挙動監視フラグ６３がオンになっているサブプログラムに対し、挙動監視対応表５１に従って、プログラム実行後に現在の挙動監視レベル４９に対応する挙動監視情報を出力する。そして、挙動監視情報は、挙動監視情報データベース２５に格納される。
【００４５】
図３は、挙動監視対応表５１を示す図である。
図３に示すように、挙動監視対応表５１は、挙動監視レベル４９ごとの監視部分、監視項目、消費監視リソースを示す表である。監視部分は監視を行う階層、監視項目は監視を行う項目、消費監視リソースは監視によって消費するリソースの量を示す。挙動監視レベル４９が「１」の場合、監視部分は上位層のサブプログラムである「Ｐｋ」、監視項目は「実行時間」、消費監視リソースは「１」である。一方、挙動監視レベル４９が「４」の場合、監視部分は下位層のサブプログラムである「Ｐｋ１、Ｐｋ２」、監視項目は「実行時間、ＣＰＵ負荷変化率、入出力値」、消費監視リソースは「４」である。すなわち、挙動監視レベル４９の数値が高くなるにつれて、監視部分は上位層から下位層に移り、監視項目は増加する。その結果、消費監視リソースも増加することになる。
尚、便宜上、各挙動監視モジュール４３の挙動監視レベル４９の数値が、そのアプリモジュール部５７の消費監視リソースに等しいものとする。
また、監視項目は、実行時間、ＣＰＵ負荷変化率、入出力値に加えて、内部データの更新履歴、プログラムカウンタの移行履歴等を含めても良い。
また、挙動監視対応表５１は、アプリケーション２３の起動時にＲＡＭ上のワークメモリ領域に呼び出されているものとする。
【００４６】
次に、挙動監視統括部２１を説明する。
挙動監視統括部２１は、挙動監視情報データベース２５の内容を解析する解析エンジン２７、挙動監視シグナルを送信する挙動監視シグナル送信部４１等を備える。そして、解析エンジン２７は、挙動監視情報解析部２９、挙動監視情報量制御部３５等から構成される。
【００４７】
挙動監視情報解析手段である解析アルゴリズム３３を具備する挙動監視情報解析部２９は、正常動作表３１と挙動監視情報データベース２５を参照し、直前に格納された挙動監視情報を解析する。解析アルゴリズム３３については、図７の説明にて後述する。
【００４８】
図４は、正常動作表３１を示す図である。
図４に示すように、正常動作表３１は、プログラム部５９のサブプログラムが正常に動作している場合に挙動監視対象を決定する１つの要素である監視項目が通常どのような値であるかを示す表である。監視項目は、前述したように実行時間、ＣＰＵ負荷変化率、入出力値であり、各サブプログラムに対して正常動作を示す数値が設定されている。「＋」と「−」の後の数値は許容値である。例えばサブプログラムＰ１に対する実行時間は、正常値は１５[μｓ]であり、許容値の範囲は４[μｓ]である。また、サブプログラムＰ１に対するＣＰＵ負荷変化率は、正常値は５[％]であり、許容値の範囲は４[％]である。実行時間、ＣＰＵ負荷変化率については、事前に測定された正常値から正常動作表３１の数値を設定する。一方、入出力値については、例えば事前に予測された正常値として入力と出力の関係Ｒを示す数式を設定する。例えば、サブプログラムＰ１の入力と出力の関係Ｒ１が入力値ｘを２倍した値を出力値とするものであれば、Ｒ１は「２ｘ」と設定する。そして、挙動監視情報解析部２９は、挙動監視対象の現在値と事前に測定または予測された正常値との差が許容値以内かどうかを判断する。
尚、正常動作表３１は、アプリケーション２３の起動時にＲＡＭ上のワークメモリ領域に呼び出されているものとする。
【００４９】
挙動監視情報量制御手段である制御アルゴリズム３９を具備する挙動監視情報量制御部３５は、挙動監視情報解析部２９の解析結果に基づいて挙動監視モジュール４３ごとに挙動監視リソースを配分し、挙動監視情報量を制御する。挙動監視情報量の制御は、モジュール監視レベル表３７を更新することで行う。制御アルゴリズム３９については、図８の説明にて後述する。
【００５０】
図５は、モジュール監視レベル表３７を示す図である。
図５に示すように、モジュール監視レベル表３７は、挙動監視モジュール４３ごとの現挙動監視レベルを示す表である。図５では、挙動監視モジュール（１）の現挙動監視レベルが「３」であり、挙動監視モジュール（２）、（３）の現挙動監視レベルが「１」であることを示している。
尚、モジュール監視レベル表３７は、アプリケーション２３の起動時にＲＡＭ上のワークメモリ領域に呼び出されて、所定の初期値が設定されているものとする。
【００５１】
挙動監視シグナル送信手段を具備する挙動監視シグナル送信部４１は、挙動監視情報量制御部３５によって配分された挙動監視リソースの増減結果に基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定し、挙動監視モジュール４３に送信する。ここで、図２における５３の促進、５５の抑制が、挙動監視シグナルを意味する。
尚、送信の形態は、プロセス間通信を用いる形態、イベント送受信の機能を用いる形態、プロセス間共有メモリを介する形態等があるが、いずれの形態であっても良い。
【００５２】
次に、図６から図８を参照しながら、ソフトウェア挙動監視装置１の動作の詳細について説明する。
図６は、ソフトウェア挙動監視装置１の全体の流れを示すフローチャートである。
【００５３】
図６に示すように、制御部３は、直前に格納された挙動監視情報を取得する（Ｓ１０１）。次に、制御部３は、解析アルゴリズム３３によって、正常動作表３１と直前に格納された挙動監視情報を比較する（Ｓ１０２）。
【００５４】
図７は、解析アルゴリズム３３の流れを示すフローチャートである。
図７に示すように、制御部３は、取得した挙動監視情報から挙動監視対象であるサブプログラムの監視項目の現在値を取得する（Ｓ２０１）。次に、制御部３は、正常動作表３１から挙動監視対象であるサブプログラムの監視項目の正常値と許容値を取得する（Ｓ２０２）。
【００５５】
次に、制御部３は、現在値と正常値との差が許容値以内かどうか確認する（Ｓ２０３）。すなわち、挙動監視対象の現在値と事前に測定または予測された挙動監視対象との差が許容値以内かどうかを判断する。
許容値以内でない場合、対象の挙動監視モジュール４３は障害の兆候と判断し、処理を終了する（Ｓ２０４）。
許容値以内の場合、Ｓ２０５に進む。
【００５６】
次に、制御部３は、対象の挙動監視モジュール４３に含まれるすべてのサブプログラムについて処理が完了したかどうか確認する（Ｓ２０５）。
処理が完了していない場合、Ｓ２０１から繰り返す。
処理が完了している場合、対象の挙動監視モジュール４３は正常と判断し、処理を終了する（Ｓ２０６）。
以上の処理を全ての挙動監視モジュール４３に対して行い、挙動監視情報を解析する。
【００５７】
次に、制御部３は、制御アルゴリズム３９によって、モジュール監視レベル表３７の調整を行う（Ｓ１０３）。
【００５８】
図８は、制御アルゴリズム３９の流れを示すフローチャートである。
図８に示すように、制御部３は、障害の兆候が検知された挙動監視モジュール４３と後続の挙動監視モジュール４３に対して挙動監視リソースを１だけ増加する（Ｓ３０１）。すなわち、障害の兆候が検知された挙動監視モジュール４３の挙動監視リソースと、障害の兆候が検知された挙動監視モジュール４３の後続となる挙動監視モジュール４３群の挙動監視リソースとを増加させる。
【００５９】
次に、制御部３は、最大挙動監視リソースと配分した挙動監視リソースの合計とを比較する（Ｓ３０２）。
配分した挙動監視リソースの合計が最大挙動監視リソース以下の場合、挙動監視リソースの配分を終了する（Ｓ３０３）。
配分した挙動監視リソースの合計が最大挙動監視リソースより大きい場合、Ｓ３０４に進む。
【００６０】
次に、制御部３は、障害の兆候が検知されていない挙動監視モジュール４３の挙動監視リソースを１だけ削減する（Ｓ３０４）。
【００６１】
次に、制御部３は、最大挙動監視リソースと配分した挙動監視リソースの合計とを比較する（Ｓ３０５）。
配分した挙動監視リソースの合計が最大挙動監視リソース以下の場合、挙動監視リソースの配分を終了する（Ｓ３０６）。
配分した挙動監視リソースの合計が最大挙動監視リソースより大きい場合、Ｓ３０７に進む。
【００６２】
次に、制御部３は、Ｓ３０１において挙動監視リソースを増加させた挙動監視モジュール４３の中で、障害の兆候が検知された挙動監視モジュール４３から見て実行順序が遠い順に挙動監視リソースを１だけ削減する（Ｓ３０７）。
【００６３】
次に、制御部３は、最大挙動監視リソースと配分した挙動監視リソースの合計とを比較する（Ｓ３０８）。
配分した挙動監視リソースの合計が最大挙動監視リソース以下の場合、挙動監視リソースの配分を終了する（Ｓ３０９）。
配分した挙動監視リソースの合計が最大挙動監視リソースより大きい場合、Ｓ３０７から繰り返す。
以上によって、全ての挙動監視モジュール４３に対する挙動監視リソースの合計を、最大挙動監視リソース以下に抑えるように挙動監視リソースが配分されて、モジュール監視レベル表３７の調整が完了する。
【００６４】
次に、制御部３は、モジュール監視レベル表３７の調整に応じて、挙動監視シグナルを送信する（Ｓ１０４）。そして、制御部３は、以下に示す挙動監視ループを全ての挙動監視モジュール４３について行う（Ｓ１０５）。
制御部３は、挙動監視シグナルを受信する（Ｓ１０６）。次に、制御部３は、挙動監視シグナルから挙動監視レベル４９を決定し、アプリモジュール部５７の挙動監視フラグ６３を設定する（Ｓ１０７）。次に、制御部３は、プログラムを実行し、挙動監視フラグ６３が設定されているプログラム部５９とデータ部６１の挙動監視情報を出力する（Ｓ１０８）。出力された挙動監視情報は、挙動監視情報データベース２５に格納される。
以上によって、全ての挙動監視モジュール４３のプログラムが実行されて、挙動監視レベル４９に応じた挙動監視情報が出力される。
【００６５】
次に、図９から図１１を参照しながら、ソフトウェア挙動監視装置１を実施したときの挙動監視リソースの配分について説明する。
以下では、挙動監視対応表５１、正常動作表３１、モジュール監視レベル表３７を、図３から図５に示したように設定し、アプリケーション２３の実行が３回行われる場合を例にして説明する。尚、最大挙動監視リソースを６とする。
【００６６】
（１回目）
図９は、１回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図９に示すように、１回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（３、１、１）である。
制御部３は、挙動監視モジュール（１）、（２）、（３）のプログラムを順に実行する。挙動監視モジュール（２）の現挙動監視レベルが１であることから、制御部３は、サブプログラムＰ２の実行時間を観測し、挙動監視情報データベース２５に格納する。
次に、制御部３は、挙動監視情報データベース２５に格納された内容と正常動作表３１とを比較する。サブプログラムＰ２の実行時間が２０[μｓ]だったとすると、現在値は許容値を超えていることから、制御部３は、障害の兆候と判断し、挙動監視モジュール（２）、（３）の挙動監視リソースを１だけ増加する。このとき、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（３、２、２）となる。しかし、配分した挙動監視リソースの合計が７となり、最大挙動監視リソースを超えてしまうことから、制御部３は、挙動監視モジュール（１）の挙動監視リソースを１だけ削減する。
【００６７】
（２回目）
図１０は、２回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１０に示すように、２回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（２、２、２）である。
制御部３は、挙動監視モジュール（１）、（２）、（３）のプログラムを順に実行する。挙動監視モジュール（２）の現挙動監視レベルが２であることから、制御部３は、サブプログラムＰ２の実行時間、ＣＰＵ負荷変化率を観測し、挙動監視情報データベース２５に格納する。
次に、制御部３は、挙動監視情報データベース２５に格納された内容と正常動作表３１とを比較する。サブプログラムＰ２の実行時間が２０[μｓ]、ＣＰＵ負荷変化率が２０[％]だったとすると、共に現在値は許容値を超えていることから、制御部３は、障害の兆候と判断し、挙動監視モジュール（２）、（３）の挙動監視リソースを１だけ増加する。このとき、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（２、３、３）となる。しかし、配分した挙動監視リソースの合計が８となり、最大挙動監視リソースを超えてしまうことから、制御部３は、挙動監視モジュール（１）の挙動監視リソースを１だけ削減する。このとき、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（１、３、３）となる。配分した挙動監視リソースの合計が７となり、依然として最大挙動監視リソースを超えてしまうことから、障害の兆候が検知された挙動監視モジュール（２）の後続である挙動監視モジュール（３）の挙動監視リソースを１だけ削減する。
【００６８】
（３回目）
図１１は、３回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１１に示すように、３回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（１、３、２）である。
以上のように、挙動監視リソースは、障害の兆候が検知された挙動監視モジュール（２）に対して優先的に割り当てられ、障害に対処するための情報を効果的に収集することができる。
【００６９】
以上詳細に説明したように、第１の実施の形態によれば、ソフトウェア挙動監視装置１は複数の挙動監視モジュール４３で構成されたアプリケーション２３とアプリケーション２３の挙動監視を統括する挙動監視統括部２１と挙動監視モジュール４３の挙動監視情報を格納する挙動監視情報データベース２５とを備える。そして、挙動監視統括部２１は、挙動監視情報データベース２５に格納された挙動監視情報を解析して障害の兆候が検知された挙動監視モジュール４３を中心に挙動監視リソースを配分する。また、各挙動監視モジュール４３は、サブプログラムの実行後に、配分された挙動監視リソースを用いて挙動監視情報を出力する。出力した挙動監視情報は、挙動監視情報データベース２５に格納されて、次回の挙動監視情報の解析に用いられる。
【００７０】
第１の実施の形態によって、ソフトウェアの挙動監視対象を決定する監視部分と監視項目を動的に調整し、必要最小限のリソースを使用して障害に対処するための情報を効果的に収集することができる。そして、的確な障害予測を行うことができる。
【００７１】
また、障害の兆候が検知された挙動監視モジュール４３に加えて、後続する挙動監視モジュール４３にも挙動監視リソースを配分することで、障害の影響範囲を特定することができる。同様な考え方で、前に続く挙動監視モジュールに対して挙動監視リソースを増加させることも可能であり、それによって、障害の兆候が現れた原因を究明するための情報を効果的に収集することができる。つまり、先行する挙動監視モジュール４３にも挙動監視リソースを配分するようにしても良い。
【００７２】
また、最大挙動監視リソースを超えない範囲で挙動監視リソースを配分することで、本来のアプリケーションの機能が使用するリソースが不足する事態を避けることができる。
【００７３】
尚、第１の実施の形態では１つのコンピュータによる実施の形態を示したが、例えば、挙動監視統括部２１とアプリケーション２３とが別々のコンピュータで動作し、挙動監視シグナルの送受信はネットワーク１９を介した通信によって行う、複数のコンピュータによるソフトウェア挙動監視システムとすることもできる。この場合、アプリケーション２３が動作するコンピュータは、リソースをアプリモジュール部５７の実行に多く割り当てることができる。
【００７４】
また、挙動監視レベル４９が所定の閾値以上に変更された場合、例えばソフトウェアシステムの管理者に対して電子メール等を用いた報知を行うことで、管理者はタイムリーな障害対応を行うことが出来る。
【００７５】
次に、第２の実施の形態を詳細に説明する。
【００７６】
図１は、第２の実施の形態に係るソフトウェア挙動監視装置１ａを実現するコンピュータのハードウェア構成図である。ソフトウェア挙動監視装置１ａのハードウェア構成は、第１の実施の形態における説明と同様であるため説明を省略する。
【００７７】
次に、図１２を参照しながら、ソフトウェア挙動監視装置１ａの機能を実現する構成について説明する。
図１２は、ソフトウェア挙動監視装置１ａの機能の概要を示すブロック図である。
尚、図２に示す構成要素と同一の機能を果たす要素には、同一の番号を付して重複した説明を避ける。
【００７８】
図１２に示すように、ソフトウェア挙動監視装置１ａは、複数の挙動監視モジュール４３ａで構成されるアプリケーション２３ａ等を備える。挙動監視モジュール４３ａは、局所挙動監視部６５、挙動監視調整部４５、アプリモジュール部５７、挙動監視情報データベース２５ａ等を備える。局所挙動監視部６５は、自らの挙動監視を統括する。挙動監視調整部４５は、局所挙動監視部６５から送信される情報に基づいて、自らの挙動監視を調整する。アプリモジュール部５７は、本来のアプリケーションの機能を果たすプログラムを実行し、挙動監視調整部４５によって調整された挙動監視を行い、自らの挙動監視情報を出力する。挙動監視情報データベース２５ａは、挙動監視情報を格納する。そして、挙動監視情報に含まれる挙動監視対象は、局所挙動監視部６５によって動的に変更される。
第２の実施の形態では、アプリケーション２３ａはｋ個の挙動監視モジュール４３ａで構成される。各挙動監視モジュール４３ａが単純なアルゴリズムを実行することによって、全体として適切な挙動監視が行われる。
【００７９】
局所挙動監視部６５は、局所解析エンジン６７、挙動監視シグナル送信部４１等を備える。局所解析エンジン６７は、挙動監視情報解析手段である解析アルゴリズム３３と挙動監視シグナル決定手段である局所アルゴリズムとを具備する。解析アルゴリズム３３は、第１の実施の形態と同様である。局所アルゴリズムは、自らの挙動監視情報の前回解析結果と隣接する挙動監視モジュール４３ａの挙動監視情報の前回解析結果とに基づいて、挙動監視を促進するかまたは抑制するかを示す挙動監視シグナルを決定する。挙動監視シグナル送信部４１は、決定された挙動監視シグナルを送信する。
【００８０】
次に、図１３から図１４を参照しながら、ソフトウェア挙動監視装置１ａの動作の詳細について説明する。
図１３は、ソフトウェア挙動監視装置１ａの全体の流れを示すフローチャートである。
【００８１】
図１３に示すように、制御部３は、以下に示す挙動監視ループを全ての挙動監視モジュール４３ａについて行う（Ｓ４０１）。
制御部３は、直前に格納された挙動監視情報を取得する（Ｓ４０２）。次に、制御部３は、解析アルゴリズム３３によって、正常動作表３１と直前に格納された挙動監視情報を比較する（Ｓ４０３）。解析アルゴリズム３３は、前述した図７の説明のとおりである。すなわち、挙動監視対象の現在値と事前に測定または予測された挙動監視対象との差が許容値以内かどうかによって、障害の兆候または正常のいずれかと判断する。次に、制御部３は、局所アルゴリズムによって、送信する挙動監視シグナルを決定する（Ｓ４０４）。
【００８２】
図１４は、局所アルゴリズムの流れを示すフローチャートである。
図１４では、挙動監視モジュール（ｍ）（１≦ｍ≦ｋ）に対する挙動監視シグナルの決定を示している。
図１４に示すように、制御部３は、挙動監視モジュール（ｍ−１）、（ｍ）、（ｍ＋１）に対する前回の解析結果を取得する（Ｓ５０１）。
【００８３】
次に、制御部３は、挙動監視モジュール（ｍ）に対する前回の解析結果が障害の兆候かどうかを確認する（Ｓ５０２）。
障害の兆候の場合、制御部３は、挙動監視モジュール（ｍ）に「促進」の挙動監視シグナルを送信することを決定し（Ｓ５０３）、挙動監視シグナルの決定を終了する（Ｓ５０４）。
障害の兆候でない場合、Ｓ５０５に進む。
【００８４】
次に、制御部３は、挙動監視モジュール（ｍ−１）に対する前回の解析結果が障害の兆候かどうかを確認する（Ｓ５０５）。
障害の兆候の場合、制御部３は、挙動監視モジュール（ｍ）に「促進」の挙動監視シグナルを送信することを決定し（Ｓ５０６）、挙動監視シグナルの決定を終了する（Ｓ５０７）。
障害の兆候でない場合、Ｓ５０８に進む。
【００８５】
次に、制御部３は、挙動監視モジュール（ｍ＋１）に対する前回の解析結果が障害の兆候かどうかを確認する（Ｓ５０８）。
障害の兆候の場合、制御部３は、挙動監視モジュール（ｍ）に「抑制」の挙動監視シグナルを送信することを決定し（Ｓ５０９）、挙動監視シグナルの決定を終了する（Ｓ５１０）。
障害の兆候でない場合、制御部３は、挙動監視シグナルを送信しないことを決定し（Ｓ５１１）、挙動監視シグナルの決定を終了する（Ｓ５１２）。
【００８６】
以上のとおり、局所アルゴリズムは、自分自身である挙動監視モジュール（ｍ）の挙動監視情報の前回解析結果または先行隣接する挙動監視モジュール（ｍ−１）の挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、挙動監視モジュール（ｍ）に「促進」の挙動監視シグナルを送信し、後続隣接する挙動監視モジュール（ｍ＋１）の挙動監視情報の前回解析結果が障害の兆候であった場合には、挙動監視モジュール（ｍ）に「抑制」の挙動監視シグナルを送信する。
尚、障害の兆候が現れた原因を究明するため、局所アルゴリズムは、自分自身である挙動監視モジュール（ｍ）の挙動監視情報の前回解析結果または先行隣接する挙動監視モジュール（ｍ−１）の挙動監視情報の前回解析結果のいずれかが障害の兆候であった場合には、挙動監視モジュール（ｍ）に「抑制」の挙動監視シグナルを送信し、後続隣接する挙動監視モジュール（ｍ＋１）の挙動監視情報の前回解析結果が障害の兆候であった場合には、挙動監視モジュール（ｍ）に「促進」の挙動監視シグナルを送信するようにしても良い。
【００８７】
次に、制御部３は、局所アルゴリズムにより決定した挙動監視シグナルを送信する（Ｓ４０５）。
以上の処理が全ての挙動監視モジュール４３ａにおいて自律的に行われる。
【００８８】
制御部３は、前回の挙動監視シグナルを受信する（Ｓ４０６）。Ｓ４０１からＳ４０８までの挙動監視ループは、アプリケーション２３ａの起動時から停止時まで繰り返し実行される。ここで、今回の挙動監視ループがｎ回目とすると、ｎ−１回目のＳ４０５で送信された挙動監視シグナルを受信する。次に、制御部３は、挙動監視シグナルから挙動監視レベル４９を決定し、アプリモジュール部５７の挙動監視フラグ６３を設定する（Ｓ４０７）。次に、制御部３は、プログラムを実行し、挙動監視フラグ６３が設定されているプログラム部５９とデータ部６１の挙動監視情報を出力する（Ｓ４０８）。
以上によって、全ての挙動監視モジュール４３ａのプログラムが実行されて、挙動監視レベル４９に応じた挙動監視情報が出力される。
【００８９】
次に、図１５から図２０を参照しながら、ソフトウェア挙動監視装置１ａを実施したときの挙動監視リソースの配分について説明する。
以下では、３つの挙動監視モジュール４３ａに対し、アプリケーション２３ａの実行が５回行われる場合を例にして説明する。尚、最大挙動監視リソースを６とする。
【００９０】
図１５は、挙動監視モジュール４３ａごとの解析アルゴリズム３３の出力と局所アルゴリズムの出力を示す図である。
例えば、解析アルゴリズム３３の出力の「正常」、「障害の兆候」は、それぞれ、「正常」、「障害の兆候」と判断したことを示す。また、局所アルゴリズムの「送信しない」、「抑制」、「促進」は、それぞれ、「挙動監視シグナルを送信しない」、「抑制の挙動監視シグナルを送信する」、「促進の挙動監視シグナルを送信する」と決定したことを示す。
以下では、図１５に示した解析アルゴリズム３３の出力を仮定したときに局所アルゴリズムの出力がどのように決定されるかに加えて、モジュール監視レベル表３７がどのように変化していくかについて説明する。
【００９１】
（１回目)
図１６は、１回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１６に示すように、１回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（３、１、１）である。
また、前回（０回目）はアプリケーション２３ａの実行自体が行われていないため、図１５に示すように、１回目の局所アルゴリズムの出力は、全て「送信しない」となっている。
さらに、前回（０回目）はアプリケーション２３ａの実行が行われていないため、挙動監視シグナルは送信されていないことから、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは変化しない。
【００９２】
(２回目)
図１７は、２回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１７に示すように、２回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（３、１、１）である。
また、前回（１回目）の挙動監視モジュール（２）の解析結果が「障害の兆候」であることから、図１５に示すように、２回目の局所アルゴリズムの出力は、挙動監視モジュール（１）では「抑制」となっている。一方、挙動監視モジュール（２）、（３）では「促進」となっている。
さらに、前回（１回目）の挙動監視シグナルは全て送信されていないことから、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは変化しない。
【００９３】
（３回目）
図１８は、３回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１８に示すように、３回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（３、１、１）である。
また、前回（２回目）の挙動監視モジュール（２）の解析結果が「障害の兆候」であることから、図１５に示すように、３回目の局所アルゴリズムの出力は、挙動監視モジュール（１）では「抑制」となっている。一方、挙動監視モジュール（２）、（３）では「促進」となっている。
さらに、前回（２回目）の挙動監視シグナルは、挙動監視モジュール（１）、（２）、（３）に対して「抑制」、「促進」、「促進」である。従って、現挙動監視レベルは、挙動監視モジュール（１）が１だけ削減され、挙動監視モジュール（２）、（３）が１だけ増加されることになる。
【００９４】
（４回目）
図１９は、４回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図１９に示すように、４回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（２、２、２）である。
また、前回（３回目）の解析結果が全て「正常」であることから、図１５に示すように、４回目の局所アルゴリズムの出力は、挙動監視モジュール（１）、（２）、（３）の全てにおいて「送信しない」となっている。
さらに、前回（３回目）の挙動監視シグナルは、挙動監視モジュール（１）、（２）、（３）に対して「抑制」、「促進」、「促進」である。従って、現挙動監視レベルは、挙動監視モジュール（１）が１だけ削減され、挙動監視モジュール（２）、（３）が１だけ増加されるはずである。しかし、挙動監視モジュール（２）の現挙動監視レベルを１だけ増加させた時点で最大挙動監視リソースと等しくなっているため、挙動監視モジュール（３）の現挙動監視レベルを１だけ増加させることはできない。
【００９５】
（５回目）
図２０は、５回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図である。
図２０に示すように、５回目のアプリケーション実行直前では、挙動監視モジュール（１）、（２）、（３）の現挙動監視レベルは、（１、３、２）である。
以上のように、アプリケーション全体の挙動監視を統括する機能がなくても、挙動監視リソースの配分を適切に行うことができる。
【００９６】
以上説明したように、第２の実施の形態によれば、アプリケーション２３ａを構成する挙動監視モジュール４３ａが局所挙動監視部６５を備え、局所アルゴリズムによって隣接する挙動監視モジュール４３ａの挙動監視情報から挙動監視シグナルを決定する。
【００９７】
第２の実施の形態によって、大規模なアプリケーション２３ａのように挙動監視モジュール４３ａの数が多くなる場合、第１の実施の形態では問題となる点を解決することができる。第１の実施の形態で問題となる点とは、挙動監視モジュール４３の数が多くなると、挙動監視統括部２１の解析処理が複雑かつ増大し、挙動監視リソースの配分を迅速かつ適切に行えないということである。しかし、第２の実施の形態では、挙動監視モジュール４３ａの数が増えても局所的な解析処理は単純であり、挙動監視モジュール４３ａごとに処理を行うことから解析処理の増大による遅延といった問題は発生しない。従って、挙動監視モジュール４３ａの数が多くなる場合、第１の実施の形態よりも迅速かつ適切に挙動監視リソースの配分を行うことができる。
【００９８】
以上、添付図面を参照しながら、本発明に係るソフトウェア挙動監視装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００９９】
【図１】ソフトウェア挙動監視装置１（１ａ）を実現するコンピュータのハードウェア構成図
【図２】ソフトウェア挙動監視装置１の機能の概要を示すブロック図
【図３】挙動監視対応表５１を示す図
【図４】正常動作表３１を示す図
【図５】モジュール監視レベル表３７を示す図
【図６】ソフトウェア挙動監視装置１の全体の流れを示すフローチャート
【図７】解析アルゴリズム３３の流れを示すフローチャート
【図８】制御アルゴリズム３９の流れを示すフローチャート
【図９】１回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１０】２回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１１】３回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１２】ソフトウェア挙動監視装置１ａの機能の概要を示すブロック図
【図１３】ソフトウェア挙動監視装置１ａの全体の流れを示すフローチャート
【図１４】局所アルゴリズムの流れを示すフローチャート
【図１５】挙動監視モジュール４３ａごとの解析アルゴリズム３３の出力と局所アルゴリズムの出力を示す図
【図１６】１回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１７】２回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１８】３回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図１９】４回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【図２０】５回目のアプリケーション実行直前のモジュール監視レベル表３７を示す図
【符号の説明】
【０１００】
１………ソフトウェア挙動監視装置
３………制御部
５………記憶部
７………メディア入出力部
９………通信制御部
１１………入力部
１３………表示部
１５………周辺機器Ｉ／Ｆ部
１７………バス
１９………ネットワーク
２１………挙動監視統括部
２３………アプリケーション
２５………挙動監視情報データベース
２７………解析エンジン
２９………挙動監視情報解析部
３１………正常動作表
３３………解析アルゴリズム
３５………挙動監視情報量制御部
３７………モジュール監視レベル表
３９………制御アルゴリズム
４１………挙動監視シグナル送信部
４３………挙動監視モジュール
４５………挙動監視調整部
４９………挙動監視レベル
５１………挙動監視対応表
５３………促進
５５………抑制
５７………アプリモジュール部
５９………プログラム部
６１………データ部
６３………挙動監視フラグ
６５………局所挙動監視部
６７………局所解析エンジン
【図１】
2008234520.tif 000003
【図２】
2008234520.tif 000004
【図３】
2008234520.tif 000005
【図４】
2008234520.tif 000006
【図５】
2008234520.tif 000007
【図６】
2008234520.tif 000008
【図７】
2008234520.tif 000009
【図８】
2008234520.tif 000010
【図９】
2008234520.tif 000011
【図１０】
2008234520.tif 000012
【図１１】
2008234520.tif 000013
【図１２】
2008234520.tif 000014
【図１３】
2008234520.tif 000015
【図１４】
2008234520.tif 000016
【図１５】
2008234520.tif 000017
【図１６】
2008234520.tif 000018
【図１７】
2008234520.tif 000019
【図１８】
2008234520.tif 000020
【図１９】
2008234520.tif 000021
【図２０】
2008234520.tif 000022