(57)【要約】      （修正有）【課題】ジョブのスケジュール定義やシステム時刻を変更せず、最小の作業労力でジョブのスケジュール運用テストを行う。【解決手段】ジョブのスケジュール運用をホストのシステム日時以外の日時で実施したい場合には、ローカル日時・進捗速度指示部１０２から実施したい日時および時刻進捗速度を指示する。仮想時刻管理部１０３は、指示された日時および時刻進捗速度の情報とシステム日時１０４を入力としてローカル日時を算出し、スケジュール管理部１０５に通知する。スケジュール管理部１０５は、スケジュール定義１０７を読み出し、ローカル日時から実行可能なジョブの開始時刻を一覧にした通知時刻リスト１０９の通知を仮想日時管理部１０３に依頼する。スケジュール管理部１０５は、ローカル日時に実行可能なジョブがある場合には、実行部１１０に通知し、ジョブ実行定義１０８をジョブ情報格納部１０６から読み出して実行させる。【選択図】図１
2008234276.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ毎に一意に設定されたスケジュール定義を持つ複数のジョブのスケジュール実行を集中管理するスケジュール管理部と、
指定された期間ごとに、指定された時刻進捗速度を適用した仮想日時を、ジョブのスケジュール運用システム内の固有の日時として管理する仮想日時管理部と、を有し、
運用テスト開始時点から終了時点までの期間を、起点時刻と仮想経過時間とによって複数の時間帯に分割し、分割されたそれぞれの時間帯ごとに、仮想経過時間／実経過時間で表される時刻進捗係数を実経過時間に乗算することよって求めた装置内に固有のローカル時刻に基づく実行時間帯を前記スケジュール管理部に設定することを特徴とするスケジュール運用のテストシステム。
【請求項２】
ジョブを実施したい日時と時刻進捗速度とを入力するローカル日時・進捗速度指示部を有し、
前記仮想時刻管理部は、前記ローカル日時・進捗速度指示部から指示された日時および時刻進捗速度の情報とシステム日時を入力としてローカル日時を算出し、前記スケジュール管理部に通知し、該スケジュール管理部は、スケジュール定義とジョブ実行定義とを含むジョブ情報を格納するジョブ情報格納部内の前記スケジュール定義を読み出し、通知されたローカル日時から実行可能なジョブの開始時刻を一覧にした通知時刻リストを作成し、該当する時刻の通知を前記仮想日時管理部に依頼し、前記スケジュール管理部は、通知されたローカル日時に実行可能なジョブが通知時刻リストにある場合には、該当するジョブの情報に基づいて実行可能なジョブ実行定義を前記スケジュール管理部から受け取って実行することを特徴とする請求項１に記載のスケジュール運用のテストシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムで実行されるジョブのスケジュール運用テストシステムに関し、特に、運用スケジュールを調整し最適なスケジュールを適用するための技術に関する。
【背景技術】
【０００２】
従来、計算機システムで実行されるジョブの運用スケジュールの制御方法としては、例えば、下記特許文献１に記載のように、複数のジョブ実行スケジュールを予め定義しておき、システムの運用状況によって実行可能なスケジュールを選択し、そのスケジュールを適用してジョブを実行する技術が知られている。
【０００３】
また、複数のジョブにおける複数の処理ステージと、使用可能な実行ノードと、の組合せから、最大・最小推定処理時間を算出・表示させ、これを参照することによりユーザーが運用条件を判断できるようにして、適切なスケジュールを手動で選択・変更可能とした方法に関する技術が開示されている(特許文献２参照)。
【０００４】
【特許文献１】特開２００５−３８３３２号公報
【特許文献２】特開２００５−１４８９０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような従来の方法では、スケジュール定義自体を複数から選択し、あるいは状況に応じて調整することにより、ジョブのスケジュール運用を最適化する方法であるため、ジョブ毎にスケジュールを一意に定義したシステムの運用の確認には適していないという問題がある。
【０００６】
また、スケジュール定義を固定したシステムの運用テストでは、１回のテストに本番運用時と同じだけの時間が必要であるという問題がある。さらに、短時間に大量のジョブを実行するテストでは、時間の経過速度が制約となって処理性能を超えてしまい実行ができないなどの問題もある。
【０００７】
本発明は、ジョブ毎にスケジュールを一意に定義したシステムの運用の確認作業において、条件に応じたジョブのスケジュール運用テストを効果的かつ最小の作業労力で実行できる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明においては、テスト開始から終了までの期間を起点時刻と仮想経過時間によって複数の時間帯に分割し、その時間帯毎に時刻進捗係数を設定することによって、実時間とは異なる進捗速度で経過する仮想時間を設定することで実現する。
【０００９】
すなわち、本発明の一観点によれば、ジョブ毎に一位に設定されたスケジュール定義を持つ複数のジョブのスケジュール実行を集中管理するスケジュール管理部と、指定された期間毎に、指定された時刻進捗速度を適用した仮想日時を、ジョブのスケジュール運用システム内の固有の日時として管理する仮想日時管理部と、を有し、運用テスト開始時点から終了時点までの期間を、起点時刻と仮想経過時間とによって複数の時間帯に分割し、分割されたそれぞれの時間帯毎に、仮想経過時間／実経過時間で表される時刻進捗係数を実経過時間に乗算することよって求めた装置内に固有のローカル時刻に基づく実行時間帯を前記スケジュール管理部に設定することを特徴とするスケジュール運用のテストシステムが提供される。これにより、実時間とは異なる進捗速度で経過する仮想経過時間を有するシステム時刻に基づく実行時間帯とは異なるジョブテストを行うことができる。
【００１０】
さらに、ジョブを実施したい日時と時刻進捗速度とを入力するローカル日時・進捗速度指示部を有し、前記仮想時刻管理部は、前記ローカル日時・進捗速度指示部から指示された日時および時刻進捗速度の情報とシステム日時を入力としてローカル日時を算出し、前記スケジュール管理部に通知し、該スケジュール管理部は、スケジュール定義とジョブ実行定義とを含むジョブ情報を格納するジョブ情報格納部内の前記スケジュール定義を読み出し、通知されたローカル日時から実行可能なジョブの開始時刻を一覧にした通知時刻リストを作成し、該当する時刻の通知を前記仮想日時管理部に依頼し、前記スケジュール管理部は、通知されたローカル日時に実行可能なジョブが通知時刻リストにある場合には、該当するジョブの情報に基づいて実行可能なジョブ実行定義を前記スケジュール管理部から受け取って実行することを特徴とするスケジュール運用のテストシステムであるのが好ましい。ジョブを実施したい日時と時刻進捗速度とを入力するローカル日時・進捗速度指示部から指示することで、自由度の高いジョブの運用テストを行うことができる。
【発明の効果】
【００１１】
本発明の仮想経過時間の速度調整方式によれば、次のような効果がある。
【００１２】
（１）ジョブのスケジュール運用の開始から終了までの期間を複数の時間帯に分割し、その時間帯ごとに時刻進捗係数を設定することにより、夜間・休日などのジョブがあまり実行されない時間帯における運用時間を短縮することができる。
また、単位時間あたりに実行するジョブ数に応じて経過時間を調整し、複数のジョブの競合テストや負荷テストを効果的に実施することにより、システムリソースの見積もりが簡単にできる。
【００１３】
（２）ジョブスケジュール装置内に固有のローカル日時を設定するため、スケジュール定義やシステム時刻の変更を伴わずに、ジョブのスケジュール運用の実施時間を変更できる。従って、多数のジョブをそれぞれ異なるスケジュールで実行するシステムで、スケジュール運用のテストを簡単に実行できる。
【発明を実施するための最良の形態】
【００１４】
本明細書において、ジョブ（実行）定義とは、ジョブの実行内容のことを指し、スケジュール定義とは、ジョブの実行スケジュールを指す。発明者は、ジョブスケジュール装置内に複数の仮想時間帯と、仮想時間帯ごとに時刻進捗速度を設定し、１つの仮想時間帯の完了に応じて次の仮想時間帯に自動的に切り替えることにより、実行するジョブ数が少ない時間帯には仮想時間の経過速度を早め、実行ジョブ数が多い時間帯には経過速度を遅くするなどの処理を行うことを考えついた。
【００１５】
以下、本発明の一実施の形態によるジョブスケジュールの運用テストシステムについて図面を参照しながら説明する。図１は、本実施の形態によるジョブスケジュールの運用テストシステムの一構成例を示す機能ブロック図である。ジョブ情報格納部１０６には、上記のようにそれぞれ定義される、スケジュール定義１０７とジョブ実行定義１０８とが格納されている。
【００１６】
図１に示すジョブスケジュールの運用テストシステム１０１を利用して、ジョブのスケジュール運用をホストのシステム日時とは異なる日時で実施したい場合には、ローカル日時・進捗速度指示部１０２から、実施したい日時および時刻進捗速度を指示することができる。仮想日時管理部１０３は、指示された日時および時刻進捗速度の情報と実際の時刻に対応するシステム日時１０４とを入力として、装置内に固有のローカル日時を算出し、スケジュール管理部１０５に通知する。スケジュール管理部１０５は、ジョブ情報格納部１０６のスケジュール定義１０７を読み出し、通知されたローカル日時から実行可能なジョブの開始時刻を一覧にした通知時刻リスト１０９を作成し、該当する時刻の通知を仮想日時管理部１０３に依頼する。また、スケジュール管理部１０５は、通知されたローカル日時に実行可能なジョブが通知時刻リスト１０９にある場合には、該当するジョブの情報を実行部１１０に伝える。実行部１１０は、実行可能なジョブの情報をスケジュール管理部１０５から受け取ると、該当するジョブ実行定義１０８をジョブ情報格納部１０６から読み出して実行する。
【００１７】
図２は、ローカル日時および進捗速度を指示するデータの構成例を示す図である。ローカル日時による運用の開始時間を起点時刻２０１に、ローカル日時を適用する期間を仮想経過時間２０２に、ローカル日時での運用期間に適用する時刻進捗速度を時刻進捗係数２０３にそれぞれ指定することにより、ジョブのスケジュール運用に対し、任意の日時と経過時間を適用することが可能となる。
【００１８】
実経過時間２０４は仮想経過時間２０２÷時刻進捗係数２０３により求められ、時刻進捗係数が１．０の場合、仮想経過時間と実経過時間との進捗速度は同じとなるが、時刻進捗係数を１．０よりも大きくすると、仮想経過時間の進捗速度が上がり、実際にスケジューリングされた時間より短時間でジョブのスケジュール実行をシュミレーションすることができる。逆に時刻進捗係数を１．０よりも小さくすると、仮想経過時間の進捗速度が遅くなり、実際の経過時間が長くなるが、大量のジョブの競合やシステム負荷を設定した運用テストや、最悪所要時間の算出を行いやすくなる。
【００１９】
図３は、図１に示す仮想日時管理部１０３におけるローカル日時算出・通知処理方法の流れを示すフローチャート図である。ジョブの開始時刻としてスケジュール管理部１０５に通知すべき時刻の一覧である通知時刻リストに変更がある場合には(ステップ３０１：Ｙｅｓ)、通知時刻リストの入力を行う(ステップ３０２)。通知時刻リストに変更がない場合は（ステップ３０１：Ｎｏ）、ステップ３０２をスキップし既存の通知時刻リストの情報が適用される。ローカル日時が未設定の場合、または、ローカル日時・進捗速度の変更指示があった場合(ステップ３０３：Ｙｅｓ)、以下の式によりローカル日時とその適用期間とを算出し、ジョブスケジュール運用装置内の仮想日時情報として保持する(ステップ３０４)。
・ローカル日時開始時刻＝起点時刻
但し、起点時刻が未設定の場合には、システム時刻を適用する。
・仮想日時適用期間＝仮想経過時間÷時刻進捗係数
但し、仮想経過時間が未設定の場合には、適用期間を無制限とする。時刻進捗係数が未設定の場合、時刻進捗係数として１．０を適用する。仮想経過時間、時刻進捗係数がともに未設定の場合、変更指示を無効とする。
・ローカル日時終了時刻＝起点時刻＋仮想日時適用期間
時刻進捗係数は、ジョブの時間軸における圧縮率と言うことが出来る。時刻進捗係数により設定された圧縮率でジョブを実行できるかどうかをテストすることが可能となる。
【００２０】
また、ローカル日時を変更・設定したことをスケジュール管理部１０５に通知するため、通知するローカル日時情報に変更情報を設定する(ステップ３０５)。
【００２１】
ローカル日時・進捗速度の変更がない場合(ステップ３０３：Ｎｏ）、通知時刻リストに現在のローカル日時と一致する時刻があるか否かを確認し(ステップ３０６)、通知時刻リストに現在のローカル日時と一致する時刻がある場合は（ステップ３０６：Ｙｅｓ）スケジュール管理部１０５に現在のローカル日時情報を通知する(ステップ３０７)。通知時刻リストに現在のローカル日時に該当するデータがない場合は（ステップ３０６：Ｎｏ）、スケジュール管理部１０５へのローカル日時の通知は行わない。
【００２２】
上記の実経過時間÷時刻進捗係数の式で求めた仮想経過時間を、ローカル日時に加算し、ローカル日時を再計算し(ステップ３０８)、ジョブのスケジュール運用に仮想経過時間が適用されている間、ローカル日時算出・通知処理を繰り返す（ステップ３０１に戻る）。
【００２３】
図４は、スケジュール管理部１０５におけるジョブスケジュール運用へのローカル日時適用処理方法の流れを示すフローチャート図である。仮想日時管理部１０３からローカル日時を受け付け(ステップ４０１)、ローカル日時に変更情報が設定されているか否かを判定し(ステップ４０２)、ローカル日時が変更されている場合には（ステップ４０２：Ｙｅｓ）、新たなローカル日時を適用して実行すべきジョブのスケジュール情報を検索してジョブ実行毎の通知時刻を算出し(ステップ４０３)、該当するジョブの開始時刻を通知時刻リスト１０９に設定し、通知時刻リスト１０９の更新を仮想日時管理部１０３に通知する(ステップ４０４)。ローカル日時が変更されていない場合は（ステップ４０２：Ｎｏ）、ジョブのスケジュール情報の検索・通知時刻算出処理（ステップ４０３）および通知時刻リスト１０９の更新処理（ステップ４０４）は行わない。
【００２４】
次いで、通知時刻リスト１０９に、通知されたローカル日時とジョブ開始日時とが一致する実行対象ジョブのデータがあるか否かを判定し(ステップ４０５)、該当するジョブがある場合（Ｙｅｓ）、実行部１１０にジョブの実行指示を通知し、通知時刻リスト上のジョブデータを実行済みの状態に更新する(ステップ４０６)。未実行のジョブに関する開始時刻のデータが、通知時刻リスト１０９からなくなるまで、処理を繰り返す(ステップ４０７)。
【００２５】
図８は、図１においてスケジュール管理部１０５がジョブのスケジュール定義から通知時刻リスト１０９を作成する場合のデータの一例を示す図である。ジョブのスケジュール運用には、実行開始日時、実行サイクル、ジョブの開始/終了が遅延した場合に異常扱いとする閾値の遅延監視時間などのジョブスケジュール情報８０１と、運用日、休業日、１日の開始基準とする時刻、休業日の振替の扱いなどを定義したカレンダー情報８０２と、が適用される。
【００２６】
表示されているジョブスケジュール情報８０１によれば、ジョブ名Ａの実行開始日時は９時ちょうどであり、実行サイクルは３時間毎であり、開始の遅延が２０分以上では異常扱い、終了時刻の遅延が６０分以上では異常遅延扱いとなるように設定されている。カレンダー情報８０２は、表示されている月では、運用日はウイークデイ、休業日は週末（土曜、日曜）であり、一般的なカレンダー通りとなっている。別の月では、例えば臨時の休業日などが設定されたり、その休業日の振替日などが設定されていたりすることがある。スケジュール管理部１０５は、スケジュール情報８０１とカレンダー情報８０２とから、個々のジョブを実行すべき時刻を算出し、ジョブ実行毎の開始時刻を通知時刻リスト１０９に登録する。
【００２７】
図５及び図６は、ジョブスケジュール運用テストに本実施の形態によるローカル日時・進捗速度を適用した場合の一例およびその場合におけるシステム時刻とローカル時刻との推移の例を比較して示した図である。運用テスト期間を（ａ）１２：００〜１６：００、（ｂ）１６：００〜２０：００、（ｃ）２０：００〜２４：００の３つの時間帯に区切り、それぞれ（ａ）８：００、（ｂ）１０：００、（ｃ）１１：００を起点時刻とし、（ａ）＋４．０時間、（ｂ）＋６．０時間 （ｃ）＋９．０時間のシフト時間を加算している。各４．０時間の仮想経過時間に（ａ）２．０、（ｂ）４．０、（ｃ）０．５の時刻進捗係数を適用した場合には、それぞれ、実時間では（ａ）２．０時間、（ｂ）１．０時間、（ｃ）８．０時間が経過する。
【００２８】
この運用テストを、システム時刻８：００から開始した場合、（ａ）ではシステム時刻８：００から１０：００の２．０時間で、ローカル時刻１２：００から１６：００までの４．０時間分のスケジュールを実行し、続いて（ｂ）でシステム時刻１０：００から１１：００の１．０時間で、ローカル時刻１６：００から２０：００までの４．０時間分のスケジュールを実行する。
【００２９】
次の時間帯（ｃ）では、ローカル時刻２０：００から２４：００までの４．０時間分のスケジュールを、システム時刻では１１：００から１９：００までの８．０時間をかけて実行する。運用テスト全体の終了時刻は、ローカル時刻で２４：００、システム時刻で１９：００となり、実経過時間は合計で１１．０時間となることがわかる。
【００３０】
図７は、図５に示すローカル時刻を適用した通知時刻リストに従ってジョブを実行する場合の運用例を示す図である。ローカル時刻を適用した場合に、実際にジョブが開始されるシステム時刻は、以下の式で求められる。
起点時刻＋(通知時刻リストのジョブ開始時刻−(起点時刻＋シフト時間))÷時刻進捗係数
【００３１】
図５（ａ）の仮想時間帯では、ジョブＡ、ジョブＢの通知時刻リスト上の開始時刻に起点時刻８：００、シフト時間＋４．０時間、時刻進捗係数２．０が適用され、システム時刻ではジョブＡは８：１５：００、ジョブＢは８：４５：００に実行開始される。同様に、図５(ｂ)の仮想時間帯では、ジョブＣ、ジョブＤの開始時刻には起点時刻１０：００、シフト時間＋６．０時間、時刻進捗係数 ４．０が適用され、システム時刻ではジョブＣは１０：１５：００、ジョブＤは１０：５２：３０に実行開始される。図５（ｃ）の仮想時間帯では、ジョブＥ、ジョブＦの開始時刻に、起点時刻１１：００、シフト時間＋９．０時間、時刻進捗係数０．５が適用され、システム時刻ではジョブＥは１１：２０：００、ジョブＦは１８：００：００に実行開始されることになる。
【００３２】
このように、本実施の形態によれば、スケジュール定義を変更せずに、様々な条件に応じたスケジュール運用テストを実施することができる。
【００３３】
（まとめ）
本実施の形態による仮想経過時間の速度調整を利用したジョブスケジュールの運用テストシステムによれば、次のような効果がある。
（１）ジョブのスケジュール運用の開始から終了までの期間を複数の時間帯に分割し、その時間帯毎に時刻進捗係数を設定することにより、夜間・休日などのジョブが実行されない時間帯を一気に短縮する、あるいは単位時間あたりに実行するジョブ数に応じて経過時間を調整し、複数のジョブの競合テストや負荷テストを効果的に実施することにより、システムリソースの見積もりを簡単に行うことができる。
（２）ジョブスケジュール装置内に固有のローカル日時を設定するため、スケジュール定義やシステム時刻の変更を伴わずに、ジョブのスケジュール運用の実施時間を変更できる。特に、多数のジョブをそれぞれ異なるスケジュールで実行するシステムで、スケジュール運用のテストを行う場合に有効である。
【産業上の利用可能性】
【００３４】
本発明は、ジョブスケジュールの運用テストシステムなどのシミュレーションに利用可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施の形態によるジョブスケジュールの運用テストシステムの一構成例を示す機能ブロック図である。
【図２】ローカル日時および進捗速度を指示するデータの構成例を示す図である。
【図３】仮想日時管理部におけるローカル日時算出・通知処理方法の流れを示すフローチャート図である。
【図４】スケジュール管理部におけるジョブスケジュール運用へのローカル日時適用処理方法の流れを示すフローチャート図である。
【図５】ジョブスケジュール運用テストに、ローカル日時・進捗速度を適用した例を示す図である。
【図６】図５におけるシステム時刻とローカル時刻との推移を図示した比較図である。
【図７】図５のローカル時刻を適用した通知時刻リストに従ってジョブを実行する場合の運用例を示す図である。
【図８】ジョブのスケジュール定義から通知時刻リストを作成する場合のデータの一構成例を示す図である。
【符号の説明】
【００３６】
１０１…ジョブスケジュール運用装置、１０２…ローカル日時・進捗速度指示部、１０３…仮想日時管理部、１０４…システム日時、１０５…スケジュール管理部、１０６…ジョブ情報格納部、１０７…スケジュール定義、１０８…ジョブ実行定義、１０９…通知時刻リスト、１１０…実行部、２０１…起点時刻、２０２…仮想経過時間、２０３…時刻進捗係数、２０４…実経過時間、３０１…通知時刻リスト変更確認処理、３０２…通知時刻リスト入力処理、３０３…ローカル日時設定・変更確認処理、３０４…ローカル日時算出・保持処理、３０５…ローカル日時変更情報設定処理、３０６…通知時刻リスト上の現在ローカル日時確認処理、３０７…ローカル日時通知処理、３０８…ローカル日時再計算処理、４０１…ローカル日時受付処理、４０２…ローカル日時変更確認処理、４０３…ジョブスケジュール情報検索・通知時刻算出処理、４０４…通知時刻リスト更新・通知処理、４０５…通知時刻リスト上の実行対象ジョブ確認処理、４０６…ジョブ実行指示処理、４０７…通知時刻リスト上の未実行ジョブ情報確認処理、８０１…ジョブスケジュール情報、８０２…カレンダー情報、８０３…スケジュール管理部、８０４…通知時刻リスト。
【図１】
2008234276.tif 000003
【図２】
2008234276.tif 000004
【図３】
2008234276.tif 000005
【図４】
2008234276.tif 000006
【図５】
2008234276.tif 000007
【図６】
2008234276.tif 000008
【図７】
2008234276.tif 000009
【図８】
2008234276.tif 000010