(57)【要約】【課題】  オンライン処理に影響を及ぼすことなく、オンライン処理が始まる時刻までの間に確実にジョブネットを実行し、終了させるようにオペレータが介在することなくジョブスケジュールを変更可能にする。【解決手段】  ジョブスケジューラが実行するジョブネットの過去の履歴から実行頻度と処理時間の予測と実績の乖離を点数化し、その点数とジョブネットを割り当てる複数の業務サーバのサーバリソースの利用率から、最適な業務サーバに処理を割り振るステップを設けたことを特徴とする。【選択図】    図４
2014194717.tif 000002
【特許請求の範囲】
【請求項１】
ジョブスケジューラが実行するジョブネットの過去の履歴から実行頻度と処理時間の予測と実績の乖離を点数化するステップと、その点数とジョブネットを割り当てる複数の業務サーバのサーバリソースの利用率から、最適な業務サーバに処理を割り振るステップを備えたことを特徴とするジョブネットのスケジュール変更方法。
【請求項２】
ジョブスケジューラが実行するジョブネットの過去の履歴から次回の処理時間を予測するステップと、予測した処理時間から実行するジョブネットが処理終了するための処理開始時間の限界になると、点数と前記各業務サーバのサーバリソースの利用率から、少なくとも処理可能な業務サーバで並列に処理させるステップを備えたことを特徴とする請求項１に記載のジョブネットのスケジュール変更方法。
【請求項３】
ジョブスケジューラが実行中のジョブネットの処理終了期限と現在時刻を比較し、処理終了期限が現在時刻を過ぎた場合、実行中のジョブネットを強制停止するステップと、強制停止後に後続ジョブネットを実行するステップを備えたことを特徴とする請求項２に記載のジョブネットのスケジュール変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスケジューラを用いて定期的にジョブを自動で実行するシステムに係り、特にジョブネット実行スケジュールを自動で変更するための方法に関するものである。
【背景技術】
【０００２】
今日、コンピュータを用いた情報処理機器は、定期的に大量のジョブが処理されている。この処理を管理するオペレータの作業負荷を低減するための技術として、ジョブネットによる自動実行プログラムが知られている。ジョブネットとはジョブの実行開始時刻、処理実行順序を記載したジョブネット構成ファイルを用意し、ジョブスケジューラがジョブネット構成ファイルに従いジョブを自動実行する技術であり、本発明に関連する公知技術文献としては下記特許文献１があげられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１６６９２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
情報処理機器は日々のオンライン処理が最優先事項であり、原則として、ジョブネットによるバッチ処理はオンライン処理に影響を与えてはならない。
しかし、各ジョブネットに必要な処理時間は、該当のジョブネットが処理する業務データ量や情報処理機器のリソース（ＣＰＵ・メモリ・ディスク等）の状況によって毎回左右され、最悪、定められた処理時間内にジョブネットが終了しない場合がある。
このような事にならないように、オペレータはオンライン処理に影響を与えないように、限られた時間内で最大限にジョブネットを実行するようにスケジュールを適時変更する必要がある。
【０００５】
本発明の目的は、上記の制約の中でオンライン処理に影響を及ぼすことなく、オンライン処理が始まる時刻までの間に確実にジョブネットを実行し、終了させるようにオペレータが介在することなくジョブスケジュールを変更することができる方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のジョブネットのスケジュール変更方法は、ジョブスケジューラが実行するジョブネットの過去の履歴から実行頻度と処理時間の予測と実績の乖離を点数化し、その点数とジョブネットを割り当てる複数の業務サーバのサーバリソースの利用率から、最適な業務サーバに処理を割り振るステップを設けたことを特徴とする。
また、ジョブスケジューラが実行するジョブネットの過去の履歴から次回の処理時間を予測し、予測した処理時間から実行するジョブネットが処理終了するための処理開始時間の限界になると、点数と各業務サーバのサーバリソースの利用率から、少なくとも処理可能な業務サーバで並列に処理させるステップを設けたことを特徴とする。
また、ジョブスケジューラが実行中のジョブネットの処理終了期限と現在時刻を比較し、処理終了期限が現在時刻を過ぎた場合、実行中のジョブネットを強制停止するステップと、強制停止後に後続ジョブネットを実行するステップを設けたことを特徴とする。
【発明の効果】
【０００７】
本発明のジョブネットのスケジュール変更方法によれば、次のような効果がある。
オペレータが管理しなくても、オンライン処理に影響を与えないように、限られた時間内で最大限にジョブネットを実行できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例を示すシステム構成図である。
【図２】本発明の一実施例を示すジョブネットの説明図である。
【図３】本発明の一実施例を示すジョブネット構成ファイルの一例を示すデータ構成図である。
【図４】ジョブスケジューラがジョブネットを処理する概要を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明の一実施形態を示すシステム構成図である。
本発明の実施の形態のシステム構成は、運用管理サーバ１００とジョブネットを割り当てる複数の業務サーバ１０１及びこれらを接続するネットワーク１０２によって構成される。
【００１０】
運用管理サーバ１００はＣＰＵ１１０、メモリ１１１、ディスク１１２及びネットワークインターフェイス（ＮＩＣ）１１３からなるコンピュータであり、ジョブスケジューラ１１４はＣＰＵ１１０を用い、ジョブネット構成ファイル１１５に記されたジョブの実行予定をスケジュールする。
【００１１】
ジョブスケジューラ１１４はジョブの実行予定時刻等の実行タイミングになり次第、ネットワークインターフェイス（ＮＩＣ）１１３・ネットワーク１０２を通して業務サーバ１０１にジョブ実行命令を発信する。
【００１２】
業務サーバ１０１はＣＰＵ１２０、メモリ１２１、ディスク１２２及びネットワークインターフェイス（ＮＩＣ）１２３からなるコンピュータであり、ジョブ実行エージェント１２４はＣＰＵ１２０を用い、ネットワークインターフェイス（ＮＩＣ）１２３を通して運用管理サーバ１００からのジョブ実行命令を受信次第、業務プログラム１２５を実行し業務データ１２６の処理を行う。
【００１３】
ジョブ実行エージェント１２４は業務プログラム１２５の終了を検知次第、ネットワークインターフェイス（ＮＩＣ）１２３・ネットワーク１０２を通して運用管理サーバ１００にジョブ実行終了を発信する。
【００１４】
運用管理サーバ１００のジョブスケジューラ１１４は、業務サーバ１０１からのジョブ実行終了を受信次第、ジョブネット構成ファイル１１５に従い、後続のジョブの処理を行う。
【００１５】
図２は、本発明の一実施形態を示すジョブネットの説明図である。
ジョブネット構成ファイル１１５に記されたジョブネット２００は、ジョブネット２００の処理時間内であれば、ジョブＡ２１０、ジョブＢ２１１、ジョブＣ２１２、ジョブＤ２１３と続けて実行する。
【００１６】
図３は、本発明の一実施形態を示すジョブネット構成ファイル１１５を示すデータ構成図である。
このデータ構成図に示すように、ジョブネット構成ファイル１１５には、実行日時３００、実行ジョブネット名３０１、ジョブネットＩＤ３０２、後続のジョブネットＩＤ３０３、処理終了期限３０４、実績処理時間３０５、次回予想処理時間３０６、並列実行開始時刻３０７、サーバ優先度３０８から成るジョブネットが定義されており、実行日時毎に実行ジョブネット名、ジョブネットＩＤ、後続のジョブネットＩＤ、処理終了期限、実績処理時間、次回予想処理時間、並列実行開始時刻、サーバ優先度が設定される。
【００１７】
各項目の内容は次の通りである。
実行日時３００はジョブネットの実行開始時刻を設定し、実行ジョブネット名３０１は実行するジョブネットを設定し、ジョブネットＩＤ３０２は該当ジョブネットを表すユニークなＩＤを設定し、後続のジョブネットＩＤ３０３は該当のジョブネットが終了した後に実行される後続ジョブネットのジョブネットＩＤを設定し、処理終了期限３０４は該当ジョブネットの処理時間の期限を設定し、実績処理時間３０５は該当ジョブネットの処理終了後に処理開始から処理終了の処理時間を設定し、次回予想処理時間３０６は該当ジョブネットの処理終了後に今回と過去の処理時間の実績から次回の処理時間を予測して設定し、並列実行開始時刻３０７は処理終了期限３０４から次回予想処理時間３０６に安全率を加味した時間を減算した時刻を設定し、サーバ優先度３０８は該当ジョブネットの実行頻度と処理時間の実績と予想の乖離を算出し、要求するサーバリソースの値を設定する。この値は１〜４の範囲が設定され、この値が高い程、高いサーバリソースを必要な処理を表す。
【００１８】
図４は、ジョブスケジューラが、ジョブネットを処理する概要を示すフローチャートである。
ジョブスケジューラ１１４はジョブネット構成ファイル１１５の記述に従い、各実行日時３００になり次第、各実行ジョブネット名３０１を構成する各ジョブを実行する為の準備を開始する（ステップ４０１）。
【００１９】
次に該当ジョブネットの今回の処理終了期限３０４から前回の処理終了時に算出した次回予想処理時間３０６に安全率を加味した処理時間を引いた時間を算出し、並列実行開始時刻３０７を設定する（ステップ４０２）。
次にジョブネット構成ファイル１１５から実行するジョブネットの実行履歴を取得し、実行頻度と処理時間の実績と予想の乖離を算出し、要求するサーバリソースの点数を決定する。
点数は０から開始し、実行頻度が週次であれば“１”加算し、日次であれば“２”加算する。また、実行時間の実績と予想の乖離が２割〜４割であれば１加算し、４割以上であれば“２”加算し、点数の合計をサーバ優先度３０８として設定する（ステップ４０３）。
【００２０】
次に処理終了期限３０４と現在時刻を比較する（ステップ４０４）。
処理終了期限３０４が現在時刻を過ぎている場合は該当ジョブネットの実行をスキップし、ステップ４１５に進む。
処理終了期限３０４が現在時刻を過ぎていない場合は、各業務サーバ１０１のサーバリソースの使用率を取得し、各使用率を閾値で分け、低率から高率へ状態Ａ・状態Ｂ・状態Ｃ・状態Ｄと分別する（ステップ４０５）。
【００２１】
サーバ優先度３０８とサーバリソースの使用率の組み合わせから、ジョブネットを実行する業務サーバ１０１を決定する。この組み合わせによりジョブネットを実行していないサーバに割り振る場合（ステップ４０６）と、他のジョブネットと並列実行を行うように割り振る場合（ステップ４０７）がある。
【００２２】
割り振る条件は以下の通りである。サーバ優先度３０８が“４”の場合はジョブネットを実行していない業務サーバ１０１に割り振る。
サーバ優先度３０８が“３”の場合はサーバリソースが状態Ａの業務サーバ１０１に割り振る。存在しない場合はジョブネットを実行していない業務サーバ１０１に割り振る。
サーバ優先度３０８が“２”の場合はサーバリソースが状態Ｂの業務サーバ１０１に割り振る。存在しない場合はサーバリソースが状態Ａ、さらに存在しない場合はジョブネットを実行していない業務サーバ１０１に割り振る。
サーバ優先使用点３０８が“０”もしくは“１”の場合はサーバリソースが状態Ｃの業務サーバ１０１に割り振る。存在しない場合はサーバリソースが状態Ｂ、さらに存在しない場合はサーバリソースが状態Ａ、さらに存在しない場合はジョブネットを実行していない業務サーバ１０１を割り振る。
割り振る該当サーバが存在しない場合は並列実行開始時刻３０７と現在時刻を比較する（ステップ４０８）。
【００２３】
並列実行開始時刻３０７が現在時刻を過ぎていない場合、ステップ４０４から再度判定する。並列実行開始時刻３０７が現在時刻を過ぎている場合、再度サーバ優先度３０８とステップ４０５で取得したサーバリソースの使用率から、ジョブネットを実行する業務サーバ１０１をステップ４０７より低い条件で決定する（ステップ４０９）。
【００２４】
割り振る条件は以下の通り。サーバ優先度３０８が“４”の場合はサーバリソースが状態Ａの業務サーバ１０１に割り振る。存在しない場合はサーバリソースが状態Ｂ、さらに存在しない場合はサーバリソースが状態Ｃの業務サーバ１０１を探し割り振る。
サーバ優先使用点３０８が“３”の場合はサーバリソースが状態Ｂの業務サーバ１０１に割り振る。存在しない場合はサーバリソースが状態Ｃの業務サーバ１０１を探し割り振る。
サーバ優先使用点３０８が“２”の場合はサーバリソースが状態Ｃの業務サーバ１０１に割り振る。また、割り振る該当サーバが存在しない場合は、ステップ４０４から再度判定する。ジョブネットを実行するサーバが割り振られたら、該当サーバでジョブネットを実行する（ステップ４１０）。ステップ４１０でジョブネットを実行した場合、ジョブスケジューラ１１４はジョブ実行エージェントからのジョブネット終了連絡の有無を判定する（ステップ４１１）。
ジョブネット終了連絡がない場合、処理終了期限３０４と現在時刻を比較する（ステップ４１２）。処理終了期限３０４が現在時刻を過ぎていない場合、ステップ４１１から再度判定する。
【００２５】
処理終了期限３０４が現在時刻を過ぎている場合、実行中のジョブネットを強制停止する（ステップ４１３）。ステップ４１１でジョブネット終了連絡がある場合、またはステップ４１３でジョブネットを強制停止した場合、該当ジョブネットの処理開始から処理終了までの時間を実績処理時間３０５として設定する（ステップ４１４）。その後、ジョブネット構成ファイル１１５から該当ジョブネットの今回と過去の実績処理時間３０５を取得し、実行回と実績処理時間との関係を最小二乗法で関数として算出する。最小二乗法とは測定で得られた数値の組を適当な関数を用いて近似し、関数が測定値に対して一番よい近似となるような関数のパラメータを求める方法である。算出した関数により次回の処理時間を予測して次回予想処理時間３０６を設定する（ステップ４１５）。
【００２６】
例えば、該当ジョブネットの実行履歴について１回目の処理時間が１０分、２回目の処理時間が１４分、３回目の処理時間が１２分の場合、１〜３回目の処理時間との差が最小となる近似関数は「処理時間＝回数＋１０」となるので、４回目の予想処理時間は１４分となる。
【００２７】
以上のように次回の処理時間を予測後に、後続ジョブネットの実行を開始する。
図４のジョブネット実行処理により、ジョブネットを処理する業務サーバ１０１を自動で分散することで、サーバリソースを効率的に使用して処理時間内にジョブネットを終了させる確率を高める。それでも処理時間の期限を越えた場合、自動で実行中のジョブネットや未実行のジョブネットをキャンセルし、後続ジョブネットの処理が行われる。
以上により処理時間内にジョブネットが終了しなくても、停止することなく最後まで自動で処理が行われることを可能とする。
【符号の説明】
【００２８】
１００  運用管理サーバ
１０１  業務サーバ
１０２  ネットワーク
１１０、１２０  ＣＰＵ
１１１、１２１  メモリ
１１２、１２２  ディスク
１１３、１２３  ネットワークインターフェイス（ＮＩＣ）
１１４  ジョブスケジューラ
１１５  ジョブネット構成ファイル
１２４  ジョブ実行エージェント
１２５  業務プログラム
１２６  業務データ
【図１】
2014194717.tif 000003
【図２】
2014194717.tif 000004
【図３】
2014194717.tif 000005
【図４】
2014194717.tif 000006