特許第6302103号(P6302103)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社三菱東京UFJ銀行の特許一覧

<>
  • 特許6302103-ジョブネット管理装置及びプログラム 図000002
  • 特許6302103-ジョブネット管理装置及びプログラム 図000003
  • 特許6302103-ジョブネット管理装置及びプログラム 図000004
  • 特許6302103-ジョブネット管理装置及びプログラム 図000005
  • 特許6302103-ジョブネット管理装置及びプログラム 図000006
  • 特許6302103-ジョブネット管理装置及びプログラム 図000007
  • 特許6302103-ジョブネット管理装置及びプログラム 図000008
  • 特許6302103-ジョブネット管理装置及びプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6302103
(24)【登録日】2018年3月9日
(45)【発行日】2018年3月28日
(54)【発明の名称】ジョブネット管理装置及びプログラム
(51)【国際特許分類】
   G06F 9/48 20060101AFI20180319BHJP
【FI】
   G06F9/46 452H
【請求項の数】10
【全頁数】15
(21)【出願番号】特願2017-8178(P2017-8178)
(22)【出願日】2017年1月20日
(62)【分割の表示】特願2015-115555(P2015-115555)の分割
【原出願日】2015年6月8日
(65)【公開番号】特開2017-91571(P2017-91571A)
(43)【公開日】2017年5月25日
【審査請求日】2017年1月20日
(73)【特許権者】
【識別番号】598049322
【氏名又は名称】株式会社三菱東京UFJ銀行
(74)【代理人】
【識別番号】110000408
【氏名又は名称】特許業務法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】田島 典裕
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 特開2008−287509(JP,A)
【文献】 特開2009−230584(JP,A)
【文献】 特開2012−203732(JP,A)
【文献】 特開2004−295731(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
複数のジョブの実行手順を規定するジョブネットを記録する記憶部と、
同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する判定部と、
前記判定部により肯定する判定がなされた場合に、前記複数のジョブに規定される先行後続関係に基づき、前記ジョブネットを再構成する構成処理部と、
を備え、
前記構成処理部による前記ジョブネットの再構成は、先行後続関係を有するジョブ間において新たな接続関係を構築することを含み、
前記新たな接続関係の構築は、先行ジョブについて新たな接続関係の構築が可能か否かを示す情報、又は、後続ジョブについて新たな接続関係の構築が可能か否かを示す情報に基づいて実行される、ジョブネット管理装置。
【請求項2】
前記判定部による判定は、前記ジョブネットに基づく前記複数のジョブの実行中に行われる、請求項1に記載のジョブネット管理装置。
【請求項3】
前記複数のジョブそれぞれのステータスを管理するステータス管理部をさらに備える、請求項1又は2に記載のジョブネット管理装置。
【請求項4】
前記判定部は、現在実行中のジョブの数が前記予め決められた個数であって、かつ、新たなジョブを起動する命令が発せられたとき、同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定する、請求項1乃至3のいずれか1項に記載のジョブネット管理装置。
【請求項5】
前記構成処理部による前記ジョブネットの再構成は、さらに前記複数のジョブそれぞれの優先度に基づいて実行される、請求項1乃至4のいずれか1項に記載のジョブネット管理装置。
【請求項6】
コンピュータを、
複数のジョブの実行手順を規定するジョブネットを記録する記憶部と、
同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する判定部と、
前記判定部により肯定する判定がなされた場合に、前記複数のジョブに規定される先行後続関係に基づき、前記ジョブネットを再構成する構成処理部として機能させるプログラムであって、
前記構成処理部による前記ジョブネットの再構成は、先行後続関係を有するジョブ間において新たな接続関係を構築することを含み、
前記新たな接続関係の構築は、先行ジョブについて新たな接続関係の構築が可能か否かを示す情報、又は、後続ジョブについて新たな接続関係の構築が可能か否かを示す情報に基づいて実行される、プログラム。
【請求項7】
前記判定部による判定は、前記ジョブネットに基づく前記複数のジョブの実行中に行われる、請求項6に記載のプログラム。
【請求項8】
前記コンピュータを、
前記複数のジョブそれぞれのステータスを管理するステータス管理部としてさらに機能させる、請求項6又は7に記載のプログラム。
【請求項9】
前記判定部に、現在実行中のジョブの数が前記予め決められた個数であって、かつ、新たなジョブを起動する命令が発せられたとき、同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定させる、請求項6乃至8のいずれか1項に記載のプログラム。
【請求項10】
前記構成処理部による前記ジョブネットの再構成は、さらに前記複数のジョブそれぞれの優先度に基づいて実行される、請求項6乃至9のいずれか1項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジョブの実行手順を定義するジョブネットに基づいて複数のジョブを管理するジョブネット管理装置に関する。
【背景技術】
【0002】
近年、企業内における様々な定型業務を自動化する技術として、ジョブネットワークが知られている。ジョブネットワークは、定型業務を自動化するにあたって必要となるジョブを体系的にまとめたものであり、ジョブネットを含む階層構造を有している。ジョブネットとは、ジョブネットワークを構成する最小単位であるジョブの集まりであり、各ジョブの実行手順が規定されたものを指す。つまり、ジョブネットは、互いに関連する複数のジョブについて、各ジョブの処理内容、実行すべき時刻、実行結果の出力先、ジョブ間の先行後続関係等を規定している。
【0003】
ジョブ管理装置は、ジョブネットワークの実行を管理するための装置であり、例えば企業内サーバの形態で企業内に配置される。ジョブ管理装置は、ジョブネットに従って個々のジョブの実行制御を行い、ジョブネットワークの実行を総合的に管理して、企業内における日常の定型業務を遂行する。これにより、日常の定型業務の効率化と、それら定型業務の管理負担の低減とを実現することができる。
【0004】
このようなジョブ管理装置には、限られたハードウェア・リソースの効率的な利用を図るために、同時に実行可能なジョブの数を制限するものがある。特許文献1に記載された技術は、ジョブ管理装置に、同時に実行可能なジョブの数(多重度)を特定する機能を設け、実行中のジョブ数が最大限の数に達している場合、新たなジョブの起動を見送るものである。これにより、強制的に、制限を超えた数のジョブが同時に実行されないようにすることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平8−44574号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に記載された技術は、実行中のジョブ数が最大限の数に達していると、新たなジョブの起動を見送ることしかできない。この場合、起動を見送られたジョブは、予定していた時刻にジョブを実行することができないという問題がある。また、特許文献1には、実行中のジョブが終了して多重度条件が解除されると、その時点で保留しているジョブを起動することができる旨の記載がある。この場合においても、起動が見送られたジョブは、他の実行中のジョブが終了するまで単に待機するしかできない。
【0007】
このように、特許文献1に記載された技術では、実行中のジョブ数を制限することによってハードウェア・リソースの効率的な利用を図るという目的は一応果たせるものの、重要なジョブの遅延を招く恐れがあるという問題がある。特に、起動を見送られたジョブの終了を条件とする後続のジョブが存在する場合には、さらに後続するジョブにまで遅延が伝播してしまうという問題がある。
【0008】
本発明は、このような問題を克服するために、ハードウェア・リソースの効率的な利用を図りつつ、ジョブネットワークにおけるジョブの遅延を低減することを課題とする。
【課題を解決するための手段】
【0009】
本発明の一実施形態によるジョブ管理装置は、複数のジョブの実行手順を規定するジョブネットを記録する記憶部と、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する判定部と、前記判定部により肯定する判定がなされた場合に、前記複数のジョブに規定される先行後続関係に基づき、前記ジョブネットを再構成する構成処理部と、を備える。
【0010】
ジョブ管理装置は、前記記憶部に記録された前記ジョブネットを参照して、前記複数のジョブの実行を制御する実行制御部をさらに備えてもよいし、前記複数のジョブそれぞれのステータスを管理するステータス管理部をさらに備えてもよい。
【0011】
前記判定部は、前記ジョブネット及び前記複数のジョブそれぞれのステータスに基づいて、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定してもよい。また、現在実行中のジョブの数が前記予め決められた個数であって、かつ、新たなジョブを起動する命令が発せられたとき、同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定してもよい。
【0012】
前記ジョブネットは、前記先行後続関係の解消が可能か否かを示すフラグ及び前記複数のジョブそれぞれの優先度の少なくともいずれかを含んでもよい。さらに、前記構成処理部は、前記フラグ又は前記優先度の少なくともいずれかに基づいて、前記ジョブネットを再構成してもよい。
【0013】
また、本発明の他の実施形態によるプログラムは、コンピュータを、複数のジョブの実行手順を規定するジョブネットを記録する記憶部と、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する判定部と、前記判定部により肯定する判定がなされた場合に、前記複数のジョブに規定される先行後続関係に基づき、前記ジョブネットを再構成する構成処理部として機能させる。
【0014】
プログラムは、前記コンピュータを、前記記憶部に記録された前記ジョブネットを参照して、前記複数のジョブの実行を制御する実行制御部としてさらに機能させてもよいし、前記複数のジョブそれぞれのステータスを管理するステータス管理部としてさらに機能させてもよい。
【0015】
前記プログラムは、前記判定部に、前記ジョブネット及び前記複数のジョブそれぞれのステータスに基づいて、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定させてもよい。また、現在実行中のジョブの数が前記予め決められた個数であって、かつ、新たなジョブを起動する命令が発せられたとき、同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定させてもよい。さらに、前記構成処理部に、前記記憶部に記録された前記先行後続関係の解消が可能か否かを示すフラグ又は前記複数のジョブそれぞれの優先度の少なくともいずれかに基づいて、前記ジョブネットを再構成させてもよい。
【発明の効果】
【0016】
本発明によれば、ハードウェア・リソースの効率的な利用を図りつつ、ジョブネットワークにおけるジョブの遅延を低減することが可能となる。
【図面の簡単な説明】
【0017】
図1】第1実施形態に係るジョブ管理システムを示すブロック図である。
図2】第1実施形態におけるジョブネットテーブルの一例を示す図である。
図3】第1実施形態におけるステータステーブルの一例を示す図である。
図4】第1実施形態のジョブネットにおける各ジョブの先行後続関係の一例を示す図である。
図5】第1実施形態のジョブネットにおける再構成後の各ジョブの先行後続関係の一例を示す図である。
図6】第1実施形態における再構成後のジョブネットテーブルの一例を示す図である。
図7】第1実施形態における管理マネージャの処理の流れを示すフローチャート図である。
図8】第2実施形態におけるジョブネットテーブルの一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の一実施形態に係る携帯端末について、図面を参照しながら詳細に説明する。以下に示す実施形態は本発明の実施形態の一例であって、本発明はこれらの実施形態に限定されるものではない。なお、本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字の後にa、bなどを付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。また、構成の一部が図面から省略されたりする場合がある。
【0019】
(第1実施形態)
<システム構成>
図1は、本発明の第1実施形態に係るジョブ管理システム10を示すブロック図である。ジョブ管理システム10は、管理マネージャ100、実行エージェント200a、及び実行エージェント200bが、ネットワーク300を介して相互に接続されている。なお、ネットワークは、識別子を用いて宛先指定が可能なネットワークを指し、例えばインターネット、LAN(Local Area Network)、WAN(Wide Area Network)を用いることができる。
【0020】
管理マネージャ100は、ジョブネットワークを構成する複数のジョブの実行を統括的に管理する役割を果たす。本実施形態では、管理マネージャとしての機能をコンピュータに実行させるプログラムをインストールしたコンピュータ(ジョブ管理装置)として説明するが、そのようなプログラム自体を管理マネージャ100として捉えてもよい。図1に示す管理マネージャ100は、実行制御部110、記憶部120、判定部130、及び構成処理部140を備える。実行制御部110は、具体的な機能ブロックとして、実行処理部112、及びステータス管理部114を含む。また、記憶部120には、ジョブネットテーブル122、及びステータステーブル124を含む。
【0021】
実行エージェント200a及び200bは、ジョブネットワークを構成する複数のジョブを実行する役割を果たす。本実施形態では、実行エージェントとしての機能をコンピュータに実行させるプログラムをインストールしたコンピュータ(ジョブ実行装置)として説明するが、そのようなプログラム自体を実行エージェント200a及び200bとして捉えてもよい。なお、図1では、2台の実行エージェントを例示しているが、台数に制限はなく、3台以上の実行エージェントが接続されていてもよい。
【0022】
図1に示す実行エージェント200aは、業務処理部210a及び業務データ210bを含み、実行エージェント200bは、業務処理部220a及び業務データ220bを含む。業務処理部210a及び220aは、管理マネージャ100から取得したジョブを実際に実行する機能ブロックであり、それぞれ業務データ210b及び220bを用いて予め決められた業務(ジョブ)を実行する。なお、業務データ220a及び220bは、実際の業務に関する文書データだけでなく、業務用アプリケーションをも含む。これら業務データ210b及び220bは、データベースの形式で記憶媒体に記憶されていてもよいし、ネットワーク300を介して外部サーバから取得したものであってもよい。
【0023】
ここで、図1を用いて管理マネージャ100の具体的な構成について説明する。実行制御部110は、実行エージェント200a及び200bに実行させる各ジョブの制御を行う機能を有する。具体的には、実行処理部112による各ジョブにおける実行処理の制御と、ステータス管理部114による各ジョブにおける状態管理制御とを協働させて、各ジョブの全体的な実行制御を行う機能を有する。なお、ここでは実行処理部112及びステータス管理部114という形態で具体的な機能を示しているが、このような形態に限定する趣旨ではない。例えば、実行制御部110に対して「毎朝8時からジョブAを実行する」などの処理サイクル(スケジュール)を管理するスケジュール管理部を設け、記憶部120に、そのスケジュール管理部が参照するカレンダー(日時テーブル)を記憶しておくことも可能である。
【0024】
上述の実行処理部112は、記憶部120にジョブネットテーブル122として記憶されたジョブネットを参照して各ジョブの実行手順を取得する。そして、取得した実行手順に従って各ジョブの実行処理を制御する。各ジョブの実行処理は、例えば、実行エージェント200a又は200bに対するキューを生成し、当該キューを介して実行エージェント200a又は200bにジョブを転送することにより実現することができる。勿論、これは一例であり、公知の如何なる方法でジョブの実行処理を実現してもよい。
【0025】
図2は、第1実施形態におけるジョブネットテーブル122の一例を示す図である。図2に示すジョブネットテーブル122は、ジョブ名を示す列1221、先行ジョブ名を示す列1222、後続ジョブ名を示す列1223、開始予定時刻を示す列1224、終了予定時刻を示す列1225、その他の情報を示す列1226を含む。ただし、ジョブネットテーブル122に記憶する項目は、これらの項目に限らず、任意に設定可能である。
【0026】
ジョブ名を示す列1221には、実行対象となるジョブの名前が記憶される。ここでは、「Job-a」等の記述が各ジョブの名前を表している。なお、図2に示すジョブネットテーブル122では、ジョブ名を例示しているが、ジョブ名に代えて、ジョブを一意に特定する識別子を用いても良い。また、実行対象がジョブではなく、複数のジョブの集合体を単位とするジョブネットである場合は、ジョブネット名を記憶しておいてもよい。
【0027】
先行ジョブ名を示す列1222には、実行対象となるジョブの直前に実行されるジョブ名が記憶される。先行ジョブ名が記憶されている場合、実行対象となるジョブは、先行ジョブが終了したことを条件として、処理が実行されることを意味する。先行ジョブは、1つに限らず、複数の先行ジョブを有する場合もある。
【0028】
後続ジョブ名を示す列1223には、実行対象となるジョブの直後に実行されるジョブ名が記憶される。後続ジョブ名が記憶されている場合、実行対象となるジョブの終了を条件として、後続ジョブが実行されることを意味する。後続ジョブは、1つとは限らず、複数の後続ジョブを有する場合もある。
【0029】
開始予定時刻を示す列1224には、実行対象となるジョブの処理が開始される予定時刻、すなわちジョブの起動予定時刻が記憶される。また、終了予定時刻を示す列1225には、実行対象となるジョブの処理が終了する予定時刻が記憶される。これら開始予定時刻を示す列1224及び終了予定時刻を示す列1225にそれぞれ記憶された開始予定時刻及び終了予定時刻に従って、各ジョブの実行開始及び実行終了の制御がなされる。
【0030】
その他の情報を示す列1226には、ジョブの実行手順に関する他の情報を記憶させておくことが可能である。例えば、ジョブの種別(例えば、単一のジョブであるかジョブネットであるか等)、実行対象のジョブの終了期限、実行プログラム、実行先のエージェント名などを例示することができる。
【0031】
上述の実行処理部112は、以上説明したジョブネットテーブル122に基づいて、各ジョブの実行手順を取得し、実行手順に示される先行ジョブの終了や開始予定時刻といった条件を満たした場合にジョブの起動処理を行い、当該ジョブの終了や終了予定時刻といった条件を満たした場合に後続ジョブを起動する。
【0032】
図1に戻って、ステータス管理部114は、記憶部120にステータステーブル124として記憶された各ジョブのステータスを管理する。具体的には、ステータス管理部114は、実行処理部112による各ジョブの実行処理の状況を把握し、各ジョブの過去及び現在の状態をステータスとして記録する。具体的には、実行処理部112の処理内容に基づいて各ジョブにおける過去の実行結果、現在の処理状況、実際の開始時刻及び終了時刻などを取得し、それらの情報に基づいてステータステーブル124を更新することにより、逐次各ジョブの状態の推移を管理する。
【0033】
図3は、第1実施形態におけるステータステーブル124の一例を示す図である。図3に示すステータステーブル124は、ジョブ名を示す列1241、ステータスを示す列1242、開始時刻を示す列1243、終了時刻を示す列1244、その他の情報を示す列1245を含む。ただし、ステータステーブル124に記憶する項目は、これらの項目に限らず、任意に設定可能である。なお、図3に示したステータステーブル124は、具体的には、「08:10」時点での各ジョブのステータスを示している。
【0034】
ジョブ名を示す列1241には、実行対象となるジョブの名前が記憶される。ここでは、「Job-a」等の記述が各ジョブの名前を表している。なお、図3に示すステータステーブル124では、ジョブ名を例示しているが、ジョブ名に代えて、ジョブを一意に特定する識別子を用いても良い。また、実行対象がジョブではなく、複数のジョブの集合体を単位とするジョブネットである場合は、ジョブネット名を記憶しておいてもよい。
【0035】
ステータスを示す列1242には、実行対象となるジョブの過去又は現在の状態を示す情報が記憶される。図3に示す一例において、「正常終了」とは、ジョブがジョブネットに規定される実行手順どおりに実行され、正常に完了していることを意味する。「遅延」とは、ジョブが何らかの理由により遅れて実行されていることを意味する。「実行中」とは、ジョブがジョブネットに規定される実行手順どおりに正常に実行されていることを意味する。「待機中」とは、ジョブが実行処理の開始を待っていることを意味する。また、ここでは例示していないが、ジョブがジョブネットに規定される実行手順どおりに実行されなかった場合は「異常終了」のステータスを記憶させてもよい。なお、ここに例示した各ステータスは一例に過ぎず、必要とするステータスを任意に設定すればよい。
【0036】
開始時刻を示す列1243には、実行対象となるジョブの処理が開始された時刻、すなわちジョブの実際の起動時刻が記憶される。また、終了時刻を示す列1244には、実行対象となるジョブの処理が終了した時刻が記憶される。例えば、ジョブ「Job-a」及び「Job-b」の処理は、「07:00」に開始され、「07:15」に終了している。図2に示したジョブネットテーブル122を参照すると、各ジョブ「Job-a」及び「Job-b」は、開始予定時刻に実行され、終了予定時刻に完了していることが分かる。したがって、各ジョブ「Job-a」及び「Job-b」のステータスは「正常終了」になっている。他方、ジョブ「Job-g」の処理は、「07:20」に開始され、未だに完了していないため終了時刻が記憶されていない。図2に示したジョブネットテーブル122を参照すると、ジョブ「Job-g」は、開始予定時刻に実行されたものの、終了予定時刻を経過しても処理が継続中であるため、何らかの理由で処理が遅れていることが分かる。したがって、ジョブ「Job-g」のステータスは「遅延」になっている。このように、開始時刻を示す列1243及び終了時刻を示す列1244において、空欄となっている部分は、未だにジョブの実行結果が確定していないことを意味する。
【0037】
その他の情報を示す列1245には、ジョブのステータスに関する他の情報を記憶させておくことが可能である。例えば、ジョブの実行に関して、開始予定時刻と実際の開始時刻の差分、終了予定時刻と実際の終了時刻の差分などを例示することができる。
【0038】
上述のステータス管理部114は、実行処理部112から取得した情報に基づいて、以上説明したステータステーブル124の更新を行う。このように各ジョブのステータスをステータステーブル124に基づいて管理することにより、現時点におけるジョブネットワークの構成を把握することができ、後述するジョブネットテーブル122の更新処理に活用することができる。なお、ステータステーブル124として記憶された情報は、実行処理部112が参照してもよい。各ジョブの実行タイミングに関しては、ジョブネットテーブル122だけでなく、ステータステーブル124をも参照した方がより細やかな実行制御が可能となるからである。
【0039】
また、本実施形態では、ジョブネットテーブル122とステータステーブル124とを区別して記載しているが、両者は、1つのテーブルであってもよい。ジョブネットテーブル122及びステータステーブル124は、いずれもハードウェア資源としてのメモリにおける所定の記憶領域に記憶された情報であるから、それらが物理的に単一のメモリに記憶されていても別々のメモリに記憶されていても機能的には変わりはない。ただし、両者を別個のメモリに分けることにより、ジョブネットテーブル122及びステータステーブル124に対して並列に(同時に)アクセスすることが可能となるため、処理の高速化という観点からは、別々のテーブルとして異なるメモリに記憶した方が良い場合もある。
【0040】
再び図1に戻って、判定部130について説明する。判定部130は、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する機能を有する。「同一時刻」は、現在から所定期間先の未来までのどの時刻であってもよい。つまり、ある時刻において、同時に実行されているジョブの個数が予め決められた個数(制限値)を超えるか否かを事前に予測する機能と捉えてもよい。なお、予め決められた個数は、複数のジョブが実行される実行先における管理者によって予め設定された個数であってもよいし、ジョブ管理システム10の管理者によって予め設定された個数であってもよい。本実施形態では、予め決められた個数は「5」とする場合を例示するが、この個数に限定されるものではない。
【0041】
判定部130は、記憶部120に記憶されたジョブネットテーブル122及びステータステーブル124の少なくともいずれか一方を参照して、同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かを判定する。例えば、ジョブネットテーブル122から取得したジョブネット(各ジョブの実行手順)と、ステータステーブル124から取得した各種情報(各ジョブのステータス、実際の開始時刻等)に基づいて、同時に実行されるジョブの個数が予め決められた個数を超えるか否かを判定することができる。
【0042】
同一時刻に実行されるジョブの個数が予め決められた個数を超えるか否かの判定は、様々な手法を採用することができる。一例としては、まず、ステータステーブル124を参照して現在実行中のジョブの個数を確認する。このとき、現在実行中のジョブの個数が上述した予め決められた個数である場合、もう1つでもジョブが起動されると制限を超えることになる。したがって、判定部130は、現在実行中のジョブの個数が予め決められた数(例えば「5」)であって、かつ、新たなジョブを起動する命令が実行処理部112から発せられたとき、実行中のジョブが「6」に達すると判断し、同一時刻に実行されるジョブの個数が予め決められた個数を超えるとの判定を行うことができる。
【0043】
また、他の一例としては、ジョブネットテーブル122から取得した各ジョブの開始予定時刻等の各種情報と、ステータステーブル124から取得した各ジョブの現在のステータス等の各種情報とに基づいて、所定期間先の時点(時刻)における各ジョブのステータスを予測し、その予測に基づいて同一時刻に実行されるジョブの個数が予め決められた個数を超えるとの判定を行うことができる。
【0044】
以上説明した判定部130の機能は、CPU等のハードウェア資源が、ハードウェア資源としての記憶部120に記憶された各種テーブルから情報を取得することにより、上述した判定部130としての機能に応じた演算処理又は加工を行うことにより実現される。すなわち、ジョブネットテーブル122及びステータステーブル124の少なくともいずれか一方を読み込んでジョブの開始予定時刻等の実行手順、ステータス、実際の開始時刻等の情報を取得し、ある時刻において実行し得るジョブの個数を求め、その個数が所定値を超えるか否かの比較演算を行った結果として、肯定又は否定の判定結果を出力することができる。
【0045】
次に、構成処理部140について説明する。構成処理部140は、判定部130により肯定する判定がなされた場合(同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定された場合)に、各ジョブに規定される先行後続関係に基づき、ジョブネットを再構成する機能を有する。具体的には、同一時刻に実行されるジョブの個数が予め決められた個数を超える場合に、その時刻において実行されるジョブの個数が予め決められた個数を超えないように各ジョブの実行手順(すなわちジョブネット)を変更する機能を有している。なお、本実施形態の場合、ジョブネットを再構成するとは、ジョブネットテーブル122を更新することを意味する。すなわち、ジョブネットを再構成するとは、予め設定されたジョブネットを、判定部130の判定に基づいて変更し、新たなジョブネットを再構築することを意味する。
【0046】
構成処理部140におけるジョブネットの再構成処理は、予め決められた再構成ルールに従って実行される。再構成ルールは、ジョブネットを変更するルールを定義したものであり、ジョブ管理システム10の管理者が適宜設定することができる。ここで、構成処理部140が実行する再構成処理について、図4〜6を用いて説明する。
【0047】
図4は、第1実施形態のジョブネットにおける各ジョブの先行後続関係の一例を示す図である。図4に示す例では、アルファベット順にジョブ(Job-a)21からジョブ(Job-t)40まで合計20個のジョブの先行後続関係が表されている。なお、図4に示す各ジョブの先行後続関係は、図2に示したジョブネットテーブル122として記憶されたジョブネットに対応する。例えば、図2に示すジョブ名を示す列1221、先行ジョブ名を示す列1222及び後続ジョブ名を示す列1223によれば、「Job-b」には先行ジョブはなく、後続ジョブとして「Job-e」及び「Job-f」が記憶されている。これに関し、図4には、ジョブ(Job-b)22の前にジョブはなく、後続ジョブとしてジョブ(Job-e)25及びジョブ(Job-f)26が示されている。また、ジョブネットテーブル122よれば、「Job-l」の先行ジョブは「Job-j」であり、後続ジョブとして「Job-o」、「Job-p」、「Job-q」、「Job-r」など複数のジョブが記憶されている。これに関し、図4には、ジョブ(Job-l)32の前にはジョブ(Job-j)30が存在し、後続ジョブとしてジョブ(Job-o)35、ジョブ(Job-p)36、ジョブ(Job-q)37及びジョブ(Job-r)38が示されている。
【0048】
このような先行後続関係を有するジョブネットにおいて、例えば、ジョブ(Job-n)34〜ジョブ(Job-s)39までの合計6個のジョブの実行開始予定時刻が「08:15」であったとする。この場合、時刻が「08:15」になった時点で、実行中のジョブの個数が予め決められた個数(5個)を超えることとなる。また、図2に示されるようにジョブ(Job-g)27は時刻「07:30」の時点で終了する予定となっているが、何らかの問題が生じて処理に遅延が生じた場合、時刻「08:15」までジョブ(Job-g)27がずれ込むことも考えられる。この場合には、最大で7個のジョブが同時に実行されてしまうこととなる。これらは一例に過ぎず、他にも様々な要因によって同時に実行されるジョブの個数が制限数(予め決められた個数)を超える場合があり得る。
【0049】
本実施形態のジョブ管理システム10における構成処理部140は、そのような場合(すなわち、判定部130により同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定された場合)に、例えば図5に示すようにジョブネットの再構成を行うことができる。図5は、本実施形態のジョブネットにおける各ジョブの先行後続関係の一例を示す図である。具体的には、図4に示すジョブネットを再構成した後のジョブネットの先行後続関係を示している。
【0050】
図5に示すように、まずジョブ(Job-q)37がジョブ(Job-l)32との先行後続関係を解消し、新たにジョブ(Job-p)36との間で先行後続関係を形成している。具体的には、ジョブ(Job-q)37は、ジョブ(Job-l)32の後続ジョブであった状態から、ジョブ(Job-p)36の後続ジョブへと変更されている。これにより、ジョブ(Job-q)37は、少なくともジョブ(Job-p)36が終了しない限り実行されることはなく、上述の同時に実行されるジョブの個数が6個になってしまう状態を回避することができる。
【0051】
また、図5に示す一例では、ジョブ(Job-g)27とジョブ(Job-l)32との間に新たな先行後続関係を形成している。具体的には、ジョブ(Job-l)32は、ジョブ(Job-j)30のみの後続ジョブであった状態から、ジョブ(Job-j)30に加えてジョブ(Job-g)27の後続ジョブへと変更されている。これにより、ジョブ(Job-l)32及びその後続ジョブであるジョブ(Job-o)35、ジョブ(Job-p)36、及びジョブ(Job-r)38は、少なくともジョブ(Job-g)27が終了しない限り実行されることはない。つまり、上述のようにジョブ(Job-g)27の遅延により、ジョブ(Job-g)27と他のジョブ(Job-p)36等とが同じタイミングで実行されることがなくなるため、同時に実行されるジョブの個数が7個になってしまう状態を回避することができる。
【0052】
ここで、構成処理部140による再構成処理が行われた後のジョブネットテーブルについて図6を用いて説明する。図6は、再構成後のジョブネットテーブル126の一例を示す図である。具体的には、図6に示すジョブネットテーブル126は、図2に示したジョブネットテーブル122に対し、図5を用いて説明したジョブネットの再構成を反映させて更新した後のジョブネットテーブルに相当する。なお、図2に示すジョブネットテーブル122との比較において、変更点は二重線の枠内の項目である。
【0053】
図6に示されるように、ジョブ名を示す列1221における「Job-g」を見ると、後続ジョブが「Job-l」に変更されている。また、ジョブ名を示す列1221における「Job-l」及び「Jo-q」を見ると、「Job-l」については先行ジョブ名が「Job-j」及び「Job-g」の2つに変更され、「Job-q」については先行ジョブ名が「Job-p」に変更されている。さらに、「Job-q」については、「Job-p」の終了が実行開始の条件となったことに伴い、開始予定時刻及び終了予定時刻が変更されている。
【0054】
以上のように、本実施形態の管理マネージャ100は、実行制御部110によりジョブネットワークを構成する各ジョブの実行を制御しつつ、判定部130により同一時刻に実行されるジョブの個数が予め決められた個数を超えないように監視する。そして、判定部130により超えると判定された場合に、構成処理部140が動的にジョブネットを再構成し、同時に実行されるジョブの個数が予め設定された制限数を超えないように制御することができる。
【0055】
図7は、第1実施形態における管理マネージャ100の処理の流れを示すフローチャート図である。まず、ジョブネットワークにおける先頭のジョブが起動されたタイミングで図7に示すフローが開始される。例えば、図4に示すジョブ(Job-a)21、ジョブ(Job-b)22、及びジョブ(Job-c)23が起動した時点で処理が開始される。ただし、これに限らず、予め設定した任意のタイミングで図7に示す処理を開始させてもよい。
【0056】
次に、判定部130が、実行中のジョブの個数を確認する(ステップS51)。具体的には、記憶部120に記憶されたステータステーブル124(例えば、図3示したにステータステーブル124におけるステータスを示す列1242)を参照して、ある時刻において実行中のジョブを検出してカウントする。なお、ここではステータステーブル124を参照する例を示したが、ジョブネットテーブル122を併せて参照することもできる。
【0057】
実行中のジョブの個数を確認したら、判定部130は、同一時刻に実行されるジョブの個数が予め決められた個数(制限数)を超えるか否かが判定される(ステップS52)。この処理では、例えば上述したように、現在実行中のジョブの個数が予め決められた数であって、かつ、新たなジョブを起動する命令が実行処理部112から発せられたとき、同一時刻に実行されるジョブの個数が予め決められた個数を超えるとの判定を行うことができる。
【0058】
ステップS51における判定が否定の場合(Noの場合)は、再びステップS51に戻って実行中のジョブの個数を確認する。なお、図7に示す処理では、実行中のジョブの個数を常に監視する形となっているが、これに限らず、一旦フローを終了し、再び何らかのタイミングで図7に示す処理を行うことも可能である。
【0059】
ステップS51における判定が肯定の場合(Yesの場合)は、構成処理部140によるジョブネットの再構成処理が行われる(ステップS53)。これにより、同一時刻に実行されるジョブの個数が予め決められた個数を超えると判定された場合にはただちにジョブネットが再構成され、同一時刻に実行されるジョブの個数を減らすことができる。
【0060】
以上のように、第1実施形態によれば、同時に実行されるジョブ数を制限してハードウェア・リソースの効率的な利用を図ることができる。さらに、実行中のジョブの個数が制限数を超える場合において、従来のように単にジョブの起動を禁止するのではなく、ジョブネットを再構成してジョブの継続的な起動又は処理を確保することにより、ジョブネットワークにおけるジョブの遅延を低減することができる。
【0061】
(第2実施形態)
本発明の第2実施形態では、第1実施形態とは異なるジョブネットテーブルを用いた例について説明する。図8は、第2実施形態におけるジョブネットテーブル128の一例を示す図である。なお、図2に示すジョブネットテーブル122と同一の項目については、同一の符号を用いて示し、ここでの説明は省略する。本実施形態では、ジョブネットテーブル122との違いに着目して説明する。
【0062】
本実施形態におけるジョブネットテーブル128には、新たに解消フラグを示す列1281及び優先度を示す列1282が追加されている。解消フラグとは、実行対象となるジョブ(図8において、ジョブ名を示す列1221に記憶されたジョブ)と当該実行対象となるジョブに関連付けられた先行ジョブ又は後続ジョブとの先行後続関係を解消できるか否かを示すフラグである。つまり、解消フラグが「OK」であれば、先行ジョブ又は後続ジョブとの関係を解消し、新たな接続関係を構築することが可能である。逆に、解消フラグが「NG」であれば、先行ジョブ又は後続ジョブとの接続関係を解消することはできず、一体不可分なものとして取り扱う必要がある。また、優先度とは、実行対象となるジョブの処理としての優先度である。本実施形態では、5段階に優先度が振り分けられ、値が大きいほど(5に近いほど)優先度が高いものとする。
【0063】
これらの解消フラグや優先度を用いると、構成処理部140による再構成処理の効率とジョブネットワークの処理能力の維持との向上を図ることができる。例えば、解消フラグがOKであれば、その解消フラグに関連付けられたジョブについての先行後続関係は自由に解消することができることを意味する。したがって、構成処理部140による再構成処理の際に、解消フラグがOKであるジョブの先行後続関係を優先的に変更することができる。逆に、解消フラグがNGであれば、その解消フラグに関連付けられたジョブについての先行後続関係は一体不可分なものとして取り扱うことになるため、ジョブ間の関連性を損なうことなくジョブネットの再構成を行うことができる。さらに、優先度をパラメータとして加えると、低い優先度に関連付けられたジョブを後方に移動させ、優先度の高いジョブの処理を優先的に進めることが可能となる。
【0064】
なお、本実施形態では、ジョブネットテーブル128に対して解消フラグを示す列1281と優先度を示す列1282を共に設けているが、少なくともいずれか一方を有していてもよい。勿論、両方を設けることにより、より細やかなジョブの実行制御を行うことが可能となることは言うまでもない。
【0065】
また、本実施形態では、実行対象となるジョブと先行ジョブとの関係と、実行対象となるジョブと後続ジョブとの関係を区別せずに解消フラグを関連付けているが、より細やかな制御を行うためには、それらを区別して二種類の解消フラグを設けることが好ましい。例えば、実行対象となるジョブが、先行ジョブとの関係は解消できるが、後続ジョブとの関係は解消できないといった場合に、両者を区別しておくことは有効である。これにより、ジョブ間の関連性を極力損なうことなく、よりジョブネットの再構成の自由度を高めることが可能となる。
【0066】
以上のように、第2実施形態によれば、第1実施形態と同様の効果に加えて、ジョブ間の関連性を損なうことなくジョブネットの再構成を行うことができるという効果を奏することができる。さらに、優先度をパラメータとして加えた場合には、優先度の高いジョブの処理を優先的に進めることできるという効果を付加することができる。
図1
図2
図3
図4
図5
図6
図7
図8