(57)【要約】【課題】ジョブの実行効率を高めることができないこと。【解決手段】本発明のジョブ管理装置１００は、ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部１２１と、実行経路情報に従って当該実行経路情報における一連のジョブが１つのジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部１２２と、実行スケジュールに従って実行経路情報における一連のジョブが実行されるようジョブ実行サーバを制御する実行制御部１２３と、を備える。【選択図】図１５
2020177599.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成し、
前記実行経路情報に従って当該実行経路情報に含まれる一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成し、
前記実行スケジュールに従って、前記実行経路情報に基づく一連のジョブが実行されるよう前記ジョブ実行サーバを制御する、
ジョブ管理方法。
【請求項２】
請求項１に記載のジョブ管理方法であって、
異なるジョブのうち、一方のジョブの出力データと他方のジョブの入力データとが同一である前記一方のジョブと前記他方のジョブとが連続して実行される順序となるよう前記実行経路情報を生成する、
ジョブ管理方法。
【請求項３】
請求項２に記載のジョブ管理方法であって、
予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最後のジョブに続いて、当該最後のジョブの出力データと同一のデータが入力データである他のジョブを追加して、新たな前記実行経路情報を生成する、
ジョブ管理方法。
【請求項４】
請求項２又は３に記載のジョブ管理方法であって、
予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最初のジョブの前に、当該最初のジョブの入力データと同一のデータが出力データとなる他のジョブを連結して、新たな前記実行経路情報を生成する、
ジョブ管理方法。
【請求項５】
請求項１乃至４のいずれかに記載のジョブ管理方法であって、
生成した前記実行経路情報における一連の全てのジョブを実行したときの所要時間を予測し、
前記所要時間に基づいて、前記実行経路情報を複数の前記ジョブ実行サーバのいずれかで実行されるよう振り分けて前記実行スケジュールを生成する、
ジョブ管理方法。
【請求項６】
請求項５に記載のジョブ管理方法であって、
前記ジョブ実行サーバに振り分けられていない前記実行経路情報のうち、前記所要時間が最も長い当該実行経路情報を、既に前記ジョブ実行サーバに振り分けられている前記実行経路情報における前記所要時間の合計が最も短い当該ジョブ実行サーバに振り分ける、
ジョブ管理方法。
【請求項７】
請求項１乃至６のいずれかに記載のジョブ管理方法であって、
前記実行経路情報に基づいて、当該実行経路情報における一連の全てのジョブの実行を制御する制御情報をまとめて前記ジョブ実行サーバに送信すると共に、当該実行経路情報における一連のジョブの入力データのうち実行順序が最初のジョブへの入力データのみを前記ジョブ実行サーバに送信する、
ジョブ管理方法。
【請求項８】
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えたジョブ管理装置。
【請求項９】
ジョブを実行するジョブ実行サーバと、当該ジョブ実行サーバによるジョブの実行を管理するジョブ管理装置と、を備えたジョブ管理システムであって、
前記ジョブ管理装置は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えた、
ジョブ管理システム。
【請求項１０】
情報処理装置に、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ管理方法、ジョブ管理装置、ジョブ管理システム、プログラムに関する。
【背景技術】
【０００２】
予定された時刻までにバッチ処理によるジョブを完了させるため、ジョブの実行効率を高めたいという要望がある。例えば、一日の業務開始前までに前日分の処理を完了させる夜間のバッチ処理は、完了できないと会社のビジネスに大きな影響を与えるからである。一例として、受注や売上などを管理する基幹系システムにおけるバッチ処理業務が挙げられる。
【０００３】
ここで、バッチ処理に含まれるジョブを実行する上で、ジョブ管理サーバとジョブ実行サーバとの間でジョブの制御情報を送受信することやジョブの入力データ及び出力データを送受信することは、ジョブの実行とは直接関係のないオーバーヘッドとして考えることができる。このため、ジョブ管理サーバとジョブ実行サーバとの通信回数や通信データサイズを削減することで、オーバーヘッドの削減に繋がり、ジョブの実行効率を高めることが期待できる。
【０００４】
ここで、特許文献１では、ジョブ管理サーバとジョブ実行サーバとのデータ送受信を短縮させることが行われている。具体的には、１つのデータを複数の部分データに細分化し、これら部分データをジョブ実行サーバ間においてバケツリレー方式で転送している。これにより、ジョブ管理サーバからジョブ実行サーバへのデータ転送量を抑制し、高速なデータ転送を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１３６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１の技術では、必ずしも効率的なデータ通信とはならない場合が生じうる。つまり、各ジョブ実行サーバで実行されるジョブのスケジュールが不適切な条件下においては、ジョブ管理サーバとジョブ実行サーバとの間で非効率な通信が発生する可能性がある。例えば、ジョブ管理サーバとジョブ実行サーバとの間のデータ送受信が頻繁に発生するようなスケジューリングとなってしまった場合には、ジョブの実行効率を高めることができない。
【０００７】
このため、本発明の目的は、上述した課題である、ジョブの実行効率を高めることができないことを解決することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態であるジョブ管理方法は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成し、
前記実行経路情報に従って当該実行経路情報に含まれる一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成し、
前記実行スケジュールに従って、前記実行経路情報に基づく一連のジョブが実行されるよう前記ジョブ実行サーバを制御する、
という構成をとる。
【０００９】
また、本発明の一形態であるジョブ管理装置は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えた、
という構成をとる。
【００１０】
また、本発明の一形態であるジョブ管理システムは、
ジョブを実行するジョブ実行サーバと、当該ジョブ実行サーバによるジョブの実行を管理するジョブ管理装置と、を備えたジョブ管理システムであって、
前記ジョブ管理装置は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えた、
という構成をとる。
【００１１】
また、本発明の一形態であるプログラムは、
情報処理装置に、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を実現させる、
という構成をとる。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、ジョブの実行効率を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態１におけるジョブ管理システムの構成を示すブロック図である。
【図２】図１に開示したジョブ管理サーバに記憶される情報の一例を示す図である。
【図３】図１に開示したジョブ管理サーバに記憶される情報の一例を示す図である。
【図４】図１に開示したジョブ管理サーバによる処理の様子を示す図である。
【図５】図１に開示したジョブ管理サーバによる処理の様子を示す図である。
【図６】図１に開示したジョブ管理サーバによる処理の様子を示す図である。
【図７】図１に開示したジョブ管理システムによる処理の様子を示す図である。
【図８】図１に開示したジョブ管理サーバの動作を示すフローチャートである。
【図９】本発明の実施形態２におけるジョブ管理サーバに記憶される情報の一例を示す図である。
【図１０】本発明の実施形態２におけるジョブ管理サーバに記憶される情報の一例を示す図である。
【図１１】本発明の実施形態２におけるジョブ管理サーバによる処理の様子を示す図である。
【図１２】本発明の実施形態２におけるジョブ管理サーバによる処理の様子を示す図である。
【図１３】本発明の実施形態２におけるジョブ管理サーバによる処理の様子を示す図である。
【図１４】本発明の実施形態３におけるジョブ管理装置のハードウェア構成を示すブロック図である。
【図１５】本発明の実施形態３におけるジョブ管理装置の構成を示すブロック図である。
【図１６】本発明の実施形態３におけるジョブ管理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図８を参照して説明する。図１乃至図３は、ジョブ管理システムの構成を説明するための図であり、図４乃至図８は、ジョブ管理システムの処理動作を説明するための図である。
【００１５】
［構成］
本発明におけるジョブ管理システムは、例えば、受注や売上げなどの管理処理を行う基幹系システムにおけるバッチ処理に含まれる一連のジョブの実行を管理するためのものである。そして、ジョブ管理システムは、図１に示すように、ジョブを実行するジョブ実行サーバ２と、当該ジョブ実行サーバ２によるジョブの実行を管理するジョブ管理サーバ１（ジョブ管理装置）と、を備えている。なお、図１では、ジョブ実行サーバ２は２台のみ図示されているが、ジョブ実行サーバ２の台数は２台であることに限定されず、それ以上でもよく、１台でもよい。
【００１６】
上記ジョブ管理サーバ１は、演算装置と記憶装置とを備えた１台又は複数台の情報処理装置にて構成される。そして、ジョブ管理サーバ１は、図１に示すように、演算装置がプログラムを実行することで構築された、スケジュール決定部１１、優先度解析部１２、実行経路解析部１３、依存関係解析部１４、実行制御部１５を備える。また、ジョブ管理サーバ１は、記憶装置に形成された、スケジュール管理データベース２１、ジョブ実行履歴データベース２２、ジョブ定義データベース２３、ジョブ依存関係データベース２４、を備える。以下、各構成について詳述する。
【００１７】
上記ジョブ定義データベース２３は、ジョブや、実行順序が設定された一連の複数のジョブからなるジョブネットワーク、の定義情報を管理するデータベースである。具体的に、ジョブ管理データベース２３は、ユーザから作成されたり更新されたジョブやジョブネットワークの定義情報を記憶しており、例えば、ジョブの入力データや出力データ、ジョブが属するジョブネットワーク名、ジョブネットワークに含まれるジョブの実行手順、などの情報を記憶している。
【００１８】
上記依存関係解析部１４は、上述したジョブ定義データベース２３に記憶されているジョブやジョブネットワークの定義情報を解析して、ジョブ同士の依存関係を表す情報を抽出し、ジョブ依存関係データベース２４を生成する。具体的に、依存関係解析部１４が生成するジョブ依存関係データベース２４は、図２に示すように、ジョブ毎に、ジョブが属するジョブネットワークを識別するための「ジョブネットワーク名」、ジョブを識別するための「ジョブ名」、ジョブに入力されるデータを表す「入力データ」、ジョブから出力される「出力データ」の情報を記憶している。なお、ジョブの「入力データ」や「出力データ」は、図２に示すように、ファイル名を示す場合もあればデータベース名などリソースを一意に特定する識別子を示す場合もある。
【００１９】
ここで、上述した「ジョブネットワーク」とは、予め実行手順が設定されている複数の一連のジョブを特定した実行経路を表すものである。例えば、図２に示す「ジョブネットワーク名」が「ジョブネットワークＡ」のジョブネットワークは、「ジョブ名」が「ジョブＡ１」、「ジョブＡ２」、「ジョブＡ３」の３つのジョブからなり、図４に示すようにジョブ名の数字が小さい順に実行されるよう実行手順が設定されている。同様に、図４に示すように、「ジョブネットワークＢ」や「ジョブネットワークＣ」も予め設定されていることとする。
【００２０】
上記実行経路解析部１３（実行経路生成部）は、ジョブ依存関係データベース２４に記憶されているジョブの依存関係、特に、各ジョブの入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する。具体的に、実行経路解析部１３は、先行するジョブの出力データが、後続のジョブの入力データとなるようジョブ同士を繋いで、一連の複数のジョブからなる実行経路情報を生成する。一例として、図４の右側に示す各実行経路を生成する場合を説明する。まず、「実行経路１」は、「ジョブネットワークＡ」に設定されている一連のジョブ「ジョブＡ１，Ａ２，Ａ３」の最後の「ジョブＡ３」に続いて、さらに、他のジョブである「ジョブＣ１」を追加して生成したものである。これは、図２のジョブ依存関係データベース２４を参照すると、「ジョブネットワークＡ」における実行手順が最後のジョブである「ジョブＡ３」の出力データである「Ａ３．ｈｔｍｌ」と同一のデータが、「ジョブＣ１」の入力データとなっていることによる。このように、一方のジョブ（ジョブＡ３）の出力データ（Ａ３．ｈｔｍｌ）と、他方のジョブ（ジョブＣ１）の入力データ（Ａ３．ｈｔｍｌ）と、が同一である場合に、これらのジョブが連続して実行される順序となるよう実行経路情報を生成することで、ジョブ管理サーバ１からジョブ実行サーバ２への新たな入力データの入力を省略することができる。
【００２１】
また、一例として、図４に示す「実行経路２」は、「ジョブネットワークＢ」に設定されている一連のジョブ「ジョブＢ１，Ｂ２，Ｂ３」の途中の「ジョブＢ２」に続いて、さらに、他のジョブである「ジョブＣ２」を追加して生成したものである。これは、図２のジョブ依存関係データベース２４を参照すると、「ジョブネットワークＢ」における実行手順が２番目に位置するジョブ「ジョブＢ２」の出力データである「ｄｂ＿Ｂ−２」が、次のジョブ「ジョブＢ３」の入力データとはなっておらず、ジョブ「ジョブＣ１」の入力データとなっていることによる。これにより、「実行経路２」の一連のジョブ「ジョブＢ１，Ｂ２，Ｃ２」は、各ジョブ間で、出力データと入力データとが同一データとなり、各ジョブに対して新たな入力データの入力を省略することができる。なお、「ジョブＢ３」は、入力データや出力データが、他のジョブの出力データや入力データと同一ではないため、他のジョブと連結できず、単独で「実行経路３」として設定される。
【００２２】
上記優先度解析部１２（実行スケジュール生成部）は、過去のジョブ実行履歴データベース２２に基づいて、上述したように生成した実行経路情報の実行優先度を決定する。ここで、ジョブ実行履歴データベース２２には、図３に示すように、各ジョブの過去の実行履歴として、各ジョブが実行されたときの「開始日時」、「終了日時」、「経過時間」が記憶されている。このため、優先度解析部１２は、各ジョブの「経過時間」である過去の所要時間の実績を用いて、各「実行経路」における一連の全てのジョブを実行したときの所要時間を算出して予測する。具体的に、優先度解析部１２は、「実行経路」に含まれる各ジョブの所要時間をジョブ実行履歴データベース２２から採用し、その総和を算出する。そして、優先度解析部１２は、所要時間の総和が長い順に、「実行経路」の実行優先度が高くなるよう設定する。例えば、図５の例では、各実行経路の所要時間を算出し、所要時間が長い順に実行優先度を高く設定することで、実行経路１，２，３の順に実行優先度が設定されることとなる。
【００２３】
上記スケジュール決定部１１（実行スケジュール生成部）は、上述したように実行経路の所要時間に基づいて設定した実行優先度に従い、ジョブの実行スケジュールを決定する。具体的に、スケジュール決定部１１は、１つのジョブ実行サーバ２に対して、高優先度の実行経路を順番に割り当てていく。つまり、スケジュール決定部１１は、１つの実行経路による一連のジョブが、１つのジョブ実行サーバで実行されるよう振り分けて実行スケジュールを決定する。このとき、実行経路の数がジョブ実行サーバ２の数を上回っている場合には、ひとつのジョブ実行サーバ２に対して複数の実行経路を割り当てる必要がある。このため、スケジュール決定部１１は、割り当てられているジョブの所要時間の合計が最も少ないジョブ実行サーバ２に、実行優先度が最も高い実行経路を割り当てていくことで、ジョブの実行スケジュールを決定する。そして、スケジュール決定部１１は、決定した実行スケジュールをスケジュール管理データベース２１に記憶しておく。
【００２４】
ここで、図６の下図を例に挙げて、スケジュール決定部１１による実行スケジュールに決定手順を説明する。なお、ジョブ実行サーバ２は２台（＃１，＃２）であることとする。スケジュール決定部１１は、はじめに実行優先度が最も高い「実行経路１」を、割り当てられているジョブの所要時間の合計が最も短いジョブ実行サーバに割り当てる。このとき、２つのジョブ実行サーバ＃１，＃２には何もジョブが割り当てられていないため、どちらかのジョブ実行サーバ＃１，＃２に「実行経路１」を割り当てる。ここでは、ジョブ実行サーバ＃１に「実行経路１」を割り当てることとする。続いて、スケジュール決定部１１は、次に実行優先度が高い「実行経路２」を、割り当てられているジョブの所要時間の合計が最も短いジョブ実行サーバに割り当てる。このとき、ジョブ実行サーバ＃２の方が割り当てられているジョブの所要時間の合計が短いため、ジョブ実行サーバ＃２に「実行経路２」を割り当てる。最後に、スケジュール決定部１１は、次に実行優先度が高い「実行経路３」を、割り当てられているジョブの所要時間の合計が最も短いジョブ実行サーバに割り当てる。このとき、ジョブ実行サーバ＃２の方が割り当てられているジョブの所要時間の合計が短いため、ジョブ実行サーバ＃２に「実行経路３」を割り当てる。
【００２５】
上記実行制御部１５は、上述したようにスケジュール決定部１１にて決定され、スケジュール管理データベース２１に記憶されている実行スケジュールに従って、各ジョブ実行サーバ２に対して各実行経路における一連のジョブの実行を指示して、各ジョブの実行を制御する。このとき、実行制御部１５は、各実行経路の制御情報や入力データをまとめてジョブ実行サーバ２に送信することにより、通信に関わるオーバーヘッドを削減することができる。例えば、図７の右図は、「実行経路１」の実行をジョブ実行サーバ＃１に指示する場合を示しているが、この図に示すように、実行制御部１５は、「実行経路１」における一連の全てのジョブＡ１，Ａ２，Ａ３，Ｃ１の制御情報をまとめてジョブ実行サーバ＃１に送信する。また、実行制御部１５は、「実行経路１」における一連のジョブＡ１，Ａ２，Ａ３，Ｃ１の入力データのうち、実行順序が最初のジョブＡ１の入力データのみを、ジョブ実行サーバ＃１に送信する。なお、実行制御部１５は、制御情報と入力データをまとめて送信してもよく、別々に送信してもよい。これにより、「実行経路１」における一連のジョブＡ１，Ａ２，Ａ３，Ｃ１は、制御情報に従い、まず送信された入力データを用いてジョブＡ１が実行され、その後は、実行順序が直前のジョブからの出力データを用いてジョブＡ２，Ａ３，Ｃ１が順次実行されることとなる。
【００２６】
［動作］
次に、上述したジョブ管理システムの動作を、図８のフローチャートを参照して説明する。なお、図８は、ジョブ管理サーバ１の動作を示すフローチャートである。
【００２７】
まず、ユーザが、任意のタイミングでジョブの定義情報の作成および更新を行う（ステップＳ１）。一般的に、ジョブやジョブネットワークに対して、入力データや出力データの設定や変更、実行スケジュールの設定や変更などを行う。この際、ジョブ管理サーバ１は、ジョブ定義データベース２３やスケジュール管理データベース２１の更新を行う。ここでは、例えば、図２に示すジョブ依存関係データベース２４として抽出されるような各ジョブの定義情報や、図４の左図に示すようなジョブネットワークが記憶される。
【００２８】
続いて、ジョブ管理サーバ１は、一日のジョブスケジュールを確定させるために、ジョブの依存関係を解析する（ステップＳ２）。この時、ジョブ管理サーバ１は、ジョブ定義データベース２３を参照して、ジョブ依存関係データベース２４を更新する。ジョブ依存関係データベース２４は、例えば、図２に示すように、ジョブネットワーク名、ジョブ名、入力データ、出力データの情報を含む。
【００２９】
次に、ジョブ管理サーバ１は、ジョブの実行経路を解析する（ステップＳ３）。このとき、ジョブ管理サーバ１は、ジョブ依存関係データベース２４を走査して、先行するジョブの出力データが後続のジョブの入力データとなるようなジョブ同士を繋いだ実行経路を生成する。ここでは、図４の左側に示す予め設定された３つのジョブネットワークに対して、図４の右図に示すように３本の実行経路１，２，３が新たに設定されることとなる。
【００３０】
続いて、ジョブ管理サーバ１は、各実行経路に対して実行優先度を設定する（ステップＳ４）。このとき、ジョブ管理サーバ１は、図３に示すようなジョブ実行履歴データベース２２を参照して、実行経路毎に、当該実行経路に含まれる各ジョブの実行時間の所要時間の総和を算出し、かかる所要時間の総和が大きい実行経路から高優先度を設定する。ここでは、各実行経路の実行優先度は、図５に示すように、実行経路１＞実行経路２＞実行経路３と設定される。
【００３１】
続いて、ジョブ管理サーバ１は、ジョブの実行スケジュールを決定する（ステップＳ５）。このとき、ジョブ管理サーバ１は、各ジョブ実行サーバ２に対して、高優先度の実行経路から順番に割り当てていく。具体的に、ジョブ管理サーバ１は、既に割り当てられているジョブの所要時間の総和が最も少ないジョブ実行サーバ２に、優先度が高い実行経路を順次割り当てていく。例えば、ジョブ実行サーバが２台（＃１，＃２）である場合には、図６の下図に示すように、ジョブ実行サーバ＃１に「実行経路１」を、ジョブ実行サーバ＃２に「実行経路２」と「実行経路３」を割り当てる。
【００３２】
ここで、図６の上図に、予め設定されたジョブネットワークＡ，Ｂ，Ｃを２台のジョブ実行サーバで実行した場合の所要時間を示している。この場合、完了目標時刻の例である05:00:00までに全てのジョブネットワークを完了することができていない。一方で、本実施形態では、上述したように、各ジョブの入力データと出力データを考慮し、また、所要時間を予測することで、図６の下図に示すように、完了目標時刻の例である05:00:00までに全てのジョブを完了できるようスケジュールを組むことができる。
【００３３】
最後に、ジョブ管理サーバ１は、ジョブ実行サーバ２に対してジョブの実行を指示する（ステップＳ６）。このとき、ジョブ管理サーバ１は、図７の右図に示すように、各実行経路の制御情報をまとめて送信したり、最初のジョブの入力データのみを送信することにより、通信に関わるオーバーヘッドを削減することができる。具体的に、本実施形態では、図７の右図に示すように、ジョブ管理サーバ１は、「実行経路１」の一連の全てのジョブＡ１，Ａ２，Ａ３，Ｃ１の制御情報をまとめてジョブ実行サーバ＃１に送信している。また、ジョブ管理サーバ１は、「実行経路１」の一連の全てのジョブのうち、実行順序が最初のジョブＡ１の入力データのみを、ジョブ実行サーバ＃１に送信している。これにより、図７の左側に示す予め設定されたジョブネットワークの実行制御を行う場合とは異なり、ジョブ実行サーバ２がジョブ管理サーバ１と制御情報や入力データの送受信するための時間を短縮することができ、ジョブ実行サーバ＃１が効率的にジョブを処理することを可能としている。
【００３４】
以上のように、本実施形態におけるジョブ管理システムでは、ジョブ間の依存関係を解析して、依存関係のある一連のジョブは同じジョブ実行サーバで処理されるよう実行経路を生成し、所要時間に応じた実行優先度に従ってジョブスケジューリングを行っている。これにより、ジョブ管理サーバ１とジョブ実行サーバ２との通信回数と通信データサイズを削減することができ、ジョブ実行に関わるオーバーヘッドを削減してジョブの実行効率を高めることができる。その結果、所定時間内に全てのジョブを完了させることもできるようになる。
【００３５】
＜実施形態２＞
次に、本発明の第２の実施形態を、図９乃至図１３を参照して説明する。図９乃至図１０は、ジョブ管理システムの構成を説明するための図であり、図１１乃至図１３は、ジョブ管理システムの処理動作を説明するための図である。
【００３６】
本実施形態におけるジョブ管理システムは、上述した実施形態１とほぼ同様の構成を有する。本実施形態では、予め設定されたジョブの定義情報や、生成する実行経路情報が、実施形態１とは異なる場合を説明する。特に、本実施形態では、ジョブの依存関係が１対Ｎとなる場合、すなわち、ひとつの先行ジョブの出力データが、複数の後続ジョブの入力データとなる場合について説明する。
【００３７】
まず、本実施形態おいて、図９に示すようなジョブ依存関係データベース、図１０に示すようなジョブ実行履歴データベース、さらに、図１１の左図に示すジョブネットワークＡ，Ｂ，Ｃ，Ｄが、それぞれ予め設定されていることとする。このとき、ジョブ管理サーバ１の実行経路解析部１３は、ジョブ間の依存関係を解析すると、「ジョブＡ１」の出力データが、「ジョブＡ２」と「ジョブＣ１」の入力データと同一であることがわかる。このため、実行経路解析部１３は、図１１の右図に示すように、「ジョブＡ１」に「ジョブＡ２」を連結した場合の「実行経路１」と、「ジョブＡ１」に「ジョブＣ１」を連結した場合の「実行経路２」をそれぞれ生成する。このとき、「実行経路２」は、予め設定されたジョブネットワークＣの最初の「ジョブＣ１」の前に、「ジョブＡ１」を連結したものとなり、一連のジョブＡ１，Ｃ１，Ｃ２にて構成されるよう生成される。なお、「実行経路３」と「実行経路４」は、ジョブネットワークＣ，Ｄと同一となる。
【００３８】
そして、本実施形態における優先度解析部１２は、図１０に示すジョブ実行履歴データベースを用いて、上述したように生成した各実行経路１，２，３，４の所要時間を算出し、実行優先度を設定する。すると、図１２に示すように、各実行経路１，２，３，４の所要時間が算出され、実行経路２＞実行経路１＞実行経路４＞実行経路３、と実行優先度が設定される。このとき、「ジョブＡ１」は「実行経路１」と「実行経路２」のそれぞれに含まれているが、「ジョブＡ１」は、より実行優先度の高い「実行経路２」で実行するべきと判断する。つまり、「実行経路２」は「ジョブＡ１」を含むものとなり、「実行経路１」は「ジョブＡ１」を含まないものとなる。なお、図１２の例では、「ジョブＡ１」を除いた所要時間も括弧書きで示すように算出している。
【００３９】
そして、本実施形態におけるスケジュール決定部１１は、実施形態１と同様に、上述したように生成した各実行経路を、各ジョブ実行サーバに割り当てる。本実施形態では、図１３の下図に示すように、ジョブ実行サーバ＃１に実行経路２を割り当て、ジョブ実行サーバ＃２に実行経路１，４，３の順に割り当てることとなる。ここで、図１３の上図に示すように、予め設定されたジョブネットワークＡ，Ｂ，Ｃ，Ｄを２台のジョブ実行サーバで実行した場合には、完了目標時刻の例である05:00:00までに全てのジョブネットワークを完了することができていない。一方で、本実施形態では、上述したように、各ジョブの入力データと出力データを考慮し、また、所要時間を予測することで、図１３の下図に示すように、完了目標時刻の例である05:00:00までに全てのジョブを完了できるようスケジュールを組むことができる。
【００４０】
＜実施形態３＞
次に、本発明の第３の実施形態を、図１４乃至図１６を参照して説明する。図１４乃至図１５は、実施形態３におけるジョブ管理装置の構成を示すブロック図であり、図１６は、ジョブ管理装置の動作を示すフローチャートである。なお、本実施形態では、実施形態１及び実施形態２で説明したジョブ管理サーバ及びジョブ管理サーバによる処理方法の構成の概略を示している。
【００４１】
まず、図１４を参照して、本実施形態におけるジョブ管理装置１００のハードウェア構成を説明する。ジョブ管理装置１００は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１（演算装置）
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２（記憶装置）
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３（記憶装置）
・ＲＡＭ１０３にロードされるプログラム群１０４
・プログラム群１０４を格納する記憶装置１０５
・情報処理装置外部の記憶媒体１１０の読み書きを行うドライブ装置１０６
・情報処理装置外部の通信ネットワーク１１１と接続する通信インタフェース１０７
・データの入出力を行う入出力インタフェース１０８
・各構成要素を接続するバス１０９
【００４２】
そして、ジョブ管理装置１００は、プログラム群１０４をＣＰＵ１０１が取得して当該ＣＰＵ１０１が実行することで、図１５に示す実行経路生成部１２１と実行スケジュール生成部１２２と実行制御部１２３とを構築して装備することができる。なお、プログラム群１０４は、例えば、予め記憶装置１０５やＲＯＭ１０２に格納されており、必要に応じてＣＰＵ１０１がＲＡＭ１０３にロードして実行する。また、プログラム群１０４は、通信ネットワーク１１１を介してＣＰＵ１０１に供給されてもよいし、予め記憶媒体１１０に格納されており、ドライブ装置１０６が該プログラムを読み出してＣＰＵ１０１に供給してもよい。但し、上述した実行経路生成部１２１と実行スケジュール生成部１２２と実行制御部１２３とは、電子回路で構築されるものであってもよい。
【００４３】
なお、図１４は、ジョブ管理装置１００である情報処理装置のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に限定されない。例えば、情報処理装置は、ドライブ装置１０６を有さないなど、上述した構成の一部から構成されてもよい。
【００４４】
そして、ジョブ管理装置１００は、上述したようにプログラムによって構築された実行経路生成部１２１と実行スケジュール生成部１２２と実行制御部１２３との機能により、図１６のフローチャートに示すジョブ管理方法を実行する。
【００４５】
図１６に示すように、ジョブ管理装置１００は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成し（ステップＳ１０１）、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成し（ステップＳ１０２）、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する（ステップＳ１０３）。
【００４６】
本発明は、以上のように構成されることにより、ジョブの入力データと出力データとに基づいて、依存関係のある一連のジョブは同じジョブ実行サーバで処理されるよう実行経路を生成しているため、ジョブの実行効率を高めることができる。
【００４７】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるジョブ管理方法、ジョブ管理装置、ジョブ管理システム、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００４８】
（付記１）
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成し、
前記実行経路情報に従って当該実行経路情報に含まれる一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成し、
前記実行スケジュールに従って、前記実行経路情報に基づく一連のジョブが実行されるよう前記ジョブ実行サーバを制御する、
ジョブ管理方法。
【００４９】
（付記２）
付記１に記載のジョブ管理方法であって、
異なるジョブのうち、一方のジョブの出力データと他方のジョブの入力データとが同一である前記一方のジョブと前記他方のジョブとが連続して実行される順序となるよう前記実行経路情報を生成する、
ジョブ管理方法。
【００５０】
（付記３）
付記２に記載のジョブ管理方法であって、
予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最後のジョブに続いて、当該最後のジョブの出力データと同一のデータが入力データである他のジョブを追加して、新たな前記実行経路情報を生成する、
ジョブ管理方法。
【００５１】
（付記４）
付記２又は３に記載のジョブ管理方法であって、
予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最初のジョブの前に、当該最初のジョブの入力データと同一のデータが出力データとなる他のジョブを連結して、新たな前記実行経路情報を生成する、
ジョブ管理方法。
【００５２】
（付記５）
付記１乃至４のいずれかに記載のジョブ管理方法であって、
生成した前記実行経路情報における一連の全てのジョブを実行したときの所要時間を予測し、
前記所要時間に基づいて、前記実行経路情報を複数の前記ジョブ実行サーバのいずれかで実行されるよう振り分けて前記実行スケジュールを生成する、
ジョブ管理方法。
【００５３】
（付記６）
付記５に記載のジョブ管理方法であって、
前記ジョブ実行サーバに振り分けられていない前記実行経路情報のうち、前記所要時間が最も長い当該実行経路情報を、既に前記ジョブ実行サーバに振り分けられている前記実行経路情報における前記所要時間の合計が最も短い当該ジョブ実行サーバに振り分ける、
ジョブ管理方法。
【００５４】
（付記７）
付記１乃至６のいずれかに記載のジョブ管理方法であって、
前記実行経路情報に基づいて、当該実行経路情報における一連の全てのジョブの実行を制御する制御情報をまとめて前記ジョブ実行サーバに送信すると共に、当該実行経路情報における一連のジョブの入力データのうち実行順序が最初のジョブへの入力データのみを前記ジョブ実行サーバに送信する、
ジョブ管理方法。
【００５５】
（付記８）
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えたジョブ管理装置。
【００５６】
（付記８．１）
付記８に記載のジョブ管理装置であって、
前記実行経路生成部は、異なるジョブのうち、一方のジョブの出力データと他方のジョブの入力データとが同一である前記一方のジョブと前記他方のジョブとが連続して実行される順序となるよう前記実行経路情報を生成する、
ジョブ管理装置。
【００５７】
（付記８．２）
付記８．１に記載のジョブ管理装置であって、
前記実行経路生成部は、予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最後のジョブに続いて、当該最後のジョブの出力データと同一のデータが入力データである他のジョブを追加して、新たな前記実行経路情報を生成する、
ジョブ管理装置。
【００５８】
（付記８．３）
付記８．１又は８．２に記載のジョブ管理装置であって、
前記実行経路生成部は、予め実行順序が設定された一連のジョブからなる前記実行経路情報における実行順序が最初のジョブの前に、当該最初のジョブの入力データと同一のデータが出力データとなる他のジョブを連結して、新たな前記実行経路情報を生成する、
ジョブ管理装置。
【００５９】
（付記８．４）
付記８乃至８．３のいずれかに記載のジョブ管理装置であって、
前記実行スケジュール生成部は、生成した前記実行経路情報における一連の全てのジョブを実行したときの所要時間を予測し、前記所要時間に基づいて、前記実行経路情報を複数の前記ジョブ実行サーバのいずれかで実行されるよう振り分けて前記実行スケジュールを生成する、
ジョブ管理装置。
【００６０】
（付記８．５）
付記８．４に記載のジョブ管理装置であって、
前記実行スケジュール生成部は、前記ジョブ実行サーバに振り分けられていない前記実行経路情報のうち、前記所要時間が最も長い当該実行経路情報を、既に前記ジョブ実行サーバに振り分けられている前記実行経路情報における前記所要時間の合計が最も短い当該ジョブ実行サーバに振り分ける、
ジョブ管理装置。
【００６１】
（付記８．６）
付記８乃至８．５のいずれかに記載のジョブ管理装置であって、
前記実行制御部は、前記実行経路情報に基づいて、当該実行経路情報における一連の全てのジョブの実行を制御する制御情報をまとめて前記ジョブ実行サーバに送信すると共に、当該実行経路情報における一連のジョブの入力データのうち実行順序が最初のジョブへの入力データのみを前記ジョブ実行サーバに送信する、
ジョブ管理装置。
【００６２】
（付記９）
ジョブを実行するジョブ実行サーバと、当該ジョブ実行サーバによるジョブの実行を管理するジョブ管理装置と、を備えたジョブ管理システムであって、
前記ジョブ管理装置は、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を備えた、
ジョブ管理システム。
【００６３】
（付記１０）
情報処理装置に、
ジョブ実行サーバで実行されるジョブ毎の予め設定された入力データと出力データとに基づいて、複数のジョブの一連の実行順序を設定した実行経路情報を生成する実行経路生成部と、
前記実行経路情報に従って当該実行経路情報における一連のジョブが１つの前記ジョブ実行サーバで実行されるよう実行スケジュールを生成する実行スケジュール生成部と、
前記実行スケジュールに従って、前記実行経路情報における一連のジョブが実行されるよう前記ジョブ実行サーバを制御する実行制御部と、
を実現させるためのプログラム。
【００６４】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６５】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６６】
１  ジョブ管理サーバ
２  ジョブ実行サーバ
１１  スケジュール決定部
１２  優先度解析部
１３  実行経路解析部
１４  依存関係解析部
１５  実行制御部
２１  スケジュール管理データベース
２２  ジョブ実行履歴データベース
２３  ジョブ定義データベース
２４  ジョブ依存関係データベース
１００  ジョブ管理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  プログラム群
１０５  記憶装置
１０６  ドライブ装置
１０７  通信インタフェース
１０８  入出力インタフェース
１０９  バス
１１０  記憶媒体
１１１  通信ネットワーク
１２１  実行経路生成部
１２２  実行スケジュール生成部
１２３  実行制御部
【図１】
2020177599.tif 000003
【図２】
2020177599.tif 000004
【図３】
2020177599.tif 000005
【図４】
2020177599.tif 000006
【図５】
2020177599.tif 000007
【図６】
2020177599.tif 000008
【図７】
2020177599.tif 000009
【図８】
2020177599.tif 000010
【図９】
2020177599.tif 000011
【図１０】
2020177599.tif 000012
【図１１】
2020177599.tif 000013
【図１２】
2020177599.tif 000014
【図１３】
2020177599.tif 000015
【図１４】
2020177599.tif 000016
【図１５】
2020177599.tif 000017
【図１６】
2020177599.tif 000018