(57)【特許請求の範囲】
【請求項１】
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間について相関係数が所定の閾値以上である相関関係が存在するか否かを判定し、当該相関関係が存在すると判定した場合に、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測ステップと、
を、コンピュータに実行させるためのバッチジョブ処理時間推定プログラム。
【請求項２】
前記ジョブ処理時間データ生成ステップが、
前記順序関係データ格納部に格納されている前記順序関係データに従って、前記複数のバッチジョブのうち第１のバッチジョブと当該第１のバッチジョブから遷移可能な第２のバッチジョブとの組み合わせを特定するステップと、
特定された前記組み合わせのうち当該組み合わせに含まれる前記バッチジョブの処理時間の相関係数が所定値以上の組み合わせについて回帰計算を実施して、前記相関関係に関するデータを生成し、前記ジョブ処理時間データ格納部に格納するステップと、
をさらに前記コンピュータに実行させるための、請求項１記載のバッチジョブ処理時間推定プログラム。
【請求項３】
前記順序関係データ生成ステップが、
前記複数のバッチジョブのうち先行する第１のバッチジョブの終了時刻と後続の第２のバッチジョブの開始時刻とから、前記第１のバッチジョブが完了することに応じて前記第２のバッチジョブが実行されるという第１の順序関係についての条件を満たしているか判断し、満たしている場合には前記第１のバッチジョブと前記第２のバッチジョブとを前記第１の順序関係で関連付けるためのデータを、前記順序関係データ格納部に格納するステップと、
前記複数のバッチジョブのうち先行する第３のバッチジョブの開始時刻及び終了時刻と後続の第４のバッチジョブの開始時刻及び終了時刻とから、前記第３のバッチジョブの実行途中で前記第４のバッチジョブを開始し且つ前記第４のバッチジョブの実行途中で前記第３のバッチジョブが終了するという第２の順序関係についての条件を満たしているか判断し、満たしている場合には前記第３のバッチジョブと前記第４のバッチジョブとを前記第２の順序関係で関連付けるためのデータを、前記順序関係データ格納部に格納するステップと、
を含む請求項１又は２記載のバッチジョブ処理時間推定プログラム。
【請求項４】
前記順序関係データが、
前記複数のバッチジョブのうち先行する第１のバッチジョブが完了することに応じて後続の第２のバッチジョブが実行されるという第１の順序関係の識別子と前記第１及び第２のバッチジョブの識別情報とを含むデータと、
前記複数のバッチジョブのうち先行する第３のバッチジョブの実行途中で後続の第４のバッチジョブを開始し且つ前記第４のバッチジョブの実行途中で前記第３のバッチジョブが終了するという第２の順序関係の識別子と前記第３及び第４のバッチジョブの識別情報とを含むデータと、
を含み、
前記予測ステップが、
前記実行状況データから、各前記バッチジョブの実行時間を算出するステップと、
前記第４のバッチジョブについて、前記実行状況データから前記第４のバッチジョブの開始時刻から前記第３のバッチジョブの終了時刻までの待機時間を算出し、さらに前記実行時間と前記待機時間との差を前記実行時間として算出するステップと、
前記順序関係データ格納部に格納されている前記順序関係データによって特定される、先頭のバッチジョブから末端のバッチジョブまでの各経路について、当該経路に含まれる前記バッチジョブ毎に前記実行時間と前記ジョブ処理時間データ格納部に格納されている前記ジョブ処理時間データから特定される推定処理時間とのうち長い方の時間である個別処理時間を特定し、特定された前記個別処理時間を累積して予測処理時間を算出する予測処理時間算出ステップと、
各前記経路について算出された前記予測処理時間のうち最長の予測処理時間を特定するステップと、
を含む請求項１記載のバッチジョブ処理時間推定プログラム。
【請求項５】
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間について相関係数が所定の閾値以上である相関関係が存在するか否かを判定し、当該相関関係が存在すると判定した場合に、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測ステップと、
を含み、コンピュータに実行されるバッチジョブ処理時間推定方法。
【請求項６】
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係抽出部と、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間について相関係数が所定の閾値以上である相関関係が存在するか否かを判定し、当該相関関係が存在すると判定した場合に、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間推定部と、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測部と、
を有するバッチジョブ処理時間推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、バッチジョブの処理時間を推定する技術に関する。
【背景技術】
【０００２】
大規模システムにおいては多数のバッチジョブが実行される。バッチジョブとは、例えば１日の売上計算処理といった、所定期間毎にまとめて行うジョブである。典型的には、プログラムやスクリプトによりある程度まとまった量のデータが処理される。バッチジョブ同士には様々な形態での順序関係があり、相互に連動することが多い。例えば、発注確定処理が終了してから、売上計算処理を開始するといった場合がある。また、バッチジョブＡがファイルＣを出力すると、待機していたバッチジョブＢが当該ファイルＣの処理を開始するといった場合もある。
【０００３】
しかしながら、バッチジョブの順序関係は、簡単に確認できない場合がある。例えば、バッチジョブＡのためのプログラムから出力されるメッセージに応じてバッチジョブＢを開始している場合には、プログラムを解析しなければその順序関係を特定できない。これは事実上不可能である。また、近年企業合併が多く行われているが、その際複数のシステムの統合も行われる。そのような場合に、開発者や運用管理担当者がばらばらであると、知りたいバッチ順序関係定義情報にアクセスできない場合も出てくる。
【０００４】
ところで、バッチジョブの実行は、「時間通り」であるが重要である。すなわち、バッチジョブは、通常の業務処理には影響を与えないように夜間に実行されることが多いが、例えば、朝９時の業務開始に間に合うためには、バッチジョブは朝５時までに終了しなければならないというような要件がある。従って、所定の時刻までにバッチ処理が完了しない場合には、早くその事実を知りたいという要望がある。これは、翌日に延ばすことができるバッチジョブを延期する等の対処方法を検討する必要があるためである。すなわち、予め定められたデッドラインを超過してからでは遅すぎで、調整ができない場合が生ずる。
【０００５】
このため、ジョブの自動監視を通じてその後の重要ジョブの遅延を予測することで、システム全体についての監視運用の厳格化及び効率化をリアルタイムで実現するための技術が存在している。具体的には、履歴情報から、同一のジョブの開始／終了時刻情報を抽出し、監視スケジュールにおけるジョブの開始／終了時刻と現在の時刻との誤差に基づき、予め定められた警告情報を送付するものである。しかしながら、ジョブの順序関係を適切に抽出するような処理等を実施していないため、実行状況に応じた精度の高いジョブ終了時刻の予測を行うことができない。バッチジョブＡがファイルＣを出力すると、待機していたバッチジョブＢが当該ファイルＣの処理を開始するといった依存関係を持った並列処理などを取り扱うことができない。
【０００６】
また、人間が実行した業務処理の履歴情報から、業務の一般的な処理順序パターンを抽出する技術も存在している。しかしながら、人間の業務処理の順序が分かったからといって、バッチジョブについての処理順序パターンを解析できるわけではない。上で述べたようなバッチジョブ特有のケース、すなわちバッチジョブＡがファイルＣを出力すると、待機していたバッチジョブＢが当該ファイルＣの処理を開始するといった場合には対処できない。
【０００７】
さらに、複数のジョブが実行できる情報処理システムにおいて、計算機の負荷が変動していても、各ジョブの実行終了時間の予測精度の向上を図るための技術が存在している。具体的には、並列に実行される複数のジョブのそれぞれの実行中にそれぞれのジョブの処理量に関する情報を収集し、収集された情報（先に終了しなければならない優先ジョブリストを含む）に基づき、それぞれのジョブの予想実行終了時刻を計算し、それぞれのジョブに対して計算された予想実行終了時刻とそれぞれのジョブの希望実行終了時刻を計算するものである。しかし、この技術では、リソースの利用状況から単体ジョブの進捗率を計算し、そこから単体ジョブの終了時刻を予測するものである。これでは、ジョブ間の単純な関係しか把握できないので、終了時刻をより正確に予測することができない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−５２０５号公報
【特許文献２】特開２００７−３２８７１２号公報
【特許文献３】特開平５−２６５７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上述べたように、上で述べたような従来技術では、実際の監視対象システムにおいて実行されているバッチジョブ間に存在する多様な関係を把握していないので、正確な終了時刻予測ができていない。
【００１０】
従って、本技術の目的は、より正確にバッチジョブの終了時刻予測を行うための技術を提供することである。
【課題を解決するための手段】
【００１１】
本バッチジョブ処理時間推定方法は、複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻からバッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、ログデータ格納部からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻から、バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各バッチジョブについて、相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、複数のバッチジョブを実行している監視対象システムから複数のバッチジョブの実行状況データを受け取り、当該実行状況データと順序関係データ格納部に格納されているデータとジョブ処理時間データ格納部に格納されているデータとから複数のバッチジョブの終了時刻を予測する予測ステップとを含む。
【発明の効果】
【００１２】
より正確なバッチジョブの終了時刻予測が可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、システム概要図である。
【図２】図２は、ログデータ格納部に格納されるデータの一例を示す図である。
【図３】図３は、前処理の処理フローを示す図である。
【図４】図４は、ジョブリストの一例を示す図である。
【図５】図５は、直接連続起動関係を表す図である。
【図６】図６は、待ち合わせ関係を表す図である。
【図７】図７は、順序関係推定処理の処理フローを示す図である。
【図８】図８は、順序関係データ格納部に格納されているデータの一例を示す図である。
【図９】図９は、順序関係データを模式的に示す図である。
【図１０】図１０は、処理時間相関推定処理の処理フローを示す図である。
【図１１】図１１は、処理時間の算出方法について説明するための図である。
【図１２】図１２は、処理時間の相関を模式的に示す図である。
【図１３】図１３は、ジョブ処理時間データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、相関関係に関するデータを示す図である。
【図１５】図１５は、ジョブネットモデルの一例を示す図である。
【図１６】図１６は、バッチジョブ実行時の処理の処理フローを示す図である。
【図１７】図１７は、監視データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、コンピュータの機能ブロック図である。
【図１９】図１９は、バッチジョブ処理時間推定装置の機能ブロック図である。
【発明を実施するための形態】
【００１４】
本技術の実施の形態に係るシステム概要図を図１に示す。バッチジョブを実行する監視対象システム２００は、バッチジョブ２３０の実行状況を計測する実行状況計測部２１０と、実行状況計測部２１０によりバッチジョブ２３０の実行状況を表すデータとして出力されるログデータを格納するログデータ格納部２２０とを有する。
【００１５】
監視対象システム２００は、ネットワークでバッチジョブ処理時間推定装置１００に接続されている。バッチジョブ処理時間推定装置１００は、（Ａ）監視対象システム２００の実行状況計測部２１０からログデータを取得するログ取得部１１０と、（Ｂ）ログ取得部１１０により取得されたログデータを格納するログデータ格納部１１１と、（Ｃ）ログデータ格納部１１１に格納されているデータを用いて処理を実施するジョブネットモデル生成部１２０と、（Ｄ）ジョブネットモデル生成部１２０の処理結果を格納する順序関係データ格納部１３１と、（Ｅ）ジョブネットモデル生成部１２０の処理結果を格納するジョブ処理時間データ格納部１３２と、（Ｆ）順序関係データ格納部１３１に格納されているデータを用いて監視対象システム２００の実行状況計測部２１０から現在実行中のバッチジョブ２３０の実行状況データを取得するジョブ実行状況監視部１３５と、（Ｇ）順序関係データ格納部１３１及びジョブ処理時間データ格納部１３２に格納されているデータとジョブ実行状況監視部１３５からの出力とを用いて処理を実施する終了時刻予測部１３６と、（Ｈ）終了時刻予測部１３６が用いるデータを格納する監視データ格納部１３７と、（Ｉ）デッドライン定義データ格納部１３３と、（Ｊ）通報先データ格納部１３４と、（Ｋ）デッドライン定義データ格納部１３３及び通報先データ格納部１３４に格納されているデータと終了時刻予測部１３６の出力とを用いて処理を行うデッドライン超過予測部１３８とを有する。
【００１６】
ジョブネットモデル生成部１２０は、ログデータ格納部１１１に格納されているデータを用いて処理を実施して処理結果である順序関係データを順序関係データ格納部１３１に格納する順序関係抽出部１２１と、ログデータ格納部１１１と順序関係データ格納部１３１とに格納されているデータを用いて処理を実施して処理結果であるジョブ処理時間データをジョブ処理時間データ格納部１３２に格納するジョブ処理時間推定部１２２を含む。
【００１７】
バッチジョブ処理時間推定装置１００は、例えばパーソナルコンピュータや携帯電話機である運用担当者端末３００とネットワークにより接続されている。
【００１８】
次に、図２乃至図１７を用いてバッチジョブ処理時間推定装置１００により実施される前処理の処理内容について説明する。なお、ログ取得部１１０が、既に実行状況計測部２１０から過去所定期間内のログデータを取得して、ログデータ格納部１１１に格納しているものとする。ログデータ格納部１１１には、例えば図２に示すようなデータを格納している。図２の例では、実行されたバッチジョブ毎に、ジョブ名と、開始時刻と、終了時刻とが登録される。図２の例では、５日分のログデータのみ示しているが、より多くの日数分のデータを取得するようにしても良い。
【００１９】
次に、ジョブネットモデル生成部１２０の順序関係抽出部１２１は、ログデータ格納部１１１に格納されているログデータを読み込み（図３：ステップＳ１）、全ジョブ名を抽出してジョブリストを生成し、例えば順序関係データ格納部１３１に格納する（ステップＳ３）。例えば、１度でも出現したバッチジョブのジョブ名をリスト化して、ノード番号を割り当てる。すなわち図４に示すように、ノード番号とジョブ名とが対応付けて格納される。
【００２０】
そして、順序関係抽出部１２１は、順序関係推定処理を実施する（ステップＳ５）。順序関係推定処理については図５乃至図９を用いて説明する。
【００２１】
順序関係推定処理においては、図５に示すような直接連続起動（ｎｅｘｔ）関係（直接連続起動パターンとも呼ぶ）と図６に示すような待ち合わせ関係（ａｃｔｉｖａｔｅ）関係（待ち合わせパターンとも呼ぶ）とを抽出する。図５に示すように、先行バッチジョブであるバッチジョブＡの終了直後に後続バッチジョブであるバッチジョブＢが起動することが多い場合には、バッチジョブＡとバッチジョブＢの間にはｎｅｘｔ関係があると判定する。より具体的には、バッチジョブＡの終了時刻から基準値以内（例えば１秒以内）にバッチジョブＢの開始時刻が記録されている場合には、バッチジョブＡからバッチジョブＢへｎｅｘｔ関係という順序関係が存在すると推定される。
【００２２】
また、図６に示すように、先行バッチジョブであるバッチジョブＡの終了時刻より前にバッチジョブＢが開始実行され、バッチジョブＢの終了時刻より前にバッチジョブＡが終了することが多い場合には、バッチジョブＢはバッチジョブＡの発するメッセージやファイル生成を待機していると推定して、バッチジョブＡとバッチジョブＢの間にはａｃｔｉｖａｔｅ関係があると判定する。なお、バッチジョブＢの起動時刻が定時であるということを要件にしても良い。
【００２３】
以上のような関係を図７乃至図９に示す処理によってログデータから抽出する。順序関係抽出部１２１は、ジョブリストから未処理のバッチジョブａ及びｂを選択する（ステップＳ１１）。そして、順序関係抽出部１２１は、読み込んだログデータから、バッチジョブａ及びｂのログデータを抽出し、バッチジョブａ及びｂの開始時刻及び終了時刻を取り出す（ステップＳ１３）。なお、バッチジョブａのログの数又はバッチジョブｂのログの数をログの組み合わせ数としてもよいし、全ログ数を２で除した数をログの組み合わせ数としてもよい。
【００２４】
そして、順序関係抽出部１２１は、ログの各組み合わせについて、バッチジョブａの終了時刻とバッチジョブｂの開始時刻との差が例えば１秒以内で直接連続起動パターンに合致するか否かをバッチジョブａのログとバッチジョブｂのログとの組み合わせにて判断する。同様に、ログの各組み合わせについて、バッチジョブｂの終了時刻とバッチジョブａの開始時刻との差が例えば１秒以内で直接連続起動パターンに合致するか否かを判断する。そして、順序関係抽出部１２１は、バッチジョブａからバッチジョブｂへの順番と、バッチジョブｂからバッチジョブａへの順番とを分けて、合致する回数を計数する（ステップＳ１５）。例えば図２の例で、バッチジョブＪ１．ｓｈからバッチジョブＪ２．ｓｈへの遷移については、ログの組み合わせ数５に対して直接連続起動パターンに合致する回数が「４回」である。また、バッチジョブＪ２．ｓｈからバッチジョブＪ３．ｓｈへの遷移については、ログの組み合わせ数５に対して直接連続起動パターンに合致する回数が「５回」である。
【００２５】
その後、順序関係抽出部１２１は、直接連続起動パターンに合致するログの組み合わせが閾値以上の確率で発生しているか判断する（ステップＳ１７）。例えば８０％を閾値とすると、上で述べたように、バッチジョブＪ１．ｓｈからバッチジョブＪ２．ｓｈへの遷移と、バッチジョブＪ２．ｓｈからバッチジョブＪ３．ｓｈへの遷移は、高確率での直接連続起動パターンに該当すると判断される。
【００２６】
直接連続起動パターンに合致するログの組み合わせが閾値以上の確率で発生すると判断されると、順序関係抽出部１２１は、バッチジョブａ及びｂの関係にｎｅｘｔ関係を設定する（ステップＳ１９）。順番も関係するので、バッチジョブａからバッチジョブｂへの遷移とバッチジョブｂからバッチジョブａへの遷移とは区別する。上で述べた例では、バッチジョブＪ１．ｓｈからバッチジョブＪ２．ｓｈへの遷移に対してｎｅｘｔ関係を設定する。また、バッチジョブＪ２．ｓｈからバッチジョブＪ３．ｓｈへの遷移に対してもｎｅｘｔ関係を設定する。このように設定される関係は順序関係データとして、順序関係データ格納部１３１に格納される。そして処理はステップＳ２７に移行する。
【００２７】
順序関係データ格納部１３１に格納されるデータの一例を図８に示す。図８の例では、リンクＩＤと、先行するバッチジョブである先行ジョブのノード番号と、後続のバッチジョブである後続ジョブのノード番号と、関係のタイプとを登録するようになっている。ステップＳ１９では、リンクＬ１及びＬ２のように、検出したｎｅｘｔ関係についてリンクＩＤを割り当てるとともに、先行するバッチジョブに割り当てられているノード番号と、後続のバッチジョブに割り当てられているノード番号とが登録される。なお、ステップＳ１９では図８の３行目のデータは登録されない。
【００２８】
一方、直接連続起動パターンに合致するログの組み合わせが閾値未満の確率で発生するか又は全く発生しない場合には、順序関係抽出部１２１は、ログの各組み合わせについて、バッチジョブａの終了時刻よりバッチジョブｂの開始時刻が前であり且つバッチジョブａの終了時刻よりバッチジョブｂの終了時刻が後であるという待ち合わせパターンに合致するか判断する。同様に、ログの各組み合わせについて、バッチジョブｂの終了時刻よりバッチジョブａの開始時刻が前であり且つバッチジョブｂの終了時刻よりバッチジョブａの終了時刻が後であるという待ち合わせパターンに合致するか判断する。なお、後続のバッチジョブについては、定時起動という要件を課しても良い。順序関係抽出部１２１は、バッチジョブａからバッチジョブｂへの順番と、バッチジョブｂからバッチジョブａへの順番とを分けて、合致する回数を計数する（ステップＳ２１）。例えば図２の例で、バッチジョブＪ２．ｓｈからバッチジョブＪ４．ｓｈへの遷移については、ログの組み合わせ数５に対して待ち合わせパターンに合致する回数が「５回」である。
【００２９】
その後、順序関係抽出部１２１は、待ち合わせパターンに合致するログが閾値以上の確率で発生するか判断する（ステップＳ２３）。例えば８０％を閾値とすると、上で述べたバッチジョブＪ２．ｓｈからバッチジョブＪ４．ｓｈへの遷移については、高確率での待ち合わせパターンに該当すると判断される。
【００３０】
待ち合わせパターンに合致するログの組み合わせが閾値以上の確率で発生すると判断される場合には、順序関係抽出部１２１は、バッチジョブａ及びｂの間にａｃｔｉｖａｔｅ関係を設定する（ステップＳ２５）。順番も関係するので、バッチジョブａからバッチジョブｂへの遷移とバッチジョブｂからバッチジョブａへの遷移については区別する。上で述べた例では、バッチジョブＪ２．ｓｈからバッチジョブＪ４．ｓｈへの遷移に対してａｃｔｉｖａｔｅ関係を設定する。このように設定される関係は順序関係データとして、順序関係データ格納部１３１に格納される。図８の３行目に示すように、新たに検出した順序関係にリンクＩＤを割り当てると共に、先行するバッチジョブに割り当てられているノード番号と、後続のバッチジョブに割り当てられているノード番号とを対応付けて格納する。
【００３１】
一方、待ち合わせパターンに合致するログの組み合わせが閾値未満の確率で発生するか又は全く発生しない場合、若しくはステップＳ１９又はＳ２５の後に、順序関係抽出部１２１は、ジョブリストにおいて全てのバッチジョブのペアについて処理したか判断する（ステップＳ２７）。未処理のペアが存在する場合にはステップＳ１１に戻る。一方、全てのペアについて処理した場合には、元の処理に戻る。
【００３２】
このような処理を実施することによって、例えば図８に示すような、バッチジョブ間の順序関係が得られる。これを有向グラフとして表すと図９に示すようになる。このように本実施の形態ではリンクの種類が２種類であるが、他のパターンで関係付けられるバッチジョブが存在する場合には、リンクの種類を増やすようにしても良い。なお、場合によっては有向グラフにおいてループが生成されるようにリンクが設定される場合がある。しかしながら、有向グラフにおいてループが存在することは終了時刻予測においては好ましくない。従って、例えばループが発生した場合には、発生確率の最も低いリンクを切断するといった処理を付加的に実施する場合もある。
【００３３】
なお、以下でも述べるように、ａｃｔｉｖａｔｅ関係を特定することによって、処理時間の相関関係がより正確に把握できるようになる。
【００３４】
図３の処理の説明に戻って、次に、ジョブ処理時間推定部１２２は、ログデータ格納部１１１と順序関係データ格納部１３１とに格納されているデータを用いて、処理時間相関推定処理を実施する（ステップＳ７）。この処理時間相関推定処理については図１０乃至図１５を用いて説明する。
【００３５】
ジョブ処理時間推定部１２２は、順序関係データ格納部１３１に格納されている順序関係データに従って到達可能な未処理のバッチジョブａ及びｂを選択する（ステップＳ３１）。図９の例では、バッチジョブＪ３．ｓｈとバッチジョブＪ４．ｓｈについてはリンクの方向を逆にさかのぼる必要があるので、到達可能なバッチジョブの組み合わせではないので、このような組み合わせについては選択されない。このような有向グラフにおいて到達不可能なバッチジョブの組み合わせについては、バッチジョブ間に相関はないと判断されるためである。
【００３６】
次に、ジョブ処理時間推定部１２２は、ログデータ格納部１１１に格納されているログデータを用いて、バッチジョブａ及びｂの処理時間を算出して、ジョブ処理時間データ格納部１３２に格納する（ステップＳ３３）。この際、順序関係データ格納部１３１に格納されている順序関係データから、バッチジョブａとバッチジョブｂのいずれかに、ａｃｔｉｖａｔｅ関係が設定されており且つ後続ノードとして指定されているか確認する。例えばバッチジョブｂがバッチジョブＪ４．ｓｈであれば、図８の例ではａｃｔｉｖａｔｅ関係が設定されており且つ後続ノードとなっている。本実施の形態では、このような場合、ログデータ格納部１１１からａｃｔｉｖａｔｅ関係のリンクで接続されている先行ノードについての直前ログを読み出し、当該直前ログの終了時刻を開始時刻として特定し、当該開始時刻から後続ノードについての対応ログの終了時刻までの時間を処理時間として特定する。
【００３７】
図１１に示したように、先行バッチジョブＪ２．ｓｈを後続の着目バッチジョブＪ４．ｓｈは待機しているので、先行バッチジョブＪ２．ｓｈの処理時間と着目バッチジョブＪ４．ｓｈの処理時間とが重複する部分は待機時間であって実質的に処理は行われていない。先行バッチジョブＪ２．ｓｈが終了してから後が実質的な処理時間となる。従って、上で述べたようにして処理時間を算出することによって実質的な処理時間を算出するものである。
【００３８】
なお、ｎｅｘｔ関係のリンクに接続されているノードについてのバッチジョブについては、該当ログの開始時刻から終了時刻までの時間を処理時間として特定する。
【００３９】
さらに、本ステップにおいては、各バッチジョブの処理時間については平均値を算出して、ジョブ処理時間データ格納部１３２に格納する。なお、平均値ではなく、最小値、最大値、最頻値、９０％タイル値といったような統計値を採用することも可能である。
【００４０】
そして、ジョブ処理時間推定部１２２は、バッチジョブａの処理時間とバッチジョブｂの処理時間の相関係数を算出する（ステップＳ３５）。相関係数については、以下の式で算出される。なお、ｘをバッチジョブａの処理時間とし、ｙをバッチジョブｂの処理時間とし、ｘバーをｘの平均値とし、ｙバーをｙの平均値とする。ｎはバッチジョブａ又はｂの個数である。
【数１】
0005463885.tif 000002
【００４１】
各バッチジョブの処理時間は、業務データ量（例えば、１日の売上伝票数）に比例する場合があるので、同一の業務データに依存する異なるバッチジョブの処理時間の間に相関関係がある可能性がある。そこで、上で述べたように、相関係数によって相関関係の有無を判断するものである。
【００４２】
そして、ジョブ処理時間推定部１２２は、算出された相関係数が所定の閾値以上であるか判断する（ステップＳ３７）。相関係数が所定の閾値未満である場合には、バッチジョブ間に処理時間の相関はあまりないということで、ステップＳ４１に移行する。
【００４３】
一方、算出された相関係数が所定の閾値以上である場合には、ジョブ処理時間推定部１２２は、バッチジョブａの処理時間とバッチジョブｂの処理時間について周知の直線回帰計算を実施することにより比例係数を算出し、当該比例係数を含む相関関係データをジョブ処理時間データ格納部１３２に格納する（ステップＳ３９）。本ステップの後にステップＳ４１に移行する。
【００４４】
例えば、バッチジョブＪ１．ｓｈの処理時間を横軸で表し、バッチジョブＪ３．ｓｈの処理時間を縦軸で表すものとすると、図１２のようなグラフが得られる。点は、各日におけるバッチジョブＪ１．ｓｈの処理時間とバッチジョブＪ３．ｓｈの処理時間とでプロットされている。そして周知の直線回帰計算を実施すると、図１２に示すような直線ａが得られる。ａの傾きは「２．０」と算出される。すなわち、バッチジョブＪ１．ｓｈの処理時間をＸとすると、バッチジョブＪ３．ｓｈの処理時間Ｙは、Ｙ＝２．０Ｘという関係を有する。なお、図１２に示すように、バッチジョブＪ１．ｓｈの処理時間とバッチジョブＪ３．ｓｈの処理時間の相関係数は０．９３で、閾値０．９を上回っているものとする。なお、データ量ではない他の量について相関関係が見出される場合には、直線近似ではない他の近似を用いる場合もある。
【００４５】
そうすると、ステップＳ３９では、図１３に示すような相関関係データが、ジョブ処理時間データ格納部１３２に格納される。図１３の例では、ジョブ名に対してジョブ処理時間データが登録されるようになっており、ジョブ処理時間データには、処理時間の平均値と相関関係データである相関変数とが含まれる。相関関係データについては、図１３に示す例では、基準となるバッチジョブＪ１．ｓｈの処理時間に対して相関変数Ｘを設定し、関係するバッチジョブＪ３．ｓｈの処理時間に対して相関変数２Ｘを設定する。このようにすれば、図１２で示されたような関係を表すデータを保持することができるようになる。
【００４６】
図１０の説明に戻って、ステップＳ４１では、順序関係データに従って到達可能な全てのバッチジョブのペアについて処理したか判断する（ステップＳ４１）。未処理のバッチジョブのペアが存在する場合にはステップＳ３１に戻る。一方、全てのジョブペアについて処理した場合には、元の処理に戻る。
【００４７】
本ステップを実施することによって、単に有向グラフとして順序関係が把握されるだけではなく、バッチジョブの処理時間の間の相関関係をも算出するので、より正確なモデル化が可能となる。
【００４８】
例えば、最終的に図１４のようなジョブ処理時間データが得られたものとする。図１４の例では、分かりやすくするためノードＩＤを併記しているが、図１３と実質的に同じデータ構造を有する。なお、バッチジョブＪ２．ｓｈとバッチジョブＪ４．ｓｈについては、他のバッチジョブの処理時間との間に相関関係を見出されなかったバッチジョブである。図１４では、便宜的に相関変数に「Ｙ」及び「Ｚ」を入れているが、上で述べた処理ではこれらはＮＵＬＬということになる。
【００４９】
ジョブネットモデル生成部１２０が生成したジョブネットモデルを可視化すると、例えば図１５に示すようなものになる。図１５は、図９で示した有向グラフの各ノードに、該当するジョブ処理時間データを追記したものである。これによって、バッチジョブ間の関係が明確化されたことになる。
【００５０】
以上の前処理を実施した後に、図１６及び図１７を用いて説明するバッチジョブ実行時の処理を実施する。
【００５１】
まず、ジョブ実行状況監視部１３５は、監視対象システム２００の実行状況計測部２１０から、各ジョブの実行状況データを取得する（ステップＳ５１）。例えば、実行を開始したバッチジョブについて実行開始時刻を含み、実行が完了したバッチジョブについては実行終了時刻を含むようなデータを取得する。ステップＳ５１は例えば１０分おきなど所定の周期で実施する。但し、必ずしも周期的である必要はない。また、ジョブ実行状況監視部１３５は、取得した実行状況データを終了時刻予測部１３６に出力する。
【００５２】
終了時刻予測部１３６は、実行状況データを用いて各実行ジョブの実行時間を算出して、監視データ格納部１３７に格納する（ステップＳ５３）。本ステップでは、実行中のバッチジョブについての開始時刻とシステム時計から得られる現在時刻との差を、実行完了したバッチジョブについては開始時刻と終了時刻との差を算出する。なお、上でも述べたように、ａｃｔｉｖａｔｅ関係で関連付けられた後続バッチジョブについては処理時間は、先行バッチジョブの終了時刻から現在時刻又は後続バッチジョブの終了時刻までである。従って、本ステップだけでは処理時間を特定できていない。
【００５３】
そこで、終了時刻予測部１３６は、ａｃｔｉｖａｔｅ関係の後続バッチジョブ（後続ノードとも呼ぶ）について待機時間を算出し、監視データ格納部１３７に格納する（ステップＳ５５）。図１４の例では、バッチジョブＪ４．ｓｈについてはａｃｔｉｖａｔｅ関係の後続ノードであるから、このバッチジョブＪ４．ｓｈについては、ａｃｔｉｖａｔｅ関係の先行バッチジョブ（先行ノードとも呼ぶ）の終了時刻が記録されていない場合には、開始時刻から現在時刻までが待機時間であり、先行ノードの終了時刻が記録されている場合には、開始時刻から先行ノードの終了時刻までが待機時間となる。
【００５４】
例えば図１７のようなジョブ実行状況であることを想定する。図１７に示すように、バッチジョブＪ１．ｓｈの実行を０：００に開始し、バッチジョブＪ２．ｓｈの実行を０：４０に開始し、バッチジョブＪ３．ｓｈの実行を１：５０に開始し、バッチジョブＪ４．ｓｈの実行を１：００に開始する。これに対して、バッチジョブＪ４．ｓｈの先行バッチジョブであるバッチジョブＪ２．ｓｈは、１：５０に終了するので、１：５０まではバッチジョブＪ４．ｓｈの実行時間は全て待機時間となる。これは、図１７における待機時間の列に示されている。なお、ａｃｔｉｖａｔｅ関係の後続バッチジョブ以外のバッチジョブの待機時間は「０」であるものとする。
【００５５】
次に、終了時刻予測部１３６は、各バッチジョブの実質処理時間（個別処理時間とも呼ぶ）を予測する演算を実施し、監視データ格納部１３７に格納する（ステップＳ５７）。実質処理時間は、ｍａｘ｛（実行時間−待機時間），平均値｝で算出する。なお、平均値については、他のバッチジョブについて相関関係が認められていないものについては単純に、ジョブ処理時間データ格納部１３２に登録されている平均値を用いる。一方、他のバッチジョブについて相関関係が認められているものについては、当該他のバッチジョブについて算出されている実質処理時間に、比例係数を乗じた値を「平均値」として採用する。
【００５６】
例えば、図１４に示したように、バッチジョブＪ１．ｓｈの処理時間の２倍がバッチジョブＪ３．ｓｈの処理時間となることが規定されている場合、０：００から０：３０までは、バッチジョブＪ１．ｓｈの実質処理時間が３０分なので、バッチジョブＪ３．ｓｈの平均値は６０分となる。なおこの間バッチジョブＪ３．ｓｈの実行時間は０分であるから、平均値がそのまま実質処理時間となる。一方、０：４０以降は、バッチジョブＪ１．ｓｈの実質処理時間が４０分となるので、バッチジョブＪ３．ｓｈの平均値は８０分となる。なお図１７の例では、バッチジョブＪ３．ｓｈは８０分を超えることはないので、バッチジョブＪ３．ｓｈの実質処理時間は平均値と同じ８０分となる。
【００５７】
さらに、バッチジョブＪ４．ｓｈについては（実行時間−待機時間）を算出するので、０：００から１：５０までは実行時間と待機時間が同じであるから、「０」となってしまい、平均値が必ず上回るので、実質処理時間は平均値に等しくなる。一方、２：００では、（実行時間−待機時間）＝１０となる。これと平均値＝７０とを比較すると、平均値の方が大きいので、２：００では平均値が実質処理時間になる。但し、この後時間が経過して（実行時間−待機時間）が７０分を超えれば、（実行時間−待機時間）が実質処理時間となる。
【００５８】
図１６の処理の説明に戻って、終了時刻予測部１３６は、ジョブネットモデルの開始ノードから末端ノードまでの各経路について実質処理時間の総和を算出し、算出された実質処理時間の総和のうち最大の値を特定して当該値にて終了時刻を予測する（ステップＳ５９）。図１５に示したように、有向グラフは分岐しているので末端ノードが２つある。従って、第１の経路は、Ｊ１．ｓｈ−Ｊ２．ｓｈ−Ｊ３．ｓｈであり、第２の経路は、Ｊ１．ｓｈ−Ｊ２．ｓｈ−Ｊ４．ｓｈである。第１の経路について、実質処理時間の総和を算出し、第２の経路について、実質処理時間の総和を算出する。
【００５９】
図１７の例では、０：３０まではバッチジョブＪ３．ｓｈの実質処理時間の方がＪ４．ｓｈの実質処理時間より短いので、第２の経路の実質処理時間の総和が採用される。一方、０：４０以降はその逆になって、第１の経路の実質処理時間の総和が採用されるようになる。
【００６０】
終了時刻は、ジョブネットモデルの開始ノードの開始時刻から実質処理時間の総和経過後の時刻である。図１７の例では、０：３０までは２：４０が終了時刻の予測値であり、０：４０から１：４０までは３：００が終了時刻の予測値であり、それ以降は３：１０が終了時刻の予測値である。
【００６１】
終了時刻予測部１３６は、予測した終了時刻をデッドライン超過予測部１３８に通知する。
【００６２】
デッドライン超過予測部１３８は、終了時刻予測部１３６から予測終了時刻を受け取ると、デッドライン定義データ格納部１３３からデッドラインの時刻を読み出して、予測終了時刻がデッドラインの時刻を超えているか判断する（ステップＳ６１）。例えば３：００がデッドライン定義データ格納部１３３に格納されている場合には、０：３０まではデッドラインを超過していないと判断され、それ以降はデッドラインを超過していると判断される。すなわち、０：４０において既にデッドライン超過が予測されている。
【００６３】
予測終了時刻がデッドラインを超過していると判断する場合には、デッドライン超過予測部１３８は、通報先データ格納部１３４に登録されている通報先メールアドレスを読み出して、当該通報先メールアドレス宛にアラーム・メールを送信する（ステップＳ６３）。メールではない方法で警告を発しても良い。
【００６４】
これによって運用担当者は、運用担当者端末３００を操作して、アラーム・メールを受信し、バッチジョブの終了遅延を認識することができるようになる。そうすれば、翌日に繰り越すことができるバッチジョブの実行を停止したり、その他の手段を講じることができるようになる。
【００６５】
予測終了時刻がデッドラインを超過しない場合には、デッドライン超過予測部１３８は、何もしない。
【００６６】
そして、ジョブ実行状況監視部１３５は、順序関係データ格納部１３１に格納されているリストに登録された全てのバッチジョブについて終了時刻が通知されて全バッチジョブが終了したか判断し（ステップＳ６５）、全バッチジョブが終了していなければステップＳ５１に戻る。一方、全バッチジョブが終了していれば処理を終了する。
【００６７】
このような処理を実施すれば、個別のバッチジョブにデッドラインを設定するなどの煩わしい設定を行わなくとも、早期にそして的確にデッドライン超過を予測することができるようになる。
【００６８】
以上本技術の実施の形態を説明したが本技術はこれに限定されるものではない。例えば、図１に示されている機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。さらに、データ保持構成についても、実際のデータ保持構成とは異なる場合もある。
【００６９】
さらに、処理フローについても処理結果が変わらなければ処理順番を入れ替えたり、並列実施することも可能である。
【００７０】
また、運用担当者端末３００は、例えば終了時刻予測部１３６から、デッドラインを超えているか否かを問わず終了時刻の通知を受けるようにしても良い。また、他のデータ格納部から必要なデータを運用担当者端末３００が抽出するようにしてもよい。さらに、図１５のような図を表示させるようにしても良い。場合によっては、運用担当者が、順序関係データ格納部１３１及びジョブ処理時間データ格納部１３２に格納されているデータを変更するような処理を実施する場合もある。
【００７１】
なお、上で述べたバッチジョブ処理時間推定装置１００は、コンピュータ装置であって、図１８に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７２】
以上述べた本実施の形態をまとめると、以下のようになる。
【００７３】
本バッチジョブ処理時間推定方法は、複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻からバッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、ログデータ格納部からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻から、バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各バッチジョブについて、相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、複数のバッチジョブを実行している監視対象システムから複数のバッチジョブの実行状況データを受け取り、当該実行状況データと順序関係データ格納部に格納されているデータとジョブ処理時間データ格納部に格納されているデータとから複数のバッチジョブの終了時刻を予測する予測ステップとを含む。
【００７４】
このように順序関係データと相関関係に関するデータを含むジョブ処理時間データとを生成するので、精度良く終了時刻を予測することができるようになる。
【００７５】
上で述べたジョブ処理時間データ生成ステップが、順序関係データ格納部に格納されている順序関係データに従って、複数のバッチジョブのうち第１のバッチジョブと当該第１のバッチジョブから遷移可能な第２のバッチジョブとの組み合わせを特定するステップと、特定された組み合わせのうち当該組み合わせに含まれるバッチジョブの処理時間の相関係数が所定値以上の組み合わせについて回帰計算を実施して、相関関係に関するデータを生成し、ジョブ処理時間データ格納部に格納するステップとをさらに含むようにしても良い。
【００７６】
このように第１のバッチジョブから遷移可能な第２のバッチジョブとの組み合わせについて相関係数を算出するようにしているので、あり得ない組み合わせを排除することができ、処理負荷を減らすことができる。さらに、相関係数が所定値以上の組み合わせについて回帰計算を行うことで、相関が高い組み合わせについてのみ回帰計算を実施するので、この点においても処理負荷を減らすことができる。さらに、例えば回帰計算によって得られる近似式の比例係数などの、相関関係に関するデータを生成できるので、より精度良く終了時刻を予測することができるようになる。
【００７７】
また、上で述べた順序関係データ生成ステップが、複数のバッチジョブのうち先行する第１のバッチジョブの終了時刻と後続の第２のバッチジョブの開始時刻とから、第１のバッチジョブが完了することに応じて第２のバッチジョブが実行されるという第１の順序関係についての条件を満たしているか判断し、満たしている場合には第１のバッチジョブと第２のバッチジョブとを第１の順序関係で関連付けるためのデータを、順序関係データ格納部に格納するステップと、複数のバッチジョブのうち先行する第３のバッチジョブの開始時刻及び終了時刻と後続の第４のバッチジョブの開始時刻及び終了時刻とから、第３のバッチジョブの実行途中で第４のバッチジョブを開始し且つ第４のバッチジョブの実行途中で第３のバッチジョブが終了するという第２の順序関係についての条件を満たしているか判断し、満たしている場合には第３のバッチジョブと第４のバッチジョブとを第２の順序関係で関連付けるためのデータを、順序関係データ格納部に格納するステップとを含むようにしてもよい。バッチジョブの特性に応じた２種類の順序関係を特定することによって精度良く終了時刻を予測できるようになる。なお、第４のバッチジョブについてはさらに定時起動していることを要件にしても良い。
【００７８】
さらに、上で述べた順序関係データが、複数のバッチジョブのうち先行する第１のバッチジョブが完了することに応じて後続の第２のバッチジョブが実行されるという第１の順序関係の識別子と第１及び第２のバッチジョブの識別情報とを含むデータと、複数のバッチジョブのうち先行する第３のバッチジョブの実行途中で後続の第４のバッチジョブを開始し且つ第４のバッチジョブの実行途中で第３のバッチジョブが終了するという第２の順序関係の識別子と第３及び第４のバッチジョブの識別情報とを含むデータとを含むようにしてもよい。この場合、上で述べた予測ステップが、実行状況データから、各バッチジョブの実行時間を算出するステップと、第４のバッチジョブについて、実行状況データから第４のバッチジョブの開始時刻から第３のバッチジョブの終了時刻までの待機時間を算出し、さらに上記実行時間と待機時間との差を実行時間として算出するステップと、順序関係データ格納部に格納されている順序関係データによって特定される、先頭のバッチジョブから末端のバッチジョブまでの各経路について、当該経路に含まれるバッチジョブ毎に実行時間と処理時間データ格納部に格納されている処理時間データから特定される推定処理時間とのうち長い方の時間である個別処理時間を特定し、特定された個別処理時間を累積して予測処理時間を算出する予測処理時間算出ステップと、各経路について算出された予測処理時間のうち最長の予測処理時間を特定するステップとを含むようにしてもよい。
【００７９】
このようにすれば、最悪ケースを想定して終了時刻を精度良く予測することができるようになる。
【００８０】
また、上で述べたジョブ処理時間データが、先行する第５のバッチジョブの処理時間と後続の第６のバッチジョブの処理時間との相関関係に関するデータを含むようにしてもよい。この場合、上で述べた予測処理時間特定ステップが、経路における第５のバッチジョブについての個別処理時間と第５及び第６のバッチジョブについての上記相関関係に関するデータとから、第６のバッチジョブの推定処理時間を算出するステップを含むようにしても良い。このようにして、バッチジョブの実行状況及び相関関係に関するデータを反映して終了時刻を予測することができる。
【００８１】
本バッチジョブ処理時間推定装置（図１９）は、複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部（５０１）からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻からバッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部（５０３）に格納する順序関係抽出部（５０２）と、ログデータ格納部からログデータを読み出し、当該ログデータに含まれる開始時刻及び終了時刻から、バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各バッチジョブについて、上記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部（５０５）に格納するジョブ処理時間推定部（５０４）と、複数のバッチジョブを実行している監視対象システムから複数のバッチジョブの実行状況データを受け取り、当該実行状況データと順序関係データ格納部に格納されているデータとジョブ処理時間データ格納部に格納されているデータとから複数のバッチジョブの終了時刻を予測する予測部（５０６）とを有する。
【００８２】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００８３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８４】
（付記１）
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測ステップと、
を、コンピュータに実行させるためのバッチジョブ処理時間推定プログラム。
【００８５】
（付記２）
前記ジョブ処理時間データ生成ステップが、
前記順序関係データ格納部に格納されている前記順序関係データに従って、前記複数のバッチジョブのうち第１のバッチジョブと当該第１のバッチジョブから遷移可能な第２のバッチジョブとの組み合わせを特定するステップと、
特定された前記組み合わせのうち当該組み合わせに含まれる前記バッチジョブの処理時間の相関係数が所定値以上の組み合わせについて回帰計算を実施して、前記相関関係に関するデータを生成し、前記ジョブ処理時間データ格納部に格納するステップと、
をさらに前記コンピュータに実行させるための、付記１記載のバッチジョブ処理時間推定プログラム。
【００８６】
（付記３）
前記順序関係データ生成ステップが、
前記複数のバッチジョブのうち先行する第１のバッチジョブの終了時刻と後続の第２のバッチジョブの開始時刻とから、前記第１のバッチジョブが完了することに応じて前記第２のバッチジョブが実行されるという第１の順序関係についての条件を満たしているか判断し、満たしている場合には前記第１のバッチジョブと前記第２のバッチジョブとを前記第１の順序関係で関連付けるためのデータを、前記順序関係データ格納部に格納するステップと、
前記複数のバッチジョブのうち先行する第３のバッチジョブの開始時刻及び終了時刻と後続の第４のバッチジョブの開始時刻及び終了時刻とから、前記第３のバッチジョブの実行途中で前記第４のバッチジョブを開始し且つ前記第４のバッチジョブの実行途中で前記第３のバッチジョブが終了するという第２の順序関係についての条件を満たしているか判断し、満たしている場合には前記第３のバッチジョブと前記第４のバッチジョブとを前記第２の順序関係で関連付けるためのデータを、前記順序関係データ格納部に格納するステップと、
を含む付記１又は２記載のバッチジョブ処理時間推定プログラム。
【００８７】
（付記４）
前記順序関係データが、
前記複数のバッチジョブのうち先行する第１のバッチジョブが完了することに応じて後続の第２のバッチジョブが実行されるという第１の順序関係の識別子と前記第１及び第２のバッチジョブの識別情報とを含むデータと、
前記複数のバッチジョブのうち先行する第３のバッチジョブの実行途中で後続の第４のバッチジョブを開始し且つ前記第４のバッチジョブの実行途中で前記第３のバッチジョブが終了するという第２の順序関係の識別子と前記第３及び第４のバッチジョブの識別情報とを含むデータと、
を含み、
前記予測ステップが、
前記実行状況データから、各前記バッチジョブの実行時間を算出するステップと、
前記第４のバッチジョブについて、前記実行状況データから前記第４のバッチジョブの開始時刻から前記第３のバッチジョブの終了時刻までの待機時間を算出し、さらに前記実行時間と前記待機時間との差を前記実行時間として算出するステップと、
前記順序関係データ格納部に格納されている前記順序関係データによって特定される、先頭のバッチジョブから末端のバッチジョブまでの各経路について、当該経路に含まれる前記バッチジョブ毎に前記実行時間と前記処理時間データ格納部に格納されている前記処理時間データから特定される推定処理時間とのうち長い方の時間である個別処理時間を特定し、特定された前記個別処理時間を累積して予測処理時間を算出する予測処理時間算出ステップと、
各前記経路について算出された前記予測処理時間のうち最長の予測処理時間を特定するステップと、
を含む付記１記載のバッチジョブ処理時間推定プログラム。
【００８８】
（付記５）
前記ジョブ処理時間データが、先行する第５のバッチジョブの処理時間と後続の第６のバッチジョブの処理時間との相関関係に関するデータを含み、
前記予測処理時間特定ステップが、
前記経路における前記第５のバッチジョブについての前記個別処理時間と前記第５及び第６のバッチジョブについての前記相関関係に関するデータとから、前記第６のバッチジョブの推定処理時間を算出するステップ
を含む付記４記載のバッチジョブ処理時間推定プログラム。
【００８９】
（付記６）
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係データ生成ステップと、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間データ生成ステップと、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測ステップと、
を含み、コンピュータに実行されるバッチジョブ処理時間推定方法。
【００９０】
（付記７）
複数のバッチジョブについて開始時刻及び終了時刻を含むログデータを格納するログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から前記バッチジョブ間の順序関係を表す順序関係データを生成し、順序関係データ格納部に格納する順序関係抽出部と、
前記ログデータ格納部から前記ログデータを読み出し、当該ログデータに含まれる前記開始時刻及び終了時刻から、前記バッチジョブ間に処理時間についての相関関係が存在するか確認の上、各前記バッチジョブについて、前記相関関係に関するデータを含むジョブ処理時間データを生成し、ジョブ処理時間データ格納部に格納するジョブ処理時間推定部と、
前記複数のバッチジョブを実行している監視対象システムから前記複数のバッチジョブの実行状況データを受け取り、当該実行状況データと前記順序関係データ格納部に格納されているデータと前記ジョブ処理時間データ格納部に格納されているデータとから前記複数のバッチジョブの終了時刻を予測する予測部と、
を有するバッチジョブ処理時間推定装置。
【符号の説明】
【００９１】
１００  バッチジョブ処理時間推定装置
１１０  ログ取得部    １１１  ログデータ格納部
１２０  ジョブネットモデル生成部    １２１  順序関係抽出部
１２２  ジョブ処理時間推定部
１３１  順序関係データ格納部    １３２  ジョブ処理時間データ格納部
１３３  デッドライン定義データ格納部
１３４  通報先データ格納部    １３５  ジョブ実行状況監視部
１３６  終了時刻予測部    １３７  監視データ格納部
１３８  デッドライン超過予測部
【図１】
0005463885.tif 000003
【図２】
0005463885.tif 000004
【図３】
0005463885.tif 000005
【図４】
0005463885.tif 000006
【図５】
0005463885.tif 000007
【図６】
0005463885.tif 000008
【図７】
0005463885.tif 000009
【図８】
0005463885.tif 000010
【図９】
0005463885.tif 000011
【図１０】
0005463885.tif 000012
【図１１】
0005463885.tif 000013
【図１２】
0005463885.tif 000014
【図１３】
0005463885.tif 000015
【図１４】
0005463885.tif 000016
【図１５】
0005463885.tif 000017
【図１６】
0005463885.tif 000018
【図１７】
0005463885.tif 000019
【図１８】
0005463885.tif 000020
【図１９】
0005463885.tif 000021