(57)【特許請求の範囲】
【請求項１】
ジョブの実行を行うジョブ実行サーバに対して予め設定された投入順位に基づきジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブの投入順位を決定する投入順位決定部とを備えたジョブ管理装置であって、
前記投入順位決定部は、
予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定手段と、
前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出すると共に、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定手段と、
前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出手段と、
前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定手段とを備えたことを特徴とするジョブ管理装置。
【請求項２】
請求項１に記載のジョブ管理装置において、
前記グループ実行時間算出手段は、前記ジョブ実行サーバにおけるジョブの並行実行数に基づき前記グループ実行時間の算出を行う並行実行時間算出機能を備えたことを特徴とするジョブ管理装置。
【請求項３】
請求項１に記載のジョブ管理装置において、
ジョブ要求投入部は、
前記投入キュー内に予め格納された前記優先ジョブグループ以外の前記優先ジョブフローとの依存関係がないジョブを、前記優先ジョブグループの後続ジョブ部品として設定する後続投入ジョブ設定機能を備えたことを特徴とするジョブ管理装置。
【請求項４】
ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するジョブ管理方法であって、
前記投入順位決定部が、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定し、前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定し、前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出し、前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定することを特徴とするジョブ管理方法。
【請求項５】
ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するためのジョブ管理プログラムであって、
予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定機能と、
前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定機能と、
前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出機能と、
前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定機能とをコンピュータに実行させることを特徴とするジョブ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブの実行順位を管理するシステムに関し、特に、実行装置に対するジョブの投入順位を決定するシステムに関する
【背景技術】
【０００２】
ジョブの実行を行う実行サーバと、この実行サーバに対してジョブの投入を行うジョブ管理装置とを有する、一般的なジョブ実行管理システムにおいては、通常ジョブ管理装置側で、実行サーバに対するジョブの投入順位を決定する。
【０００３】
この場合、例えば、予め設定された特定のジョブフローを指定時間内に終了させるため、他のジョブフローおよび上記特定のジョブフローとの依存関係にないジョブなどに優先して、特定のジョブフローに係るジョブの投入および処理を行う必要が生じる。
このような場合、上記特定のジョブフローだけでなく、そのジョブフローと依存関係にあるジョブも優先して実行サーバに対して投入する必要が生じる。
【０００４】
しかしながら、予めジョブ管理装置の投入キューにキューイングされたジョブの順序が、そのような目的を達成するために適切な順序であるとは限らない。
また、本来優先して処理する必要のないジョブが、優先して実行すべきジョブより先にジョブ実行サーバに投入された場合などには、優先して処理すべきジョブの投入が待たされてしまい、優先ジョブフローが設定された時間内に実行されないといった不都合が生じ得る。
【０００５】
更に、優先して処理したいジョブフローと依存関係のあるジョブの投入を優先させることができた場合であっても、それらのジョブをどのような順でジョブ実行サーバに投入するかによっても目的のジョブフローの終了時間が変化する。
このため、優先させて処理したいジョブフローの実行を迅速にすることを考慮してつつ、予めキューイングされたジョブのジョブ実行サーバへの投入順序を決定する必要がある。
【０００６】
また、一般的なジョブ管理システムを構築するためのソフトウェアでは、ジョブそのものに優先度の設定を行う、ジョブフローに希望終了時間の設定を行うなどの機能を実現しており、それらの設定を行うことによって、ジョブやジョブフローへの優先度の設定を可能にしている。
しかしながら、これらの製品を用いて作成されるジョブフローには、一般的に、ジョブ間における上述のような依存関係が存在するため、ジョブフローそのものに対する優先度の設定だけでは適正なジョブ投入順序を決定することができないという不都合があった。
【０００７】
これに対する関連技術として、各ジョブの投入予定時刻と予定実行時間、およびジョブ同士の実行順位に係る依存関係に基づきジョブのスケジュールを決定するシステムが開示されている（特許文献１、２）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−０１３２３５号公報
【特許文献２】特開平０２−２４４２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１および２を組み合わせた内容では、各ジョブに設定されたジョブ優先度が一定値より低いジョブの実行をキャンセルする処理を行っており、このため、キャンセル可能なジョブであるか否かを選別する必要が生じ、更には、ジョブのキャンセルを行うことにより、ジョブ実行を待っている後述のジョブに対する影響が及んでしまうといった不都合が生じ得る。
【００１０】
また、ジョブ管理システム全体が平常動作状態であれば、いつ、どのようなタイミングでジョブが実行されるか、そのときにどのようなジョブを優先させる必要があるかの予測（静的優先度設定）が比較的容易であるが、例えば、ジョブの実行を行うジョブ実行サーバに障害が発生し、ジョブ実行サーバへのジョブ投入処理が滞った場合に、どのジョブを優先して投入する必要があるかを判断することは非常に困難となる。
また、このような環境では人手でジョブ実行順序を決定したり、ジョブの並び替えを行ったりする必要があるが、この場合、人的ミスなどによるジョブ実行遅延が発生するといった不都合がある。
また、システム復旧時のような環境において、人手によりジョブ実行順序を決定したり、ジョブの並べ替えを行ったりする場合、人的ミスなどによるジョブ実行遅延が発生する可能性が高くなるといった不都合がある。
【００１１】
［発明の目的］
本発明は、上記関連技術の有する不都合を改善し、特定のジョブフローをより迅速に実行するためのジョブ実行順位を決定するジョブ管理装置、ジョブ管理方法、およびジョブ管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明に係るジョブ管理装置は、ジョブの実行を行うジョブ実行サーバに対して予め設定された投入順位に基づきジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブの投入順位を決定する投入順位決定部とを備えたジョブ管理装置であって、前記投入順位決定部は、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定手段と、前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出すると共に、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定手段と、前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出手段と、前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定手段とを備えた構成をとっている。
【００１３】
また、本発明にかかるジョブ管理方法は、ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するジョブ管理方法であって、
前記投入順位決定部が、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定し（ジョブフロー優先度設定手段）、前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定し（グループ設定手段）、前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出し（グループ実行時間算出手段）、前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定する（ジョブ投入順位決定手段）ことを特徴としている。
【００１４】
また、本発明にかかるジョブ管理プログラムは、ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するジョブ管理方法であって、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定機能と、前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定機能と、前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出機能と、前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定機能とをコンピュータに実行させることを特徴としている。
【発明の効果】
【００１５】
本発明は、以上のように構成され機能するので、これによると、
優先ジョブフローに含まれるジョブの実行が格納ジョブの実行後に行われる場合に、格納ジョブおよび後続ジョブを優先ジョブフローとの依存関係を有する依存ジョブとして優先ジョブグループを設定するグループ設定手段と、依存ジョブの依存関係を保持しつつ優先ジョブグループの実行時間をグループ実行時間として算出し、このグループ実行時間が最短となる前記格納ジョブの実行順位を投入順位として決定するジョブ投入順位決定手段とを備えた構成とすることにより、予め設定された特定のジョブフローを優先して迅速に実行することを可能としたジョブ管理装置、ジョブ管理方法、およびジョブ管理プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかるジョブ管理システムの一実施形態を示す概略ブロック図である。
【図２】図１に開示したジョブ管理システムにおける投入キュー内における格納ジョブの並べ替え動作内容の一例を示す説明図である。
【図３】図１に開示したジョブ管理システムにおける優先ジョブフローと格納ジョブとの依存関係を示す説明図である。
【発明を実施するための形態】
【００１７】
［実施形態］
次に、本発明の実施形態について、その基本的構成内容を説明する。
【００１８】
本実施形態であるジョブ管理システムは、図１に示すように、外部より投入されたジョブを、その投入順に実行処理するジョブ実行サーバ２１０と、実行投入用のメモリである投入キュー（ジョブ実行サーバへの投入キュー）１１５と、この投入キュー１１５に格納されたジョブの投入順序を決定し、この投入順序に基づき予め設定されたジョブをジョブ実行サーバ２１０に対して投入する投入キュー管理部１１１を有するジョブ管理マネージャ装置（以下「ジョブ管理マネージャ」という）１１０を備えた構成を有する。
【００１９】
ジョブ管理マネージャ（ジョブ管理装置に対応）１１０は、図１に示すように、予め設定された異なるジョブフローおよびジョブを記憶保持するジョブフロー保存部１１６と、ジョブ実行サーバへの投入用にキューイングされたジョブを一時的に記憶するメモリであるジョブ実行サーバへの投入キュー（以下「投入キュー」という）１１５と、投入キュー１１５に対してのジョブキューイングおよびジョブ実行サーバ２１０に対するジョブ投入の実行制御する投入キュー管理部１１１と、ジョブフロー保存部１１６内に予め登録されたジョブフローを取得し、このジョブフローの解析を行うことによりジョブフローおよびキューイングされたジョブ間の実行順位に係る依存関係を解析するジョブフロー解析部１１２と、上記解析結果に基き投入キュー内に蓄積されたジョブの投入順序を決定する投入順決定部１１３と、投入キュー内に蓄積されたジョブを予め決定された投入順序に基づき並べ替えるジョブ投入順変更部１１４を備えた構成を有する。
【００２０】
投入キュー管理部１１１は、以下に示すジョブフロー解析部１１２、投入順決定部１１３、およびジョブ投入順変更部１１４における機能動作を制御し、これにより、投入キュー１１５に格納された格納ジョブのジョブ実行サーバ２１０へのジョブ投入動作を制御する。
【００２１】
尚、ジョブ実行サーバへの投入キュー（投入キュー）１１５は、コンピュータ装置であるジョブ管理マネージャ１１０内に予め設けられた１次記憶装置（メモリ装置）における特定のメモリ領域であり、ジョブフロー保存部１１６は、ジョブ管理マネージャ１１０内に予め設けられたＨＤＤ（ハードディスクドライブ）などの２次記憶装置であるものとする。
【００２２】
ジョブフロー解析部１１２は、ジョブフロー保存部１１６内に予め記憶されたジョブフローについて、各ジョブフローに予め設定された希望終了時刻と現在時刻を比較し、時刻差が短い（近い）ジョブフローほど優先度が高くなるように、各ジョブフローに対して優先度付けを行う（優先度設定機能）。
【００２３】
ここでは、各ジョブフローに予め設定された希望実行終了時間と取得された現在時刻との差が短いジョブフローに対してより高い優先度が割当てられるように、ジョブフロー解析部１１２が、各ジョブフローに対する優先度付けを行うものとする。
【００２４】
ここで、例えば、ある特定のジョブ（ここでは「ジョブＸ」とする）の実行が、他のジョブ（ここでは「ジョブＺ」とする）の実行完了を待って行われる場合、つまり、ジョブＺの実行が完了しなければジョブＸの実行が行われないようにジョブ実行順序が設定されている場合、上記ジョブＸのように他のジョブ（ジョブＺ）の実行完了を待って実行が行われるジョブを「ジョブ待ち部品」と呼ぶものとする。
また、このジョブの実行待ちの対象となるジョブ部品（ジョブＺに対応）を、「ジョブ待ち対象部品」と呼ぶものとする。
【００２５】
また、上記ジョブＸおよびジョブＺがそれぞれ異なるジョブフローに属し、「ジョブＺの実行が終了した場合に、ジョブＸおよびジョブＸの後続ジョブの実行される」という関係にある場合、ジョブＸおよびＺは連結点を成すものと定義し、また、ジョブＸの所属するジョブフローとジョブＺの所属するジョブフローとは相互に依存関係にあるものと定義する。
【００２６】
更に、この場合、ジョブＺの所属するジョブフローにおける、ジョブＺの前に実行されるジョブ（ジョブＹとする）は、ジョブＺの所属するジョブフローと依存関係にあるものと定義する。つまり、ジョブＹの後続ジョブであるジョブＺと共に連結点を形成するジョブＸが所属するジョブフローとジョブＹとが依存関係にあると定義する
【００２７】
ジョブフロー解析部１１２は、ジョブ投入キュー１１５に予め格納された格納ジョブそれぞれについて、上述の定義に基づき、優先度付けが行われたジョブフロー（以下「優先ジョブフロー」という）と依存関係にあるか否かを判定する依存関係判定機能を有する。
また、ジョブフロー解析部１１２は、優先ジョブフローとの依存関係がある格納ジョブを抽出し、この格納ジョブと優先フローを含むグループ（優先グループ）を設定するグルーピング機能を備えている。
これにより、優先ジョブフローとの連結点に含まれる格納ジョブは優先ジョブフローに対応してグルーピングされる。
【００２８】
例えば、投入キュー１１５内に格納ジョブＥ，Ｇ，およびＩが格納されている場合に、ジョブフロー解析部１１２は、この格納ジョブそれぞれが所属するジョブフローにおける後続ジョブについて、優先ジョブフロー（ジョブフロー１）に所属するジョブとの連結点があるか否かを調べる。
【００２９】
本実施形態においては、図３に示すように、ジョブＡは、ジョブＦの実行終了を待って実行される待ちジョブ部品、また、ジョブＢは、ジョブＨの実行終了を待って実行される待ちジョブ部品、また、ジョブＣは、ジョブＪの実行終了を待って実行される待ちジョブ部品であるものとする。
【００３０】
つまり、ジョブＥが所属するジョブフローにおける後続ジョブであるジョブＦとジョブフロー１に所属するジョブＡとが連結点を成し、また、ジョブＧが所属するジョブフローにおける後続ジョブであるジョブＨとジョブフロー１に所属するジョブＢとが連結点を成し、更に、ジョブＩが所属するジョブフローにおける、ジョブＩの後続ジョブであるジョブＪとジョブフロー１に所属するジョブＣとが連結点を成す。
これにより、ジョブＥ，ＧおよびＩはそれぞれジョブフロー１との依存関係にあるものとて定義される。
【００３１】
このとき、ジョブフロー解析部１１２は、優先ジョブフローであるジョブフロー１との依存関係があるジョブ（ここでは、ジョブＥ，Ｇ，およびＩ）を抽出すると共に、ジョブフロー１を含む優先グループとして設定するグルーピングを行う（グルーピング機能）。
【００３２】
投入順序決定部１１３は、優先ジョブフローとグルーピングされたジョブ（格納ジョブ）それぞれに対応して、各格納ジョブの、当該格納ジョブの所属するジョブフローにおける、直後の後続ジョブから優先ジョブフローに含まれる（所属する）最後のジョブが実行されるまでにかかる実行時間を、後続予想実行時間として算出する後続予想実行時間算出手段を備えている。
【００３３】
ここで、投入順序決定部１１３は、優先ジョブフロー内に序属するジョブ部品について、予め記憶保持された過去における実行時間の実績値を後続予想実行時間とし、ジョブ待ち部品に対しては、予想実行時間の計算時点での予め設定された待ち合わせの条件を満たしているかどうかをチェックし、条件を満たしている場合は予想実行時間を０に設定するものとする。
尚、条件を満たしていない場合は予想実行時間を過去の待ち合わせ時間の実績値として設定する。
【００３４】
更に、投入順決定部１１３は、上述のように算出された後述予想実行時間、投入キュー１１５に格納されている各格納ジョブそのものの実行にかかる時間、および、ジョブ実行サーバ２１０における同時並行実行数に基づき、当該格納ジョブを含む連結点に基づいて予想実行時間を算出し、上記優先ジョブフローの終了完了までの時間が最も短くなるように、グルーピングされた格納ジョブの投入順を決定する。
【００３５】
尚、グルーピングされた格納ジョブの後続ジョブがキューイングされた場合、予め設定されたグループの優先度に応じて、投入キュー１１５内の格納ジョブの順序の並べ替えを行うものとする。
また、同等の優先度のグループ内のジョブに対しては、先にキューイングされたジョブを優先するものとする。
【００３６】
ジョブ投入順変更部１１４は、投入キュー内に格納されたジョブを、投入順決定部１１３により決定された投入順に基づき再配置するジョブ再配置機能を有する。
このジョブ再配置機能で、ジョブ投入順変更部１１４は、設定された優先度が最も高いグループ、つまり、最も優先度が高いジョブフローと、このジョブフローと依存関係にある格納ジョブを含むグループについて、投入順序決定部１１３で決定された投入順に基づき投入キュー１１５内における格納ジョブの並べ替えを行う。
【００３７】
これにより、例えば、格納ジョブ（ジョブＥ，Ｇ，Ｉ）は、図２に示すように、優先処理ジョブフローの実行がより早く完了されるように、投入キュー内における記憶位置が最適化される。
【００３８】
また、ジョブ投入順変更部１１４は、グルーピングされなかったジョブ、つまり、優先度が高いジョブフローと依存関係にないジョブ（例えば、ジョブＸ，Ｙ）を、投入用に並べ替えがなされたキュー（グループ）の最後尾に設定する（図２）。
【００３９】
ジョブ実行サーバ２１０は、ジョブ管理サーバ１１０から送り込まれたジョブ（実行要求）を実行用に格納するジョブ実行キュー２１１と、ジョブ実行キュー２１１内に格納されたジョブを投入された順に実行処理を行うジョブ実行本体部（図示なし）を備えた構成を有する。
【００４０】
以上のように、本実施形態では、例えば、ジョブ実行サーバ２１０の動作状態に障害が発生し、その後、動作状態が復旧した場合においても、復旧後に、ジョブフローの完了予定時間に基づき、格納ジョブの投入順序を自動的に、迅速に決定することが可能である。
このため、人手によるジョブ実行順序の並べ替えを行うことなく、最適なジョブ実行順序を設定することができ、更には、ジョブ並べ替えにかかる人的ミスに起因するジョブ実行遅延の発生を有効に抑制することができる。
【００４１】
［実施形態の動作説明］
次に、本実施形態の動作について、その概略を説明する。
まず、ジョブフロー解析部１１２が、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定する（ジョブフロー優先度設定行程）。
次いで、ジョブフロー解析部１１２は、実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定する（グループ設定行程：グルーピング機能）。
次に、投入順決定部は１１３、優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出し（グループ実行時間算出行程）、グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定する（ジョブ投入順位決定工程）。
【００４２】
ここで、上記ジョブフロー優先度設定行程、グループ設定行程、グループ実行時間算出行程、およびジョブ投入順位決定工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
【００４３】
次に、本実施形態におけるジョブ管理マネージャ１１０およびジョブ実行サーバ２１０からなるジョブ管理システムの動作について説明する。
【００４４】
まず、ジョブフロー解析部１１２は、予め希望終了時刻の設定がなされたジョブフロー（優先ジョブフロー）を、ジョブフロー保存部１１６から取得すると共に、現在時刻に基づき優先ジョブフローにおける優先度を決定する（ステップＳ１０１）。
【００４５】
このとき、ジョブフロー解析部１１２は、現在時刻と希望終了時刻との差が小さいジョブフローに対してより優先度の高い値が設定されるように、優先度付けを行うものとする（ステップＳ１０２）。
【００４６】
ここでは、ジョブフロー保存部１１６に格納されたジョブフローのうち、希望終了時刻の設定がなされたジョブフローがジョブフロー1だけであるものとし、ジョブフロー解析部１１２は、このジョブフロー１を優先ジョブフローとして設定する。
尚、このジョブフロー１に設定された希望終了時刻（終了予定時間）は、図３に示すように、２２：００であるものとする。
【００４７】
次いで、ジョブフロー解析部１１２は、投入キュー１１５内に格納されたジョブ（以下「格納ジョブ」という）それぞれが所属するジョブフローについて、優先ジョブフローであるジョブフロー１との依存関係があるか否かを確認する（ステップＳ１０３）。
【００４８】
具体的には、ジョブフロー解析部１１２は投入キュー１１５内に格納されたジョブＥ，Ｇ，およびＩそれぞれが所属するジョブフローにおける後続ジョブについて、ジョブフロー１に所属するジョブとの連結点があるか否かを調べる。
【００４９】
本実施形態においては、図３に示すように、ジョブＡは、ジョブＦの実行終了を待って実行される待ちジョブ部品、また、ジョブＢは、ジョブＨの実行終了を待って実行される待ちジョブ部品、また、ジョブＣは、ジョブＪの実行終了を待って実行される待ちジョブ部品であるものとする。
【００５０】
このため、ジョブＥが所属するジョブフローにおける後続ジョブであるジョブＦとジョブフロー１に所属するジョブＡとが連結点を成し、また、ジョブＧが所属するジョブフローにおける後続ジョブであるジョブＨとジョブフロー１に所属するジョブＢとが連結点を成し、更に、ジョブＩが所属するジョブフローにおける、ジョブＩの後続ジョブであるジョブＪとジョブフロー１に所属するジョブＣとが連結点を成す。
これにより、ジョブＥ，ＧおよびＩはそれぞれジョブフロー１との依存関係にあるものとて定義される。
【００５１】
ここで、ジョブフロー解析部１１２は、優先ジョブフローであるジョブフロー１との依存関係があるジョブ（ここでは、ジョブＥ，Ｇ，およびＩ）を抽出すると共に、ジョブフロー１を含む優先グループとして設定するグルーピングを行う（ステップＳ１０４：グルーピング行程）。
【００５２】
また、ジョブフロー解析部１１２は、ジョブフロー１と依存関係にないジョブＸおよびＹ（図２）を、グループには所属しないジョブ（グループ無所属ジョブ）として設定する。
【００５３】
次に、投入順決定部１１３は、優先グループとして設定された（グルーピングされた）格納ジョブそれぞれの後続フローにおける予想実行時間を算出する（ステップＳ１０５：予想実行時間算出行程）。
【００５４】
具体的には、投入順決定部１１３は、ジョブＥの後続フローとしての、ジョブＦ→ジョブＡ→ジョブＤの予想実行時間を算出する。ここでは、５０秒であるものとする（図３）。
また、投入順決定部１１３は、図３に示すように、ジョブＥの後続フローとしての、ジョブＨ→ジョブＢ→ジョブＤの予想実行時間を算出し（ここでは、７０秒であるものとする）、更には、ジョブＩの後続フローとしての、ジョブＪ→ジョブＡ→ジョブＤの予想実行時間を算出する（ここでは、６０秒であるものとする）。
【００５５】
次いで、投入順決定部１１３は、上述のように算出した予想実行時間と、ジョブフロー１と依存関係にあるジョブとしてグルーピングした格納ジョブ（ジョブＥ，Ｇ，Ｉ）それぞれの予想実行時間、ジョブ実行サーバ２１０におけるジョブ同時並行実行可能数、および、上記連結点を含む後続フローの予想実行時間に基づき、ジョブフロー１の実行を最も早く完了するための、格納ジョブ（Ｅ，Ｇ，Ｉ）の投入順を決定する（ステップＳ１０６：投入順決定工程）。
ここでは、格納ジョブをＧ，Ｉ，Ｅの順に投入した場合に、優先ジョブフローであるジョブフロー１の実行完了までの時間が最短となるものとする。
【００５６】
ここで、ジョブ投入順編後部１１４が、投入キュー１１５内における格納ジョブについて、図２に示すように、並べ替えを行うものとする（ステップＳ１０７：格納ジョブ並べ替え工程）。
【００５７】
尚、本実施形態では、ジョブ実行サーバ２１０における同時実行数が「２」のため、Ｇ，Ｉは順不同であるものとする。
また、優先度付けが行われたジョブフローが1つだけであるため、グループに所属しないジョブについては、並べ替えを行う前に格納されていた順（Ｙ→Ｘ）に投入されるものとする。
【００５８】
ジョブ投入順変更部１１４による格納ジョブの並べ替えが完了した場合、投入キュー管理部１１１は、ジョブ実行サーバ２１０へのジョブ投入を開始する。
また、投入キュー管理部１１１は、ジョブフロー1と依存関係にあるグループ内に所属するジョブ（例えば、ジョブＥ）が投入された後、上記グループ未所属のジョブやグループ未所属のジョブの後続フローのジョブよりも優先して後続フローのジョブを投入するものとする（ステップＳ１０８：ジョブ投入行程）。
【００５９】
以上のように、本実施形態では、予め希望実行完了時刻が設定された優先度が高いジョブフローを、当該ジョブフローとの依存関係があるジョブも含めて、最短時間での実行することを可能とするための、投入キュー内に格納されたジョブ（格納ジョブ）の最適な投入順位を決定することができる。
【００６０】
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００６１】
（付与１）
ジョブの実行を行うジョブ実行サーバに対して予め設定された投入順位に基づきジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブの投入順位を決定する投入順位決定部とを備えたジョブ管理装置であって、
前記投入順位決定部は、
予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定手段と、
前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出すると共に、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定手段と、
前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出手段と、
前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定手段とを備えたことを特徴とするジョブ管理装置。
【００６２】
（付与２）
付与１に記載のジョブ管理装置において、
前記グループ実行時間算出手段は、前記ジョブ実行サーバにおけるジョブの並行実行数に基づき前記グループ実行時間の算出を行う並行実行時間算出機能を備えたことを特徴とするジョブ管理装置。
【００６３】
（付与３）
付与１に記載のジョブ管理装置において、
ジョブ要求投入部は、
前記投入キュー内に予め格納された前記優先ジョブグループ以外の前記優先ジョブフローとの依存関係がないジョブを、前記優先ジョブグループの後続ジョブ部品として設定する後続投入ジョブ設定機能を備えたことを特徴とするジョブ管理装置。
【００６４】
（付与４）
ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するジョブ管理方法であって、
前記投入順位決定部が、予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定し、前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定し、前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出し、前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定することを特徴とするジョブ管理方法。
【００６５】
（付与５）
ジョブの実行を行うジョブ実行サーバに対してジョブを投入するジョブ要求投入部と、予め設定された投入キュー内に格納されたジョブである格納ジョブを前記投入用に並べ替えを行う投入順位決定部とを備えたジョブ管理装置にあって、前記ジョブの前記ジョブ実行サーバへの投入順位を決定するためのジョブ管理プログラムであって、
予め設定された異なるジョブの実行スケジュールを示す各ジョブフローに対して当該ジョブフローの実行完了時刻に基づき実行優先度を設定するジョブフロー優先度設定機能と、
前記実行優先度が設定されたジョブフローとしての優先ジョブフローに含まれるジョブの実行が前記格納ジョブの実行後に行われる場合に、前記格納ジョブおよび当該格納ジョブに後続して実行される後続ジョブを前記優先ジョブフローとの依存関係を有する依存ジョブとして抽出し、当該依存ジョブおよび前記優先ジョブフローからなる優先ジョブグループを設定するグループ設定機能と、
前記優先ジョブグループに含まれるジョブの実行順位を、前記依存ジョブの依存関係を保持しつつ並べ替えると共に、当該並べ替えたジョブ実行順位のうちの前記優先ジョブグループの実行時間をグループ実行時間として算出するグループ実行時間算出機能と、
前記グループ実行時間が最短となる前記格納ジョブの実行順位を前記投入順位として決定するジョブ投入順位決定機能とをコンピュータに実行させることを特徴とするジョブ管理プログラム。
【産業上の利用可能性】
【００６６】
本発明は、ネットワークを介してジョブの分散処理を管理するシステムに適用することができ、例えば、システムにおける障害発生後のシステム復旧時にジョブ投入順序を決定するジョブ実行管理システムに対して有効に適用することができる。
【符号の説明】
【００６７】
１１０  ジョブ管理マネージャ装置
１１１  投入キュー管理部
１１２  ジョブフロー解析部
１１３  投入順決定部
１１４  ジョブ投入順変更部
１１５  ジョブ実行サーバへの投入キュー（実行部）
１１６  ジョブフロー保存部
２１０  ジョブ実行サーバ
２１１  ジョブ実行キュー
【図１】
0005482442.tif 000002
【図２】
0005482442.tif 000003
【図３】
0005482442.tif 000004