(57)【要約】【課題】ポリシールールを用いてジョブ実行の運用管理を実行する情報処理システムにおいて、当該情報処理システムに最適なポリシールールを生成する方法を提供する。【解決手段】本発明においては、ジョブごとに設定されるポリシールールを、各ジョブの投入者ではなく、情報処理システムのシステム管理者によって決定する。また、実行予定のジョブごとに、イベントが発生する可能性のある時刻とイベントの種類の可能なあらゆる組合せにつき、常に情報処理システム全体の損害額が最小になるようなアクションが決定され、ポリシールールとして設定する。【効果】障害等のイベントの発生時刻やイベントの種類も加味して、情報処理システム全体として常に損害額が最小となるような、きめ細かくかつ最適な自動運用管理を行うポリシールールを生成することができる。【選択図】  図１
2004295469.tif 000002
【特許請求の範囲】
【請求項１】
障害等のイベントが発生した場合のアクションを記載したポリシールールを用いて、情報処理システムにおいて、１つ以上のジョブの実行時の運用管理を自動実行するためのポリシールールの生成方法であって、
前記１つ以上のジョブのそれぞれにつき、実行の制約条件と、該実行の制約条件を満たせない場合の損害額の評価方法を記載したジョブ実行条件を作成するステップと、
前記ジョブ実行条件を参照し、特定の前記ジョブにおいて、特定のイベントが発生した場合に、特定のアクションを取った時の損害額を評価するステップと、
前記損害額を評価するステップを、特定のジョブと、特定のイベントにおいて、複数準備されたアクションの全てに対して実行し、評価した損害額が最小になる場合のアクションを決定するステップ
を含むことを特徴とするポリシールール生成方法。
【請求項２】
前記ジョブ実行条件を作成するステップは、前記実行の制約条件として、ジョブの要求終了時刻を記載するステップを含むことを特徴とする請求項１に記載のポリシールール生成方法。
【請求項３】
、前記ジョブ実行条件を作成するステップは、前記制約条件を満たせない場合の損害額を評価する方法として関数を記載するステップを含み、
前記損害額を評価するステップは、前記関数を実行するステップを含むことを特徴とする請求項１に記載のポリシールール生成方法。
【請求項４】
前記関数はジョブ終了の遅延時間を引数とする関数であり、前記関数を実行するステップではジョブ終了の遅延時間を計算することを特徴とする請求項３に記載のポリシールール生成方法。
【請求項５】
請求項１に記載のポリシールール生成方法において、
前記１つ以上のジョブの終了予定時刻を含む、ジョブ実行スケジュールを作成するステップと、
１つ以上の前記アクションのそれぞれを、前記ジョブ実行スケジュールを変更するサブルーチンとして記述するステップとをお更に有し、
前記特定のアクションを取った時の損害額を評価するステップは、当該アクションを記述したサブルーチンを実行し、前記ジョブ実行スケジュールを変更するステップ
を含むことを特徴とするのポリシールール生成方法。
【請求項６】
前記評価した損害額が最小になる場合のアクションを決定するステップを、１つ以上のジョブが実行されている予定の、すべての時刻において実行することを特徴とする請求項１記載のポリシールール生成方法。
【請求項７】
前記ポリシールールを用いて、情報処理システムにおいて、１つ以上のジョブの運用管理を自動実行する方法であって、請求項１ないし請求項６に記載のポリシールール生成方法を含むことを特徴とするジョブ運用管理の自動実行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理システムに関し、特にネットワークを利用した複数の計算機を含む情報処理システムに関する。より具体的には，前記情報処理システムにおいて実行されるジョブの管理方法に関する。さらに具体的には、前記ジョブを実行している前記情報処理システムにおいて障害等のイベントが発生した時に、実行中のジョブを再実行するなどの運用管理を、ポリシールールを用いて自動実行する方法に関する。
【０００２】
【従来の技術】
文献Ｓａｌｄａｇｏ他、“Ｓｙｓｔｅｍ  ｆｏｒ  ｍａｎａｇｉｎｇ  ｒｅｓｏｕｒｃｅ  ｄｅｆｉｃｉｅｎｔ  ｊｏｂｓ  ｉｎ  ａ  ｍｕｌｔｉｆｕｎｃｔｉｏｎａｌ  ｐｒｉｎｔｉｎｇ  ｓｙｓｔｅｍ”、米国特許６，５０４，６２１号に記載の情報処理システムには、ジョブの実行を管理するジョブマネージャにポリシールールを設定し、障害等のイベントが発生した場合の運用管理を自動実行する一方法が記載されている。
【０００３】
当該文献によれば、情報処理システムにはジョブを管理する前記ジョブマネージャが設けられており、ジョブを実行させようとするユーザは、当該ジョブを前記ジョブマネージャに投入する時に、「当該ジョブの実行時に障害が発生した場合に取るアクション」をポリシールールとして指定する。アクションとしては、例えば「同じジョブを再実行する」「ユーザに連絡する」などが指定できる。前記ジョブマネージャは、情報処理システムにおいてハードウェア障害やソフトウェア障害が発生して、ジョブの実行が異常終了した場合には、前記ポリシールールを参照し、ユーザが指定したアクションを自動実行する。これにより、ジョブマネージャは、ジョブ実行中に障害等のイベントが発生した場合の運用管理を、自動実行することができる。
【０００４】
【非特許文献】
Ｓａｌｄａｇｏ他、“Ｓｙｓｔｅｍ  ｆｏｒ  ｍａｎａｇｉｎｇ  ｒｅｓｏｕｒｃｅ  ｄｅｆｉｃｉｅｎｔ  ｊｏｂｓ  ｉｎ  ａ  ｍｕｌｔｉｆｕｎｃｔｉｏｎａｌ  ｐｒｉｎｔｉｎｇ  ｓｙｓｔ”
【特許文献】
米国特許６，５０４，６２１号
【０００５】
【発明が解決しようとする課題】
前記の従来の技術は、次の点で問題がある。
【０００６】
すなわち、ジョブごとに指定されるポリシールールが、他のジョブや障害等の発生時刻とは無関係に指定されているため、情報処理システムおよび当該情報処理システムを利用する企業にとって、最適な自動運用管理ができない場合がある。簡単な例を用いて具体的に説明する。
【０００７】
例として、ただ１台の計算機からなる情報処理システムを考える。当該情報処理システムには２つのジョブＡおよびジョブＢが投入されていて、ジョブＡは当該計算機を占有して実行中であり、ジョブＢは実行開始時刻をあらかじめ指定されており、その時刻になるまで実行を待っているとする。このとき、ジョブＡのポリシーとして「ジョブ実行中に異常終了したら再実行する」と指定されているとすると、ジョブＡは再実行され、それだけジョブＡの終了時刻は遅れることになる。もしジョブＡの終了時刻がジョブＢの開始時刻よりも後になると、ジョブＡが当該計算機を占有しているために、ジョブＢは指定された開始時刻に開始できない。この場合、特にジョブＢが、終了時刻を厳格に守らなくてはならないジョブだとすると、ジョブＡとジョブＢの実行を担う当該情報処理システムとしては大きな問題となる。
【０００８】
逆に、後続のジョブＢが重要であることに配慮して、先行して実行されるジョブＡに「ジョブ実行中に異常終了したら、再実行しないで当該ジョブを破棄する」というポリシーが設定されているとする。もしジョブＡの開始直後に障害が発生して、ジョブＡが異常終了したとすると、ジョブＡは実行されないことになる。ここで、もしジョブＡを再起動すれば、ジョブＢの開始時刻までにジョブＡを終わることができたとすると、当該情報処理システムとしては、ジョブＡを実行しなかったことによって、計算機の時間を無駄にしてしまったことになる。
【０００９】
上記の例のように、従来の技術では、ポリシールールが他のジョブの状態（この例では、ジョブＢの開始時間）や、障害等の発生時刻（この例では、ジョブＡが異常終了した時刻）に無関係に指定されているため、情報処理システム全体として最適な自動運用管理ができない場合がある。上記の例ではジョブを実行する計算機がただ１つで、投入するジョブは２つであったが、ジョブを実行できる計算機が多数あり、投入されたジョブも多数あるような情報処理システムでも、同じ問題が発生する。
【００１０】
そこで、本発明の第１の目的は、ジョブマネージャが情報処理システム全体として最適な自動運用管理をするための、前記ポリシールールの生成方法を提供することである。
【００１１】
本発明の第２の目的は、ジョブマネージャが、障害等のイベントの発生時刻やイベントの種類も加味して、情報処理システム全体として常に損害額が最小となるような、きめ細かくかつ最適な自動運用管理を行うための、前記ポリシールールの生成方法を提供することである。
【００１２】
【課題を解決するための手段】
本発明においては、ジョブごとのポリシールールは、各ジョブの投入者ではなく、情報処理システムのシステム管理者によって、下記の方法により設定される。
まず、実行するジョブごとに、要求終了時刻と、終了時刻がその時刻を過ぎた場合、またはそのジョブを実行できなかった場合の損害額を設定する。また、その情報処理システムにおいて発生し得る障害の種類のリストと、取り得るアクションのリストを用意する。
これにより、ある時刻に、その時刻に実行中のあるジョブにおいて、ある障害が発生した時に、あるアクションを取った場合の、各ジョブの終了時刻を見積ることができる。さらに、見積った各ジョブの終了時刻を用いて、その場合の損害額の合計を計算することができる。
【００１３】
そこで、ある時刻（Ｔ）とその時刻に実行中のジョブ（Ｊ）と障害の種類（Ｘ）の組合せにおいて、取り得る各アクションに対して前記損害額の合計を計算し、当該損害額の合計が最も少ないアクション（Ａ）を決定し、「時刻Ｔにおいて、障害Ｘが発生したら、アクションＡを実行する」というポリシールールを、ジョブＪのポリシールールとして一つ決定する。同様の手続きを、時刻Ｔとその時刻に実行中のジョブＪと障害の種類Ｘのあらゆる組合せに対して実行することにより、すべてのジョブの、すべての時刻における、すべての種類の障害に対するポリシールールの組が得られる。前記情報処理システムのシステム管理者は、得られたポリシールールの組を前記ジョブマネージャに設定する。
【００１４】
本発明の方法によれば、ジョブマネージャには、常に情報処理システム全体の損害額が最小になるようなポリシールールが設定される。従って、ジョブマネージャは、情報処理システム全体として最適な自動運用管理を行なうことができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の一形態を、図面を参照しながら説明する。なお、簡単のため、本明細書中では「発明の実施の形態」を、単に「実施例」と呼ぶことにする。
（１）ポリシールール生成環境のハードウェア構成
本実施例においては、本発明によるポリシールールの生成は、情報処理システムのシステム管理者が、本発明のポリシールール生成方法を、ポリシールール生成計算機を用いたポリシールール生成環境において実行することにより行われる。図１０を用いて、本実施例のポリシールール生成環境のハードウェア構成を説明する。ポリシールール生成環境１５０は、ポリシールール生成計算機１５１と、記憶装置１５３から構成される。ポリシールール生成計算機１５１は、実際には端末、パーソナルコンピュータ、メインフレームなどの計算機で、１つ以上のプロセッサを有し、ポリシールールを生成するための処理を実装したポリシー生成ツール１５２を実行する。なお、プロセッサについては図示していない。記憶装置１５３は磁気ディスク，メモリ，ファイルサーバ，ネットワーク情報サーバなどの記憶媒体であり、ジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００、ポリシールールリスト６００をデータとして格納することができる。記憶装置１５３は、ポリシールール生成計算機１５１と、リンク１５４によって接続されている。リンク１５４は、接続コードや、無線または有線のネットワークなどである。なお、図１０では、ジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００、ポリシールールリスト６００はすべて同じ記憶装置１５３に格納されているが、実際には別々の記憶装置に格納されていても良い。また、ポリシールール生成計算機１５１は、記憶装置１５３と同じ筐体に格納されていても良い。
（２）ポリシールール生成環境のソフトウェア構成
図１０を用いて、ポリシールール生成環境のソフトウェア構成を説明する。図１０において、ルール生成ツール１５２は、ポリシールール生成計算機１５１のプロセッサによって実行されるプログラムであり、本発明のポリシールール生成方法を実行する。ルール生成ツール１５２は、ポリシールール生成計算機１５１上で実行されているオペレーティングシステム（図示していない）に入出力の要求を行うことにより、記憶装置１５３に格納されたジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００を読み込み、またポリシールールリスト６００を書き込むことができる。
【００１６】
ジョブ実行スケジュール２００（図２）、ジョブ実行条件リスト３００（図３）、アクションリスト４００（図４）、イベントリスト５００（図５）、ポリシールールリスト（図６）は、記憶装置１５３に格納されたデータであり、それぞれ別の図に示す形式で情報を格納している。
【００１７】
本実施例では、情報処理システムのシステム管理者は、情報処理システムのポリシールールを生成しようとする場合には、あらかじめジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００を記憶装置１５３に格納し、ポリシールール生成計算機１５１においてポリシー生成ツール１５２を実行する。実行されたポリシー生成ツール１５２は、ジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００を読み込み、本発明のポリシールール生成方法を実行して、生成されたポリシールールを記憶装置１５３のポリシールールリスト６００に書き込む。情報処理システムのシステム管理者は、書き込まれたポリシールールリスト６００を読み出し、情報処理システムに適用する。
【００１８】
また、前記情報処理システムのシステム管理者は、例えばジョブ実行スケジュール２００に記載されていない新しいジョブを実行する必要が生じた場合や、業務の都合でジョブ実行スケジュール２００に記載された特定のジョブの実行開始時刻の変更が必要になった場合など、ジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００の記載内容のいずれかに変更が生じた場合は、再度ポリシー生成ツール１５２を実行して、新しいポリシールールリスト６００を生成し、情報処理システムに適用する。ポリシー生成ツール１５２の再実行は、前記情報処理システムのシステム管理者が手作業で行っても、あるいはポリシールール生成ツール１５２またはそれとは別のプログラムが、記憶装置１５３に格納されたジョブ実行スケジュール２００、ジョブ実行条件リスト３００、アクションリスト４００、イベントリスト５００の変更や、ジョブの新規受付などを検出して、自動的にポリシールール生成ツール１５２を呼び出す形で実行しても良い。
【００１９】
なお、本実施例において、ルール生成ツール１５２は、プログラムとして取り扱ったが、これは本発明においては、これと同等の機能がプログラムとして実装されなければならないことを意味するものではない。
（３）ジョブ実行スケジュール
図２を用いて、本実施例におけるジョブ実行スケジュール２００の形式と内容を説明する。図２で、ジョブ実行スケジュール２００は表形式になっており、１つ以上の行２０１ａ，２０１ｂ，２０１ｃ，…から成る。すべての行は４つの列を含んでいる。ここで４つの列とは、ジョブ名２０２ａ，２０２ｂ，２０２ｃ，…，開始時刻２０３ａ，２０３ｂ，２０３ｃ，…，終了時刻２０４ａ，２０４ｂ，２０４ｃ，…，計算機名２０５ａ，２０５ｂ，２０５ｃ，…である。図示していないが、ジョブ実行スケジュール２００の各行は、これ以外の列を含んでいても良い。
【００２０】
ジョブ実行スケジュール２００に格納された情報は、ポリシールールリスト６００を生成するポリシールール生成環境と、ジョブを実行する情報処理システムにおいて利用される。ジョブ実行スケジュール２００に格納された情報は、情報処理システムのシステム管理者が、各ジョブの情報処理システムでの実行の要求者からの要求を受けて作成しても良いし、当該システム管理者とは別の担当者が作成したものをシステム管理者に渡し、システム管理者が使用しても良い。また、ジョブ実行スケジュール２００に格納される情報は、システム管理者や前記担当者が手作業で作成しても、あるいは何らかのツールやユーティリティを用いて、作業の一部または全部を自動化して作成しても良い。
【００２１】
ジョブ実行スケジュール２００は、情報処理システムにおいて実行する各ジョブにつき、実行開始時刻と、終了時刻と、当該ジョブを実行する情報処理システム内の計算機名が格納される。行２０１ａの場合、ジョブの名前がジョブ名２０２ａに、当該ジョブの開始時刻が開始時刻２０３ａに、当該ジョブの終了時刻が終了時刻２０４ａに、当該ジョブを実行する計算機の名前が計算機名２０５ａに格納される。なお、終了時刻２０４ａについては、特別な場合として、例えば途中でエラーが発生し、再起動しなかった場合など、もしそのジョブを実行できなかった場合は、値として−１（マイナス１）を格納する。行２０１ｂ，２０１ｃ，…についても同様である。
（４）ジョブ実行条件リスト
図３を用いて、本実施例におけるジョブ実行条件リスト３００の形式と内容を説明する。図３で、ジョブ実行条件リスト３００は表形式になっており、１つ以上の行３０１ａ，３０１ｂ，３０１ｃ，…から成る。すべての行は４つの列を含んでいる。ここで４つの列とは、ジョブ名３０２ａ，３０２ｂ，３０２ｃ，…，要求終了時刻３０３ａ，３０３ｂ，３０３ｃ，…，損害額評価関数名３０４ａ，３０４ｂ，３０４ｃ，…，パラメータ３０５ａ，３０５ｂ，３０５ｃ，…である。図示していないが、ジョブ実行条件リスト３００の各行は、これ以外の列を含んでいても良い。
【００２２】
ジョブ実行条件リスト３００に格納された情報は、ポリシールールリスト６００を生成するポリシールール生成環境において利用される。ジョブ実行条件リスト３００に格納された情報は、情報処理システムのシステム管理者が、各ジョブの情報処理システムでの実行の要求者からの要求を受けて作成しても良いし、当該システム管理者とは別の担当者が作成したものをシステム管理者に渡し、システム管理者が使用しても良い。また、ジョブ実行条件リスト３００に格納される情報は、システム管理者や前記担当者が手作業で作成しても、あるいは何らかのツールやユーティリティを用いて、作業の一部または全部を自動化して作成しても良い。
【００２３】
ジョブ実行条件リスト３００は、情報処理システムにおいて実行する各ジョブにつき、その実行条件を格納している。本実施例では、ジョブの実行条件は、ジョブの要求終了時刻と、その要求終了時刻が満たされなかった場合の、損害額の計算方法を指定することによって表される。ジョブ実行条件リスト３００の１つの行は、１つのジョブに対応付けられ、そのジョブの実行条件を示す。前記１つの行の内容を、行３０１ａを例として説明する。ジョブ名３０２ａにはジョブの名前が格納され、行３０１ａを特定のジョブに結びつける。要求終了時刻３０３ａには、当該ジョブが終了しなければいけない時刻が格納される。損害評価関数３０４ａには、当該ジョブが要求終了時刻３０３ａに終了しなかった場合に、損害額を計算するための式が格納される。ジョブ名３０２ａで指定されたジョブが要求終了時刻３０３ａに格納された時刻に終了しなかった場合には、この式が、２つの引数と共に実行され、損害額が計算される。ここで、２つの引数とは、当該ジョブの終了時刻と要求終了時刻３０３ａに記載された時刻との差（遅延時間）と、パラメータ３０５ａに格納された値である。本実施例では遅延時間の単位を１時間とするが、その他の単位（分など）を単位としても良い。また、特別な場合として、もしそのジョブが実行できなかった場合は、遅延時間は−１（マイナス１）とする。なお、損害評価関数３０４ａに格納される式は、呼び出すべき関数名だけが格納してあっても、何らかのプログラミング言語で記述されたサブルーチンを格納しても良い。
【００２４】
図３の行３０１ｂ，３０１ｃ，…についても、行３０１ａと同様である。図３では、行３０１ｂと行３０１ｃにジョブ実行条件の具体例を示している。行３０１ｂに記載された実行条件によれば、もしジョブＡなる名称のジョブの終了時刻が、要求終了時刻の午前４時（３０３ｂに記載されている）を過ぎて午前５時となった場合、３０４ｂに記載された式が遅延時間の１時間とパラメータの５０万を引数として呼び出され、損害額が１５０万と算定される。行３０１ｃに記載された実行条件によれば、もしジョブＢなる名称のジョブの終了時刻が、要求終了時刻の午前６時（３０３ｃに記載されている）を過ぎて午前７時となった場合、３０４ｃに記載された式が呼び出され、５０万が損害額となる。なお、損害評価関数３０４ｂ，３０４ｃのどちらの場合も、前記の式を適用する前に、まず引数として渡された遅延時間が−１（マイナス１）かどうかを検査して、真であれば別の式を適用する処理が含まれていても良い。
（５）アクションリスト
図４を用いて、本実施例におけるアクションリスト４００の形式と内容を説明する。図４で、アクションリスト４００は表形式になっており、１つ以上の行４０１ａ，４０１ｂ，４０１ｃ，…から成る。すべての行は４つの列を含んでいる。ここで４つの列とは、通番４１１ａ，４１１ｂ，４１１ｃ，…，ユーザインタフェース部へのアクション４１２ａ，４１２ｂ，４１２ｃ，…，制御部へのアクション４１３ａ，４１３ｂ，４１３ｃ，…，再スケジューリング方法４１４ａ，４１４ｂ，４１４ｃ，…である。図示していないが、アクションリスト４００の各行は、これ以外の列を含んでいても良い。
【００２５】
アクションリスト４００に格納された情報は、ポリシールールリスト６００を生成するポリシールール生成環境と、ジョブを実行する情報処理システムにおいて利用される。アクションリスト４００に格納された情報は、情報処理システムのシステム管理者が作成しても良いし、情報処理システムの設計時に、設計者が作成しても良い。また、アクションリスト４００に格納される情報は、システム管理者や前記設計者が手作業で作成しても、あるいは何らかのツールやユーティリティを用いて、作業の一部または全部を自動化して作成しても良い。
【００２６】
アクションリスト４００は、情報処理システムにおいて障害などのイベントが発生したときに、取り得るアクションの候補がすべて列挙されている。アクションリスト４００の１つの行は、１つのアクションに対応付けられ、そのアクションの内容を示す。アクションに記載された内容は、ポリシールールリスト（図６）において、イベントの種類と、時刻と共に指定され、情報処理システムにおいて、指定された時刻に、指定された種類のイベントが発生した場合に、実行される。前記１つの行の内容を、行４０１ａを例として説明する。通番４１１ａには、アクションリスト内で一意な通し番号が振られている。通し番号の振り方は、結果として行４０１ａ，４０１ｂ，４０１ｃ，…のそれぞれに一意な番号が振られれば、どのような方法でも良い。通番４１１ａは、イベントリスト（図５）および、ポリシールールリスト（図６）において、特定のアクションを指定するために用いられる。ユーザインタフェース部へのアクション４１２ａには、このアクションを実行するときに、ユーザインタフェース部（図９）において行う処理が指定される。ここでは、情報処理システムのシステム管理者に連絡するかどうか、連絡する場合どのような方法を使うか、などが指定される。ユーザインタフェース部へのアクション４１２ａの具体的な格納形式としては、呼び出すべき関数名だけを格納してあっても、何らかのプログラミング言語で記述されたサブルーチンを格納しても良い。制御部へのアクション４１３ａには、このアクションを実行するときに、制御部（図９）において行う処理が指定される。ここでは、実行中のジョブを再実行するかどうか、同じ計算機で再実行するかどうか、などが指定される。制御部へのアクション４１３ａの具体的な格納形式としては、呼び出すべき関数名だけが格納してあっても、何らかのプログラミング言語で記述されたサブルーチンを格納しても良い。再スケジューリング方法４１４ａには、このアクションを取った結果、ジョブ実行スケジュール２００をどのように変更するかが記述される。ここでは、例えば、同じ計算機でこのジョブの後に実行される予定のすべてのジョブにつき、開始時間を遅らせる、などの処理が指定される。再スケジューリング方法４１４ａの具体的な格納形式としては、呼び出すべき関数名だけが格納してあっても、何らかのプログラミング言語で記述されたサブルーチンを格納しても良い。
【００２７】
図４の行４０１ｂ，４０１ｃ，…についても、行４０１ａと同様である。図４では、行４０１ｂ，行４０１ｃに、アクションの具体例を示している。行４０１ｂに記載されたアクションが実行された場合、ユーザインタフェース部へのアクション４１２ｂに記載された処理により、ユーザインタフェース部（図９）ではシステム管理者に通知するための処理は何も行わず、制御部へのアクション４１３ｂに記載の処理により、イベントが発生したジョブを同じ計算機で即時再実行する処理を制御部（図９）で実行し、再スケジューリング方法４１４ｂに記載の処理により、同じ計算機でイベントが発生したジョブの後に実行される予定のすべてのジョブにつき、開始時間を遅らせるようにジョブ実行スケジュール２００を変更する。また、行４０１ｃに記載されたアクションが実行された場合、ユーザインタフェース部へのアクション４１２ｃに記載された処理により、ユーザインタフェース部においてシステム管理者に通知するための処理が実行され、制御部へのアクション４１３ｃに記載の処理により、イベントが発生したジョブを停止する処理を制御部で実行し、再スケジューリング方法４１４ｃに記載の処理により、ジョブ実行スケジュール２００は変更しない。
（６）イベントリスト
図５を用いて、本実施例におけるイベントリスト５００の形式と内容を説明する。図５で、イベントリスト５００は表形式になっており、１つ以上の行５０１ａ，５０１ｂ，５０１ｃ，…から成る。すべての行は３つの列を含んでいる。ここで３つの列とは、通番５１１ａ，５１１ｂ，５１１ｃ，…，イベントの種類５１２ａ，５１２ｂ，５１２ｃ，…，取り得るアクションのリスト５１３ａ，５１３ｂ，５１３ｃ，…である。図示していないが、イベントリスト５００の各行は、これ以外の列を含んでいても良い。
【００２８】
イベントリスト５００には、情報処理システムにおいて発生しうる、障害などのすべてのイベントが列挙されている。イベントリスト５００の１つの行は、１つのイベントに対応付けられ、そのイベントの内容を示す。イベントに記載された内容は、ポリシールールリスト（図６）において、アクションと、時刻と共に指定される。
【００２９】
前記１つの行の内容を、行５０１ａを例として説明する。通番５１１ａには、イベントリスト５００内で一意な通し番号が振られている。通し番号の振り方は、結果として行５０１ａ，５０１ｂ，５０１ｃ，…のそれぞれに一意な番号が振られれば、どのような方法でも良い。通番５１１ａは、ポリシールールリスト（図６）において、特定のアクションを指定するために用いられる。障害イベントの種類５１２ａには、行５０１ａに対応付けられたイベントの種類が格納される。イベントの種類は、計算機がダウンした場合や、ジョブを構成するプログラムが異常終了した場合などを含んでいる。取り得るアクションのリスト５１３ａには、行５０１ａに記載のイベントが発生したときに、取ることができるアクションのリストが、アクションリスト４００の通番のリストとして格納される。
【００３０】
図５の行５０１ｂ，５０１ｃ，…についても、行５０１ａと同様である。図５では、行５０１ｂ，行５０１ｃに、イベントの具体例を示している。行５０１ｂに記載されたイベントは、通番５１１ｂに記載されている通り、通し番号として１が割り当てられており、障害イベントの種類５１２ｂに記載の内容により、このイベントは計算機がダウンした場合を指すと指定されている。また、取り得るアクションのリスト５１３ｂに記載に内容により、このイベントが発生した場合は、取り得るアクションはアクションリスト４００の行４０１ｃに記載のアクション（ジョブを再実行せず、システム管理者に連絡する）に限られると指定されている。また、行５０１ｃに記載されたイベントは、通番５１１ｃに記載されている通り、通し番号として２が割り当てられており、障害イベントの種類５１２ｃに記載の内容により、このイベントは実行中のジョブが異常終了した場合を指すと指定されている。また、取り得るアクションのリスト５１３ｃに記載に内容により、このイベントが発生した場合は、取り得るアクションはアクションリスト４００の行４０１ｂに記載のアクション（同じ計算機で、当該ジョブを再実行し、当該ジョブの後で実行されるジョブは実行開始を遅らせる）か、行４０１ｃに記載のアクション（ジョブを再実行せず、システム管理者に連絡する）に限られると指定されている。
【００３１】
イベントリスト５００に格納された情報は、ポリシールールリストを生成するポリシールール生成環境と、ジョブを実行する情報処理システムにおいて利用される。イベントリスト５００に格納された情報は、情報処理システムのシステム管理者が作成しても良いし、情報処理システムの設計時に、設計者が作成しても良い。また、イベントリスト５００に格納される情報は、システム管理者や前記設計者が手作業で作成しても、あるいは何らかのツールやユーティリティを用いて、作業の一部または全部を自動化して作成しても良い。
（７）ポリシールールリスト
図６を用いて、本実施例におけるポリシールールリスト６００の形式と内容を説明する。図６で、ポリシールールリスト６００は表形式になっており、１つ以上の行６０１ａ，６０１ｂ，６０１ｃ，…から成る。すべての行は４つの列を含んでいる。ここで４つの列とは、ジョブ名６１１ａ，６１１ｂ，６１１ｃ，…，時刻６１２ａ，６１２ｂ，６１２ｃ，…，イベント６１３ａ，６１３ｂ，６１３ｃ，…，アクション６１４ａ，６１４ｂ，６１４ｃ，…である。図示していないが、ポリシールールリスト６００の各行は、これ以外の列を含んでいても良い。ポリシールールリスト６００は、図１０を用いてすでに説明したように、ルール生成ツール１５２によって生成される。ポリシールールリスト６００は、ジョブを実行する情報処理システムにおいて利用される。
【００３２】
ポリシールールリスト６００には、「あるジョブの実行中のある時刻に、あるイベントが発生した場合に、そのジョブについてどのアクションを取るか」の組（すなわちポリシールール）が列挙される。ポリシールールリスト６００の１つの行は、１つのポリシールールに対応付けられる。
【００３３】
前記１つの行の内容を、行６０１ａを例として説明する。ジョブ名６１１ａは、このポリシールールが対象とするジョブのジョブ名が格納される。時刻６１２ａには、このポリシールールが有効となる時刻が格納される。時刻６１２ａの格納形式としては、本実施例ではこのポリシールールが対象とするジョブの開始時刻から見た時間帯で格納される。ただし、時刻６１２ａは、他の時刻の形式、例えば絶対時刻が格納されても良い。イベント６１３ａは、このポリシールールが有効になるイベントを指定される。より具体的には、イベント６１３ａには、イベントリスト（図５）の中の、特定のイベントの通番が格納される。アクション６１４ａは、このポリシールールにおいて、実行されるアクションを指定する。
【００３４】
図６の行６０１ｂ，６０１ｃ，…についても、行６０１ａと同様である。図６では、行６０１ｂ，行６０１ｃに、イベントの具体例を示している。行６０１ｂに記載されたイベントは、ジョブ名６１１ｂ、時刻６１２ｂ、イベント６１３ｂ、アクション６１４ｂに記載の内容により、「ジョブＡにおいて、開始後３０分以内に、ジョブＡを構成するプログラムが異常終了したら、ジョブＡを同じ計算機で即時再実行し、同じ計算機で実行予定の後続のジョブは実行開始を遅らせる」というポリシールールを意味する。行６０１ｃに記載されたイベントは、ジョブ名６１１ｃ、時刻６１２ｃ、イベント６１３ｃ、アクション６１４ｃに記載の内容により、「ジョブＡにおいて、開始後３０分以降６０分以内に、ジョブＡを構成するプログラムが異常終了したら、ジョブＡの実行を停止し、システム管理者に連絡する」というポリシールールを意味する。
（８）ポリシールールの生成方法
図７および図８を用いて、本実施例におけるポリシールールの生成方法を説明する。本実施例では、図７および図８に示すポリシールールの生成方法は、情報処理システムの管理者が、図１０のルール生成ツール１５２を実行することによって実行される。
【００３５】
システム管理者から呼び出されたルール生成ツール１５２は、まず、２つの変数Ｓ，Ｔの値を初期化する（７０１）。Ｓの値は、非常に大きな金額とする。例えば、情報処理システムを運営している組織または情報処理システムが設置された国家の年間予算とか、資本金などを用いればよい。Ｔの値は、情報処理システムにおいて最初のジョブが実行開始される時刻とする。最初のジョブが実行される時刻は、ジョブ実行スケジュール２００を走査することで容易に決定することができる。
【００３６】
次に、ルール生成ツール１５２は、ジョブ実行スケジュール２００を走査し、変数Ｔに記載の時刻に実行中のジョブ名のリストを作成して、変数Ｌに格納し（７０２）、さらにリストになっている変数Ｌの最初の要素を変数Ｊに格納する（７０３）。
【００３７】
次に、ルール生成ツール１５２は、イベントリスト５００（図５）を読み込み、イベントリスト５００の最初の行の内容を、変数Ｘに格納する（７０４）。
【００３８】
次に、ルール生成ツール１５２は、変数Ｘの内容（イベントリスト５００の１つの行の内容が格納されている）から、取り得るアクションのリストを取り出し、変数Ｍに格納し（７０５）、さらにリストになっている変数Ｍの最初の要素を取り出す。当該要素は、アクションリスト４００（図４）の通番の１つなので、ルール生成ツール１５２は、アクションリスト４００を走査し、当該要素の通番を持つアクションリスト４００の行を読み込んで、変数Ａに格納する（７０６）。
【００３９】
次に、ルール生成ツール１５２は、ジョブ実行スケジュール２００を変数Ｃに読み込み、変数Ａの内容（アクションリスト４００の１つの行、すなわち１つのアクション）から、再スケジューリング方法を取り出し、取り出した再スケジューリング方法により、変数Ｃに格納されたジョブ実行スケジュールを変更する（７０７）。例えば再スケジューリング方法として、サブルーチン（何らかのプログラミング言語で記載されている）が格納されている場合は、変数Ｃの内容と、変数Ｊに格納されたジョブ名と、変数Ｔに格納された時刻とを引数として、そのプログラミング言語の処理系を呼び出して、そのサブルーチンを実行させる。変数Ｃの内容は、ステップ７０７の結果、ジョブ実行スケジュールの各行の、開始時刻、終了時刻、計算機名が、もとのジョブ実行スケジュール２００の内容と変更される。特に、変数Ａの内容が、ジョブ再実行をしない指定になっている場合、変数Ｊに格納されたジョブ名を持つ行については、終了時間が−１（マイナス１）になっている。
【００４０】
次に、ルール生成ツール１５２は、変数Ｃに格納されたジョブ実行スケジュールに記載されたジョブのそれぞれが、要求終了時間を満たしているかどうか調べ、満たしていないジョブがある場合は、満たしていないことによる損害額を計算し、当該損害額の合計を計算する（７０８）。より具体的な損害額の計算方法は、後で図１を用いて説明する。
【００４１】
次に、ルール生成ツール１５２は、計算された損害額が、変数Ｓに格納された値より小さいかどうか比較する（７０９）。もし小さければ、計算した損害額を変数Ｓに格納し（７１０）、変数Ｔ，変数Ｊ，変数Ｘ，変数Ａの内容を、変数Ｒに格納する（７１１）。もし小さくなければ、ステップ７１０とステップ７１１は実行しない。なお、ステップ７１１において、もし計算された損害額が０（ゼロ）であれば、ステップ８０４（図８）にジャンプしても良い。
【００４２】
次に、ルール生成ツール１５２は、変数Ｍに格納されたリストに、次の要素（アクションの通番）があるかどうかを調べ（８０１）、もしなければ、ステップ８０３にジャンプする。もしあればステップ７０６と同様に、アクションリスト４００を走査し、当該要素の通番を持つアクションリスト４００の行を読み込んで、変数Ａに格納し（８０２）、ステップ７０７にジャンプする。
【００４３】
次に、ルール生成ツール１５２は、変数Ｒに格納された内容から、ポリシールール（ポリシールールリスト６００の１つの行）を作成し、ポリシールールリスト６００に追加する（８０３）。具体的には、変数Ｒには、損害額が最小になるときの変数Ｔ，変数Ｊ，変数Ｘ，変数Ａの内容が格納されているので，変数Ｒ内の変数Ｊに相当する部分に格納されたジョブ名をポリシールールのジョブ名に、変数Ｒ内の変数Ｔに相当する部分に格納された時刻と、ジョブ実行スケジュールに格納された当該ジョブの開始時刻の差をポリシールールの時刻に、変数Ｒ内の変数Ｘに相当する部分に格納されたイベントの通番をポリシールールのイベントに、変数Ｒ内の変数Ａに相当する部分に格納されたアクションの通番をポリシールールのアクションとして、ポリシールールを作成する。
【００４４】
次に、ルール生成ツール１５２は、イベントリスト５００を読み込み、変数Ｘ（イベントリスト５００の行の１つの内容が格納されている）に格納された通番を持つ行の次の行があるかどうか調べ（８０４）、もしなければ、ステップ８０６にジャンプする。もしあれば、変数Ｘに当該次の行の内容を格納し（８０５）、ステップ７０５にジャンプする。
【００４５】
次に、ルール生成ツール１５２は、変数Ｌに格納されたジョブ名のリストに、変数Ｊに格納されたジョブ名に相当する要素の次の要素があるかどうか調べ（８０６）、もしなければ、ステップ８０８にジャンプする。もしあれば、変数Ｊに当該次の要素の内容（ジョブ名）を格納し（８０６）、ステップ７０４にジャンプする。
【００４６】
次に、ルール生成ツール１５２は、変数Ｔに格納された時刻を１単位進める（８０８）。時刻を進める単位は、情報処理システムのシステム管理者が、ジョブ実行スケジュール２００を作成する際に、各ジョブの開始時刻を決める際の単位（１分、３０分、１時間など）を使えば良い。
【００４７】
次に、ルール生成ツール１５２は、ジョブ実行スケジュール２００を走査し、変数Ｔに格納された時刻に実行中のジョブがあるかどうか調べ（８０９）、もしあればステップ７０２にジャンプする。もしなければ、ルール生成ツール１５２を終了させる。
【００４８】
図７および図８に記載の方法により、ルール生成ツール１５２は、ある時刻（Ｔ）とその時刻に実行中のジョブ（Ｊ）と障害の種類（Ｘ）の組合せにおいて、取り得るアクションのそれぞれに対して、損害額の合計を計算し、当該損害額の合計が最も少ないアクション（Ａ）を決定し、「時刻Ｔにおいて、障害Ｘが発生したら、アクションＡを実行する」というポリシールールを、ジョブＪのポリシールールとして一つ決定することができる。さらにポリシールール生成ツール１５２は、同じ手続きを、時刻Ｔとその時刻に実行中のジョブＪと障害の種類Ｘのあらゆる組合せに対して実行することにより、すべてのジョブの、すべての時刻における、すべての種類の障害に対するポリシールールを生成し、ポリシールールリスト６００に格納することができる。
（９）損害額の計算方法
図１を用いて、ルール生成ツール１５２における損害額の計算方法を説明する。本実施例では、図１に示す流れ図は、ルール生成ツール１５２から呼び出せるサブルーチン（損害額計算ルーチンと呼ぶ）として実装される。損害額計算ルーチン中の各変数は、図７および図８の各変数とは独立に管理されている。損害額計算ルーチンは、ルール生成ツール７０７（図７）の中で、変数Ｃ（変更したジョブ実行スケジュール）を引数として呼び出される。
【００４９】
まず、損害額計算ルーチンは、変数Ｓに０（ゼロ）を格納する（１１１）。次に、引数として渡されたジョブ実行スケジュールの先頭の行を、変数Ａに格納する（１１２）。
【００５０】
次に、損害額計算ルーチンは、ジョブ実行条件リスト３００を走査し、変数Ａに格納されたジョブ名と同じジョブ名を持つ、ジョブ実行条件リスト３００の行を取得して、変数Ｂに格納する（１１３）。
【００５１】
次に、損害額計算ルーチンは、変数Ａに格納された終了時刻が、変数Ｂに格納された要求終了時刻よりも前で、かつ変数Ａに格納された終了時刻が−１（マイナス１）でないかどうか調べ（１１４）、もし真であれば、ステップ１１７にジャンプする。もし偽であれば、次のステップ１１５を実行する。
【００５２】
次に、損害額計算ルーチンは、変数Ａに格納された終了時刻と、変数Ｂに格納された要求終了時刻の差をとって遅延時間を計算する。なお、特別な場合として、変数Ａに格納された終了時刻が−１（マイナス１）であれば、遅延時間は−１（マイナス１）とする。次に、損害額計算ルーチンは、変数Ｂに格納された損害評価関数を、計算した遅延時間と、変数Ｂに格納されたパラメータとを引数として呼び出す（１１５）。例えば損害評価関数として、サブルーチン（何らかのプログラミング言語で記載されている）が格納されている場合は、そのプログラミング言語の処理系を呼び出して、そのサブルーチンを実行させる。
【００５３】
次に、損害額計算ルーチンは、ステップ１１５で呼び出した損害評価関数の戻り値を、変数Ｓに加算する（１１６）。
次に、損害額計算ルーチンは、引数として渡されたジョブ実行スケジュールに、次の行があるかどうか調べ（１１７）、次の行があれば、その行の内容を変数Ａに格納し（１１８）、ステップ１１３に戻る。次の行がなければ、変数Ｓの内容を、損害額計算ルーチンの戻り値として返し（１１９）、終了する。
【００５４】
図１に示す損害額計算ルーチンを呼び出すことにより、ルール生成ツール１５２は、変数Ｃに格納されたジョブ実行スケジュールに記載されたジョブのそれぞれが、要求終了時間を満たしているかどうか調べ、満たしていないジョブがある場合は、満たしていないことによる損害額を計算し、当該損害額の合計を計算することができる。
（１０）情報処理システムの構成
図９を用いて、本実施例においてジョブを実行する情報処理システム９００の構成を説明する。ポリシールール生成環境１５０（図１０）において、ルール生成ツール１５２を用いて作成されたポリシールール６００は、情報処理システム９００において、ジョブ実行中に障害等のイベントが発生した場合の運用管理を、自動実行するために用いられる。
【００５５】
図９の情報処理システム９００は、運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂと、ネットワーク９０３からなる。運用管理計算機９０１は、情報処理システム内で実行されるジョブの運用管理を行う。また、ジョブ実行計算機９０２ａ，９０２ｂは、ジョブ実行スケジュール（図２）に記載されたジョブの実行を分担して実行する。図示していないが、運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂは、それぞれ１つ以上のプロセッサを有し、プログラムを実行可能である。また、図９ではジョブ実行計算機９０２ａ，９０２ｂは２台の計算機であるが、本実施例では、ジョブ実行計算機は３台以上でも問題はない。また、運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂは、それぞれ情報処理システムのシステム管理者から、一意の計算機名を割り当てられている。なお、運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂは、そのどれか２つ以上が、同じ筐体に入っていても良い。
【００５６】
運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂは、ネットワーク９０３に、リンク９０４を用いて接続されている。リンク９０４は、有線または無線の接続方式であり、サブネットワークを含んでいても良い。また、運用管理計算機９０１と、ジョブ実行計算機９０２ａ，９０２ｂは、それぞれ異なる方式でネットワーク９０３に接続されていても良い。
【００５７】
運用管理計算機９０１では、ジョブマネージャ９５１がプログラムとして実行されている。ジョブマネージャ９５１は、情報処理システム９００内で実行されるジョブの運用管理のための処理を実行する。図示していないが、ポリシールール生成環境１５０（図１０）のジョブ実行スケジュール２００、アクションリスト４００、イベントリスト５００、ポリシールール６００は、ジョブマネージャ９５１に読み込まれ、ジョブの運用管理のために使用される。ジョブマネージャ９５１は、図示していないが、ジョブ実行スケジュール２００、アクションリスト４００、イベントリスト５００、ポリシールール６００を、情報処理システム９００のシステム管理者の指示により読み込むための機能を有している。
【００５８】
ジョブマネージャ９５１は、ユーザインタフェース部９５２と、ルールエンジン部９５３を含む。ユーザインタフェース部９５２は、情報処理システム１５０で障害等のイベントが発生した場合に、ポリシールールに応じてルールエンジン部９５３から呼び出され、情報処理システムの管理者に通知を行う。ルールエンジン部９５３は、ポリシールールリスト６００を読み込み、エージェント９５４ａ，９５４ｂの状態監視部からイベント通知メッセージがネットワーク９０３を経由して配送されるのを待ち、イベント通知メッセージを受信したら、読み込んだポリシールールリスト６００を検索して配送されたイベント通知メッセージに該当するポリシールールを取り出し、当該ポリシールールに記載されているアクションを実行する。
【００５９】
ジョブ実行計算機９０２ａ，９０２ｂでは、それぞれエージェント９５４ａ，９５４ｂがプログラムとして実行されている。エージェント９５４ａ，９５４ｂは、それぞれ状態監視部９５５ａ，９５５ｂ、および制御部９５６ａ，９５６ｂを含む。
【００６０】
エージェント９５４ａ，９５４ｂは、ジョブマネージャ９５１とネットワーク９０３を経由して通信し、ジョブマネージャ９５１からの指示によりジョブ実行計算機９０２ａ，９０２ｂでジョブを実行したり、停止したり、再起動するなどの処理を実行する。また、エージェント９５４ａ，９５４ｂは、ジョブ実行計算機９０２ａ，９０２ｂ内で、ジョブの実行中または実行の前後に障害等のイベントが発生した場合は、ジョブマネージャ９５１にイベント通知メッセージを送信する。図示していないが、イベント通知メッセージは、イベントが発生したジョブ実行計算機の計算機名（前述の通り、ジョブ実行計算機のそれぞれには一意な計算機名が割り当てられている）、イベントが発生した時刻、およびイベントの種類が含まれている。ここで、前記イベントの種類は、イベントリスト５００に記載されたイベントの種類のうちのいずれかである。
【００６１】
より具体的には、エージェント９５４ａの状態監視部９５５ａは、ジョブ実行計算機９０２ａ内で障害等のイベントが発生した場合は、ジョブマネージャ９５１にイベント通知メッセージを送信する。また、制御部９５６ａは、ジョブマネージャ９５１からネットワーク経由で送信されてきた指示を受信し、その指示に応じて、指定されたジョブをジョブ実行計算機９０２ａのプロセッサを用いて実行開始させたり、ジョブ実行計算機９０２ａで実行中のジョブを停止したり、指定されたジョブをジョブ実行計算機９０２ａで再実行したりといった、ジョブ運用管理のための処理を実行する。エージェント９５４ｂと、エージェント９５４ｂに含まれる状態監視部９５５ｂ，制御部９５６ｂについても、機能はそれぞれエージェント９５４ａ，状態監視部９５５ａ，制御部９５６ａと同様である。
【００６２】
なお、本実施例ではジョブマネージャ９５１、エージェント９５４ａ，９５４ｂはプログラムであるとしたが、これらの一部または全部がプログラムなくてはいけないことを意味するわけではない。例えば、ジョブ実行計算機９０２ａのダウンを検出して、イベント通知メッセージをジョブマネージャ９５１に送信するため、ジョブ実行計算機９０２ａがダウンしていても、前記イベント通知メッセージが送信できるよう、エージェント９５４ａの状態監視部９５５ａの一部または全部が、ジョブ実行計算機９０２ａに何らかの方式で接続（ネットワーク９０３経由でも良い）されたハードウェアとして実現されていても良い。
（１１）情報処理システムにおけるポリシールールの利用
図９を用いて、情報処理システム９００において、ジョブマネージャ９５１のルールエンジン部９５３で読み込まれるポリシールールリスト６００が、どのように使われるかを示す。なお、前述の通り、ジョブマネージャ９５１は、ジョブ実行スケジュール２００、アクションリスト４００、イベントリスト５００も読み込んでおり、そのためルールエンジン部９５３は、ジョブ実行スケジュール２００、アクションリスト４００、イベントリスト５００の内容も参照できる。
【００６３】
通常、情報処理システム９００では、ジョブマネージャ９５１が、ジョブ実行スケジュール２００を参照して、エージェント９５４ａやエージェント９５４ｂと通信して、ジョブ実行スケジュールに記載された開始時刻に、指定された計算機名の計算機において、指定されたジョブの実行を指示し、複数のジョブが実行される。
【００６４】
このような状況で、情報処理システム９００内で、ジョブを構成するプログラムが異常終了するなどの障害を含むイベントが発生すると、まずそのジョブを実行していたジョブ実行計算機で実行されているエージェントの状態監視部がそれを検出し、前記の通り、イベントが発生したジョブ実行計算機の計算機名、イベントが発生した時刻、およびイベントの種類が含むイベント通知メッセージを作成し、ジョブマネージャ９５１に送信する。ジョブマネージャ９５１のルールエンジン部９５３は、当該イベント通知メッセージを受信し、当該イベント通知メッセージからイベントが発生したジョブ実行計算機の計算機名とイベントが発生した時刻を取得し、これを用いてジョブ実行スケジュールを検索することにより、イベントが発生したジョブのジョブ名を特定する。なお、当該ジョブ名は、エージェントから送信される時点で、イベント通知メッセージに含まれていても良い。この場合はジョブ実行スケジュールを検索する処理は不要である。
【００６５】
次に、ルールエンジン部９５３は、イベント通知メッセージに格納されているイベントの種類を取得し、それを用いてイベントリストを検索し、該当するイベントの種類を持つ行を取得し、当該行に格納された通番を取得する。
【００６６】
次に、ルールエンジン部９５３は、取得したジョブ名と、イベントの発生時刻と、通番を用いて、ポリシールールリストを検索し、該当するポリシールール（ポリシールールリスト６００（図６）に記載されたポリシールールのいずれか）を取得し、そのポリシールールに格納されたアクションの通番を取得する。さらにルールエンジン部９５３は、取得したアクションの通番を用いて、アクションリストを検索し、アクションの通番と同じ通番を持つ行（すなわちアクション）を取得する。
【００６７】
次に、ルールエンジン部９５３は、取得したアクションに記載された、ユーザインタフェース部へのアクションおよび制御部へのアクションを実行する。例えばユーザインタフェース部へのアクションおよび制御部へのアクションが、何らかのプログラミング言語によりサブルーチンとして記述されている場合は、そのプログラミング言語の処理系を呼び出し、ユーザインタフェース部へのアクションおよび制御部へのアクションに記載されている内容を実行させる。通常、ユーザインタフェース部へのアクションを実行した結果、ユーザインタフェース部９５２が呼び出され、端末へのエラーメッセージの表示や、アラームの始動など、イベントの発生を情報処理システムのシステム管理者に通知するための処理が、自動的に実行される。また、制御部へのアクションを実行した結果、制御部９５６ａまたは制御部９５６ｂのどちらか、またはすべてに対してジョブマネージャから指示のメッセージがネットワーク９０３を経由して送信され、その結果としてジョブの再実行や、ジョブの別の計算機での再実行や、ジョブの停止などの運用管理処理が、自動的に実行される。
【００６８】
【発明の効果】
本発明においては、ジョブごとに設定されるポリシールールは、各ジョブの投入者ではなく、情報処理システムのシステム管理者によって決定され、常に情報処理システム全体の損害額が最小になるようなポリシールールが設定される。従って、ジョブマネージャは、本発明によって生成されたポリシールールを用いて、情報処理システム全体として最適になるように、自動運用管理を行うことができる。
特に、本発明においては、ジョブごとに設定されるポリシールールは、各ジョブの投入者ではなく、情報処理システムのシステム管理者によって決定される。また、実行予定のジョブごとに、イベントが発生する可能性のある時刻とイベントの種類の可能なあらゆる組合せにつき、常に情報処理システム全体の損害額が最小になるようなアクションが決定され、ポリシールールとして設定される。従って、ジョブマネージャは、本発明によって生成されたポリシールールを用いて、障害等のイベントの発生時刻やイベントの種類を加味した、情報処理システム全体として常に損害額が最小となるような、きめ細かくかつ最適な自動運用管理を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施例における、損害額の計算方法を示す流れ図である。
【図２】本発明の実施例における、ジョブ実行スケジュール２００の構造と内容を示す図である。
【図３】本発明の実施例における、ジョブ実行条件３００の構造と内容および具体例を示す図である。
【図４】本発明の実施例における、アクションリスト４００の構造と内容および具体例を示す図である。
【図５】本発明の実施例における、イベントリスト５００の構造と内容および具体例を示す図である。
【図６】本発明の実施例における、ポリシールールリスト６００の構造と内容および具体例を示す図である。
【図７】本発明の実施例における、ポリシールール作成方法を示す流れ図である。流れ図は図８に続いている。
【図８】図７から続く、本発明の実施例における、ポリシールール作成方法を示す流れ図である。
【図９】本発明の実施例における、ジョブを実行する情報処理システムの構成を示す図である。
【図１０】本発明の実施例における、ポリシールールリストを生成するポリシールール生成環境の構成を示す図である。
【符号の説明】
１５０  ポリシールール生成環境
１５２  ルール生成ツール
２００  ジョブ実行スケジュール
３００  ジョブ実行条件
４００  アクションリスト
５００  イベントリスト
６００  ポリシールールリスト
９００  情報処理システム
９５１  ジョブマネージャ
９５２  ユーザインタフェース部
９５３  ルールエンジン部
９５４ａ，９５４ｂ  エージェント
９５５ａ，９５５ｂ  状態監視部
９５６ａ，９５６ｂ  制御部。
【図１】
2004295469.tif 000003
【図２】
2004295469.tif 000004
【図３】
2004295469.tif 000005
【図４】
2004295469.tif 000006
【図５】
2004295469.tif 000007
【図６】
2004295469.tif 000008
【図７】
2004295469.tif 000009
【図８】
2004295469.tif 000010
【図９】
2004295469.tif 000011
【図１０】
2004295469.tif 000012