(57)【特許請求の範囲】
【請求項１】
ジョブ定義に関するジョブ定義情報と、期間ごとのジョブの負荷に関する負荷情報とを少なくとも格納する記憶装置と、
前記期間ごとの負荷の上限に関する情報を受け取り、前記負荷の上限に収まるように前記期間ごとにジョブを割り当て、前記負荷情報を更新する負荷情報更新部と
を備えるジョブスケジュール変更システム。
【請求項２】
請求項１に記載のジョブスケジュール変更システムにおいて、
前記負荷情報をグラフで表示し、かつ、前記グラフ上で前記負荷の上限を設定できるインタフェースを表示する負荷情報表示部をさらに備えることを特徴とするジョブスケジュール変更システム。
【請求項３】
請求項１に記載のジョブスケジュール変更システムにおいて、
前記ジョブ定義情報は、ジョブの開始時間と、前記ジョブの開始時間の変更許容時間とを含み、
前記負荷情報更新部は、
前記ジョブの開始時間と前記変更許容時間とから、ジョブの追加期限を算出し、
他のジョブに比べて前記追加期限が早いジョブを優先的に前記期間に割り当てることを特徴とするジョブスケジュール変更システム。
【請求項４】
ジョブ定義に関するジョブ定義情報と、期間ごとのジョブの負荷に関する負荷情報とを少なくとも格納する記憶装置と、負荷情報更新部とを備える情報処理システムを用いたジョブスケジュール変更方法であって、
前記負荷情報更新部によって、前記期間ごとの負荷の上限に関する情報を受け取るステップと、
前記負荷情報更新部によって、前記負荷の上限に収まるように前記期間ごとにジョブを割り当て、前記負荷情報を更新するステップと、
を含むジョブスケジュール変更方法。
【請求項５】
請求項４に記載のジョブスケジュール変更方法において、
負荷情報表示部によって、前記負荷情報をグラフで表示するステップと、
前記負荷情報表示部によって、前記グラフ上で設定された前記負荷の上限の情報をインタフェースを介して受け取るステップと、
前記負荷情報表示部によって、前記負荷の上限の情報を前記負荷情報更新部に送信するステップと
をさらに含むことを特徴とするジョブスケジュール変更方法。
【請求項６】
請求項４に記載のジョブスケジュール変更方法において、
前記ジョブ定義情報は、ジョブの開始時間と、前記ジョブの開始時間の変更許容時間とを含み、
前記負荷情報を更新するステップは、
前記ジョブの開始時間と前記変更許容時間とから、ジョブの追加期限を算出することと、
他のジョブに比べて前記追加期限が早いジョブを優先的に前記期間に割り当てることと
を含むことを特徴とするジョブスケジュール変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスケジュール変更システム及びジョブスケジュール変更方法に関する。
【背景技術】
【０００２】
従来より、複数のジョブの実行を、事前にユーザが設定した負荷の上限に収まるようにスケジューリングする技術がある。例えば、特許文献１は、同時実行可能なジョブ数を示すジョブ多重度などをあらかじめ記憶させておき、ジョブの多重度を超えない範囲で実行優先度の高いジョブを選択する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１８６３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のジョブスケジュールシステムでは、ジョブの多重度など、ジョブのスケジュール変更に関する情報をあらかじめ登録しておく必要がある。そのため、システムのメンテナンスなどの状況に応じて、負荷の上限をユーザがリアルタイムに設定することができなかった。
【０００５】
そこで、本発明は、ユーザによってリアルタイムに設定された負荷の上限に応じて、ジョブのスケジュールを自動で決定する技術を提供する。
【課題を解決するための手段】
【０００６】
例えば、上記課題を解決するために、特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例をあげるならば、ジョブ定義に関するジョブ定義情報と、期間ごとのジョブの負荷に関する負荷情報とを少なくとも格納する記憶装置と、前記期間ごとの負荷の上限に関する情報を受け取り、前記負荷の上限に収まるように前記期間ごとにジョブを割り当て、前記負荷情報を更新する負荷情報更新部とを備えるジョブスケジュール変更システムが提供される。
【０００７】
また、他の例によれば、ジョブ定義に関するジョブ定義情報と、期間ごとのジョブの負荷に関する負荷情報とを少なくとも格納する記憶装置と、負荷情報更新部とを備える情報処理システムを用いたジョブスケジュール変更方法が提供される。当該ジョブスケジュール変更方法は、前記負荷情報更新部によって、前記期間ごとの負荷の上限に関する情報を受け取るステップと、前記負荷情報更新部によって、前記負荷の上限に収まるように前記期間ごとにジョブを割り当て、前記負荷情報を更新するステップとを含む。
【発明の効果】
【０００８】
本発明によれば、ユーザによってリアルタイムに設定された負荷の上限に応じて、ジョブのスケジュールを自動で決定することができる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係るシステム構成の例である。
【図２】本発明の実施例に係る端末の構成を示すブロック図の例である。
【図３】本発明の実施例に係るジョブ管理装置の構成を示すブロック図の例である。
【図４】本発明の実施例に係るジョブ定義テーブルの例である。
【図５】本発明の実施例に係る統計情報テーブルの例である。
【図６】本発明の実施例に係る予定変更テーブルの変更前の例である。
【図７】本発明の実施例に係る負荷情報テーブルの変更前の例である。
【図８】本発明の実施例に係る予定変更テーブルの変更後の例である。
【図９】本発明の実施例に係る負荷情報テーブルの変更後の例である。
【図１０】本発明の実施例に係る負荷情報（負荷状況を予測した表）の出力処理を示すフローチャートの例である。
【図１１】本発明の実施例に係るユーザ操作画面の例である。
【図１２】本発明の実施例に係る負荷波形表示部の表示例であり、図７の内容を表示した例である。
【図１３】本発明の実施例に係る負荷波形表示部の表示例であり、ジョブ上限数を設定した例である。
【図１４】本発明の実施例に係る負荷波形表示部の表示例であり、図９の内容を表示した例である。
【図１５】ジョブ上限数が設定された後に、負荷情報（負荷状況を予測した表）を出力する処理のフローチャートの例である。
【図１６】図１５の負荷情報テーブルの更新処理の内容を示すフローチャートの例である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施例について説明する。添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１１】
以下の実施例は、ジョブの実行順序（例えば、先行ジョブとその他のジョブとの関係）を維持したまま、負荷の上限に収まるように実行優先度の高いジョブから順にスケジュールに割り当てるための技術である。
【００１２】
図１は、本発明の実施例に係るシステム構成の例である。ジョブスケジュール変更システムは、端末１０１と、ジョブ管理装置１０２とを備える。端末１０１は、ユーザから負荷情報の表示及び／又は変更の操作を受け付け、ジョブ管理装置１０２へその負荷情報の表示及び／又は変更に関する要求を送る。ジョブ管理装置１０２は、端末１０１からの要求に応じて、負荷情報を計算して返信する。
【００１３】
ジョブ管理装置１０２は、ジョブのスケジュールを管理する装置である。一例として、ジョブ実行環境は、ジョブ管理装置１０２と、少なくとも１つのジョブ実行エージェント（図示省略）とから構成される。一例として、ジョブ実行エージェントは、ジョブ管理装置１０２とは別の装置に組み込まれてよい。ジョブ管理装置１０２は、スケジュールに従って、各ジョブ実行エージェントが実行するジョブを管理する。各ジョブ実行エージェントは、ジョブの実行が終了したら、ジョブの実行結果をジョブ管理装置１０２へ通知する。
【００１４】
ジョブ管理装置１０２は、ジョブの定義に関するジョブ定義データベース１０３と、ジョブの実行時間に関する統計情報データベース１０５と、ジョブの開始予定日時を基準とした各ジョブの変更時間の情報を含む予定変更データベース１０７と、一定の期間ごとのジョブの負荷に関する負荷情報データベース１０９とを備える。
【００１５】
ジョブ定義データベース１０３は、ジョブ定義テーブル１０４を備える。統計情報データベース１０５は、統計情報テーブル１０６を備える。予定変更データベース１０７は、予定変更テーブル１０８を備える。負荷情報データベース１０９は、負荷情報テーブル１１０を備える。
【００１６】
なお、本実施例で扱われる情報については、「テーブル」構造を用いて説明するが、必ずしもテーブルによるデータ構造で表現されていなくても良く、他のデータ構造で表現されていても良い。そのため、データ構造に依存しないことを示すために、以下では、テーブル形式で表現されたデータを単に「情報」と呼ぶことがある。
【００１７】
図２は、端末１０１の構成を示す。端末１０１は、CPU（Central Processing Unit）２０１と、入力装置２０２と、表示装置２０３と、通信装置２０４と、メモリ２０５と、記憶装置２０６とを備える。記憶装置２０６は、負荷情報表示部２０７のプログラムを格納している。メモリ２０５には、負荷情報表示部２０７のプログラムが展開される。CPU２０１は、メモリ２０５にロードされたプログラムを実行する。以後の説明では、図２の機能ブロックを主語として説明を行うが、CPU２０１（プロセッサ）を主語とした説明としてもよい。なお、CPU２０１によって実行されるプログラムは、リムーバブルメディア（CD-ROM、フラッシュメモリなど）又はネットワークを介して端末１０１に提供されてもよい。
【００１８】
負荷情報表示部２０７は、ジョブ管理装置１０２へ負荷情報を要求し、ジョブ管理装置１０２から返信された負荷情報を表示装置２０３に表示する。また、負荷情報表示部２０７は、入力装置２０２を用いて入力された負荷情報に関する変更情報をジョブ管理装置１０２へ送信し、ジョブ管理装置１０２から返信された負荷情報を表示装置２０３に表示する。
【００１９】
図３は、ジョブ管理装置１０２の構成を示す。ジョブ管理装置１０２は、CPU３０１と、入力装置３０２と、表示装置３０３と、通信装置３０４と、メモリ３０５と、記憶装置３０６とを備える。記憶装置３０６は、ジョブ定義参照部３０７のプログラムと、ジョブ実行管理部３０８のプログラムと、スケジュール変更部３０９のプログラムと、負荷情報更新部３１０のプログラムとを格納している。メモリ３０５には、記憶装置３０６に格納されている各種プログラムが展開される。CPU３０１は、メモリ３０５にロードされたプログラムを実行する。以後の説明では、図３の機能ブロックを主語として説明を行うが、CPU３０１（プロセッサ）を主語とした説明としてもよい。なお、CPU３０１によって実行されるプログラムは、リムーバブルメディア（CD-ROM、フラッシュメモリなど）又はネットワークを介してジョブ管理装置１０２に提供されてもよい。
【００２０】
ジョブ定義参照部３０７は、ジョブ定義データベース１０３を参照し、ジョブの定義を取得する。ジョブ実行管理部３０８は、ジョブの実行時間を計算して、実行時間の統計情報を統計情報データベース１０５に格納する。スケジュール変更部３０９は、ジョブのスケジュールの変更後の情報を予定変更データベース１０７に格納する。負荷情報更新部３１０は、端末１０１から要求を受けた負荷情報を計算し、負荷情報データベース１０９を更新する。
【００２１】
図４は、ジョブ定義テーブル１０４のデータ構造を示す。ジョブ定義テーブル１０４は、ジョブ名４０１と、開始予定日時４０２と、変更可能時間（分）４０３と、先行ジョブ名４０４とを構成項目として含む。変更可能時間（分）４０３は、ジョブの開始予定日時４０２の変更を許容する時間である。例えば、ある期間のジョブ数の上限を変更したときに、その期間内のジョブを後ろの期間に移動させなければならない場合を想定する。変更可能時間（分）４０３は、そのジョブをどの程度後ろの期間まで移動させることができるかを表す。例えば、図４の例では、Job 12は、ジョブの開始予定日時４０２から10分だけ後ろの時間に移動させることができる。実行優先度の高いジョブに関しては、変更可能時間（分）４０３に小さな時間が設定される。また、先行ジョブ名４０４は、そのジョブの前に実行されていなければならないジョブを表す。例えば、図４の例では、Job 12、Job 13の前には、Job 11が実行されていなければならない。
【００２２】
図５は、統計情報テーブル１０６のデータ構造を示す。統計情報テーブル１０６は、ジョブ名５０１と、ジョブの実行回数５０２と、平均実行時間（分）５０３とを構成項目として含む。ジョブ実行管理部３０８は、ジョブの実行結果をジョブ実行エージェントから受け取る。ジョブ実行管理部３０８は、受け取ったジョブの実行結果に対応するジョブ名５０１に関して、実行回数５０２及び平均実行時間（分）５０３を更新する。
【００２３】
図６は、負荷情報を変更する前の予定変更テーブル１０８のデータ構造を示す。予定変更テーブル１０８は、ジョブ名６０１と、開始予定日時変更時間（分）６０２とを構成項目として含む。開始予定日時変更時間（分）６０２は、負荷情報を変更したことにより開始予定日時がどの程度変更されたかを表す項目であり、例えば、ジョブ定義テーブル１０４の開始予定日時４０２を基準として計算された時間（分）である。
【００２４】
図７は、負荷情報を変更する前の負荷情報テーブル１１０のデータ構造を示す。負荷情報テーブル１１０は、一定の時間で区切った期間ごとに、実行するジョブ及び上限値の情報を含む。負荷情報テーブル１１０は、一定の時間で区切った期間７０１と、対応する期間のジョブ上限数７０２と、対応する期間のジョブ数７０３と、ジョブ名７０４とを構成項目として含む。実行を開始するジョブ数が増えれば負荷が増える。したがって、本実施例では、負荷の大きさが、一定の時間で区切った期間内に開始するジョブ数に基づいて判断される。
【００２５】
なお、負荷の大きさの判断基準をジョブ数とするのは一例であり、負荷の大きさが他の形式で表現されてもよい。例えば、ジョブの種類によって重みを付し、負荷が大きいと思われるジョブには高い重みを付してもよい。例えば、ある期間内に実行される重みの合計によって負荷の大きさが判断されてもよい。さらに別の例として、負荷の大きさがその期間に処理されるデータ量に基づいて判断されてもよい。なお、上述の場合、ジョブの定義が、各ジョブの負荷に関する情報を含んでいればよい。
【００２６】
図８は、負荷情報を変更した後の予定変更テーブル１０８を示す。図９は、負荷情報を変更した後の負荷情報テーブル１１０を示す。変更後の予定変更テーブル１０８及び負荷情報テーブル１１０の詳細な内容は後述する。
【００２７】
図１０は、負荷情報を予測した表を端末１０１において出力する処理のフローチャートを示す。
【００２８】
ユーザが、端末１０１において、後述のユーザ操作画面１１０１の表示ボタン１１０３を押して、負荷情報の表示を要求する。端末１０１の負荷情報表示部２０７が、その要求をジョブ管理装置１０２へ送る。ジョブ管理装置１０２は、その要求を受け取り、図１０のフローを実行する。
【００２９】
（ステップ１００１）
ジョブ管理装置１０２において、ジョブ定義参照部３０７は、ジョブ定義テーブル１０４から全てのジョブのジョブ定義を取得する。また、ジョブ実行管理部３０８は、統計情報テーブル１０６から全てのジョブの統計情報を取得する。また、スケジュール変更部３０９は、予定変更テーブル１０８から全てのジョブの予定変更情報を取得する。
【００３０】
（ステップ１００２）
負荷情報更新部３１０は、負荷情報テーブル１１０に関して、一定の時間で区切った期間７０１毎に、ジョブ数７０３を「0」に、ジョブ名７０４を「空」に初期化する。
【００３１】
（ステップ１００３〜１００９のループ）
負荷情報更新部３１０は、ジョブ定義参照部３０７が取得したジョブ定義を入力情報として受け取る。負荷情報更新部３１０は、ジョブ定義内の全てのジョブを、負荷情報テーブル１１０のいずれかの期間に追加するまで、以下のステップ１００４〜１００８の処理を繰り返し実行する。
【００３２】
（ステップ１００４）
負荷情報更新部３１０は、対象のジョブが負荷情報テーブル１１０のいずれかの期間に追加されていないかを判定する。対象のジョブがまだ負荷情報テーブル１１０のいずれかの期間に追加されていない場合（ＹＥＳ）、ステップ１００５に進む。そうでない場合（ＮＯ）、ループの終了１００９に進み、次のジョブを処理する。
【００３３】
（ステップ１００５）
負荷情報更新部３１０は、（i）先行ジョブがないか、又は、（ii）先行ジョブの全てが既にいずれかの期間に追加されているかを判定する。（i）、（ii）のいずれかの条件を満たす場合、ステップ１００６に進む。（i）及び（ii）の条件を満たさない場合、ループの終了１００９に進み、次のジョブを処理する。
【００３４】
（ステップ１００６）
負荷情報更新部３１０は、先行ジョブの開始予定日時４０２及び平均実行時間（分）５０３から、先行ジョブの終了予定日時を計算する。そして、負荷情報更新部３１０は、対象のジョブの開始予定日時４０２が先行ジョブの終了予定日時より時間的に後であるかを判定する。対象のジョブの開始予定日時４０２が先行ジョブの終了予定日時より時間的に後である場合（ＹＥＳ）、ステップ１００７に進む。そうでない場合（ＮＯ）、ステップ１００８に進む。
【００３５】
（ステップ１００７）
負荷情報更新部３１０は、対象のジョブのジョブ名４０１を、ジョブ定義の開始予定日時４０２に対応する期間のジョブ名７０４に追加し、その期間のジョブ数７０３をカウントアップする。
【００３６】
（ステップ１００８）
負荷情報更新部３１０は、対象のジョブの開始日時を、変更可能時間（分）４０３の範囲で遅らせる。負荷情報更新部３１０は、対象のジョブを、先行ジョブの終了予定日時より後の期間のジョブ名７０４に追加し、その期間のジョブ数７０３をカウントアップする。
【００３７】
上記のステップ１００３〜１００９のループ処理では、負荷情報更新部３１０が、先行ジョブを開始予定日時４０２に対応する期間に優先的に追加する。先行ジョブを有するジョブの場合、負荷情報更新部３１０は、そのジョブの全ての先行ジョブの追加が完了した後に、そのジョブを開始予定日時４０２に対応する期間７０１に追加する。
【００３８】
（ステップ１０１０）
スケジュール変更部３０９は、負荷情報テーブル１１０に基づいて各ジョブの開始予定日時変更時間（分）６０２を算出し、予定変更テーブル１０８を更新する。
【００３９】
（ステップ１０１１）
負荷情報更新部３１０は、負荷情報テーブル１１０の情報を端末１０１に送信する。端末１０１の負荷情報表示部２０７が、後述のユーザ操作画面１１０１の負荷波形表示部１１０２に、受信した負荷情報テーブルの情報を表示する。
【００４０】
図４〜図６の具体的な例を用いて図１０のフローの内容を説明する。
【００４１】
ジョブ定義参照部３０７が、図４のジョブ定義テーブル１０４からジョブ定義を取得し、ジョブ実行管理部３０８が、図５の統計情報テーブル１０６からジョブの統計情報を取得し、スケジュール変更部３０９が、図６の予定変更テーブル１０８からジョブの予定変更情報を取得したと仮定する。また、負荷情報更新部３１０は、2016/01/01 00:00から10分間隔で負荷情報テーブル１１０を更新すると仮定する。
【００４２】
負荷情報更新部３１０は、負荷情報テーブル１１０に関して、2016/01/01 00:00から10分間隔の期間７０１で、ジョブ数７０３を「0」に、ジョブ名７０４を「空」に初期化する。
【００４３】
以下では、図１０のステップ１００３〜１００９の具体的な例を説明する。Job 11とJob 21とJob 31は先行のジョブがないため、負荷情報更新部３１０は、これらのジョブを優先的に負荷情報テーブル１１０に追加する。Job 11とJob 21とJob 31の開始予定日時４０２は、2016/01/01 00:00である。負荷情報更新部３１０は、期間2016/01/01 00:00〜00:10のジョブ名７０４にJob 11とJob 21とJob 31を追加する。その結果、期間2016/01/01 00:00〜00:10のジョブ数７０３は「3」になる。
【００４４】
次に、負荷情報更新部３１０は、追加し終わったJob 11とJob 21とJob 31だけをジョブ定義テーブル１０４の先行ジョブ名４０４として持つJob 12とJob 13とJob 22とJob 23とJob 32とJob 33を処理する。ジョブ定義テーブル１０４において、Job 12とJob 13とJob 22とJob 23とJob 32とJob 33の開始予定日時は、それぞれ、2016/01/01 00:20と2016/01/01 00:30と2016/01/01 00:25と2016/01/01 00:30と2016/01/01 00:10と2016/01/01 00:30である。
【００４５】
Job 11とJob 21とJob 31について、負荷情報更新部３１０は、ジョブ定義テーブル１０４の開始予定日時４０２と統計情報テーブル１０６の平均実行時間（分）５０３から、各ジョブの終了予定日時を計算する。Job 11とJob 21とJob 31の終了予定日時は、それぞれ、2016/01/01 00:10と2016/01/01 00:20と2016/01/01 00:04となる。
【００４６】
例えば、Job 32の開始予定日時2016/01/01 00:10は、Job 31の終了予定日時2016/01/01 00:04よりも時間的に後である。したがって、負荷情報更新部３１０は、Job 32を開始予定日時４０２に従って負荷情報テーブル１１０に追加する。負荷情報更新部３１０は、負荷情報テーブル１１０において、期間2016/01/01 00:10〜00:20のジョブ名７０４にJob 32を追加し、ジョブ数７０３を「1」にする。
【００４７】
例えば、Job 12の開始予定日時2016/01/01 00:20は、Job 11の終了予定日時2016/01/01 00:10よりも時間的に後である。また、Job 22の開始予定日時2016/01/01 00:25は、Job 21の終了予定日時2016/01/01 00:20よりも時間的に後である。したがって、負荷情報更新部３１０は、Job 12とJob 22を開始予定日時４０２に従って負荷情報テーブル１１０に追加する。負荷情報更新部３１０は、負荷情報テーブル１１０において、期間2016/01/01 00:20〜00:30のジョブ名７０４にJob 12とJob 22を追加し、ジョブ数７０３を「2」にする。
【００４８】
同様に、負荷情報更新部３１０は、負荷情報テーブル１１０において、期間2016/01/01 00:30〜00:40のジョブ名７０４にJob 13とJob 23とJob 33を追加し、ジョブ数７０３を「3」にする。
【００４９】
次に、負荷情報更新部３１０は、追加し終わったJob 12とJob 13とJob 22だけをジョブ定義テーブル１０４の先行ジョブ名４０４として持つJob 14とJob 24を処理する。ジョブ定義テーブル１０４において、Job 14とJob 24の開始予定日時は、それぞれ、2016/01/01 00:40と2016/01/01 00:40である。
【００５０】
Job 12とJob 13とJob 22とJob 23とJob 32とJob 33について、負荷情報更新部３１０は、ジョブ定義テーブル１０４の開始予定日時４０２と統計情報テーブル１０６の平均実行時間（分）５０３から、各ジョブの終了予定日時を計算する。Job 12とJob 13とJob 22とJob 23とJob 32とJob 33の終了予定日時は、それぞれ、2016/01/01 00:40と2016/01/01 00:33と2016/01/01 00:33と2016/01/01 00:31と2016/01/01 00:12と2016/01/01 00:43となる。
【００５１】
例えば、Job 14の開始予定日時は、Job 12とJob 13の終了予定日時よりも時間的に後である。また、Job 24の開始予定日時は、Job 22の終了予定日時よりも時間的に後である。したがって、負荷情報更新部３１０は、Job 14とJob 24を開始予定日時４０２に従って負荷情報テーブル１１０に追加する。負荷情報更新部３１０は、負荷情報テーブル１１０において、期間2016/01/01 00:40〜00:50のジョブ名７０４にJob 14とJob 24を追加し、ジョブ数７０３を「2」にする。図７は、上述の処理によって更新された負荷情報テーブル１１０を示す。
【００５２】
なお、負荷情報更新部３１０での計算の結果、あるジョブ（第２ジョブ）の開始予定日時が先行ジョブ（第１ジョブ）の終了予定日時よりも時間的に前になった場合、負荷情報更新部３１０は、ジョブ定義テーブル１０４の変更可能時間（分）の範囲で第２ジョブの開始予定日時を遅らせて、第２ジョブの開始予定日時が第１ジョブの終了予定日時よりも時間的に後になるようにすればよい。
【００５３】
スケジュール変更部３０９は、図７の負荷情報テーブル１１０に基づいて各ジョブの開始予定日時変更時間（分）６０２を算出し、予定変更テーブル１０８を更新する。図６は、上述の処理によって更新された予定変更テーブル１０８を示す。
【００５４】
図１１は、端末１０１において表示されるユーザ操作画面の例である。負荷情報表示部２０７は、ユーザ操作画面１１０１を表示装置２０３に表示する。ユーザ操作画面１１０１は、負荷波形表示部１１０２と、表示ボタン１１０３と、変更ボタン１１０４と、終了ボタン１１０５とを備える。
【００５５】
負荷波形表示部１１０２は、横軸に時間をとり、縦軸にジョブ数をとったグラフを表示する。図１２は、図７の負荷情報テーブル１１０の情報を負荷波形表示部１１０２に表示した例である。時間軸は、一定の期間ごとに区切られている。斜線で塗りつぶした棒グラフがジョブ数を表す。グラフ上の各期間は、負荷情報テーブル１１０の期間７０１に対応する。グラフ上のジョブ数は、負荷情報テーブル１１０のジョブ数７０３に対応する。なお、変形例として、負荷波形表示部１１０２には、各期間に割り当てられたジョブ名（負荷情報テーブル１１０のジョブ名７０４）の情報が表示されてもよい。
【００５６】
表示ボタン１１０３は、端末１０１からジョブ管理装置１０２に負荷情報を要求するためのボタンである。表示ボタン１１０３が押されると、負荷波形表示部１１０２は、ジョブ管理装置１０２へ負荷情報を要求する。ジョブ管理装置１０２の負荷情報更新部３１０は、負荷情報テーブル１１０を更新して、負荷情報テーブル１１０の負荷情報を端末１０１へ返信する。負荷情報表示部２０７は、返信された負荷情報を負荷波形表示部１１０２に表示する。
【００５７】
負荷波形表示部１１０２は、各期間のジョブ上限数を入力できるインタフェースを備える。一例として、負荷波形表示部１１０２は、グラフ上にジョブ上限数を示す線（又は波形）を直接描画できるインタフェースを備える。このインタフェースは、各期間に現在割り当てられているジョブ数とジョブ上限数が視覚的に確認できる点において好ましい。例えば、負荷波形表示部１１０２は、各期間の上限数を表す線分をドラッグ＆ドロップで上下に移動させるようなインタフェースを備えてもよい。図１３は、図７の負荷情報テーブル１１０の情報を負荷波形表示部１１０２に表示した状態において、ジョブ上限数を示す点線をグラフ上に描画した例である。なお、別の例として、負荷波形表示部１１０２は、各期間の上限数を数値で入力できるインタフェースを備えてもよい。
【００５８】
変更ボタン１１０４は、負荷波形表示部１１０２のグラフ上でジョブ上限数を直接操作した後（ジョブ上限数を示す線又は波形を入力した後）、ジョブ管理装置１０２に負荷情報の更新を要求するためのボタンである。変更ボタン１１０４が押されると、負荷波形表示部１１０２は、各期間のジョブ上限数の情報を、負荷情報に関する変更情報としてジョブ管理装置１０２へ送信する。ジョブ管理装置１０２の負荷情報更新部３１０は、受信したジョブ上限数の情報に基づいて負荷情報テーブル１１０を更新して、更新された負荷情報テーブル１１０の負荷情報を端末１０１へ返信する。負荷情報表示部２０７は、返信された負荷情報を負荷波形表示部１１０２に表示する。図１４は、図１３の負荷波形表示部の状態で変更ボタン１１０４を押した後に表示された負荷波形表示部１１０２の例である。終了ボタン１１０５は、ユーザ操作画面１１０１を閉じるためのボタンである。
【００５９】
図１５は、端末１０１においてジョブ上限数が設定された後に、負荷情報を出力する処理のフローチャートを示す。
【００６０】
ユーザが、端末１０１において、負荷波形表示部１１０２のグラフ上でジョブ上限数を設定して変更ボタン１１０４を押し、負荷情報の更新を要求する。端末１０１の負荷情報表示部２０７が、ジョブ上限数に関する情報をジョブ管理装置１０２に送信する。ジョブ管理装置１０２は、その要求を受け取り、図１５のフローを実行する。
【００６１】
（ステップ１５０１）
ジョブ管理装置１０２において、ジョブ定義参照部３０７は、ジョブ定義テーブル１０４から全てのジョブのジョブ定義を取得する。また、ジョブ実行管理部３０８は、統計情報テーブル１０６から全てのジョブの統計情報を取得する。また、スケジュール変更部３０９は、予定変更テーブル１０８から全てのジョブの予定変更情報を取得する。
【００６２】
（ステップ１５０２）
負荷情報更新部３１０は、負荷情報テーブル１１０の全ての期間の情報を取得する。
【００６３】
（ステップ１５０３）
負荷情報更新部３１０は、負荷情報テーブル１１０の全ての期間でジョブ上限数を超えないように（負荷の上限に収まるように）全てのジョブを割り当て、負荷情報テーブル１１０を更新する。なお、ステップ１５０３の詳細は図１６を用いて後述する。
【００６４】
（ステップ１５０４）
スケジュール変更部３０９は、更新された負荷情報テーブル１１０に基づいて各ジョブの開始予定日時変更時間（分）６０２を算出し、予定変更テーブル１０８を更新する。
【００６５】
（ステップ１５０５）
負荷情報更新部３１０は、負荷情報テーブル１１０の情報を端末１０１に送信する。端末１０１の負荷情報表示部２０７が、負荷波形表示部１１０２に、受信した負荷情報テーブルの情報を表示する。
【００６６】
図１６は、図１５のステップ１５０３（負荷情報テーブル１１０の更新処理）の内容を示すフローチャートの例である。
【００６７】
（ステップ１６０１〜１６１３のループ）
負荷情報更新部３１０は、負荷情報テーブル１１０の全ての期間でジョブ上限数を超えないように以下のステップ１６０２〜１６１２の処理を繰り返し実行する。なお、負荷情報更新部３１０は、各期間を処理する際に、負荷情報テーブル１１０のジョブ上限数７０２の情報も更新する。
【００６８】
（ステップ１６０２）
負荷情報更新部３１０は、今回の期間のジョブ名７０４を空にし、ジョブ数７０３を「0」にして初期化する。
【００６９】
（ステップ１６０３）
負荷情報更新部３１０は、今回の期間のジョブ上限数を取得する。負荷情報更新部３１０は、削除されて、まだどの期間にも追加されていないジョブ（以下では、単に「追加対象のジョブ」と呼ぶ）の合計がジョブ上限数を超えているかを判定する。ここで、追加対象のジョブとは、（i）今回の期間より前の期間に割り当てられていたが、ジョブ上限数のためにその前の期間に追加できず、削除されたままのジョブ、及び、（ii）ステップ１６０２において今回の期間から削除されたジョブとを含む。追加対象のジョブの合計がジョブ上限数を超えている場合（ＹＥＳ）、ステップ１６０５へ進む。そうでない場合（ＮＯ）、ステップ１６０４へ進む。
【００７０】
（ステップ１６０４）
負荷情報更新部３１０は、今回の期間のジョブ名７０４に追加対象の全てのジョブを追加し、ジョブ数７０３をカウントアップする。
【００７１】
（ステップ１６０５）
負荷情報更新部３１０は、ジョブ上限数が「0」であるかを判定する。ジョブ上限数が「0」でない場合（ＮＯ）、ステップ１６０６に進む。ジョブ上限数が「0」の場合（ＹＥＳ）、今回の期間にはジョブを追加できないため、次の期間を処理する。
【００７２】
（ステップ１６０６〜１６１２のループ）
負荷情報更新部３１０は、追加対象のジョブ（少なくとも１つのジョブ）に対してステップ１６０７〜１６１１の処理を繰り返し実行する。
【００７３】
（ステップ１６０７）
負荷情報更新部３１０は、（i）先行ジョブがないか、又は、（ii）先行ジョブの全てが既にいずれかの期間に追加されているかを判定する。（i）、（ii）のいずれかの条件を満たす場合（ＹＥＳ）、ステップ１６０８に進む。（i）及び（ii）の条件を満たさない場合（ＮＯ）、ループの終了（ステップ１６１２）に進み、次のジョブを処理する。
【００７４】
（ステップ１６０８）
負荷情報更新部３１０は、追加対象のジョブの開始予定日時４０２及びジョブの変更可能時間（分）４０３から追加対象のジョブの追加期限を算出する。そして、負荷情報更新部３１０は、今回の期間がジョブの追加期限よりも時間的に後であるかを判定する。今回の期間がジョブの追加期限よりも時間的に後でない場合（ＮＯ）、すなわち、追加対象のジョブを今回の期間に追加可能である場合、ステップ１６０９に進む。そうでない場合（ＹＥＳ）、ステップ１６１４に進む。
【００７５】
例えば、追加対象のジョブの開始予定日時４０２が2016/01/01 00:20であり、変更可能時間（分）４０３が１０分である場合、この追加対象のジョブの追加期限は2016/01/01 00:30となる。例えば、今回の期間が2016/01/01 00:10〜00:20である場合、この追加対象のジョブを今回の期間に追加できるため、ステップ１６０９に進む。
【００７６】
（ステップ１６０９）
負荷情報更新部３１０は、追加対象のジョブの追加期限（ステップ１６０８において算出された追加期限）が、他の追加対象のジョブに比べて最も早いかを判定する。追加対象のジョブの追加期限が最も早い場合（ＹＥＳ）、ステップ１６１０に進む。そうでない場合（ＮＯ）、次の追加対象のジョブを処理する。
【００７７】
例えば、追加対象のジョブ（第１のジョブ）の開始予定日時４０２が2016/01/01 00:20であり、変更可能時間（分）４０３が10分である場合、この追加対象のジョブの追加期限は2016/01/01 00:30となる。一方、別の第２のジョブの開始予定日時４０２が2016/01/01 00:25であり、変更可能時間（分）４０３が10分である場合、第２のジョブの追加期限は2016/01/01 00:35となる。この場合、負荷情報更新部３１０は、第１のジョブの追加期限が第２のジョブに比べて早いと判定する。負荷情報更新部３１０は、複数の追加対象のジョブ中で、今回の追加対象のジョブの追加期限が他のジョブと比べて最も早い場合に、今回の期間に追加する。
【００７８】
（ステップ１６１０）
負荷情報更新部３１０は、今回の期間のジョブ名７０４に追加対象のジョブを追加し、ジョブ数７０３をカウントアップする。
【００７９】
（ステップ１６１１）
負荷情報更新部３１０は、今回の期間の現在のジョブ数７０３とジョブ上限数７０２を比較する。現在のジョブ数７０３がジョブ上限数７０２よりも小さい場合（ＹＥＳ）、次の追加対象のジョブに移り、ループ１６０６〜１６１２を繰り返す。一方、現在のジョブ数７０３がジョブ上限数７０２以上の場合（ＮＯ）、次の期間に移り、ループ１６０１〜１６１３を繰り返す。なお、残っている追加対象のジョブは次の期間に持ち越される。
【００８０】
（ステップ１６１４）
ステップ１６０８において、今回の期間が、追加対象のジョブの追加期限よりも時間的に後の場合、負荷情報更新部３１０は、端末１０１に警告情報を送る。端末１０１の負荷情報表示部２０７は、割り当て不可能なジョブがある旨をユーザ操作画面１１０１に表示する。ユーザは、ジョブ上限数を再度設定し直し、図１５のフローを再度実行する。
【００８１】
図４〜図７の具体的な例を用いて図１６のフローを説明する。ユーザは、端末１０１において、図１３のように、負荷波形表示部１１０２のグラフ上でジョブ上限数を設定したと仮定する。この例では、サービスを停止してシステムのメンテナンスを行うために、期間2016/01/01 00:10〜00:30のジョブ上限数が「0」に設定され、他の期間のジョブ上限数が「3」に設定されている。
【００８２】
ジョブ定義参照部３０７が、図４のジョブ定義テーブル１０４からジョブ定義を取得し、ジョブ実行管理部３０８が、図５の統計情報テーブル１０６からジョブの統計情報を取得し、スケジュール変更部３０９が、図６の予定変更テーブル１０８からジョブの予定変更情報を取得したと仮定する。また、負荷情報更新部３１０が、図７の負荷情報テーブル１１０を取得したと仮定する。
【００８３】
まず、期間2016/01/01 00:00〜00:10の処理（ステップ１６０２、１６０３、１６０４に対応）を説明する。負荷情報更新部３１０は、期間2016/01/01 00:00〜00:10のJob 11とJob 21とJob 31を削除し、ジョブ数７０３を「0」にする。この時点で、削除されて、まだどの期間にも追加されていないジョブ（追加対象のジョブ）の合計は「3」である。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「3」を超えていないと判定する。したがって、負荷情報更新部３１０は、期間2016/01/01 00:00〜00:10のジョブ名７０４にJob 11とJob 21とJob 31を追加し、ジョブ数７０３を「3」にする。
【００８４】
次の期間2016/01/01 00:10〜00:20の処理（ステップ１６０２、１６０３、１６０５に対応）を説明する。負荷情報更新部３１０は、期間2016/01/01 00:10〜00:20のJob 32を削除し、ジョブ数７０３を「0」にする。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「0」を超えていると判定する。しかし、期間2016/01/01 00:10〜00:20のジョブ上限数は「0」であるため、この期間にジョブを追加することができない。したがって、負荷情報更新部３１０は、次の期間の処理に移る。なお、残っている追加対象のジョブJob 32は次の期間に持ち越される。
【００８５】
次の期間2016/01/01 00:20〜00:30の処理（ステップ１６０２、１６０３、１６０５に対応）を説明する。負荷情報更新部３１０は、期間2016/01/01 00:20〜00:30のJob 12とJob 22を削除し、ジョブ数７０３を「0」にする。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「0」を超えていると判定する。しかし、期間2016/01/01 00:20〜00:30のジョブ上限数は「0」であるため、この期間にジョブを追加することができない。負荷情報更新部３１０は、次の期間の処理に移る。なお、残っている追加対象のジョブJob 12とJob 22とJob 32は次の期間に持ち越される。
【００８６】
次の期間2016/01/01 00:30〜00:40（ステップ１６０２、１６０３、１６０５、１６０６〜１６１２に対応）の処理を説明する。負荷情報更新部３１０は、期間2016/01/01 00:30〜00:40のJob 13とJob 23とJob 33を削除し、ジョブ数７０３を「0」にする。現時点で追加対象のジョブの合計は「6」である。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「3」を超えていると判定する。その後、ジョブ上限数が「0」でないため、以下の処理を実行する。
【００８７】
追加対象のジョブがJob 12であるとする。負荷情報更新部３１０は、Job 12の先行ジョブの全てがすでにいずれかの期間に追加されていると判定する。Job 12の開始予定日時４０２は2016/01/01 00:20であり、Job 12の変更可能時間（分）４０３は10分である。したがって、Job 12の追加期限は、2016/01/01 00:30である。負荷情報更新部３１０は、今回の期間がJob 12の追加期限よりも時間的に後ではないと判定する。
【００８８】
次に、負荷情報更新部３１０は、Job 12の追加期限が他のジョブと比べて最も早いかを判定する。Job 13とJob 22とJob 23とJob 32とJob 33の開始予定日時４０２は、それぞれ、2016/01/01 00:30と2016/01/01 00:25と2016/01/01 00:30と2016/01/01 00:10と2016/01/01 00:30である。Job 13とJob 22とJob 23とJob 32とJob 33の変更可能時間（分）４０３は、それぞれ、10と30と30と60と60である。したがって、Job 13とJob 22とJob 23とJob 32とJob 33の追加期限は、それぞれ、2016/01/01 00:40と2016/01/01 00:55と2016/01/01 01:00と2016/01/01 01:10と2016/01/01 01:30となる。したがって、負荷情報更新部３１０は、Job 12の追加期限が他のジョブと比べて最も早いと判定する。負荷情報更新部３１０は、期間2016/01/01 2016/01/01 00:30〜00:40のジョブ名７０４にJob 12を追加し、ジョブ数７０３を「1」にする。その後、負荷情報更新部３１０は、現在のジョブ数７０３がジョブ上限数７０２よりも小さいため、次の追加対象のジョブを処理する。
【００８９】
同様にステップ１６０６〜１６１２のループを繰り返し実行することにより、負荷情報更新部３１０は、期間2016/01/01 2016/01/01 00:30〜00:40のジョブ名７０４に、追加期限が早いJob 13とJob 22を優先的に追加することになる。なお、残っている追加対象のジョブJob 23とJob 32とJob 33は次の期間に持ち越される。
【００９０】
次の期間2016/01/01 00:40〜00:50の処理（ステップ１６０２、１６０３、１６０５、１６０６〜１６１２に対応）を説明する。負荷情報更新部３１０は、期間2016/01/01 00:40〜00:50のJob 14とJob 24を削除し、ジョブ数を「0」にする。現時点で追加対象のジョブの合計は「5」である。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「3」を超えていると判定する。その後、ジョブ上限数が「0」でないため、以下の処理を実行する。
【００９１】
追加対象のジョブがJob 14であるとする。負荷情報更新部３１０は、Job 14の先行ジョブの全てがすでにいずれかの期間に追加されていると判定する。Job 14の開始予定日時４０２は2016/01/01 00:40であり、Job 14の変更可能時間（分）４０３は10分である。したがって、Job 14の追加期限は、2016/01/01 00:50である。負荷情報更新部３１０は、今回の期間がJob 14の追加期限よりも時間的に後ではないと判定する。
【００９２】
次に、負荷情報更新部３１０は、Job 14の追加期限が他のジョブと比べて最も早いかを判定する。Job 23とJob 24とJob 32とJob 33の開始予定日時４０２は、それぞれ、2016/01/01 00:30と2016/01/01 00:40と2016/01/01 00:10と2016/01/01 00:30である。Job 23とJob 24とJob 32とJob 33の変更可能時間（分）４０３は、それぞれ、30と30と60と60である。したがって、Job 23とJob 24とJob 32とJob 33の追加期限は、それぞれ、2016/01/01 01:00と2016/01/01 01:10と2016/01/01 01:10と2016/01/01 01:30となる。したがって、負荷情報更新部３１０は、Job 14の追加期限が他のジョブと比べて最も早いと判定する。負荷情報更新部３１０は、期間2016/01/01 2016/01/01 00:40〜00:50のジョブ名７０４にJob 14を追加し、ジョブ数７０３を「1」にする。その後、負荷情報更新部３１０は、現在のジョブ数７０３がジョブ上限数７０２よりも小さいため、次の追加対象のジョブを処理する。
【００９３】
同様にステップ１６０６〜１６１２のループを繰り返し実行することにより、負荷情報更新部３１０は、期間2016/01/01 00:40〜00:50のジョブ名７０４に、追加期限が早いJob 23とJob 24を優先的に追加することになる。なお、残っている追加対象のジョブJob 32とJob 33は次の期間に持ち越される。
【００９４】
次に、期間2016/01/01 00:50〜01:00の処理（ステップ１６０２、１６０３、１６０４に対応）を説明する。負荷情報更新部３１０は、追加対象のジョブの合計がジョブ上限数「3」を超えていないと判定する。したがって、負荷情報更新部３１０は、期間2016/01/01 00:50〜01:00のジョブ名７０４にJob 32とJob 33を追加し、ジョブ数７０３を「2」にする。以上の処理の結果、負荷情報テーブル１１０は図９のようになる。
【００９５】
次に、スケジュール変更部３０９は、図９の負荷情報テーブル１１０に基づいて各ジョブの開始予定日時変更時間（分）６０２を算出する。期間2016/01/01 00:00〜00:10に割り当てられたJob 11とJob 21とJob 31の開始予定日時変更時間（分）６０２は、それぞれ、「0」と「0」と「0」である。期間2016/01/01 00:30〜00:40に割り当てられたJob 12とJob 13とJob 22の開始予定日時変更時間（分）６０２は、それぞれ、「10」と「0」と「5」である。期間2016/01/01 00:40〜00:50に割り当てられたJob 14とJob 23とJob 24の開始予定日時変更時間（分）６０２は、それぞれ、「0」と「10」と「0」である。期間2016/01/01 00:50〜01:00に割り当てられたJob 32とJob 33の開始予定日時変更時間（分）６０２は、それぞれ、「40」と「20」となる。
【００９６】
最後に、負荷情報更新部３１０は、図９の負荷情報テーブル１１０の情報を端末１０１に送信する。端末１０１の負荷情報表示部２０７が、ユーザ操作画面１１０１の負荷波形表示部１１０２に図１４の負荷情報を表示する。
【００９７】
本実施例の効果について説明する。ジョブをスケジュールに従って実行しているとき、メンテナンスなどでサービスを一時的に停止すると、停止中に実行できなかったジョブが再起動の直後に集中し、マシンの負荷が高くなる。そのため、負荷の上限を設定し、それを超えないようにする必要がある。しかし、従来では、負荷の上限をリアルタイムに設定することができなかった。また、ジョブの実行順序（先行ジョブとの関係）を維持したまま、実行優先度の高いジョブからスケジュールに自動で追加することもできなかった。これに対して、本実施例によれば、負荷の上限をユーザがリアルタイムに設定することができ、しかも、設定された負荷の上限に応じて実行優先度の高いジョブからスケジュールに追加することができる。
【００９８】
また、従来では、ユーザが直感的な操作で負荷の上限を設定することができなかった。これに対して、本実施例によれば、ユーザが、端末１０１の負荷波形表示部１１０２に表示されたグラフ（今後の負荷情報を予測した表）を直接操作することで、負荷の上限を各期間のジョブ数と比較しながらリアルタイムに設定できる。
【００９９】
本実施例によれば、今後の負荷情報を予測した表を確認しながら、メンテナンスなどの状況に応じて、ユーザがその表を直接操作して負荷の上限をリアルタイムに設定することができる。また、設定された負荷の上限に応じて実行優先度の高いジョブからスケジュールに追加することができる。
【０１００】
また、本実施例によれば、負荷情報更新部３１０は、ジョブの開始時間（開始予定日時４０２）と変更許容時間（変更可能時間（分）４０３）とから、ジョブの追加期限を算出し、他のジョブに比べて追加期限が早いジョブを優先的に対象の期間に割り当てる。この構成によれば、変更許容時間（変更可能時間（分）４０３）の値を用いて、ジョブの実行優先度を細かく設定することができる。この構成によれば、ジョブの追加期限に基づいた実行優先度の高いジョブからスケジュールに追加することができる。
【０１０１】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。上記実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることもできる。また、ある実施例の構成に他の実施例の構成を加えることもできる。また、各実施例の構成の一部について、他の構成を追加・削除・置換することもできる。
【０１０２】
本実施例では、統計情報テーブル１０６が、各ジョブの実行時間に関する統計情報を保持しているが、この形態に限定されない。ジョブ定義テーブル１０４が、各ジョブの実行時間に関する統計情報を保持してもよい。また、他の例として、ジョブ定義テーブル１０４が、統計情報ではなく、各ジョブの想定される実行時間に関する情報を保持してもよい。この場合、負荷情報更新部３１０は、各ジョブの想定される実行時間に基づいて各ジョブの終了予定時刻を算出してもよい。
【０１０３】
上記の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、ファイルなどの情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）などの記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤなどの記録媒体に置くことができる。また、上記の各構成などは、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。
【０１０４】
上述の実施例において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【０１０５】
１０１    …端末
１０２    …ジョブ管理装置
１０３    …ジョブ定義データベース
１０４    …ジョブ定義テーブル
１０５    …統計情報データベース
１０６    …統計情報テーブル
１０７    …予定変更データベース
１０８    …予定変更テーブル
１０９    …負荷情報データベース
１１０    …負荷情報テーブル
２０１    …CPU
２０２    …入力装置
２０３    …表示装置
２０４    …通信装置
２０５    …メモリ
２０６    …記憶装置
２０７    …負荷情報表示部
３０１    …CPU
３０２    …入力装置
３０３    …表示装置
３０４    …通信装置
３０５    …メモリ
３０６    …記憶装置
３０７    …ジョブ定義参照部
３０８    …ジョブ実行管理部
３０９    …スケジュール変更部
３１０    …負荷情報更新部
【図１】
0006535294.tif 000002
【図２】
0006535294.tif 000003
【図３】
0006535294.tif 000004
【図４】
0006535294.tif 000005
【図５】
0006535294.tif 000006
【図６】
0006535294.tif 000007
【図７】
0006535294.tif 000008
【図８】
0006535294.tif 000009
【図９】
0006535294.tif 000010
【図１０】
0006535294.tif 000011
【図１１】
0006535294.tif 000012
【図１２】
0006535294.tif 000013
【図１３】
0006535294.tif 000014
【図１４】
0006535294.tif 000015
【図１５】
0006535294.tif 000016
【図１６】
0006535294.tif 000017