JP2012256307A - 作業スケジューリングプログラム,方法,およびシステム - Google Patents

作業スケジューリングプログラム,方法,およびシステム Download PDF

Info

Publication number
JP2012256307A
JP2012256307A JP2011284927A JP2011284927A JP2012256307A JP 2012256307 A JP2012256307 A JP 2012256307A JP 2011284927 A JP2011284927 A JP 2011284927A JP 2011284927 A JP2011284927 A JP 2011284927A JP 2012256307 A JP2012256307 A JP 2012256307A
Authority
JP
Japan
Prior art keywords
work
normal
batch
time
abnormal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011284927A
Other languages
English (en)
Inventor
Hideki Yamanaka
英樹 山中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011284927A priority Critical patent/JP2012256307A/ja
Publication of JP2012256307A publication Critical patent/JP2012256307A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 作業スケジューリングシステムで,異常終了の場合のスケジュールを低計算コストで動的に変更できるようにする。
【解決手段】 作業スケジューリングシステム1は,データ処理の各システムの作業スケジュールを生成する静的スケジューリング部11と,オペレータ端末4の作業の終了通知を収集するオペレータモニタ部13と,収集した終了通知が異常終了である場合に,作業スケジュールをもとに,終了通知を収集した作業に後続する異常系作業を選択し,その作業スケジュールにもとづいて現時刻で未実行の正常系作業ごとに,正常系作業の開始を遅延させた場合にその正常系作業に後続する作業の実行を遅延させる可能性を示す開始遅延リスクの有無を評価し,そのリスクがないと評価した正常系作業に対応するオペレータ端末を選択し,選択したオペレータ端末に前記選択した異常系作業を通知するシステムスケジューリング部12とを備える。
【選択図】 図1

Description

本発明は,データ処理システムによるバッチ作業とオペレータによる作業を含む作業スケジューリング技術に関する。
データセンタは,データ処理システムを設置・運用してデータ処理に特化した施設である。データセンタに設定されるデータ処理システムは,予め定められたスケジュールにもとづいて,それぞれ無関係な複数の会社のデータ処理システムのバッチ作業を実行する。また,データ処理システムの運用は,データセンタに配属されるオペレータによって監視される。データ処理システムの各バッチ処理の開始時/完了時またはその処理中に,バッチ作業に合わせて予め指示された作業内容にもとづいて,オペレータが,処理完了の確認や連絡,作業データの設定等の作業を行う。データセンタでは,データ処理システムのバッチ作業とオペレータ作業とが連係して運用されるため,データ処理システムが実行するバッチ作業のスケジューリングとともに,これに合わせて,バッチ作業のデータの設定,確認,連絡等のオペレータによる作業がスケジューリングされて実行されている。
データセンタに配属される複数のオペレータは,データ処理システムごとの作業スケジュールにより,複数のデータ処理システムの作業が割り当てられる。データ処理システムのバッチ作業のスケジュールに影響を与えることなく,オペレータの作業スケジュールを見直して,各オペレータの稼働率を最適化し,もってデータセンタ全体の生産性や作業品質の向上を図ることが求められている。
具体的には,オペレータの作業は予めスケジューリングされるが,バッチ作業や関連作業の終了待ちや作業の連絡待ち等の待機時間をできる限り短くするようなスケジューリングが望まれる。また,オペレータは複数のデータ処理システムのスケジューリングによって作業が割り当てられるため,複雑な作業終了待ちが生じないように作業スケジュールを効率化したり,オペレータの作業負荷を適切にオペレータ間で均等化したり勤務時間内で平準化したりできるようなスケジューリングが望まれる。
従来,作業の内容,処理時間,実行の制約条件,作業の依存関係等の情報をもとに,静的スケジューリング手法を用いて,作業スケジューリングを行うことが知られている。
また,従来,データセンタで作業者と機器とのスケジュールを最適に連動させるため,各作業者の作業時間と機器の占有時間とをもとに,作業可能な作業者数を計算して,作業者数及び重複する作業数に従って機器の利用を割り当て,各作業者の作業状態を監視して,作業者が作業スケジュールから外れた場合に未実行の全作業を再スケジューリングするシステムが知られている。
また,静的スケジューリング手法のほかに動的スケジューリング手法が知られている。ラグランジェ(Lagrange)分解・調整法は,動的スケジューリング手法の1つであり,静的スケジュールを初期値に,周辺方向に,評価関数を変動に対して最適にする解を逐次探索して動的にスケジューリングする手法である。
特開2006−285784号公報
静的スケジューリング手法により決定される作業スケジュールでは,作業が正常に終了することを前提に,正常系作業をスケジューリングしている。そのため,作業が異常終了したり,終了が期限を越えたりするような場合には,異常系の作業に切り替える必要があり,異常状況の収束後に速やかに通常の作業スケジュールに戻す必要がある。
しかし,スケジューリングされる正常系作業についても,作業を開始するための条件,例えばその作業の開始前に終了すべき他の作業(バッチ作業やオペレータの作業)の実際の実行時間等にばらつきがある。そのため,予め実行時間を見積もって作業の実行順序を設定するという静的スケジューリングでは,異常系作業のスケジューリングに対応することができず,異常系の作業の開始以降の作業についての動的スケジューリングが必要となる。
しかし,既知の動的スケジューリング手法は,作業全体を再スケジューリングしなければならず,最適な作業スケジュールを得るためには計算時間が膨大なものになり,計算時間がかかり過ぎて現実的ではないという問題があった。また,動的スケジューリングの計算時間を制限して実際の作業進行に間に合わせようとすると,最適な作業スケジュールが得られない可能性があった。
さらに,異常系作業の実行後に通常系作業の作業スケジュール(静的スケジューリングによる作業スケジュール)に戻したいと考えても,動的スケジューリング手法による作業スケジュールからどのように通常の作業スケジュールに戻すかを自動的に行うことができないという問題があった。
本発明の目的は,バッチ作業やオペレータの作業を含む作業スケジュールにおいて,異常終了による異常系作業が必要となった場合に,異常系作業となった部分のスケジューリングを変更し,異常系作業の終了後に所定の作業スケジュールに自動的に戻ることができる作業スケジューリング技術を提供することである。
本発明の一態様として開示される作業スケジューリングプログラムは,作業スケジュールを管理するために,コンピュータに,1)データ処理用システムごとに,該システムが実行するバッチ作業,オペレータが正常時に実行する正常系作業,および,オペレータが異常時に実行する異常系作業を含む複数の作業について,各作業の実行条件ならびに前記複数の作業のうち当該作業の前または後に実行する作業,および,前記正常系作業ごとに,複数のオペレータ端末のうち当該正常系作業に割り当てるオペレータ端末が対応付けられた,前記データ処理用システムごとの実行スケジュールを示す作業スケジュールが記憶された記憶部を参照して,前記データ処理用システムごとに,前記作業スケジュールをもとにスケジューリングされた正常系作業を選択して,当該作業に対応するオペレータ端末に当該作業を通知する第1の通知処理と,2)前記オペレータ端末から,該オペレータ端末に通知した作業の終了通知を収集する処理と,3)前記オペレータ端末から収集された前記作業の終了通知が異常終了であるか否かを判定する処理と,4)前記作業の終了通知が異常終了であると判定した場合に,前記記憶部を参照して,前記作業スケジュールをもとに,前記終了通知を収集した作業に後続する異常系作業を選択し,前記データ処理用システムごとに前記作業スケジュールにもとづいて現時刻で未実行の正常系作業ごとに,当該正常系作業の開始を遅延させた場合に当該正常系作業に後続する作業の実行を遅延させる可能性を示す開始遅延リスクの有無を評価し,該リスクがないと評価した正常系作業に対応するオペレータ端末を選択して,該選択したオペレータ端末に前記選択した異常系作業を通知する第2の通知処理とを,実行させるためのものである。
上記した作業スケジューリングプログラムによれば,コンピュータは,静的スケジューリングにより設定した作業スケジュールを前提に,異常系作業を他の作業に影響を与えないオペレータで対処して,自動的に元の作業スケジュールに戻ることができる。よって,計算時間が少なく,現実的かつ効率的な作業スケジューリングを実現することができる。
開示する作業スケジューリングシステムの一実施例における構成例を示す図である。 静的スケジューリング部が生成する情報例を示す図である。 依存性グラフの例を示す図である。 作業のリスク評価の例を示す図である。 作業スケジューリングシステムの全体の処理フローを示す図である。 スケジューリング調整部の処理(ステップS7の調整処理)の処理フローを示す図である。 システムスケジューリング部の処理フローを示す図である。 システムスケジューリング部のオペレータ割り当て処理フローを示す図である。 リスク評価部のリスク評価処理フローを示す図である。 リスク評価部のリスク評価リストの生成処理フローを示す図である。 第2の実施例における,ジョブ管理システムの構成例を示す図である。 バッチ構成データ構成例を示す図である。 進捗データの受信例を示す図である。 進捗データの例を示す図である。 バッチ作業の各フェーズでの予測終了時刻および正常終了確率を説明するための図である。 リカバリジョブの処理時間TRiの計算例を示す図である。 予測通知の例を示す図である。 進捗管理部の処理フロー例を示す図である。 第2の実施例における作業スケジューリングシステムのシステムスケジューリング部での処理フローを示す図である。 スケジュール変更処理のより詳細な処理フローを示す図である。 スケジュール変更処理による依存性グラフの変更例を示す図である。 第2の実施例における作業スケジューリングシステムのリスク評価部の処理フローを示す図である。 リスク評価処理のより詳細な処理フローを示す図である。 作業スケジューリングシステム1のハードウェア構成例を示す図である。
以下,本発明の一態様として開示する作業スケジューリングシステムについて説明する。本例において,開示する作業スケジューリングシステムは,本実施の形態において,データセンタに設置されるものとして説明する。
本実施の形態として説明するデータセンタでは,設定されるデータ処理用システムが,相互に独立するシステムのバッチ作業を予め設定されたスケジュールに従って実行する。また,データセンタに配属される複数のオペレータが,バッチ作業に合わせて設定かつスケジューリングされた作業指示にもとづいて,バッチ作業完了の確認や連絡,作業データの設定等の作業を行う。
まず,本発明者が考察したデータセンタの作業スケジューリングについての考察を説明する。
データセンタで実行される作業は,作業が正常に終了し続けている場合に実行される作業(正常系作業)と,作業が正常に終了しなかった場合に実行される作業(異常系作業)の2系統に大まかに分離される。さらに,オペレータが実行する作業には以下のような特徴がある。
(1) 作業内容として,データ処理システムのジョブ実行の監視に関する作業が多い。そして,作業時間は短く変動があまりないが,作業の締め切り(必ず終了させなければならない時刻)までの時間が比較的長い。そのため,正常系作業に割り当てられているオペレータは,比較的低リスクで他の作業のために融通させることができる。
(2) 異常系作業は,予め想定されており,正常系作業の流れのどの段階に復帰すればよいかがほとんど定まっている。また,異常系作業の作業時間は正常系作業に比べれば長いが,あまり変動しないことから,異常系作業から正常系作業への復帰時刻の予想確度が高い。
(3) 作業スケジュールに組み込まれるバッチ作業は,開始条件(開始時刻や締め切り)が変更しにくいため,異常系作業への変更に伴って大きくスケジューリングを変更することが困難である。
したがって,開示する作業スケジューリングシステムをデータセンタにおけるバッチ作業とオペレータの作業とのスケジューリングに適用することは好適な例であり,コストを削減してデータセンタ全体の生産性を向上させ,オペレータの負担を軽減して作業品質やリスク管理を向上させるという効果を奏する。
〔第1の実施例〕
図1は,開示する作業スケジューリングシステムの一実施例である,第1の実施例における構成例を示す図である。
作業スケジューリングシステム1は,データセンタに備えられ,データ処理用システムごとに作業をスケジューリングし,スケジューリングした各作業を複数オペレータがそれぞれ操作するオペレータ端末4(4a,4b,4c,…)に割り当てる。
作業スケジューリングシステム1は,静的スケジューリング部11,システムスケジューリング部12,オペレータモニタ部13,バッチモニタ部14,スケジューリング調整部15を備える。
静的スケジューリング部11は,データ処理用システムで実行される作業の内容,作業で使用される指示(コマンド)等が指定された作業指示書,データ処理用システムで実行されるバッチ作業の内容や実行の制約条件(開始時刻,終了期限等)を設定したバッチ設定情報と,バッチ作業や作業の平均実行時間を記録した作業統計情報とを取得して,既知の静的スケジューリング手法を用いて,データ処理用システムごとの作業スケジュールを生成する。
図2は,静的スケジューリング部11が生成する情報例を示す図である。
図2(A)は,作業表の例を示す図である。
静的スケジューリング部11は,データ処理用システムごとに,作業指示書と作業統計情報とをデータ変換して作業表を生成する。作業指示書には,オペレータに割り当てられる作業ごとに,作業を識別する作業ID,作業の開始時刻,作業終了の期限を示す締め切り時刻,処理するバッチ作業および作業の内容,作業で使用されるコマンド等が指定されている。作業統計情報には,データ処理用システムのバッチ作業やオペレータの作業の実行時間などの統計情報が記録されている。
作業表は,作業ごとに,作業を識別する「作業ID」,作業が開始可能な時刻を示す「開始時刻」,作業の開始から終了までの平均的な作業時間を示す「平均作業時間(分)」,作業がそれまでに終了しなければならない時刻を示す「締め切り」,実行される作業の内容を示す「作業内容」のデータ項目を含む。
図2(B)は,バッチ表の例を示す図である。
静的スケジューリング部11は,データ処理用システムごとに,バッチ設定情報と作業統計情報とをデータ変換してバッチ表を生成する。
バッチ表は,バッチ作業ごとに,処理を識別する「作業ID」,処理の開始時刻を示す「開始時刻」,処理の開始から終了までの平均的な実行時間を示す「平均実行時間(分)」,処理がそれまでに終了しなければならない時刻を示す「締め切り」,実行される処理を示す「バッチ内容」のデータ項目を含む。
図2(C)は,作業依存表の例を示す図である。
静的スケジューリング部11は,データ処理用システムごとに,作業指示書とバッチ設定情報とをデータ変換して作業依存表を生成する。
作業依存表は,作業ごとに,「作業ID」,その作業に先行して実行される作業を示す「先行作業ID」,作業の系を示す「正常系/異常系」のデータ項目を含む。
「正常系/異常系」には,その作業が,正常時に実行される作業であることを示す“正常系”,異常処理として実行される作業であることを示す“異常系”のいずれかが設定される。
例えば,作業ID=8の作業は,正常系作業であって,作業ID=2または7の作業が先行して実行される関係にあることを示す。
図2(D)は,作業スケジュール表の例を示す図である。
静的スケジューリング部11は,作業表,バッチ表,作業依存表をもとに,作業スケジュール表を生成する。
作業スケジュール表は,作業ごとに,「作業ID」,「先行作業ID」,「正常系/異常系」,「スケジュール時刻」,「平均作業時間」,「締め切り」,「作業内容」,「オペレータID」を含む。「スケジュール時刻」は,スケジューリングされた開始時刻を示す。「オペレータID」は,その作業が割り当てられたオペレータ端末4を識別する情報である。
システムスケジューリング部12(12a,12b,…)は,データ処理用システムに対応付けて備えられる。
システムスケジューリング部12(12a,12b,…)は,対応するデータ処理用システムの作業スケジュールをもとに,スケジューリングした作業の実行命令を実行可能な時間に,指定したオペレータ端末4に通知して,作業の実行を制御する。
システムスケジューリング部12(12a,12b,…)は,制御部120(120a,120b,…),依存性グラフ部121(121a,121b,…),スケジューリングモード部122(122a,122b,…),リスク評価部123(123a,123b,…),作業キュー124(124a,124b,…)を備える。
依存性グラフ部121は,作業スケジュールから,各作業の依存性を示すグラフを生成する。
図3は,依存性グラフの例を示す図である。
図3に示す依存性グラフにおいて,数字がつけられた円形で表すノードは,バッチ作業を示し,数字がつけられた矩形で表すノードは,オペレータが実行する作業(正常系作業または異常系作業)を表している。各ノードをつなぐ矢印は,作業間の依存関係を示す。
図3では,作業ID=7のバッチ作業が6:00に開始し,処理結果が正常であれば,作業ID=1の作業(正常系作業)を実行し,処理結果が異常であれば作業ID=2の作業(異常系作業)を実行して作業ID=1の作業(正常系作業)へ戻り,次の作業ID=8のバッチ作業が実行されることと,作業ID=9のバッチ作業が実行され,その処理後(正常終了,異常終了のいずれでも)に作業ID=3の作業(正常系作業)が実行されることが示されている。
依存性グラフ部121は,さらに,生成した依存性グラフ上の作業から,その時点で依存するノードを持たないルートの作業にアクティブのマークを付け,マークを付けた作業の中でその時点で実行可能となったもののIDを作業キュー124に格納する。また,依存性グラフ部121は,オペレータモニタ部13やバッチモニタ部14からの作業終了の通知に同期して,生成した依存性グラフから実行が終了した作業のノード(と不要となった矢印)を削除し,作業スケジュールをもとに,新しい作業を依存性グラフに設定する。
スケジューリングモード部122は,オペレータ端末4のイベントの監視結果として,実行命令により実行された作業の終了結果を示す通知が異常終了であった場合,または,作業の締め切りまでに処理が終了しなかった場合に,異常モードを設定する。
リスク評価部123は,他のシステムスケジューリング部12からリスク評価依頼を受け取った場合に,その時点でスケジューリングされている未実行の正常系作業ごとに,開始遅延のリスクの有無を評価する。開始遅延のリスクは,その作業の実行開始を遅延させた場合に関連する他の作業の実行を遅延させる可能性をいい,遅延させる可能性が大きい場合をリスクがあると評価し,遅延させる可能性が小さい場合をリスクがないと評価する。
リスク評価部123は,実行されていないアクティブな作業,または,現時刻で実行中の作業が正常終了した後に実行される作業のそれぞれについて,リスクの有無を評価する。リスク評価部123は,自システムが異常モードを設定している場合は,リスク評価対象となる作業のすべてについて,リスクがあると評価する。
図4は,作業のリスク評価の例を示す図である。
依存性グラフに示される作業のうち,スケジューリングされて現時刻から一定の時間内に実行可能となるアクティブな作業(作業ID=1,3,9,15),現時刻で実行中の作業(作業ID=1,9,15)が正常終了した後に実行される作業(作業ID=12,2,16)がリスク評価の対象となる。
例えば,作業ID=3の作業のように,その後続の正常系作業の連なりにバッチ作業(作業ID=7)が存在する場合は,バッチ作業の前処理作業であるため,「リスクがある」と評価される。また,作業ID=12の作業のように,その作業がバッチ作業の後続の正常系作業の連なりに存在する場合には,バッチ作業の後処理作業であるため,「リスクがある」と評価される。
また,作業ID=2の作業のように,その作業の前後にバッチ作業が存在していない場合には,その作業はバッチ作業と無関係であるため,現時刻から開始時刻まで一定時間(例えば,異常系作業の平均作業時間)以上の時間があるときは,「リスクがない」と評価される。また,作業ID=16の作業のように,バッチ作業と無関係な作業であって,その開始時刻を遅らせることができ,かつ,遅らせた開始時刻まで一定時間以上の時間があるものは,「リスクがない」と評価される。
制御部120は,システムスケジューリング部12が内部に備える処理部間の情報,要求等の受け渡しを制御する。また,制御部120は,作業キュー124に格納された作業IDを順に取り出し,その作業の実行命令をスケジューリング調整部15へ通知する。
また,制御部120は,異常モードが設定された場合に,他のシステムスケジューリング部12から,各自の作業スケジュールの各作業に対するリスクの有無と,その作業に割り当てられているオペレータIDのリストを含むリスク評価通知を受け取り,リスクがないと評価された正常系作業に割り当てられているオペレータIDを選択する。
オペレータ端末4は,例えば,以下の順で選択される。
1.異常モードを設定しているシステムスケジューリング部12によるスケジューリングの作業で,正常復帰待機中のオペレータ端末4を選択する。
2.正常(異常モードを設定していない)なシステムスケジューリング部12によるスケジューリングの作業で,リスク評価が「リスクがない」,かつ,現時刻から正常系作業のスケジューリングされた開始時刻までの時間が異常系作業の平均作業時間より長い作業で待機中のオペレータ端末4を選択する。
3.正常(異常モードを設定していない)なシステムスケジューリング部12によるスケジューリングの作業で,リスク評価が「リスクがない」,かつ,現時刻から正常系作業の締め切りまでの時間からその作業の作業時間を差し引いた残り時間が異常系作業の平均作業時間より長い作業で待機中のオペレータ端末4を選択する。
そして,制御部120は,選択したオペレータIDを割り当てた異常系作業(異常終了した正常系作業に対応する作業)の実行命令をスケジューリング調整部15へ送る。
制御部120は,実行命令に係る異常系作業および後続の異常系作業の正常終了の作業終了通知を,対応する正常系作業の締め切り前に受け取った場合に,その時点で作業スケジューリングに復帰する。または,制御部120は,正常に終了した異常系作業に対応する正常系作業の終了の時点で作業スケジュールへ復帰するようにしてもよい。作業スケジュールの復帰と同期して,スケジューリングモード部122は,異常モードの設定を解除する。
オペレータモニタ部13(13a,13b,13c,…)は,オペレータ端末4(4a,4b,4c,…)に対応付けて備えられ,対応するオペレータ端末4で実行されるイベントの監視結果を収集する。オペレータ端末4から収集されるイベントは,例えば,オペレータ端末4での作業開始,作業終了(正常終了または異常終了)等である。
バッチモニタ部14は,データ処理用システムのジョブ実行を管理するジョブ実行管理システム3から,各データ処理用システムのイベントの監視結果を収集する。ジョブ実行管理システム3から収集されるイベントは,例えば,データ処理用システムで実行されるバッチ作業に関するバッチ開始通知,バッチ終了通知(正常または異常)等である。
スケジューリング調整部15は,各システムスケジューリング部12(12a,12b,…)から送られた作業の実行命令を調整し,オペレータモニタ部13,バッチモニタ部14が得たモニタ情報をシステムスケジューリング部12へ分配する。
スケジューリング調整部15は,各システムスケジューリング部12(12a,12b,…)から送られた作業の実行命令を受け付けて,受け付けた実行命令を開始時刻にもとづいて調整し,指定されたオペレータ端末4へ通知する。
スケジューリング調整部15は,調整部150,システムスケジューラインタフェース151,モニタインタフェース152,オペレータ割り当て部153を備える。
システムスケジューラインタフェース151は,各システムスケジューリング部12とのインタフェース処理を行う。システムスケジューラインタフェース151は,システムスケジューリング部12からスケジューリングされた作業の実行命令,リスク評価依頼等を受け付け,モニタ情報,リスク評価依頼に対するリスク評価通知等を送る。
モニタインタフェース152は,オペレータモニタ部13とバッチモニタ部14とのインタフェース処理を行い,オペレータモニタ部13から作業開始通知,作業終了通知(正常終了または異常終了)を,バッチモニタ部14からバッチ開始通知,バッチ終了通知(正常終了または異常終了)を受け付ける。
オペレータ割り当て部153は,調整部150の調整にもとづいて指定されたオペレータ端末4へ作業(作業内容)を通知する。
調整部150は,システムスケジューリング部12から受け付けた作業の実行命令を調整し,オペレータ割り当て部153へ作業通知を依頼する。
以下に,作業スケジューリングシステム1の処理の流れを説明する。
図5は,作業スケジューリングシステム1の全体の処理フローを示す図である。
作業スケジューリングシステム1の静的スケジューリング部11は,データ処理用システムごとに,作業統計情報を読み込み(ステップS1),作業指示書を読み込み(ステップS2),バッチ設定情報を読み込み(ステップS3),全体の作業スケジュールを仮組みする(ステップS4)。
システムスケジューリング部12は,作業スケジュールをもとに依存性グラフを生成し(ステップS5),先頭のバッチ作業と作業にアクティブのマークを付ける(ステップS6)。スケジューリング調整部15は,各システムスケジューリング部12から受け付けた実行命令の調整処理を行う(ステップS7)。そして,処理していない作業が残っているか調べ(ステップS8),作業が残っていれば(ステップS8のY),ステップS7の処理を繰り返し,作業が残っていなければ(ステップS8のN),処理を終了する。
図6は,スケジューリング調整部15の処理(ステップS7の調整処理)の処理フローを示す図である。
スケジューリング調整部15は,バッチモニタ部14からバッチ作業の状態(バッチ開始/バッチ終了)が通知されたら(ステップS10のY),そのバッチ作業が属するシステムの識別情報(システムID)を取得する(ステップS11)。バッチモニタ部14からバッチ作業の状態の通知ではなく(ステップS10のN),スケジューリング調整部15は,オペレータモニタ部13からオペレータの作業の状態(作業開始/作業終了)の通知であれば(ステップS12のY),その作業が属するシステムIDを取得する(ステップS13)。スケジューリング調整部15は,取得したシステムIDに対応するシステムスケジューリング部12が処理を実行し(ステップS14),処理を終了する。
図7は,システムスケジューリング部12での処理フローを示す図である。
システムスケジューリング部12では,図6に示す処理フローのステップS14の処理として,以下の処理を行う。
制御部120は,入力がバッチ作業の終了通知であれば(ステップS20のY),ステップS22の処理へ進み,バッチ作業の終了通知でなければ(ステップS20のN),オペレータの作業の終了通知であるかを調べる(ステップS21)。オペレータの作業の終了通知であれば(ステップS21のY),ステップS22の処理へ進み,作業の終了通知でなければ(ステップS21のN),ステップS210の処理へ進む。
制御部120は,ステップS22の処理で,依存性グラフから該当するバッチ作業または作業を削除し(ステップS22),該当する終了通知が異常終了であれば(ステップS23のY),依存性グラフでその作業の異常系の後続の作業にアクティブをマークする(ステップS24)。終了通知が異常終了でなければ(ステップS23のN),制御部120は,依存性グラフでその作業の正常系の後続の作業にアクティブをマークする(ステップS25)。
制御部120は,入力がオペレータの作業の終了通知でなければ(ステップS21のN),入力がバッチ作業の開始通知であるかを調べる(ステップS210)。バッチ作業の開始通知であれば(ステップS210のY),ステップS211の処理へ進み,バッチ作業の開始通知でなければ(ステップS210のN),ステップS220の処理へ進む。
依存性フラグ部121は,依存性フラグの該当するバッチ作業に実行中をマークする(ステップS211)。さらに,依存性フラグ部121は,オペレータの作業の開始通知であれば(ステップS220のY),依存性フラグの該当する作業に実行中をマークする(ステップS212)。
さらに,スケジューリングモード部122は,開始通知が異常系作業であれば(ステップS213のY),異常モードを設定して(ステップS214),ステップS26の処理へ進む。スケジューリングモード部122は,開始通知が異常系作業でなければ(ステップS213のN),さらに,作業が締め切りを超過しているかを調べる(ステップS215)。スケジューリングモード部122は,作業が締め切りを超過していれば(ステップS215のY),ステップS214の処理を行い,作業が締め切りを超過していなければ(ステップS215のN),異常モードを解除して(ステップS216),ステップS26の処理へ進む。
リスク評価部123は,オペレータの作業の開始通知でなければ(ステップS220のN),リスク評価の依頼であるかを調べ(ステップS221),リスク評価の依頼であれば(ステップS221のY),リスク評価を行い(ステップS222),ステップS26の処理へ進む。リスク評価の依頼でなければ(ステップS221のN),そのままステップS26の処理へ進む。
その後,制御部120は,依存性グラフから,実行可能となったアクティブの作業を作業キュー124にコピーし(ステップS26),オペレータ割り当て処理を行い(ステップS27),処理を終了する。
図8は,システムスケジューリング部12でのオペレータ割り当て処理フローを示す図である。
制御部120は,図7に示す処理フローのステップS27により,以下の処理を行う。
制御部120は,作業キュー124に作業があれば(ステップS30のY),予め指定されたオペレータ端末4が待機中であるか調べる(ステップS31)。指定されたオペレータ端末4が待機中であれば(ステップS31のY),制御部120は,静的スケジューリング部11の作業スケジュールで指定されているオペレータ端末4に作業を割り当てる(ステップS32)。
指定されたオペレータ端末4が待機中でなければ(ステップS31のN),制御部120は,スケジューリングモードで異常モードが設定されていなければ(ステップS33のN),スケジューリングモードに異常モードを設定する(ステップS34)。スケジューリングモードで異常モードが設定されていれば(ステップS33のY),制御部120は,作業スケジュールで割り当てられている予定で,現在待機中のオペレータ端末のリストを作成する(ステップS35)。
リスク評価部123は,作成したリストが空であれば(ステップS36のY),他のシステムスケジューリング部12にリスク評価を依頼する(ステップS37)。システムスケジューリング部12は,収集したリスク評価の結果から,リスクがないと評価された作業に割り当てられているオペレータ端末4で,かつ,リスクがあると評価された作業に割り当てられていないオペレータ端末4の中から1つを選択して作業に割り当て(ステップS38),処理を終了する。
システムスケジューリング部12は,作成したリストが空でなければ(ステップS36のN),リストされたオペレータ端末4で待機時間が一番長いものを作業に割り当て(ステップS39),処理を終了する。
このように,作業が割り当てられているオペレータであっても,その作業についてのリスク評価を行い,リスクがないと評価されれば,異常モードの作業に割り当てることが可能となる。したがって,従来の静的スケジューリングのように,予め実行時間を見積もって作業全体の実行順序を設定したり,ラグランジェ(Lagrange)分解・調整法のように,静的スケジュールを初期値に,周辺方向に,評価関数を変動に対して最適にする解を逐次探索して作業全体の動的なリスケジューリングを行うことなく,静的スケジューリングにより作成されたスケジュールは維持したまま,異常作業に伴うリスケジューリング範囲を局所に留め,この局所に閉じたスケジューリングを実現することが可能となる。
図9は,リスク評価部123のリスク評価処理フローを示す図である。
リスク評価部123は,リスク評価の依頼を受け付けて,以下の処理を行う。
リスク評価部123は,自システムに異常モードが設定されているかを調べて(ステップS40),異常モードが設定されていれば(ステップS40のY),作業キュー124内の実行可能な作業をすべてリスクがある作業としてリストに追加し,リスク評価として通知する(ステップS41)。異常モードが設定されていなければ(ステップS40のN),リスク評価部123は,リスク評価対象となる全作業に対し,遅延リスクの有無を判定して,リストを作成し(ステップS42),リスク評価として,作成したリストを通知する(ステップS43)。
図10は,リスク評価部123のリスク評価リストの生成処理フローを示す図である。
リスク評価部123は,図9の処理フローのステップS42の処理として,以下の処理を行う。
リスク評価部123は,依存性グラフ内で,アクティブであるが実行中でない作業,または実行中の作業の正常終了後に実行予定となる作業の中から,新しい作業を選択する(ステップS50)。リスク評価部123は,選択する新しい作業がなくなるまで(ステップS51のY),この作業の後続の正常系作業の連なりにバッチ作業があるかを探す(ステップS52)。そして,後続の正常系作業の連なりにバッチ作業がなければ(ステップS53のN),リスク評価部123は,さらに,この作業の前に実行中のバッチ作業があるかを探す(ステップS54)。前に実行中のバッチ作業がなければ(ステップS55のN),リスク評価部123は,その作業の開始までに対応する異常系作業の実行時間があるかを調べる(ステップS56)。その作業の開始までに異常系作業の実行時間がなければ(ステップS56のN),リスク評価部123は,その作業の開始時刻を遅らせ,遅らせた開始時刻までに異常系作業の実行時間があるかを調べる(ステップS57)。遅らせた開始時刻までに異常系作業の実行時間があれば(ステップS57のY),この作業をリスクなしの作業としてリスク評価のリストに追加して(ステップS58),ステップS50の処理へ戻る。
後続の正常系作業の連なりにバッチ作業があるか(ステップS53のY),または,前に実行中のバッチ作業があるか(ステップS55のY),または,遅らせた開始時刻までに異常系作業の実行時間がなければ(ステップS57のN),この作業をリスクありの作業としてリスク評価のリストに追加する(ステップS59)。
〔第2の実施例〕
次に,開示する作業スケジューリングシステムの別の一実施例である,第2の実施例について説明する。
第2の実施例において,作業スケジューリングシステム1は,ジョブ実行管理システム3から,データ処理用システムで実行される各バッチ作業の進捗情報を取得し,第1の実施例に比べてより高精度の予測を実行してオペレータの作業の動的スケジューリングを構築できるようにする。
第1の実施例では,作業スケジューリングシステム1は,ジョブ実行管理システム3からバッチ作業の開始/終了の通知を受けるだけであるため,ジョブ実行管理システム3側の構成改変が不要であるものの,データ処理用システムであるバッチ作業が実行されている間は,そのバッチ作業が正常終了するか異常終了するか分からない。
そのため,スケジューリングされた後続の作業のリスク評価が高いままで固定されてしまい,実際にはほとんど生じない異常終了に備えて,後続の作業に対するオペレータの確保が行われる。その結果,融通可能として検出されるオペレータ数が少なく,最適化の余地が少ない場合がある。
特に,バッチ作業中に通常のジョブが異常終了してリカバリ処理が実行されている場合には,バッチ作業が異常終了となり,さらに,リカバリ処理に要する時間が数十分〜数時間になることがある。したがって,このバッチ作業の後続の正常系作業に割り当てられているオペレータを解放したり,オペレータがリカバリ処理の間待機し続けることを避けたりできるが,作業スケジューリングシステム1は,バッチ作業の終了通知を受けるまで,バッチ作業が通常の実行中であるのかリカバリ中であるのかを知ることができない。
第2の実施例では,バッチ作業の実行を管理するジョブ実行管理システム3側で,各バッチ作業の進捗情報として,バッチ作業が正常終了する確率(正常終了確率)および予測する終了時刻(予測終了時刻)を算出し,作業スケジューリングシステム1に通知する。よって,作業スケジューリングシステム1は,ジョブ実行管理システム3から得た高精度の予測情報によりリスク評価の精度を向上させ,融通可能なオペレータをより多く抽出することができ,全体としてより最適な動的スケジュールを作成することができる。
第2の実施例において,作業スケジューリングシステム1の構成例は,第1の実施例における構成例とほぼ同じであるが,ジョブ実行管理システム3が,各バッチ作業の正常終了確率および予測終了時刻を算出する処理部を備える点が異なる。また,ジョブ実行管理システム3の構成の相違に伴い,作業スケジューリングシステム1のバッチモニタ部14,制御部120,リスク評価部123の処理動作が,第1の実施例における処理と若干異なる。
図11は,第2の実施例における,ジョブ管理システム3の構成例を示す図である。
ジョブ管理システム3は,進捗管理部31を備える。進捗管理部31は,データ処理用システムにおいてバッチ作業を実行中のジョブ5から進捗データを取得する。
進捗管理部31は,バッチ構成記憶部310,進捗データ受信部311,進捗データ記憶部312,時刻・確率計算部313,タイマ314,および予測通知部315を備える。
バッチ構成記憶部310は,バッチ作業を構成する各ジョブに関するバッチ構成データを記憶する。バッチ構成データは,各バッチ作業を構成する各ジョブの,異常発生確率,平均処理時間などを記録するデータである。
進捗データ受信部311は,例えばAPIを用いて,ジョブ5からそのジョブの進捗状況を示す進捗データを受信し,進捗データを受信時刻に対応付けて進捗データ記憶部312に蓄積する。
時刻・確率計算部313は,タイマ314により通知される所定の契機をトリガとして,進捗データ記憶部312に記憶されている進捗データをもとに,予測終了時刻および正常終了確率を計算する。
予測通知部315は,予測終了時刻および正常終了確率を示す予測通知をバッチモニタ部14へ通知する。
図12は,バッチ構成データ構成例を示す図である。
バッチ構成記憶部310が記憶するバッチ構成データは,バッチ作業のジョブごとに,「異常発生確率」および「平均処理時間」が記録される。異常発生確率は,そのジョブが異常終了する確率を示し,例えば,過去の実行回数と生じた異常回数にもとづいて算出された値,設計者によって設定された値などである。平均処理時間は,そのジョブの実行に要する時間を示し,例えば,過去の実行時の処理時間の平均値である。
次に,進捗管理部31の処理を,より詳細に説明する。
図13は,進捗データの受信例を示す図である。
あるバッチ作業が,開始から終了までに順に実行するジョブ5として,本来のジョブである「処理1」,「処理2」,…,「処理n」,および,各ジョブのリカバリのための「リカバリ処理1」,「リカバリ処理2」,…,「リカバリ処理n」で構成されているとする。この場合に,データ処理用システムは,バッチ作業を開始して「処理1」を実行し,「処理1」が正常終了した場合には次の「処理2」を実行し,「処理1」が異常終了した場合には「リカバリ処理1」を実行してエラーコードを出力する。
「処理1」から「処理n」までの処理が実行された場合には,バッチ作業は正常終了となり,リカバリジョブが実行された場合には,そのリカバリジョブの終了後にバッチ作業が終了し,異常終了となる。
バッチ作業で実行中のジョブ5は,進捗通知機能を備えて,APIを介して自ジョブの進捗データを進捗管理部31の進捗データ受信部311へ通知する。進捗データは,例えば,バッチ作業およびジョブ5の識別情報,自ジョブの状態(実行中,リカバリ中,正常終了,異常終了など),処理に必要な残り時間,進捗の度合い等を含む。
進捗データ受信部311は,受信した進捗データを受信時刻と対応付けて進捗データ記憶部312に記憶する。
図14は,進捗データ記憶部312に記憶される進捗データの例を示す図である。
進捗データは,バッチ作業を識別する「バッチID」,ジョブを識別する「処理ID」,受信日時を示す「タイムスタンプ」,ジョブの状態(実行中,正常終了,異常終了,リカバリ中など)を示す「状態」,進捗の度合い(パーセント)で示す「進捗」などのデータ項目を有する。ジョブの状態の「実行中」は本来のジョブの実行中を示し,「リカバリ中」はリカバリジョブの実行中を示す。
図14に示す進捗データの第1行目のデータは,バッチID=1のバッチ作業において,処理ID=1のジョブが,実行中かつジョブの90%が処理済みの状態であることを表している。また,第4番目のデータは,バッチID=2のバッチ作業において,処理ID=R−1のジョブが,実行中(リカバリ中)かつリカバリジョブの20%が処理済みの状態であることを表している。
時刻・確率計算部313は,タイマ314の所定時間ごとのタイム通知をトリガに,バッチ構成記憶部310のバッチ構成データおよび進捗データ記憶部312の進捗データをもとに,予測終了時刻および正常終了確率を計算する。
図15は,バッチ作業の各フェーズでの予測終了時刻および正常終了確率を説明するための図である。
あるバッチ作業において,通常のジョブ5が「データ入力」,「前処理A」,「前処理B」,…,「前処理データ受け取り」,「後処理A」,「後処理B」,…,「データ出力」の順で実行されるように構成され,また,各ジョブ5に対応する「リカバリ処理1」,…,「リカバリ処理n」が構成されているとする。通常のジョブ5の実行期間を,フェーズと呼び,1番目のジョブ5から,順に,フェーズ1,フェーズ2,フェーズ3,…,フェーズnとする。
図15に示すTi(1,…,k,…,n)は,i番目のジョブの平均処理時間である。Pi(1,…,k,…,n)は,i番目のジョブの異常発生確率である。ジョブの平均処理時間と異常発生確率は,当該ジョブの実績値から計算され,予め,バッチ構成データとして記録されている。
フェーズkにおいて,時刻・確率計算部313は,例えば以下のようにして,フェーズkでの予測終了時刻および正常終了確率を求める。
(1) フェーズkにおいて正常終了時,すなわち,ジョブ「前処理データ受取り」が実行中である場合に,正常終了確率は,そのフェーズ以降の(1−異常終了確率)の総乗により求める。予測終了時刻は,現時刻に未実行のジョブ処理時間の総和を加算して求める。
正常終了確率=Π i=k(1−Pi)
予測終了時刻=現時刻+Σ i=kTi
(2) フェーズkにおいて異常終了時,すなわち,リカバリジョブ「前処理データ受け取り」が実行中である場合に,正常終了確率を“0”とする。予測終了時刻は,現時刻とフェーズkのジョブ5に対するリカバリジョブの処理時間であるリカバリ時間TRkとをもとに求める。
終了時刻=現時刻+リカバリ時間TRk
ここで,リカバリ時間TRkは,設定値,または,リカバリジョブが対応付けられている通常のジョブの処理時間を用いて求めた値であってもよい。
図16は,リカバリジョブの処理時間TRiの計算例を示す図である。
あるバッチ作業において,ジョブ5の各ジョブが,フェーズ1で「バックアップ処理1」,フェーズ2で「データ入力」,フェーズ3で「バックアップ処理2」,フェーズ4で「後処理2」,フェーズ5で「後処理2」,…,フェーズn+3で「後処理n」,フェーズn+4で「データ出力」で構成されているとする。また,リカバリジョブとして,フェーズ1で「リカバリ処理1(何もしないで終了)」,フェーズ2で「リカバリ処理2(バックアップ処理1を巻き戻す処理)」,フェーズ3で「リカバリ処理2(バックアップ処理2を巻き戻す処理)」…で構成されているとする。
時刻・確率計算部313は,進捗データ記憶部312を参照して,各ジョブの終了時に,その処理時間を記録しておき,フェーズkでの予測値を計算する場合に,以下のようにして求める。
時刻・確率計算部313は,進捗データ記憶部312を参照し,フェーズkのジョブ5の「状態」が“リカバリ中”であれば,異常処理時と判断し,記録していた通常ジョブの処理時間を用いて計算する。
リカバリ時間TRk=(バックアップ処理1の処理時間+バックアップ処理2の処理時間)×(1+調整係数α),
もしくは,時刻・確率計算部313は,最初に「バックアップ処理を巻き戻す処理」リカバリジョブが実行される際に,巻き戻し処理の処理量と処理時間とを記録しておき,リカバリ時間TRkを以下のようにして計算する。
リカバリ時間TRk=Σ(巻き戻すテーブルiの処理時間),
ここで,テーブルiは,リカバリ対象のテーブル変数を表す。
時刻・確率計算部313は,リカバリ時間TRkの計算に用いるバックアップ処理の処理量と処理時間を,1回目のリカバリ処理の場合にのみ記録し,2回目以降のリカバリ処理の場合には,記録した値にデータ増加率を掛けた値を用いてリカバリ時間TRkを計算するようにしてもよい。または,時刻・確率計算部313は,バックアップ処理の実行の度に処理量と処理時間を記録して,リカバリ時間TRkの計算に用いるようにしてもよい。
なお,時刻・確率計算部313は,正常終了確率=0とする。また,時刻・確率計算部313は,フェーズkのジョブ5の「状態」が“実行中”であれば,正常処理時と判断して,
正常終了確率=Πn+4 i=k(1−Pi)
予測終了時刻=現時刻+Σn+4 i=kTi
とする。
予測通知部315は,時刻・確率計算部313で計算された正常終了確率と予測終了時刻を得て,これらを含む予測通知を生成し,作業スケジューリングシステム1のバッチモニタ部14に送信する。
図17は,予測通知の例を示す図である。
予測通知は,バッチ作業を識別する「バッチID」,算出された予測終了時刻を示す「予測終了時刻」が算出された正常終了確率を示す「正常終了確率」のデータ項目を有する。
図17(A)に示す予測通知は,バッチID=1のバッチ作業は,予測される終了時刻が,2011年10月10日の09:55:11であり,正常終了確率が98%であることを表す。この通知によって,このバッチ作業が,ほぼ正常終了する見込みであることが分かる。
また,図17(B)に示す予測通知は,バッチID=2のバッチ作業は,予測される終了時刻が,2011年10月10日の11:06:39であり,正常終了確率0%であることを表す。これにより,このバッチ作業が,実行中のリカバリジョブの終了後にバッチ作業が異常終了することが分かる。
したがって,作業スケジューリングシステム1は,上記のバッチ作業について,より高い精度で予測された終了時刻の情報を得ることができる。また,作業スケジューリングシステム1は,実際のバッチ終了通知を取得する前に,作業バッチID=1のバッチ作業については「バッチ終了通知(正常)」が通知される可能性が高いこと,作業バッチID=2のバッチ作業については「バッチ終了通知(異常)」が通知されることを判断する情報を得ることができる。よって,作業スケジューリングシステム1は,高精度の進捗情報にもとづいて,オペレータの作業スケジュールを動的に再構築することができる。
図18は,進捗管理部31の処理フロー例を示す図である。
進捗管理部31は,データ受信を待機し,進捗データ受信部311が,ジョブ5から進捗データを受信すると(ステップS60のY),進捗データ受信部311は,受信した進捗データを進捗データ記憶部312に書き込み(ステップS61)。ステップS60の処理へ戻る。進捗データの受信がなく(ステップS60のN),時刻・確率計算部313がタイマ314からタイムを受信すると(ステップS62のY),予測終了時刻と正常終了確率を計算する(ステップS63)。次に,予測通知部315は,計算された予測終了時刻と正常終了確率を含む予測通知を生成して,バッチモニタ部14へ送信して(ステップS64),ステップS60の処理へ戻る。
図19は,第2の実施例における作業スケジューリングシステム1のシステムスケジューリング部12での処理フローを示す図である。
図19に示す処理フローは,図7に示す処理フローに,2つの処理(S230,S231)が追加されているものである。したがって,上記2つの処理ステップ以外の処理については,説明を省略する。
ステップS230の処理は,ステップS20の処理に先立って行われる。ステップS230の処理において,制御部120は,入力がバッチ作業の予測通知であれば(ステップS230のY),ステップS231の処理へ進む。
ステップ231の処理において,依存性グラフ部121は,受信された予測通知に関連する作業の依存性グラフを変更する。
入力がバッチ作業の予測通知でなければ(ステップS230のN),ステップS20の処理へ進む。
図20は,スケジュール変更処理(ステップS231)のより詳細な処理フローを示す図である。
依存性グラフ部121は,依存性グラフ内に,予測通知がされたバッチ作業の実行中の作業に関連付けて正常終了確率を記録する(ステップS70)。予測通知の正常終了確率が0%であれば(ステップS71のY),依存性グラフ部121は,異常処理時と判断し,依存性グラフ内で,そのバッチ作業の後続の正常系作業を消去する(ステップS72)。
さらに,依存性グラフ部121は,依存性グラフ内で,そのバッチ作業の後続の異常系作業について,図2(D)に示す作業スケジュール表の該当する作業の開始時刻である「スケジュール時刻」を予測終了時刻に変更し(ステップS73),処理を終了する。
一方,予測通知の正常終了確率が0%でなければ(ステップS71のN),依存性グラフ部121は,依存性グラフ内で,そのバッチ作業の後続の正常系作業について,図2(D)に示す作業スケジュール表の該当する「スケジュール時刻」を予測終了時刻に変更し(ステップS74),処理を終了する。
図21は,スケジュール変更処理による依存性グラフの変更例を示す図である。
図21に示す依存性グラフにおいて,バッチ作業,オペレータ作業,依存関係は,図4と同様に表している。
依存性グラフ内で,作業ID=9,20,25のバッチ作業が,現在アクティブかつ実行中であるとする。
進捗管理部31から通知された予測通知により,作業ID=9のバッチ作業に対し正常終了確率60%が,作業ID=20のバッチ作業に対し正常終了確率90%が,作業ID=25のバッチ作業に対し正常終了確率0%が,それぞれ記録されているとする。
依存性グラフ部121は,正常終了確率0%が記録された作業ID=25のバッチ作業に対し,後続の正常系のオペレータ作業(作業ID=26)を削除し,作業スケジュール表の作業ID=26の「スケジュール時刻」を,正常終了確率=0%とともに通知されている予測終了時刻に変更する。
作業ID=25のバッチ終了通知が受信されまでは,スケジューリングモード部122による作業モードは,正常モードであるが,作業ID=26の作業自体は消去され,リスク評価の対象から除外される。作業ID=26の作業に割り当てられていたオペレータ端末4は割り当てが解除される,他の作業への割り当てが可能となる。
図22は,第2の実施例における作業スケジューリングシステム1のリスク評価部123の処理フローを示す図である。
図22に示す処理フローは,図10に示す処理フローに,1つの処理(S510)が追加されているものである。したがって,上記の処理ステップ以外の処理については,説明を省略する。
図22に示す処理フローで,ステップS55の処理において,依存性グラフ内で,選択されている作業の前に実行中のバッチ作業があると判断された場合に(ステップS55のY),リスク評価部123は,正常終了確率によるリスク評価を行う(ステップS510)。リスク評価の結果,その作業がリスクありと評価された場合に(ステップS510の“リスクあり”),ステップS59の処理へ進み,リスクなしと評価された場合に(ステップS510の“リスクなし”),ステップS58の処理へ進む。
図23は,リスク評価処理(ステップS510)のより詳細な処理フローを示す図である。
リスク評価部123は,選択された作業が,バッチ作業の後続である正常系作業の連なり(パス)上の作業であれば(ステップS80のY),そのバッチ作業の正常終了確率が閾値thより小さいかを調べる(ステップS81)。正常終了確率が閾値thより小さければ(ステップS81のY),リスク評価部123は,その作業の返り値を“リスクあり”に設定する(ステップS82)。正常終了確率が閾値thより小さくなければ(ステップS81のN),ステップS85の処理へ進む。
選択された作業が,バッチ作業の後続である正常系作業の連なり(パス)上の作業でなければ(ステップS80のN),リスク評価部123は,そのバッチ作業の正常終了確率が0であるかを調べる(ステップS83)。正常終了確率が0でなければ(ステップS83のN),リスク評価部123は,その作業の返り値を“リスクあり”に設定し(ステップS84),正常終了確率が0であれば(ステップS83のY),ステップS85の処理へ進む。
ステップS85の処理において,リスク評価部123は,作業の開始時刻までに所定の余裕があるかを調べ,作業の実行までに余裕時間があれば(ステップS85のY),リスク評価部123は,その作業の返り値を“リスクなし”に設定し(ステップS86),作業の実行までに余裕がなければ(ステップS85のN),その作業の返り値を“リスクあり”に設定する(ステップS82)。なお,余裕時間は,図10に示す処理フローのステップS57の処理と同様とする。
図21に示す依存性グラフにおいて,作業ID=12の作業に先行するバッチ作業(作業ID=9)の正常終了確率が,閾値thより小さい(60%<th)。この場合に,作業ID=12の作業は,バッチ作業(作業ID=9)が異常終了となる可能性がある程度高いとして,リスクありと評価される。
また,作業ID=22の作業に先行するバッチ作業(作業ID=20)の正常終了確率が閾値th以上である(90%≧th)。この場合に,作業ID=22の作業は,作業開始までに所定の余裕時間があれば,リスクなしと評価される。したがって,作業ID=22の作業は,評価リストに追加される。これにより,作業ID=22の作業のオペレータは融通可能となる。
また,作業ID=26の作業の前のバッチ作業(作業ID=25)は,正常終了確率が0%である。この場合に,作業ID=26の作業は消去されてリスク評価対象外となる。作業ID=26の作業のオペレータは,作業キャンセル時に解放されており,その時点から融通可能となる。
なお,作業ID=27の作業については,評価リスク処理により,リスクなしと評価されるがオペレータは割り当てられていない状態である。バッチ作業(作業ID=25)のバッチ終了通知(異常)を受けて,オペレータ割り当て部153が,オペレータの割り当てを行う。
以上説明した作業スケジューリングシステム1は,CPUおよびメモリ等を有するハードウェアと,ソフトウェアプログラムとを備えるコンピュータ・システム,または専用ハードウェアによって実現される。
図24は,作業スケジューリングシステム1のハードウェア構成例を示す図である。
作業スケジューリングシステム1は,演算装置(CPU)101,一時記憶装置(DRAM,フラッシュメモリ等)102,永続性記憶装置(HDD,フラッシュメモリ等)103,およびネットワークNとのネットワークインタフェース104を有するコンピュータ100と,入力装置(キーボード,マウス等)120と出力装置(ディスプレイ,プリンタ等)130とによって実施することができる。
また,作業スケジューリングシステム1は,コンピュータ100が実行可能なプログラムによって実施することができる。この場合に,作業スケジューリングシステム1が有すべき機能の処理内容を記述したプログラムが提供される。提供されたプログラムをコンピュータ100が実行することによって,上記説明した作業スケジューリングシステム1の処理機能がコンピュータ100上で実現される。
すなわち,作業スケジューリングシステム1の静的スケジューリング部11,システムスケジューリング部12,オペレータモニタ部13,バッチモニタ部14,スケジューリング調整部15等は,プログラムで構成することができ,これらのプログラムが一時記憶装置102にロードされて実行されることにより,各処理部の機能が実現される。また,作業スケジューリング1で使用される作業表,バッチ表,作業依存表,作業スケジュール,依存性グラフ,リスク評価等のデータは一時記憶装置(DRAM,フラッシュメモリ等)102や永続性記憶装置103に格納される。
なお,コンピュータ100は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,このプログラムは,コンピュータ100で読み取り可能な記録媒体に記録しておくことができる。
以上説明したように,開示する作業スケジューリングシステム1は,静的スケジューリング手法により正常系作業にもとづく作業スケジュールを決定し,異常系作業が発生した場合にのみ局所的にスケジュールを変更し,異常系作業が正常に終了したときは,正常系作業へ速やかに復帰することができる。そのため,少ない計算時間で動的にスケジューリングを変更することができ,さらに自動的に本来の作業スケジュールに戻ることができるため,効率的かつ実際的な運用に適用することができる。
さらに,作業スケジューリングシステム1は,ジョブ実行管理システム3から通知された,バッチ作業を構成するジョブの予測終了時刻と正常終了確率を用いてリスク評価を行えるため,より精度が高い予測終了時刻により動的にスケジューリングを変更することができるため,より最適なスケジューリングを実現することができる。
また,正常終了予測により,バッチ作業の異常終了を,バッチ終了通知前に予測することができるため,より最適なスケジューリングを実現することができる。
1 作業スケジューリングシステム
11 静的スケジューリング部
12 システムスケジューリング部
120 制御部
121 依存性グラフ部
122 スケジューリングモード部
123 リスク評価部
124 作業キュー
13 オペレータモニタ部
14 バッチモニタ部
15 スケジューリング調整部
150 調整部
151 システムスケジューラインタフェース
152 モニタインタフェース
153 オペレータ割り当て部
3 ジョブ実行管理システム
31 進捗管理部
310 バッチ構成記憶部
311 進捗データ受信部
312 進捗データ記憶部
313 時刻・確率計算部
314 タイマ
315 予測通知部
4 オペレータ端末
5 ジョブ

Claims (11)

  1. 作業をスケジューリングするために,コンピュータに,
    データ処理用システムごとに,該システムが実行するバッチ作業,オペレータが正常時に実行する正常系作業,および,オペレータが異常時に実行する異常系作業を含む複数の作業について,各作業の実行条件ならびに前記複数の作業のうち当該作業の前または後に実行する作業,及び,前記正常系作業ごとに,複数のオペレータ端末のうち当該正常系作業に割り当てるオペレータ端末が対応付けられた,前記データ処理用システムごとの実行スケジュールを示す作業スケジュールが記憶された記憶部を参照して,前記データ処理用システムごとに,前記作業スケジュールをもとにスケジューリングされた正常系作業を選択して,当該作業に対応するオペレータ端末に当該作業を通知する第1の通知処理と,
    前記オペレータ端末から,該オペレータ端末に通知した作業の終了通知を収集する処理と,
    前記オペレータ端末から収集された前記作業の終了通知が異常終了であるか否かを判定する処理と,
    前記作業の終了通知が異常終了であると判定した場合に,前記記憶部を参照して,前記作業スケジュールをもとに,前記終了通知を収集した作業に後続する異常系作業を選択し,前記データ処理用システムごとに前記作業スケジュールにもとづいて現時刻で未実行の正常系作業ごとに,当該正常系作業の開始を遅延させた場合に当該正常系作業に後続する作業の実行を遅延させる可能性を示す開始遅延リスクの有無を評価し,該リスクがないと評価した正常系作業に対応するオペレータ端末を選択して,該選択したオペレータ端末に前記選択した異常系作業を通知する第2の通知処理とを,
    実行させるための作業スケジューリングプログラム。
  2. 前記第2の通知処理による前記異常系作業の通知先のオペレータ端末から収集された前記異常系作業の終了通知が正常終了であるか否かを判定する処理と,
    前記異常系作業の終了通知が異常終了であると判定した場合に,前記記憶部を参照して,前記作業スケジュールをもとに,当該異常系作業に後続する正常系作業を選択し,該正常系作業の実行条件をもとに該正常系作業の実行可否を判定する処理と,
    前記正常系作業が実行可能と判定した場合に前記第1の通知処理を実行し,前記正常系作業が実行不可能と判定した場合に前記第2の通知処理を実行する処理とを,
    実行させることを特徴とする請求項1に記載の作業スケジューリングプログラム。
  3. 前記開始遅延リスクの有無を評価する際に,前記現時刻で未実行の正常系作業のうち,該正常系作業に後続する作業がバッチ作業である場合,または,該正常系作業がバッチ作業の後続である場合のいずれかである正常系作業を前記開始遅延リスクがあると評価する
    ことを特徴とする請求項1または請求項2に記載の作業スケジューリングプログラム。
  4. 前記記憶部には,前記正常系作業ごとに当該作業を開始可能な時刻,前記異常系作業ごとに当該作業の平均実行時間の情報が対応付けて記憶され,前記正常系作業のリスクを評価する際に,前記スケジューリングされた正常系作業であって,現時刻から該作業の開始可能な時刻までの時間が,前記異常系作業の平均実行時間より短い作業を前記リスクがあると評価する
    ことを特徴とする請求項1ないし請求項3のいずれか一項に記載の作業スケジューリングプログラム。
  5. 作業をスケジューリングするために,コンピュータが,
    データ処理用システムごとに,該システムが実行するバッチ作業,オペレータが正常時に実行する正常系作業,および,オペレータが異常時に実行する異常系作業を含む複数の作業について,各作業の実行条件ならびに前記複数の作業のうち当該作業の前または後に実行する作業,および,前記正常系作業ごとに,複数のオペレータ端末のうち当該正常系作業に割り当てるオペレータ端末が対応付けられた,前記データ処理用システムごとの実行スケジュールを示す作業スケジュールが記憶された記憶部を参照して,前記データ処理用システムごとに,前記作業スケジュールをもとにスケジューリングされた正常系作業を選択して,当該作業に対応するオペレータ端末に当該作業を通知する第1の通知を行い,
    前記オペレータ端末から,該オペレータ端末に通知した作業の終了通知を収集し,
    前記オペレータ端末から収集された前記作業の終了通知が異常終了であるか否かを判定し,
    前記作業の終了通知が異常終了であると判定した場合に,前記記憶部を参照して,前記作業スケジュールをもとに,前記終了通知を収集した作業に後続する異常系作業を選択し,前記データ処理用システムごとに前記作業スケジュールにもとづいて現時刻で未実行の正常系作業ごとに,当該正常系作業の開始を遅延させた場合に当該正常系作業に後続する作業の実行を遅延させる可能性を示す開始遅延リスクの有無を評価し,該リスクがないと評価した正常系作業に対応するオペレータ端末を選択して,該選択したオペレータ端末に前記選択した異常系作業を通知する第2の通知を行う
    ことを特徴とする作業スケジューリング方法。
  6. 作業をスケジューリングする作業スケジューリングシステムであって,
    データ処理用システムごとに,該システムが実行するバッチ作業,オペレータが正常時に実行する正常系作業,および,オペレータが異常時に実行する異常系作業を含む複数の作業について,各作業の実行条件ならびに前記複数の作業のうち当該作業の前または後に実行する作業,および,前記正常系作業ごとに,複数のオペレータ端末のうち当該正常系作業に割り当てるオペレータ端末が対応付けられた,前記データ処理用システムごとの実行スケジュールを示す作業スケジュールが記憶された記憶部と,
    前記記憶部を参照して,前記データ処理用システムごとに,前記作業スケジュールをもとにスケジューリングされた正常系作業を選択して,当該作業に対応するオペレータ端末に当該作業を通知する第1の通知を行い,前記オペレータ端末から,該オペレータ端末に通知した作業の終了通知を収集し,前記オペレータ端末から収集された前記作業の終了通知が異常終了であるか否かを判定し,前記作業の終了通知が異常終了であると判定した場合に,前記作業スケジュールをもとに,前記終了通知を収集した作業に後続する異常系作業を選択し,前記データ処理用システムごとに前記作業スケジュールにもとづいて現時刻で未実行の正常系作業ごとに,当該正常系作業の開始を遅延させた場合に当該正常系作業に後続する作業の実行を遅延させる可能性を示す開始遅延リスクの有無を評価し,該リスクがないと評価した正常系作業に対応するオペレータ端末を選択して,該選択したオペレータ端末に前記選択した異常系作業を通知する第2の通知を行うシステムスケジューリング部とを,備える
    ことを特徴とする作業スケジューリングシステム。
  7. 前記コンピュータに,
    実行中のバッチ作業を構成する各ジョブから取得した少なくとも実行中またはリカバリ中または終了を示す状態と処理時間の残り時間とを含む進捗情報,および,予め備えられた前記バッチ作業の各ジョブの処理時間と異常発生確率とを示すバッチ構成情報にもとづいて計算された前記バッチ作業の正常終了確率と予測終了時間とを含む予測通知を取得する予測通知取得処理と,
    前記第2の通知処理において,前記未実行の正常系作業の前記開始遅延リスクの有無を評価する際に,実行中の該バッチ作業の前記正常終了確率が予め定められた閾値より小さい場合に,該バッチ作業に後続する正常系作業の前記開始遅延リスクの評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間より短い場合に前記評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間を超える場合に前記評価をリスクなしと評価する処理を,
    実行させることを特徴とする請求項1ないし請求項4のいずれか一項に記載の作業スケジューリングプログラム。
  8. 前記コンピュータに,
    前記第2の通知処理において,前記未実行の正常系作業の前記開始遅延リスクの有無を評価する際に,前記正常終了確率が0であるバッチ作業について,実行中の該バッチ作業に後続する正常系作業を前記開始遅延リスクの評価の対象から除外し,該除外した正常系作業に割り当てられているオペレータ端末を解除する処理とを,
    実行させる実行させることを特徴とする請求項7に記載の作業スケジューリングプログラム。
  9. 前記コンピュータに,
    前記予測通知に含まれる正常終了確率が0であるバッチ作業について,作業スケジュールに示された該バッチ作業に後続する正常系作業の開始時刻を,前記予測通知に含まれる予測終了時刻に変更する処理を,
    実行させることを特徴とする請求項7または請求項8に記載の作業スケジューリングプログラム。
  10. 前記コンピュータが,
    実行中のバッチ作業を構成する各ジョブから取得した少なくとも実行中またはリカバリ中または終了を示す状態と処理時間の残り時間とを含む進捗情報,および,予め備えられた前記バッチ作業の各ジョブの処理時間と異常発生確率とを示すバッチ構成情報にもとづいて計算された前記バッチ作業の正常終了確率と予測終了時間とを含む予測通知を取得し,
    前記第2の通知をする処理において,前記未実行の正常系作業の前記開始遅延リスクの有無を評価する際に,実行中の該バッチ作業の前記正常終了確率が予め定められた閾値より小さい場合に,該バッチ作業に後続する正常系作業の前記開始遅延リスクの評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間より短い場合に前記評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間を超える場合に前記評価をリスクなしと評価する
    ことを特徴とする請求項5に記載の作業スケジューリング方法。
  11. 前記システムスケジューリング部は,
    実行中のバッチ作業を構成する各ジョブから取得した少なくとも実行中またはリカバリ中または終了を示す状態と処理時間の残り時間とを含む進捗情報,および,予め備えられた前記バッチ作業の各ジョブの処理時間と異常発生確率とを示すバッチ構成情報にもとづいて計算された前記バッチ作業の正常終了確率と予測終了時間とを含む予測通知を取得し,前記第2の通知をする処理において,前記未実行の正常系作業の前記開始遅延リスクの有無を評価する際に,実行中の該バッチ作業の前記正常終了確率が予め定められた閾値より小さい場合に,該バッチ作業に後続する正常系作業の前記開始遅延リスクの評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間より短い場合に前記評価をリスクありと評価し,前記正常終了確率が予め定められた閾値以上,かつ,現時刻から該正常系作業の開始可能な時刻までの時間が前記異常系作業の平均実行時間を超える場合に前記評価をリスクなしと評価する
    ことを特徴とする請求項6に記載の作業スケジューリング方法。
JP2011284927A 2011-05-16 2011-12-27 作業スケジューリングプログラム,方法,およびシステム Pending JP2012256307A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011284927A JP2012256307A (ja) 2011-05-16 2011-12-27 作業スケジューリングプログラム,方法,およびシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011109752 2011-05-16
JP2011109752 2011-05-16
JP2011284927A JP2012256307A (ja) 2011-05-16 2011-12-27 作業スケジューリングプログラム,方法,およびシステム

Publications (1)

Publication Number Publication Date
JP2012256307A true JP2012256307A (ja) 2012-12-27

Family

ID=47527797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011284927A Pending JP2012256307A (ja) 2011-05-16 2011-12-27 作業スケジューリングプログラム,方法,およびシステム

Country Status (1)

Country Link
JP (1) JP2012256307A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016103357A1 (ja) * 2014-12-24 2016-06-30 三菱電機株式会社 作業工程管理装置及び作業工程管理システム及び作業工程管理方法及び作業工程管理プログラム
JP2020030650A (ja) * 2018-08-23 2020-02-27 株式会社日立製作所 サプライチェーン業務プロセス最適化装置およびサプライチェーン業務支援方法
CN114237934A (zh) * 2021-12-15 2022-03-25 中国农业银行股份有限公司 异常作业确定方法、装置、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016103357A1 (ja) * 2014-12-24 2016-06-30 三菱電機株式会社 作業工程管理装置及び作業工程管理システム及び作業工程管理方法及び作業工程管理プログラム
JPWO2016103357A1 (ja) * 2014-12-24 2017-04-27 三菱電機株式会社 作業工程管理装置及び作業工程管理システム及び作業工程管理方法及び作業工程管理プログラム
JP2020030650A (ja) * 2018-08-23 2020-02-27 株式会社日立製作所 サプライチェーン業務プロセス最適化装置およびサプライチェーン業務支援方法
JP7163104B2 (ja) 2018-08-23 2022-10-31 株式会社日立製作所 サプライチェーン業務プロセス最適化装置およびサプライチェーン業務支援方法
CN114237934A (zh) * 2021-12-15 2022-03-25 中国农业银行股份有限公司 异常作业确定方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10942781B2 (en) Automated capacity provisioning method using historical performance data
Yu et al. An adaptive rescheduling strategy for grid workflow applications
US8155988B2 (en) Workflow management including determination if a requestor is in charge of tasks
US8566285B2 (en) Method and system for scheduling and controlling backups in a computer system
US20080270213A1 (en) Process risk estimation indication
US8433675B2 (en) Optimization and staging
CN111338791A (zh) 集群队列资源的调度方法、装置、设备及存储介质
US8694487B2 (en) Project management system
US20090254411A1 (en) System and method for automated decision support for service transition management
JP2016194736A (ja) プロジェクト実行計画立案支援方法、プロジェクト実行計画立案支援プログラム、および、プロジェクト実行計画立案支援システム
US20120215583A1 (en) System and method for managing real-time batch workflows
US8271982B2 (en) Rescheduling jobs for execution by a computing system
US20220171653A1 (en) Cloud Native Adaptive Job Scheduler Framework for Dynamic Workloads
US9607275B2 (en) Method and system for integration of systems management with project and portfolio management
Liu et al. Throughput based temporal verification for monitoring large batch of parallel processes
JP2012256307A (ja) 作業スケジューリングプログラム,方法,およびシステム
JP5155699B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN112633823A (zh) 投产进度实时跟踪方法、存储介质及计算机设备
Liu et al. A novel deadline assignment strategy for a large batch of parallel tasks with soft deadlines in the cloud
Oliner et al. Probabilistic qos guarantees for supercomputing systems
CN113487132B (zh) 配电网灾后抢修资源分配方法、装置和计算机设备
JP2018169684A (ja) 営業支援装置
JP5325827B2 (ja) ジョブスケジュールシステム、ジョブスケジュール管理方法及びプログラム。
JP2002366674A (ja) ソフトウェア開発自動管理システム及びソフトウェア開発自動管理プログラム
WO2023100394A1 (ja) 進捗管理装置、システム及び、方法