(57)【要約】【課題】１つの側面では、複数の情報処理装置で複数のジョブを実行させるときに、ジョブを実行する情報処理装置を決定するまでの時間を短縮する。【解決手段】情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングすることを含む処理をジョブスケジュール装置（１０）に実行させる。記憶部（２４）には、複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報が記憶される。ジョブスケジュール装置（１０）のスケジュール部（１７）では、記憶部（２４）に記憶された後段のジョブに関する情報に基づいて、後段のジョブの処理量が大きいジョブを、情報処理装置に実行させるジョブとして優先してスケジュールすることを含む処理が実行される。【選択図】図１
2015191282.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするコンピュータに、
記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールする
ことを含む処理を実行させるためのジョブスケジュールプログラム。
【請求項２】
前記記憶部は、ジョブの各々の入力データと出力データとを示す情報を含むジョブ情報を記憶し、
前記コンピュータに、
前記記憶部に記憶された前記ジョブ情報に基づいて、特定タイミングにおいて入力データが前記情報処理装置に保持されるジョブを前記スケジュールされる候補の複数のジョブとして抽出する
処理を実行させる請求項１記載のジョブスケジュールプログラム。
【請求項３】
前記記憶部は、複数の情報処理装置の各々の処理の実行状況を特定する情報を記憶し、
前記コンピュータに、
前記記憶部に記憶された、複数の情報処理装置の各々の処理の実行状況を特定する情報に基づき、前記特定タイミングにおいてジョブの処理の実行が可能な情報処理装置を特定し、特定した該ジョブの処理の実行が可能な情報処理装置を、前記候補の複数のジョブを実行させる前記情報処理装置として特定する、
処理を実行させる請求項２に記載のジョブスケジュールプログラム。
【請求項４】
前記記憶部は、前記複数のジョブの各々の実行開始から完了までの予測処理時間を示す処理時間情報を含むジョブ情報を記憶し、
前記コンピュータに、
前記抽出された複数のジョブの各々の前記後段のジョブの前記処理時間情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
請求項２または請求項３に記載のジョブスケジュールプログラム。
【請求項５】
前記抽出された複数のジョブの各々の前記後段のジョブに関する情報として、前記後段のジョブ数を示す情報を求め、求めた前記後段のジョブ数を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
請求項２〜請求項４の何れか１項に記載のジョブスケジュールプログラム。
【請求項６】
前記記憶部は、前記複数のジョブの各々の入力データ及び出力データの少なくとも一方のデータの転送時間を示す転送時間情報を記憶し、
前記コンピュータに、
前記抽出された複数のジョブの各々のうち前記情報処理装置で実行されるジョブを前段のジョブとして、該前段のジョブの出力データの前記転送時間情報または該出力データを入力データとして処理を実行する後段のジョブの入力データの前記転送時間情報に基づいて、前記前段のジョブの処理を実行した後に前記後段のジョブの処理を実行するか、前記前段のジョブの処理を実行した後に前記前段のジョブの出力データを前記情報処理装置以外の情報処理装置へ転送して前記情報処理装置以外の情報処理装置で前記後段のジョブの処理を実行するかを判定する
請求項２〜請求項５の何れか１項に記載のジョブスケジュールプログラム。
【請求項７】
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするコンピュータが、
記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールする
ことを含むジョブスケジュール方法。
【請求項８】
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするために、記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールするスケジュール部
を備えたジョブスケジュール装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスケジュールプログラム、ジョブスケジュール方法、及びジョブスケジュール装置に関する。
【背景技術】
【０００２】
業務処理を、複数の処理に分類して、各々の処理をジョブとしてコンピュータ等の情報処理装置が実行することが行われている。業務処理では複数のジョブの実行を短時間で完了させるために、複数のジョブを複数の情報処理装置で並列処理させる技術が知られている。例えば、同一ファイルにアクセスする２つのジョブを異なる情報処理装置上で実行させて並列処理させる技術が知られている。また、他のジョブと関連がないジョブを並列実行させる技術も知られている。さらに、ジョブの実行に関する時間を検討するために、ジョブの処理時間と共にファイルの転送時間を考慮して、複数のジョブの実行をシミュレートする技術も知られている。
【０００３】
複数のジョブについて複数の情報処理装置で並列処理させることによって、複数のジョブの実行開始から実行完了までを短時間で処理できる。従って、業務処理を短時間で完了することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１４８４６号公報
【特許文献２】特開平０７−１１４５０１４号公報
【特許文献３】特開平０８−２７２６２６号公報
【特許文献４】特開２０１２−１７３７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数のジョブを複数の情報処理装置で並列処理させることでは、業務処理に関連する総合的な時間に関する検討が不十分である。例えば、複数のジョブの実行開始から実行完了までの処理時間を短縮するために、複数のジョブの実行順序の設定及び各ジョブを実行する情報処理装置の設定を、予め行っておき、設定に基づいて並列処理させる。ジョブの実行順序の設定処理及びジョブを実行する情報処理装置の設定処理は、業務に熟知した設計者が検討を重ねて手動作業によって行うことが一般的である。
【０００６】
従って、複数のジョブを複数の情報処理装置で処理させるまでの設定処理における作業時間を含めた業務処理に関連するトータルコストは、コスト高になる。つまり、業務に熟知した設計者による手動作業の作業時間を含めた業務処理に関連する総合的な時間は長大化する。
【０００７】
また、ジョブの追加及び変更等の業務の一部変更を行う場合、複数のジョブの実行開始から実行完了までの処理時間を短縮するために、設計者による十分な設定処理の作業時間を確保する。従って、ジョブの追加及び変更等の業務の一部変更を行う場合でも、業務に熟知した設計者による作業時間の確保によって、トータルコストは、コスト高になる。
【０００８】
１つの側面では、複数の情報処理装置で複数のジョブを実行させるときに、ジョブを実行する情報処理装置を決定するまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングすることを含む処理をコンピュータに実行させる。記憶部には、複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報が記憶される。コンピュータでは、記憶部に記憶された後段のジョブに関する情報に基づいて、後段のジョブの処理量が大きいジョブを、情報処理装置に実行させるジョブとして優先してスケジュールすることを含む処理が実行される。
【発明の効果】
【００１０】
１つの側面では、後続のジョブを考慮した複数のジョブをスケジューリングすることができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】ジョブスケジュール装置の構成の一例を示すブロック図である。
【図２】コンピュータで実現するジョブスケジュール装置の一例を示すブロック図である。
【図３】業務処理に含まれるジョブの一例を示すイメージ図である。
【図４】ジョブ管理表の一例を示すイメージ図である。
【図５】データ管理表の一例を示すイメージ図である。
【図６】計算機利用マップの一例を示すイメージ図である。
【図７】計算機空き枠表の一例を示すイメージ図である。
【図８】候補リストの一例を示すイメージ図である。
【図９】ジョブ管理プログラムの処理の流れの一例を示すフローチャートである。
【図１０】スケジュール作成プロセスの処理の流れの一例を示すフローチャートである。
【図１１】スケジュール作成プロセスに含まれる個別処理の流れの一例を示すフローチャートである。
【図１２】ジョブ管理表の一例を示すイメージ図である。
【図１３】データ管理表の一例を示すイメージ図である。
【図１４】計算機利用マップの一例を示すイメージ図である。
【図１５】計算機空き枠の一例を示すイメージ図である。
【図１６】候補リストの一例を示すイメージ図である。
【図１７】ジョブ管理表の一例を示すイメージ図である。
【図１８】データ管理表の一例を示すイメージ図である。
【図１９】計算機利用マップの一例を示すイメージ図である。
【図２０】計算機空き枠表の一例を示すイメージ図である。
【図２１】候補リストの一例を示すイメージ図である。
【図２２】ジョブ管理表の一例を示すイメージ図である。
【図２３】データ管理表の一例を示すイメージ図である。
【図２４】計算機利用マップの一例を示すイメージ図である。
【図２５】計算機空き枠表の一例を示すイメージ図である。
【図２６】業務処理に含まれるジョブとデータと計算機８０との関係の一例を示す説明図である。
【図２７】第２実施形態にかかるポリシーの優先度を決定する処理の流れの一例を示すフローチャートである。
【図２８】第３実施形態にかかるポリシーの優先度を決定する処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。本実施形態は、多数のジョブを複数の情報処理装置で実行することで、全体の処理時間を短縮する場合に開示の技術を適用するものである。
【００１３】
（第１実施形態）
図１に、本実施形態に係るジョブスケジュール装置１０の一例を示す。ジョブスケジュール装置１０は、ＣＰＵ１２及びメモリ１４を含んでおり、メモリ１４にはジョブスケジュールプログラム１６が記憶される。ＣＰＵ１２は、メモリ１４に記憶されるジョブスケジュールプログラム１６を実行することによって、スケジュール部１７として動作する。スケジュール部１７は、特定部１８、抽出部２０、及び決定部２２を含む。ＣＰＵ１２には、記憶部２４が接続される。
【００１４】
また、ジョブスケジュール装置１０には、ジョブを実行する複数（図１に示す一例では３台）の情報処理装置（ジョブ実行装置）２６に接続される。
【００１５】
ジョブスケジュール装置１０は、複数のジョブの実行をスケジュールする処理を行うものである。ジョブスケジュール装置１０では、ＣＰＵ１２がジョブスケジュールプログラム１６を実行することにより、スケジュール部１７による処理が開始され、特定部１８、抽出部２０、及び決定部２２による処理が実行される。スケジュール部１７は、記憶部２４に記憶されたジョブに関する情報に基づいて、後段のジョブの処理量が大きいジョブを、情報処理装置２６に実行させるジョブとして優先してスケジュールする。これにより、後続のジョブを考慮した複数のジョブをスケジューリングできる。スケジュール部１７に含まれる特定部１８は、複数の情報処理装置２６のうち、複数のジョブの実行をスケジュールするための複数のジョブに含まれる少なくとも１つのジョブの実行が可能な情報処理装置を特定する。また、抽出部２０は、記憶部２４に記憶された複数のジョブの各々に関するジョブ情報に基づいて、入力データが特定されるジョブを複数のジョブの中から抽出する。つまり、入力データが準備できているジョブを抽出する。決定部２２は、抽出したジョブについて、抽出したジョブに後続するジョブの各々に関するジョブ情報に基づいて、特定部１８で特定した情報処理装置２６に実行させるジョブを、抽出したジョブの中から決定する。これにより、複数のジョブをスケジューリングする時間を短縮することができ、多数のジョブを複数の情報処理装置で実行する場合における全体の処理時間を短縮することができる。
【００１６】
なお、ジョブスケジュール装置１０は開示の技術におけるジョブスケジュール装置の一例であり、スケジュール部１７は開示の技術におけるスケジュール部の一例である。また、特定部１８、抽出部２０、及び決定部２２は開示の技術における特定部、抽出部、及び決定部の一例である。さらに、ジョブスケジュールプログラム１６は開示の技術におけるジョブスケジュールプログラムの一例である。
【００１７】
図２に、ジョブスケジュール装置１０をコンピュータ３０で実現する一例を示す。コンピュータ３０はＣＰＵ３２、メモリ４２、及び不揮発性の格納部４４を備える。ＣＰＵ３２、メモリ４２、及び格納部４４は、バス４６を介して互いに接続される。また、コンピュータ３０は、ディスプレイ等の表示部３４、キーボード及びマウス等の入力部３６を備え、表示部３４及び入力部３６はバス４６に接続される。また、コンピュータ３０は、記録媒体３９に対して読み書きするための装置（ＩＯ装置）３８がバス４６に接続される。さらに、コンピュータ３０はコンピュータネットワーク７８に接続するためのインタフェースを含む通信制御部４０を備える。なお、格納部４４は、例えば、ＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。
【００１８】
格納部４４には、コンピュータ３０をジョブスケジュール装置１０として機能させるためのプログラムを含むジョブ管理プログラム４８が記憶される。格納部４４に格納されたジョブ管理プログラム４８は、定義登録プロセス５０、スケジュール作成プロセス５２、ジョブ投入プロセス６０、及びジョブ監視プロセス６２を含む。また、スケジュール作成プロセス５２は、特定ルーチン５４、抽出ルーチン５６、及び決定ルーチン５８を含む。ＣＰＵ３２は、ジョブ管理プログラム４８を格納部４４から読み出してメモリ４２に展開し、ジョブ管理プログラム４８が有する各プロセスを実行する。
【００１９】
なお、ＣＰＵ３２がジョブ管理プログラム４８を格納部４４から読み出してメモリ４２に展開し、ジョブ管理プログラム４８に含まれるスケジュール作成プロセス５２を実行することで、コンピュータ３０は図１に示すジョブスケジュール装置１０として動作する。ＣＰＵ３２がジョブ管理プログラム４８のスケジュール作成プロセス５２を実行することで、コンピュータ３０は図１に示すスケジュール部１７としても動作する。また、ＣＰＵ３２がジョブ管理プログラム４８のスケジュール作成プロセス５２に含まれる特定ルーチン５４を実行することで、コンピュータ３０は図１に示す特定部１８として動作する。さらに、ＣＰＵ３２が抽出ルーチン５６を実行することで、コンピュータ３０は図１に示す抽出部２０として動作し、ＣＰＵ３２が決定ルーチン５８を実行することで、コンピュータ３０は図１に示す決定部２２として動作する。つまり、ジョブ管理プログラム４８に含まれるスケジュール作成プロセス５２は、図１に示すジョブスケジュールプログラム１６の一例である。
【００２０】
また、格納部４４には、ジョブ管理表６４、データ管理表６６、計算機利用マップ６８、及び計算機空き枠表７０が記憶される。なお、詳細は後述するが、ジョブ管理プログラム４８の実行により、メモリ４２に候補リスト７２が格納される。
【００２１】
図３に、本実施形態にかかる業務処理に含まれるジョブの一例を示す。ジョブ名Ｐ１〜Ｐ７の各ジョブは、入力される１又は複数のデータを用いて処理した後にデータを出力する。例えば、ジョブＰ１はデータＡを用いて処理した後にデータＢを出力し、ジョブＰ４はデータＣ，Ｄを用いて処理した後にデータＥを出力する。なお、図３では、ジョブ形状の大きさを処理時間に対応させて表記される。
【００２２】
図４に、ジョブ管理表６４のデータ構造の一例を示す。ジョブ管理表６４は、ジョブ及びジョブの実行に関係する情報が登録される。図４ではジョブ管理表６４として、「ジョブ名」、「入力」、「出力」、「処理時間（予測）」、「開始時刻」、及び、「実行計算機」の各情報が対応付けられて登録される一例を示す。「ジョブ名」を示す情報は、ジョブを識別するための名称を示す情報である。また、「入力」及び「出力」を示す情報は、ジョブで使用する入力側のデータを示す情報、及びジョブの実行により得られる出力側のデータを示す情報である。さらに、「処理時間（予測）」の情報は、ジョブの実行開始から実行終了までの予測処理時間を示す情報である。さらにまた、「開始時刻」の情報は、ジョブの実行開始時刻を示す情報である。また、「実行計算機」を示す情報は、ジョブを実行する計算機８０の何れかを識別するための識別子を示す情報である。なお、図４では、「開始時刻」及び「実行計算機」の各情報が未定であることを示す「ＮＡ」が登録された一例を示す。
【００２３】
図５に、データ管理表６６のデータ構造の一例を示す。データ管理表６６は、ジョブの実行で用いられるデータに関係する情報が登録される。図５ではデータ管理表６６として、「データ」、「転送時間」、「作成時刻」、及び、「データのある計算機」の各情報が対応付けられて登録される一例を示す。「データ」を示す情報は、ジョブの実行で用いられるデータを識別するための名称を示す情報である。また、「転送時間」を示す情報は、計算機間でデータを転送するときの転送時間を示す情報である。さらに、「作成時刻」を示す情報はデータがジョブの実行に使用できる状態になる時刻を示す情報が登録されるものであり、図５では、作成済みであるとき「０」の値が登録され、未定であることを示す「ＮＡ」が登録された一例を示す。さらにまた、「データのある計算機」の情報は、データを記憶した計算機を示す情報である。
【００２４】
図６に、計算機利用マップ６８のデータ構造の一例を示す。計算機利用マップ６８は、計算機８０の各々に割り当てられるジョブを示す情報が登録される。図６に示す計算機利用マップ６８では、所定時間を１単位として、０単位時間〜１２単位時間内の何れかに各計算機８０毎にジョブを示す情報が登録される一例を示す。
【００２５】
図７に、計算機空き枠表７０のデータ構造の一例を示す。計算機空き枠表７０は、計算機８０の各々でジョブの実行が可能な時間を示す情報が登録される。図７に示す計算機空き枠表７０では、「計算機名」、「開始時刻」、及び、「空き時間長」の各情報が対応付けられて登録される一例を示す。「計算機名」を示す情報は、計算機を識別するための計算機の名称を示す情報であり、「開始時刻」を示す情報はジョブの実行が可能な開始時刻を示す情報であり、「空き時間長」を示す情報はジョブの実行が可能な単位時間の数を示す情報である。
【００２６】
図８に、ジョブ管理プログラム４８の実行によりメモリ４２に格納される候補リスト７２のデータ構造の一例を示す。候補リスト７２は、入力データ候補リスト７２Ａ、及び実行候補リスト７２Ｂを含む。入力データ候補リスト７２Ａには、データの名称等のデータを示す情報が格納される。また、実行候補リスト７２Ｂにはジョブ名等のジョブを示す情報が格納される。
【００２７】
図２に示すコンピュータネットワーク７８には、ジョブを実行する複数（図２に示す一例では３台）のジョブを実行する情報処理装置としての計算機８０が接続される。
【００２８】
計算機８０の各々はＣＰＵ８２、メモリ８４、及び不揮発性の格納部８６を備える。ＣＰＵ８２、メモリ８４、及び格納部８６は、バス９８を介して互いに接続される。また、計算機８０は、ディスプレイ等の表示部９０、キーボード及びマウス等の入力部９２を備え、表示部９０及び入力部９２はバス９８に接続される。また、計算機８０は、記録媒体３９に対して読み書きするためのＩＯ装置９４がバス９８に接続される。さらに、計算機８０はコンピュータネットワーク７８に接続するためのインタフェースを含む通信制御部９６を備える。なお、格納部８６はＨＤＤやフラッシュメモリ等によって実現できる。以下の説明で、複数の計算機８０の各々又は計算機に含まれる要素の各々について個別に対象とする場合は、例えば、計算機８０Ａ，８０Ｂ，８０Ｃで示すように、符号に記号を付与して表記し、計算機８０同士又は計算機に含まれる要素同士を区別して扱う。
【００２９】
なお、ジョブスケジュール装置１０として動作するコンピュータ３０はコンピュータネットワーク７８に接続することに限定されない。例えば、コンピュータ３０は、計算機８０に有線接続または無線接続により直接接続してもよい。
【００３０】
ところで、業務処理を短時間で完了するために、複数のコンピュータ等の計算機により並列処理を行うことが一般的であり、業務処理に含まれるジョブを、複数の計算機に振り分けて並列処理を行うことで、業務処理を短時間で完了することができる。ジョブはデータを読み込んで、処理結果をデータとして出力する。また、特定のジョブの出力データが、別のジョブの入力データとなる場合もある。ジョブを複数の計算機で実行させるためには、ジョブで使用するデータの格納場所とジョブ間の前後関係、及びデータの受け渡しまでを考慮したスケジュールを作成する。
【００３１】
業務処理を実行するシステムの構成が固定的である場合、ジョブのスケジュールの作成は、業務を熟知した設計者によって事前に工数及び時間をかけて行うので、コスト高になる。しかし、固定的なシステム構成では、作成済みのスケジュールを変更する頻度が少ないので、スケジュール作成に投入される工数及び時間より、作成するスケジュールによるジョブの実行時間を短縮することが重視される。
【００３２】
しかし、近年、計算機の追加、ジョブの増加等、及びシステム構成の変更が要求されることが増加している。例えば、業務の繁忙期等に、業務の負荷やデータの量等に応じて計算機を増減させることが可能である。計算機及びジョブの増減させる場合、手動作業によるコスト高であるスケジュールの再作成を行うことになる。
【００３３】
コスト高を抑制するために、スケジュールの作成を自動的に作成させる場合には、どのジョブをどの計算機に振り分けるか、どのジョブを並列実行するか等の選択を計算機によって行うことが考えられる。例えば、選択のパターンを総当たりして、短時間で複数のジョブを完了できるスケジュールを捜すことが考えられる。しかし、例えば１０００個のジョブについて、２択の選択肢が１０ジョブ毎に存在する場合、組み合わせは２の１００乗通りとなる。２の１００乗通りの処理は、２０００００ＭＩＰＳ（Million Instructions Per Second）のＣＰＵが１命令で１つの選択肢を処理することを想定すると、１００００億年以上の処理時間になり、非現実的である。
【００３４】
そこで、本実施形態は、業務処理に関連する全体の処理を想定して、少なくともスケジュール作成の計算時間を短縮するものである。また、本実施形態は、スケジュール作成の計算時間を短縮すること、及び業務処理に最適なスケジュールを作成することの二律相反する課題を達成することを目指している。
【００３５】
次に、本実施形態の作用を説明する。
【００３６】
図９に、ジョブスケジュール装置１０をコンピュータ３０で実現する場合におけるジョブ管理プログラム４８の処理の流れの一例を示す。
【００３７】
まず、コンピュータ３０では、例えば操作者の手動操作によって、ジョブに関連する定義を示す情報が登録される（ステップ１００）。つまり、ＣＰＵ３２は、ステップ１００で、定義登録プロセス５０の実行によりジョブに関連する定義を示す情報として、ジョブの定義を示す情報をジョブ管理表６４（図４参照）に登録する。ジョブの定義を示す情報の一例として、ジョブ管理表６４に示す「ジョブ名」、「入力」、「出力」、「処理時間」、「開始時刻」、及び「実行計算機」に対応する情報がある。なお、「入力」に対応する情報の一例として入力データ名を示す情報があり、「出力」に対応する情報の一例として出力データ名を示す情報がある。また、ジョブの定義を示す情報には、入力データ、及び出力データの各々のデータ量を示す情報を含めてもよい。ジョブの処理時間は、入力データの大きさに応じて変動する場合があるので、ジョブの入力データの大きさから予測計算する計算結果を、処理時間を示す情報として登録してもよい。なお、ジョブ管理表６４に示す「開始時刻」、及び「実行計算機」の各情報は、後述するスケジュール作成プロセス５２の実行により決定される情報であるため、ステップ１００では、未定であることを示す「ＮＡ］が登録される。
【００３８】
また、ＣＰＵ３２は、ステップ１００で、ジョブに関連する定義を示す情報をデータ管理表６６（図５参照）にも登録する。つまり、ＣＰＵ３２は、ステップ１００で、ジョブに関連する定義を示す情報として、ジョブで使用するデータの定義を示す情報をデータ管理表６６に登録する。データ管理表６６に登録するデータの定義を示す情報の一例として、データ管理表６６に示す「データ」、「転送時間」、「作成時刻」、及び「データのある計算機」に対応する情報がある。「データ」に対応する情報の一例としてデータ名を示す情報がある。また、「転送時間」に対応する情報の一例としてデータの転送時間を示す情報がある。データの転送時間は、転送するデータの大きさに応じて変動する場合があるので、データの大きさから予測計算する計算結果を、転送時間を示す情報として登録してもよい。
【００３９】
なお、ステップ１００においてジョブに関連する定義を示す情報が登録されるとき（初期状態のとき）、ジョブで使用するデータが既に存在している場合、「作成時刻」に対応する情報として「０」の値が登録される。また、初期状態のときにジョブで使用するデータが既に存在している場合、全ての計算機８０にデータが存在するものとして計算機名を示す情報が「データのある計算機」に対応する情報として登録される。一方、初期状態のときにジョブで使用するデータが存在しない場合、「作成時刻」に対応する情報として「ＮＡ」の値が登録され、「データのある計算機」に対応する情報として「空白」を示す情報が登録される。
【００４０】
また、ＣＰＵ３２は、ステップ１００で、ジョブに関連する定義を示す情報を計算機利用マップ６８（図６参照）にも登録する。つまり、ＣＰＵ３２は、ステップ１００で、ジョブに関連する定義を示す情報として、業務処理を実行する対象の計算機８０の定義を示す情報を計算機利用マップ６８に登録する。計算機利用マップ６８に登録する計算機８０の定義を示す情報の一例として、計算機名を示す情報がある。計算機利用マップ６８は、登録される計算機８０毎に、ジョブが割り当てられることを示す情報を登録可能なように、初期状態の０単位時間から所定単位時間（図６では一例として１２単位時間を示す）まで登録領域が確保される。従って、ステップ１００における初期状態では、計算機名を示す情報が登録される。
【００４１】
次に、コンピュータ３０は、ステップ１００で登録されるジョブについてスケジュール作成処理を実行する（ステップ１０２）。詳細は後述するが、ＣＰＵ３２は、複数のジョブの各々を実行する時期及び実行対象の計算機８０を決定する業務処理のスケジューリングを行う。次に、コンピュータ３０は、ステップ１０２で作成したスケジュールに従って、各ジョブを計算機に投入し（ステップ１０４）、業務処理を実行する（ステップ１０６）。つまり、ＣＰＵ３２は、作成されたスケジュールに従って各ジョブを対象の計算機８０へ投入し、ジョブを投入した計算機８０にジョブの実行を指示することで、業務処理を実行する。なお、ステップ１０６では、ジョブを投入した計算機８０へのジョブの実行指示を含めて対象の計算機８０におけるジョブの実行が監視される。ジョブの実行監視の一例として、計算機８０において実行されたジョブの終了通知を受け取る処理、及び計算機８０で実行されたジョブにより得られたデータを示す情報の取得処理がある。
【００４２】
図９に示すステップ１００の処理は、定義登録プロセス５０（図２）による処理に対応し、ステップ１０２の処理は、スケジュール作成プロセス５２（図２）の処理に対応する。また、ステップ１０４の処理は、ジョブ投入プロセス６０（図２）による処理に対応し、ステップ１０６の処理は、ジョブ監視プロセス６２（図２）の処理に対応する。
【００４３】
図１０に、ジョブ管理プログラム４８に含まれるスケジュール作成プロセス５２の処理の流れの一例を示す。なお、以下の説明では、ジョブ名Ｐ１〜Ｐ７の７個のジョブを含む業務処理を、３台の計算機８０Ａ，８０Ｂ，８０Ｃにより実行する場合を説明する。
【００４４】
まず、ＣＰＵ３２は、スケジュール作成プロセス５２を実行する。具体的には、ＣＰＵ３２は、ステップ１１０で、計算機空き枠表作成処理を実行する。計算機空き枠表作成処理では、ＣＰＵ３２は、計算機利用マップ６８を参照し、計算機８０毎に、計算機利用マップ６８における空き枠を探索し、空き枠の開示時刻と空き時間長（空き枠の長さ）を求める。なお、空き枠の開示時刻は、０単位時間〜１２単位時間のうち該当する単位時間の位置を示す数値に対応する。また、空き時間長は、単位時間の個数に対応する。ＣＰＵ３２は、求めた空き枠の開示時刻及び空き時間長を示す情報と、計算機８０との対応関係を、計算機空き枠表７０として作成する（図７参照）。なお、ＣＰＵ３２は、ステップ１１０において、開始時刻を示す情報に基づき、対応関係をソートする処理も実行する。対応関係をソートする処理は、開始時刻の早い順序（または遅い順序）、つまり単位時間の位置を示す数値が小さい順序（または大きい順序）で整列する処理である。
【００４５】
次に、ＣＰＵ３２は、ステップ１１２で、計算機空き枠表７０において最も早い開始時刻（単位時間の位置を示す数値が小さい）の空き枠の開始時刻を、ジョブ開始可能時刻に設定し、次のステップ１１４で、入力データ候補リスト７２Ａを生成する。ステップ１１４では、ＣＰＵ３２は、データ管理表６６を参照し、ジョブ開始可能時刻より前に作成時刻となるデータを抽出し、抽出した１または複数のデータのリストを入力データ候補リスト７２Ａに設定する（図８参照）。また、ＣＰＵ３２は、ステップ１１６で、実行候補リスト作成処理を実行する。実行候補リスト作成処理では、ジョブ管理表６４を参照して、入力データ候補リスト７２Ａに含まれるデータを入力データとするジョブを抽出し、抽出した１または複数のジョブのリストを実行候補リスト７２Ｂに設定する（図８参照）。なお、ステップ１１６の処理では、ジョブ管理表６４において開始時刻及び実行計算機が決定済みのジョブは除外する。
【００４６】
実行候補リスト作成処理の終了後、ＣＰＵ３２は、ステップ１１８で、実行候補リスト７２Ｂに、少なくとも１つのジョブが含まれているか否かを判別することにより、対象ジョブが有るか否かを判断する。ＣＰＵ３２は、ステップ１１８で否定判断すると、ステップ１２０で、データ管理表６６を参照し、ジョブ開始可能時刻より後に作成時刻となるデータのうち最も早い作成時刻（単位時間の位置を示す数値が最小）のデータを検索する。次に、ＣＰＵ３２は、ステップ１２２で、検索結果のデータにおける作成時刻以前の計算機利用マップ６８の全ての空き枠に、使用済みを示す情報を登録した後に、ステップ１１０へ処理を戻す。
【００４７】
一方、ＣＰＵ３２は、ステップ１１８で肯定判断すると、ステップ１２４へ処理を移行し、ステップ１２４で個別処理を実行した後に、ステップ１２６へ処理を移行する。詳細は後述するが、ステップ１２４に示す個別処理は、実行候補リスト７２Ｂに含まれるジョブの実行順序及び実行対象の計算機８０を決定する処理である。ＣＰＵ３２は、ステップ１２４に示す個別処理を終了すると、ステップ１２６で、ジョブ管理表６４に示す全ての欄の情報が登録されたか否かを判別することにより、ジョブ管理表６４が完成したか否かを判断する。ＣＰＵ３２は、ステップ１２６で否定判断すると、ステップ１００へ処理を戻し、肯定判断すると、スケジュール作成プロセス５２を終了する。
【００４８】
図１１に、スケジュール作成プロセス５２に含まれる個別処理（図１０でステップ１２４に示す処理）の流れの一例を示す。なお、図１１に示す個別処理には、図２に示す特定ルーチン５４、抽出ルーチン５６、及び決定ルーチン５８の各々による処理が含まれる。
【００４９】
まず、ＣＰＵ３２は、ステップ１３０で、予め定められたポリシーを参照する。ポリシーは、複数のジョブの中で優先するジョブを定めるための条件を示す。本実施形態で用いるポリシーの一例を、次に示す。本実施形態では、次に示す複数のポリシーの少なくとも１つのポリシーを用いる。また、複数のポリシーを用いる場合には、予め優先度を定めておき、優先度に従って、ポリシーを適用する。
【００５０】
＜ポリシー＞
第１ポリシー：生成したデータで実行可能となるジョブ数が多いジョブを優先する。
第２ポリシー：ジョブの処理時間（予想時間を含む）が長いジョブを優先する。
第３ポリシー：データの転送時間が個々のジョブの処理時間より長いジョブを優先する。
第４ポリシー：後続のジョブの処理時間の合計が長いジョブを優先する。
第５ポリシー：特定のデータを入力とする複数のジョブが存在する場合に他のポリシーを              適用する。
第６ポリシー：特定の時点で開始可能なジョブが実行対象の計算機数を超えていた場合に              他のポリシーを適用する。
【００５１】
第１ポリシーは、特定のジョブにより生成されるデータによって実行可能となるジョブ数を計数し、計数値が大きいジョブを優先することを示す条件である。例えば、生成したデータで実行可能となるジョブ数が少ないジョブほど、他の計算機８０に振り分けることが可能であることを示す。第２ポリシーは、例えば、短い処理時間のジョブほど、他の計算機８０に振り分けることが可能であることを示す。第３ポリシーは、例えば、データの転送時間が個々のジョブの処理時間より短いジョブほど、データを転送してでも他の計算機に振り分けることが可能であることを示す。第４ポリシーは、例えば、後続するジョブの合計の処理時間が短いジョブほど、他の計算機８０に振り分けることが可能であることを示す。第５ポリシー及び第６ポリシーは、対象とする複数のジョブを定めるための条件を示す。
【００５２】
なお、個々のジョブの処理時間にバラツキが少ない場合、第１ポリシーによる単純なジョブ数で優先するジョブを定めることで、処理を単純化しスケジュール作成の計算コストを抑制することができる。
【００５３】
次に、ＣＰＵ３２は、ステップ１３２で、実行候補リスト７２Ｂに含まれるジョブの中から、ポリシーに従って対象ジョブを決定し、ステップ１３４で、計算機の空き枠の検索処理を実行する。ステップ１３４では、ＣＰＵ３２は、計算機空き枠表７０を参照し、開示時刻が早い計算機８０から順に、対象ジョブの処理時間より長い空き時間長の計算機８０の空き枠を検索する。なお、ステップ１３４では、データ管理表６６を参照し、対象ジョブの入力データが計算機８０に存在しない場合に、対象ジョブの入力データの転送時間を含めた開始時刻を用いる。つまり、入力データの作成時刻に転送時間を加算した時刻と、計算機空き枠表７０の開始時刻との遅い時刻を開始時刻として扱うこととする。
【００５４】
計算機の空き枠の検索処理が終了されると、ＣＰＵ３２は、ステップ１３６で、ジョブ管理表６４の更新処理を実行する。つまり、ＣＰＵ３２は、ステップ１３６で、ジョブ管理表６４における対象ジョブの開始時刻を示す情報として、ステップ１３４の検索結果の空き枠の開始時刻を示す情報を登録する。また、ＣＰＵ３２は、ステップ１３６で、ジョブ管理表６４における対象ジョブの実行計算機の情報として、ステップ１３４の検索結果の空き枠を有する計算機８０を示す情報を登録する。
【００５５】
図１２に、初期状態から第１回目の個別処理により更新されるジョブ管理表６４の一例を示す。図１２に示すジョブ管理表６４では、ジョブ名Ｐ１のジョブが対象ジョブに決定され、開始時刻が「０」、及び実行計算機が「計算機８０Ａ」を示す情報に更新されることを示す。
【００５６】
図１１に示すステップ１３６においてジョブ管理表６４の更新処理が終了されると、ＣＰＵ３２は、ステップ１３８で、データ管理表６６の更新処理を実行する。つまり、ＣＰＵ３２は、ステップ１３８で、対象ジョブの入力データに対応するデータ管理表６６のデータについて、データのある計算機を示す情報として、ステップ１３４の検索結果の空き枠を有する計算機８０を示す情報を追加する。また、ＣＰＵ３２は、ステップ１３８で、対象ジョブの出力データに対応するデータ管理表６６のデータについて、データのある計算機を示す情報として、ステップ１３４の検索結果の空き枠を有する計算機８０を示す情報を追加する。さらに、ＣＰＵ３２は、ステップ１３８で、対象ジョブの出力データに対応するデータ管理表６６のデータについて、作成時刻を示す情報として、対象ジョブの開始時刻に処理時間を加算した時刻を示す情報を登録する。
【００５７】
図１３に、データ管理表６６の一例を示す。図１３に示すデータ管理表６６は、ジョブ名Ｐ１の対象ジョブの出力データであるデータ名Ｂのデータについて、作成時刻が「２」、及びデータのある計算機が「計算機８０Ａ」を示す情報に更新されることを示す。
【００５８】
図１１に示すステップ１３８においてデータ管理表６６の更新処理が終了されると、ＣＰＵ３２は、ステップ１４０で、計算機利用マップ６８の更新処理を実行する。つまり、ＣＰＵ３２は、ステップ１４０で、対象ジョブの開始時刻から処理時間の長さの計算機利用マップ６８の空き枠に、使用済みを示す情報を登録する。計算機利用マップ６８の更新処理が終了されると、ＣＰＵ３２は、個別処理を終了する。
【００５９】
図１４に、計算機利用マップ６８の一例を示す。図１４に示す計算機利用マップ６８は、ジョブ名Ｐ１の対象ジョブを示す情報が計算機８０Ａに割り当てられて更新されることを示す。
【００６０】
次に、実行候補リスト７２Ｂに含まれるジョブについて個別処理が順次処理される過程における各種の表について説明する。
【００６１】
図１５に、計算機空き枠表７０の一例を示す。図１５に示す計算機空き枠表７０は、ジョブ名Ｐ１の対象ジョブの個別処理が終了し、再度計算機空き枠表作成処理（図１０に示すステップ１１０の処理）が実行された結果を示す。図１６に、候補リスト７２の一例を示す。図１６に示す候補リスト７２は、ジョブ名Ｐ１の対象ジョブの個別処理が終了し、候補リストが再生成される処理（図１０に示すステップ１１４、１１６の処理）が実行された結果を示す。ジョブ名Ｐ１のジョブは、既にジョブを実行させるスケジュールが決定済であるので、実行候補リスト７２Ｂにはジョブ名Ｐ１のジョブを示す情報が除外される。
【００６２】
図１７に、ジョブ名Ｐ５，Ｐ６の各ジョブが対象ジョブに決定されて個別処理により更新されるジョブ管理表６４の一例を示す。図１７に示すジョブ管理表６４では、ジョブ名Ｐ５のジョブについて、開始時刻が「０」、及び実行計算機が「計算機８０Ｂ」を示す情報に更新されることを示す。また、図１７では、ジョブ名Ｐ６のジョブについて、開始時刻が「０」、及び実行計算機が「計算機８０Ｃ」を示す情報に更新されることも示す。図１７では、ジョブ名Ｐ１，Ｐ５，Ｐ６の各ジョブを実行させるスケジュールが決定済であることが示されている。
【００６３】
図１８に、データ管理表６６の一例を示す。図１８に示すデータ管理表６６は、ジョブ名Ｐ５のジョブの出力データであるデータ名Ｇのデータについて、作成時刻が「２」、及びデータのある計算機が「計算機８０Ｂ」を示す情報に更新されることを示す。また、図１８では、ジョブ名Ｐ６のジョブの出力データであるデータ名Ｈのデータについて、作成時刻が「２」、及びデータのある計算機が「計算機８０Ｃ」を示す情報に更新されることも示す。図１７では、データ名Ｂ，Ｇ，Ｈの各データの作成時刻が決定済であることが示されている。
【００６４】
図１９に、計算機利用マップ６８の一例を示す。図１９に示す計算機利用マップ６８は、ジョブ名Ｐ５の対象ジョブを示す情報が計算機８０Ｂに割り当てられて更新されることを示す。また、図１９では、ジョブ名Ｐ６の対象ジョブを示す情報が計算機８０Ｃに割り当てられて更新されることも示す。
【００６５】
図２０に、計算機空き枠表７０の一例を示す。図１５に示す計算機空き枠表７０は、ジョブ名Ｐ５、Ｐ６の対象ジョブの個別処理が終了し、再度計算機空き枠表作成処理（図１０に示すステップ１１０の処理）が実行された結果を示す。
【００６６】
図２１に、候補リスト７２の一例を示す。図１６に示す候補リスト７２は、ジョブ名Ｐ５、Ｐ６の対象ジョブの個別処理が終了し、候補リストが再生成される処理（図１０に示すステップ１１４、１１６の処理）が実行された結果を示す。なお、図２１に示す実行候補リスト７２Ｂにおけるジョブでは、後続のジョブの処理量が多いジョブが優先される。つまり、第１ポリシー〜第６ポリシーを順に適用して優先するジョブを定める。例えば、第１のポリシーと第２ポリシーとを順に適用し、後続のジョブ数が多く、処理時間が長いジョブを優先する場合、最も優先されるジョブはジョブ名Ｐ２のジョブとなる。また、計算機８０Ｂ，８０Ｃの空き枠の場合、ジョブ名Ｐ２のジョブで使用するデータ名Ｂのデータが存在しないため、転送時間が加味され、開始時間が遅れるので、ジョブ名Ｐ２のジョブは計算機８０Ａの空き枠にスケジュールされる。
【００６７】
図２２に、スケジュール作成プロセス５２の処理が終了した場合（図１０に示すステップ１２６で肯定判断される場合）におけるジョブ管理表６４の一例を示す。また、図２３に、データ管理表６６の一例を示し、図２４に、計算機利用マップ６８の一例を示す。なお、スケジュール作成プロセス５２の処理が終了すると、計算機空き枠表作成処理（図１０に示すステップ１１０の処理）は実行されないが、仮想的に実行する場合の結果として得られる計算機空き枠表７０の一例を図２５に示す。
【００６８】
また、図２６に、スケジュール作成プロセス５２の処理が終了した場合におけるジョブとデータと計算機８０との関係の一例を示す。
【００６９】
本実施形態では、個々のジョブの開始を可能な限り早くするスケジュールを作成するものである。個々のジョブの実行を迅速に開始するスケジュールを作成するため、図２６に示すように、ジョブ名Ｐ２のジョブの処理完了を待つことなく、計算機８０Ｂでジョブ名Ｐ３のジョブを実行するスケジュールを作成することができる。しかし、ジョブ名Ｐ４のジョブの開始の決定において、データ名Ｄのデータを計算機８０Ａに戻すロスが発生するので、ジョブ名Ｐ３のジョブを計算機８０Ａで実行するスケジュールである最適解に比べて業務処理の処理時間は増加する。しかし、最適解を導き出すためにいくつもの解の候補を検討するという処理が省略可能となるため、スケジュールの作成にかかる時間は大幅に減少する。従って、スケジュールの作成とジョブの実行を合わせた総時間は最適解を求めて実行するよりも減少する。
【００７０】
なお、ＣＰＵ３２により実行されるステップ１０２の処理は、コンピュータ３０がジョブスケジュール装置として動作する場合におけるスケジュール部の処理に対応する一例である。ＣＰＵ３２により実行されるステップ１１０の処理は、コンピュータ３０がジョブスケジュール装置として動作する場合における特定部の処理に対応する一例である。また、ＣＰＵ３２により実行されるステップ１１６の処理は、コンピュータ３０がジョブスケジュール装置として動作する場合における抽出部の処理に対応する一例である。さらに、ＣＰＵ３２により実行されるステップ１２４の処理は、コンピュータ３０がジョブスケジュール装置として動作する場合における決定部の処理に対応する一例である。
【００７１】
以上説明したように、本実施形態では、データの作成時刻や作成場所、転送時間を考慮してジョブを実行させるためのスケジュールを作成することによって、ジョブ間の依存関係を考慮してスケジュールを自動的に作成することができる。つまり、ジョブ間にデータの依存関係を持つ多数のジョブについて、ジョブの実行スケジュールを短時間で作成することで、スケジュールの作成とジョブの実行を合わせた総時間を短縮することができる。これによって、日々変わる業務の状況に合わせて、計算機の台数を変更すること、ジョブを追加すること等の業務処理の変更に応じた対応を容易に実施することができる。
【００７２】
また、本実施形態は、最適解を追求することに限定されず、例えば、後続のジョブの処理量が多いジョブを優先する等のポリシーにより短時間でスケジュールを作成することで、スケジュール作成時間とジョブの実行時間を合わせた総実行時間を短縮できる。つまり、後続のジョブの処理量が多いジョブを優先してスケジュールすることで、後続のジョブを考慮した複数のジョブのスケジューリングが可能となる。また、後続のジョブを考慮した複数のジョブをスケジュールすることで、複数のジョブの組み合わせを全て検討してスケジュールすることに比べてスケジュール作成時間を短縮することができる。
【００７３】
さらに、本実施形態では、入力データが計算機に保持されるジョブをスケジュールされる候補の複数のジョブとして抽出することができる。これにより、スケジュールされるジョブはジョブを実行する計算機に保持されるデータを用いることができ、データを転送する等の準備時間を短縮できる。
【００７４】
さらにまた、本実施形態では、複数の計算機の各々の処理の実行状況に基づいて、ジョブの処理の実行が可能な計算機が特定され、特定されたジョブの処理の実行が可能な計算機が、候補の複数のジョブを実行させる計算機として定められる。これにより、計算機における処理の実行状況を考慮してジョブを実行させる計算機を定めることができる。
【００７５】
また、本実施形態では、対象ジョブに後続するジョブの各々の処理時間を示す情報に基づいて、特定した計算機８０に実行させるジョブを決定するので、対象ジョブを容易に決定することができる。
【００７６】
また、本実施形態では、ジョブに後続するジョブの個数を示す情報に基づいて、情報処理装置に実行させるジョブを決定するので、対象ジョブを容易に決定することができる。
【００７７】
また、本実施形態では、特定した計算機８０に記憶されるデータを入力データとして実行するジョブを、データを記憶した計算機で実行するか、データを記憶した計算機以外の計算機で実行するかが判断される。また、判断結果に基づいて、計算機で実行させるジョブを決定するので、対象ジョブを容易に決定することができる。
【００７８】
また、本実施形態では、ジョブ実行の優先度を示す情報に基づいて、計算機で実行させるジョブを決定するので、対象ジョブを容易に決定することができる。
【００７９】
また、本実施形態では、特定の時点で実行開始可能なジョブが実行対象の情報処理装置の総数を超えていた場合に、優先度を示す情報に基づいて、計算機で実行させるジョブを決定するので、対象ジョブを容易に決定することができる。
【００８０】
さらに、本実施形態では、複数のジョブの各々に対して、処理を実行する計算機が割り当てられるまで、計算機の特定と、ジョブの抽出と、ジョブの決定とを繰り返す。従って、業務処理に関連する全体の処理を想定して、少なくともスケジュール作成の計算時間を短縮して、ジョブのスケジュールを完成させることができる。
【００８１】
さらにまた、本実施形態では、複数の計算機の各々の動作開始時刻を含む動作状況に基づいて、ジョブの処理の実行が可能な計算機を特定する。また、入力データ及び出力データの作成時刻を含む作成状況と、処理の開示時刻を含む処理状況とを示す情報に基づいて、処理の実行前に入力データが作成済みのジョブを複数のジョブの中から抽出する。従って、計算機の動作状況を反映しつつジョブに関連する入力データ及び出力データの作成状況、そして処理状況を反映してジョブのスケジュールを完成させることができる。
【００８２】
（第２実施形態）
次に、第２実施形態を説明する。第１実施形態では、予め定められたポリシーを参照して対象ジョブを決定する場合の一例を説明した。第２実施形態では、複数のジョブに対して適用するポリシーを決定する場合の一例を説明する。なお、第２実施形態は、第１実施形態と同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
【００８３】
第２実施形態では、図１０でステップ１２４に示すスケジュール作成プロセス５２における個別処理より上流側において、ポリシーの優先度を決定する処理を実行させるものである。具体的な一例として、図１０に示すステップ１２４の処理の前に、ポリシーの優先度を決定する処理を追加することができる。また、他の例として、図１１に示すステップ１３０の処理の前に、ポリシーの優先度を決定する処理を追加することができる。
【００８４】
図２７に、ポリシーの優先度を決定する処理の流れの一例を示す。
【００８５】
まず、ＣＰＵ３２は、ステップ２００で、格納部４４に格納される複数のポリシーを示すポリシーの一覧を取得し、表示部３４に表示する。なお、表示部３４に表示されるポリシーの一覧に含まれる複数のポリシーは、入力部３６による入力によって、ポリシーの適用順序及び少なくとも１つのポリスーを選択できるようになっている。次に、ＣＰＵ３２は、ポリシーの適用順序の指定及び１以上のポリシーの選択指示の少なくとも一方による適用指示が、入力部３６による入力によってなされるまで、ステップ２０２で否定判断する。ステップ２０２で肯定判断されると、ＣＰＵ３２は、ステップ２０４で、適用指示されたポリシーに従って、ジョブを実行させる場合の完了までの予測時間を算出し、表示部３４に表示する。次に、ＣＰＵ３２は、ステップ２０６で、入力部３６による入力によってなされた適用指示でポリシーを設定することを示す承諾指示が、入力部３６による入力によってなされたか否かを判断する。例えば、設計者は、表示部３４に表示される適用指示されたポリシーによる予測時間を参照し、適用指示でポリシーを設定することの可否を確認する。設計者は、確認結果に応じて入力部３６による入力によって承諾指示または拒否を示す情報を入力する。ＣＰＵ３２は、ステップ２０６で否定判断した場合には、ステップ２００へ処理を戻す。一方、ＣＰＵ３２は、ステップ２０６で肯定判断した場合には、ステップ２０６へ処理を移行し、適用指示によるポリシーの適用順序及び１以上のポリシーの選択指示の少なくとも一方の情報に基づいて、ポリシーの優先度を決定し、本処理ルーチンを終了する。
【００８６】
以上説明したように、第２実施形態では、複数のジョブに適用するポリシーについて、設計者による適用指示によって優先度を設定することができる。これによって、第２実施形態では、優先度の設定により変動する業務処理の処理時間を考慮して、複数のジョブに適用するポリシーを設定することができる。
【００８７】
（第３実施形態）
次に、第３実施形態を説明する。第３実施形態は、定期的またはスケジュールの作成後に一定時間を経過したときに、ポリシーの優先度を決定する処理を実行させるものである。なお、第３実施形態は、第１実施形態及び第２実施形態と同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
【００８８】
図２８に、ポリシーの優先度を決定する処理の流れの一例を示す。図２８に示すポリシーの優先度を決定する処理は、定期的に実行される。なお、第３実施形態では、スケジュールの作成後に経過時間を計測することができる。
【００８９】
まず、ＣＰＵ３２は、ステップ３００で、スケジュールの作成後に所定時間を経過したか否かを判断し、否定判断する場合にはそのまま本ルーチンを終了する。一方、ＣＰＵがステップ３００で肯定判断する場合には、ステップ３０２へ処理を移行した後に、本ルーチンを終了する。ステップ３０２では、図２７に示すポリシーの優先度を決定する処理が実行される。
【００９０】
以上説明したように、第３実施形態では、定期的またはスケジュールの作成後に一定時間を経過したときに、ポリシーの優先度を決定する処理を実行するので、複数のジョブに適用するポリシーについて検討する機会を、提供することができる。
【００９１】
なお、上記ではジョブスケジュール装置１０をコンピュータ３０により実現する一例を説明した。しかし、これらの構成に限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
【００９２】
また、上記ではプログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。例えば、開示の技術におけるプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【００９３】
以上の実施形態に関し、更に以下の付記を開示する。
【００９４】
（付記１）
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするコンピュータに、
記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールする
ことを含む処理を実行させるためのジョブスケジュールプログラム。
【００９５】
（付記２）
前記記憶部は、ジョブの各々の入力データと出力データとを示す情報を含むジョブ情報を記憶し、
前記コンピュータに、
前記記憶部に記憶された前記ジョブ情報に基づいて、特定タイミングにおいて入力データが前記情報処理装置に保持されるジョブを前記スケジュールされる候補の複数のジョブとして抽出する
処理を実行させる付記１記載のジョブスケジュールプログラム。
【００９６】
（付記３）
前記記憶部は、複数の情報処理装置の各々の処理の実行状況を特定する情報を記憶し、
前記コンピュータに、
前記記憶部に記憶された、複数の情報処理装置の各々の処理の実行状況を特定する情報に基づき、前記特定タイミングにおいてジョブの処理の実行が可能な情報処理装置を特定し、特定した該ジョブの処理の実行が可能な情報処理装置を、前記候補の複数のジョブを実行させる前記情報処理装置として特定する、
処理を実行させる付記２に記載のジョブスケジュールプログラム。
【００９７】
（付記４）
前記記憶部は、前記複数のジョブの各々の実行開始から完了までの予測処理時間を示す処理時間情報を含むジョブ情報を記憶し、
前記コンピュータに、
前記抽出された複数のジョブの各々の前記後段のジョブの前記処理時間情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
付記２または付記３に記載のジョブスケジュールプログラム。
【００９８】
（付記５）
前記抽出された複数のジョブの各々の前記後段のジョブに関する情報として、前記後段のジョブ数を示す情報を求め、求めた前記後段のジョブ数を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
付記２〜付記４の何れか１項に記載のジョブスケジュールプログラム。
【００９９】
（付記６）
前記記憶部は、前記複数のジョブの各々の入力データ及び出力データの少なくとも一方のデータの転送時間を示す転送時間情報を記憶し、
前記コンピュータに、
前記抽出された複数のジョブの各々のうち前記情報処理装置で実行されるジョブを前段のジョブとして、該前段のジョブの出力データの前記転送時間情報または該出力データを入力データとして処理を実行する後段のジョブの入力データの前記転送時間情報に基づいて、前記前段のジョブの処理を実行した後に前記後段のジョブの処理を実行するか、前記前段のジョブの処理を実行した後に前記前段のジョブの出力データを前記情報処理装置以外の情報処理装置へ転送して前記情報処理装置以外の情報処理装置で前記後段のジョブの処理を実行するかを判定する
付記２〜付記５の何れか１項に記載のジョブスケジュールプログラム。
【０１００】
（付記７）
前記記憶部は、前記複数のジョブの各々の優先度を示す情報を含むジョブ情報を記憶し、
前記コンピュータに、
前記記憶部に記憶された、前記抽出された複数のジョブの各々の前記優先度を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
付記２〜付記６の何れか１項に記載のジョブスケジュールプログラム。
【０１０１】
（付記８）
特定タイミングで実行開始可能なジョブが実行対象の情報処理装置の総数を超えていた場合に、前記優先度を示す情報に基づいて、前記情報処理装置で実行させるジョブをスケジュールする
付記７に記載のジョブスケジュールプログラム。
【０１０２】
（付記９）
前記候補の複数のジョブの実行が全てスケジュールされるまで、前記ジョブの抽出と、前記情報処理装置の特定と、前記情報処理装置で実行させるジョブをスケジュールすることと、を繰り返す
付記３〜付記８の何れか１項に記載のジョブスケジュールプログラム。
【０１０３】
（付記１０）
前記複数の情報処理装置の各々の処理の実行状況を特定する情報は、前記複数の情報処理装置の各々の動作開始時刻を含む動作状況を含み、前記ジョブ情報は、前記入力データ及び出力データの作成時刻を含む作成状況と、処理の開示時刻を含む処理状況とを示す情報を含み、
前記動作状況に基づいて、前記候補の複数のジョブを実行させる前記情報処理装置を特定する
付記３〜付記９の何れか１項に記載のジョブスケジュールプログラム。
【０１０４】
（付記１１）
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするコンピュータが、
記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールする
ことを含むジョブスケジュール方法。
【０１０５】
（付記１２）
前記記憶部は、ジョブの各々の入力データと出力データとを示す情報を含むジョブ情報を記憶し、
前記コンピュータが、
前記記憶部に記憶された前記ジョブ情報に基づいて、特定タイミングにおいて入力データが前記情報処理装置に保持されるジョブを前記スケジュールされる候補の複数のジョブとして抽出する
ことを含む付記１１記載のジョブスケジュール方法。
【０１０６】
（付記１３）
前記記憶部は、複数の情報処理装置の各々の処理の実行状況を特定する情報を記憶し、
前記コンピュータが、
前記記憶部に記憶された、複数の情報処理装置の各々の処理の実行状況を特定する情報に基づき、前記特定タイミングにおいてジョブの処理の実行が可能な情報処理装置を特定し、特定した該ジョブの処理の実行が可能な情報処理装置を、前記候補の複数のジョブを実行させる前記情報処理装置として特定する、
ことを含む付記１２に記載のジョブスケジュール方法。
【０１０７】
（付記１４）
前記記憶部は、前記複数のジョブの各々の実行開始から完了までの予測処理時間を示す処理時間情報を含むジョブ情報を記憶し、
前記コンピュータが、
前記抽出された複数のジョブの各々の前記後段のジョブの前記処理時間情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
ことを含む付記１２または付記１３に記載のジョブスケジュール方法。
【０１０８】
（付記１５）
前記抽出された複数のジョブの各々の前記後段のジョブに関する情報として、前記後段のジョブ数を示す情報を求め、求めた前記後段のジョブ数を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
ことを含む付記１２〜付記１４の何れか１項に記載のジョブスケジュール方法。
【０１０９】
（付記１６）
前記ジョブ情報は、前記入力データ及び前記出力データの少なくとも一方のデータの転送時間を示す転送時間情報を含み、
前記抽出した前記ジョブのうち、前記情報処理装置で実行された前段のジョブの出力データを入力データとして処理を実行するジョブを、前記前段のジョブの処理を実行した前記情報処理装置で実行するか、前記前段のジョブを実行した前記情報処理装置以外の情報処理装置で実行するかについて、前記前段のジョブの出力データの前記転送時間情報に基づき判定し、判定結果に基づいて、特定した前記情報処理装置内の情報処理装置を規定する
ことを含む付記９〜付記１１の何れか１項に記載のジョブスケジュール方法。
【０１１０】
（付記１７）
前記記憶部は、前記複数のジョブの各々の優先度を示す情報を含むジョブ情報を記憶し、
前記コンピュータが、
前記記憶部に記憶された前記優先度を示す情報を含むジョブ情報に基づいて、特定タイミングにおいて入力データが前記情報処理装置に保持されるジョブを前記スケジュールされる候補の複数のジョブとして抽出する
前記記憶部に記憶された、前記抽出された複数のジョブの各々の前記優先度を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
ことを含む付記１２〜付記１６の何れか１項に記載のジョブスケジュール方法。
【０１１１】
（付記１８）
特定タイミングで実行開始可能なジョブが実行対象の情報処理装置の総数を超えていた場合に、前記優先度を示す情報に基づいて、前記情報処理装置で実行させるジョブをスケジュールする
ことを含む付記１７に記載のジョブスケジュール方法。
【０１１２】
（付記１９）
前記候補の複数のジョブの実行が全てスケジュールされるまで、前記ジョブの抽出と、前記情報処理装置の特定と、前記情報処理装置で実行させるジョブをスケジュールすることと、を繰り返す
ことを含む付記１３〜付記１９の何れか１項に記載のジョブスケジュール方法。
【０１１３】
（付記２０）
前記複数の情報処理装置の各々の処理の実行状況を特定する情報は、前記複数の情報処理装置の各々の動作開始時刻を含む動作状況を含み、前記ジョブ情報は、前記入力データ及び出力データの作成時刻を含む作成状況と、処理の開示時刻を含む処理状況とを示す情報を含み、
前記動作状況に基づいて、前記候補の複数のジョブを実行させる前記情報処理装置を特定する
付記１３〜付記１９の何れか１項に記載のジョブスケジュール方法。
【０１１４】
（付記２１）
情報処理装置に実行させるジョブとしてスケジュールされる候補の複数のジョブの実行をスケジューリングするために、記憶部に記憶された、前記複数のジョブの各々の入力データと出力データとを示す情報を含むジョブ情報に基づき特定される、前記複数のジョブの各々の出力データに基づき処理を実行する後段のジョブに関する情報に基づいて、前記後段のジョブの処理量が大きいジョブを、前記情報処理装置に実行させるジョブとして優先してスケジュールするスケジュール部
を備えたジョブスケジュール装置。
【０１１５】
（付記２２）
前記記憶部は、ジョブの各々の入力データと出力データとを示す情報を含むジョブ情報を記憶し、
前記記憶部に記憶された前記ジョブ情報に基づいて、特定タイミングにおいて入力データが前記情報処理装置に保持されるジョブを前記スケジュールされる候補の複数のジョブとして抽出する抽出部
を備えた付記２１に記載のジョブスケジュール装置。
【０１１６】
（付記２３）
前記記憶部は、複数の情報処理装置の各々の処理の実行状況を特定する情報を記憶し、
前記記憶部に記憶された、複数の情報処理装置の各々の処理の実行状況を特定する情報に基づき、前記特定タイミングにおいてジョブの処理の実行が可能な情報処理装置を特定し、特定した該ジョブの処理の実行が可能な情報処理装置を、前記候補の複数のジョブを実行させる前記情報処理装置として特定する特定部
を備えた付記２２に記載のジョブスケジュール装置。
【０１１７】
（付記２４）
前記記憶部は、前記複数のジョブの各々の実行開始から完了までの予測処理時間を示す処理時間情報を含むジョブ情報を記憶し、
前記スケジュール部は、前記抽出された複数のジョブの各々の前記後段のジョブの前記処理時間情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする決定部
を含む付記２２または付記２３に記載のジョブスケジュール装置。
【０１１８】
（付記２５）
前記決定部は、前記抽出された複数のジョブの各々の前記後段のジョブに関する情報として、前記後段のジョブ数を示す情報を求め、求めた前記後段のジョブ数を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
付記２２〜付記２４の何れか１項に記載のジョブスケジュール装置。
【０１１９】
（付記２６）
前記記憶部は、前記複数のジョブの各々の入力データ及び出力データの少なくとも一方のデータの転送時間を示す転送時間情報を記憶し、
前記スケジュール部は、前記抽出された複数のジョブの各々のうち前記情報処理装置で実行されるジョブを前段のジョブとして、該前段のジョブの出力データの前記転送時間情報または該出力データを入力データとして処理を実行する後段のジョブの入力データの前記転送時間情報に基づいて、前記前段のジョブの処理を実行した後に前記後段のジョブの処理を実行するか、前記前段のジョブの処理を実行した後に前記前段のジョブの出力データを前記情報処理装置以外の情報処理装置へ転送して前記情報処理装置以外の情報処理装置で前記後段のジョブの処理を実行するかを判定する
付記２２〜付記２５の何れか１項に記載のジョブスケジュール装置。
【０１２０】
（付記２７）
前記記憶部は、前記複数のジョブの各々の優先度を示す情報を含むジョブ情報を記憶し、
前記スケジュール部は、前記記憶部に記憶された、前記抽出された複数のジョブの各々の前記優先度を示す情報に基づいて、前記情報処理装置に実行させるジョブをスケジュールする
付記２２〜付記２６の何れか１項に記載のジョブスケジュール装置。
【０１２１】
（付記２８）
前記スケジュール部は、特定タイミングで実行開始可能なジョブが実行対象の情報処理装置の総数を超えていた場合に、前記優先度を示す情報に基づいて、前記情報処理装置で実行させるジョブをスケジュールする
付記２７に記載のジョブスケジュール装置。
【０１２２】
（付記２９）
前記候補の複数のジョブの実行が全てスケジュールされるまで、前記ジョブの抽出と、前記情報処理装置の特定と、前記情報処理装置で実行させるジョブをスケジュールすることと、を繰り返す
付記２３〜付記２８の何れか１項に記載のジョブスケジュール装置。
【０１２３】
（付記３０）
前記複数の情報処理装置の各々の処理の実行状況を特定する情報は、前記複数の情報処理装置の各々の動作開始時刻を含む動作状況を含み、前記ジョブ情報は、前記入力データ及び出力データの作成時刻を含む作成状況と、処理の開示時刻を含む処理状況とを示す情報を含み、
前記特定部は、前記動作状況に基づいて、前記候補の複数のジョブを実行させる前記情報処理装置を特定する
付記２３〜付記２９の何れか１項に記載のジョブスケジュール装置。
【符号の説明】
【０１２４】
１０    ジョブスケジュール装置
１２    ＣＰＵ
１４    メモリ
１６    ジョブスケジュールプログラム
１７    スケジュール部
１８    特定部
２０    抽出部
２２    決定部
２４    記憶部
２６    情報処理装置
３０    コンピュータ
３２    ＣＰＵ
３９    記録媒体
４２    メモリ
４４    格納部
４８    ジョブ管理プログラム
５０    定義登録プロセス
５２    スケジュール作成プロセス
５４    特定ルーチン
５６    抽出ルーチン
５８    決定ルーチン
６４    ジョブ管理表
６６    データ管理表
６８    計算機利用マップ
７０    計算機空き枠表
８０    計算機
【図１】
2015191282.tif 000003
【図２】
2015191282.tif 000004
【図３】
2015191282.tif 000005
【図４】
2015191282.tif 000006
【図５】
2015191282.tif 000007
【図６】
2015191282.tif 000008
【図７】
2015191282.tif 000009
【図８】
2015191282.tif 000010
【図９】
2015191282.tif 000011
【図１０】
2015191282.tif 000012
【図１１】
2015191282.tif 000013
【図１２】
2015191282.tif 000014
【図１３】
2015191282.tif 000015
【図１４】
2015191282.tif 000016
【図１５】
2015191282.tif 000017
【図１６】
2015191282.tif 000018
【図１７】
2015191282.tif 000019
【図１８】
2015191282.tif 000020
【図１９】
2015191282.tif 000021
【図２０】
2015191282.tif 000022
【図２１】
2015191282.tif 000023
【図２２】
2015191282.tif 000024
【図２３】
2015191282.tif 000025
【図２４】
2015191282.tif 000026
【図２５】
2015191282.tif 000027
【図２６】
2015191282.tif 000028
【図２７】
2015191282.tif 000029
【図２８】
2015191282.tif 000030