(57)【要約】【課題】ジョブの再実行を自動的に他ノード上でも実行することを可能とする、ジョブ実行制御装置およびプログラムを提供する。【解決手段】実施形態のジョブ実行制御装置は、実行マネージャー部と、複数の実行ノード部と、実行状態共有部とを持つ。実行マネージャー部は、ジョブの実行要求および再実行要求を送出する。複数の実行ノード部の各々は、前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する。実行状態共有部は、前記実行ノード部における前記ジョブの実行状態を保持する。且つ、前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものである。また、前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出する。【選択図】図１
2018049395.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものであり、
前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置。
【請求項２】
前記実行ノード部は、前記ジョブの処理が完了したか否かを確認する際に、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する、
請求項１に記載のジョブ実行制御装置。
【請求項３】
前記実行ノード部は、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも２回、前記実行状態共有部から当該ジョブの前記実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、前記ジョブが前記他の実行ノード部でまだ実行されているか否かを決定する、
請求項１または２に記載のジョブ実行制御装置。
【請求項４】
前記実行マネージャー部から送出される前記実行要求および前記再実行要求をキューに一時的に格納するとともに、前記キューから取り出した前記実行要求および前記再実行要求を、前記実行ノード部のいずれかに渡すメッセージブローカー部、
をさらに備える請求項１から３までのいずれか一項に記載のジョブ実行制御装置。
【請求項５】
前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、前記実行状態共有部から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された前記未処理のステップを再開ポイントとして当該ジョブを再実行する、
請求項１から４までのいずれか一項に記載のジョブ実行制御装置。
【請求項６】
前記実行マネージャー部は、前記ジョブの再実行回数をカウントするとともに、予め指定された前記ジョブの再実行回数の上限値を参照し、前記再実行回数が前記上限値を超える場合には、前記再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する、
請求項１から５までのいずれか一項に記載のジョブ実行制御装置。
【請求項７】
コンピューターを、
ジョブの実行要求および再実行要求を送出する実行マネージャー部と、
前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する複数の実行ノード部と、
前記実行ノード部における前記ジョブの実行状態を保持する実行状態共有部と、
を備えるジョブ実行制御装置であって、
前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものであり、
前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものであり、
前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する、
ジョブ実行制御装置、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ジョブ実行制御装置およびプログラムに関する。
【背景技術】
【０００２】
コンピューター処理において、従来、ジョブの実行を制御する技術が存在する。
ジョブは、入力データと、処理と、出力データとを予め定義したひとまとまりの定義である。また、複数のジョブを連続して実行させるための定義を予め行ったり、条件に応じて異なるジョブを実行させるための定義を予め行ったりすることもある。複数のジョブからなる一連の処理を、例えば「ジョブネット」などと呼ぶことがある。また逆に、１件のジョブを構成する複数の処理単位を、例えば「ジョブステップ」と呼ぶこともある。なお、個々のジョブないしはジョブステップは、正常に実行されて終了する場合もあるし、何らかのエラーにより異常終了する場合もある。
【０００３】
従来の技術において、ジョブの障害発生時に、ジョブ構成の情報等を参照することによりジョブの再実行を試みるなど、人手を介さずに障害からの回復をしようとするための技術が存在する。しかしながら、従来技術では、ジョブが本当に失敗したのか、単にジョブの状態を示す情報にアクセスできないだけなのか、確認していないため、実際にはまだジョブが稼働しているのに失敗したと判断してしまっている可能性があった。
【０００４】
また、従来の技術において、プログラムの分散型実行環境を用いて、複数のジョブを、複数のノードで並列に実行させる技術が存在する。しかしながら、従来技術では、他の実行ノード上でジョブの再実行を自動的に行うことができず、コンピューターのリソースが効果的に使用されていない可能性があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０６４７２３号公報
【特許文献２】特開２０１４−１４２７４１号公報
【特許文献３】特開２０１３−２５７９０３号公報
【特許文献４】特開２００３−０８５０２１号公報
【特許文献５】特開平６−１０３０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ジョブの再実行を自動的に他ノード上でも実行することを可能とする、ジョブ実行制御装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態のジョブ実行制御装置は、実行マネージャー部と、複数の実行ノード部と、実行状態共有部とを持つ。実行マネージャー部は、ジョブの実行要求および再実行要求を送出する。複数の実行ノード部の各々は、前記実行マネージャー部からの前記実行要求または前記再実行要求に基づき、要求されたジョブを実行する。実行状態共有部は、前記実行ノード部における前記ジョブの実行状態を保持する。且つ、前記実行ノード部は、実行している前記ジョブの実行状態を前記実行状態共有部に書き込むものである。また、前記実行マネージャー部は、前記実行ノード部における前記ジョブの実行が失敗したことを検知した場合に、当該ジョブについての前記再実行要求を送出するものである。また、前記実行ノード部は、前記実行マネージャー部から前記ジョブの前記再実行要求を受け取った場合には、前記実行状態共有部に書き込まれた前記実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが前記他の実行ノード部ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態のジョブ実行制御装置１の概略機能構成を示すブロック図。
【図２】第１の実施形態の実行マネージャー部２のより詳細な機能構成を示すブロック図。
【図３】第１の実施形態のメッセージブローカー部３のより詳細な機能構成を示すブロック図。
【図４】第１の実施形態の実行ノード部５のより詳細な機能構成を示すブロック図。
【図５】第１の実施形態のジョブ実行制御装置１にける動作手順の例を示すシーケンスチャート。
【図６】第１の実施形態におけるジョブフローを定義するデータの構成例を示す概略図。
【図７】第１の実施形態の実行状態共有部６が保持する、ジョブの実行状態の情報の構成例を示す概略図。
【図８】第１の実施形態において、ジョブの実行状態の参照と確認の方法を説明するための概略図。
【図９】第１の実施形態において、ジョブの再実行に関する定義を規定するテキストデータを示す概略図。
【図１０】第１の実施形態のジョブ実行制御装置１における、再実行回数の制御の方法を示す概略図。
【図１１】第１の実施形態の再実行回数制御部２２が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図。
【図１２】第１の実施形態の変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図。
【発明を実施するための形態】
【０００９】
以下、実施形態のジョブ実行制御装置およびプログラムを、図面を参照して説明する。
【００１０】
（第１の実施形態）
図１は、本実施形態によるジョブ実行制御装置１の概略機能構成を示すブロック図である。図示するように、ジョブ実行制御装置１は、実行マネージャー部２と、メッセージブローカー部３と、複数の実行ノード部５と、実行状態共有部６とを含んで構成される。
ジョブ実行制御装置１は、１台の筺体内に収容された装置として実現してもよい。また、複数台の筺体でなる装置を通信ネットワーク等で相互に接続して、全体を１個のシステムとして実現してもよい。具体例としては、複数のサーバーコンピューター等を通信ネットワークで相互に接続して、その全体で構成されるシステムを、ジョブ実行制御装置１としてもよい。ジョブ実行制御装置１を構成する各部の機能は、次の通りである。
【００１１】
実行マネージャー部２は、ジョブフローの定義データに基づいて、ジョブの実行順序を制御する機能を有する。また、実行マネージャー部２は、ジョブ実行要求のメッセージを送出する。また、実行マネージャー部２は、ジョブの実行が成功したか失敗したかを検知し、ジョブを再実行すべきであるか否かを判断する。ジョブを再実行すべきである場合には、実行マネージャー部２は、ジョブの再実行を要求するメッセージを送出する。つまり、実行マネージャー部２は、実行ノード部５におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出する場合がある。
【００１２】
なお実行マネージャー部２は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。
【００１３】
メッセージブローカー（message broker）部３は、実行マネージャー部２と実行ノード部５との間において通信メッセージの仲介を行う機能を有する。実行マネージャー部２から実行ノード部５の側に送られるメッセージ（実行要求系のメッセージ）は、実行要求キューに格納され、管理される。実行ノード部５から実行マネージャー部２の側に送られるメッセージ（実行結果系のメッセージ）は、実行結果キューに格納され、管理される。
つまり、メッセージブローカー部３は、少なくとも、実行マネージャー部２から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部５のいずれかに渡すものである。
【００１４】
各々の実行ノード部５は、実行マネージャー部２からの実行要求または再実行要求のメッセージに基づき、要求されたジョブを実行するための機能を有するものである。
各実行ノード部５は、異なるノード上で稼働する。つまり、各実行ノード部５は、物理的にあるいは論理的に独立した環境で稼働する。したがって、ある各実行ノード部５で障害が起こっても他の各実行ノード部５にはその障害が波及しないように、システムを構成している。各実行ノード部５は、すべて同一筺体内に収容されていてもよいし、その一部または全部がそれぞれ異なる筺体に収容されていてもよい。
また、実行ノード部５は、実行状態共有部６への、ジョブの実行状態の情報の記録を行う。つまり、実行ノード部５は、実行しているジョブの実行状態を実行状態共有部６に書き込む。また実行ノード部５は、実行状態共有部６に記録されているジョブの実行状態の情報を参照する。
【００１５】
なお、実行ノード部５は、ジョブの再実行に関する制御を行う。即ち、実行ノード部５は、実行マネージャー部２からジョブの再実行要求を受け取った場合には、実行状態共有部６に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部５でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部５ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行する。
【００１６】
実行ノード部５は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部６から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認するようにしてもよい。
実行ノード部５は、ジョブが他の実行ノード部５でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて複数回（少なくとも２回）、実行状態共有部６に記録された当該ジョブの実行状態を参照し、各回間で実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部５でまだ実行されているか否かを決定するようにしてもよい。
【００１７】
また、実行ノード部５は、実行マネージャー部２からジョブの再実行要求を受け取った場合には、実行状態共有部６に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部５でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部６から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する制御を行ってもよい。
【００１８】
実行状態共有部６は、実行ノード部５におけるジョブの実行状態の情報を保持する。これにより、複数の実行ノード部５間で、ジョブの実行状態を共有できるようになる。実行状態共有部６は、データベース管理システム等のよって管理されたデータとして、ジョブの実行状態の情報を保持する。実行状態共有部６は、ジョブの実行ＩＤに関連付けて、ジョブの実行状態の情報を保持する。
実行状態共有部６は、実行ノード部５からの記録要求により、ジョブの実行状態の情報を書き込む。また、実行状態共有部６は、実行ノード部５からの参照要求により、求められる実行ＩＤを有するジョブの実行状態の情報を提供する。
【００１９】
図２は、実行マネージャー部２のより詳細な機能構成を示すブロック図である。図示するように、実行マネージャー部２は、ジョブネット実行制御部２１と、再実行回数制御部２２と、アラート通知部２３とを含んで構成される。
【００２０】
ジョブネット実行制御部２１は、ジョブの実行順序を定義したジョブネットについて、その実行制御を行う。
【００２１】
再実行回数制御部２２は、ジョブが再実行された回数を記録し、その回数を参照可能とする。
【００２２】
アラート通知部２３は、ジョブの再実行回数が所定の最大値を超えた場合に、アラートを出力する。このアラートを出力することにより、再実行回数が所定値を超えた事象をユーザーに通知することができる。
【００２３】
図３は、メッセージブローカー部３のより詳細な機能構成を示すブロック図である。図示するように、メッセージブローカー部３は、実行要求キュー管理部３１と、実行結果キュー管理部３２と、トランザクション管理部３３とを含んで構成される。
【００２４】
実行要求キュー管理部３１は、実行マネージャー部２から渡されるジョブ実行要求メッセージ（以下、単に「ジョブ実行要求」と呼ぶことがある）、およびその他の実行要求系のメッセージを保持するためのキュー（queue）を管理する。このキューは、先入先出方式（first in, first out）のメモリーであり、実行要求キュー管理部３１内に存在する。キューに格納されたジョブ実行要求は、順次読み出され、実行ノード部５に渡される。
【００２５】
実行結果キュー管理部３２は、実行ノード部５から返されるジョブ実行結果メッセージ（以下、単に「ジョブ実行結果」と呼ぶことがある）、およびその他の実行結果系のメッセージを保持するためのキューを管理する。このキューは、先入先出方式のメモリーであり、実行結果キュー管理部３２内に存在する。キューに格納されたジョブ実行結果は、順次読み出され、実行マネージャー部２に渡される。
【００２６】
トランザクション管理部３３は、ジョブ実行要求およびジョブ実行結果のメッセージの受け渡しの処理において、そのトランザクションを管理する機能を有する。
【００２７】
図４は、実行ノード部５のより詳細な機能構成を示すブロック図である。図示するように、個々の実行ノード部５は、ジョブフロー定義部５１と、ジョブ実行制御部５２と、ジョブ再実行制御部５３と、実行状態記録部５４と、実行状態参照部５５と、実行状態確認部５６とを含んで構成される。
【００２８】
ジョブフロー定義部５１は、ジョブの処理フローの定義を保持し、または参照する機能を有する。
ジョブ実行制御部５２は、ジョブの実行を行うとともに、ジョブの実行状況を制御する。
ジョブ再実行制御部５３は、ジョブの再実行に関する制御を行う。ジョブの再実行に関する制御は、ジョブが他の実行ノード部５でまだ実行されているか否かを確認したり、ジョブが完了しているか否かを確認したり、ジョブの再開ポイントを決定したりする処理を含む。
【００２９】
実行状態記録部５４は、ジョブの実行状態を、実行状態共有部６に記録する機能を有する。ここで、ジョブの実行状態とは、ジョブフロー中におけるどの部分（ステップ）までが実行されたかを表す情報である。
実行状態参照部５５は、実行状態共有部６に記録されているジョブの実行状態の情報を参照する。
【００３０】
実行状態確認部５６は、実行状態参照部５５が参照したジョブの実行状態の情報に基づいて、ある特定のジョブが実行されているかどうかを判断する。例えば、実行状態確認部５６は、実行状態参照部５５を介して、ある特定のジョブの前後に実行される他のジョブの実行状態を取得し、それらの実行状態の情報に基づいて、当該特定のジョブが実行されているかどうかを判断する。
実行状態確認部５６による処理の詳細については、後で、別の図面を参照しながら説明する。
【００３１】
図５は、ジョブ実行制御装置１にける動作手順の例を示すシーケンスチャートである。同図は、ジョブ実行制御装置１内の各部の動作と、それら各部間の相互作用（データのやりとり等）を示すものである。以下、このシーケンスチャートに沿って、動作手順を説明する。
まず、ステップＳ１において、実行マネージャー部２は、ジョブ実行要求をメッセージブローカー部３に送る。このとき、ジョブ実行要求は、実行ＩＤの情報を含んでいる。これを受けて、メッセージブローカー部３は、受信したジョブ実行要求を実行要求キューに書き込む。このジョブ実行要求は、一時的に、実行要求キューに保持される。
なお、ステップＳ１において、メッセージブローカー部３の実行要求キュー管理部３１が、上記のジョブ実行要求のメッセージを実行要求キューに書き込む。
【００３２】
次に、ステップＳ１．１において、１つの実行ノード部５（実行ノード部Ａ）は、メッセージブローカー部３から、ジョブ実行要求を受け取る。つまり、メッセージブローカー部３は、実行要求キューから上記のジョブ実行要求を取り出し、そのジョブ実行要求を上記の実行ノード部５（実行ノード部Ａ）に送信する。
なお、ステップＳ１．１において、メッセージブローカー部３の実行要求キュー管理部３１が、ジョブ実行要求を実行ノード部５に送信する。
【００３３】
次に、ステップＳ２において、上記ステップＳ１．１でジョブ実行要求を受信した実行ノード部５（実行ノード部Ａ）が、ジョブを実行する。ここで実行されるジョブは、渡されたジョブ実行要求が持つ実行ＩＤによって特定されるジョブである。
なお、ステップＳ２において、実行ノード部５のジョブ実行制御部５２が、上記のジョブの実行を制御する。
【００３４】
そして、ステップＳ３において、実行ノード部５（実行ノード部Ａ）は、実行状態共有部６に、ジョブの実行状態を書き込む。このジョブの実行状態の情報は、実行ＩＤを含むものである。これにより、当該実行ＩＤのジョブの実行状態の情報は、共有可能な状態で、実行状態共有部６に記録される。
なお、ステップＳ３において、実行ノード部５の実行状態記録部５４が、ジョブの実行状態を実行状態共有部６に書き込む。
【００３５】
次に、ステップＳ４において、本シーケンス図の流れでは、実行ノード部５（実行ノード部Ａ）が、ジョブの実行を失敗する。つまり、コンピューターでの処理の実行における何らかのエラーにより、ジョブが異常に終了する。
【００３６】
次に、ステップＳ５において、実行ノード部５（実行ノード部Ａ）は、ステップＳ４におけるジョブ実行の失敗を受けて、ロールバック（rollback）メッセージをメッセージブローカー部３に返す。このロールバックメッセージは、失敗したジョブの実行ＩＤを含むものである。メッセージブローカー部３は、このロールバックメッセージを、実行結果キューに書き込む。
なお、ステップＳ５において、メッセージブローカー部３の実行結果キュー管理部３２が、上記のロールバックメッセージを実行結果キューに書き込む。
【００３７】
次に、ステップＳ５．１において、実行マネージャー部２は、メッセージブローカー部３から、上記のロールバックメッセージを受け取る。つまり、メッセージブローカー部３は、実行結果キューから上記のロールバックメッセージを取り出し、そのロールバックメッセージを上記の実行マネージャー部２に送信する。そして、実行マネージャー部２においては、このロールバックメッセージを受けて、当該実行ＩＤによって特定されるジョブの実行回数を記録する。つまり、実行マネージャー部２は、当該実行ＩＤのジョブの実行回数を、１だけ増分させる。
そして、このとき実行マネージャー部２は、当該実行ＩＤのジョブの再実行回数が、予め定められた指定値を超えたか否かを判定する。再実行回数がまだその指定値を超えていない場合には、次にステップＳ６に進む。再実行回数がその指定値を超えた場合には、次にステップＳ８に進む。
なお、ステップＳ５．１において、実行マネージャー部２の再実行回数制御部２２が、上記の再実行回数の記録や、再実行回数の値が指定値を超えているか否かに基づく処理の分岐を制御する。また、メッセージブローカー部３の実行結果キュー管理部３２が、上記のロールバックメッセージを実行マネージャー部２に送信する。
【００３８】
次に、ステップＳ６に進んだ場合、同ステップにおいて、実行マネージャー部２は、ジョブの再実行のメッセージをメッセージブローカー部３に送る。このとき、再実行のメッセージは、実行ＩＤの情報を含んでいる。これを受けて、メッセージブローカー部３は、受信した再実行のメッセージを実行要求キューに書き込む。この再実行メッセージは、一時的に、実行要求キューに保持される。
なお、ステップＳ６において、メッセージブローカー部３の実行要求キュー管理部３１が、上記の再実行のメッセージを実行要求キューに書き込む。
【００３９】
次に、ステップＳ６．１において、１つの実行ノード部５（実行ノード部Ｂ）は、メッセージブローカー部３から、再実行のメッセージを受け取る。つまり、メッセージブローカー部３は、実行要求キューから上記の再実行のメッセージを取り出し、その再実行のメッセージを上記の実行ノード部５（実行ノード部Ｂ）に送信する。なお、ここで、実行ノード部Ｂは、実行ノード部Ａとは異なるノードである。
なお、ステップＳ６．１において、メッセージブローカー部３の実行要求キュー管理部３１が、再実行のメッセージを実行ノード部５に送信する。
【００４０】
次に、ステップＳ６．１．１において、上記の再実行のメッセージを受信した実行ノード部５（実行ノード部Ｂ）は、指定された実行ＩＤによって特定されるジョブの実行状態を参照する。具体的には、実行ノード部５（実行ノード部Ｂ）は、実行状態共有部６に記録されているジョブの実行状態を参照する。
なお、ステップＳ６．１．１において、実行ノード部５の実行状態参照部５５が、実行状態共有部６に記録されているジョブの実行状態を参照する。
【００４１】
次に、ステップＳ６．１．２において、実行ノード部５（実行ノード部Ｂ）は、ステップＳ６．１．１で実行状態共有部６を参照した結果に基づいて、ジョブ実行状態を確認する。そして、実行ノード部５（実行ノード部Ｂ）は、指定された実行ＩＤによって特定されるジョブが、実行されているか否かを判定する。そのジョブが実行されていない場合には、ステップＳ６．１．３に進む。そのジョブが実行されている場合には、ステップＳ６．１．５に進む。
なお、ステップＳ６．１．２において、実行ノード部５の実行状態確認部５６が、上記のジョブの実行状態を確認する。
【００４２】
次に、ステップＳ６．１．３に進んだ場合、同ステップにおいて、実行ノード部５（実行ノード部Ｂ）は、再開ポイントを決定する。具体的には、実行ノード部５（実行ノード部Ｂ）は、上で参照したジョブ実行状態に基づいて、再開ポイントを決定する。
なお、ステップＳ６．１．３において、実行ノード部５のジョブ再実行制御部５３が、上記の再開ポイントの決定を行う。
【００４３】
次に、ステップＳ６．１．３．１において、実行ノード部５（実行ノード部Ｂ）は、ステップＳ６．１．３で決定された再開ポイントから、ジョブを再実行する。
なお、ステップＳ６．１．３．１において、実行ノード部５のジョブ再実行制御部５３が、上記の再実行を制御する。
【００４４】
次に、ステップＳ６．１．４において、上で再実行したジョブの終了後に、ジョブ実行結果をメッセージブローカー部３に返す。このジョブ実行結果は、当該ジョブの実行ＩＤを含むものである。
【００４５】
次に、ステップＳ６．２において、実行マネージャー部２は、メッセージブローカー部３から、上記のジョブ実行結果を受け取る。つまり、メッセージブローカー部３は、実行結果キューから上記のジョブ実行結果を取り出し、そのジョブ実行結果を実行マネージャー部２に送信する。
【００４６】
次に、ステップＳ７において、実行マネージャー部２は、上記のジョブ実行結果を受けて、当該実行ＩＤによって特定されるジョブの実行完了の処理を行う。つまり、実行マネージャー部２のジョブネット実行制御部２１は、当該ジョブの実行が完了したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
【００４７】
以上で、ステップＳ６．１．３に分岐した場合の処理（ジョブ実行状態を確認した結果、実行してなかった場合の処理）を完了する。
【００４８】
次に、ステップＳ６．１．５に進んだ場合、同ステップにおいて、実行ノード部５（実行ノード部Ｂ）は、ジョブの再実行を行わないことを決定する。この処理は、実行ノード部５のジョブ再実行制御部５３により行われる。
以上で、ステップＳ６．１．５に分岐した場合の処理（ジョブ実行状態を確認した結果、実行していた場合の処理）を完了する。
【００４９】
次に、ステップＳ８に進んだ場合、同ステップにおいて、実行マネージャー部２は、指定値を超えて再実行してもジョブの実行が失敗した事象に基づいて、当該実行ＩＤによって特定されるジョブに関して、実行失敗の処理を行う。つまり、実行マネージャー部２のジョブネット実行制御部２１は、当該ジョブの実行が最終的に失敗したことを把握し、ジョブ制御のために内部で管理するステータス情報を更新する。
以上で、ステップＳ８に分岐した場合の処理（再実行回数が指定値を超えていた場合の処理）を完了する。
【００５０】
以上で、シーケンス図全体の処理を終了する。
【００５１】
図６は、ジョブフローを定義するデータの構成例を示す概略図である。このジョブフロー定義データは、実行マネージャー部２のジョブネット実行制御部２１によって管理される。ただし、このジョブフロー定義データは、ジョブ実行制御装置１内の他の各部からも参照可能な形で保持されている。このジョブフロー定義データは、予めユーザー（例えば、システム運用管理者）によって作成され、ジョブ実行制御装置１に入力されるものである。
同図の左側は、ジョブを構成する複数のステップの処理順序関係を視覚的に表すチャートである。なお、ステップの処理順序は、半順序（partial order）で表される。同図の右側は、そのチャートに対応する、ジョブフロー定義のテキストデータである。このテキストデータは、例えば、ＸＭＬ形式やＪＳＯＮ形式などといったコンピューター処理可能な形式で、ジョブ実行制御装置１内に保持される。なお、ＸＭＬは、Extensible Markup Language（エクステンシブル マークアップ ランゲージ，拡張マークアップ言語）の略である。また、ＪＳＯＮは、JavaScript Object Notationの略である。なお、JavaScriptは登録商標である。
【００５２】
図示するジョブフロー定義の例においては、５個のステップ（ジョブステップ）が存在し、それらは「Sｔｅｐ１」から「Sｔｅｐ５」までである。ステップ間の順序関係は、次の通りである。即ち、Ｓｔｅｐ２の処理は、Ｓｔｅｐ１の処理に後続する。Ｓｔｅｐ３の処理は、Ｓｔｅｐ１の処理に後続する。Ｓｔｅｐ２の処理とＳｔｅｐ３の処理との間の順序関係は問われない。Ｓｔｅｐ４の処理は、Ｓｔｅｐ２の処理に後続し、且つＳｔｅｐ３の処理に後続する。そして、Ｓｔｅｐ５の処理は、Ｓｔｅｐ４の処理に後続する。
【００５３】
また、図示するテキストデータにおいて、実体ｊｏｂ（ジョブ）は、属性ｉｄを有する。この属性ｉｄは、既に説明した「実行ＩＤ」である。実体ｊｏｂは、その下位に、実体ｓｅｑｕｅｎｃｅ（シーケンス）または実体ｐａｒａｌｌｅｌ（パラレル）を含むことによりジョブフローを定義している。実体ｓｅｑｕｅｎｃｅは、その下位に、実体ｓｔｅｐや実体ｐａｒａｌｌｅｌを含むことができる。実体ｐａｒａｌｌｅｌは、その下位に、実体ｓｔｅｐや、実体ｓｅｑｕｅｎｃｅを含むことができる。
【００５４】
実体ｓｅｑｕｅｎｃｅは、複数の要素が順次処理の関係にあることを表す。つまり、下位の要素である実体ｓｔｅｐや実体ｐａｒａｌｌｅｌが、記載されている順の先行−後続関係として規定される。
実体ｐａｒａｌｌｅｌは、複数の要素が並列処理の関係にあることを表す。つまり、下位の要素である実体ｓｔｅｐや実体ｓｅｑｕｅｎｃｅに関して、それら要素間での先行−後続関係が規定されず、並列に実行して良いものであることが規定される。
実体ｓｔｅｐは、属性ｉｄを有する。このｉｄは、ステップを識別する情報である。個々の実体ｓｔｅｐは、ジョブ内の処理ステップに対応する。ジョブフローの定義において、ステップは、処理のまとまりとしての最小単位である。
【００５５】
図示するテキストデータでは、１つの要素ｊｏｂ（ｉｄ＝ｊｏｂ１）が、１つの要素ｓｅｑｕｅｎｃｅ（順次処理）を有する。その順次処理は、要素ｓｔｅｐ（ｉｄ＝ｓｔｅｐ１）と、要素ｐａｒａｌｌｅｌと、要素ｓｔｅｐ（ｉｄ＝ｓｔｅｐ４）と、要素ｓｔｅｐ（ｉｄ＝ｓｔｅｐ５）とを有する。つまり、この記述は、ｓｔｅｐ１、要素ｐａｒａｌｌｅｌ、ｓｔｅｐ４、ｓｔｅｐ５が、この順序で実行されるべきものであることを表す。そして、上記の要素ｐａｒａｌｌｅｌは、要素ｓｔｅｐ（ｉｄ＝ｓｔｅｐ２）と、要素ｓｔｅｐ（ｉｄ＝ｓｔｅｐ３）とを有する。つまり、この記述は、ｓｔｅｐ２とｓｔｅｐ３とが並列に処理可能であることを表す。以上の通り、このテキストデータによる表現は、図６の左側に示す処理順序関係のチャートと整合している。
【００５６】
図７は、実行状態共有部６が保持する、ジョブの実行状態の情報の構成例を示す概略図である。図示するように、ジョブ実行状態の情報は、表形式のデータとして実行状態共有部６に保持される。ジョブ実行状態のデータは、例えば、データベース管理システム（ＤＢＭＳ）を用いて管理され、磁気ハードディスク装置や半導体メモリー等の永続的記憶手段に記憶される。ジョブ実行状態のデータは、実行ＩＤ、ステップＩＤ（StepID）、入力、出力の各項目を含む。実行ＩＤは、ジョブを識別する情報である。ステップＩＤは、ジョブ内のステップを識別する情報である。入力は、ステップへの入力データを特定する情報である。出力は、ステップからの出力データを特定する情報である。
【００５７】
図示する例では、実行ＩＤが１００であり、且つステップＩＤがＳｔｅｐ１、Ｓｔｅｐ２、Ｓｔｅｐ３である３行のデータが存在する。そして、実行ＩＤが１００であり、ステップＩＤがその他であるデータは存在しない。これは、実行ＩＤが１００のジョブに関して、Ｓｔｅｐ１とＳｔｅｐ２とＳｔｅｐ３とは既に完了しているが、その他のステップ（例えば、Ｓｔｅｐ４など）は未完了であることを表している。このように、実行状態共有部６は、ジョブの実行経過を含めた実行状態を表すデータを保持している。
【００５８】
図８は、ジョブの実行状態の参照と確認の方法を説明するための概略図である。
例えば、ネットワーク障害などの理由で、一時的に、実行ノード部５にアクセスできない場合にも、その実行ノード部５上では、ジョブがまだ実行されている可能性がある。そのため、他の実行ノード部５上で、ジョブを引き継いで再実行を行う際には、まず当初そのジョブが稼働していた実行ノード部５上での実行状態を確認する。
【００５９】
同図（ａ）は、実行ノード部間での実行状態の共有の態様を示す。ここに示す例では、ある実行ノード部５（実行ノード部Ａと呼ぶ）がジョブを実行し、その実行状態を実行状態共有部６に記録する。そしてその実行ノード部Ａが何らかの障害等により一時的にサービス不能となったとき、あるいはネットワークを介した情報としてサービス不能と判断され得るとき、他の実行ノード部５（実行ノード部Ｂと呼ぶ）上で、ジョブの再実行を試みる。その際、実行ノード部Ｂは、ジョブの実行ＩＤを鍵として実行状態共有部６に記録されている実行状態の情報を参照し、そのジョブの実行状態を確認する。
【００６０】
同図（ｂ）は、上記の状況において実行ノード部Ｂが実行状態を確認する方法を示す。具体的には、実行ノード部Ｂは、所定の時間間隔を有する複数の時刻（例えば、ｔ１とｔ２の２つの時刻）において、それぞれ、実行状態共有部６が保持するデータベースから、目的とするジョブの実行状態の情報を取得する。なおこのとき、時間間隔（ｔ２とｔ１との差）の長さは、例えば１つのジョブステップの実行に要する時間等に基づいて適宜定めることとする。そして、実行ノード部Ｂは、時刻ｔ１における実行状態と、時刻ｔ２における実行状態とを比較する。この比較の結果として、次の３通りのパターンが検出され得る。
【００６１】
パターン１として、時刻ｔ１において参照した実行状態と、時刻ｔ２において参照した実行状態とが等しくない場合がある。この場合は、時刻ｔ１から時刻ｔ２に経過する間に、実行ノード部Ａによって実行状態の記録が更新されたことを意味する。つまり、この場合、実行ノード部Ａがまだジョブを実行中である。この場合、実行ノード部Ｂは、実行ノード部Ａによるジョブ実行が完了するまで待つ。そして、もし実行ノード部Ａがジョブ実行結果を送信できなかった場合には、代わりに、実行ノード部Ｂがジョブ実行結果をメッセージブローカー部３に送信する。
【００６２】
パターン２として、時刻ｔ１において参照した実行状態と時刻ｔ２において参照した実行状態とが等しく、且つジョブフローの最後に既に到達している場合がある。なお、ジョブフローの最後に到達しているか否かは、ジョブフローの定義データと、実行状態共有部６が保持する実行状態のデータとを対比することにより判断可能である。このパターン２の場合、既に、ジョブの実行が完了しているが、ジョブ実行結果がまだ実行ノード部Ａから送信されていない状況である。したがって、この場合には、実行ノード部Ｂは、ジョブ実行結果をメッセージブローカー部３に送信する処理のみを行う。
【００６３】
パターン３として、時刻ｔ１において参照した実行状態と時刻ｔ２において参照した実行状態とが等しく、且つジョブフローの最後にまだ到達していない場合がある。このパターン３の場合、ジョブの途中の所定箇所までは完了し、ジョブのその後の部分については実行されていないことを意味する。よって、実行ノード部Ｂは、実行状態の情報に基づいて、ジョブ再開ポイントを適切に定め、ジョブを再実行する。
【００６４】
上記のパターン３の場合の、再開ポイントの決定方法について説明する。
図６に例示したジョブフロー定義と、図７に例示した実行状態データ（各ステップの入出力の記録）を前提とした場合、実行状態データがＳｔｅｐ４の入出力記録を持っていない。このため、Ｓｔｅｐ４の処理で失敗したと判断できる。よって、再開すべきポイントは、Ｓｔｅｐ４の先頭部分である。したがって、実行ノード部Ｂのジョブ再実行制御部５３は、Ｓｔｅｐ４を再開ポイントとする。
つまり、実行ノード部５は、他の実行ノード部５によって実行されたジョブの実行状態のデータに基づいて、当該ジョブの未実行の部分を特定し、その未実行の処理を再開ポイントとする。そして、実行ノード部５は、決定した再開ポイントから、ジョブを再実行する。
【００６５】
なお、上に示した例では、ステップの切れ目を再開ポイントとするようにしたが、ステップの途中の未処理の部分から、処理を再開するようにしてもよい。その場合、ステップ内で、どこまでが実行済みであるかを表す情報を、実行状態のデータに含めるようにする。
【００６６】
図９は、ジョブの再実行に関する定義を規定するテキストデータを示す概略図である。図示するデータでは、ジョブを起動する際に、ジョブごとに、再実行の可否と、再実行を可能とする場合における再実行上限回数（リトライリミット，再実行回数最大値）とを指定することができる。
【００６７】
同図において、要素ｊｏｂは、属性ｉｄ（ｉｄ＝ｊｏｂ１）を有する。その要素ｊｏｂは、下位に、要素ｊｏｂｎｅｔ（ジョブネット）を有する。なお、ジョブネットは、複数のジョブを含む処理単位である。そして、その要素ｊｏｂｎｅｔは、下位に、要素ｓｅｑｕｅｎｃｅを有する。要素ｓｅｑｕｅｎｃｅは、下位の要素を直列に順次処理させるものである。そして、その要素ｓｅｑｕｅｎｃｅは、下位に、３つの要素ｉｎｖｏｋｅを有する。それら３つの要素ｉｎｖｏｋｅは、属性ｊｏｂＩｄ（ジョブ識別情報）として、それぞれ、ｊｏｂＡ、ｊｏｂＢ、ｊｏｂＣを有している。また、各々の要素ｉｎｖｏｋｅは、属性ｒｅｔｒｉａｂｌｅにより、再実行可否を規定できる。ｒｅｔｒｉａｂｌｅの値がｔｒｕｅ（真）のときには再実行可能であり、その値がｆａｌｓｅ（偽）のときには再実行不可能である。また、再実行可能の場合には、属性ｒｅｔｒｙＬｉｍｉｔにより、再実行上限回数を規定することができる。
【００６８】
図示する例では、ｊｏｂＩｄが「ｊｏｂＡ」であるジョブに関して、再実行可能であり、再実行上限回数が５に設定されている。また、ｊｏｂＩｄが「ｊｏｂＢ」であるジョブに関して、再実行可能であり、再実行上限回数が３に設定されている。ｊｏｂＩｄが「ｊｏｂＣ」であるジョブに関して、再実行不可能と設定されている。
【００６９】
ジョブ実行制御装置１は、上で説明した図９に示すテキストデータにしたがい、ジョブの再実行を制御する。
【００７０】
図１０は、ジョブ実行制御装置１における、再実行回数の制御の方法を示す概略図である。同図において、複数の実行ノード部５は、実行ＩＤが「ｊｏｂＡ」であるジョブを、順次引き継いで再実行することが可能である。第１の実行ノード部５が実行に失敗したとき、その実行ノード部５は、ロールバックメッセージを、メッセージブローカー部３経由で、実行マネージャー部２における再実行回数制御部２２に送る。再実行回数制御部２２は、そのジョブ「ｊｏｂＡ」が何度再実行されているかをカウントするとともに、再実行上限回数を超えているか否かを判断し、その判断に基づいて、再実行メッセージを送出する。その再実行メッセージは、メッセージブローカー部３経由で、他の実行ノード部５に届けられる。再実行メッセージを受けた当該実行ノード部５は、ジョブ「ｊｏｂＡ」を再実行する。２度目以後のジョブ実行失敗においても同様であり、再実行上限回数を超えるまで、ロールバックおよび再実行のプロセスを繰り返すことができる。そして、障害等の何らかの理由により、再実行の回数が指定された再実行上限回数の値を超えた場合には、実行マネージャー部２側の再実行回数制御部２２は、それ以上の再実行を行わず、当該ジョブを実行失敗として終了させる。このとき、再実行回数制御部２２からアラート通知部２３に、実行失敗を示す情報と、そのジョブの実行ＩＤとが通知される。アラート通知部２３は、その実行ＩＤとともに、ジョブの実行失敗を知らせるためのアラート情報を、出力する。このアラート情報により、ユーザー（システム管理者、システム運用担当者等）は、ジョブの実行失敗を知る。
【００７１】
図１１は、再実行回数制御部２２が再実行回数を制御する際の再実行回数カウント情報の構成例を示す概略図である。図示するように、再実行回数カウント情報は、表形式のデータとして実現され得るものであり、実行ＩＤおよび再実行回数カウント（RetryCount）のデータ項目を有する。つまり、実行ＩＤに対応付けて、再実行回数カウントを保持することができる。この再実行回数カウント情報は、例えば実行マネージャー部２からアクセス可能なデータベース管理システム（ＤＢＭＳ）で管理される。
【００７２】
図示するデータ例では、実行ＩＤが「１００」であるジョブに関して、その時点での再実行回数カウントは４である。また、実行ＩＤが「１１１」であるジョブに関して、その時点での再実行回数カウントは２である。また、実行ＩＤが「１２０」であるジョブに関して、その時点での再実行回数カウントは５である。再実行回数制御部２２は、この再実行回数カウント情報を適宜更新することにより、再実行回数をカウントする。
そして、再実行回数制御部２２は、前述の通り、再実行回数が指定された閾値（再実行上限回数）以下であれば、再実行リクエストを送付し、再度実行するようにする。また、再実行回数が指定された閾値（再実行上限回数）を超えていれば、それ以上の再実行によって復旧はできない可能性が高いために、再実行せず、アラート通知部２３がユーザーに対してアラート通知を行う。
【００７３】
上記実施形態では、再実行回数制御部の機能を実行マネージャー部２内に有するものとしたが、下記の変形例によって実施してもよい。
この変形例においては、実行マネージャー部２ではなく、実行ノード部５が再実行回数を制御する機能（再実行制御部の機能）を有する。
また、この変形例においては、各ジョブのジョブフロー定義において、そのジョブの再実行可否と、再実行可能の場合の再実行上限回数とを、指定することができるようにする。
【００７４】
図１２は、この変形例におけるジョブフロー定義のテキストデータの構成例を示す概略図である。このジョブフロー定義のデータは、図２に示したテキストデータと同様に、ｓｔｅｐ１からｓｔｅｐ５までの各ステップの処理順序を規定している。ここで、当該変形例における特徴は、データの第１行目に記述されているように、要素ｊｏｂが、属性ｒｅｔｒｉａｂｌｅおよび属性ｒｅｔｒｙＬｉｍｉｔを有する点である。図示する例では、「ｒｅｔｒｉａｂｌｅ＝ｔｒｕｅ」（再実行可能を表す）、および「ｒｅｔｒｙＬｉｍｉｔ＝５」（再実行上限回数が５であることを表す）が記述されている。
【００７５】
また、この変形例において、各ジョブの再実行回数のカウント値（図１１に示したのと同等のデータ）は、各実行ノード部５からアクセス可能なデータベースに保存され、ノード間で共有される。一例として、実行状態共有部６内に、各ジョブの再実行回数のカウント値を保持するようにしてもよい。そして、実行ノード部５は、これらの再実行回数のカウント値と、再実行上限回数とに基づいて、既に述べたものと同様の再実行の制御を行う。
【００７６】
以上説明した少なくともひとつの実施形態によれば、実行マネージャー部２が、実行ノード部５におけるジョブの実行が失敗したことを検知した場合に、当該ジョブについての再実行要求を送出することにより、また、実行ノード部５は、実行マネージャー部２からジョブの再実行要求を受け取った場合には、実行状態共有部６に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部５でまだ実行されているか否かを確認するとともに当該ジョブの処理が完了したか否かを確認し、当該ジョブが他の実行ノード部５ではもう実行されておらず且つ当該ジョブの処理が完了していない場合には当該ジョブを再実行するようにすることにより、異なるノードにまたがって、ジョブを再実行させることができる。
【００７７】
また、実行ノード部５は、ジョブの処理が完了したか否かを確認する際に、実行状態共有部６から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブが有する全てのステップの処理が完了したか否かを確認する。これにより、障害である可能性があるノードで実行されていたジョブに関して、ジョブの処理が完了しているか否かを判定することができる。
【００７８】
また、実行ノード部５は、ジョブが他の実行ノード部５でまだ実行されているか否かを確認する際に、所定の時間間隔をおいて少なくとも２回、実行状態共有部から当該ジョブの実行状態を参照し、各回間で前記実行状態が変化したか否かを判断することにより、ジョブが他の実行ノード部５でまだ実行されているか否かを決定する。これにより、例えばネットワーク障害等により、失敗したかのように見えるジョブに関して、まだ実行されているか否かを確認することができる。
【００７９】
また、メッセージブローカー部３は、実行マネージャー部２から送出される実行要求および再実行要求をキューに一時的に格納するとともに、前記キューから取り出した実行要求および再実行要求を、実行ノード部５のいずれかに渡す。これにより、実行要求等を複数の実行ノード部５に振り分けることが可能となる。
【００８０】
実行ノード部５は、実行マネージャー部２からジョブの再実行要求を受け取った場合には、実行状態共有部６に書き込まれた実行状態を参照することにより当該ジョブの実行状態を把握し、当該ジョブが他の実行ノード部５でもう実行されておらず且つ当該ジョブの処理がまだ完了していない場合には、実行状態共有部６から当該ジョブの中のどのステップまでが完了したかを示す情報を参照するとともに、当該ジョブを構成するステップの定義の情報を参照することによって、当該ジョブを構成するステップのうちの未処理のステップを特定し、特定された未処理のステップを再開ポイントとして当該ジョブを再実行する。これにより、適切なポイントからの再実行が可能となる。また、計算資源の無駄な消費を抑制することができる。
【００８１】
実行マネージャー部２は、ジョブの再実行回数をカウントするとともに、予め指定されたジョブの再実行回数の上限値を参照し、再実行回数が前記上限値を超える場合には、再実行要求をそれ以上送出せず、当該ジョブの実行が失敗であることを示すアラートを出力する。これにより、ジョブの再実行回数を制御できる。つまり、延々と再実行し続けることを防ぐことができる。
【００８２】
なお、上述した実施形態におけるジョブ実行制御装置１の機能、またはその一部の機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８４】
１…ジョブ実行制御装置、２…実行マネージャー部、３…メッセージブローカー部、５…実行ノード部、６…実行状態共有部、２…実行マネージャー部、２１…ジョブネット実行制御部、２２…再実行回数制御部、２３…アラート通知部、３１…実行要求キュー管理部、３２…実行結果キュー管理部、３３…トランザクション管理部、５１…ジョブフロー定義部、５２…ジョブ実行制御部、５３…ジョブ再実行制御部、５４…実行状態記録部、５５…実行状態参照部、５６…実行状態確認部
【図１】
2018049395.tif 000003
【図２】
2018049395.tif 000004
【図３】
2018049395.tif 000005
【図４】
2018049395.tif 000006
【図５】
2018049395.tif 000007
【図６】
2018049395.tif 000008
【図７】
2018049395.tif 000009
【図８】
2018049395.tif 000010
【図９】
2018049395.tif 000011
【図１０】
2018049395.tif 000012
【図１１】
2018049395.tif 000013
【図１２】
2018049395.tif 000014