(57)【要約】【課題】  エンタープライズシステムの複雑化にともなって、システム管理者の作業負担はますます増大しつつある。【解決手段】  実行指示部１２２は、複数のジョブの実行スケジュールを示すスケジュール設定情報にしたがって、外部のジョブ実行装置に各ジョブの実行を指示する。状態監視部１２４は、実行を指示されたジョブの実行状態を監視する。スケジュール設定情報は、少なくとも複数のジョブの親子関係、各ジョブの実行開始タイミングと実行終了タイミングを示す情報を含む。第１判定部１４２は、状態監視部１２４により監視されているジョブがスケジュールよりも遅れているときには、そのジョブを第１遅延ジョブとして検出する。第２判定部１４４は、第１遅延ジョブの影響を受けて、実行スケジュールよりも遅れるジョブを第２遅延ジョブとして検出する。【選択図】  図２
2006268509.tif 000002
【特許請求の範囲】
【請求項１】
親にあたるジョブの実行終了を条件として子にあたるジョブが実行されるように親子関係が定められた複数のジョブについて、
外部のジョブ実行装置にてジョブを実行させるための実行スケジュールを示すスケジュール設定情報を保持するスケジュール記憶部と、
前記スケジュール設定情報の設定内容を変更するための編集画面を表示させる編集画面表示部と、
前記編集画面において、前記スケジュール設定情報を変更するためのユーザからの入力を受け付ける編集入力部と、
設定変更の入力対象とされたジョブに対して子関係にあるジョブのうち、その変更により実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを影響ジョブとして検出する影響ジョブ検出部と、
を備えることを特徴とするジョブ設定装置。
【請求項２】
前記編集入力部は、前記スケジュール設定情報に対して新規にジョブを追加するためのユーザからの入力を受け付け、
前記影響ジョブ検出部は、新規に追加されたジョブに対して子関係にあるジョブのうち、その追加により実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを影響ジョブとして検出することを特徴とする請求項１に記載のジョブ設定装置。
【請求項３】
前記スケジュール設定情報を図画像として画面表示させるスケジュール表示部を更に備え、
前記スケジュール表示部は、少なくとも前記影響ジョブとそれ以外のジョブをユーザが区別できるようにジョブに対応する図形オブジェクトをそれぞれ異なる態様にて表示させることを特徴とする請求項１または２に記載のジョブ設定装置。
【請求項４】
親にあたるジョブの実行終了を条件として子にあたるジョブが実行されるように親子関係が定められた複数のジョブについて、
外部のジョブ実行装置にてジョブを実行させるための実行スケジュールを示すスケジュール設定情報を変更するためのユーザからの入力を受け付けるステップと、
設定変更の入力対象とされたジョブに対して子関係にあるジョブのうち、その変更により実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを影響ジョブとして検出するステップと、
を備えることを特徴とするジョブ設定方法。
【請求項５】
親にあたるジョブの実行終了を条件として子にあたるジョブが実行されるように親子関係が定められた複数のジョブについて、
外部のジョブ実行装置にてジョブを実行させるための実行スケジュールを示すスケジュール設定情報を変更するためのユーザからの入力を受け付ける機能と、
設定変更の入力対象とされたジョブに対して子関係にあるジョブのうち、その変更により実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを影響ジョブとして検出する機能と、
をコンピュータに発揮させることを特徴とするジョブ設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ジョブの実行を制御するための技術、特に、依存関係を有する複数のジョブの実行スケジュールを管理するための技術、に関する。
【背景技術】
【０００２】
企業や公共施設などの運用を支えるエンタープライズシステム（Enterprise System）は、今や、大小さまざまな組織の基盤システムとして導入が広がっている。エンタープライズシステムは、ノード端末から得られるデータを集計、蓄積、解析、加工した上でより付加価値の高い情報を出力する。エンタープライズシステムは複雑化する組織マネジメントをより効率化するために発展を続けている。
【０００３】
このようなエンタープライズシステムは、ジョブの集合体としてモデリングされることが多い。ジョブとは、たとえば、データベースの更新処理や、各ノード端末から得られたデータに対する演算処理など、システムにおいて基本的な実行単位となる処理である。これらのジョブは、互いに親子関係を有している。各ジョブについては、親にあたるジョブの実行が完了してから子にあたるジョブが実行されるように設計される。
【０００４】
各ジョブの実行スケジュールはあらかじめ設定されている。実行スケジュールとは、たとえば、各ジョブの実行開始時刻や実行終了予定時刻などである。エンタープライズシステムは、実行スケジュールにしたがって各ジョブを実行させる。また、実行された各ジョブの状態が監視され、実行スケジュールと比べて乖離があれば検出される。こうして、エンタープライズシステムはジョブを単位として業務全体を管理する。
【特許文献１】特開平７−１２９４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
エンタープライズシステムは、その導入先となる組織の大きさ、業務の複雑さによってその運用設計は多様である。また、組織の業務ににあわせて設計されるべきシステムであるため、業務の変化に応じてエンタープライズシステムの設計も変更される必要がある。エンタープライズシステムには、高い機能性や信頼性が必要であることはもちろんであるが、設計変更に対する柔軟性、更には障害発生時の対策を用意しておくことも同様に重要である。
【０００６】
実行中のジョブになんらかの障害が発生したときには、他のジョブに対してどの程度の影響が発生するかをシステム管理者は判断する必要がある。従来、システム管理者は、このような場合、実行スケジュールを記載したスケジュールチャートを読み解いて、その影響の範囲を特定し、システム復旧予定時刻を見積もっていた。
【０００７】
システムの設計変更時においても同様である。実行スケジュールを変更するときにも、システム管理者はその変更によりシステムにどの程度のスケジュール的な影響が及ぶかを判断する必要がある。従来、システム管理者はこのような場合にも、スケジュールチャートと参照しながら、システムの設計変更を行っていた。
エンタープライズシステムの複雑化にともなって、このような場合におけるシステム管理者の作業負担はますます増大しつつある。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、その主たる目的は、エンタープライズシステムにおいてジョブの実行スケジュールを好適に制御するための技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある態様は、ジョブ管理装置である。
この装置は、親にあたるジョブの実行終了を条件として子にあたるジョブが実行されるように親子関係が定められた複数のジョブを管理する。各ジョブは実行スケジュールにしたがって、外部のジョブ実行装置にて実行される。この装置は、ジョブの実行状態を監視し、その実行終了タイミングが実行スケジュールよりも遅れるときには、そのジョブを第１遅延ジョブとして検出するとともに、第１遅延ジョブに対して子関係にあるジョブのうち、実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを第２遅延ジョブとして検出する。
【００１０】
この態様によると、あらかじめ定められた実行スケジュールから遅れているジョブを検出するとともに、その影響によって実行スケジュール変更が必要なジョブも特定できる。そのため、あるジョブについて実行遅延が生じても、その影響範囲を簡易に特定しやすくなる。
なお、ここでいう「子関係にあるジョブ」とは、ジョブに対する直接の子にあたるジョブである必要はなく、第１遅延ジョブの実行終了を条件として実行されるように設定されているジョブであればよい。すなわち、第１遅延ジョブの子にあたるジョブだけでなく、その孫、ひ孫にあたるジョブまで含めてもよい。
【００１１】
本発明の更に別の態様は、ジョブ管理システムである。
このシステムは、ジョブ管理装置と、ジョブ管理装置とネットワークを介して接続され、ジョブ管理装置からの指示に応じたジョブを実行するジョブ実行装置と、を備える。
【００１２】
本発明の更に別の態様は、ジョブ設定装置である。
この装置は、親にあたるジョブの実行終了を条件として子にあたるジョブが実行されるように親子関係が定められた複数のジョブを管理する。この装置は、ジョブの実行スケジュールを変更するための編集画面を表示させ、変更のためのユーザからの入力を受け付ける。そして、設定変更の入力対象とされたジョブに対して子関係にあるジョブのうち、その変更により実行開始タイミングを実行スケジュールよりも遅らせるべきジョブを影響ジョブとして検出する。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、エンタープライズシステムにおいてジョブの実行スケジュールを好適に制御するための技術を提供することができる。
【発明を実施するための最良の形態】
【００１５】
図１は、エンタープライズシステムのハードウェア構成図である。
エンタープライズシステム２２０は、企業や公共施設のような組織の業務管理のために導入されるシステムである。エンタープライズシステム２２０は、地理的に分散された複数の組織を統合するシステムとして構成されてもよい。
【００１６】
本実施例におけるエンタープライズシステム２２０は、ジョブ管理装置１００、ジョブ実行装置群２００およびノード群２１０を含む。
ジョブ管理装置１００は、実行スケジュールにしたがって複数のジョブの実行をジョブ実行装置群２００に指示する。ジョブ管理装置１００については、次の図２以降に関連して詳述する。
ジョブ実行装置群２００は、複数のジョブ実行装置２０２を含む。
各ジョブ実行装置２０２は、ジョブ管理装置１００から割り当てられたジョブを実行する。ジョブ管理装置１００は、ジョブ実行装置群２００に含まれるジョブ実行装置２０２のうちあらかじめ定められた割当ルールに応じて、いずれかのジョブ実行装置２０２にジョブを割り当ててもよい。あるいは、各ジョブ実行装置２０２の処理負荷が分散するように、他のジョブ実行装置２０２よりも処理負荷が軽い状態にあるジョブ実行装置２０２に対して優先的にジョブを割り当ててもよい。
ジョブ実行のためのプログラムデータはあらかじめジョブ実行装置２０２が保持してもよい。あるいは、ジョブ実行指示に際してジョブ管理装置１００からジョブ実行装置２０２にプログラムデータがダウンロードされてもよい。ジョブ実行装置２０２は、ジョブの実行に際し、ジョブの実行状態をジョブ管理装置１００やノード群２１０に通知する。
【００１７】
ノード群２１０は、複数のノード端末２１２を含む。
各ノード端末２１２は、ユーザが、業務遂行のために使用するコンピュータ端末である。ノード端末２１２は業務のさまざまなデータを取得する。ジョブ実行装置２０２は、ジョブの実行に際して、ノード端末２１２とデータを送受する。また、ジョブ実行装置２０２は、ノード端末２１２から取得したデータに基づいてジョブを実行する。
【００１８】
まとめると、ノード端末２１２のデータを変数として、ジョブ実行装置２０２はさまざまなジョブを実行する。そして、ジョブの実行タイミングは、ジョブ管理装置１００によって制御されることになる。このように、ノード端末２１２から得られるデータに基づいて、内容定義された複数のジョブが定期的に実行されることにより、エンタープライズシステム２２０の運用がなされている。
なお、ジョブ管理装置１００、ジョブ実行装置群２００およびノード群２１０はイントラネット（Intranet）により互いに接続されている。
【００１９】
図２は、ジョブ管理装置の機能ブロック図である。
ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
ここでは、主として各機能ブロックの発揮すべき機能について述べ、その具体的な作用については、図３以降に関連して説明する。
【００２０】
ジョブ管理装置１００は、ユーザインタフェース処理部１１０、通信部１２０、データ処理部１３０およびデータ格納部１７０を含む。
ユーザインタフェース処理部１１０は、ユーザからの入力処理やユーザに対する情報表示のようなユーザインタフェース全般に関する処理を担当する。なお、ユーザは所定のジョブ実行装置２０２を介してユーザインタフェース処理部１１０とアクセスしてもよい。
通信部１２０は、ジョブ実行装置群２００との通信処理を担当する。通信部１２０は、イントラネットのほかにも、インターネットなどの一般的な通信回線と接続されてもよい。
【００２１】
データ処理部１３０は、ユーザインタフェース処理部１１０や通信部１２０から取得されたデータをもとにして各種のデータ処理を実行する。データ処理部１３０は、ユーザインタフェース処理部１１０、通信部１２０およびデータ格納部１７０の間のインタフェースの役割も果たす。
データ格納部１７０は、あらかじめ用意された各種の設定データや、データ処理部１３０から受け取ったデータを格納する。
【００２２】
ユーザインタフェース処理部１１０は、入力部１１２と表示部１１４を含む。
入力部１１２は、ユーザからの入力操作を受け付ける。表示部１１４は、ユーザに対して各種情報を表示する。
通信部１２０は、実行指示部１２２と状態監視部１２４を含む。
実行指示部１２２は、各ジョブ実行装置２０２に対してジョブの実行を指示する。状態監視部１２４は、各ジョブ実行装置２０２におけるジョブの実行状態を実行情報として取得する。実行情報とは、たとえば、ジョブの実行開始時刻、実行終了時刻、実行に要した時間、終了ステータスなどである。ジョブ実行装置２０２は、このような実行情報をジョブ管理装置１００に適宜送信する。ここで、終了ステータスとは、正常終了、異常終了、あるいは、ジョブが実行途中でユーザにより実行キャンセルされた場合のスキップ終了など、ジョブの終了態様を示す情報である。
【００２３】
データ格納部１７０は、設定情報記憶部１７２と実績情報記憶部１７４を含む。
設定情報記憶部１７２は、スケジュール設定情報を保持する。スケジュール設定情報とは、複数のジョブの実行スケジュールを示す情報である。実績情報記憶部１７４は、実行情報を元にして、各ジョブの実行実績を実績情報として保持する。
ジョブは、親にあたるジョブが実行終了したことを条件として子にあたるジョブが実行されるように、互いに親子関係が定められている。また、各ジョブは実行開始予定時刻や実行終了予定時刻があらかじめスケジューリングされている。スケジュール設定情報はジョブの親子関係のほかにも、実行開始予定時刻や実行終了予定時刻についての情報を含む。スケジュール設定情報については、次の図３以降、特に図４に関連して詳述する。
実績情報は、ジョブが実際に実行に要した時間である実行時間を示す情報である。実績情報について、特に図５に関連して詳述する。
【００２４】
データ処理部１３０は、遅延判定部１４０、スケジュール調整部１５０および実行制御部１６０を含む。
実行制御部１６０は、スケジュール設定情報にしたがって、各ジョブの実行開始タイミングを制御する。実行開始タイミングに至ったときには、実行指示部１２２にジョブの実行を指示する。実行制御部１６０は、そのために時計機能を内蔵する。
【００２５】
遅延判定部１４０は、各ジョブが実行スケジュールから遅れていないか、あるいは、実行スケジュールから遅れそうかを判定する。遅延判定部１４０は、第１判定部１４２と第２判定部１４４を含む。第１判定部１４２は、実行中のジョブが実行スケジュールよりも遅れているか否かを判定する。以下、第１判定部１４２により検出されたジョブのことを「第１遅延ジョブ」とよぶ。第２判定部１４４は、第１遅延ジョブの影響により実行スケジュールよりも遅れることが想定されるジョブを「第２遅延ジョブ」として検出する。
【００２６】
たとえば、第１遅延ジョブの実行終了を条件として実行開始されるジョブの場合、第１遅延ジョブの実行終了時刻が遅れれば、そのジョブの実行開始時刻も遅れてしまう可能性がある。特に、第１遅延ジョブの遅れが大きい場合には、複数のジョブに対してその影響が波及する。第２判定部１４４は、第１遅延ジョブの影響がどの程度まで及ぶかを判定する機能ブロックであるといえる。
スケジュール調整部１５０は、第１遅延ジョブや第２遅延ジョブが検出されたときに、これらのジョブの実行スケジュールを再設定する。具体的な再設定方法については、特に図６に関連して詳述する。
なお、第１遅延ジョブと第２遅延ジョブをまとめていうときには、単に、「遅延ジョブ」とよぶものとする。
【００２７】
図３は、本実施例において初期設定時におけるジョブのスケジュールチャートである。
同図では、ジョブ１〜ジョブ６の６つのジョブを例として説明するが、実際には、これらのほかにも多くのジョブがスケジュール管理の対象となりうる。表示部１１４は、同図に示すような態様にてスケジュールチャートを画面表示することもできる。
ジョブオブジェクト１８０は、各ジョブを図形オブジェクトとして表現したものである。ジョブ１は、１０：００に実行開始予定のジョブである。そして、１０：３０に実行終了が予定されている。ただし、ジョブの実行は、ジョブ実行装置２０２における処理負荷などによる影響を受けるので、実行終了予定時刻はあくまでも予定の時刻である。
【００２８】
ジョブ１の実行終了を条件として、ジョブ２とジョブ５が実行可能となる。ジョブ２とジョブ５は共に、親にあたるジョブ１の実行終了予定時刻よりも遅い時刻を実行開始時刻としている。ここでは、ジョブ１の子にあたるジョブ（以下、単に「子ジョブ」とよぶ）は、ジョブ２とジョブ５である。このように、あるジョブに対する直接的な子ジョブのことを「狭義の子ジョブ」とよぶ。一方、ジョブ３、ジョブ４、ジョブ６も、ジョブ１の実行終了を条件として実行されるジョブである。ただし、これらのジョブはジョブ１に対する直接的な子ジョブではない。以下、このような、あるジョブに対する間接的な子ジョブまで含めていうときには「広義の子ジョブ」とよぶ。本明細書においては、特に断らないかぎり、「子ジョブ」というときには「広義の子ジョブ」を指すものとする。  
【００２９】
実行スケジュールは、スケジュール設定情報として設定情報記憶部１７２に記憶されている。実行制御部１６０は、時計機能により時間を計測する。そして、いずれかのジョブの実行開始時刻に至ったら、そのジョブを実行するように実行指示部１２２に指示する。実行指示部１２２は、指示されたジョブをジョブ実行装置２０２に割り当てる。ジョブ実行装置２０２は割り当てられたジョブを実行する。このとき、状態監視部１２４は、ジョブ実行装置２０２との通信により、ジョブの実行状態を監視する。
表示部１１４は、同図に示したジョブの実行スケジュールをグラフィック表示する。詳しくは後述するが、ユーザはこのような画面を見ながらジョブの実行スケジュールを変更することもできる。
【００３０】
図４は、ジョブ設定データのデータ構造図である。
ジョブ設定データ２５０は、各ジョブについてのスケジュールに関する設定情報を示す。ジョブ設定データ２５０の集合として、スケジュール設定情報が構成される。すなわち、スケジュール設定情報は、これらのジョブ設定データ２５０がリスト構造となって構成される。
【００３１】
運用日付欄２３２は、ジョブの実行が開始された日付を示す。自ジョブ名欄２３６は、ジョブの名称を示す。ここでは、図３に示したジョブ５のジョブ設定データ２５０を例として説明している。親ジョブ名欄２３８は、親にあたるジョブ（以下、単に「親ジョブ」とよぶ）の名前を示す。ここでは、直接の親となる狭義の親ジョブのみを示す。子ジョブ名欄２４０は、子ジョブの名前を示す。ここでも直接の子となる狭義の子ジョブのみを示す。開始時刻予定欄２４２は、ジョブの実行開始時刻を示す。終了時刻予定欄２４４は、ジョブの実行終了予定時刻を示す。実行終了予定時刻は、システム設計者が見積もって設定してもよい。
【００３２】
図５は、実績情報記憶部のデータ構造図である。
実績情報記憶部１７４は、ジョブの実行実績を示す実績データを保持する。ジョブ名欄１８６はジョブの名前を示す。実行時間欄１８８は、過去におけるジョブの実行時間を示す。たとえば、ジョブ１は、３月４日には実行に２４分間を要しており、３月３日は２８分間を要している。なお、実績情報記憶部１７４は、所定期間における実行時間の平均値など、実行情報を加工したデータとして実績情報を保持してもよい。
ジョブ５は、図３のスケジュールチャートにて示したように１０：４０に実行が開始され１０：５０に実行の終了が予定されるジョブである。すなわち、１０分間の実行時間が想定されている。しかし、３月３日には、１６０分間を実行時間として要している。そのため、３月３日の運用においては、ジョブ５が全体としての実行スケジュールを狂わせていることがわかる。すなわち、３月３日の運用においては、ジョブ５が第１遅延ジョブとして検出される。
次に、このような３月３日におけるジョブ５の実行遅延を例として、次の図６にて第２遅延ジョブの検出方法およびスケジュール再設定方法を説明する。
【００３３】
図６は、遅延発生時におけるジョブのスケジュールチャートである。
ここでは、ジョブ５の実行開始時刻は１０：４０で初期設定と変わらないが、実行終了時刻は１２：２０となっている。初期設定時における実行終了予定時刻は、図３に示したように１０：５０であるので、ジョブ５は実行スケジュールよりも大幅に遅れている。状態監視部１２４は、このジョブ５の実行が終了したとき、時刻が１２：２０であることを検出する。第１判定部１４２は、スケジュール設定情報に示される終了予定時刻「１０：４０」よりも実際の実行終了時刻「１２：２０」が遅いため、ジョブ５を第１遅延ジョブとして検出する。
【００３４】
ジョブ６は、ジョブ５の狭義の子ジョブである。ジョブ５の実行終了時刻は、ジョブ６の実行開始時刻として予定されている１１：００よりも遅い時刻である。これにより、第２判定部１４４は、ジョブ６を第２遅延ジョブとして検出する。スケジュール調整部１５０は、ジョブ６の実行開始時刻を遅い時刻にスケジュール設定しなおす。同図においては、ジョブ６の実行開始時刻は１２：２５に再設定されている。また、本来、ジョブ６の実行時間は３０分間が予定されているので、あわせてジョブ６の実行終了予定時刻も１２：５５に再設定される。
【００３５】
ジョブ４は、ジョブ５の広義の子ジョブであり、ジョブ６の狭義の子ジョブである。ここで、ジョブ６のスケジュール再設定後の実行終了予定時刻は１２：５５である。これは、ジョブ６の実行開始時刻として予定されている１３：００よりも早い時刻である。そのため、第２判定部１４４は、ジョブ４を第２遅延ジョブとして検出しない。ジョブ４に対する子ジョブが存在しても、それらの子ジョブには、ジョブ５の実行遅延の影響が及ばない。したがって、ジョブ５の実行遅延による影響は、ジョブ６にまでは及ぶが、ジョブ４までは及ばないといえる。同図においては、第１遅延ジョブであるジョブ５と第２遅延ジョブであるジョブ６に対応するジョブオブジェクト１８０がハッチングされている。
【００３６】
表示部１１４は、第１遅延ジョブが検出されたときには、図６に示すようなグラフィカルな態様にてスケジュールチャートを表示する。このとき、第１遅延ジョブと第２遅延ジョブに対応するジョブオブジェクト１８０は、他のジョブオブジェクト１８０とは異なる色彩や形状にて表示されてもよい。あるいは、遅延ジョブに対応するジョブオブジェクト１８０には、その旨を示す文字や記号が付記されて表示されてもよい。
このような表示方法によれば、ジョブ管理装置１００のユーザは、第１遅延ジョブが検出されたときに、その影響が及ぶジョブの範囲を簡易に視認できる。
【００３７】
図７は、遅延ジョブの検出処理過程を示すフローチャートである。
まず、状態監視部１２４は、いずれかのジョブ実行装置２０２において実行中のジョブが実行完了したときにこれを検出する（Ｓ１０）。ジョブ実行装置２０２は、ジョブの実行を完了したときには、その旨を示すデータを通信部１２０に送信する。検出されないかぎり（Ｓ１０のＮ）、以下の処理は実行されない。実行終了が検出されたときには（Ｓ１０のＹ）、第１判定部１４２はスケジュール設定情報からみて、そのジョブの実行終了時刻に遅延を生じているか判定する（Ｓ１２）。
【００３８】
遅延が発生していなければ、すなわち、そのジョブが第１遅延ジョブでなければ（Ｓ１２のＮ）、後述するＳ２４に処理はスキップする。遅延が発生していれば、すなわち、第１遅延ジョブが検出されれば（Ｓ１２のＹ）、第２判定部１４４は、第１遅延ジョブに広義の子ジョブがあるか否かを判定する（Ｓ１４）。子ジョブがなければ（Ｓ１４のＮ）、処理はＳ２４にスキップされる。子ジョブがあれば（Ｓ１４のＹ）、第２判定部１４４はその子ジョブのスケジュールを再設定する必要があるか否かを判定する（Ｓ１６）。
【００３９】
第１遅延ジョブの実行終了時刻がその子ジョブの実行開始時刻を超えた場合には、第２判定部１４４はスケジュールの再設定が必要と判定する。再設定が必要なときには、すなわち、その子ジョブが第２遅延ジョブであると判定されたときには（Ｓ１６のＹ）、スケジュール調整部１５０は、その子ジョブのスケジュールを再設定する（Ｓ１８）。たとえば、親ジョブの実行終了予定時刻よりも所定時間以上、たとえば、５分程度後の時刻が実行開始時刻となるようにスケジュールを再設定する。また、それにあわせて、子ジョブの実行終了予定時刻も調整する。一方、再設定の必要がないとき、すなわち、第１遅延ジョブの実行遅延によりスケジュールの再設定が必要なければ（Ｓ１６のＮ）、Ｓ１８はスキップされる。
【００４０】
第１遅延ジョブの広義の子ジョブすべてについてＳ１６およびＳ１８のスケジュール性設定に関する処理が終了していなければ（Ｓ２０のＮ）、第２判定部１４４は残りの子ジョブの中から次の子ジョブを選択する（Ｓ２２）。このとき、選択された子ジョブについてスケジュールの再設定が必要かどうか再び判定処理される（Ｓ１６）。こうして、第１遅延ジョブが検出されたときには、その広義の子ジョブすべてについてスケジュール再設定の要否が判定される。
これにより、第１遅延ジョブにより影響を受ける子ジョブの範囲が特定される。また、それに付随してスケジュールの再設定がなされる。そのため、システムの復旧予定時刻の見積もりを簡易に実行できる。
【００４１】
Ｓ２４において、データ処理部１３０は実績情報記憶部１７４に対して、ジョブの実行情報を実績情報に反映させて記録する。本実施例においては、図５にて示したように運用日ごとに各ジョブの実行時間が実績情報として記録される。変形例として、データ処理部１３０はＳ２４において所定期間における各ジョブの実行時間の平均値を計算してもよい。
【００４２】
Ｓ１２においては、スケジュール上の実行終了予定時刻を実際の実行終了時刻が超えたか否かにより第１遅延ジョブを検出するとして説明した。そのほかにも、スケジュール設定情報における実行終了予定時刻からみて所定時間以上経過したとき、あるいは、実行終了予定時刻より前であっても、所定の閾値として定めた時刻に遅れた場合には第１遅延ジョブとして検出してもよい。これは、第２遅延ジョブの検出判定についても同様である。
【００４３】
Ｓ１８において、スケジュール調整部１５０は、再設定された実行開始時刻にスケジュール設定情報にて想定されていた実行時間を加算することにより、実行終了予定時刻を割り出す。そのほかにも、スケジュール調整部１５０は、実績情報記憶部１７４から特定される実行時間を参照して実行終了予定時刻を割り出してもよい。たとえば、ジョブ６の実行開始時刻が１２：２５に再設定されたとする。ここで、ジョブ６の平均実行時間が２５分であれば、実行終了予定時刻は１２：５０として再設定されてもよい。このような態様によれば、より実態に近い実行時間にあわせてスケジュール調整できる。また、データ処理部１３０は、実績情報を参照して、適宜、各ジョブの実行終了予定時刻を変更してもよい。このような態様によれば、エンタープライズシステム２２０の運用中であっても、適宜最適な実行終了予定時刻を設定できる。
【００４４】
第１判定部１４２は、ジョブの実行が終了したときに第１遅延ジョブであるか否かを判定するのではなく、ジョブの実行中において第１遅延ジョブであるか否かを判定してもよい。スケジュール設定情報は、ジョブの実行開始時刻や実行終了予定時刻だけでなく、ジョブの実行フェーズごとに複数の時刻を設定してもよい。たとえば、３段階のフェーズに分けることができるジョブの場合、第１フェーズの終了予定時刻、第２フェーズの終了予定時刻がスケジュール設定情報として含まれてもよい。そして、第１判定部１４２は、状態監視部１２４から得られるジョブの実行情報を参照して、第１フェーズの終了予定時刻や第２フェーズの終了予定時刻について実行スケジュールからの遅れを検出することにより、第１遅延ジョブを検出してもよい。このような態様によれば、ジョブの実行中において遅延の発生を判断できるので、より早い段階で障害の検出、スケジュール調整、影響範囲の特定を実行できる。
【００４５】
図８は、新規ジョブ追加時におけるジョブのスケジュールチャートである。
表示部１１４が表示するスケジュール編集用の画面において、ユーザは新たにジョブを追加したり、あるいはジョブのスケジュール設定を変更できる。ここでは、図３に示したスケジュールチャートにおいて、新たにジョブ７が新規に追加される場合を示す。
【００４６】
ユーザは、ＧＵＩ（Graphical User Interface）により、ジョブ５とジョブ６の間にジョブ７のジョブオブジェクト１８０を挿入する。これにより、ジョブ７はジョブ５の狭義の子ジョブとなり、ジョブ６の狭義の親ジョブとなる。ここでは、ユーザはジョブ７の実行開始時刻を１２：００、実行終了予定時刻を１２：３０として設定している。データ処理部１３０は、この入力に応じて、ジョブ７に対応するジョブ設定データ２５０を設定情報記憶部１７２に格納する。また、これにあわせて、ジョブ５に対応するジョブ設定データ２５０の子ジョブ名欄２４０もジョブ７に書き換えられる。ジョブ６に対応するジョブ設定データ２５０の親ジョブ名欄２３８もジョブ７に書き換えられる。
【００４７】
その一方、ジョブ７の新規追加により、ジョブ６の実行開始時刻１１：００がジョブ７の実行終了予定時刻を１２：３０よりも早くなってしまうので、スケジュールを再設定する必要がある。
【００４８】
図９は、新規ジョブが追加されスケジュール調整されたあとのスケジュールチャートである。
第１判定部１４２は、編集対象となったジョブ７を第１遅延ジョブに相当するジョブ、すなわち、遅延の発生源となるジョブ（以下、「編集ジョブ」とよぶ）として特定する。そして、第２判定部１４４は、ジョブ７の広義の子ジョブについて、スケジュール再設定が必要な子ジョブを特定する。ここでは、ジョブ６のスケジュールについて再設定が必要である。以下、編集ジョブにより、スケジュール再設定の必要が生じるジョブのことを「影響ジョブ」とよぶ。
【００４９】
スケジュール調整部１５０は、少なくともジョブ７の実行終了予定時刻１２：３０よりも遅い時刻をジョブ６の実行開始時刻として設定する。ジョブ６の実行開始時刻の遅延にあわせて、その実行終了予定時刻も繰り延べされ１３：３０となる。
【００５０】
第２判定部１４４は、ジョブ６の狭義の子ジョブ、すなわち、ジョブ７の広義の子ジョブであるジョブ４についても、スケジュール再設定が必要が判定する。言い換えれば、ジョブ４が影響ジョブに相当するか判定する。ジョブ４の本来の実行開始時刻は１３：００に設定されているので、ジョブ６の新しい実行終了予定時刻１３：３０より早くなってしまう。そのため、スケジュール調整部１５０は、同様の方法にてジョブ４のスケジュールを再設定する。データ処理部１３０は、影響ジョブのジョブ設定データ２５０を更新して、設定情報記憶部１７２に記録する。
【００５１】
表示部１１４は、編集ジョブであるジョブ７と、その編集の影響によってスケジュール変更された影響ジョブであるジョブ６およびジョブ４のジョブオブジェクト１８０を、他のジョブのジョブオブジェクト１８０とは異なる色彩や形状にて表示させる。これにより、ユーザはスケジュールチャートの編集中であっても、スケジュール変更による影響範囲を簡易に視認できる。
【００５２】
図１０は、新規ジョブの追加にともなう処理過程を示すフローチャートである。
まず、いずれかのジョブについて新規追加も含めた設定変更があるかを第１判定部１４２は判定する（Ｓ４０）。変更がなければ以下の処理は実行対象とはならない。変更があれば（Ｓ４０のＹ）、第２判定部１４４は編集ジョブについて広義の子ジョブがあるかを判定する（Ｓ４２）。なければ（Ｓ４２のＮ）、以下の処理は実行対象とならない。子ジョブが存在すれば（Ｓ４２のＹ）、第２判定部１４４はその子ジョブのスケジュール再設定が必要か、すなわち、その子ジョブが影響ジョブであるかを判定する。再設定が必要であれば（Ｓ４４）、スケジュール調整部１５０はその子ジョブのスケジュールを再設定する（Ｓ４６）。再設定が必要でなければ（Ｓ４４のＮ）、Ｓ４６の処理はスキップされる。編集ジョブの広義の子ジョブすべてについてＳ４４やＳ４６のスケジュール再設定処理が完了していなければ（Ｓ４８のＮ）、第２判定部１４４は次の子ジョブを選択する（Ｓ５０）。そして、再び再設定の要否が判定される（Ｓ４４）。一方、すべての子ジョブについての処理が完了していれば（Ｓ４８のＹ）、処理は終了する。
【００５３】
以上、本実施例におけるエンタープライズシステム２２０、特にジョブ管理装置１００によれば、親子関係を有するジョブの実行がスケジュールから遅れた場合であっても、その影響範囲を簡易に特定できる。また、図７に関連して説明したように、ジョブの進捗度により実行中の遅延の有無を判定してもよい。スケジュール調整部１５０は、第１遅延ジョブや編集ジョブによる影響が他のジョブに及ぶときには、これらのジョブのスケジュールを自動的に再調整する。そのため、システム管理者は表示されるスケジュールチャートによって、システムがスケジュール通りに復旧するまでに要する時間を容易に見積もることができる。特に、表示部１１４は遅延ジョブや編集ジョブ、影響ジョブなどを他のジョブとは異なる態様にて図表示するので、システム管理者は迅速にシステム全体において注目すべき箇所を特定できる。これは、特に、何百、何千というジョブによって構成されるエンタープライズシステム２２０については特に有効な機能であるといえる。
【００５４】
以上、実施の形態をもとに本発明を説明した。なお本発明はこの実施の形態に限定されることなく、そのさまざまな変形例もまた、本発明の態様として有効である。
【００５５】
なお、請求項に記載のスケジュール表示部や編集画面表示部の機能は、本実施例においてはユーザインタフェース処理部１１０、特に、表示部１１４により実現される。請求項に記載のジョブ設定装置は、本実施例においてはジョブ管理装置１００の機能のうち、ジョブのスケジュール編集に関連する一部の機能として実現される。
なお、これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【図面の簡単な説明】
【００５６】
【図１】エンタープライズシステムのハードウェア構成図である。
【図２】ジョブ管理装置の機能ブロック図である。
【図３】本実施例において初期設定時におけるジョブのスケジュールチャートである。
【図４】ジョブ設定データのデータ構造図である。
【図５】実績情報記憶部のデータ構造図である。
【図６】遅延発生時におけるジョブのスケジュールチャートである。
【図７】遅延ジョブの検出処理過程を示すフローチャートである。
【図８】新規ジョブ追加時におけるジョブのスケジュールチャートである。
【図９】新規ジョブが追加されスケジュール調整されたあとのスケジュールチャートである。
【図１０】新規ジョブの追加にともなう処理過程を示すフローチャートである。
【符号の説明】
【００５７】
１００  ジョブ管理装置、  １１０  ユーザインタフェース処理部、  １１２  入力部、  １１４  表示部、  １２０  通信部、  １２２  実行指示部、  １２４  状態監視部、  １３０  データ処理部、  １４０  遅延判定部、  １４２  第１判定部、  １４４  第２判定部、  １５０  スケジュール調整部、  １６０  実行制御部、  １７０  データ格納部、  １７２  設定情報記憶部、  １７４  実績情報記憶部、  １８０  ジョブオブジェクト、  ２００  ジョブ実行装置群、  ２０２  ジョブ実行装置、  ２１０  ノード群、  ２１２  ノード端末、  ２２０  エンタープライズシステム、  ２５０  ジョブ設定データ。
【図１】
2006268509.tif 000003
【図２】
2006268509.tif 000004
【図３】
2006268509.tif 000005
【図４】
2006268509.tif 000006
【図５】
2006268509.tif 000007
【図６】
2006268509.tif 000008
【図７】
2006268509.tif 000009
【図８】
2006268509.tif 000010
【図９】
2006268509.tif 000011
【図１０】
2006268509.tif 000012