JP4109153B2 - ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム - Google Patents
ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム Download PDFInfo
- Publication number
- JP4109153B2 JP4109153B2 JP2003129025A JP2003129025A JP4109153B2 JP 4109153 B2 JP4109153 B2 JP 4109153B2 JP 2003129025 A JP2003129025 A JP 2003129025A JP 2003129025 A JP2003129025 A JP 2003129025A JP 4109153 B2 JP4109153 B2 JP 4109153B2
- Authority
- JP
- Japan
- Prior art keywords
- job
- setting file
- jobs
- control
- control setting
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 88
- 230000008569 process Effects 0.000 claims description 52
- 238000013515 script Methods 0.000 claims description 46
- 230000008859 change Effects 0.000 claims description 14
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 82
- 238000010586 diagram Methods 0.000 description 13
- 241001466538 Gymnogyps Species 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置、制御設定ファイル、ジョブ制御方法およびジョブ制御プログラムに関し、特に、バッチジョブを投入する際にユーザの管理の手間を減らすことを目的にして開発されたものである。
【0002】
【従来の技術】
従来のジョブを投入するジョブ制御装置の概念図を図10に示す。従来の装置では、ユーザはジョブを投入するためのスクリプトや記述ファイルを添えてジョブをキューに投入し、ジョブIDをユーザに返す。ユーザは、ジョブの終了をメール等で確認し、あるいは、ジョブIDを指定して状況を確認する。ジョブの終了後は、結果をファイルから取り出す。このようなバッチジョブシステムにはプラットフォームコンピューティング社のLSF(http://www.platform.com/), OpenPBS(http://www.openpbs.com/), ウィスコンシン大学High Troughput Computing チームによるcondor (http://www.cs.wisc.edu/condor/) などがある。
【0003】
ジョブの終了はいずれも一つのジョブが終わるたびにメールを受け取るオプションを指定することができ、終了をユーザが確認することができた。しかし、複数のジョブの全ての終了した後で確認することができるのはごくわずかのシステムだけである。
【0004】
上記「condor」においては、一つのジョブ制御ファイルから複数のジョブを投入できるが、指定できるのは実行するプログラム名とそのパラメータであり、実行するプログラムがsh スクリプトやperl スクリプトの場合、スクリプトとジョブ制御ファイルを別々に管理する必要があった。一度に投入したジョブ群が全て終了したときの通知方法はメールを送ることだけが可能であり、一般のプログラムを起動したりファイルに書き込んだりすることはできなかった。
【0005】
「condor」以外ではジョブは一度に一つしか投入できないため、多くのジョブを機械的に投入するには、別のプログラム、例えばshスクリプトやperl スクリプトを別途用意して、そこからジョブ投入をする必要があり、ジョブ投入のためのスクリプトと、実行するべきジョブのスクリプトを別に管理する必要があった。しかもジョブ投入のためのスクリプトは投入するたびに修正する必要があり、間違いが入り込みやすかった。「condor」でも、投入できるジョブの列を記述できるだけであり、似たジョブを繰り返し投入したい場合は、別のプログラムで、ジョブ制御ファイルを自動生成してから投入するという煩瑣な手続きが必要であった。
【0006】
また、別のジョブの終了を待ってジョブを実行する方法がいくつか提供されている。例えば、「PBS」においては、一度全てのジョブを投入した後、投入時に得られるジョブIDに関して別途コマンドで前後関係を指定するという手続きをとる。しかし、この方法ではジョブを投入するまでIDが分からないため、後ろのジョブは一度実行保留(hold) 状態で投入してから、そのIDを用いて前後関係を指定し、保留状態を解除するという手続きが必要で、非常に煩瑣であった。
【0007】
また、「condor」においてはDAG(Directed Acyclic Graph=有向非環状グラフ)としてジョブ間の実行順序を指定できる。しかし、この指定は、通常のジョブ制御ファイルとは独立のフォーマットで、別のファイルに記述し、異なるコマンド群を用いて実行を行う。すなわち「DAG」のためのファイルとジョブ制御ファイルともしも実行するのがスクリプトであれば、スクリプトの3種類のフォーマットの異なるファイルを同時に管理する必要があった。また、前後関係を記述することができるのはジョブに限られ、簡単なファイルの集計など実行時間のごく短い作業に関しても、ジョブとして投入する必要があり、キューの中でマシンがあくのを待つ必要があった。
【0008】
【発明が解決しようとする課題】
従来は、一度に投入するジョブの数が比較的少なく、数個から数十個であったため、ジョブの終了をメールなどで待つことが容易であり、またあるジョブが終了した後で別のジョブを投入する必要があれば、そのたびにユーザが手作業で行っていた。しかし、GRID 技術などによりネットワークで大量の計算機が接続され、数百という計算機が利用可能になった現在、ユーザが一度に投入するジョブの数が数百あるいは数千と大量になる。この場合、ジョブ投入のためのスクリプトや制御ファイルを手作業で作成し、あるいは別途プログラムを実行して作成する必要があり、その管理にかかる手間は多く、また間違いが入りやすいという問題があった。
【0009】
また、ユーザが一度に投入するジョブの数が数百あるいは数千と大量になった場合、一つ一つのジョブの終了をメールで通知されても、数が多すぎてユーザには管理できないという問題点があった。
【0010】
また、多くの計算機を用いてジョブを実行する場合、ジョブは接続された計算機で同時並列に実行されるため、順不同にジョブが終了する。すると、必要なジョブ群が終了した後で別の作業を行う場合、例えばジョブ群の結果の取りまとめやジョブ結果を用いた別の作業を行う場合に、本当に必要なジョブが全て終わったかどうかを調べるのも困難であり、定期的に人手でチェックする必要があり、非常に時間がかかるという問題があった。
【0011】
更に、終了時に自動的に別の作業を行わせるのも難しいという問題があった。また、待つべきジョブの数が不定の場合すなわち、入力に応じてジョブ数が変わるような場合、待ち合わせを記述するのは大変に難しいという問題があった。また、ジョブが出力するデータに基づいてべつのジョブを投入すべきかどうかを判断したい場合がある。例えば、ジョブの出力する結果が最適値になるようさまざまなジョブを試みる場合などが上げられる。しかし、ジョブの待ち合わせをした後、適当なプログラムを実行して最適値かどうか判断し、かつさらにジョブを投入するというのは難しいという問題があった。
【0012】
また、ジョブの待ち合わせをしたい場合に、複数の待ち合わせがそれぞれ良く似たジョブ群を待ちたいときがある。例えば、パラメータAが1である全てのジョブを待ち合わせてする作業、パラメータAが2である全てのジョブを待ち合わせてする作業、…パラメータAが10である全てのジョブを待ち合わせてする作業があるとき、それぞれの待ち合わせを10回記述するのは大変に煩雑であるという問題点がある。
【0013】
また、大量に投入したジョブのうち一部のみをやり直したいという場合がある。例えば、入力ファイルを一部修正して、関連するジョブのみを投入したい場合がある。このような場合従来では、必要なジョブのみを手で投入する必要があり、ジョブ数が増えた場合は、手入力では困難で別途スクリプトなどを介してジョブ投入する必要があるが、その度にスクリプトを作成、更新、管理するのは煩雑であるという問題点もあった。
【0014】
また、ジョブの実行には非常に長い時間がかかることがあり、その結果本特許のソフトウェアはその間ずっと実行しつづける必要があるが、ハードウェアトラブルなどの原因で異常終了する危険性が高まる。この場合に待ち合わせを継続する方法がないと、本特許のソフトウェアの有効性が大きく損なわれるという問題点がある。
【0015】
また、「PBS」など一部のジョブ投入機構では、ジョブがいったん終了してしまうと、ジョブの実行開始、終了に関する情報を出さない場合があり、実行開始・終了の時点を把握できないという問題点があった。
【0016】
本発明は、上述した課題を解決するために成されたもので、バッチジョブを投入する際にユーザの管理の手間を減らすことを目的とする。また、本発明は、ジョブ投入に必要なスクリプトやコントロールファイルを自動的に作成することができ、また、重複するジョブの投入を行わないようにすることで実行に要する時間を減らすことを目的とする。更に本発明は、一部のジョブのみを実行しなかったかのように設定することで、ファイルの変更なしに選択的に再実行を行うことを可能にすることを目的とする。
【0017】
【課題を解決するための手段】
上述した課題を解決するため、本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するための所定の処理を行う処理実行部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部とを備えてなるものである。
【0018】
このような構成によれば、ユーザは任意にジョブを指定してジョブの投入処理を行うことができるので、ジョブを投入するための制御設定ファイルの作成が容易となり、またその自由度も高くなり、もってジョブ投入に際してユーザの負担を軽減することができる。なお、実施の形態における処理実行部は、ジョブ状態ハンドリング部6、実行内容実行部4およびジョブ投入部5により構成されているが、この処理実行部としては、ジョブ管理部による管理結果に基づいてジョブを投入するタイミングを判断し、その判断結果を外部に出力するような処理を行うものであっても良い。
【0019】
また、本発明のジョブ制御装置において、前記ジョブ指定記述読取部は、前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述された実行すべきプログラムとの関係において記述された前記ジョブ指定記述を読取ることを特徴とすることができる。
【0020】
このような構成によれば、例えばfor文やwhile文などの繰り返し制御を使うことができ、その中でジョブ投入をすることができる。したがって、制御設定ファイルにごく短く記述するだけで大量のジョブを簡単に投入できることとなる。また、一般にプログラムは、判断、繰り返し、副プログラムの呼び出しなどを記述できるため、複雑な作業、例えばジョブの結果の取り出し、ジョブの結果に基づく別のジョブの投入、不定個のジョブの結果の繰り返しによる処理を行うことができる。従って、不定個のジョブを待ち合わせての処理や、ジョブの結果に基づいて別のジョブを投入することもでき、ジョブ投入処理に大きな自由度を提供できる。
【0021】
また、本発明のジョブ制御装置において、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいて、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記処理実行部は、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【0022】
このような構成によれば、投入条件が満たされた場合に自動的にジョブを投入することができる。従って、例えば、他のジョブの終了を条件として、別のジョブを投入させることができるので、他のジョブに依存性があるジョブでも簡単に投入することができる。なお、実施の形態においてジョブ投入条件は処理実行部を構成するジョブ投入部において判断されるが、ジョブ状態データベース管理部、ジョブ状態ハンドリング部、実行内容実行部のいずれかにおいて判断されるようにしても良い。
【0023】
また、本発明のジョブ制御装置において、前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記処理実行部は、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とすることができる。
【0024】
このような構成によれば、他のジョブの終了を条件として、別のジョブを投入させることができるので、他のジョブに依存性があるジョブでも簡単に投入することができる。この場合、他のジョブは一つでも複数でも良く、大量のジョブに依存するジョブの投入も自動的に行うことができる。
【0025】
また、本発明のジョブ制御装置において、前記ジョブ指定記述には、ジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれることを特徴とすることができる。
【0026】
このような構成によれば、大量のジョブでも、一つの制御設定ファイルにより投入することができるので、その処理が容易となり、大量のジョブの処理の迅速化、容易化を実現できる。
【0027】
また、本発明のジョブ制御装置において、前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、前記処理実行部は、各パラメータを置換してジョブ指定を表す置換リストを作成することを特徴とする。
【0028】
このような構成によれば、パラメータ表示されたジョブ指定を具現化した指定とすることができるので、コンピュータ内でパラメータにより指定された各ジョブの特定が容易となり、処理が容易となる。
【0029】
また、本発明のジョブ制御装置において、前記制御設定ファイル読み込み部は、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行部は、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことを特徴とする。
【0030】
このような構成によれば、制御設定ファイルの記述が容易となり、また、大量のジョブの指定も容易に行うことができる。
【0031】
また、本発明のジョブ制御装置において、前記処理実行部は、前記制御設定ファイルに記述されたジョブの雛形に基づいてジョブスクリプトファイルを作成し、前記ジョブ投入システムへジョブを投入することを特徴とするジョブ制御装置。
【0032】
このような構成によれば、雛形による制御設定ファイルの記述に基づいてジョブ投入に必要なファイルを自動生成することができ、もって、制御設定ファイルの記述が容易となり、また、大量のジョブの指定も容易に行うことができる。
【0033】
また、本発明のジョブ制御装置において、前記処理実行部は、ジョブの実行開始またはジョブの終了に関する情報を書き出すためのコマンドを前記ジョブスクリプトファイル追加することを特徴とすることができる。
【0034】
このような構成によれば、ジョブ投入システムがジョブの実行開始、終了に関する情報を出さない場合でも、ジョブの開始、終了の状態を把握できる。また、全てのジョブの終了を待つことができるため、本装置を用いて投入した全てのジョブの終了を簡単に判定できる。
【0035】
また、本発明のジョブ制御装置において、前記ジョブ指定記述には、ジョブの開始またはジョブの終了を表すジョブを指定する記述が含まれることを特徴とすることができる。
【0036】
このような構成によれば、開始時や終了時に必ず実行する内容を記述でき、例えば、終了時に必ず行う処理を記述できる。例えば、特定のファイルに特定の値を書き込んだり、むあるいは特定のあて先にメールを送るなどの処理ができる。従って、本発明によれば、本ソフトウェアを用いて投入した全てのジョブの終了の際に適当な作業を指示できる。
【0037】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、データベースに書き込まれたジョブの状態を参照して、ジョブの投入、開始及び終了を管理することを特徴とすることができる。
【0038】
このような構成によれば、データベースのデータが消去されない限り、投入処理に関する履歴を保持することができる。
【0039】
また、本発明のジョブ制御装置において、前記データベースには、ジョブ指定記述、ジョブID、ジョブ状態が記憶され、前記ジョブ管理部は、新規ジョブの登録、ジョブの検索、ジョブの削除、ジョブ状態の変更を行うことを特徴とすることができる。
【0040】
このような構成によれば、様々な投入処理に関する管理データをデータベースに保持することができる。
【0041】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、更に、所定のジョブについて、そのジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とすることができる。
【0042】
このような構成によれば、ジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストが管理される。
【0043】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、更に、所定のジョブについて、そのジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とすることができる。
【0044】
このような構成によれば、ジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストが管理される。
【0045】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、前記データベースから所定のジョブを削除する場合に、該所定のジョブと共に、該所定のジョブの終了を待って投入されたジョブを削除することを特徴とすることができる。
【0046】
このような構成によれば、あるジョブを削除する場合、そのジョブに依存するジョブも自動的に削除できる。
【0047】
また、本発明のジョブ制御装置において、所定の場合、ジョブ管理部により終了されていないとされるジョブについて再度制御設定ファイルを読み込むと共に、そのジョブが他のジョブ結果に依存する場合は、前記処理実行部は前記ジョブ管理部から取得した管理結果に基づいて前記ジョブ投入の判断を行い、該判断結果に基づいて当該ジョブについての前記所定の処理を行うことを特徴とする。
【0048】
このような構成によれば、例えば、所定の場合として、ジョブ制御装置が異常終了した場合、あるいは正常終了後に再度実行を行った場合、ジョブ管理部がデータベースなどに管理データを保存している場合には、ジョブの管理結果が保存されているため、一度投入したジョブを再度投入する必要が無くなる。また、処理実行部がジョブ管理部から管理結果を取得するため、待ち合わせデータ等の依存関係も終了前の状態が維持され、再構築される。従って、終了前の状態が継続されることとなり、再稼働が効率的に行われることとなる。
【0049】
また、本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理部より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断部とを備えてなることを特徴とすることができる。
【0050】
このような構成によれば、ジョブの投入処理の制御において、その投入のタイミングを自動的に指示することができる。これは、上述した処理実行部が条件判断を行うことのみについて言及するものであり、その判断結果をジョブ制御装置内で用いることは勿論、その判断結果を外部に出力して、外部装置の投入処理に用いるようにしても良い。
【0051】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、前記データベースに書き込まれたジョブの状態について、書き換えまたは消去することができ、前記処理実行部は、消去されたジョブについては、制御設定ファイルを再度読み込み、前記所定の処理又は前記ジョブ管理部の管理結果に基づく処理を実行することを特徴とすることができる。
【0052】
このような構成によれば、データベース管理部に対して、ジョブの削除をした後、再度実行すると、削除されなかったジョブに関しては、ジョブ状態データベースを参照するとジョブが見つかるので再度ジョブを投入することはないのに対し、削除したジョブに関してのみはジョブが見つからないので再度ジョブを投入する。すなわち削除したジョブのみを再度実行できる。以上の作業ではユーザはやり直すジョブ名を指定してジョブを削除するのみで、ファイルを編集する必要はない。このため、ファイルを編集することなく一部のジョブのみを再実行できる。なお、ジョブの待ち合わせ関係を考慮して、削除されたジョブを待って実行したジョブや、さらにそのジョブを待って実行したジョブなど全ての待ち合わせ関係にあるジョブを自動的に削除するようにすることにより、ファイルを編集することなく一部のジョブとその関連するジョブのみを再実行できる。
【0053】
また、本発明は、上述したジョブ制御装置に読み取られる制御設定ファイルであって、ジョブを任意に指定することができるジョブ指定記述部と、該指定記述部に記述されて指定されたジョブについての内容記述部とを備えてなるものである。
【0054】
このような構成によれば、ユーザは任意にジョブを指定してジョブの投入処理を行うことができる制御設定ファイルを提供することができる。
【0055】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップとを備えてなるものである。
【0056】
また、本発明のジョブ制御方法において、前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【0057】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップとを備えてなる。
【0058】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップとをコンピュータに実行させるものである。
【0059】
また、本発明のジョブ制御プログラムにおいて、前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【0060】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップとをコンピュータに実行させるものである。
【0061】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
実施の形態1.
図1は本発明の実施の形態1を示すブロック図である。
実施の形態1のジョブ制御装置は、制御設定ファイルを読取り、制御設定ファイルの記述内容に基づいて、バッチジョブ投入システム(以下ジョブ投入システムという)7へジョブを投入するための制御を行うジョブ制御装置であって、制御設定ファイル読み込み部1、ジョブ状態データベース2を有するジョブ状態データベース管理部3、実行内容実行部4、ジョブ投入部5、およびジョブ状態ハンドリング部6を備えてなる。以上の構成において、実行内容実行部4、ジョブ投入部5、およびジョブ状態ハンドリング部6は、本発明の処理実行部を構成している。なお、ジョブ状態データベース2は、外部に本装置の外部に設けられる外部データベースであっても良い。
【0062】
本装置に使用される制御設定ファイル7は、投入すべきジョブの名前(ジョブ指定記述)とジョブで実行すべき内容とが関連付けて記述されたものである。この関連付けは、図2(A)に示すように制御設定ファイルに記述されてなる。
ここで、名前はジョブ指定記述として使用されるものであり、ユーザが任意のジョブを指定できるようにしたものである。
【0063】
この制御設定ファイルには、投入すべきジョブを雛形の形式で記述できる。例えば投入すべきジョブの内容は、図2(B)に示されるように記述することができる。
【0064】
以下、本明細書において、「ジョブの内容」とした場合、制御設定ファイル中に直接記述されている場合と、他のファイルなどを参照している場合の両方を総称することとする。
さらに、実施の形態では、制御設定ファイルには、待つべきジョブの種類とそのときに投入すべきジョブのリストがジョブ名とジョブのスクリプトの雛形とともに記述することができる。例えば待つべきジョブを記述するために、制御設定ファイルは、図2(C)に示されるように記述される。
【0065】
さらに、制御設定ファイルには、上述(図2(A)〜図2(C))したように、実行すべきジョブの名前とジョブの内容の列を記述する代わりに、図2(D)に示すように、最初にプログラムを記述でき、そのプログラムの中からジョブの名前を指定してジョブの投入を指示することもできるし、図2(E)に示すように、待つべきジョブが全て終了してから実行すべき内容としてのプログラムを記述することができ、そのプログラム中からジョブを名前で指定してジョブを投入するようにすることもできる。なお、これらの構成では、制御設定ファイルには、待つべきジョブの種類とその時に実行すべきプログラムが記述され、プログラム中で、投入すべきジョブに関してジョブ名とジョブのスクリプトの鋳型を記述する。
【0066】
以下、ジョブ制御装置の各構成について説明する。
(制御設定ファイル読み込み部)
制御設定ファイル読み込み部1は、制御設定ファイル入力部11から入力された制御設定ファイルFを読み、実行すべきジョブの名前とジョブの内容を制御ファイル内容として保持する。そして、制御設定ファイル読み込み部1は、図3(A)に示されるように、ジョブの名前と実行すべき内容の対からなるリストを制御設定ファイル内容の実行内容として保持することができる。このジョブ名はユーザが任意にジョブを指定することができるジョブ指定記述によるものであり、ジョブ指定記述読取部1aにより読み取られてジョブの名前がジョブの内容と区別される。
【0067】
また、図3(B)に示すように、待つべきジョブの名前、ジョブの名前のリスト、あるいはジョブのパターンのリストと実行内容の対からなるリストを制御設定ファイル内容の待ち合わせリストとして保持することもできる。
さらに、図3(C)に示すように、実行内容はプログラムの場合と、そうでない場合があり、プログラムでない場合、実行内容はジョブの名前とジョブの実行内容の対からなるリストである。
【0068】
(ジョブ投入部)
ジョブ投入部5は、制御設定ファイルFから指定されたスクリプトやジョブの内容が納められたファイルを利用し、あるいは、制御設定ファイル自身に書いてある投入すべきジョブの内容を用いてジョブを投入する。
ジョブ投入部5は、ジョブ名がパラメータなどの変数で指定された場合に置換リストでジョブ名を個別に特定するための置換処理部5aと、投入されるジョブについてのジョブスクリプト一時ファイルJFを作成する投入処理部5bを有して構成され、投入すべきジョブの名前と内容および必要に応じて置換リストと終了するのを待った他のジョブの名前のリストを受け取る。終了を待ったジョブの名前のリストはジョブの投入が他のジョブに依存して行われるような場合にのみ渡される。
【0069】
以下、ジョブ投入部5の動作について説明する。
(Step 1)もし置換リストがあれば、ジョブの名前を置換する。
(Step 2)ジョブの名前でジョブ状態データベースを検索する。
(Step 3)もしも同じ名前のジョブ存在すれば何もしないで処理を終了する。
(Step 4)もしも同じ名前のジョブがなければ、以下の作業を行う。
(Step 5)もしも置換リストがあれば、ジョブの内容を置換して一時ファイルに保存する。
【0070】
(Step 5.1)もしもジョブの内容が別のファイルを参照している場合は、その内容を置換して別の一時ファイルに保存する。
(Step 5.2)もしもジョブの実行内容が制御設定ファイルにかかれていた場合は、その内容を置換して一時ファイルに保存する。
【0071】
(Step 6)もしも置換リストがなければ、ジョブの内容を一時ファイルにコピーする。
(Step 7)もしもジョブ投入システム7がジョブの実行開始、終了時刻をジョブ制御装置あるいはジョブ状態データベース2に返さないようなシステムの場合には、ジョブの実行内容の一部として、ジョブの内容の書かれた一時ファイルに、最初にジョブ状態データベースへ開始状態を書き込み、最後にジョブ状態データベース2へ終了を書き込むよう指示を追加する。
【0072】
(Step 8)保存した一時ファイルを用いてジョブ投入システムにジョブを投入する。
(Step 9)ジョブ投入時にジョブ投入システム7から返されるIDとジョブの名前と状態がジョブ投入であることをジョブ状態データベースに登録する。なお、このジョブの投入に際して、このジョブが他の依存するジョブを待った場合には、待ったジョブの名前のリストも登録する。
【0073】
(ジョブ状態データベースおよびその管理部)
ジョブ状態データベース2は、ジョブ名、ジョブID、及びジョブの状態の項目を記憶して保持する。ここで、ジョブの状態には、「ジョブ投入」「開始」「終了」の3つがある。ジョブ状態データベース管理部3は、ジョブ状態データベース2を用いて、以下の操作うことができる。
【0074】
(1)新しいジョブを新規登録する。
(2)ジョブ名でジョブを検索し、結果を取り出す。
(3)全てのジョブを検索し、結果を取り出す。
(4)ジョブ状態データベースからジョブ名を指定してジョブを除く。
(5)ジョブ名を指定して、状態を変更する。
【0075】
これらの操作はいずれも自明の方法を用いてよいので、ここでは特に記述しない。なお、(4)の操作であるジョブを除く際に、待ち合わせ関係にあるジョブを全て除くために、待ち合わせ状態にあるジョブ関係を示すデータをも保持する内容とすることができる。また、新しいジョブを新規登録する操作とジョブ状態データベースからジョブ名を指定してジョブを除く操作とに拡張が行われる。保持する内容を増やすには二つの方法があり、どちらでも同じ効果を出すことができる。
【0076】
<保持方法1>
この場合の保持内容は、(1)ジョブ名、(2)ジョブID、(3)状態、(4)待ったジョブ名のリストである。
この保持方法1では、ジョブの新規登録の際には、与えられたジョブ名、ジョブID、状態、待ったジョブ名のリストをそのまま登録すればよい。また、この保持方法1では、ジョブ名を指定してジョブを除く場合、以下のようにする。
【0077】
(Step 1)ジョブ名でデータベースを検索し、そのジョブを除く。
(Step 2)データベースに保持されている全てのジョブのうち、以下の条件に該当するジョブの名前を取り出す。
(Step 2.1)待ったジョブのリストの中に削除を指示されたジョブの名前がある。
(Step 3)該当した全てのジョブの名前に関して、再帰的にジョブを除く作業を行う。
【0078】
<保持方法2>
この場合の保持内容は、(1)ジョブ名、(2)ジョブID、(3)状態、(4)待たれたジョブ名のリストである。
この保持方法2では、ジョブの新規登録は以下のようにする。
(Step 1)与えられたジョブ名、ジョブID、状態を登録する。待たれたジョブ名のリストは、空にする。
(Step 2)与えられた「待ったジョブ名のリスト」の中の各ジョブ名(ジョブ名1とする)に関して、以下の作業を繰り返し行う。
(Step 2.1)ジョブ名(1)でデータベースを検索する。
(Step 2.2)検索されたジョブがあれば、その待たれたジョブ名のリストに、新規登録するジョブのジョブ名を追加する。
【0079】
この保持方法2では、ジョブ名を指定してジョブを除く場合、以下のようにする。
(Step 1)ジョブ名でデータベースを検索する。
(Step 2)待ったジョブ名のリストを保持する。
(Step 3)検索されたジョブを除く。
(Step 4)保持している待ったジョブ名のリストにある各ジョブに関して、再帰的にジョブを除く作業を行う。
【0080】
なお、ジョブ投入システム7が、ジョブの開始、ジョブの終了を知らせる方法を提供する場合、定期的にジョブ投入システム7にジョブの状態を問い合わせ、ジョブが開始した場合にそのジョブの状態を開始とし、終了した場合は終了とする操作を追加する。この操作は本装置の動作実行期間中続けられ、常にジョブの監視が行われる。
【0081】
このための手続きは以下のとおりである。
(Step 1)以下の作業を定期的に(1秒に1度など)行う。
(Step 1.1)データベース中の全てのジョブのうち、状態が終了でない全てのジョブ(ジョブAとする)に関して以下の作業を行う。
(Step 1.1.1)ジョブAのジョブIDを取り出す。
(Step 1.1.2)ジョブ投入システム7にジョブIDのジョブの状態を問い合わせる。
(Step 1.1.3)もしもジョブが実行開始していれば、ジョブAの状態を「開始」にする。
(Step 1.1.4)もしもジョブが終了していれば、ジョブAの状態を「終了」にする。
【0082】
また、ジョブ状態データベース2は、以上の方法か、あるいはジョブの内容として記述されたデータベースへの書き込み手段で、ジョブの状態が変更された場合は、ジョブ状態データベース管理部3は、変化のあったジョブの名前について、ジョブ状態ハンドリング部6に変更を通知する。なお、これを実装するためには、ジョブ状態ハンドリング部6に書き込みのための手段が通知するようにしても良いし、ジョブ状態ハンドリング部6が定期的にデータベース2若しくはジョブ状態データベース管理部3に問い合わせて監視して、変更のあった部分のみを認識するようにしても良い。
【0083】
(ジョブ状態ハンドリング部)
ジョブ状態ハンドリング部6は、制御設定ファイル読み込み部1で読み込まれた制御設定ファイルFの内容(ジョブ名とジョブの内容)を保持する制御設定ファイル内容記憶部6aとジョブ名がパラメータ(変数)表示されるような場合に、その置換リスト及びそれらの処理に待つ必要がある「待つジョブ名」のリストである待ち合わせジョブデータ記憶部6bとを有する。そして、状態の変化したジョブに関する情報をジョブ状態データベース2から取得する。なお、これはジョブ状態データベース管理部3が動作主体としてジョブ状態データベース2におけるジョブの状態変化を監視し、その状態変化があった場合にその情報をジョブ状態ハンドリング部6に提供するようにしても良い。
【0084】
この場合、いずれかのジョブの状態が変化した場合には、他の全てのジョブの状態をジョブ状態データベース2から調べ、全てのジョブの状態が「終了」になるまでは、何もしない。もしも全てのジョブの状態が「終了」であった場合は、この本装置(ソフトウェア)の動作の終了を指示する。
また、待つべきジョブのジョブ名を一つあるいは複数、若しくは待つべきジョブのジョブ名のパターン若しくは変数表示を書けるプログラムを用いた場合では、図4に示されるようにジョブ状態の待ち合わせデータWDを持つ。このデータは、本図に示すように制御設定ファイル内容FDと関連付けてあるいは一体化して実現される。
【0085】
変更のあったジョブのジョブ名に関して制御設定ファイル内容の待ち合わせリストを探索し、もしも待つジョブの状態が全て「終了」であれば、その処理を行う。すなわち以下のような手続きを行う。
【0086】
(Step 1)制御設定ファイル内容のジョブの待ち合わせリストの各項目(待ち合わせWと呼ぶ)に関して以下の処理を行う。
(Step 1.1)もしも変更のあったジョブのジョブ名が待ち合わせWの待つジョブ名と一致する場合。すなわち以下のどれかである場合処理を進める。もしもそうでなければ(Step 1)の別の待ち合わせに進む。
【0087】
(1)ジョブ名が一つしか記述できないソフトウェアである場合、ジョブ名が一致する。
(2)ジョブ名が複数記述できる場合、それらのどれかと変更のあったジョブ名が一致する場合。
(3)ジョブ名のパターンが一つ以上記述できる場合、それらのパターンのどれかと変更のあったジョブ名がマッチする場合。ただし、パターンの例として、UNIX のsh のワイルドカード(*は任意個の文字とマッチし、?は任意の一文字とマッチする)や正規表現などが含まれる。
【0088】
(Step 1.2)そのジョブ名を待ち合わせWと関連する待ち合わせデータの待つジョブ名のリストに加える。同じジョブ名が重複して入る場合は一つ以外は除いてかまわない。
(Step 1.3)待ち合わせデータのジョブ名のリストの各ジョブ名(待つジョブWJと呼ぶ)の状態が全て「終了」かどうか調べる。すなわち以下の作業を行う。
(Step 1.3.1)ジョブ状態データベースで待つジョブWJの状態を取り出す。
(Step 1.3.2)もしも取り出した状態が「終了」でなければ、この検査を取りやめ、(Step 1)の別の待ち合わせに進む。
(Step 1.4)全ての状態が「終了」であったら、その実行内容と待ったジョブのジョブの名前のリストを実行内容実行部4に渡し、実行内容実行部4は必要に応じて所定の処理を実行する。
【0089】
なお、本装置の動作終了においては、実行内容実行部4の実行の終了も判定される。すなわち、いずれかのジョブの状態が変化した場合には、他の全てのジョブの状態をジョブ状態データベース2から調べ、もしも全てのジョブの状態が「終了」でかつ、実行内容実行部4の実行が終了している場合は、本装置の動作(ソフトウェアの動作)の終了を指示する。
【0090】
また、制御設定ファイルの内容FCとして、待つべきジョブのパターンの一部として変数を書ける場合、図5に示されるようにジョブ状態の待ち合わせデータ(WD)を持つ。待ち合わせデータ(WD)は、ジョブ(待つジョブ名)(W1,W2)毎に関連する待ち合わせ(W1′,W2′)と変数の置換リストL1〜L4で指定できる処理単位のリストU1〜U4からなる。このデータは、図5に示されるように制御設定ファイル内容と関連付けてあるいは一体化して実現される。
【0091】
変更のあったジョブのジョブ名に関して制御設定ファイル内容の待ち合わせリストを探索し、該当する処理単位にある待つジョブの状態が全て「終了」であれば、その処理を行う。すなわち以下のような手続きを行う。
【0092】
(Step 1)制御設定ファイル内容のジョブの待ち合わせリストの各項目(待ち合わせWと呼ぶ)に関して以下の処理を行う。
(Step 1.1)もしも変更のあったジョブのジョブ名が待ち合わせWの待つジョブパターンのどれかとマッチする場合。パターンの中に変数が記述されている場合、変数と値の対からなるリストを置換リストとして取り出す。変数がない場合は置換リストは空である。もしもいずれのパターンともマッチしない場合は、(Step 1)の別の待ち合わせに進む。
【0093】
(Step 1.2)待ち合わせWに関連する処理単位で、同一の置換リストからなる処理単位がなければ、新規にそのような処理単位を追加する。
(Step 1.3)待ち合わせWに関連する処理単位で、同一の置換リストからなる処理単位(これを処理単位Uと呼ぶ)の待つジョブのリストに変更のあったジョブを追加する。同じジョブ名が重複して入る場合は一つ以外は除いてかまわない。
(Step 1.4)処理単位Uの待つジョブリストの中の各ジョブ名(待つジョブWと呼ぶ)の状態が全て「終了」かどうか調べる。
【0094】
すなわち以下の作業を行う。
(Step 1.4.1)ジョブ状態データベースで待つジョブJWの状態を取り出す。
(Step 1.4.2)もしも取り出した状態が「終了」でなければ、この検査を取りやめ、(Step 1)の別の待ち合わせに進む。
(Step 1.5)全ての状態が「終了」であったら、処理単位Uの実行内容と待ったジョブのジョブの名前のリストと置換リストを実行内容実行部に渡す。
【0095】
(実行内容実行部)
実行内容実行部4は、ジョブの待ち合わせ終了時あるいは、本装置(ソフトウェア)起動時に処理を行う。実行内容実行部4は、実行内容と置換リスト(置換リストが用いられた場合)と待ったジョブの名前のリストを受け取り処理する。実行内容としてプログラムが記述されていない場合、実行内容は、投入すべきジョブの名前とその内容の対からなるリストについて、リストの各ジョブ名と、その内容とを、置換リストがある場合は置換リストを待ったジョブの名前とともにジョブ投入部5に渡す。
【0096】
実行内容としてプログラムが記述されている場合、プログラムを実行する。プログラムとして記述する際のプログラム言語は文字列をプログラムとして実行できる処理系があれば任意のものを選んでよい。例えば、perl, tcl などのスクリプト言語、sh, csh などのUNIX のシェル、また、C インタプリタを用いてC 言語のプログラムを記述することもできる。いずれの言語を使う場合でもジョブの投入を指示する方法を用意する。ジョブの投入を指示する時には、必ず投入したいジョブのジョブ名とそのジョブの内容を記述する。
【0097】
ジョブの投入を指示する部分を実行する際には、そこに記述されたジョブ名、ジョブの内容とともにオプションの置換リストと待ったジョブの名前のリストを渡す。単に置換リストを渡すだけでなく、プログラム中の変数の値のリストを置換リストに追加して渡したり、オプションの置換リストの代わりに渡したりすることもできる。
【0098】
(動作)
以下、実施の形態1の動作について説明する。まず、起動時に制御設定ファイルとジョブ状態データベースを指定する。起動すると以下のように動作する。
【0099】
(第1動作:ジョブの待ち合わせ等、ジョブの投入条件が不要な場合)
(Step 1)指定された制御設定ファイルを制御設定ファイル読み込み部1で読み込み、制御設定ファイル内容6aに収める。
(Step 2)制御設定ファイル内容6aの実行内容を実行内容実行部4に送る。
(Step 3)実行内容実行部6は投入すべきジョブに関して、ジョブ名とジョブ内容をジョブ投入部5に送る。
(Step 4)ジョブ投入部5はジョブ状態データベース2を参照して必要なジョブのみをジョブ投入システム7に投入する。
【0100】
(Step 5)ジョブ状態データベース2はジョブ状態データベース管理部3によりジョブの状態が変更されるたびに書き込みが行われ、この変更がジョブ状態ハンドリング部6で監視される。なお、ジョブ状態データベース管理部6がこのような変更が生じた場合にジョブ状態ハンドリング部6に通知するようにしても良いことは言うまでもない。
(Step 6)ジョブ状態ハンドリング部6が本装置の動作(ソフトウェア)の終了を指示するまでの間(Step 5)を繰り返す。
【0101】
(第2動作:ジョブ投入条件(待つべきジョブを待ってジョブが開始されるという条件)がある場合)
(Step 1)指定された制御設定ファイルを制御設定ファイル読み込み部1で読み込み、制御設定ファイル内容6aに収める。
(Step 2)開始時や終了時を表すための特別なジョブ名がある場合として、例えば開始時を表すTOPという特別のジョブの名前を用意する。なお、この特別の名前は、この文字列に限定するものではなく、適宜都合の良い文字列を選ぶことができる。そして、当該ジョブが開始されると、ジョブ状態データベースにTOPというジョブの状態を終了に変更する。
【0102】
(Step 3)ジョブ状態データベース2に収められている、当該ジョブに関連する終了状態のジョブのジョブ名が全てジョブ状態ハンドリング部6に送られる。
(Step 4)新しくジョブ状態データベース2のジョブの状態が変更された場合、そのジョブがジョブ状態ハンドリング部6に送られる。
(Step 5)ジョブハンドリング部6にジョブの状態の変更が通知されると(Step 3,Step 4)、ジョブハンドリング部6は、待つジョブの状態が全て「終了」になった場合に実行内容を実行内容処理部4に渡す。
【0103】
(Step 6)実行内容実行部6はStep 6 で実行を指示されると、投入すべきジョブに関して、ジョブ名とジョブ内容をジョブ投入部5に送る。ジョブ投入部5はジョブ状態データベース2を参照して必要なジョブのみをジョブ投入システム7に投入する。
(Step 7)ジョブ状態ハンドリング部が本ソフトウェアの終了を指示するまでの間(Step 4?Step 6)を繰り返す。
(Step 8)開始時や終了時を表すための特別なジョブ名がある場合として、例えば終了時をあらわすENDという特別のジョブの名前を用意する。
なお、この特別の名前は、この文字列に限定するものではなく、適宜都合の良い文字列を選ぶことができる。そして、ジョブ状態データベースにのENDジョブの状態を「終了」に変え、ジョブ状態ハンドリング部6にENDジョブの状態の変更を伝える。
【0104】
(Step 9)ジョブ状態ハンドリング部6がENDジョブを待つ実行内容を見つければ、全てのジョブは終了しているので、その実行内容を実行内容実行部4に送る。
(Step 10)実行内容実行部が実行を終了したら、本ソフトウェアを終了する。
【0105】
(第3動作:初めてジョブ制御ソフトを実行する場合)
制御設定ファイルを読み込み、その内容を実行内容実行部が実行することにより、多くのジョブの実行を一つの制御設定ファイルから投入することができる。
【0106】
したがって、本実施の形態では、大量のジョブを簡単に投入するという課題を解決することができる。また、for文やwhile文などの繰り返し制御を使うことができ、その中でジョブ投入をすることができる。したがって、本実施の形態では、制御設定ファイルにごく短く記述するだけで大量のジョブを簡単に投入するという課題を解決することができる。また、ジョブとして実行するべき内容を制御設定ファイルに記述することができ、ジョブ投入の際にはジョブ投入部がこの内容を雛型としてジョブ投入に必要なファイルを自動生成する。したがって、一つのファイルから、多くのジョブの投入を行うという課題を解決することができる。
【0107】
また、ジョブ投入機構がジョブの実行開始、終了に関する情報を出さない場合でも、ジョブの開始、終了の状態を把握するという課題を解決することができる。また、ジョブ状態ハンドリング部が全てのジョブの終了を待つため、本実施の形態を用いて投入した全てのジョブの終了を簡単に判定するという課題を解決できる。また、終了時に必ず実行する内容を記述でき、さらにジョブ名をプログラム中に記述できるような構成と組み合わせることで、終了時に必ず行う処理を記述できる。例えば、特定のファイルに特定の値を書き込むあるいは、特定のあて先にメールを送るなどの処理ができる。したがって、本実施の形態を用いて投入した全てのジョブの終了の際に適当な作業を指示するという課題を解決できる。
【0108】
また、ジョブ状態ハンドリング部がいくつかのジョブの終了を待ち合わせて、その後で実行内容実行部がジョブを投入する。したがって、ジョブ間に依存性があってジョブの終了を待って別のジョブの投入するという課題を解決できる。また、待つべきジョブが全て終わったときに実行するプログラムを記述できる。一般にプログラムは、判断、繰り返し、副プログラムの呼び出しなどを記述できるため、複雑な作業、例えばジョブの結果の取り出し、ジョブの結果に基づく別のジョブの投入、不定個のジョブの結果の繰り返しによる処理を行うことができる。従って、不定個のジョブを待ち合わせての処理や、ジョブの結果に基づいて別のジョブを投入するという課題が解決できる。
【0109】
また、ジョブの待ち合わせの際に待つべきジョブのパターンの中に変数を記述することができ、ジョブ状態ハンドリング部は、その変数の値ごとに処理単位を用意するため、変数の値ごとにジョブ投入を行うことができる。すなわち一つの待ち合わせ記述で、複数の待ち合わせを記述したのと同じ効果を持つ。したがって、類似のジョブの待ち合わせを複数回書かないで済ませるという課題を解決できる。
【0110】
(第4動作:途中でジョブ制御ソフトが異常終了した後、再度実行する場合)
本装置の動作がマシンの故障などの不慮の事故で異常終了してしまった場合、そのままでは終了を待ち合わせる処理はできない。しかし、本装置は異常終了後、あるいは正常終了後に再度実行した場合、ジョブ状態データベース2にはジョブの状態が保存されているため、ひとたび投入したジョブを再度投入することはない。また、ジョブ状態データベース2にある全てのジョブは、最初にジョブ状態ハンドリング部6に送られるため、待ち合わせデータは全て異常終了した時点と同じ状態に再構成される。このため、異常終了あるいは正常終了した後、何度でも再実行してよく、待ち合わせを継続して、終了処理を行うという課題を解決することができる。
【0111】
(第5動作:ジョブ状態データベースに対して、ジョブの削除をしたあと、再度実行する場合)
本装置では、ジョブ状態データベースに対して、ジョブの削除をした後、再度実行すると、削除されなかったジョブに関しては、ジョブ状態データベースを参照するとジョブが見つかるので再度ジョブを投入することはないのに対し、削除したジョブに関してのみはジョブが見つからないので再度ジョブを投入する。すなわち削除したジョブのみを再度実行できる。以上の作業ではユーザはやり直すジョブ名を指定してジョブを削除するのみで、ファイルを編集する必要はない。このため、ファイルを編集することなく一部のジョブのみを再実行したいという課題を解決することができる。
【0112】
特に、ジョブを削除する場合に、ジョブの待ち合わせ関係を考慮して、削除されるジョブを待って実行したジョブや、さらにそのジョブを待って実行したジョブなど全ての待ち合わせ関係にあるジョブを自動的に削除するので、ファイルを編集することなく一部のジョブとその関連するジョブのみを再実行したいという課題を解決することができる。
【0113】
実施の形態2.
実施の形態2は、実施の形態1がジョブ制御装置内にジョブ投入部を備えたのに対して、他の処理系に設けられたジョブ投入部を用いる場合の例を示す。なお、他の構成については、実施の形態1の全ての構成を含むものとし、ジョブ投入についての具体例を合わせて説明する。
【0114】
図6は実施の形態2の構成を示すブロック図である。実施の形態2では、Perl処理系12にジョブ投入部5Aが設けられ、待ち合わせの実行内容はperl のプログラムが記述できるものとする。実施の形態2では、待ち合わせの実行部分をローカルスクリプトと呼ぶ。ジョブの実行内容はperl のプログラムが記述できるものとする。本節ではジョブの実行内容をジョブスクリプトと呼ぶ。制御設定ファイルは図7に示されるような構文を持つ。
【0115】
ローカルスクリプトには、perl 言語を任意に用いることができ、特にその中にある、ジョブ投入指定部分は図8に示されるような構文を持つ。
【0116】
ジョブスクリプトには任意のperl のプログラムが記述できる。ジョブ名は図9に示されるような構文を持つ。ジョブ名の同一性を検査する際、キーの現れる順序は問わない。ジョブ名の同一性を検査する際二つのジョブ名に同じキーが全てあって、各キーの値が全て一致する場合に限って同一であるとする。
【0117】
ジョブ名のパターンでは、値の部分にパターンを記述することができる。
パターンとして用いてよいのは、以下の場合である。
(1) *:任意の個数の文字列とマッチする。
(2) ?:任意の1 文字とマッチする。
(3)$変数:1 文字以上の文字とマッチし、その名前のperl の変数の値がマッチした文字列に置き換えられる。
【0118】
制御設定ファイル読み込み部は以上の制御設定ファイルを読み込む。読み込む際に、ローカルスクリプト部分は文字列として保持するが、ジョブ投入指定部分do#job だけはジョブ名とジョブスクリプトからなる構造体として保持する。ジョブ状態データベース2は、ユーザの指定したディレクトリに置き、ファイル名がジョブ名であるようなファイルの中にジョブ状態を書き込むようにする。状態の変更の書き込みはファイルへ直接書き込む。ジョブ状態データベース管理部3は、これらのファイルを定期的(1 秒に1 回など)に監視し、更新時刻が新しくなっていれば、変更があったものとして、ジョブ状態ハンドリング部6に通知する。
【0119】
実行内容実行部4は、最初に別のプロセスとしてperl 処理系を起動し、その処理系は、標準入力から読み込んだ行をそれぞれ実行(eval) するようにする。実行内容実行部4は、ローカルスクリプトを受け取ると、その内容を一時ファイル(一時ファイルF1と呼ぶ)に書き出す。
【0120】
置換内容は変数名と値の対のリストで実装し、実行内容実行部に、置換内容が渡されている場合、該当するperl 変数の値をその内容に変更するよう、一時ファイルの先頭に書き出す。依存するジョブ名に関しては別の一時ファイル(一時ファイルF2と呼ぶ)に書き出し、そのファイル名をローカルスクリプトの入っている一時ファイルF1に特別の大域的な変数の値の変更の形で書き出す。
【0121】
もしもジョブ投入指示のdo#job があれば、ジョブスクリプト部分をさらに別の一時ファイル(一時ファイルF3と呼ぶ)に書き出し、ローカルスクリプトの入っている一時ファイルF1には、特別のperl のサブプログラムの呼び出しを追加する。その呼び出しの際に、変数参照をしているジョブ名に関してはperl の変数置換機能を用いて置換する。
【0122】
そして、perl プロセスの標準入力に向かって、do 一時ファイルF1という文字列を送ることで、ローカルスクリプトを実行させる。ジョブ投入部5Aは、ローカルスクリプトから呼び出されるperl のサブプログラムの形で実装される。このサブプログラムは、ジョブ状態データベースを参照して、ジョブ投入を行う。ジョブ投入を行う前に、一時ファイルF3の書き換えを行う。ジョブスクリプトの実行の際にジョブ投入時の環境変数を使えると便利であるため、ジョブ投入時の環境変数の値を一時ファイルF3の最初に書き出す。
【0123】
ジョブ状態ハンドリング部6は、実施の形態1において、待つべきジョブのパターンの一部として変数を記述することができる場合の動作と同じ動作をする。構成としては図5に示した構成で、制御設定ファイル内容と待ち合わせデータは一体化して構成する。
【0124】
ジョブ名とジョブパターンのマッチングは以下のように行う。
(Step 1)もしもどちらか片方にしかないキーがあった場合はジョブ名とジョブパターンはマッチングしない。
(Step 2)ジョブ名の全てのキーに関してその値とジョブパターン中の同じキーに関するパターンでパターンマッチを行う。値とパターンのマッチング方法は後述する。もしもこのパターンマッチが失敗すれば、ジョブ名とジョブパターンはマッチングしない。
【0125】
(Step 3)全てのパターンマッチで得られた変数と値のリストをマージし、もしもいずれかの変数が2 度以上現れており、その値が異なっていればジョブ名とジョブパターンのマッチングは失敗である。
(Step 4)いずれでもなければパターンマッチは成功で、変数と値のリストを置換リストとして返す。
【0126】
値(文字列)とパターンのマッチングの手続きは以下の通りである。
(Step 1)パターンを以下に例示するように正規表現に直す。
(1) *→.*
(2) ?→.
(3) $変数→ (.+)
(4) 特殊な意味を持つ. などの文字は\ でエスケープする。
パターン中に変数があれば、その現れた順番と変数名を対にして記録する。
【0127】
(Step 2)ジョブ名を正規表現とパターンマッチする。この方法は広く知られているので詳述しない。正規表現のパターンマッチが失敗すれば、この手続きも失敗を返して終了する。
(Step 3)パターンマッチの結果得られる後方参照のためのデータと、(Step 1)で得られた変数名とその現れた順番の対から、変数名と値の対からなるリストを作成し、成功を返して終了する。
【0128】
例えば、"abcde.fg#hij" という文字列と"$a.$b#*" というパターンをマッチングする際は、まずパターンを"^(.+)\.(.+)#.*$" という正規表現に変換し、それと同時に、変数"a": 1 変数"b":2 というリストを作成しておく。次に正規表現と文字列のマッチングを行い、後方参照のためのデータ1番目: "abcde" 2 番目: "fg" を得る。最後に、変数"a": "abcde" 変数"b":"fg" という置換リストを作成して、成功を返す。
【0129】
実施の形態3.
実施形態2のローカルスクリプトやジョブスクリプトの記述言語をperl でなくsh に変えることが簡単にできる。変更すべき点は実行内容実行部で一時ファイルF1に書き出す内容とジョブ投入部で一時ファイルF3に書き出す内容と、perl 処理系の代わりにsh を起動することだけである。
【0130】
実行内容実行部で一時ファイルF1に書き出す内容の変更部分は、ジョブ投入指示を実施形態2ではperl のサブプログラムに変換したが、実施形態3では、shから実行できる別のコマンドに直す必要がある。また、ジョブ投入部で一時ファイルF3に書き出す内容は環境変数の書き出し方法がperl とsh で異なるというだけの変更である。それ以外の変更なしにまったく同じ動作をさせることができる。
【0131】
以上に本発明の実施の形態を説明したが、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において適用可能であることはもちろんである。例えば、本発明に係る条件判断は、実施の形態においてはジョブ投入部で行われるようにしたが、ジョブ状態データベース管理部で行うようにしても良いし、或いはジョブ状態ハンドリング部で行うようにしても良い。
【0132】
(付記1)制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するための所定の処理を行う処理実行部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と
を備えてなるジョブ制御装置。
(付記2)付記1に記載のジョブ制御装置において、
前記ジョブ指定記述読取部は、前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述された実行すべきプログラムとの関係において記述された前記ジョブ指定記述を読取ることを特徴とするジョブ制御装置。
(付記3)付記2に記載のジョブ制御装置において、
前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいて、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記処理実行部は、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御装置。
(付記4)付記3に記載のジョブ制御装置において、
前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記処理実行部は、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とするジョブ制御装置。
(付記5)付記1乃至付記4のいずれかに記載のジョブ制御装置において、
前記ジョブ指定記述には、ジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれることを特徴とするジョブ制御装置。
(付記6)付記5に記載のジョブ制御装置において、
前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、前記処理実行部は、各パラメータを置換してジョブ指定を表す置換リストを作成することを特徴とするジョブ制御装置。
(付記7)付記1乃至付記6のいずれかに記載のジョブ制御装置において、
前記制御設定ファイル読み込み部は、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行部は、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことを特徴とするジョブ制御装置。
(付記8)付記7に記載のジョブ制御装置において、
前記処理実行部は、前記制御設定ファイルに記述されたジョブの雛形に基づいてジョブスクリプトファイルを作成し、前記ジョブ投入システムへジョブを投入することを特徴とするジョブ制御装置。
(付記9)付記8に記載のジョブ制御装置において、
前記処理実行部は、ジョブの実行開始またはジョブの終了に関する情報を書き出すためのコマンドを前記ジョブスクリプトファイル追加することを特徴とするジョブ制御装置。
(付記10)付記1乃至付記9のいずれかに記載のジョブ制御装置において、
前記ジョブ指定記述には、ジョブの開始またはジョブの終了を表すジョブを指定する記述が含まれることを特徴とするジョブ制御装置。
(付記11)付記1乃至付記10のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、データベースに書き込まれたジョブの状態を参照して、ジョブの投入、開始及び終了を管理することを特徴とするジョブ制御装置。
(付記12)付記1乃至付記11のいずれかに記載のジョブ制御装置において、
前記データベースには、ジョブ指定記述、ジョブID、ジョブ状態が記憶され、前記ジョブ管理部は、新規ジョブの登録、ジョブの検索、ジョブの削除、ジョブ状態の変更を行うことを特徴とするジョブ制御装置。
(付記13)付記1乃至付記12のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、更に、所定のジョブについて、そのジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とするジョブ制御装置。
(付記14)付記1乃至付記13のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、更に、所定のジョブについて、そのジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とするジョブ制御装置。
(付記15)付記1乃至付記14のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、前記データベースから所定のジョブを削除する場合に、該所定のジョブと共に、該所定のジョブの終了を待って投入されたジョブを削除することを特徴とするジョブ制御装置。
(付記16)付記1乃至付記15のいずれかに記載のジョブ制御装置において、
所定の場合、ジョブ管理部により終了されていないとされるジョブについて再度制御設定ファイルを読み込むと共に、そのジョブが他のジョブ結果に依存する場合は、前記処理実行部は前記ジョブ管理部から取得した管理結果に基づいて前記ジョブ投入の判断を行い、該判断結果に基づいて当該ジョブについての前記所定の処理を行うことを特徴とするジョブ制御装置。
(付記17)制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理部より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断部と
を備えてなるジョブ制御装置。
(付記18)付記11に記載のジョブ制御装置において、
前記ジョブ管理部は、前記データベースに書き込まれたジョブの状態について、書き換えまたは消去することができ、前記処理実行部は、消去されたジョブについては、制御設定ファイルを再度読み込み、前記所定の処理またはジョブ管理部の管理結果に基づく処理を実行することを特徴とするジョブ制御装置。
(付記19)付記1乃至付記18のいずれかに記載のジョブ制御装置に読み取られる制御設定ファイルであって、
ジョブを任意に指定することができるジョブ指定記述部と、該指定記述部に記述されて指定されたジョブについての内容記述部とを備えてなる制御設定ファイル。
(付記20)制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
を備えてなるジョブ制御方法。
(付記21)付記20に記載のジョブ制御方法において、
前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、
前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御方法。
(付記22)制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップと
を備えてなるジョブ制御方法。
(付記23)制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
をコンピュータに実行させるジョブ制御プログラム。
(付記24)付記23に記載のジョブ制御プログラムにおいて、
前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、
前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御プログラム。
(付記25)制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップと
をコンピュータに実行させるジョブ制御プログラム。
【0133】
【発明の効果】
以上に詳述したように、本発明によれば、バッチジョブを投入する際にユーザの管理の手間を減らすことができる。また、ジョブ投入に必要なスクリプトやコントロールファイルを自動的に作成することができ、さらに重複するジョブの投入を行わないようにすることで実行に要する時間を減らすことができる。また本発明によれば、一部のジョブのみを実行しなかったかのように設定することで、ファイルの変更なしに選択的に再実行を行うことを可能にすることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1を示すブロック図である。
【図2】制御設定ファイルの記述を示す図である。
【図3】制御設定ファイル読み込み結果を示す図である。
【図4】待つジョブに変数を記述できない場合の待ち合わせデータを示す図である。
【図5】待つジョブに変数を記述できる場合の待ち合わせデータを示す図である。
【図6】実施の形態2を示すブロック図である。
【図7】制御設定ファイルの構文の一例を示す図である。
【図8】ローカルスクリプトにおけるジョブ投入指定部分の構文の一例を示す図である。
【図9】ジョブスクリプトにおけるジョブ名の構文の一例を示す図である。
【図10】従来のバッチジョブ投入システムを示す概念図である。
【符号の説明】
1 制御設定ファイル読み込み部、1a ジョブ指定記述読取部、2 ジョブ状態データベース、3 ジョブ状態データベース管理部、4 実行内容実行部、5 ジョブ投入部、5a 置換処理部、5b 投入処理部、6 ジョブ状態ハンドリング部、6a 制御設定ファイル内容記憶部、6b 待ち合わせジョブ状態データ記憶部、7 バッチジョブ投入システム、11 制御設定ファイル入力部、12 Perl処理系、F 制御設定ファイル、JF ジョブスクリプト一時ファイル。
Claims (10)
- 制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入する制御をコンピュータに実行させるジョブ制御プログラムであって、
前記制御設定ファイルを読取る制御設定ファイル読み込みステップと、
前記制御設定ファイル読み込みステップにより読み込まれる前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれて、実行すべきプログラムとの関係において記述されたジョブ指定記述を読取るジョブ指定記述読取ステップと、
前記ジョブ指定記述読取ステップにより読み取られた前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、各パラメータを置換してジョブ指定を表す置換リストを作成する処理実行ステップと、
前記ジョブ指定記述読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップとをコンピュータに実行させると共に、
前記処理実行ステップは、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいてジョブ指定記述された他のジョブとの関係で記述されている場合、前記他のジョブについてのジョブ指定記述による前記管理ステップによる管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理をコンピュータに実行させ、
さらに、前記処理実行ステップは、前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1に記載のジョブ制御プログラムにおいて、
前記制御設定ファイル読み込みステップは、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行ステップは、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1または請求項2に記載のジョブ制御プログラムにおいて、
前記処理実行ステップは、前記制御設定ファイルに記述されたジョブの雛形に基づいてジョブスクリプトファイルを作成し、前記ジョブ投入システムへジョブを投入し、ジョブの実行開始またはジョブの終了に関する情報を書き出すためのコマンドを前記ジョブスクリプトファイルに追加することをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1乃至請求項3のいずれかに記載のジョブ制御プログラムにおいて、
前記ジョブ指定記述には、ジョブの開始またはジョブの終了を表すジョブを指定する記述が含まれ、前記ジョブ管理ステップは、データベースに書き込まれたジョブの状態を参照して、ジョブの投入、開始及び終了を管理することをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1乃至請求項4のいずれかに記載のジョブ制御プログラムにおいて、
前記データベースには、ジョブ指定記述、ジョブID、ジョブ状態が記憶され、前記ジョブ管理ステップは、新規ジョブの登録、ジョブの検索、ジョブの削除、ジョブ状態の変更を行うことをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1乃至請求項5のいずれかに記載のジョブ制御プログラムにおいて、
前記ジョブ管理ステップは、更に、所定のジョブについて、そのジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1乃至請求項6のいずれかに記載のジョブ制御プログラムにおいて、
前記ジョブ管理ステップは、前記データベースから所定のジョブを削除する場合に、該所定のジョブと共に、該所定のジョブの終了を待って投入されたジョブを削除することをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 請求項1乃至請求項7のいずれかに記載のジョブ制御プログラムにおいて、
所定の場合、ジョブ管理ステップにより終了されていないとされるジョブについて再度制御設定ファイルを読み込むと共に、そのジョブが他のジョブ結果に依存する場合、前記処理実行ステップは前記ジョブ管理ステップより取得した管理結果に基づいて前記ジョブ投入の判断を行い、該判断結果に基づいて当該ジョブについての前記所定の処理を行うことをコンピュータに実行させることを特徴とするジョブ制御プログラム。 - 制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルを読取る制御設定ファイル読み込み部と、
前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれて、実行すべきプログラムとの関係において記述されたジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、各パラメータを置換してジョブ指定を表す置換リストを作成する処理実行部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部とを備え、
前記処理実行部は、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいてジョブ指定記述された他のジョブとの関係で記述されている場合、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行い、
さらに、前記処理実行部は、前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とするジョブ制御装置。 - 制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入する制御を行うためのジョブ制御方法であって、
前記制御設定ファイルを読取る制御設定ファイル読み込みステップと、
前記制御設定ファイル読み込みステップにより読み込まれる前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれて、実行すべきプログラムとの関係において記述されたジョブ指定記述を読取るジョブ指定記述読取ステップと、
前記ジョブ指定記述読取ステップにより読み取られた前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、各パラメータを置換してジョブ指定を表す置換リストを作成する処理実行ステップと、
前記ジョブ指定記述読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップとを備え、
前記処理実行ステップは、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいてジョブ指定記述された他のジョブとの関係で記述されている場合、前記他のジョブについてのジョブ指定記述による前記管理ステップによる管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行い、
さらに、前記処理実行ステップは、前記ジョブ投入条件として、ジョブ指定記述された 一つまたは複数のジョブの終了を条件とすることができ、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とするジョブ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129025A JP4109153B2 (ja) | 2003-05-07 | 2003-05-07 | ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム |
US10/785,952 US8472034B2 (en) | 2003-05-07 | 2004-02-26 | Job control device, job control file, job control method, and job control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003129025A JP4109153B2 (ja) | 2003-05-07 | 2003-05-07 | ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004334493A JP2004334493A (ja) | 2004-11-25 |
JP4109153B2 true JP4109153B2 (ja) | 2008-07-02 |
Family
ID=33410493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003129025A Expired - Lifetime JP4109153B2 (ja) | 2003-05-07 | 2003-05-07 | ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8472034B2 (ja) |
JP (1) | JP4109153B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092542A (ja) * | 2003-09-18 | 2005-04-07 | Hitachi Ltd | ジョブネット構成ファイルの生成装置および生成方法 |
US7987225B2 (en) * | 2004-12-22 | 2011-07-26 | International Business Machines Corporation | Method for remembering resource allocation in grids |
US8572616B2 (en) * | 2006-05-25 | 2013-10-29 | International Business Machines Corporation | Apparatus, system, and method for managing z/OS batch jobs with prerequisites |
JP2008226181A (ja) * | 2007-03-15 | 2008-09-25 | Fujitsu Ltd | 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法 |
JP5251002B2 (ja) | 2007-05-25 | 2013-07-31 | 富士通株式会社 | 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム |
JP4821783B2 (ja) * | 2008-02-08 | 2011-11-24 | 日本電気株式会社 | グリッドコンピューティングシステム及びデータ処理方法 |
US9727373B2 (en) * | 2008-03-27 | 2017-08-08 | Apple Inc. | Providing resumption data in a distributed processing system |
US8482767B2 (en) * | 2009-02-11 | 2013-07-09 | Infoprint Solutions Company Llc | Print job submission with sleep mechanism |
JP5388134B2 (ja) * | 2010-08-06 | 2014-01-15 | 株式会社日立製作所 | 計算機システム、及び、移動データ決定方法 |
JP2016186704A (ja) * | 2015-03-27 | 2016-10-27 | 富士通株式会社 | 情報処理装置、情報処理システム及びプログラム |
US10831546B2 (en) * | 2017-11-27 | 2020-11-10 | International Business Machines Corporation | Computing task management using tree structures |
CN115454450B (zh) * | 2022-09-15 | 2024-04-30 | 北京火山引擎科技有限公司 | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272626A (ja) | 1995-03-30 | 1996-10-18 | Hitachi Software Eng Co Ltd | バッチジョブ処理方法 |
JPH11134235A (ja) * | 1997-10-31 | 1999-05-21 | Hitachi Ltd | 外部記憶装置故障時の回復支援方法 |
US6373585B1 (en) * | 1998-08-26 | 2002-04-16 | International Business Machines Corporation | Load balancing for processing a queue of print jobs |
JP2002073576A (ja) | 2000-08-31 | 2002-03-12 | Toshiba Corp | バッチジョブ制御システム |
JP4532795B2 (ja) * | 2000-09-13 | 2010-08-25 | キヤノン株式会社 | 画像出力装置、画像出力装置の制御方法、画像出力システム、及び記憶媒体 |
US7016061B1 (en) * | 2000-10-25 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | Load balancing for raster image processing across a printing system |
US7143157B2 (en) * | 2002-03-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Managing the network impact of a digital transmitter |
US7202964B2 (en) * | 2002-07-10 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | Determining raster image processor cycle count to fully utilize a printer |
EP1387267B1 (en) * | 2002-07-29 | 2011-10-12 | Sap Ag | Method and computer system for job scheduling |
-
2003
- 2003-05-07 JP JP2003129025A patent/JP4109153B2/ja not_active Expired - Lifetime
-
2004
- 2004-02-26 US US10/785,952 patent/US8472034B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8472034B2 (en) | 2013-06-25 |
US20040223176A1 (en) | 2004-11-11 |
JP2004334493A (ja) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4109153B2 (ja) | ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム | |
US6578006B1 (en) | Project work management method and system | |
EP2133795A1 (en) | System and method for testing a software product | |
JP6342070B2 (ja) | ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム | |
JP2001014175A (ja) | ジョブ運用管理システム、ジョブ運用管理方法及び記憶媒体 | |
JPS63231613A (ja) | コマンド設定方法 | |
JPH11305998A (ja) | 計算機システム | |
JP5255796B2 (ja) | 運用管理サポートシステム、プログラム | |
JP3741450B2 (ja) | 項目部品エレメントの実行方法および実行装置 | |
JPH11306254A (ja) | データ処理作業の進行管理システム | |
US6792609B1 (en) | System and method for associating action diaries with a parent class object | |
JP4577343B2 (ja) | 計算機システムおよびジョブステップ並列処理方法 | |
JP2003030391A (ja) | ワークフローシステムおよびその案件削除方法、並びに該方法に係るプログラム | |
JPH01259432A (ja) | バッチジョブの再実行方式 | |
JP2008033815A (ja) | プロジェクト管理装置及び方法並びにプログラム | |
JP4900342B2 (ja) | 出願業務支援プログラム、方法及び装置 | |
JPH0659913A (ja) | バッチジョブスケジューリングシステム | |
JP5277847B2 (ja) | 作業管理装置、作業管理プログラム | |
JPH11328280A (ja) | プロセスルールを定義し実行するワークフローシステム | |
JP2004362211A (ja) | 定型操作自動処理プログラム,定型操作自動処理方法及び定型操作自動処理装置 | |
JP3079825B2 (ja) | 電子計算機装置 | |
JP2006048528A (ja) | ウェブアプリケーションの画面遷移装置、およびウェブアプリケーションの画面遷移方法 | |
JPH0962554A (ja) | 静止点セーブ作成方式 | |
JP2000172669A (ja) | 概況情報生成装置及び概況情報生成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3097151B2 (ja) | デーモン管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050614 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071129 |
|
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: 20080401 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080403 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110411 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110411 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120411 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130411 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140411 Year of fee payment: 6 |