JP2011113290A - ジョブフロー管理装置、管理方法および管理プログラム - Google Patents

ジョブフロー管理装置、管理方法および管理プログラム Download PDF

Info

Publication number
JP2011113290A
JP2011113290A JP2009268925A JP2009268925A JP2011113290A JP 2011113290 A JP2011113290 A JP 2011113290A JP 2009268925 A JP2009268925 A JP 2009268925A JP 2009268925 A JP2009268925 A JP 2009268925A JP 2011113290 A JP2011113290 A JP 2011113290A
Authority
JP
Japan
Prior art keywords
job
end time
flow
critical path
execution
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.)
Granted
Application number
JP2009268925A
Other languages
English (en)
Other versions
JP5509814B2 (ja
Inventor
Hideyuki Kurashiro
秀行 倉城
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009268925A priority Critical patent/JP5509814B2/ja
Publication of JP2011113290A publication Critical patent/JP2011113290A/ja
Application granted granted Critical
Publication of JP5509814B2 publication Critical patent/JP5509814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】排他的なコンピュータ資源を含むエージェント装置に対して、目標終了時刻の設定されたジョブを迅速に実行完了させることを可能とするジョブフロー管理装置等を提供する。
【解決手段】ジョブフロー管理装置11は、ジョブフロー内のパスを目標終了時刻の設定されているジョブを含む正準クリティカルパスとその他のパスに分類するパス判定部52と、目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して予想終了時刻が目標終了時刻より遅れるか否かを判別する予想終了時刻判定部54と、ジョブをジョブフローの定義に従ってエージェント装置に実行させるフロー制御部51とを有し、フロー制御部が、予想終了時刻が目標終了時刻より遅れる場合に、その他のパスに属するジョブの中で排他的リソースを使用するジョブの一覧を抽出し、該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する。
【選択図】図1

Description

本発明はジョブフローの実行に関し、特に該ジョブフローで目標終了時刻の設定されたジョブを迅速に実行完了させることに関する。
ジョブフロー管理装置は、複数のバッチジョブ(以後単にジョブという)をフロー状に定義したジョブフローで、各々のジョブを定義された順序の通りに、ネットワークを介して接続された他のコンピュータ装置(エージェント装置という)に転送して実行させるコンピュータ装置である。各々のジョブは、UNIX(登録商標)のシェルスクリプトやウィンドウズ(登録商標)のバッチスクリプトなどのようなスクリプト言語で記述されている。
たとえば、コンピュータの利用者の少ない夜間や休日に、定型化されたバッチ処理を該コンピュータで一括して実行するなどのような用途に、このジョブフローによる処理が利用されることが多い。このため、ジョブフローの実行は、なるべく人手をかけずに実行できることが望ましい。
また、ジョブフローを構成するジョブの中には、目標終了時刻が設定されているものがあり、当該ジョブはその目標終了時刻までに完了している必要がある。具体的には、たとえば、毎日の始業前までに前日の売り上げに関するデータの集計が完了している必要がある、などのような場合である。
そのようなジョブが、エラーの発生や処理対象のデータ量が多かったなどのような理由で目標終了時刻までに完了しなかった場合、該ジョブを翌日の業務を遅延させてでも完了させるか、管理者の判断により適切なタイミングで強制停止を行なうなどの対処が必要である。いずれの場合も、管理者に多大な負担をかけることとなり、また該組織の業務に遅滞を発生することとなる。
ジョブフローの実行で、目標終了時刻が設定されているジョブを目標終了時刻以内に実行完了させることに関連して、次のような関連技術がある。特許文献1には、ジョブの完了時期を予測して、その予測結果に応じて該ジョブの実行優先度を調整する分散処理システムが記載されている。特許文献2には、該ジョブの目標終了時刻と推定終了時刻とを比較して、該ジョブが目標終了時刻までに終了するように優先度を調整するバッチジョブ管理システムが記載されている。特許文献3には、コンピュータにかかる負荷に応じて、各ジョブの実行終了時間を高精度に予測して終了時刻を希望時刻に近づくようにするジョブ実行予測制御方法が記載されている。
特開2003−256222号公報 特開2004−295731号公報 特開平05−265775号公報
前述の各々の特許文献は、いずれもそのジョブを目標終了時刻までに実行完了させようとする技術を開示している。しかしながら、これらの技術で該ジョブの実行を早めるために利用されているのは、該ジョブに設定された「優先度」を上昇させ、より多くのリソース(=コンピュータ資源)、具体的にはプロセッサや記憶装置の利用率を割り当てるという手法である(特許文献2および3)。もしくは、さらに他のコンピュータに当該ジョブの実行を依頼するという手法である(特許文献1)。
各ジョブを実行するエージェント装置が、排他的リソースを含む場合がある。この排他的リソースとは、一度に1つのジョブが当該リソースを占有して使用することができ、その間は他のジョブが当該資源を利用することはできない。たとえばプリンタなどがこれに該当する。
換言すれば、排他的リソースには、「利用可能」か「利用不可能」かの2通りの状態しか存在しない。従って、前述の各特許文献にあるような各ジョブの「優先度」を上昇させてより多くのリソースを割り当てるという手法を、そのような排他的リソースに対して適用することは不可能である。
本発明の目的は、排他的リソースを含むエージェント装置に対して、ジョブフローの中で目標終了時刻の設定されたジョブを迅速に実行完了させることを可能とするジョブフロー管理装置、管理方法および管理プログラムを提供することにある。
上記目的を達成するため、本発明に係るジョブフロー管理装置は、ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼してジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置であって、ジョブフローを構成する各々のジョブの前後関係および各々のジョブが排他的リソースを使用するか否かを定義するジョブ定義データを予め記憶する記憶手段と、ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、目標終了時刻が設定されているジョブを含んでいてかつクリティカルパスに該当しない準クリティカルパス、およびクリティカルパスと準クリティカルパスのいずれにも該当しないその他の経路に分類すると共に各々のジョブがいずれの経路に含まれるかを判定するパス判定部と、目標終了時刻の設定されているジョブの完了する予想終了時刻を各々の経路ごとに算出して予想終了時刻が目標終了時刻より遅れるか否かを判別する予想終了時刻判定部と、ジョブをジョブ定義データに従ってエージェント装置に転送するフロー制御部とを有し、フロー制御部が、予想終了時刻が目標終了時刻より遅れる場合に、ジョブ定義データに定義された内容に基づいてクリティカルパスおよび準クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出し、その他の経路に属するジョブの中で排他的リソースを使用するジョブの一覧を抽出し、抽出された該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する機能を有することを特徴とする。
上記目的を達成するため、本発明に係るジョブフロー管理方法は、ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼してジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置にあって、ジョブ定義データとして予め記憶されたジョブフローを構成する各々のジョブの前後関係および各々のジョブが排他的リソースを使用するか否かをフロー制御部が読み出し、目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して予想終了時刻が目標終了時刻より遅れるか否かを予想終了時刻判定部が判別し、予想終了時刻が目標終了時刻より遅れる場合に、ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、目標終了時刻が設定されているジョブを含んでいてかつクリティカルパスに該当しない準クリティカルパス、およびクリティカルパスと準クリティカルパスのいずれにも該当しないその他の経路にパス判定部が分類すると共に各々のジョブがいずれの経路に含まれるかを判定し、ジョブ定義データベースに定義された内容に基づいてクリティカルパスおよび準クリティカルパスに属するジョブで使用される排他的リソースの一覧をフロー制御部が抽出し、その他の経路に属するジョブの中で排他的リソースを使用するジョブの一覧をフロー制御部が抽出し、抽出された該ジョブが実行中であればフロー制御部がこれを停止し、該ジョブが実行前であればフロー制御部がこれの実行を保留し、ジョブをジョブフローの定義に従ってフロー制御部がエージェント装置に転送することを特徴とする。
上記目的を達成するため、本発明に係るジョブフロー管理プログラムは、ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼してジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置にあって、ジョブフロー管理装置が備えるコンピュータに、ジョブ定義データとして予め記憶されたジョブフローを構成する各々のジョブの前後関係および各々のジョブが排他的リソースを使用するか否かを読み出す手順、目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して予想終了時刻が目標終了時刻より遅れるか否かを判別する手順、予想終了時刻が目標終了時刻より遅れる場合に、ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、目標終了時刻が設定されているジョブを含んでいてかつクリティカルパスに該当しない準クリティカルパス、およびクリティカルパスと準クリティカルパスのいずれにも該当しないその他の経路に分類する手順、ジョブ定義データベースに定義された内容に基づいてクリティカルパスおよび準クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出する手順、その他の経路に属するジョブの中で排他的リソースを使用するジョブの一覧を抽出する手順、抽出された該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する手順、およびジョブをジョブフローの定義に従ってエージェント装置に転送する手順、を実行させることを特徴とする。
上述したように本発明は、クリティカルパスでも準クリティカルパスでないその他のパスに属するジョブの中で排他的リソースを使用するジョブがあればこれを停止もしくは保留するように構成したので、排他的リソースをクリティカルパスもしくは準クリティカルパスに属するジョブに優先的に実行させることができる。これによって、排他的リソースを含むエージェント装置に対して、ジョブフローの中で目標終了時刻の設定されたジョブを迅速に実行完了させることが可能であるという優れた特徴を持つジョブフロー管理装置、管理方法および管理プログラムを提供することができる。
本発明の実施形態に係るバッチジョブ実行システムの構成を示す説明図である。 図1に示したジョブ定義DBのより具体的な記憶内容について示す説明図である。 図3は、図1に示した実行フロー管理DBおよび実行ジョブ管理DBのより具体的な記憶内容について示す説明図である。 図1に示したバッチジョブ実行システムで処理の対象となるジョブフローの例を示す説明図である。 図1に示したジョブフロー管理装置の、エージェント装置へのジョブ投入に係る動作を示すフローチャートである。 図5のステップS105として示した排他的リソース制御の処理の詳細を示すフローチャートである。 図5のステップS108として示した、「準クリティカルパス」上のジョブに対する排他的リソースの制御の動作の詳細を示すフローチャートである。 本実施形態のより詳細な動作例を説明するための第2のジョブフローを示す説明図である。 図8で示したジョブK01〜K11の各々の予想実行時間とリソースの使用率について示す表である。
(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るジョブフロー管理装置11は、ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置12に対して転送して実行を依頼してジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置である。このジョブフロー管理装置11は、ジョブフローを構成する各々のジョブの前後関係および各々のジョブが排他的リソースを使用するか否かを定義するジョブ定義データ(ジョブ定義DB55)を記憶する記憶手段22と、ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、目標終了時刻が設定されているジョブを含んでいてかつクリティカルパスに該当しない準クリティカルパス、およびクリティカルパスと準クリティカルパスのいずれにも該当しないその他の経路に分類すると共に各々のジョブがいずれの経路に含まれるかを判定するパス判定部52と、目標終了時刻の設定されているジョブの完了する予想終了時刻を各々の経路ごとに算出して予想終了時刻が目標終了時刻より遅れるか否かを判別する予想終了時刻判定部54と、ジョブをジョブフローの定義に従ってエージェント装置に転送するフロー制御部51とを有し、フロー制御部51が、予想終了時刻が目標終了時刻より遅れる場合に、ジョブ定義データに定義された内容に基づいてクリティカルパスおよび準クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出し、その他の経路に属するジョブの中で排他的リソースを使用するジョブの一覧を抽出し、抽出された該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する。
またフロー制御部51が、予想終了時刻が目標終了時刻より遅れる場合に、ジョブ定義データに定義された内容に基づいてクリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出する排他的リソース一覧抽出機能と、準クリティカルパスに属するジョブの中で排他的リソースを使用するジョブの一覧を抽出するジョブ一覧抽出機能と、抽出された該ジョブが実行前であればこれの実行を保留するジョブ保留機能と、該ジョブが実行中でありかつこれを停止すれば準クリティカルパスがクリティカルパスになる場合に該ジョブを停止するジョブ停止機能とを有する。
ジョブ定義データベース55には、ジョブの各々に対応して該ジョブを実行する際のエージェント装置のコンピュータ資源の利用率を制限するための設定であるパラメータが含まれており、ジョブフロー管理装置11は、エージェント装置のパラメータをクリティカルパスに属するジョブを実行する際にジョブ定義データに予め定義された通りに決定すると共に、準クリティカルパスもしくはその他の経路に属するジョブを実行する際にジョブ定義データに予め定義された値よりも低い値に決定するリソース優先度制御部53を有する。
そして記憶手段22が、ジョブフローを構成する各々のジョブが排他的リソースの制御に係る処理について処理済であるか否かを示す排他制御フラグをジョブフローに対応して記憶する実行フロー管理データ(実行フロー管理DB56)を記憶しており、フロー制御部51が、その他の経路に属するジョブの中で排他的リソースを使用するジョブの実行を停止または保留する処理の後で排他制御フラグの値を処理済に設定するフラグ設定機能を有する。
以上の構成を備えることにより、このジョブフロー管理装置は、排他的なコンピュータ資源を含むエージェント装置に対しても目標終了時刻の設定されたジョブを迅速に実行させることが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の実施形態に係るバッチジョブ実行システム1の構成を示す説明図である。バッチジョブ実行システム1は、ジョブフロー管理装置11とエージェント装置12というコンピュータ装置が相互に接続されて構成される。
ジョブフロー管理装置11は、バッチジョブやジョブフローの定義情報を管理し、各々のバッチジョブ(以後単にジョブという)をエージェント装置12に転送して実行させ、ジョブフローのフロー制御を行うコンピュータ装置である。
エージェント装置12は、ジョブフロー管理装置11から転送されたバッチジョブを実行し、その結果をジョブフロー管理装置11に返却するコンピュータ装置である。構成説明を理解しやすくするため、図1では各1台ずつのジョブフロー管理装置11とエージェント装置12を示しているが、実際には1台のジョブフロー管理装置11に対して、実行させたいジョブやその分量に応じて複数台のエージェント装置12が接続されていることが多い。
ジョブフロー管理装置11は、コンピュータプログラムを実行する主体となるCPU(Central Processing Unit)21と、プログラムおよびデータを記憶する記憶手段22と、他のコンピュータとデータ通信を行う通信手段23とを備える。エージェント装置12も同様に、CPU31と、記憶手段32と、通信手段33とを備える。ジョブフロー管理装置11の通信手段23と、エージェント装置12の通信手段33とが相互に結ばれ、これによってジョブフロー管理装置11とエージェント装置12との間でデータ交換が可能となっている。
ジョブフロー管理装置11のCPU21では、後述するフロー制御部51、パス判定部52、リソース優先度制御部53、予想終了時刻判定部54が、各々コンピュータプログラムとして実行される。またジョブフロー管理装置11の記憶手段22には、これも後述するジョブ定義DB(データベース)55と、実行フロー管理DB56とが記憶されている。
フロー制御部51は、ジョブ定義DB55からフローデータや各ジョブの定義データを読み出し、これらのジョブを順次設定されたエージェント装置12に転送して実行させる。またエージェント装置12からのジョブの実行結果を受け取って、実行フロー管理DB56を更新する。
パス判定部52は、フロー制御部51からの依頼に応じて、実行フロー管理DB56を参照して各ジョブの予想実行時間からパス種別を判定する。リソース優先度制御部53は、フロー制御部51からの依頼に応じて、実行フロー管理DB56を参照して、後述の制御を行うためのパラメータを決定し、フロー制御部51へ通知する。予想終了時刻判定部54は、フロー制御部51からの依頼に応じて、実行フロー管理DB56を参照し、対象ジョブの予想到達時刻や終了時刻を計算する。
ジョブ定義DB55は、ジョブフローのフローデータやフロー中に定義されるジョブのスクリプト、パラメータ、予想実行時間、利用リソース一覧などが記憶される。実行フロー管理DB56は、実行中のフローについて、各エージェント装置12から返却されたジョブの結果(終了コードやステータス、出力結果)などが記憶される。
エージェント装置12のCPU31では、後述するジョブ実行制御部61が実行され、エージェント装置12の記憶手段32にはこれも後述する実行ジョブ管理DB62が記憶されている。
また、エージェント装置12には外部記憶手段であるディスク13と、出力情報を印刷する手段であるプリンタ14が接続されている。ディスク13およびプリンタ14は、CPU31および記憶手段32と同様に、CPU31で実行される複数のジョブの間で共有されて使用されるリソース(=コンピュータ資源)であり、中でもプリンタ14は一度に1つのジョブだけが使用できる排他的リソースである。プリンタ14の他には排他的リソースは存在しない。
ジョブ実行制御部61は、ジョブフロー管理装置11から依頼されたジョブを実行し、実行ジョブ管理DB62を更新する。また、各ジョブの実行完了後、ジョブフロー管理装置11にその結果情報(終了コードや出力結果など)を返却する。実行ジョブ管理DB62は、実行中のジョブについて、該ジョブの起動時刻、プロセスID、出力結果などの情報が記憶される。
図2は、図1に示したジョブ定義DB55のより具体的な記憶内容について示す説明図である。図3は、図1に示した実行フロー管理DB56および実行ジョブ管理DB62のより具体的な記憶内容について示す説明図である。そして図4は、図1に示したバッチジョブ実行システム1で処理の対象となるジョブフローの例を示す説明図である。
図4の例で示したジョブフローでは、ジョブJ01を最初に実行した後、ジョブJ02とJ17にまず並列分岐する。ジョブJ17から先はジョブJ22までは分岐が無く直列的に実行され、またジョブJ22には目標終了時刻は設定されていない。一方のジョブJ02の後、ジョブJ03とジョブJ06に処理が並列分岐し、ジョブJ03〜05とジョブJ06〜J08とが各々並列的に実行され、ジョブJ05とジョブJ08の両方の終了を待ち合わせてから以降の処理に続く。
そして、ジョブJ05とジョブJ08の両方が終了したら、すぐにジョブJ09、11、13に並列分岐する。ジョブJ09〜10、ジョブJ11〜12、ジョブJ13〜14が各々並列的に実行され、ジョブJ10、12、14の各々の終了を待ち合わせてからジョブJ15に続き、その後にジョブJ16が実行される。このジョブJ16に、目標終了時刻が設定されている。
図2に示すジョブ定義DB55は、このジョブフローの名称「JF001」と、これを構成する各ジョブのジョブ名55aと、該ジョブの実行前に完了していなければならない先行ジョブ55b、該ジョブの完了後に実行される後続ジョブ55c、そして各ジョブの内容であるスクリプトデータ55dと、これを実行する際の各種設定であるパラメータ55eとが記憶されている。なお、このパラメータ55eの詳細については後述する。
図3に示す実行フロー管理DB56は、ジョブ定義DB55と対応するジョブ名55aと、各ジョブが実行済か否かを示す実行済56a、該ジョブを実行したコンピュータ名を示す実行サーバ56b、該ジョブの実行された時刻を示す開始時刻56cと終了時刻56d、正常終了であるか否かを示す終了コード56e、各ジョブでの出力を示す出力データ56fが記憶されている。また、後述の排他制御フラグ56gは該ジョブフロー全体に対して記憶されており、初期値=0である。
同じく図3に示す実行ジョブ管理DB62は、エージェント装置12で実行した各ジョブのジョブ名55aと、実行フロー管理DB56と対応する開始時刻56c、終了時刻56d、終了コード56eおよび出力データ56f、ジョブ定義DB55と対応するスクリプトデータ55dとパラメータ55e、そしてエージェント装置12で該ジョブが実行された際のプロセスID62aが記憶されている。
図5は、図1に示したジョブフロー管理装置11の、エージェント装置12へのジョブ投入に係る動作を示すフローチャートである。前段ジョブの実行が完了し結果が返却されると、フロー制御部51はそのデータを実行フロー管理DB56に格納し、次のジョブ投入処理に入る。図5の処理は、ジョブフロー管理装置11が新たなジョブをエージェント装置12に投入するたびに実行される。
まず、終了目標のあるジョブについて、フロー制御部51は予想終了時刻判定部54に該ジョブの予想終了時刻の算出を依頼し、予想終了時刻判定部54は実行フロー管理DB56から各ジョブの予想実行時間を読み出して算出し、その結果をフロー制御部51に返却する(ステップS101)。
この予想終了時刻は「現在時刻+各ジョブの予想実行時間の合計値」で与えられ、また目標のジョブに到達するまでにフロー上で並列実行させる分岐がある場合、予想終了時刻は「現在時刻+クリティカルパス(詳しくは後述)上の各ジョブの予想実行時間の合計値」で与えられる。
この予想終了時刻を受け取ったフロー制御部51は、その値と目標終了時刻を比較する(ステップS102)。予想終了時刻が目標終了時刻より遅い場合、この目標終了時刻までに対象ジョブを完了させるため、次に説明する優先度制御を行う。まず、フロー制御部51の依頼により、パス判定部52が当該ジョブフロー内の各パス(経路)について、実行フロー管理DB56から対象のフロー情報及び各ジョブの予想実行時間を参照して、パス種別の判別を行う(ステップS103)。
ここでいうパス種別とは、「クリティカルパス」、「準クリティカルパス」、「その他のパス」の3種類のいずれかである。「その他のパス」は、目標終了時刻の設定されているジョブと先行関係のないジョブが全てこれに該当する。また、このフロー以外にも同時に実行されているジョブフローが存在すれば、そのフロー中のジョブは全て「その他のパス」に属する。
「クリティカルパス」は、「その他のパス」に該当しないジョブで、各々の並列分岐の中で最も各ジョブの予想実行時間の合計値が大きくなる組み合わせである。また「準クリティカルパス」は、「その他のパス」にも「クリティカルパス」にも該当しない組み合わせである。
図4の例で示したジョブフローでは、ジョブJ03〜05とジョブJ06〜J08とではジョブJ03〜05の方が予想実行時間の合計値が大きく、またジョブJ09〜10、ジョブJ11〜12、ジョブJ13〜14の中ではジョブJ11〜12が予想実行時間の合計値が最も大きいと仮定すると、ジョブJ01→ジョブJ02→ジョブJ03→ジョブJ04→ジョブJ05→ジョブJ11→ジョブJ12→ジョブJ15→ジョブJ16のパスが「クリティカルパス」となる(図4では太線で示す)。
また、ジョブJ17→ジョブJ18→ジョブJ19→ジョブJ20→ジョブJ21→ジョブJ22のパスが「その他のパス」となり(図4では破線で示す)、残るジョブJ06〜J08、ジョブJ09〜10、ジョブJ13〜14のパスが「準クリティカルパス」となる(図4では細線で示す)。
なお、並列分岐の中にさらに並列分岐が設定されている場合の「クリティカルパス」と「準クリティカルパス」の区別は、最も外側にある並列分岐の中で予想実行時間の合計値が最大となるものについて、さらに内側にある並列分岐の予想実行時間の合計値が最大となるものを「クリティカルパス」として判断する。以上の判定を終えるとパス判定部52は、その結果をフロー制御部51へ返却する。
続いてフロー制御部51は、後述する排他制御フラグ56g=0であるか否かを判断し(ステップS104)、0でなければステップS107に進む。排他制御フラグ56g=0であれば、図6に後述する排他的リソース制御の処理を行って(ステップS105)、排他制御フラグ56g=1に設定して(ステップS106)ステップS107に進む。
図6は、図5のステップS105として示した排他的リソース制御の処理の詳細を示すフローチャートである。この処理は、フロー制御部51の依頼に基づいてリソース優先度制御部53が、実行フロー管理DB56を参照して、フロー情報及び各ジョブの排他的リソースを確認し、次のような判定を行う。
まず、「クリティカルパス」および「準クリティカルパス」上のジョブが必要とする排他的リソース一覧を抽出し(ステップS201)、それらの排他的リソースを利用するジョブのうち「その他のパス」に属するジョブを抽出する(ステップS202)。
排他的リソースを利用する「その他のパス」に属するジョブの各々について、実行中であるか否かを判断し(ステップS203)、実行中であればその実行を停止し(ステップS204)、未実行であれば実行開始されないよう保留して待ち合わせさせる(ステップS205)。
この処理によって停止もしくは保留となったジョブは、対象となっている排他的リソースが解放され、「クリティカルパス」および「準クリティカルパス」上のジョブのいずれもが使わなくなった時点で再開される。またこのとき、再開可能となる「その他のパス」上のジョブが複数ある場合には、そのジョブへのフローの到達順とするのが一般的ではあるが、それらをどのような順で実行しても特に問題はない。
このように排他的リソースを利用する「その他のパス」上に存在するジョブを事前に全て止めることにより、「クリティカルパス」および「準クリティカルパス」上に存在するジョブの実行を優先させることができる。ここで必要となる対象リソースが、いつどのようなタイミングで必要となるのかを正確に推測するのは困難であるので、「その他のパス」上に存在する優先度の低いジョブを事前に停止し、これらの「クリティカルパス」および「準クリティカルパス」上に存在するジョブがそれらのリソースを必要とした時点ですぐに使えるようにする。
また、「その他のパス」は固定的であり、ジョブフローの定義を変えない限り変動することはないので、図6に記載した処理は各ジョブフローの実行に対して1回だけ実施すればよい。排他制御フラグ56gはそのために定義されており、図6に記載した処理を実行したらステップS106で説明したように排他制御フラグ56g=1とする。なお、ステップS104で排他制御フラグ56g=1である場合の処理については後述する。
次に、図5の処理が開始される際に投入されたジョブが、「クリティカルパス」上にあるジョブであるか否かについて判断する(ステップS107)。「クリティカルパス」上にあるジョブである場合は、図7に示す「準クリティカルパス」上のジョブに対する排他的リソースの制御を行って(ステップS108)ステップS109に進む。「クリティカルパス」上にあるジョブでない場合は、そのままステップS109に進む。
図7は、図5のステップS108として示した、「準クリティカルパス」上のジョブに対する排他的リソースの制御の動作の詳細を示すフローチャートである。まず、リソース優先度制御部53が実行フロー管理DB56を参照して投入対象となっている「クリティカルパス」上のジョブが必要とする排他的リソースを抽出し(ステップS301)、それらの排他的リソースを利用するジョブのうち「準クリティカルパス」上に存在するジョブを特定する(ステップS302)。
ここまでで特定されたジョブの各々に対して、該ジョブが実行中であるか否かについて判断し(ステップS303)、該ジョブが実行中であれば、このジョブを停止した場合に該ジョブを含むパスが「クリティカルパス」、即ち予想実行時間が最大となるパスになるか否かを判断し(ステップS304)、「クリティカルパス」になる場合は該ジョブを停止し(ステップS305)、「クリティカルパス」にならない場合は該ジョブを停止せずに継続する(ステップS306)。即ち、該ジョブを停止することによって、予想実行時間がより遅くなる場合は停止せずに実行を継続し、遅くならない場合は停止する。
ステップS303で該ジョブが未実行であれば、このジョブを保留して実行開始されないようにする(ステップS307)。ステップS305およびステップS307で停止もしくは保留されたジョブは、図6の処理と同様に、その排他的リソースを使用する「クリティカルパス」上のジョブが解放された時点で実行を再開する。
ステップS107および108の後、フロー制御部51は、リソース優先度制御部53に共有可能リソースについての制御を依頼する(ステップS109)。ここでいうリソース優先度は、「クリティカルパス」上のジョブ→「準クリティカルパス」上のジョブ→「その他のパス」上のジョブの順となる。リソース優先度制御部53は、各共有可能リソースに対して以下の判断を行う。
「クリティカルパス」上のジョブについては、最大限のリソースを優先的に使用させる。「準クリティカルパス」上のジョブについては、「クリティカルパス」上のジョブで使用される分を除いた分で空きがあれば利用でき、十分な空きがなければその分しか利用できない。「その他のパス」上のジョブについては、「クリティカルパス」上のジョブと「準クリティカルパス」上のジョブで使用される分を除いた分で空きがあれば利用でき、十分な空きがなければその分しか利用できない。
また、「準クリティカルパス」上のジョブと「その他のパス」上のジョブとは複数同時に実行される可能性があり、その場合には同種のジョブの個数で該当するリソースを均等に分割して使用させる。
リソース優先度制御部53は実行フロー管理DB56から、投入対象ジョブの転送先エージェント装置を確認し、その転送先エージェント装置で現在実行中のジョブの一覧、そのジョブが使用するリソース一覧、その使用率をさらに確認して、対象ジョブを転送実行させた場合の各リソースの使用率を上記ロジックに従って決定し、その制御パラメータをフロー制御部51に返却する。
ステップS109で、リソース優先度制御部53が決定した各制御パラメータを受け取ったフロー制御部51は、対象ジョブを目的のエージェント装置に転送し、エージェント装置側のジョブ実行制御部61は対象ジョブの実行、及び受け取ったリソースの制御パラメータに従って各ジョブのリソースを制御する(ステップS113)。
前述のステップS102で、予想終了時刻が目標終了時刻以内である場合の動作について説明する。以下の説明では、その前のジョブ投入処理まではステップS102で「予想終了時刻が目標終了時刻より遅い」と判定されていたものとする。これは、前回のジョブ投入処理で「予想終了時刻が目標終了時刻以内である」場合には、ステップS110〜112の処理は特に意味をなさないためである。
優先度制御の結果、予想終了時刻が目標終了時刻以内となったということは、以降は優先度制御を行う必要がなくなったことを意味する。このため、優先度制御の内容を初期化する。まず排他制御フラグ56g=0に設定し(ステップS110)、図6および図7に示した処理で停止もしくは保留した「その他のパス」「準クリティカルパス」上の各ジョブの停止および保留を解除して実行を再開もしくは継続させる(ステップS111)。
これに続いてフロー制御部51は、各エージェント装置12のジョブ実行制御部61へ共有可能リソース制御の初期化命令を送り、それを受けてジョブ実行制御部61は実行中のジョブのリソース制御の状態を初期化する(ステップS112)。その後ジョブ投入が行われるが、これは前述したステップS113の通りである。
(より詳細な動作例)
図8は、本実施形態のより詳細な動作例を説明するための第2のジョブフロー400を示す説明図である。この動作例では、図1に示す通りにジョブフロー管理装置11およびエージェント装置12が各1台ずつである。また、説明を簡単にするため、このジョブフロー400と並列に動作しているその他のジョブおよびジョブフローは存在しないものとする。また、エージェント装置12が使用する排他的リソースはプリンタ14だけである。
それ以外のCPU31、メモリ(記憶手段32)、ディスクI/O(ディスク13)は排他的リソースではないので、ジョブフロー管理装置11のフロー制御部51はジョブをエージェント装置12に転送して実行させるに当たって、これら各々の実行に使用する各リソースの使用率を、リソース優先度制御部53が決定した通りのパラメータを伝達して実行させることができる。
図8に示すジョブフロー400では、まずジョブK00が実行された後、ジョブK01とジョブK08とに並列分岐する。ジョブK08の後でジョブK09→K10と連続して実行され、ジョブK08〜K10には目標終了時刻は特に設定されていない。ジョブK01の実行後、ジョブK02とジョブK05とに並列分岐する。ジョブK02〜04、ジョブK05〜K07が各々並列的に実行され、ジョブK04とジョブK07の両方の終了を待ち合わせてからジョブK11の処理に続く。ジョブK11に、目標終了時刻が設定されている。
図9は、図8で示したジョブK01〜K11の各々の予想実行時間とリソースの使用率について示す表401である。この表401では、ジョブ定義DB55に記憶されているパラメータ55eの中から、この例についての説明に必要な項目を抜粋している。即ち、ジョブフロー「SAMPLE001」を構成する各ジョブのジョブ名401aと、それら各々のジョブに対応する予想実行時間401b、CPU使用率401c、メモリ使用率401d、ディスクI/O使用率401e、プリンタ使用401fである。
予想実行時間401bは、予想終了時刻判定部54が算出した、各ジョブの実行にかかる所要時間である。CPU使用率401c、メモリ使用率401d、ディスクI/O使用率401eは各々、各ジョブの実行に必要とされる、エージェント装置12の排他的ではないリソースであるCPU31、記憶手段32、ディスク13の利用率を示す。プリンタ使用401fは、エージェント装置12で唯一の排他的リソースであるプリンタ14が、各ジョブで使用されるか否かを示す。図9では、該ジョブでプリンタ14が使用されることを「○」で示し、使用されない場合は無印としている。
この表のデータによると、ジョブK02〜04の予想実行時間の合計が150分、ジョブK05〜K07の予想実行時間の合計が140分である。従って、このジョブフロー400では、ジョブK01→ジョブK02→ジョブK03→ジョブK04→ジョブK11のパス(図9では太線、以後パスAという)が「クリティカルパス」、ジョブK01→ジョブK08→ジョブK09→ジョブK10のパス(図9では破線、以後パスCという)が「その他のパス」、ジョブK01→ジョブK05→ジョブK06→ジョブK07→ジョブK11のパス(図9では細線、以後パスBという)が「準クリティカルパス」となる。
ここで、図8に示すジョブフロー400は「午前1時20分」に実行が開始され、現在時刻は「午前2時00分」で、ジョブK00の実行までは終了しているものとする。そして、ジョブK11の目標終了時刻は「午前5時00分」である。
ここで、ステップS101(図6)の処理で、「クリティカルパス」であるパスAの予想実行時間401bの合計が210分であるので、ジョブK11の予想終了時刻は「午前5時30分」となり、目標終了時刻「午前5時00分」より遅い。このため、図5に示したフローチャートに従い、ステップS103のパス種別の判別を行う。前述のように、パスBが「準クリティカルパス」、パスCが「その他のパス」である。
ステップS105(図6)の処理で、フロー制御部51はジョブフロー400でパスAおよびパスB上のジョブから排他的リソースを抽出する。排他的リソースはプリンタ14だけであり、パスCでこれを利用するのはジョブK09だけであるので、このジョブK09を保留とし、ジョブK08の終了後にこのパスがジョブK09の実行に進まないようにする。ジョブK08は特に保留制限がかかっていないので、投入対象はジョブK01とジョブK08となる。
次にステップS108(図7)の処理で、投入対象であるジョブK01とジョブK08について、ジョブK01は「クリティカルパス」であるパスA上のジョブであるが、排他的リソースであるプリンタ14を使用しないので、ここではステップS108(図7)の処理は行わない。
そしてステップS109の処理で、ジョブK01とジョブK08を同時に投入して実行させても、CPU使用率401cの合計は35%、メモリ使用率401dの合計は70%、ディスクI/O使用率401eの合計は45%。即ち、全てのリソースについてその使用率が100%を超えることはないので、リソース優先度制御部53はジョブK01とジョブK08について投入時点ではフロー制御部51に対して特に優先度を設定させず、エージェント装置12に転送してそのまま実行させる。
午前2時25分になって、ジョブK08が予想より5分早く25分で完了した。ジョブK08は「その他のパス」に属するジョブなので、予想終了時刻の更新は行なわない。これに続いてジョブK09の投入処理となるが、このジョブK09については排他的リソースであるプリンタ14の制約により保留がかかっているので、パスCは待ち合わせ状態となる。
午前2時30分になって、ジョブK01が予想より10分早く30分で完了した。これを受けて、再びステップS101の処理で、ジョブK11の予想終了時刻を再び計算するとパスAでは「午前5時20分」、パスBでは「午前5時10分」であるので、引き続きパスAが「クリティカルパス」のままである。
フロー制御部51は、これに引き続いてジョブK02とジョブK05の投入に係る処理を行う。「クリティカルパス」上のジョブK02は排他的リソースを使用しないので、ステップS105(図6)の処理は行われない。また、ステップS109の処理については、この時点ではエージェント装置11上にはジョブがなく、ジョブK02、ジョブK05を両方同時に実行しても、CPU使用率の合計は90%、メモリ使用率の合計は50%、ディスクI/O使用率の合計は40%であるので、全てのリソースについてその使用率が100%を越えることはない。従って、リソース優先度制御部53はジョブK02とジョブK05についても、フロー制御部51に対して特に優先度を設定させずエージェント装置12に転送して実行させる。
午前3時05分になって、ジョブK02が予想より5分早く35分で完了した。これを受けて、再びステップS101の処理で、ジョブK11の予想終了時刻を再び計算するとパスAでは「午前5時15分」、パスBでは「午前5時10分」であるので、引き続きパスAが「クリティカルパス」のままである。
フロー制御部51は、これに引き続いてジョブK03の投入に係る処理を行う。「クリティカルパス」であるパスA上のジョブK03は排他的リソースであるプリンタ14を利用するが、そのプリンタ14を利用するジョブK05が既に実行中である。
このため、ステップS304の処理で、仮にこのジョブK05を停止してジョブK03を投入した場合の、現在時刻+パスBの予想実行時間401bの合計でパスBの予想終了時刻を計算すると、現在時刻「午前3時05分」+80分(ジョブK03)+50分(ジョブK05)+30分(ジョブK06)+60分(ジョブK07)+20分(ジョブK11)=予想終了時刻「7時05分」となる。これは現在「クリティカルパス」であるパスAの予想終了時刻5時15分よりも大きく遅れることとなるので、フロー制御部51はジョブK03を投入せず、そのままジョブK05の実行完了を待ち合わせる。
午前3時10分になって、ジョブK05が予想より10分早く40分で完了した。これを受けて、再びステップS101の処理で、ジョブK11の予想終了時刻を再び計算するとパスAでは「午前5時20分」、パスBでは「午前5時00分」であるので、引き続きパスAが「クリティカルパス」のままである。なお、パスAで予想終了時刻が前回計算時よりも5分遅くなっているのは、先ほどジョブK03の投入を5分間待ち合わせた影響である。
フロー制御部51は、これに引き続いてジョブK03およびジョブK06の投入に係る処理を行う。ジョブK05が終了して、排他的リソースであるプリンタ14は既に解放されており、ジョブK03以外にこのプリンタ14を利用するジョブは無いので、ジョブK03はこのプリンタ14を利用できる。ただし、ジョブK03およびジョブK06を同時に投入すると、CPU使用率401cの合計が110%となり、100%を超える。
そのためリソース優先度制御部53はステップS109の処理で、「クリティカルパス」であるパスA上のジョブK03に対して、CPUリソースを設定通りに85%利用できるよう、即ちジョブK06に対してCPUリソースを15%しか使用しないようにフロー制御部51に設定させてエージェント装置12に実行させる。
午前3時40分になって、ジョブK06が予想通り30分で完了した。これを受けて、再びステップS101の処理で、ジョブK11の予想終了時刻を再び計算すると前回計算時と同じくパスAでは「午前5時20分」、パスBでは「午前5時00分」であるので、引き続きパスAが「クリティカルパス」のままである。
フロー制御部51は、これに引き続いてジョブK07の投入に係る処理を行う。ジョブK07は排他的リソースであるプリンタ14を使用しないので、ステップS105(図6)の処理は行われない。またパスBは「クリティカルパス」ではないので、ステップS108(図7)の処理も行われない。ただし、現在エージェント装置12ではジョブK03が実行継続中であり、ここにジョブK07を投入すると、CPU使用率401cの合計が125%となり、100%を超える。
そのためリソース優先度制御部53はステップS109の処理で、「クリティカルパス」であるパスA上のジョブK03に対して、引き続きCPUリソースを設定通りに85%利用できるよう、即ちジョブK07に対してCPUリソースを15%しか使用しないようにフロー制御部51に設定させてエージェント装置12に実行させる。
午前4時15分になって、ジョブK03が予想より15分早く65分で完了した。これを受けて、ジョブK11の予想終了時刻を再び計算すると、パスAでは「午前5時05分」、パスBでは「午前5時00分」となり、引き続きパスAが「クリティカルパス」のままである。
フロー制御部51は、これに引き続いてジョブK04の投入に係る処理を行う。ジョブK04は排他的リソースであるプリンタ14を使用しないので、ステップS105(図6)およびステップS108(図7)の処理は行われない。
そして、現在エージェント装置12ではジョブK07が実行継続中であり、ここにジョブK04を投入しても、CPU使用率401cの合計が80%、メモリ使用率401dの合計は45%、ディスクI/O使用率401eの合計は65%であるので、全てのリソースについてその使用率が100%を越えることはない。そのためリソース優先度制御部53は、ジョブK04についてはフロー制御部51に対して特に優先度を設定させずエージェント装置12に転送して実行させる。
午前4時35分になって、ジョブK04が予想より10分早く20分で完了した。パスAはパスBとの合流地点に到達したので、ここでは特に何もせず、フロー制御部51はジョブK07の終了を待ち合わせる。
午前4時40分になって、ジョブK07が予想通り60分で完了した。ジョブK04は既に完了しているので、フロー制御部51はこれに引き続いてジョブK11の投入に係る処理を行う。ジョブK11は排他的リソースであるプリンタ14を使用しないので、ステップS105(図6)の処理は行われない。また実行中の他のジョブも存在しないので、そのため、ジョブK11についてリソース優先度制御部53はフロー制御部51に対して特に優先度を設定させずエージェント装置12に転送して実行させる。
午前4時55分になって、ジョブK11が予想より5分早く15分で完了した。以上でジョブK11は、目標終了時刻であった「午前4時55分」よりも早く完了することができた。以降の処理は、通常の処理に戻ることになる。フロー制御部51は、待ち合わせ状態となっていたジョブK09(パスC)の実行を、ここでエージェント装置12に再開させる。これに続いて、ジョブK10をエージェント装置12に転送して実行させる。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るジョブフロー実行管理方法は、ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置12に対して転送して実行を依頼してジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置11にあって、ジョブ定義データとして予め記憶されたジョブフローを構成する各々のジョブの前後関係および各々のジョブが排他的リソースを使用するか否かをフロー制御部51が読み出し、目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して予想終了時刻が目標終了時刻より遅れるか否かを予想終了時刻判定部54が判別し(図5:ステップS101〜102)、予想終了時刻が目標終了時刻より遅れる場合に、ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、目標終了時刻が設定されているジョブを含んでいてかつクリティカルパスに該当しない準クリティカルパス、およびクリティカルパスと準クリティカルパスのいずれにも該当しないその他の経路にパス判定部52が分類すると共に各々のジョブがいずれの経路に含まれるかを判定し(図5:ステップS103)、ジョブ定義データベースに定義された内容に基づいてクリティカルパスおよび準クリティカルパスに属するジョブで使用される排他的リソースの一覧をフロー制御部51が抽出し(図6:ステップS201)、その他のパスに属するジョブの中で排他的リソースを使用するジョブの一覧をフロー制御部が抽出し(図6:ステップS202)、抽出された該ジョブが実行中であればフロー制御部がこれを停止し、該ジョブが実行前であればフロー制御部がこれの実行を保留し(図6:ステップS203〜205)、ジョブをジョブフローの定義に従ってフロー制御部がエージェント装置に転送する(図5:ステップS113)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるジョブフロー管理装置11に実行させるようにしてもよい。
この構成および動作により、本実施形態は以下のような効果を奏する。
本実施形態によれば、排他的リソースを使用する処理が必要であるエージェント装置にジョブを転送して実行させる際にも、目標終了時刻の設定されているクリティカルパスに含まれるジョブに優先してその排他的リソースを使用させることができるので、該クリティカルパスが目標終了時刻までに完了する可能性を高めることができる。さらに、クリティカルパスに含まれるジョブに対しては、排他的リソースに該当しないコンピュータ資源も優先して割り当てられるので、この点でも該クリティカルパスが目標終了時刻までに完了する可能性を高めることができる。
以上で説明した「より詳細な動作例」では、各ジョブの終了時刻が「予想より早く完了した」または「予想通りに完了した」ものとしたが、実際には各ジョブの終了時刻はその時点でのデータの量や各コンピュータ資源の状態などに依存するので、毎回このように良い状態で処理が行われるとは限らない。しかしながら、本実施形態の目的は、目標終了時刻の設定されているジョブを「必ずその時刻までに終わらせる」ことではなく、「その時刻までに終了する可能性を高める」ことにある。本実施形態では、その効果については前述した通りに発揮される。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
本発明はバッチジョブを管理して実行するコンピュータシステムに適用することができる。
1 バッチジョブ実行システム
11 ジョブフロー管理装置
12 エージェント装置
13 ディスク
14 プリンタ
21、31 CPU
22、32 記憶手段
23、33 通信手段
51 フロー制御部
52 パス判定部
53 リソース優先度制御部
54 予想終了時刻判定部
55 ジョブ定義DB
55e パラメータ
56 実行フロー管理DB
56g 排他制御フラグ
61 ジョブ実行制御部
62 実行ジョブ管理DB
400 ジョブフロー
401 表
401b 予想実行時間
401c CPU使用率
401d メモリ使用率
401e ディスクI/O使用率
401f プリンタ使用

Claims (6)

  1. ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼して前記ジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置であって、
    前記ジョブフローを構成する各々のジョブの前後関係および各々の前記ジョブが前記排他的リソースを使用するか否かを定義するジョブ定義データを予め記憶する記憶手段と、
    前記ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、前記目標終了時刻が設定されているジョブを含んでいてかつ前記クリティカルパスに該当しない準クリティカルパス、および前記クリティカルパスと前記準クリティカルパスのいずれにも該当しないその他の経路に分類すると共に各々の前記ジョブがいずれの経路に含まれるかを判定するパス判定部と、
    前記目標終了時刻の設定されているジョブの完了する予想終了時刻を各々の前記経路ごとに算出して前記予想終了時刻が前記目標終了時刻より遅れるか否かを判別する予想終了時刻判定部と、
    前記ジョブを前記ジョブ定義データに従って前記エージェント装置に転送するフロー制御部とを有し、
    前記フロー制御部が、前記予想終了時刻が前記目標終了時刻より遅れる場合に、前記ジョブ定義データに定義された内容に基づいて前記クリティカルパスおよび前記準クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出し、前記その他の経路に属するジョブの中で前記排他的リソースを使用するジョブの一覧を抽出し、抽出された該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する機能を有することを特徴とするジョブフロー管理装置。
  2. 前記フロー制御部が、前記予想終了時刻が前記目標終了時刻より遅れる場合に、前記ジョブ定義データに定義された内容に基づいて前記クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出する排他的リソース一覧抽出機能と、前記準クリティカルパスに属するジョブの中で前記排他的リソースを使用するジョブの一覧を抽出するジョブ一覧抽出機能と、抽出された該ジョブが実行前であればこれの実行を保留するジョブ保留機能と、該ジョブが実行中でありかつこれを停止すれば前記準クリティカルパスが前記クリティカルパスになる場合に該ジョブを停止するジョブ停止機能とを有することを特徴とする、請求項1に記載のジョブフロー管理装置。
  3. 前記ジョブ定義データに前記ジョブの各々に対応して該ジョブを実行する際の前記エージェント装置のコンピュータ資源の利用率を制限するための設定であるパラメータが含まれており、
    前記エージェント装置の前記パラメータを前記クリティカルパスに属するジョブを実行する際に前記ジョブ定義データに予め定義された通りに決定すると共に、前記準クリティカルパスもしくは前記その他の経路に属するジョブを実行する際に前記ジョブ定義データに予め定義された値よりも低い値に決定するリソース優先度制御部を有することを特徴とする、請求項2に記載のジョブフロー管理装置。
  4. 前記記憶手段が、前記ジョブフローを構成する各々のジョブが前記排他的リソースの制御に係る処理について処理済であるか否かを示す排他制御フラグを前記ジョブフローに対応して記憶する実行フロー管理データを記憶しており、
    前記フロー制御部が、前記その他の経路に属するジョブの中で前記排他的リソースを使用するジョブの実行を停止または保留する処理の後で前記排他制御フラグの値を処理済に設定するフラグ設定機能を有することを特徴とする、請求項1に記載のジョブフロー管理装置。
  5. ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼して前記ジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置にあって、
    ジョブ定義データとして予め記憶された前記ジョブフローを構成する各々のジョブの前後関係および各々の前記ジョブが前記排他的リソースを使用するか否かをフロー制御部が読み出し、
    前記目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して前記予想終了時刻が前記目標終了時刻より遅れるか否かを予想終了時刻判定部が判別し、
    前記予想終了時刻が前記目標終了時刻より遅れる場合に、前記ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、前記目標終了時刻が設定されているジョブを含んでいてかつ前記クリティカルパスに該当しない準クリティカルパス、および前記クリティカルパスと前記準クリティカルパスのいずれにも該当しないその他の経路にパス判定部が分類すると共に各々の前記ジョブがいずれの経路に含まれるかを判定し、
    前記ジョブ定義データベースに定義された内容に基づいて前記クリティカルパスおよび前記準クリティカルパスに属するジョブで使用される排他的リソースの一覧をフロー制御部が抽出し、
    前記その他の経路に属するジョブの中で前記排他的リソースを使用するジョブの一覧を前記フロー制御部が抽出し、
    抽出された該ジョブが実行中であれば前記フロー制御部がこれを停止し、該ジョブが実行前であれば前記フロー制御部がこれの実行を保留し、
    前記ジョブを前記ジョブフローの定義に従って前記フロー制御部が前記エージェント装置に転送する
    ことを特徴とするジョブフロー実行管理方法。
  6. ジョブフローを構成する各々のジョブを排他的リソースを持つエージェント装置に対して転送して実行を依頼して前記ジョブの実行結果を該エージェント装置から受信するジョブフロー管理装置にあって、
    前記ジョブフロー管理装置が備えるコンピュータに、
    ジョブ定義データとして予め記憶された前記ジョブフローを構成する各々のジョブの前後関係および各々の前記ジョブが前記排他的リソースを使用するか否かを読み出す手順、
    前記目標終了時刻の設定されているジョブの完了する予想終了時刻を算出して前記予想終了時刻が前記目標終了時刻より遅れるか否かを判別する手順、
    前記予想終了時刻が前記目標終了時刻より遅れる場合に、前記ジョブフロー内の複数のジョブで構成される経路を目標終了時刻が設定されているジョブを含んでいてかつ最も多くの処理時間を必要とするクリティカルパス、前記目標終了時刻が設定されているジョブを含んでいてかつ前記クリティカルパスに該当しない準クリティカルパス、および前記クリティカルパスと前記準クリティカルパスのいずれにも該当しないその他の経路に分類する手順、
    前記ジョブ定義データベースに定義された内容に基づいて前記クリティカルパスおよび前記準クリティカルパスに属するジョブで使用される排他的リソースの一覧を抽出する手順、
    前記その他の経路に属するジョブの中で前記排他的リソースを使用するジョブの一覧を抽出する手順、
    抽出された該ジョブが実行中であればこれを停止し、該ジョブが実行前であればこれの実行を保留する手順、
    および前記ジョブを前記ジョブフローの定義に従って前記エージェント装置に転送する手順、
    を実行させることを特徴とするジョブフロー実行管理プログラム。
JP2009268925A 2009-11-26 2009-11-26 ジョブフロー管理装置、管理方法および管理プログラム Expired - Fee Related JP5509814B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009268925A JP5509814B2 (ja) 2009-11-26 2009-11-26 ジョブフロー管理装置、管理方法および管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009268925A JP5509814B2 (ja) 2009-11-26 2009-11-26 ジョブフロー管理装置、管理方法および管理プログラム

Publications (2)

Publication Number Publication Date
JP2011113290A true JP2011113290A (ja) 2011-06-09
JP5509814B2 JP5509814B2 (ja) 2014-06-04

Family

ID=44235581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009268925A Expired - Fee Related JP5509814B2 (ja) 2009-11-26 2009-11-26 ジョブフロー管理装置、管理方法および管理プログラム

Country Status (1)

Country Link
JP (1) JP5509814B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014006740A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd 排他制御プログラム、該装置、及び該方法
JP2014099183A (ja) * 2013-12-13 2014-05-29 Hitachi Ltd 計算機システム、ストレージ管理計算機及びストレージ管理方法
WO2015097772A1 (ja) * 2013-12-25 2015-07-02 株式会社日立製作所 監視方法及び監視システム
KR101896297B1 (ko) * 2017-08-09 2018-09-07 주식회사 티맥스데이터 스플릿 태스크를 이용하여 플로우 기반의 프로세싱을 수행하기 위한 방법, 시스템, 및 장치
JP2019179280A (ja) * 2018-03-30 2019-10-17 日本電気株式会社 ジョブ実行管理システム、およびジョブ実行管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63136140A (ja) * 1986-11-27 1988-06-08 Fujitsu Ltd 最適ジヨブスケジユーリング方式
JPH0573233A (ja) * 1991-09-11 1993-03-26 Shikoku Nippon Denki Software Kk ジヨブ処理結果出力の優先度処理装置
JP2004295731A (ja) * 2003-03-28 2004-10-21 Japan Research Institute Ltd バッチジョブ管理システム及びバッチジョブ管理プログラム
JP2007241577A (ja) * 2006-03-07 2007-09-20 Nec Corp 入出力要求制御方法、計算機システム及びコンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63136140A (ja) * 1986-11-27 1988-06-08 Fujitsu Ltd 最適ジヨブスケジユーリング方式
JPH0573233A (ja) * 1991-09-11 1993-03-26 Shikoku Nippon Denki Software Kk ジヨブ処理結果出力の優先度処理装置
JP2004295731A (ja) * 2003-03-28 2004-10-21 Japan Research Institute Ltd バッチジョブ管理システム及びバッチジョブ管理プログラム
JP2007241577A (ja) * 2006-03-07 2007-09-20 Nec Corp 入出力要求制御方法、計算機システム及びコンピュータプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014006740A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd 排他制御プログラム、該装置、及び該方法
JP2014099183A (ja) * 2013-12-13 2014-05-29 Hitachi Ltd 計算機システム、ストレージ管理計算機及びストレージ管理方法
WO2015097772A1 (ja) * 2013-12-25 2015-07-02 株式会社日立製作所 監視方法及び監視システム
KR101896297B1 (ko) * 2017-08-09 2018-09-07 주식회사 티맥스데이터 스플릿 태스크를 이용하여 플로우 기반의 프로세싱을 수행하기 위한 방법, 시스템, 및 장치
JP2019179280A (ja) * 2018-03-30 2019-10-17 日本電気株式会社 ジョブ実行管理システム、およびジョブ実行管理方法
JP7014010B2 (ja) 2018-03-30 2022-02-01 日本電気株式会社 ジョブ実行管理システム、およびジョブ実行管理方法

Also Published As

Publication number Publication date
JP5509814B2 (ja) 2014-06-04

Similar Documents

Publication Publication Date Title
US20190377604A1 (en) Scalable function as a service platform
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
US8413161B2 (en) Work queue selection on a local processor within a multiple processor architecture
US20160306663A1 (en) Method and system for allocating fpga resources
US9792059B2 (en) Dynamic resource allocation for distributed cluster-storage network
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
JP5509814B2 (ja) ジョブフロー管理装置、管理方法および管理プログラム
US11314545B2 (en) Predicting transaction outcome based on artifacts in a transaction processing environment
US10721177B2 (en) Completion-side client throttling
US11321123B2 (en) Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks
EP3066578B1 (en) Strict queue ordering in a distributed system
US10606650B2 (en) Methods and nodes for scheduling data processing
US20190272196A1 (en) Dispatching jobs for execution in parallel by multiple processors
CN110235105B (zh) 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的系统和方法
EP3539278B1 (en) Method and system for affinity load balancing
JP6046523B2 (ja) インメモリ型分散データベース、データ分散方法及びプログラム
US10270715B2 (en) High performance network I/O in a virtualized environment
JP2013206041A (ja) 通信システム及び負荷分散処理装置
US20170052827A1 (en) Using Multiple Central Processing Unit Cores for Packet Forwarding in Virtualized Networks
CN115904644A (zh) 任务调度方法、电子设备和计算机程序产品
US8977795B1 (en) Method and apparatus for preventing multiple threads of a processor from accessing, in parallel, predetermined sections of source code
CN115202560A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN111767120A (zh) 基于消息与事件的多任务处理单元的调度方法与装置
JP2011054047A (ja) ジョブフロー実行装置、ジョブフロー実行方法およびジョブフロー実行プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140310

R150 Certificate of patent or registration of utility model

Ref document number: 5509814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees