(57)【要約】【課題】バッチジョブを投入する際にジョブ名を任意に指定できるようにすることで、ユーザの制御設定ファイルの作成を容易にし、またその管理の手間を軽減する。【解決手段】バッチジョブを投入する際に、制御設定ファイル読み込み部１がユーザが任意に指定したジョブ名が記述された制御ファイルＦを読み、ジョブ状態ハンドリング部６、実行内容実行部４およびジョブ投入部５から構成される処理実行部がジョブ状態を保存するジョブ状態データベース２を参照して、ジョブ名による各ジョブの前後関係を判断し、適当なタイミングで必要なジョブを投入し、投入後はジョブの状態を監視する。【選択図】        図１
2004334493.tif 000002
【特許請求の範囲】
【請求項１】
制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するための所定の処理を行う処理実行部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と
を備えてなるジョブ制御装置。
【請求項２】
請求項１に記載のジョブ制御装置において、
前記ジョブ指定記述読取部は、前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述された実行すべきプログラムとの関係において記述された前記ジョブ指定記述を読取ることを特徴とするジョブ制御装置。
【請求項３】
請求項２に記載のジョブ制御装置において、
前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいて、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記処理実行部は、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御装置。
【請求項４】
請求項３に記載のジョブ制御装置において、
前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記処理実行部は、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とするジョブ制御装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載のジョブ制御装置において、
前記ジョブ指定記述には、ジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれることを特徴とするジョブ制御装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載のジョブ制御装置において、
前記制御設定ファイル読み込み部は、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行部は、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことを特徴とするジョブ制御装置。
【請求項７】
請求項１乃至請求項６のいずれかに記載のジョブ制御装置に読み取られる制御設定ファイルであって、
ジョブを任意に指定することができるジョブ指定記述部と、該指定記述部に記述されて指定されたジョブについての内容記述部とを備えてなる制御設定ファイル。
【請求項８】
制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
を備えてなるジョブ制御方法。
【請求項９】
制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
をコンピュータに実行させるジョブ制御プログラム。
【請求項１０】
請求項９に記載のジョブ制御プログラムにおいて、
前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、
前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置、制御設定ファイル、ジョブ制御方法およびジョブ制御プログラムに関し、特に、バッチジョブを投入する際にユーザの管理の手間を減らすことを目的にして開発されたものである。
【０００２】
【従来の技術】
従来のジョブを投入するジョブ制御装置の概念図を図１０に示す。従来の装置では、ユーザはジョブを投入するためのスクリプトや記述ファイルを添えてジョブをキューに投入し、ジョブＩＤをユーザに返す。ユーザは、ジョブの終了をメール等で確認し、あるいは、ジョブＩＤを指定して状況を確認する。ジョブの終了後は、結果をファイルから取り出す。このようなバッチジョブシステムにはプラットフォームコンピューティング社のＬＳＦ（ｈｔｔｐ：／／ｗｗｗ．ｐｌａｔｆｏｒｍ．ｃｏｍ／），  ＯｐｅｎＰＢＳ（ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｐｂｓ．ｃｏｍ／），  ウィスコンシン大学Ｈｉｇｈ  Ｔｒｏｕｇｈｐｕｔ  Ｃｏｍｐｕｔｉｎｇ  チームによるｃｏｎｄｏｒ  （ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｗｉｓｃ．ｅｄｕ／ｃｏｎｄｏｒ／）  などがある。
【０００３】
ジョブの終了はいずれも一つのジョブが終わるたびにメールを受け取るオプションを指定することができ、終了をユーザが確認することができた。しかし、複数のジョブの全ての終了した後で確認することができるのはごくわずかのシステムだけである。
【０００４】
上記「ｃｏｎｄｏｒ」においては、一つのジョブ制御ファイルから複数のジョブを投入できるが、指定できるのは実行するプログラム名とそのパラメータであり、実行するプログラムがｓｈ  スクリプトやｐｅｒｌ  スクリプトの場合、スクリプトとジョブ制御ファイルを別々に管理する必要があった。一度に投入したジョブ群が全て終了したときの通知方法はメールを送ることだけが可能であり、一般のプログラムを起動したりファイルに書き込んだりすることはできなかった。
【０００５】
「ｃｏｎｄｏｒ」以外ではジョブは一度に一つしか投入できないため、多くのジョブを機械的に投入するには、別のプログラム、例えばｓｈスクリプトやｐｅｒｌ  スクリプトを別途用意して、そこからジョブ投入をする必要があり、ジョブ投入のためのスクリプトと、実行するべきジョブのスクリプトを別に管理する必要があった。しかもジョブ投入のためのスクリプトは投入するたびに修正する必要があり、間違いが入り込みやすかった。「ｃｏｎｄｏｒ」でも、投入できるジョブの列を記述できるだけであり、似たジョブを繰り返し投入したい場合は、別のプログラムで、ジョブ制御ファイルを自動生成してから投入するという煩瑣な手続きが必要であった。
【０００６】
また、別のジョブの終了を待ってジョブを実行する方法がいくつか提供されている。例えば、「ＰＢＳ」においては、一度全てのジョブを投入した後、投入時に得られるジョブＩＤに関して別途コマンドで前後関係を指定するという手続きをとる。しかし、この方法ではジョブを投入するまでＩＤが分からないため、後ろのジョブは一度実行保留（ｈｏｌｄ）  状態で投入してから、そのＩＤを用いて前後関係を指定し、保留状態を解除するという手続きが必要で、非常に煩瑣であった。
【０００７】
また、「ｃｏｎｄｏｒ」においてはＤＡＧ（Ｄｉｒｅｃｔｅｄ  Ａｃｙｃｌｉｃ  Ｇｒａｐｈ＝有向非環状グラフ）としてジョブ間の実行順序を指定できる。しかし、この指定は、通常のジョブ制御ファイルとは独立のフォーマットで、別のファイルに記述し、異なるコマンド群を用いて実行を行う。すなわち「ＤＡＧ」のためのファイルとジョブ制御ファイルともしも実行するのがスクリプトであれば、スクリプトの３種類のフォーマットの異なるファイルを同時に管理する必要があった。また、前後関係を記述することができるのはジョブに限られ、簡単なファイルの集計など実行時間のごく短い作業に関しても、ジョブとして投入する必要があり、キューの中でマシンがあくのを待つ必要があった。
【０００８】
【発明が解決しようとする課題】
従来は、一度に投入するジョブの数が比較的少なく、数個から数十個であったため、ジョブの終了をメールなどで待つことが容易であり、またあるジョブが終了した後で別のジョブを投入する必要があれば、そのたびにユーザが手作業で行っていた。しかし、ＧＲＩＤ  技術などによりネットワークで大量の計算機が接続され、数百という計算機が利用可能になった現在、ユーザが一度に投入するジョブの数が数百あるいは数千と大量になる。この場合、ジョブ投入のためのスクリプトや制御ファイルを手作業で作成し、あるいは別途プログラムを実行して作成する必要があり、その管理にかかる手間は多く、また間違いが入りやすいという問題があった。
【０００９】
また、ユーザが一度に投入するジョブの数が数百あるいは数千と大量になった場合、一つ一つのジョブの終了をメールで通知されても、数が多すぎてユーザには管理できないという問題点があった。
【００１０】
また、多くの計算機を用いてジョブを実行する場合、ジョブは接続された計算機で同時並列に実行されるため、順不同にジョブが終了する。すると、必要なジョブ群が終了した後で別の作業を行う場合、例えばジョブ群の結果の取りまとめやジョブ結果を用いた別の作業を行う場合に、本当に必要なジョブが全て終わったかどうかを調べるのも困難であり、定期的に人手でチェックする必要があり、非常に時間がかかるという問題があった。
【００１１】
更に、終了時に自動的に別の作業を行わせるのも難しいという問題があった。また、待つべきジョブの数が不定の場合すなわち、入力に応じてジョブ数が変わるような場合、待ち合わせを記述するのは大変に難しいという問題があった。また、ジョブが出力するデータに基づいてべつのジョブを投入すべきかどうかを判断したい場合がある。例えば、ジョブの出力する結果が最適値になるようさまざまなジョブを試みる場合などが上げられる。しかし、ジョブの待ち合わせをした後、適当なプログラムを実行して最適値かどうか判断し、かつさらにジョブを投入するというのは難しいという問題があった。
【００１２】
また、ジョブの待ち合わせをしたい場合に、複数の待ち合わせがそれぞれ良く似たジョブ群を待ちたいときがある。例えば、パラメータＡが１である全てのジョブを待ち合わせてする作業、パラメータＡが２である全てのジョブを待ち合わせてする作業、…パラメータＡが１０である全てのジョブを待ち合わせてする作業があるとき、それぞれの待ち合わせを１０回記述するのは大変に煩雑であるという問題点がある。
【００１３】
また、大量に投入したジョブのうち一部のみをやり直したいという場合がある。例えば、入力ファイルを一部修正して、関連するジョブのみを投入したい場合がある。このような場合従来では、必要なジョブのみを手で投入する必要があり、ジョブ数が増えた場合は、手入力では困難で別途スクリプトなどを介してジョブ投入する必要があるが、その度にスクリプトを作成、更新、管理するのは煩雑であるという問題点もあった。
【００１４】
また、ジョブの実行には非常に長い時間がかかることがあり、その結果本特許のソフトウェアはその間ずっと実行しつづける必要があるが、ハードウェアトラブルなどの原因で異常終了する危険性が高まる。この場合に待ち合わせを継続する方法がないと、本特許のソフトウェアの有効性が大きく損なわれるという問題点がある。
【００１５】
また、「ＰＢＳ」など一部のジョブ投入機構では、ジョブがいったん終了してしまうと、ジョブの実行開始、終了に関する情報を出さない場合があり、実行開始・終了の時点を把握できないという問題点があった。
【００１６】
本発明は、上述した課題を解決するために成されたもので、バッチジョブを投入する際にユーザの管理の手間を減らすことを目的とする。また、本発明は、ジョブ投入に必要なスクリプトやコントロールファイルを自動的に作成することができ、また、重複するジョブの投入を行わないようにすることで実行に要する時間を減らすことを目的とする。更に本発明は、一部のジョブのみを実行しなかったかのように設定することで、ファイルの変更なしに選択的に再実行を行うことを可能にすることを目的とする。
【００１７】
【課題を解決するための手段】
上述した課題を解決するため、本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するための所定の処理を行う処理実行部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部とを備えてなるものである。
【００１８】
このような構成によれば、ユーザは任意にジョブを指定してジョブの投入処理を行うことができるので、ジョブを投入するための制御設定ファイルの作成が容易となり、またその自由度も高くなり、もってジョブ投入に際してユーザの負担を軽減することができる。なお、実施の形態における処理実行部は、ジョブ状態ハンドリング部６、実行内容実行部４およびジョブ投入部５により構成されているが、この処理実行部としては、ジョブ管理部による管理結果に基づいてジョブを投入するタイミングを判断し、その判断結果を外部に出力するような処理を行うものであっても良い。
【００１９】
また、本発明のジョブ制御装置において、前記ジョブ指定記述読取部は、前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述された実行すべきプログラムとの関係において記述された前記ジョブ指定記述を読取ることを特徴とすることができる。
【００２０】
このような構成によれば、例えばｆｏｒ文やｗｈｉｌｅ文などの繰り返し制御を使うことができ、その中でジョブ投入をすることができる。したがって、制御設定ファイルにごく短く記述するだけで大量のジョブを簡単に投入できることとなる。また、一般にプログラムは、判断、繰り返し、副プログラムの呼び出しなどを記述できるため、複雑な作業、例えばジョブの結果の取り出し、ジョブの結果に基づく別のジョブの投入、不定個のジョブの結果の繰り返しによる処理を行うことができる。従って、不定個のジョブを待ち合わせての処理や、ジョブの結果に基づいて別のジョブを投入することもでき、ジョブ投入処理に大きな自由度を提供できる。
【００２１】
また、本発明のジョブ制御装置において、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいて、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記処理実行部は、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【００２２】
このような構成によれば、投入条件が満たされた場合に自動的にジョブを投入することができる。従って、例えば、他のジョブの終了を条件として、別のジョブを投入させることができるので、他のジョブに依存性があるジョブでも簡単に投入することができる。なお、実施の形態においてジョブ投入条件は処理実行部を構成するジョブ投入部において判断されるが、ジョブ状態データベース管理部、ジョブ状態ハンドリング部、実行内容実行部のいずれかにおいて判断されるようにしても良い。
【００２３】
また、本発明のジョブ制御装置において、前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記処理実行部は、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とすることができる。
【００２４】
このような構成によれば、他のジョブの終了を条件として、別のジョブを投入させることができるので、他のジョブに依存性があるジョブでも簡単に投入することができる。この場合、他のジョブは一つでも複数でも良く、大量のジョブに依存するジョブの投入も自動的に行うことができる。
【００２５】
また、本発明のジョブ制御装置において、前記ジョブ指定記述には、ジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれることを特徴とすることができる。
【００２６】
このような構成によれば、大量のジョブでも、一つの制御設定ファイルにより投入することができるので、その処理が容易となり、大量のジョブの処理の迅速化、容易化を実現できる。
【００２７】
また、本発明のジョブ制御装置において、前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、前記処理実行部は、各パラメータを置換してジョブ指定を表す置換リストを作成することを特徴とする。
【００２８】
このような構成によれば、パラメータ表示されたジョブ指定を具現化した指定とすることができるので、コンピュータ内でパラメータにより指定された各ジョブの特定が容易となり、処理が容易となる。
【００２９】
また、本発明のジョブ制御装置において、前記制御設定ファイル読み込み部は、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行部は、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことを特徴とする。
【００３０】
このような構成によれば、制御設定ファイルの記述が容易となり、また、大量のジョブの指定も容易に行うことができる。
【００３１】
また、本発明のジョブ制御装置において、前記処理実行部は、前記制御設定ファイルに記述されたジョブの雛形に基づいてジョブスクリプトファイルを作成し、前記ジョブ投入システムへジョブを投入することを特徴とするジョブ制御装置。
【００３２】
このような構成によれば、雛形による制御設定ファイルの記述に基づいてジョブ投入に必要なファイルを自動生成することができ、もって、制御設定ファイルの記述が容易となり、また、大量のジョブの指定も容易に行うことができる。
【００３３】
また、本発明のジョブ制御装置において、前記処理実行部は、ジョブの実行開始またはジョブの終了に関する情報を書き出すためのコマンドを前記ジョブスクリプトファイル追加することを特徴とすることができる。
【００３４】
このような構成によれば、ジョブ投入システムがジョブの実行開始、終了に関する情報を出さない場合でも、ジョブの開始、終了の状態を把握できる。また、全てのジョブの終了を待つことができるため、本装置を用いて投入した全てのジョブの終了を簡単に判定できる。
【００３５】
また、本発明のジョブ制御装置において、前記ジョブ指定記述には、ジョブの開始またはジョブの終了を表すジョブを指定する記述が含まれることを特徴とすることができる。
【００３６】
このような構成によれば、開始時や終了時に必ず実行する内容を記述でき、例えば、終了時に必ず行う処理を記述できる。例えば、特定のファイルに特定の値を書き込んだり、むあるいは特定のあて先にメールを送るなどの処理ができる。従って、本発明によれば、本ソフトウェアを用いて投入した全てのジョブの終了の際に適当な作業を指示できる。
【００３７】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、データベースに書き込まれたジョブの状態を参照して、ジョブの投入、開始及び終了を管理することを特徴とすることができる。
【００３８】
このような構成によれば、データベースのデータが消去されない限り、投入処理に関する履歴を保持することができる。
【００３９】
また、本発明のジョブ制御装置において、前記データベースには、ジョブ指定記述、ジョブＩＤ、ジョブ状態が記憶され、前記ジョブ管理部は、新規ジョブの登録、ジョブの検索、ジョブの削除、ジョブ状態の変更を行うことを特徴とすることができる。
【００４０】
このような構成によれば、様々な投入処理に関する管理データをデータベースに保持することができる。
【００４１】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、更に、所定のジョブについて、そのジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とすることができる。
【００４２】
このような構成によれば、ジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストが管理される。
【００４３】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、更に、所定のジョブについて、そのジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とすることができる。
【００４４】
このような構成によれば、ジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストが管理される。
【００４５】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、前記データベースから所定のジョブを削除する場合に、該所定のジョブと共に、該所定のジョブの終了を待って投入されたジョブを削除することを特徴とすることができる。
【００４６】
このような構成によれば、あるジョブを削除する場合、そのジョブに依存するジョブも自動的に削除できる。
【００４７】
また、本発明のジョブ制御装置において、所定の場合、ジョブ管理部により終了されていないとされるジョブについて再度制御設定ファイルを読み込むと共に、そのジョブが他のジョブ結果に依存する場合は、前記処理実行部は前記ジョブ管理部から取得した管理結果に基づいて前記ジョブ投入の判断を行い、該判断結果に基づいて当該ジョブについての前記所定の処理を行うことを特徴とする。
【００４８】
このような構成によれば、例えば、所定の場合として、ジョブ制御装置が異常終了した場合、あるいは正常終了後に再度実行を行った場合、ジョブ管理部がデータベースなどに管理データを保存している場合には、ジョブの管理結果が保存されているため、一度投入したジョブを再度投入する必要が無くなる。また、処理実行部がジョブ管理部から管理結果を取得するため、待ち合わせデータ等の依存関係も終了前の状態が維持され、再構築される。従って、終了前の状態が継続されることとなり、再稼働が効率的に行われることとなる。
【００４９】
また、本発明は、制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と、前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理部より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断部とを備えてなることを特徴とすることができる。
【００５０】
このような構成によれば、ジョブの投入処理の制御において、その投入のタイミングを自動的に指示することができる。これは、上述した処理実行部が条件判断を行うことのみについて言及するものであり、その判断結果をジョブ制御装置内で用いることは勿論、その判断結果を外部に出力して、外部装置の投入処理に用いるようにしても良い。
【００５１】
また、本発明のジョブ制御装置において、前記ジョブ管理部は、前記データベースに書き込まれたジョブの状態について、書き換えまたは消去することができ、前記処理実行部は、消去されたジョブについては、制御設定ファイルを再度読み込み、前記所定の処理又は前記ジョブ管理部の管理結果に基づく処理を実行することを特徴とすることができる。
【００５２】
このような構成によれば、データベース管理部に対して、ジョブの削除をした後、再度実行すると、削除されなかったジョブに関しては、ジョブ状態データベースを参照するとジョブが見つかるので再度ジョブを投入することはないのに対し、削除したジョブに関してのみはジョブが見つからないので再度ジョブを投入する。すなわち削除したジョブのみを再度実行できる。以上の作業ではユーザはやり直すジョブ名を指定してジョブを削除するのみで、ファイルを編集する必要はない。このため、ファイルを編集することなく一部のジョブのみを再実行できる。なお、ジョブの待ち合わせ関係を考慮して、削除されたジョブを待って実行したジョブや、さらにそのジョブを待って実行したジョブなど全ての待ち合わせ関係にあるジョブを自動的に削除するようにすることにより、ファイルを編集することなく一部のジョブとその関連するジョブのみを再実行できる。
【００５３】
また、本発明は、上述したジョブ制御装置に読み取られる制御設定ファイルであって、ジョブを任意に指定することができるジョブ指定記述部と、該指定記述部に記述されて指定されたジョブについての内容記述部とを備えてなるものである。
【００５４】
このような構成によれば、ユーザは任意にジョブを指定してジョブの投入処理を行うことができる制御設定ファイルを提供することができる。
【００５５】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップとを備えてなるものである。
【００５６】
また、本発明のジョブ制御方法において、前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【００５７】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップとを備えてなる。
【００５８】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップとをコンピュータに実行させるものである。
【００５９】
また、本発明のジョブ制御プログラムにおいて、前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とする。
【００６０】
また、本発明は、制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップとをコンピュータに実行させるものである。
【００６１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
実施の形態１．
図１は本発明の実施の形態１を示すブロック図である。
実施の形態１のジョブ制御装置は、制御設定ファイルを読取り、制御設定ファイルの記述内容に基づいて、バッチジョブ投入システム（以下ジョブ投入システムという）７へジョブを投入するための制御を行うジョブ制御装置であって、制御設定ファイル読み込み部１、ジョブ状態データベース２を有するジョブ状態データベース管理部３、実行内容実行部４、ジョブ投入部５、およびジョブ状態ハンドリング部６を備えてなる。以上の構成において、実行内容実行部４、ジョブ投入部５、およびジョブ状態ハンドリング部６は、本発明の処理実行部を構成している。なお、ジョブ状態データベース２は、外部に本装置の外部に設けられる外部データベースであっても良い。
【００６２】
本装置に使用される制御設定ファイル７は、投入すべきジョブの名前（ジョブ指定記述）とジョブで実行すべき内容とが関連付けて記述されたものである。この関連付けは、図２（Ａ）に示すように制御設定ファイルに記述されてなる。
ここで、名前はジョブ指定記述として使用されるものであり、ユーザが任意のジョブを指定できるようにしたものである。
【００６３】
この制御設定ファイルには、投入すべきジョブを雛形の形式で記述できる。例えば投入すべきジョブの内容は、図２（Ｂ）に示されるように記述することができる。
【００６４】
以下、本明細書において、「ジョブの内容」とした場合、制御設定ファイル中に直接記述されている場合と、他のファイルなどを参照している場合の両方を総称することとする。
さらに、実施の形態では、制御設定ファイルには、待つべきジョブの種類とそのときに投入すべきジョブのリストがジョブ名とジョブのスクリプトの雛形とともに記述することができる。例えば待つべきジョブを記述するために、制御設定ファイルは、図２（Ｃ）に示されるように記述される。
【００６５】
さらに、制御設定ファイルには、上述（図２（Ａ）〜図２（Ｃ））したように、実行すべきジョブの名前とジョブの内容の列を記述する代わりに、図２（Ｄ）に示すように、最初にプログラムを記述でき、そのプログラムの中からジョブの名前を指定してジョブの投入を指示することもできるし、図２（Ｅ）に示すように、待つべきジョブが全て終了してから実行すべき内容としてのプログラムを記述することができ、そのプログラム中からジョブを名前で指定してジョブを投入するようにすることもできる。なお、これらの構成では、制御設定ファイルには、待つべきジョブの種類とその時に実行すべきプログラムが記述され、プログラム中で、投入すべきジョブに関してジョブ名とジョブのスクリプトの鋳型を記述する。
【００６６】
以下、ジョブ制御装置の各構成について説明する。
（制御設定ファイル読み込み部）
制御設定ファイル読み込み部１は、制御設定ファイル入力部１１から入力された制御設定ファイルＦを読み、実行すべきジョブの名前とジョブの内容を制御ファイル内容として保持する。そして、制御設定ファイル読み込み部１は、図３（Ａ）に示されるように、ジョブの名前と実行すべき内容の対からなるリストを制御設定ファイル内容の実行内容として保持することができる。このジョブ名はユーザが任意にジョブを指定することができるジョブ指定記述によるものであり、ジョブ指定記述読取部１ａにより読み取られてジョブの名前がジョブの内容と区別される。
【００６７】
また、図３（Ｂ）に示すように、待つべきジョブの名前、ジョブの名前のリスト、あるいはジョブのパターンのリストと実行内容の対からなるリストを制御設定ファイル内容の待ち合わせリストとして保持することもできる。
さらに、図３（Ｃ）に示すように、実行内容はプログラムの場合と、そうでない場合があり、プログラムでない場合、実行内容はジョブの名前とジョブの実行内容の対からなるリストである。
【００６８】
（ジョブ投入部）
ジョブ投入部５は、制御設定ファイルＦから指定されたスクリプトやジョブの内容が納められたファイルを利用し、あるいは、制御設定ファイル自身に書いてある投入すべきジョブの内容を用いてジョブを投入する。
ジョブ投入部５は、ジョブ名がパラメータなどの変数で指定された場合に置換リストでジョブ名を個別に特定するための置換処理部５ａと、投入されるジョブについてのジョブスクリプト一時ファイルＪＦを作成する投入処理部５ｂを有して構成され、投入すべきジョブの名前と内容および必要に応じて置換リストと終了するのを待った他のジョブの名前のリストを受け取る。終了を待ったジョブの名前のリストはジョブの投入が他のジョブに依存して行われるような場合にのみ渡される。
【００６９】
以下、ジョブ投入部５の動作について説明する。
（Ｓｔｅｐ  １）もし置換リストがあれば、ジョブの名前を置換する。
（Ｓｔｅｐ  ２）ジョブの名前でジョブ状態データベースを検索する。
（Ｓｔｅｐ  ３）もしも同じ名前のジョブ存在すれば何もしないで処理を終了する。
（Ｓｔｅｐ  ４）もしも同じ名前のジョブがなければ、以下の作業を行う。
（Ｓｔｅｐ  ５）もしも置換リストがあれば、ジョブの内容を置換して一時ファイルに保存する。
【００７０】
（Ｓｔｅｐ  ５．１）もしもジョブの内容が別のファイルを参照している場合は、その内容を置換して別の一時ファイルに保存する。
（Ｓｔｅｐ  ５．２）もしもジョブの実行内容が制御設定ファイルにかかれていた場合は、その内容を置換して一時ファイルに保存する。
【００７１】
（Ｓｔｅｐ  ６）もしも置換リストがなければ、ジョブの内容を一時ファイルにコピーする。
（Ｓｔｅｐ  ７）もしもジョブ投入システム７がジョブの実行開始、終了時刻をジョブ制御装置あるいはジョブ状態データベース２に返さないようなシステムの場合には、ジョブの実行内容の一部として、ジョブの内容の書かれた一時ファイルに、最初にジョブ状態データベースへ開始状態を書き込み、最後にジョブ状態データベース２へ終了を書き込むよう指示を追加する。
【００７２】
（Ｓｔｅｐ  ８）保存した一時ファイルを用いてジョブ投入システムにジョブを投入する。
（Ｓｔｅｐ  ９）ジョブ投入時にジョブ投入システム７から返されるＩＤとジョブの名前と状態がジョブ投入であることをジョブ状態データベースに登録する。なお、このジョブの投入に際して、このジョブが他の依存するジョブを待った場合には、待ったジョブの名前のリストも登録する。
【００７３】
（ジョブ状態データベースおよびその管理部）
ジョブ状態データベース２は、ジョブ名、ジョブＩＤ、及びジョブの状態の項目を記憶して保持する。ここで、ジョブの状態には、「ジョブ投入」「開始」「終了」の３つがある。ジョブ状態データベース管理部３は、ジョブ状態データベース２を用いて、以下の操作うことができる。
【００７４】
（１）新しいジョブを新規登録する。
（２）ジョブ名でジョブを検索し、結果を取り出す。
（３）全てのジョブを検索し、結果を取り出す。
（４）ジョブ状態データベースからジョブ名を指定してジョブを除く。
（５）ジョブ名を指定して、状態を変更する。
【００７５】
これらの操作はいずれも自明の方法を用いてよいので、ここでは特に記述しない。なお、（４）の操作であるジョブを除く際に、待ち合わせ関係にあるジョブを全て除くために、待ち合わせ状態にあるジョブ関係を示すデータをも保持する内容とすることができる。また、新しいジョブを新規登録する操作とジョブ状態データベースからジョブ名を指定してジョブを除く操作とに拡張が行われる。保持する内容を増やすには二つの方法があり、どちらでも同じ効果を出す
ことができる。
【００７６】
＜保持方法１＞
この場合の保持内容は、（１）ジョブ名、（２）ジョブＩＤ、（３）状態、（４）待ったジョブ名のリストである。
この保持方法１では、ジョブの新規登録の際には、与えられたジョブ名、ジョブＩＤ、状態、待ったジョブ名のリストをそのまま登録すればよい。また、この保持方法１では、ジョブ名を指定してジョブを除く場合、以下のようにする。
【００７７】
（Ｓｔｅｐ  １）ジョブ名でデータベースを検索し、そのジョブを除く。
（Ｓｔｅｐ  ２）データベースに保持されている全てのジョブのうち、以下の条件に該当するジョブの名前を取り出す。
（Ｓｔｅｐ  ２．１）待ったジョブのリストの中に削除を指示されたジョブの名前がある。
（Ｓｔｅｐ  ３）該当した全てのジョブの名前に関して、再帰的にジョブを除く作業を行う。
【００７８】
＜保持方法２＞
この場合の保持内容は、（１）ジョブ名、（２）ジョブＩＤ、（３）状態、（４）待たれたジョブ名のリストである。
この保持方法２では、ジョブの新規登録は以下のようにする。
（Ｓｔｅｐ  １）与えられたジョブ名、ジョブＩＤ、状態を登録する。待たれたジョブ名のリストは、空にする。
（Ｓｔｅｐ  ２）与えられた「待ったジョブ名のリスト」の中の各ジョブ名（ジョブ名１とする）に関して、以下の作業を繰り返し行う。
（Ｓｔｅｐ  ２．１）ジョブ名（１）でデータベースを検索する。
（Ｓｔｅｐ  ２．２）検索されたジョブがあれば、その待たれたジョブ名のリストに、新規登録するジョブのジョブ名を追加する。
【００７９】
この保持方法２では、ジョブ名を指定してジョブを除く場合、以下のようにする。
（Ｓｔｅｐ  １）ジョブ名でデータベースを検索する。
（Ｓｔｅｐ  ２）待ったジョブ名のリストを保持する。
（Ｓｔｅｐ  ３）検索されたジョブを除く。
（Ｓｔｅｐ  ４）保持している待ったジョブ名のリストにある各ジョブに関して、再帰的にジョブを除く作業を行う。
【００８０】
なお、ジョブ投入システム７が、ジョブの開始、ジョブの終了を知らせる方法を提供する場合、定期的にジョブ投入システム７にジョブの状態を問い合わせ、ジョブが開始した場合にそのジョブの状態を開始とし、終了した場合は終了とする操作を追加する。この操作は本装置の動作実行期間中続けられ、常にジョブの監視が行われる。
【００８１】
このための手続きは以下のとおりである。
（Ｓｔｅｐ  １）以下の作業を定期的に（１秒に１度など）行う。
（Ｓｔｅｐ  １．１）データベース中の全てのジョブのうち、状態が終了でない全てのジョブ（ジョブＡとする）に関して以下の作業を行う。
（Ｓｔｅｐ  １．１．１）ジョブＡのジョブＩＤを取り出す。
（Ｓｔｅｐ  １．１．２）ジョブ投入システム７にジョブＩＤのジョブの状態を問い合わせる。
（Ｓｔｅｐ  １．１．３）もしもジョブが実行開始していれば、ジョブＡの状態を「開始」にする。
（Ｓｔｅｐ  １．１．４）もしもジョブが終了していれば、ジョブＡの状態を「終了」にする。
【００８２】
また、ジョブ状態データベース２は、以上の方法か、あるいはジョブの内容として記述されたデータベースへの書き込み手段で、ジョブの状態が変更された場合は、ジョブ状態データベース管理部３は、変化のあったジョブの名前について、ジョブ状態ハンドリング部６に変更を通知する。なお、これを実装するためには、ジョブ状態ハンドリング部６に書き込みのための手段が通知するようにしても良いし、ジョブ状態ハンドリング部６が定期的にデータベース２若しくはジョブ状態データベース管理部３に問い合わせて監視して、変更のあった部分のみを認識するようにしても良い。
【００８３】
（ジョブ状態ハンドリング部）
ジョブ状態ハンドリング部６は、制御設定ファイル読み込み部１で読み込まれた制御設定ファイルＦの内容（ジョブ名とジョブの内容）を保持する制御設定ファイル内容記憶部６ａとジョブ名がパラメータ（変数）表示されるような場合に、その置換リスト及びそれらの処理に待つ必要がある「待つジョブ名」のリストである待ち合わせジョブデータ記憶部６ｂとを有する。そして、状態の変化したジョブに関する情報をジョブ状態データベース２から取得する。なお、これはジョブ状態データベース管理部３が動作主体としてジョブ状態データベース２におけるジョブの状態変化を監視し、その状態変化があった場合にその情報をジョブ状態ハンドリング部６に提供するようにしても良い。
【００８４】
この場合、いずれかのジョブの状態が変化した場合には、他の全てのジョブの状態をジョブ状態データベース２から調べ、全てのジョブの状態が「終了」になるまでは、何もしない。もしも全てのジョブの状態が「終了」であった場合は、この本装置（ソフトウェア）の動作の終了を指示する。
また、待つべきジョブのジョブ名を一つあるいは複数、若しくは待つべきジョブのジョブ名のパターン若しくは変数表示を書けるプログラムを用いた場合では、図４に示されるようにジョブ状態の待ち合わせデータＷＤを持つ。このデータは、本図に示すように制御設定ファイル内容ＦＤと関連付けてあるいは一体化して実現される。
【００８５】
変更のあったジョブのジョブ名に関して制御設定ファイル内容の待ち合わせリストを探索し、もしも待つジョブの状態が全て「終了」であれば、その処理を行う。すなわち以下のような手続きを行う。
【００８６】
（Ｓｔｅｐ  １）制御設定ファイル内容のジョブの待ち合わせリストの各項目（待ち合わせＷと呼ぶ）に関して以下の処理を行う。
（Ｓｔｅｐ  １．１）もしも変更のあったジョブのジョブ名が待ち合わせＷの待つジョブ名と一致する場合。すなわち以下のどれかである場合処理を進める。もしもそうでなければ（Ｓｔｅｐ  １）の別の待ち合わせに進む。
【００８７】
（１）ジョブ名が一つしか記述できないソフトウェアである場合、ジョブ名が一致する。
（２）ジョブ名が複数記述できる場合、それらのどれかと変更のあったジョブ名が一致する場合。
（３）ジョブ名のパターンが一つ以上記述できる場合、それらのパターンのどれかと変更のあったジョブ名がマッチする場合。ただし、パターンの例として、ＵＮＩＸ  のｓｈ  のワイルドカード（＊は任意個の文字とマッチし、？は任意の一文字とマッチする）や正規表現などが含まれる。
【００８８】
（Ｓｔｅｐ  １．２）そのジョブ名を待ち合わせＷと関連する待ち合わせデータの待つジョブ名のリストに加える。同じジョブ名が重複して入る場合は一つ以外は除いてかまわない。
（Ｓｔｅｐ  １．３）待ち合わせデータのジョブ名のリストの各ジョブ名（待つジョブＷＪと呼ぶ）の状態が全て「終了」かどうか調べる。すなわち以下の作業を行う。
（Ｓｔｅｐ  １．３．１）ジョブ状態データベースで待つジョブＷＪの状態を取り出す。
（Ｓｔｅｐ  １．３．２）もしも取り出した状態が「終了」でなければ、この検査を取りやめ、（Ｓｔｅｐ  １）の別の待ち合わせに進む。
（Ｓｔｅｐ  １．４）全ての状態が「終了」であったら、その実行内容と待ったジョブのジョブの名前のリストを実行内容実行部４に渡し、実行内容実行部４は必要に応じて所定の処理を実行する。
【００８９】
なお、本装置の動作終了においては、実行内容実行部４の実行の終了も判定される。すなわち、いずれかのジョブの状態が変化した場合には、他の全てのジョブの状態をジョブ状態データベース２から調べ、もしも全てのジョブの状態が「終了」でかつ、実行内容実行部４の実行が終了している場合は、本装置の動作（ソフトウェアの動作）の終了を指示する。
【００９０】
また、制御設定ファイルの内容ＦＣとして、待つべきジョブのパターンの一部として変数を書ける場合、図５に示されるようにジョブ状態の待ち合わせデータ（ＷＤ）を持つ。待ち合わせデータ（ＷＤ）は、ジョブ（待つジョブ名）（Ｗ１，Ｗ２）毎に関連する待ち合わせ（Ｗ１′，Ｗ２′）と変数の置換リストＬ１〜Ｌ４で指定できる処理単位のリストＵ１〜Ｕ４からなる。このデータは、図５に示されるように制御設定ファイル内容と関連付けてあるいは一体化して実現される。
【００９１】
変更のあったジョブのジョブ名に関して制御設定ファイル内容の待ち合わせリストを探索し、該当する処理単位にある待つジョブの状態が全て「終了」であれば、その処理を行う。すなわち以下のような手続きを行う。
【００９２】
（Ｓｔｅｐ  １）制御設定ファイル内容のジョブの待ち合わせリストの各項目（待ち合わせＷと呼ぶ）に関して以下の処理を行う。
（Ｓｔｅｐ  １．１）もしも変更のあったジョブのジョブ名が待ち合わせＷの待つジョブパターンのどれかとマッチする場合。パターンの中に変数が記述されている場合、変数と値の対からなるリストを置換リストとして取り出す。変数がない場合は置換リストは空である。もしもいずれのパターンともマッチしない場合は、（Ｓｔｅｐ  １）の別の待ち合わせに進む。
【００９３】
（Ｓｔｅｐ  １．２）待ち合わせＷに関連する処理単位で、同一の置換リストからなる処理単位がなければ、新規にそのような処理単位を追加する。
（Ｓｔｅｐ  １．３）待ち合わせＷに関連する処理単位で、同一の置換リストからなる処理単位（これを処理単位Ｕと呼ぶ）の待つジョブのリストに変更のあったジョブを追加する。同じジョブ名が重複して入る場合は一つ以外は除いてかまわない。
（Ｓｔｅｐ  １．４）処理単位Ｕの待つジョブリストの中の各ジョブ名（待つジョブＷと呼ぶ）の状態が全て「終了」かどうか調べる。
【００９４】
すなわち以下の作業を行う。
（Ｓｔｅｐ  １．４．１）ジョブ状態データベースで待つジョブＪＷの状態を取り出す。
（Ｓｔｅｐ  １．４．２）もしも取り出した状態が「終了」でなければ、この検査を取りやめ、（Ｓｔｅｐ  １）の別の待ち合わせに進む。
（Ｓｔｅｐ  １．５）全ての状態が「終了」であったら、処理単位Ｕの実行内容と待ったジョブのジョブの名前のリストと置換リストを実行内容実行部に渡す。
【００９５】
（実行内容実行部）
実行内容実行部４は、ジョブの待ち合わせ終了時あるいは、本装置（ソフトウェア）起動時に処理を行う。実行内容実行部４は、実行内容と置換リスト（置換リストが用いられた場合）と待ったジョブの名前のリストを受け取り処理する。実行内容としてプログラムが記述されていない場合、実行内容は、投入すべきジョブの名前とその内容の対からなるリストについて、リストの各ジョブ名と、その内容とを、置換リストがある場合は置換リストを待ったジョブの名前とともにジョブ投入部５に渡す。
【００９６】
実行内容としてプログラムが記述されている場合、プログラムを実行する。プログラムとして記述する際のプログラム言語は文字列をプログラムとして実行できる処理系があれば任意のものを選んでよい。例えば、ｐｅｒｌ，  ｔｃｌ  などのスクリプト言語、ｓｈ，  ｃｓｈ  などのＵＮＩＸ  のシェル、また、Ｃ  インタプリタを用いてＣ  言語のプログラムを記述することもできる。いずれの言語を使う場合でもジョブの投入を指示する方法を用意する。ジョブの投入を指示する時には、必ず投入したいジョブのジョブ名とそのジョブの内容を記述する。
【００９７】
ジョブの投入を指示する部分を実行する際には、そこに記述されたジョブ名、ジョブの内容とともにオプションの置換リストと待ったジョブの名前のリストを渡す。単に置換リストを渡すだけでなく、プログラム中の変数の値のリストを置換リストに追加して渡したり、オプションの置換リストの代わりに渡したりすることもできる。
【００９８】
（動作）
以下、実施の形態１の動作について説明する。まず、起動時に制御設定ファイルとジョブ状態データベースを指定する。起動すると以下のように動作する。
【００９９】
（第１動作：ジョブの待ち合わせ等、ジョブの投入条件が不要な場合）
（Ｓｔｅｐ  １）指定された制御設定ファイルを制御設定ファイル読み込み部１で読み込み、制御設定ファイル内容６ａに収める。
（Ｓｔｅｐ  ２）制御設定ファイル内容６ａの実行内容を実行内容実行部４に送る。
（Ｓｔｅｐ  ３）実行内容実行部６は投入すべきジョブに関して、ジョブ名とジョブ内容をジョブ投入部５に送る。
（Ｓｔｅｐ  ４）ジョブ投入部５はジョブ状態データベース２を参照して必要なジョブのみをジョブ投入システム７に投入する。
【０１００】
（Ｓｔｅｐ  ５）ジョブ状態データベース２はジョブ状態データベース管理部３によりジョブの状態が変更されるたびに書き込みが行われ、この変更がジョブ状態ハンドリング部６で監視される。なお、ジョブ状態データベース管理部６がこのような変更が生じた場合にジョブ状態ハンドリング部６に通知するようにしても良いことは言うまでもない。
（Ｓｔｅｐ  ６）ジョブ状態ハンドリング部６が本装置の動作（ソフトウェア）の終了を指示するまでの間（Ｓｔｅｐ  ５）を繰り返す。
【０１０１】
（第２動作：ジョブ投入条件（待つべきジョブを待ってジョブが開始されるという条件）がある場合）
（Ｓｔｅｐ  １）指定された制御設定ファイルを制御設定ファイル読み込み部１で読み込み、制御設定ファイル内容６ａに収める。
（Ｓｔｅｐ  ２）開始時や終了時を表すための特別なジョブ名がある場合として、例えば開始時を表すＴＯＰという特別のジョブの名前を用意する。なお、この特別の名前は、この文字列に限定するものではなく、適宜都合の良い文字列を選ぶことができる。そして、当該ジョブが開始されると、ジョブ状態データベースにＴＯＰというジョブの状態を終了に変更する。
【０１０２】
（Ｓｔｅｐ  ３）ジョブ状態データベース２に収められている、当該ジョブに関連する終了状態のジョブのジョブ名が全てジョブ状態ハンドリング部６に送られる。
（Ｓｔｅｐ  ４）新しくジョブ状態データベース２のジョブの状態が変更された場合、そのジョブがジョブ状態ハンドリング部６に送られる。
（Ｓｔｅｐ  ５）ジョブハンドリング部６にジョブの状態の変更が通知されると（Ｓｔｅｐ  ３，Ｓｔｅｐ  ４）、ジョブハンドリング部６は、待つジョブの状態が全て「終了」になった場合に実行内容を実行内容処理部４に渡す。
【０１０３】
（Ｓｔｅｐ  ６）実行内容実行部６はＳｔｅｐ  ６  で実行を指示されると、投入すべきジョブに関して、ジョブ名とジョブ内容をジョブ投入部５に送る。ジョブ投入部５はジョブ状態データベース２を参照して必要なジョブのみをジョブ投入システム７に投入する。
（Ｓｔｅｐ  ７）ジョブ状態ハンドリング部が本ソフトウェアの終了を指示するまでの間（Ｓｔｅｐ  ４？Ｓｔｅｐ  ６）を繰り返す。
（Ｓｔｅｐ  ８）開始時や終了時を表すための特別なジョブ名がある場合として、例えば終了時をあらわすＥＮＤという特別のジョブの名前を用意する。
なお、この特別の名前は、この文字列に限定するものではなく、適宜都合の良い文字列を選ぶことができる。そして、ジョブ状態データベースにのＥＮＤジョブの状態を「終了」に変え、ジョブ状態ハンドリング部６にＥＮＤジョブの状態の変更を伝える。
【０１０４】
（Ｓｔｅｐ  ９）ジョブ状態ハンドリング部６がＥＮＤジョブを待つ実行内容を見つければ、全てのジョブは終了しているので、その実行内容を実行内容実行部４に送る。
（Ｓｔｅｐ  １０）実行内容実行部が実行を終了したら、本ソフトウェアを終了する。
【０１０５】
（第３動作：初めてジョブ制御ソフトを実行する場合）
制御設定ファイルを読み込み、その内容を実行内容実行部が実行することにより、多くのジョブの実行を一つの制御設定ファイルから投入することができる。
【０１０６】
したがって、本実施の形態では、大量のジョブを簡単に投入するという課題を解決することができる。また、ｆｏｒ文やｗｈｉｌｅ文などの繰り返し制御を使うことができ、その中でジョブ投入をすることができる。したがって、本実施の形態では、制御設定ファイルにごく短く記述するだけで大量のジョブを簡単に投入するという課題を解決することができる。また、ジョブとして実行するべき内容を制御設定ファイルに記述することができ、ジョブ投入の際にはジョブ投入部がこの内容を雛型としてジョブ投入に必要なファイルを自動生成する。したがって、一つのファイルから、多くのジョブの投入を行うという課題を解決することができる。
【０１０７】
また、ジョブ投入機構がジョブの実行開始、終了に関する情報を出さない場合でも、ジョブの開始、終了の状態を把握するという課題を解決することができる。また、ジョブ状態ハンドリング部が全てのジョブの終了を待つため、本実施の形態を用いて投入した全てのジョブの終了を簡単に判定するという課題を解決できる。また、終了時に必ず実行する内容を記述でき、さらにジョブ名をプログラム中に記述できるような構成と組み合わせることで、終了時に必ず行う処理を記述できる。例えば、特定のファイルに特定の値を書き込むあるいは、特定のあて先にメールを送るなどの処理ができる。したがって、本実施の形態を用いて投入した全てのジョブの終了の際に適当な作業を指示するという課題を解決できる。
【０１０８】
また、ジョブ状態ハンドリング部がいくつかのジョブの終了を待ち合わせて、その後で実行内容実行部がジョブを投入する。したがって、ジョブ間に依存性があってジョブの終了を待って別のジョブの投入するという課題を解決できる。また、待つべきジョブが全て終わったときに実行するプログラムを記述できる。一般にプログラムは、判断、繰り返し、副プログラムの呼び出しなどを記述できるため、複雑な作業、例えばジョブの結果の取り出し、ジョブの結果に基づく別のジョブの投入、不定個のジョブの結果の繰り返しによる処理を行うことができる。従って、不定個のジョブを待ち合わせての処理や、ジョブの結果に基づいて別のジョブを投入するという課題が解決できる。
【０１０９】
また、ジョブの待ち合わせの際に待つべきジョブのパターンの中に変数を記述することができ、ジョブ状態ハンドリング部は、その変数の値ごとに処理単位を用意するため、変数の値ごとにジョブ投入を行うことができる。すなわち一つの待ち合わせ記述で、複数の待ち合わせを記述したのと同じ効果を持つ。したがって、類似のジョブの待ち合わせを複数回書かないで済ませるという課題を解決できる。
【０１１０】
（第４動作：途中でジョブ制御ソフトが異常終了した後、再度実行する場合）
本装置の動作がマシンの故障などの不慮の事故で異常終了してしまった場合、そのままでは終了を待ち合わせる処理はできない。しかし、本装置は異常終了後、あるいは正常終了後に再度実行した場合、ジョブ状態データベース２にはジョブの状態が保存されているため、ひとたび投入したジョブを再度投入することはない。また、ジョブ状態データベース２にある全てのジョブは、最初にジョブ状態ハンドリング部６に送られるため、待ち合わせデータは全て異常終了した時点と同じ状態に再構成される。このため、異常終了あるいは正常終了した後、何度でも再実行してよく、待ち合わせを継続して、終了処理を行うという課題を解決することができる。
【０１１１】
（第５動作：ジョブ状態データベースに対して、ジョブの削除をしたあと、再度実行する場合）
本装置では、ジョブ状態データベースに対して、ジョブの削除をした後、再度実行すると、削除されなかったジョブに関しては、ジョブ状態データベースを参照するとジョブが見つかるので再度ジョブを投入することはないのに対し、削除したジョブに関してのみはジョブが見つからないので再度ジョブを投入する。すなわち削除したジョブのみを再度実行できる。以上の作業ではユーザはやり直すジョブ名を指定してジョブを削除するのみで、ファイルを編集する必要はない。このため、ファイルを編集することなく一部のジョブのみを再実行したいという課題を解決することができる。
【０１１２】
特に、ジョブを削除する場合に、ジョブの待ち合わせ関係を考慮して、削除されるジョブを待って実行したジョブや、さらにそのジョブを待って実行したジョブなど全ての待ち合わせ関係にあるジョブを自動的に削除するので、ファイルを編集することなく一部のジョブとその関連するジョブのみを再実行したいという課題を解決することができる。
【０１１３】
実施の形態２．
実施の形態２は、実施の形態１がジョブ制御装置内にジョブ投入部を備えたのに対して、他の処理系に設けられたジョブ投入部を用いる場合の例を示す。なお、他の構成については、実施の形態１の全ての構成を含むものとし、ジョブ投入についての具体例を合わせて説明する。
【０１１４】
図６は実施の形態２の構成を示すブロック図である。実施の形態２では、Ｐｅｒｌ処理系１２にジョブ投入部５Ａが設けられ、待ち合わせの実行内容はｐｅｒｌ  のプログラムが記述できるものとする。実施の形態２では、待ち合わせの実行部分をローカルスクリプトと呼ぶ。ジョブの実行内容はｐｅｒｌ  のプログラムが記述できるものとする。本節ではジョブの実行内容をジョブスクリプトと呼ぶ。制御設定ファイルは図７に示されるような構文を持つ。
【０１１５】
ローカルスクリプトには、ｐｅｒｌ  言語を任意に用いることができ、特にその中にある、ジョブ投入指定部分は図８に示されるような構文を持つ。
【０１１６】
ジョブスクリプトには任意のｐｅｒｌ  のプログラムが記述できる。ジョブ名は図９に示されるような構文を持つ。ジョブ名の同一性を検査する際、キーの現れる順序は問わない。ジョブ名の同一性を検査する際二つのジョブ名に同じキーが全てあって、各キーの値が全て一致する場合に限って同一であるとする。
【０１１７】
ジョブ名のパターンでは、値の部分にパターンを記述することができる。
パターンとして用いてよいのは、以下の場合である。
（１）  ＊：任意の個数の文字列とマッチする。
（２）  ？：任意の１  文字とマッチする。
（３）＄変数：１  文字以上の文字とマッチし、その名前のｐｅｒｌ  の変数の値がマッチした文字列に置き換えられる。
【０１１８】
制御設定ファイル読み込み部は以上の制御設定ファイルを読み込む。読み込む際に、ローカルスクリプト部分は文字列として保持するが、ジョブ投入指定部分ｄｏ＃ｊｏｂ  だけはジョブ名とジョブスクリプトからなる構造体として保持する。ジョブ状態データベース２は、ユーザの指定したディレクトリに置き、ファイル名がジョブ名であるようなファイルの中にジョブ状態を書き込むようにする。状態の変更の書き込みはファイルへ直接書き込む。ジョブ状態データベース管理部３は、これらのファイルを定期的（１  秒に１  回など）に監視し、更新時刻が新しくなっていれば、変更があったものとして、ジョブ状態ハンドリング部６に通知する。
【０１１９】
実行内容実行部４は、最初に別のプロセスとしてｐｅｒｌ  処理系を起動し、その処理系は、標準入力から読み込んだ行をそれぞれ実行（ｅｖａｌ）  するようにする。実行内容実行部４は、ローカルスクリプトを受け取ると、その内容を一時ファイル（一時ファイルＦ１と呼ぶ）に書き出す。
【０１２０】
置換内容は変数名と値の対のリストで実装し、実行内容実行部に、置換内容が渡されている場合、該当するｐｅｒｌ  変数の値をその内容に変更するよう、一時ファイルの先頭に書き出す。依存するジョブ名に関しては別の一時ファイル（一時ファイルＦ２と呼ぶ）に書き出し、そのファイル名をローカルスクリプトの入っている一時ファイルＦ１に特別の大域的な変数の値の変更の形で書き出す。
【０１２１】
もしもジョブ投入指示のｄｏ＃ｊｏｂ  があれば、ジョブスクリプト部分をさらに別の一時ファイル（一時ファイルＦ３と呼ぶ）に書き出し、ローカルスクリプトの入っている一時ファイルＦ１には、特別のｐｅｒｌ  のサブプログラムの呼び出しを追加する。その呼び出しの際に、変数参照をしているジョブ名に関してはｐｅｒｌ  の変数置換機能を用いて置換する。
【０１２２】
そして、ｐｅｒｌ  プロセスの標準入力に向かって、ｄｏ  一時ファイルＦ１という文字列を送ることで、ローカルスクリプトを実行させる。ジョブ投入部５Ａは、ローカルスクリプトから呼び出されるｐｅｒｌ  のサブプログラムの形で実装される。このサブプログラムは、ジョブ状態データベースを参照して、ジョブ投入を行う。ジョブ投入を行う前に、一時ファイルＦ３の書き換えを行う。ジョブスクリプトの実行の際にジョブ投入時の環境変数を使えると便利であるため、ジョブ投入時の環境変数の値を一時ファイルＦ３の最初に書き出す。
【０１２３】
ジョブ状態ハンドリング部６は、実施の形態１において、待つべきジョブのパターンの一部として変数を記述することができる場合の動作と同じ動作をする。構成としては図５に示した構成で、制御設定ファイル内容と待ち合わせデータは一体化して構成する。
【０１２４】
ジョブ名とジョブパターンのマッチングは以下のように行う。
（Ｓｔｅｐ  １）もしもどちらか片方にしかないキーがあった場合はジョブ名とジョブパターンはマッチングしない。
（Ｓｔｅｐ  ２）ジョブ名の全てのキーに関してその値とジョブパターン中の同じキーに関するパターンでパターンマッチを行う。値とパターンのマッチング方法は後述する。もしもこのパターンマッチが失敗すれば、ジョブ名とジョブパターンはマッチングしない。
【０１２５】
（Ｓｔｅｐ  ３）全てのパターンマッチで得られた変数と値のリストをマージし、もしもいずれかの変数が２  度以上現れており、その値が異なっていればジョブ名とジョブパターンのマッチングは失敗である。
（Ｓｔｅｐ  ４）いずれでもなければパターンマッチは成功で、変数と値のリストを置換リストとして返す。
【０１２６】
値（文字列）とパターンのマッチングの手続きは以下の通りである。
（Ｓｔｅｐ  １）パターンを以下に例示するように正規表現に直す。
（１）  ＊→．＊
（２）  ？→．
（３）  ＄変数→  （．＋）
（４）  特殊な意味を持つ．  などの文字は￥  でエスケープする。
パターン中に変数があれば、その現れた順番と変数名を対にして記録する。
【０１２７】
（Ｓｔｅｐ  ２）ジョブ名を正規表現とパターンマッチする。この方法は広く知られているので詳述しない。正規表現のパターンマッチが失敗すれば、この手続きも失敗を返して終了する。
（Ｓｔｅｐ  ３）パターンマッチの結果得られる後方参照のためのデータと、（Ｓｔｅｐ  １）で得られた変数名とその現れた順番の対から、変数名と値の対からなるリストを作成し、成功を返して終了する。
【０１２８】
例えば、”ａｂｃｄｅ．ｆｇ＃ｈｉｊ”  という文字列と”＄ａ．＄ｂ＃＊”  というパターンをマッチングする際は、まずパターンを”＾（．＋）￥．（．＋）＃．＊＄”  という正規表現に変換し、それと同時に、変数”ａ”：  １  変数”ｂ”：２  というリストを作成しておく。次に正規表現と文字列のマッチングを行い、後方参照のためのデータ１番目：  ”ａｂｃｄｅ”  ２  番目：  ”ｆｇ”  を得る。最後に、変数”ａ”：  ”ａｂｃｄｅ”  変数”ｂ”：”ｆｇ”  という置換リストを作成して、成功を返す。
【０１２９】
実施の形態３．
実施形態２のローカルスクリプトやジョブスクリプトの記述言語をｐｅｒｌ  でなくｓｈ  に変えることが簡単にできる。変更すべき点は実行内容実行部で一時ファイルＦ１に書き出す内容とジョブ投入部で一時ファイルＦ３に書き出す内容と、ｐｅｒｌ  処理系の代わりにｓｈ  を起動することだけである。
【０１３０】
実行内容実行部で一時ファイルＦ１に書き出す内容の変更部分は、ジョブ投入指示を実施形態２ではｐｅｒｌ  のサブプログラムに変換したが、実施形態３では、ｓｈから実行できる別のコマンドに直す必要がある。また、ジョブ投入部で一時ファイルＦ３に書き出す内容は環境変数の書き出し方法がｐｅｒｌ  とｓｈ  で異なるというだけの変更である。それ以外の変更なしにまったく同じ動作をさせることができる。
【０１３１】
以上に本発明の実施の形態を説明したが、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において適用可能であることはもちろんである。例えば、本発明に係る条件判断は、実施の形態においてはジョブ投入部で行われるようにしたが、ジョブ状態データベース管理部で行うようにしても良いし、或いはジョブ状態ハンドリング部で行うようにしても良い。
【０１３２】
（付記１）制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するための所定の処理を行う処理実行部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と
を備えてなるジョブ制御装置。
（付記２）付記１に記載のジョブ制御装置において、
前記ジョブ指定記述読取部は、前記制御設定ファイル読み込み部により読み込まれる前記制御設定ファイルに記述された実行すべきプログラムとの関係において記述された前記ジョブ指定記述を読取ることを特徴とするジョブ制御装置。
（付記３）付記２に記載のジョブ制御装置において、
前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、前記制御設定ファイルにおいて、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記処理実行部は、前記他のジョブについてのジョブ指定記述による前記管理部による管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断し、該判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御装置。
（付記４）付記３に記載のジョブ制御装置において、
前記ジョブ投入条件として、ジョブ指定記述された一つまたは複数のジョブの終了を条件とすることができ、前記処理実行部は、前記一つまたは複数のジョブを待つべきジョブとして、これらのジョブの終了を判断することを特徴とするジョブ制御装置。
（付記５）付記１乃至付記４のいずれかに記載のジョブ制御装置において、
前記ジョブ指定記述には、ジョブ名、ジョブ名のリスト、ジョブのパターン指定、ジョブのパラメータ指定のいずれかが含まれることを特徴とするジョブ制御装置。
（付記６）付記５に記載のジョブ制御装置において、
前記ジョブ指定記述において、ジョブ指定がパラメータを用いて表示される場合に、前記処理実行部は、各パラメータを置換してジョブ指定を表す置換リストを作成することを特徴とするジョブ制御装置。
（付記７）付記１乃至付記６のいずれかに記載のジョブ制御装置において、
前記制御設定ファイル読み込み部は、前記制御設定ファイルに記述されたジョブの雛形を読取り、前記処理実行部は、前記ジョブの雛形に基づいて前記ジョブを投入するための処理を行うことを特徴とするジョブ制御装置。
（付記８）付記７に記載のジョブ制御装置において、
前記処理実行部は、前記制御設定ファイルに記述されたジョブの雛形に基づいてジョブスクリプトファイルを作成し、前記ジョブ投入システムへジョブを投入することを特徴とするジョブ制御装置。
（付記９）付記８に記載のジョブ制御装置において、
前記処理実行部は、ジョブの実行開始またはジョブの終了に関する情報を書き出すためのコマンドを前記ジョブスクリプトファイル追加することを特徴とするジョブ制御装置。
（付記１０）付記１乃至付記９のいずれかに記載のジョブ制御装置において、
前記ジョブ指定記述には、ジョブの開始またはジョブの終了を表すジョブを指定する記述が含まれることを特徴とするジョブ制御装置。
（付記１１）付記１乃至付記１０のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、データベースに書き込まれたジョブの状態を参照して、ジョブの投入、開始及び終了を管理することを特徴とするジョブ制御装置。
（付記１２）付記１乃至付記１１のいずれかに記載のジョブ制御装置において、
前記データベースには、ジョブ指定記述、ジョブＩＤ、ジョブ状態が記憶され、前記ジョブ管理部は、新規ジョブの登録、ジョブの検索、ジョブの削除、ジョブ状態の変更を行うことを特徴とするジョブ制御装置。
（付記１３）付記１乃至付記１２のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、更に、所定のジョブについて、そのジョブが投入されるために、他のジョブの終了を待った場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とするジョブ制御装置。
（付記１４）付記１乃至付記１３のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、更に、所定のジョブについて、そのジョブの終了を待って投入された他のジョブがある場合における当該他のジョブのリストを前記ジョブ指定記述を用いて前記データベースに記憶させることを特徴とするジョブ制御装置。
（付記１５）付記１乃至付記１４のいずれかに記載のジョブ制御装置において、
前記ジョブ管理部は、前記データベースから所定のジョブを削除する場合に、該所定のジョブと共に、該所定のジョブの終了を待って投入されたジョブを削除することを特徴とするジョブ制御装置。
（付記１６）付記１乃至付記１５のいずれかに記載のジョブ制御装置において、
所定の場合、ジョブ管理部により終了されていないとされるジョブについて再度制御設定ファイルを読み込むと共に、そのジョブが他のジョブ結果に依存する場合は、前記処理実行部は前記ジョブ管理部から取得した管理結果に基づいて前記ジョブ投入の判断を行い、該判断結果に基づいて当該ジョブについての前記所定の処理を行うことを特徴とするジョブ制御装置。
（付記１７）制御設定ファイルを読取る制御設定ファイル読み込み部を備え、前記制御設定ファイル読み込み部により読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御装置であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取るジョブ指定記述読取部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理部と、
前記ジョブ指定記述読取部により読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理部より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断部と
を備えてなるジョブ制御装置。
（付記１８）付記１１に記載のジョブ制御装置において、
前記ジョブ管理部は、前記データベースに書き込まれたジョブの状態について、書き換えまたは消去することができ、前記処理実行部は、消去されたジョブについては、制御設定ファイルを再度読み込み、前記所定の処理またはジョブ管理部の管理結果に基づく処理を実行することを特徴とするジョブ制御装置。
（付記１９）付記１乃至付記１８のいずれかに記載のジョブ制御装置に読み取られる制御設定ファイルであって、
ジョブを任意に指定することができるジョブ指定記述部と、該指定記述部に記述されて指定されたジョブについての内容記述部とを備えてなる制御設定ファイル。
（付記２０）制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
を備えてなるジョブ制御方法。
（付記２１）付記２０に記載のジョブ制御方法において、
前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、
前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御方法。
（付記２２）制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御を行うジョブ制御方法であって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップと
を備えてなるジョブ制御方法。
（付記２３）制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、
制御設定ファイルを読取ると共に制御設定ファイルにユーザに記述されたジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られたジョブ指定記述に基づいて、所定の処理を実行する実行ステップと、
前記実行ステップにより実行されたジョブの状態を前記ジョブ指定記述を用いて管理する管理ステップと
をコンピュータに実行させるジョブ制御プログラム。
（付記２４）付記２３に記載のジョブ制御プログラムにおいて、
前記制御設定ファイルにおいて、前記ジョブ指定記述により指定された所定のジョブについてのジョブ投入条件が、ジョブ指定記述された他のジョブとの関係で記述されている場合、
前記実行ステップにおいて、前記ジョブ管理ステップによる管理結果を取得し、該管理結果に基づいて、前記ジョブ投入条件が満たされた場合を判断する条件判断ステップが含まれ、
前記処理実行ステップは、前記条件判断ステップによる判断結果に基づいて投入に必要な所定の処理を行うことを特徴とするジョブ制御プログラム。
（付記２５）制御設定ファイルを読取り、読み取られた制御設定ファイルの記述内容に基づいて、ジョブ投入システムへジョブを投入するための制御をコンピュータに実行させるジョブ制御プログラムであって、
前記制御設定ファイルに記述され、ジョブを任意に指定することができるジョブ指定記述を読取る読取ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブの状態を管理するジョブ管理ステップと、
前記読取ステップにより読み取られた前記ジョブ指定記述により指定されたジョブを投入するため、当該ジョブが依存する他のジョブの条件を前記ジョブ管理ステップによる管理結果より取得し、前記他のジョブとの依存関係が満たされる場合を判断する条件判断ステップと
をコンピュータに実行させるジョブ制御プログラム。
【０１３３】
【発明の効果】
以上に詳述したように、本発明によれば、バッチジョブを投入する際にユーザの管理の手間を減らすことができる。また、ジョブ投入に必要なスクリプトやコントロールファイルを自動的に作成することができ、さらに重複するジョブの投入を行わないようにすることで実行に要する時間を減らすことができる。また本発明によれば、一部のジョブのみを実行しなかったかのように設定することで、ファイルの変更なしに選択的に再実行を行うことを可能にすることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１を示すブロック図である。
【図２】制御設定ファイルの記述を示す図である。
【図３】制御設定ファイル読み込み結果を示す図である。
【図４】待つジョブに変数を記述できない場合の待ち合わせデータを示す図である。
【図５】待つジョブに変数を記述できる場合の待ち合わせデータを示す図である。
【図６】実施の形態２を示すブロック図である。
【図７】制御設定ファイルの構文の一例を示す図である。
【図８】ローカルスクリプトにおけるジョブ投入指定部分の構文の一例を示す図である。
【図９】ジョブスクリプトにおけるジョブ名の構文の一例を示す図である。
【図１０】従来のバッチジョブ投入システムを示す概念図である。
【符号の説明】
１  制御設定ファイル読み込み部、１ａ  ジョブ指定記述読取部、２  ジョブ状態データベース、３  ジョブ状態データベース管理部、４  実行内容実行部、５  ジョブ投入部、５ａ  置換処理部、５ｂ  投入処理部、６  ジョブ状態ハンドリング部、６ａ  制御設定ファイル内容記憶部、６ｂ  待ち合わせジョブ状態データ記憶部、７  バッチジョブ投入システム、１１  制御設定ファイル入力部、１２  Ｐｅｒｌ処理系、Ｆ  制御設定ファイル、ＪＦ  ジョブスクリプト一時ファイル。
【図１】
2004334493.tif 000003
【図２】
2004334493.tif 000004
【図３】
2004334493.tif 000005
【図４】
2004334493.tif 000006
【図５】
2004334493.tif 000007
【図６】
2004334493.tif 000008
【図７】
2004334493.tif 000009
【図８】
2004334493.tif 000010
【図９】
2004334493.tif 000011
【図１０】
2004334493.tif 000012