[第一の実施形態]
本発明の第一の実施形態について説明する。
図1は、本実施形態のジョブ管理装置1の構成例を示すブロック図である。本実施形態のジョブ管理装置1は、取得部11と、特定部12と、制御部13とを含む。
ジョブ管理装置1は、待機系のシステムに含まれる。待機系のシステムは、図示されないジョブ実行装置(以降、図示されないジョブ実行装置を単にジョブ実行装置と称する)を含む。ジョブ実行装置は、ジョブを実行する。現用系のシステムに障害が発生した場合に、ジョブ管理装置1は、ジョブを待機系のジョブ実行装置に実行させる。
取得部11は、現用系のジョブ実行装置を含むシステムに障害が発生した場合に、待機系のジョブ実行装置から実行情報を取得する。待機系のジョブ実行装置には、現用系のジョブ実行装置により実行されたジョブの成果物と、現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、障害が発生する前に複製される。
特定部12は、管理情報と、取得部11によって取得された実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置に実行させるジョブとして特定する。管理情報は、ジョブを待機系のジョブ実行装置に実行させるか否かを判定するための情報である。管理情報は、ジョブ管理装置1に含まれる記憶部(図示せず)に記憶される。
制御部13は、特定されたジョブを待機系のジョブ実行装置に実行させる。
このように、ジョブ管理装置1は、現用系のジョブ実行装置を含むシステムに障害が発生した場合に、ジョブを実行する待機系のジョブ実行装置から、実行情報を取得する。待機系のジョブ実行装置には、現用系のジョブ実行装置により実行されたジョブの成果物と、現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、障害が発生する前に複製されている。また、ジョブ管理装置1は、ジョブを待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、待機系のジョブ実行装置から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置に実行させるジョブとして特定する。また、ジョブ管理装置1は、特定されたジョブを待機系のジョブ実行装置に実行させる。
このように、ジョブ管理装置1は、障害が発生した場合に、待機系のジョブ実行装置における各ジョブの実行要否を、管理情報と、障害が発生する前に複製されていた実行情報とに基づいて速やかに判定することができる。そして、ジョブ管理装置1は、障害が発生する前に待機系のジョブ実行装置に複製されていた、現用系のジョブ実行装置が実行したジョブの成果物を活用して、待機系のシステムの運用を開始することが可能になる。このため、迅速にシステムを復旧することが可能になる。
次に、図2を用いて、本実施形態のジョブ管理装置1の動作例を説明する。図2は、ジョブ管理装置1の動作例を示すフローチャートである。
取得部11は、ジョブを実行する現用系のジョブ実行装置を含むシステムに障害が発生した場合に、待機系のジョブ実行装置から実行情報を取得する(ステップS101)。待機系のジョブ実行装置には、現用系のジョブ実行装置により実行されたジョブの成果物と、現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、障害が発生する前に複製されている。
特定部12は、管理情報と、取得部11によって取得された実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置に実行させるジョブとして特定する(ステップS102)。管理情報は、ジョブを待機系のジョブ実行装置に実行させるか否かを判定するための情報である。
制御部13は、特定されたジョブを待機系のジョブ実行装置に実行させる(ステップS103)。
このように、ジョブ管理装置1は、ジョブを待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、待機系のジョブ実行装置から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置に実行させるジョブとして特定する。また、ジョブ管理装置1は、特定されたジョブを待機系のジョブ実行装置に実行させる。このように、ジョブ管理装置1は、障害が発生した場合に、待機系のジョブ実行装置における各ジョブの実行要否を、管理情報と、障害が発生する前に複製されていた実行情報とに基づいて速やかに判定することができる。そして、ジョブ管理装置1は、障害が発生する前に待機系のジョブ実行装置に複製されていた、現用系のジョブ実行装置が実行したジョブの成果物を活用して、待機系のシステムの運用を開始することが可能になる。このため、迅速にシステムを復旧することが可能になる。
[第二の実施形態]
次に、本発明の第二の実施の形態におけるジョブ管理装置4について具体的に説明する。
まず、図3および図4を用いて、ジョブ管理装置4を含む待機系のジョブ管理システム2の構成例を説明する。図3は、本実施形態の待機系のジョブ管理システム2および現用系のジョブ管理システム5の構成例を示す図である。図4は、本実施形態のジョブ管理システム2の構成例を示すブロック図である。
図3および図4に示すように、本実施形態の待機系のジョブ管理システム2は、待機系のジョブ実行装置3a,3b,3c,・・・,3nと、待機系のジョブ管理装置4とを含む。(以降、ジョブ実行装置3a,3b,3c,・・・,3nの各々を、「ジョブ実行装置3」という。)たとえば、待機系のジョブ管理システム2は、ジョブ管理システムによる業務の自動化を行っている事業者により利用されている現用系のシステムの、予備のシステムである。また、図3に示すように、待機系のジョブ管理システム2は、現用系のジョブ管理システム5に、有線通信または無線通信により接続される。なお、待機系のジョブ管理システム2に含まれるジョブ実行装置の数は、一つまたは二以上の複数の任意である。
図3に示すように、現用系のジョブ管理システム5は、現用系のジョブ実行装置6a,6b,6c,・・・,6nと、現用系のジョブ管理装置7とを含む。(以降、ジョブ実行装置6a,6b,6c,・・・,6nの各々を、「ジョブ実行装置6」という。)たとえば、現用系のジョブ管理システム5は、ジョブ管理システムによる業務の自動化を行っている事業者により利用されている現用系のシステムである。それぞれの現用系のジョブ実行装置6は、あらかじめ対応付けられている、所定の待機系のジョブ実行装置3によって情報をレプリケーションされる。本実施形態では、それぞれの現用系のジョブ実行装置6は、待機系のジョブ実行装置3と、一対一に対応付けられているものとする。本実施形態では、現用系のジョブ実行装置6の数は、待機系のジョブ実行装置3の数と同じである。なお、所定の現用系のジョブ実行装置6は、複数の待機系のジョブ実行装置3と対応付けられていてもよい。また、所定の待機系のジョブ実行装置3は、複数の現用系のジョブ実行装置6と対応付けられていてもよい。この場合、ジョブ管理システム5に含まれる現用系のジョブ実行装置の数は、一つまたは二以上の複数の任意であってもよい。現用系のジョブ実行装置6および現用系のジョブ管理装置7の詳細については、後述する。
次に、図3および図4を用いて、待機系のジョブ実行装置3および待機系のジョブ管理装置4の詳細を説明する。
まず、図3を用いて、本実施形態のジョブ実行装置3について説明する。
現用系のジョブ管理システム5に障害が発生していない場合、待機系のジョブ実行装置3は、あらかじめ対応付けられている現用系のジョブ実行装置6により実行されたジョブの成果物と、実行情報とを、所定のタイミングで、非同期にレプリケーションする。実行情報は、現用系の実行情報格納表に含まれる情報である。現用系の実行情報格納表に含まれる実行情報は、現用系のジョブ実行装置6のジョブの実行の状態を示す。また、待機系のジョブ管理システム2に系が切り替えられた場合に、待機系のジョブ実行装置3は、実行するジョブを指示する制御情報を待機系のジョブ管理装置4から受信し、受信した制御情報に基づいてジョブを実行する。
たとえば、図3に示す待機系のジョブ実行装置3aが、現用系のジョブ実行装置6aの成果物と実行情報格納表に含まれる情報とをレプリケーションするとする。また、待機系のジョブ実行装置3bが、現用系のジョブ実行装置6bの成果物と実行情報格納表に含まれる情報とをレプリケーションするとする。この場合、待機系のジョブ実行装置3aが成果物と実行情報格納表に含まれる情報とをレプリケーションする時刻は、ジョブ実行装置3bが成果物と実行情報格納表に含まれる情報とをレプリケーションする時刻と異なる。
次に、図4を用いて、本実施形態のジョブ実行装置3の構成例を説明する。
ジョブ実行装置3は、出力部31と、実行部32と、データ記憶部33と、実行情報記憶部34と、レプリケーション部35とを含む。
出力部31は、時刻出力部311と、実行情報出力部312とを含む。
時刻出力部311は、複製時刻情報の出力を、待機系のジョブ管理装置4の時刻取得部411から要求された場合に、待機系のジョブ実行装置3の装置識別情報と、実行情報記憶部34に記憶されている複製時刻情報とを出力する。装置識別情報は、待機系のジョブ実行装置3を識別する情報を含む。複製時刻情報は、現用系のジョブ実行装置6の成果物と実行情報格納表に含まれる情報とを、待機系のジョブ実行装置3のレプリケーション部35がレプリケーションした時刻を示す情報を含む。本実施形態の時刻出力部311は、待機系のジョブ実行装置3のレプリケーション部35が最後にレプリケーションした時刻を示す、複製時刻情報を出力する。
実行情報出力部312は、確定時刻情報を、待機系のジョブ管理装置4の実行情報取得部412から受信する。確定時刻情報は、障害が発生する前に、現用系のジョブ管理システム5に含まれる装置の中で、最後にレプリケーションされた装置がレプリケーションされた時刻を示す。また、確定時刻情報が示す時刻を確定時刻とする。また、実行情報出力部312は、実行情報格納表に含まれる情報の出力を待機系のジョブ管理装置4の実行情報取得部412から要求される。具体的には、次の2つの条件を共に満たすジョブに関連する、実行情報格納表に含まれる情報の出力が要求される。以降、2つの条件を共に満たすジョブを、実行情報出力条件を満たすジョブと呼ぶ。
1つ目の条件は、ジョブに対応付けられている実行情報が、ジョブが実行済み、または実行中の状態であることを示していることである。実行情報は、レプリケーション部35がレプリケーションしたタイミングでの、待機系のジョブ実行装置3に対応する現用系のジョブ実行装置6のジョブの実行の状態を示す。実行情報が示す、ジョブの実行の状態には、現用系のジョブ実行装置6がジョブの実行を終了した状態(「完了」)、現用系のジョブ実行装置6が、ジョブの実行を開始し、実行を終了していない状態(「実行中」)、または、ジョブの実行を開始していない状態(「未実行」)が含まれる。また、以下の説明において、実行が終了したジョブの状態を、実行済みとする。また、実行を開始し、実行を終了していない状態について、実行中とする。
2つ目の条件は、次の(a)または(b)の条件を満たすことである。(a)または(b)の条件を満たすジョブは、確定時刻情報が示す時刻に、現用系のジョブ実行装置6が実行していたジョブ、または、確定時刻情報が示す時刻より後に現用系のジョブ実行装置6が実行を開始したジョブである。
(a)ジョブに対応付けられている実行情報に関連する終了時刻情報が示す時刻が、確定時刻情報が示す時刻よりも後の時刻を示すこと。
(b)ジョブに対応付けられている実行情報に関連する終了時刻情報が、実行情報格納表に格納されていないこと。
なお、開始時刻情報は、現用系のジョブ実行装置6がジョブの実行を開始した時刻を示す。終了時刻情報は、現用系のジョブ実行装置6がジョブの実行を終了した時刻を示す。
実行情報出力部312は、待機系のジョブ実行装置3の装置識別情報と、実行情報出力条件を満たすジョブに関連する、実行情報記憶部34に記憶されている実行情報格納表に含まれる情報とを出力する。実行情報格納表に含まれる情報のうち、出力される情報は、実行情報(「完了」または「実行中」)と、実行情報に関連する、ジョブ識別情報と、開始時刻情報と、終了時刻情報である。ジョブ識別情報は、ジョブを識別する情報である。この場合に出力される実行情報と、開始時刻情報と、終了時刻情報は、現用系のジョブ実行装置6の実行情報格納表から待機系のジョブ実行装置3の実行情報格納表に、待機系のジョブ実行装置3のレプリケーション部35がレプリケーションした情報である。また、実行情報出力部312は、待機系のジョブ管理装置4の判定部422から要求された場合に、成果物に関する情報を出力する。成果物に関する情報については、後述する。
レプリケーション部35は、現用系のジョブ実行装置6により実行されたジョブの成果物と、現用系のジョブ実行装置6に記憶されている実行情報格納表に含まれる情報とを、所定のタイミングで、非同期にレプリケーションする。また、ジョブの成果物は、たとえば、ジョブの実行により得られたファイルや、ジョブの実行により更新されたデータベースのレコードである。レプリケーションの対象である、現用系のジョブ実行装置6に記憶されている実行情報格納表は、次の情報を含む。現用系のジョブ実行装置6に記憶されている実行情報格納表は、現用系のジョブ実行装置6が実行するジョブのジョブ識別情報と、現用系のジョブ実行装置6のジョブの実行の状態を示す実行情報と、開始時刻情報と、終了時刻情報とを含む。現用系のジョブ実行装置6の実行情報格納表に格納されている実行情報は、ジョブの実行を終了した状態であることを示す情報(「完了」)、ジョブの実行を開始し、実行を終了していない状態であることを示す情報(「実行中」)、またはジョブの実行を開始していない状態であることを示す情報(「未実行」)を含む。現用系のジョブ実行装置6の実行情報格納表に格納されている、実行情報と、開始時刻情報と、終了時刻情報は、ジョブ識別情報と関連付けられている。
具体的には、レプリケーション部35は、現用系のジョブ実行装置6により実行されたジョブの成果物を受信し、待機系のジョブ実行装置3のデータ記憶部33、または待機系のジョブ管理システム2に含まれるリモートストレージ(図示せず)にレプリケーションする。また、レプリケーション部35は、現用系のジョブ実行装置6の実行情報格納表に含まれる情報を受信し、待機系のジョブ実行装置3の実行情報記憶部34に記憶されている実行情報格納表に、受信した情報をレプリケーションする。さらに、レプリケーション部35は、レプリケーションした時刻を示す複製時刻情報を、実行情報記憶部34に記憶させる。本実施形態のレプリケーション部35は、レプリケーションのたびに実行情報記憶部34に複製時刻情報を記憶させる。
データ記憶部33は、ジョブの成果物を記憶する。また、データ記憶部33は、データベースを記憶する。なお、ジョブの成果物およびデータベースは、待機系のジョブ実行装置3のデータ記憶部33(ローカル)ではなく、待機系のジョブ管理システム2に含まれるリモートストレージに記憶されてもよい。現用系のジョブ管理システム5に障害が発生していない場合、データ記憶部33に記憶されているジョブの成果物は、待機系のジョブ実行装置3のレプリケーション部35によりレプリケーションされた、現用系のジョブ実行装置6が実行したジョブの成果物である。現用系のジョブ管理システム5に障害が発生した場合、待機系のジョブ実行装置3の実行部32は、実行したジョブの成果物を、データ記憶部33、または、待機系のジョブ管理システム2に含まれるリモートストレージに記憶させる。
実行情報記憶部34は、実行情報格納表(図示せず)と複製時刻情報とを記憶する。実行情報格納表は、実行するジョブのジョブ識別情報と、実行情報と、開始時刻情報と、終了時刻情報とを含む。なお、実行情報出力部312により、待機系のジョブ管理装置4に出力された、実行情報格納表に含まれる情報は、取得情報記憶部44に記憶されている取得実行情報格納表(図6)に、実行情報取得部412により格納される。
なお、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信した時点では、待機系のジョブ実行装置3の実行情報記憶部34に記憶されている実行情報格納表は、現用系のジョブ実行装置6の実行情報格納表からレプリケーションされた情報を含む。実行情報記憶部34に記憶されている複製時刻情報は、レプリケーション部35によって格納される。また、実行部32がジョブを実行した場合には、実行部32が、実行情報記憶部34に記憶されている実行情報格納表に、実行情報と、開始時刻情報と、終了時刻情報とを格納する。なお、本実施形態では、待機系のジョブ管理装置4が、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を受信した場合に、現用系のジョブ管理システム5から待機系のジョブ管理システム2に系を切り替えるとする。
実行部32は、実行するジョブのジョブ識別情報を含む、実行するジョブを指示する制御情報を待機系のジョブ管理装置4から受信する。待機系のジョブ実行装置3の実行部32は、ジョブの実行を開始した時刻を示す開始時刻情報と、実行情報(「実行中」)とを、実行情報記憶部34に記憶されている実行情報格納表に格納する。また、実行部32は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、待機系のジョブ管理装置4に出力する。実行部32は、受信した制御情報に基づいてジョブを実行する。ジョブの実行により、ローカルファイルが作成される場合、実行部32は、成果物であるファイルをデータ記憶部33に記憶させる。ジョブの実行により、リモートファイルが作成される場合、実行部32は、ファイルを待機系のジョブ管理システム2に含まれるリモートストレージに記憶させる。また、データベースの所定のレコードがジョブの実行により更新される場合、実行部32は、データ記憶部33、または、待機系のジョブ管理システム2に含まれるリモートストレージに記憶されているデータベースの所定のレコードを更新する。さらに、実行部32は、ジョブの実行を終了した時刻を示す終了時刻情報と、ジョブの実行を終了した状態を示す実行情報(「完了」)とを、実行情報記憶部34に記憶されている実行情報格納表に格納する。また、実行部32は、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを待機系のジョブ管理装置4に出力する。
次に、図3を用いて、本実施形態のジョブ管理装置4について説明する。
待機系のジョブ管理装置4は、現用系のジョブ管理システム5に障害が発生していない場合、次の動作を行う。待機系のジョブ管理装置4は、現用系のジョブ管理システム5に含まれるジョブ管理装置7に記憶されている管理情報格納表に含まれる情報を、所定のタイミングで、ジョブ管理装置7から非同期にレプリケーションする。管理情報は、ジョブを待機系のジョブ実行装置3に実行させるか否かを判定するための情報である。本実施形態の管理情報は、管理情報格納表およびジョブネット定義格納表(図10)に含まれる情報を含む。
待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信した時点では、待機系のジョブ管理装置4に記憶されている管理情報格納表は、現用系のジョブ管理装置7に記憶されている管理情報格納表の複製である。待機系のジョブ管理システム2に系が切り替えられた後では、待機系のジョブ管理装置4に記憶されている管理情報格納表は、待機系のジョブ実行装置3に実行させるジョブの情報を示す。また、待機系のジョブ管理システム2に系が切り替えられた場合に、待機系のジョブ管理装置4は、実行するジョブを指示する制御情報を待機系のジョブ実行装置3に出力する。
たとえば、図3に示す待機系のジョブ管理装置4が、現用系のジョブ管理装置7の管理情報格納表に含まれる情報をレプリケーションするとする。この場合、待機系のジョブ実行装置3a~3nのそれぞれが成果物と実行情報格納表に含まれる情報とをレプリケーションする時刻は、待機系のジョブ管理装置4が管理情報に含まれる情報をレプリケーションする時刻と異なる。このため、現用系のジョブ管理システム5に障害が発生した時点の、待機系のジョブ管理装置4に複製されている管理情報格納表に含まれる情報と、待機系のジョブ実行装置3a~3nに複製されている実行情報格納表に含まれる情報とが、整合しない場合がある。管理情報格納表の詳細については、後述する。
次に、図4を用いて、本実施形態のジョブ管理装置4の構成例を説明する。
ジョブ管理装置4は、取得部41と、特定部42と、制御部43とを含む。
受付部47は、取得部41に接続される。受付部47は、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を受信する。そして、受付部47は、複製時刻情報の取得を時刻取得部411に要求する。本実施形態の受付部47は、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、現用系のジョブ管理システム5に含まれる、現用系のジョブ実行装置6および現用系のジョブ管理装置7の中で、障害を検知したいずれかの装置から受信する。
取得部41は、時刻取得部411と、実行情報取得部412とを含む。
時刻取得部411は、複製時刻情報の取得を受付部47から要求された場合に、複製時刻情報の出力を待機系のジョブ実行装置3に要求する。また、時刻取得部411は、待機系のジョブ実行装置3の装置識別情報と、複製時刻情報とを待機系のジョブ実行装置3の時刻出力部311から受信する。待機系のジョブ管理装置4の時刻取得部411は、受信した情報が待機系のジョブ実行装置3の情報であることを示す装置情報(「ジョブ実行装置」)と、待機系のジョブ実行装置3の、受信した装置識別情報および複製時刻情報とを、取得情報記憶部44に記憶されている時刻格納表(図5)に格納する。装置情報は、レプリケーションを行った装置が、待機系のジョブ実行装置3であるか、待機系のジョブ管理装置4であるかを示す情報である。図5に本実施形態の時刻格納表の例を示す。時刻格納表は、レプリケーションを行った装置の装置識別情報と、レプリケーションを行った装置がジョブ実行装置3であるかジョブ管理装置4であるかを示す装置情報と、レプリケーションが行われた時刻を示す複製時刻情報とを含む。時刻取得部411は、待機系のジョブ管理システム2に含まれるすべてのジョブ実行装置3の複製時刻情報を、待機系のジョブ管理装置4の取得情報記憶部44の時刻格納表に格納する。また、時刻取得部411は、取得情報記憶部44の時刻格納表に格納されている複製時刻情報の中で最も過去の時刻を示す確定時刻情報を実行情報取得部412に出力する。
実行情報取得部412は、確定時刻情報を時刻取得部411から受信した場合に、次の動作をする。実行情報取得部412は、確定時刻情報を待機系のジョブ実行装置3の実行情報出力部312に出力する。また、待機系のジョブ管理装置4の実行情報取得部412は、前述の実行情報出力条件を満たすジョブに関連する、実行情報格納表に含まれる情報の出力を、待機系のジョブ実行装置3の実行情報出力部312に要求する。また、待機系のジョブ管理装置4の実行情報取得部412は、待機系のジョブ実行装置3の装置識別情報と、実行情報出力条件を満たすジョブに関連する、ジョブ識別情報と、実行情報(「完了」または「実行中」)と、開始時刻情報と、終了時刻情報とを待機系のジョブ実行装置3の実行情報出力部312から受信する。待機系のジョブ管理装置4の実行情報取得部412は、待機系のジョブ実行装置3の実行情報出力部312から受信した情報を、取得情報記憶部44に記憶されている、図6に例を示す取得実行情報格納表に格納する。実行情報取得部412は、待機系のジョブ管理システム2に含まれるすべてのジョブ実行装置3の実行情報格納表に含まれる情報を、待機系のジョブ管理装置4の取得情報記憶部44に記憶されている取得実行情報格納表に格納する。また、実行情報取得部412は、確定時刻情報を確定部421に出力する。
取得情報記憶部44は、取得部41に接続される。取得情報記憶部44は、時刻格納表と、取得実行情報格納表とを記憶する。時刻格納表は、レプリケーションを行った装置の装置識別情報と、レプリケーションを行った装置がジョブ実行装置3であるかジョブ管理装置4であるかを示す装置情報と、レプリケーションが行われた時刻を示す複製時刻情報とを含む。取得実行情報格納表は、実行が開始されたジョブを示すジョブ識別情報と、ジョブを実行する装置を示す装置識別情報と、実行情報と、開始時刻情報と、終了時刻情報とを含む。
図5に示す本実施形態の時刻格納表の例では、装置識別情報が「AG1」から「AG4」である待機系のジョブ実行装置3について、それぞれのジョブ実行装置3がレプリケーションを行った時刻を示す複製時刻情報が、時刻格納表に格納されている。また、装置識別情報が「MG」である待機系のジョブ管理装置4について、そのジョブ管理装置4がレプリケーションを行った時刻を示す複製時刻情報が、時刻格納表に格納されている。ジョブ実行装置3の複製時刻情報は、時刻取得部411により時刻格納表に格納される。ジョブ管理装置4の複製時刻情報は、レプリケーション部48により時刻格納表に格納される。たとえば、一行目は、装置識別情報が「MG」であるジョブ管理装置4が、「9:10」にレプリケーションを行ったことを示す。
図6に本実施形態の取得実行情報格納表の例を示す。この例では、ジョブ識別情報が「JOB2」、「JOB3-1」、「JOB3-2」、「JOB5-1」、および「JOB5-2」であるジョブの各々について、そのジョブを実行するジョブ実行装置3の装置識別情報と、そのジョブの実行の状態を示す実行情報と、開始時刻情報と、終了時刻情報とが、取得実行情報格納表に格納されている。
管理情報記憶部45は、特定部42およびレプリケーション部48に接続される。管理情報記憶部45は、管理情報格納表を記憶する。管理情報格納表は、ジョブ識別情報を含み、また、当該ジョブ識別情報が示すジョブについて、ジョブを実行するジョブ実行装置3の装置識別情報と、実行状況情報と、開始時刻情報と、終了時刻情報とを含む。待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4の受付部47が受信するまでは、実行状況情報は、レプリケーション部48が、現用系の管理情報格納表に含まれる情報をレプリケーションした時点での、対応する現用系のジョブ管理装置7によるジョブの管理の状態を示す。
図7から図9に、本実施形態の、管理情報記憶部45に記憶されている管理情報格納表の例を示す。図7から図9の例では、ジョブ識別情報が「JOB1」、「JOB2」、「JOB3-1」、「JOB3-2」、「JOB4」、「JOB5-1」、「JOB5-2」、および「JOB6」であるジョブの各々について、ジョブを実行するジョブ実行装置3の装置識別情報と、実行状況情報と、開始時刻情報と、終了時刻情報とが、管理情報格納表に格納されている。
図7は、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信した時点の管理情報格納表の例である。図8は、管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3に記憶されている実行情報が示すジョブの状態と一致しているジョブの実行状況情報を確定部421が確定した後の管理情報格納表の例である。図9は、実行状況情報が確定されていないジョブについて、待機系のジョブ実行装置3に当該ジョブを実行させるか否かを判定部422が判定した後の管理情報格納表の例である。
待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信する前に、管理情報記憶部45に記憶されている管理情報格納表(図7)は、現用系のジョブ管理装置7の管理情報格納表からレプリケーション部48により複製された情報を含む。この場合の実行状況情報は、現用系のジョブ実行装置6が、ジョブの実行を終了した状態であることを示す情報(「完了」)、ジョブの実行を開始していない状態であることを示す情報(「未実行」)、またはジョブの実行を開始し、実行を終了していない状態であることを示す情報(「実行中」)を含む。さらに、この場合、待機系の管理情報格納表に含まれている開始時刻情報は、現用系のジョブ実行装置6がジョブの実行を開始した時刻を示す情報である。また、待機系の管理情報格納表に含まれている終了時刻情報は、現用系のジョブ実行装置6がジョブの実行を終了した時刻を示す情報である。
待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信した場合、管理情報記憶部45に記憶されている管理情報格納表は、特定部42および制御部43によって情報を格納される。特定部42は、確定部421と判定部422とを含む。
確定部421は、管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3に記憶されている実行情報格納表に含まれる実行情報が示すジョブの状態と一致しているジョブの、管理情報格納表に含まれる実行状況情報を確定する。確定部421の動作の詳細については、後述する。確定部421の動作の後、実行状況情報が確定されていないジョブの実行状況情報には、判定部422による判定の対象であることを示す情報(「判定待ち」)が含まれる。
判定部422は、実行状況情報に対応付けられているジョブを、待機系のジョブ実行装置3に実行させるか否かを判定する。判定部422による、判定対象のジョブを待機系のジョブ実行装置3に実行させるか否かの判定については後述する。また、判定部422により前述の判定がされた後の判定対象のジョブの、管理情報格納表(図9)に含まれる実行状況情報には、特定部42により特定された、待機系のジョブ実行装置3に実行させるジョブであることを示す情報(「要実行」)が含まれる。また、待機系のジョブ管理システム2において実行されたジョブの、管理情報管理表に格納されている開始時刻情報は、待機系のジョブ実行装置3がジョブの実行を開始した時刻を示す。また、待機系のジョブ管理システム2において実行されたジョブの、管理情報管理表に格納されている終了時刻情報は、待機系のジョブ実行装置3が、ジョブの実行を終了した時刻を示す。
特定部42について以下、さらに詳細に説明する。
確定部421は、確定時刻情報を実行情報取得部412から受信する。そして、確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報と、取得情報記憶部44に記憶されている取得実行情報格納表に含まれる実行情報とに基づいて、次の動作を行う。確定部421は、管理情報記憶部45の管理情報格納表の実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報格納表の実行情報が示すジョブの状態と一致しているジョブの、管理情報格納表に含まれる実行状況情報を確定する。
確定部421が実行情報取得部412から受信する確定時刻情報が示す時刻(以降、確定時刻という)は、待機系のジョブ管理システム2に含まれる装置の複製時刻情報が示す時刻の中で最も過去の時刻を示す。したがって、確定時刻までの時刻を終了時刻情報が示す、確定時刻までに実行が終了したジョブの成果物は、待機系のジョブ実行装置3のデータ記憶部33、またはジョブ管理システム2に含まれるリモートストレージに記憶されている。この場合、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報(「完了」)は、待機系のジョブ実行装置3の実行情報記憶部34に記憶されている実行情報格納表の実行情報(「完了」)が示すジョブの状態と一致する。確定部421は、終了時刻情報が、確定時刻までの時刻を示す、確定時刻までに実行が終了したジョブに関しては、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報を「完了」のままとする。また、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報が「完了」なので、確定時刻までに実行済みのジョブは、後述する判定部422による、判定の対象とならない。
また、確定部421は、後述するように、待機系の管理情報格納表に含まれるジョブの実行状況情報と、取得された実行情報の少なくとも一方が、ジョブが実行済みであることを示すジョブの中で、最後に実行されるジョブである最終ジョブを特定する。なお、確定時刻までに実行が終了したジョブより後に実行されるジョブから最終ジョブまでのジョブに関しては、待機系のジョブ管理装置4の管理情報格納表の実行状況情報と、待機系のジョブ実行装置3の実行情報格納表の実行情報とが示すジョブの状態が一致しない場合がある。したがって、確定時刻までに実行が終了したジョブより後に実行されるジョブから、最終ジョブまでに実行されるジョブは、後述する判定部422による判定の対象となる。
確定部421は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表に含まれる、前方ジョブ情報に基づいて、最終ジョブより後に実行されるジョブを把握することができる。そして、確定部421は、最終ジョブより後に実行されるジョブに関し、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報を「未実行」のままとする。なぜならば、現用系のジョブ実行装置6が、最終ジョブより後に実行されるジョブを実行していないので、最終ジョブより後に実行されるジョブの各々の成果物は、待機系のジョブ管理システム2に存在しない。そのため、最終ジョブより後に実行されるジョブの、待機系のジョブ管理装置4の管理情報格納表の実行状況情報(「未実行」)は、待機系のジョブ実行装置3の実行情報格納表の実行情報(「未実行」)が示すジョブの状態と一致する。また、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報が「未実行」なので、これらのジョブは、後述する判定部422による、判定の対象とならない。
なお、確定部421は、実行状況情報が確定されていない、判定の対象のジョブについて、当該ジョブが判定の対象であることを示す実行状況情報(「判定待ち」)を、管理情報記憶部45に記憶されている管理情報格納表に格納した後に、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報が未実行であることを確定する動作を行う。また、確定部421は、待機系のジョブ管理装置4の管理情報格納表の実行状況情報が「完了」であること、および「未実行」であることをそれぞれ確定した後に、実行状況情報が確定されていないジョブについて、当該ジョブが判定の対象であることを示す実行状況情報を、管理情報記憶部45に記憶されている管理情報格納表に格納してもよい。
このように、確定部421は、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報格納表の実行情報が示すジョブの状態と一致しているジョブの、管理情報記憶部45に記憶されている管理情報格納表に含まれるジョブの実行状況情報を確定する。
確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブについて、後述する判定部422による判定の対象のジョブとする。
具体的には、確定部421は、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報と、取得情報記憶部44に記憶されている取得実行情報格納表の実行情報の少なくとも一方が、ジョブが実行済みであることを示すジョブのジョブ識別情報を抽出する。そして、確定部421は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表に含まれる前方ジョブ情報に基づいて、抽出されたジョブ識別情報が示すジョブの中から、最終ジョブを特定する。前方ジョブ情報は、当該前方ジョブ情報が対応付けられているジョブよりも先に実行されるジョブを示す。本実施形態では、前方ジョブ情報は、当該前方ジョブ情報が対応付けられているジョブの直前に実行されるジョブのジョブ識別情報である。
さらに、確定部421は、最終ジョブ以前に実行されるジョブのうち、実行済みであることが確定されたジョブ以外のジョブを、後述する判定部422による判定の対象のジョブとする。そして、確定部421は、判定の対象のジョブについて、当該ジョブが判定の対象であることを示す実行状況情報(「判定待ち」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。そして、確定部421は、前述した、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報が「未実行」であることを確定する動作を行う。さらに、確定部421は、ジョブの判定を判定部422に要求する。
判定部422は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブについて、当該ジョブを、待機系のジョブ実行装置3に実行させるか否かを判定する。判定部422は、待機系のジョブ実行装置3に実行させるジョブを特定する。本実施形態では、判定部422は、判定対象のジョブに関連する、待機系のジョブ実行装置3の実行情報記憶部34に記憶されている実行情報格納表に含まれる開始時刻情報と終了時刻情報を管理情報記憶部45に記憶されている管理情報格納表に格納する。
判定部422の具体的な動作を説明する。ジョブの判定を確定部421から要求された場合に、判定部422は、管理情報記憶部45に記憶されている管理情報格納表から、対応付けられているジョブが判定の対象のジョブであることを示す実行状況情報(「判定対象」)を含むレコードを抽出する。さらに、判定部422は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表(図10)に含まれる、前方ジョブ情報に基づいて、抽出されたレコードに関連するジョブを、待機系のジョブ実行装置3に実行させるか否かの判定を、実行順序が後ろのジョブ(後方のジョブ)から行う。判定部422の判定により、あるジョブが、待機系のジョブ実行装置3に実行させる必要がないジョブであると判定されたとする。その場合、当該ジョブよりも前方のジョブが、判定の対象であり、実行されていない場合であっても、判定対象の未実行の前方のジョブを実行する必要がない場合がある。そのため、判定部422は、実行順序が後方のジョブから順に判定を行う。
本実施形態の判定部422が行う判定は、次の3つである。また、判定部422は、次の3つの判定を行った後、実行するジョブを指示する制御情報の出力を制御部43に要求する。判定部422は、(1)から順に、(3)まで判定を行う。(1)判定部422が、判定対象のジョブの正常な成果物が、待機系のジョブ管理システム2に存在するか、否かを判定する。
(2)判定部422が、判定対象のジョブの成果物が、一時的に待機系のジョブ管理システム2に存在する成果物である中間成果物であるか、否かを判定する。
(3)判定部422が、判定対象のジョブの成果物が、未実行の他のジョブの実行で用いられるか、否かを判定する。
判定部422は、判定対象のジョブの正常な成果物が、待機系のジョブ管理システム2に存在するか、否かを判定する((1)の判定)。判定対象のジョブの正常な成果物が、待機系のジョブ管理システム2に存在する場合、待機系のジョブ管理装置4は、判定対象のジョブを待機系のジョブ実行装置3に実行させない。また、判定対象のジョブの正常な成果物が、待機系のジョブ管理システム2に存在しない場合、判定対象のジョブを待機系のジョブ実行装置3に実行させるか否かをさらに判定する((2)および(3)の判定)。
判定部422の判定について、(1)から順に説明する。
まず、(1)判定部422が、判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在するか、否かを判定する場合について説明する。
判定部422は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表(図10)の装置識別情報に基づいて、判定対象のジョブを実行する待機系のジョブ実行装置3の実行情報出力部312に、成果物に関する情報を出力させる。成果物に関する情報は、出力データ識別情報と、出力データ形式情報と、判定に用いられる情報とを含む。出力データ識別情報は、ジョブの実行により得られた成果物を識別するための情報である。出力データ形式情報は、ジョブの実行により得られた成果物のデータ形式を示す。判定に用いられる情報は、たとえば、成果物がレコードである場合、ジョブの実行により更新されたレコードの更新時刻や、成果物がファイルである場合、後述するようにあらかじめ現用系のジョブ実行装置6により計算されたハッシュ値である。
判定部422は、判定対象のジョブの成果物に関する情報に含まれる、出力データ識別情報および出力データ形式情報が、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる、判定対象のジョブに関連する出力データ識別情報および出力データ形式情報と一致するか否かを判定する。さらに、判定部422は、判定対象のジョブの成果物に関する情報に基づいて、判定対象のジョブと対応付けられた判定情報が示す条件を判定対象のジョブの成果物が満たすか、否かを判定する。判定情報は、ジョブの成果物が、正常であるか、否かを判定するための条件を示す情報である。このように、判定部422は、判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在するか、否かを判定する。
そして、判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在すると判定部422が判定した場合、判定部422は、判定対象のジョブを実行済みのジョブであるとする。また、判定部422は、判定対象のジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。
次に、(2)判定部422が、判定対象のジョブの成果物が、中間成果物であるか、否かを判定する場合について説明する。
判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在しないと判定部422が判定した場合、判定部422は、次の判定((2)の判定)を行う。判定部422は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる中間情報に基づいて、判定対象のジョブの成果物が、中間成果物であるか、否かを判定する。
中間情報は、ジョブの成果物の保存期間を示す。中間情報として「Yes」が対応付けられたジョブの実行により得られた成果物は、一時的に待機系のジョブ管理システム2に存在する成果物(たとえば、テンポラリーファイル)である。一時的に待機系のジョブ管理システム2に存在する成果物を中間成果物と呼ぶ。また、中間成果物は、後方のジョブの実行に用いられた後は、待機系のジョブ管理システム2に存在しなくてもよい。また、中間成果物であると判定された成果物を用いるすべての後方のジョブが実行済みである場合、中間成果物であると判定された正常な成果物が待機系のジョブ管理システム2に存在しなくても、待機系のジョブ実行装置3が当該成果物を得るジョブを実行する必要はない。中間情報として「No」が対応付けられたジョブの実行により得られた成果物は、関連する一連のジョブ(たとえば、ジョブネットに含まれるジョブ)の実行が終了した後も、待機系のジョブ管理システム2に存在している必要がある成果物である。
本実施形態では、関連する一連のジョブは、図10に示すジョブネット定義格納表に格納されたジョブ識別情報が示すジョブである。判定部422は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表(図10)に含まれる、判定対象のジョブの中間情報が「Yes」である場合、判定対象のジョブの成果物が中間成果物であると判定する。また、判定部422は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表(図10)に含まれる、判定対象のジョブの中間情報が「No」である場合、判定対象のジョブの成果物が中間成果物でないと判定する。そして、判定対象のジョブの成果物が中間成果物でないと判定部422が判定した場合、判定部422は、判定対象のジョブを実行させるジョブであるとする。また、判定部422は、判定対象のジョブについて、当該ジョブを実行させることを示す実行状況情報(「要実行」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。
最後に、(3)判定対象のジョブの成果物が、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられるか、否かを判定する場合について説明する。
判定対象のジョブの成果物が中間成果物である場合、判定部422は、次の判定を行う。判定部422は、判定対象のジョブの成果物が、判定対象のジョブより後に実行される、未実行の他のジョブの実行で用いられるか、否かを判定する。判定部422は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる、出力データ識別情報と入力データ識別情報とに基づいて、判定対象のジョブの成果物の出力データ識別情報と一致する入力データ識別情報を用いるジョブのジョブ識別情報を特定する。入力データ識別情報は、ジョブの実行において用いられる入力データを識別するための情報である。なお、先行して実行したジョブの成果物を入力データとして用いる場合、入力データ識別情報は、先行して実行したジョブの成果物の出力データ識別情報と同様の識別情報で表される。判定部422は、特定されたジョブ識別情報が示すジョブが、判定対象のジョブより後に実行されるか否かを、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表に含まれる、前方ジョブ情報に基づいて判定する。また、判定部422は、特定されたジョブ識別情報が示すジョブに関連する、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報が「未実行」または「要実行」である場合、特定されたジョブ識別情報が示すジョブが実行されていないとする。特定されたジョブ識別情報が示すジョブが、判定対象のジョブより後に実行され、かつ、実行されていない場合、判定部422は、判定対象のジョブを、実行させるジョブであるとする。そして、判定部422は、判定対象のジョブについて、当該ジョブを実行させることを示す実行状況情報(「要実行」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。
また、判定対象のジョブの成果物が、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられないと判定部422が判定した場合、判定部422は、判定対象のジョブを実行済みのジョブであるとする。そして、判定部422は、判定対象のジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。抽出したレコードに含まれるすべてのジョブについて待機系のジョブ実行装置3に実行させるか否かを判定した場合、待機系のジョブ管理装置4の判定部422は、実行するジョブを指示する制御情報の出力を制御部43に要求する。
レプリケーション部48は、管理情報記憶部45およびジョブネット定義記憶部46に接続される。レプリケーション部48は、現用系のジョブ管理装置7に記憶されている管理情報格納表に含まれる情報と、ジョブネット定義格納表に含まれる情報とを、所定のタイミングで、非同期にレプリケーションする。
本実施形態のレプリケーション部48は、現用系のジョブ管理装置7に記憶されている、管理情報格納表に含まれる情報を現用系のジョブ管理装置7の管理情報出力部711から受信する。また、レプリケーション部48は、現用系のジョブ管理装置7のジョブネット定義格納表に含まれる情報を、現用系のジョブ管理装置7のジョブネット定義出力部712から受信する。レプリケーション部48は、受信した、管理情報格納表に含まれる情報を、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表にレプリケーションする。また、レプリケーション部48は、受信した、ジョブネット定義格納表に含まれる情報を、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表にレプリケーションする。さらに、レプリケーション部48は、レプリケーションした時刻を示す複製時刻情報と、レプリケーションを行った装置が待機系のジョブ管理装置4であることを示す装置情報と、待機系のジョブ管理装置4の装置識別情報とを、取得情報記憶部44の時刻格納表(図5)に格納する。
なお、現用系のジョブ管理装置7の管理情報格納表をレプリケーションする場合に、レプリケーション部48は、次の動作を行う。レプリケーション部48は、受信した管理情報格納表に含まれる情報のうち、現用系のジョブ実行装置6の装置識別情報のそれぞれを、現用系のジョブ実行装置6と対応する待機系のジョブ実行装置3の装置識別情報に置き換え、レプリケーションする。待機系のジョブ管理装置4は、待機系のジョブ管理システム2に含まれる待機系のジョブ実行装置3が、どの現用系のジョブ管理装置7の実行情報格納表と成果物とをレプリケーションしているのかを示す、関係に関する情報を記憶部(図示せず)に記憶してもよい。
ジョブネット定義記憶部46は、特定部42およびレプリケーション部48に接続される。ジョブネット定義記憶部46は、ジョブネット定義格納表を記憶する。ジョブネット定義格納表は、ジョブ識別情報と、前方ジョブ情報と、ジョブ識別情報が示すジョブを実行する待機系のジョブ実行装置3の装置識別情報と、出力データ識別情報と、出力データ形式情報と、中間情報と、入力データ識別情報と、判定情報とを含む。待機系のジョブ管理システム2への系の切り替えを指示する指示情報を待機系のジョブ管理装置4が受信する前には、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表は、レプリケーション部48によりレプリケーションされた情報を含む。
判定情報が示す、ジョブの成果物が、正常であるか、否かを判定するための条件として、以下の例を挙げる。なお、判定するための条件は、以下の条件に限定されるものではない。
・成果物が、ファイルである場合、成果物の作成日時(タイムスタンプ)が、成果物を作成するジョブの開始時刻情報が示す時刻よりも新しいこと。
・成果物が、ファイルであり、成果物のハッシュ値が、ジョブ実行時に現用系のジョブ実行装置6により計算されている場合、待機系のジョブ管理システム2に含まれる成果物のハッシュ値が、現用系のジョブ実行装置6により計算されたハッシュ値と一致すること。ハッシュ値は、たとえば、MD5(Message Digest 5)、またはSHA-1(Secure Hash Algorithm 1)を用いて計算される。
・成果物が、データベースに登録されたレコードである場合、待機系のジョブ管理システム2に含まれるデータベースのテーブルに、ジョブの開始時刻情報が示す時刻よりも新しいレコードが存在すること。
・ジョブが、リモートサーバの電源を入れるジョブである場合、判定部422が
実行したping(Packet Internet Groper)コマンドに対し、リモートサーバから所定時間以内に応答があること。
図10に、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表の例を示す。図10の例では、ジョブ識別情報と、当該ジョブ識別情報が示すジョブについて、前方ジョブ情報と、当該ジョブを実行するジョブ実行装置の装置識別情報と、当該ジョブの成果物の出力データ識別情報と、出力データ形式情報と、当該ジョブの中間情報と、入力データ識別情報と、判定情報とが、ジョブネット定義格納表に格納されている。図10の例では、ジョブ識別情報が「JOB1」、「JOB2」、「JOB3-1」、「JOB3-2」、「JOB4」、「JOB5-1」、「JOB5-2」、および「JOB6」であるジョブの各々についての情報が、ジョブネット定義格納表に格納されている。
制御部43は、実行するジョブを指示する制御情報の出力を待機系のジョブ管理装置4の判定部422から要求された場合に、次の動作を行う。
制御部43は、実行させるジョブのジョブ識別情報を含む、特定部42により特定されたジョブの実行を指示する制御情報を出力する。制御部43は、ジョブが実行されていない状態を示す実行状況情報(「未実行」または「要実行」)が関連付けられた、前方のジョブから順に、待機系のジョブ実行装置3にジョブを実行させる。制御部43は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる、前方ジョブ情報に基づいて、前方のジョブから順に待機系のジョブ実行装置3にジョブを実行させる。さらに、制御部43は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、待機系のジョブ実行装置3から受信する。制御部43は、受信したジョブ識別情報に基づいて、当該ジョブの開始時刻情報と、ジョブの実行を開始し、実行を終了していない状態を示す実行状況情報(「実行中」)とを管理情報記憶部45の管理情報格納表に格納する。また、制御部43は、待機系のジョブ実行装置3から、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを待機系のジョブ実行装置3から受信する。制御部43は、受信したジョブ識別情報に基づき、実行が完了したジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)と、終了時刻情報とを、管理情報記憶部45の管理情報格納表に格納する。
次に、図11を用いて、本実施形態の現用系のジョブ実行装置6の構成例を説明する。図11は、本実施形態の現用系のジョブ管理システム5の構成例を示すブロック図である。
ジョブ実行装置6は、出力部61と、実行部62と、データ記憶部63と、実行情報記憶部64とを含む。
現用系のジョブ実行装置6は、出力部61にデータ出力部611を含む点、および待機系のジョブ実行装置3のレプリケーション部35に相当する構成を含まない点で、待機系のジョブ実行装置3と異なる。本実施形態の、待機系のジョブ実行装置3の出力部31は、現用系のジョブ実行装置6のデータ出力部611に相当する構成を含んでもよい。また、本実施形態のジョブ実行装置6は、待機系のジョブ実行装置3のレプリケーション部35に相当する構成を含んでもよい。このように、現用系のジョブ実行装置6は、待機系のジョブ実行装置3の構成と同様の構成であってもよい。
また、現用系のジョブ実行装置6は、現用系のジョブ管理システム5の障害を検知する機能を備え、障害を検知した場合、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4に出力する。
出力部61は、データ出力部611と、実行情報出力部612とを含む。
データ出力部611は、ジョブの成果物を、所定のタイミングで、待機系のジョブ実行装置3に出力する。本実施形態のデータ出力部611は、前回成果物を出力して以降に実行されたジョブの成果物を出力する。データ出力部611は、ジョブの成果物を、所定の時間が経過するたびに出力してもよい。
実行情報出力部612は、実行情報記憶部64に記憶されている実行情報格納表に含まれる情報を、データ出力部611がジョブの成果物を出力する動作と同じタイミングで、待機系のジョブ実行装置3に出力する。また、本実施形態の実行情報出力部612は、前回実行情報格納表に含まれる情報を出力して以降に実行されたジョブに関連する、実行情報格納表に含まれる情報を出力する。
データ記憶部63は、ジョブの成果物を記憶する。また、データ記憶部63は、データベースを記憶する。データ記憶部63に記憶されているジョブの成果物は、実行部62が実行したジョブの成果物である。なお、ジョブの成果物およびデータベースは、現用系のジョブ実行装置6のデータ記憶部63(ローカル)ではなく、現用系のジョブ管理システム5に含まれるリモートストレージ(図示せず)に記憶されてもよい。
実行情報記憶部64は、実行情報格納表(図示せず)を記憶する。実行情報格納表は、ジョブ識別情報と、ジョブ識別情報が示すジョブに関し、実行情報と、開始時刻情報と、終了時刻情報とを含む。実行情報記憶部64に記憶されている実行情報格納表は、実行部62によって情報を格納される。
実行部62は、実行させるジョブのジョブ識別情報を含む、実行するジョブを指示する制御情報を現用系のジョブ管理装置7から受信する。現用系のジョブ実行装置6の実行部62は、ジョブの実行を開始した時刻を示す開始時刻情報と、実行情報(「実行中」)とを、実行情報記憶部64に記憶されている実行情報格納表に格納する。また、実行部62は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、現用系のジョブ管理装置7に出力する。実行部62は、受信した、実行するジョブを指示する制御情報に基づいてジョブを実行する。実行部62は、ジョブの成果物を、データ記憶部63、または現用系のジョブ管理システム5に含まれるリモートストレージに記憶させる。実行部62は、ジョブの実行を終了した時刻を示す終了時刻情報と、ジョブの実行を終了した状態を示す実行情報(「完了」)とを、実行情報記憶部64に記憶されている実行情報格納表に格納する。また、実行部62は、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを現用系のジョブ管理装置7に出力する。
最後に、図11を用いて、本実施形態の現用系のジョブ管理装置7の構成例を説明する。
現用系のジョブ管理装置7は、出力部71を含む点、および待機系のジョブ管理装置4の取得部41と、特定部42と、取得情報記憶部44と、受付部47と、レプリケーション部48とに相当する構成を含まない点で、待機系のジョブ管理装置4と異なる。本実施形態の、待機系のジョブ管理装置4は、現用系のジョブ管理装置7の出力部71に相当する構成を含んでもよい。また、本実施形態のジョブ管理装置7は、待機系のジョブ管理装置4の取得部41と、特定部42と、取得情報記憶部44と、受付部47と、レプリケーション部48とに相当する構成を含んでもよい。このように、現用系のジョブ管理装置7は、待機系のジョブ管理装置4の構成と同様の構成であってもよい。
また、現用系のジョブ管理装置7は、現用系のジョブ管理システム5の障害を検知する機能を備え、障害を検知した場合、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4に出力する。
ジョブ管理装置7は、出力部71と、制御部72と、管理情報記憶部73と、ジョブネット定義記憶部74とを含む。
出力部71は、管理情報出力部711と、ジョブネット定義出力部712とを含む。
管理情報出力部711は、管理情報記憶部73に記憶されている管理情報格納表に含まれる情報を、所定のタイミングで、待機系のジョブ管理装置4に出力する。出力される、管理情報格納表に含まれる情報は、ジョブ管理装置7が、前回管理情報格納表に含まれる情報を出力して以降に現用系のジョブ実行装置6に実行させたジョブに関連する。管理情報出力部711は、管理情報記憶部73に記憶されている管理情報格納表に含まれる情報を、所定の時間が経過するたびに、ジョブ管理装置4に出力してもよい。
ジョブネット定義出力部712は、ジョブネット定義記憶部74に記憶されているジョブネット定義格納表に含まれる情報を、管理情報出力部711が管理情報格納表に含まれる情報を出力する動作と同じタイミングで、待機系のジョブ管理装置4に出力する。本実施形態のジョブネット定義出力部712は、前回ジョブネット定義格納表に含まれる情報を出力して以降に変更された、ジョブネット定義格納表に含まれる情報を、ジョブ管理装置4に出力する。
管理情報記憶部73は、管理情報格納表を記憶する。管理情報記憶部73に記憶されている管理情報格納表は、ジョブ識別情報を含み、また、当該ジョブ識別情報が示すジョブについて、ジョブを実行する現用系のジョブ実行装置6の装置識別情報と、実行状況情報と、開始時刻情報と、終了時刻情報とを含む。管理情報記憶部73に記憶されている実行状況情報は、現用系のジョブ実行装置6に実行させるジョブの状態を示す。
より具体的には、管理情報記憶部73に記憶されている実行状況情報は、現用系のジョブ実行装置6が、ジョブの実行を終了した状態であることを示す情報(「完了」)、ジョブの実行を開始していない状態であることを示す情報(「未実行」)、またはジョブの実行を開始し、実行を終了していない状態であることを示す情報(「実行中」)を含む。
管理情報記憶部73に記憶されている管理情報格納表に含まれる開始時刻情報は、現用系のジョブ実行装置6がジョブの実行を開始した時刻を示す。管理情報記憶部73に記憶されている管理情報格納表に含まれる終了時刻情報は、現用系のジョブ実行装置6がジョブの実行を終了した時刻を示す。
図12に、本実施形態の、管理情報記憶部73に記憶されている管理情報格納表の例を示す。図12の例では、ジョブ識別情報が「JOB1」、「JOB2」、「JOB3-1」、「JOB3-2」、「JOB4」、「JOB5-1」、「JOB5-2」、および「JOB6」であるジョブの各々について、ジョブを実行するジョブ実行装置6の装置識別情報と、実行状況情報と、開始時刻情報と、終了時刻情報とが、管理情報格納表に格納されている。図12は、待機系のジョブ管理システム2への系の切り替えを指示する指示情報が出力された時点の、現用系のジョブ管理装置7の管理情報記憶部73に記憶されている管理情報格納表の例である。図12に示す管理情報格納表の例は、それぞれの現用系のジョブ実行装置6の装置識別情報が、現用系のジョブ実行装置6の実行情報格納表と成果物とを複製している待機系のジョブ実行装置3の装置識別情報と同じである場合の例である。
なお、図7は、図12に示される、現用系のジョブ管理装置7の管理情報記憶部73に記憶されている管理情報格納表の例と同じ時点の、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表の例である。図12では、図7において「未実行」として示されている、ジョブ識別情報が「JOB3-1」から「JOB5-1」までのジョブの実行が完了している。また、図12では、ジョブ識別情報が「JOB5-2」であるジョブが、現用系のジョブ実行装置6に実行されている。この違いは、ジョブ識別情報が「JOB3-1」から「JOB5-1」までのジョブに関連する、管理情報記憶部73に記憶されている管理情報格納表に含まれる情報が、待機系のジョブ管理装置4にレプリケーションされていないために生じる。
ジョブネット定義記憶部74は、ジョブネット定義格納表(図示せず)を記憶する。ジョブネット定義記憶部74に記憶されているジョブネット定義格納表は、図10に示す、待機系のジョブ管理装置4のジョブネット定義記憶部46に記憶されているジョブネット定義格納表と同様であるので、説明を省略する。
制御部72は、ジョブ識別情報を含む、実行するジョブを指示する制御情報を、現用系のジョブ実行装置6に出力する。さらに、制御部72は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、現用系のジョブ実行装置6から受信する。制御部72は受信したジョブ識別情報に基づいて、当該ジョブの開始時刻情報と、ジョブの実行を開始し、実行を終了していない状態を示す実行状況情報(「実行中」)とを管理情報記憶部73の管理情報格納表に格納する。
制御部72は、ジョブネット定義記憶部74に記憶されているジョブネット定義格納表に含まれる、前方ジョブ情報に基づいて、前方のジョブから順に現用系のジョブ実行装置6にジョブを実行させる。制御部72は、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを現用系のジョブ実行装置6から受信する。制御部72は、受信したジョブ識別情報に基づき、実行が完了したジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)と、終了時刻情報とを、管理情報記憶部45の管理情報格納表に格納する。
このように、ジョブ管理装置4は、現用系のジョブ実行装置6を含むシステムに障害が発生した場合に、ジョブを実行する待機系のジョブ実行装置3から、実行情報を取得する。待機系のジョブ実行装置3には、現用系のジョブ実行装置6により実行されたジョブの成果物と、現用系のジョブ実行装置6のジョブの実行の状態を示す実行情報とが、障害が発生する前に複製されている。また、ジョブ管理装置4は、ジョブを待機系のジョブ実行装置3に実行させるか否かを判定するための情報である管理情報と、待機系のジョブ実行装置3から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置3に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置3に実行させるジョブとして特定する。また、ジョブ管理装置4は、特定されたジョブを待機系のジョブ実行装置3に実行させる。
このように、ジョブ管理装置4は、障害が発生した場合に、待機系のジョブ実行装置3における各ジョブの実行要否を、管理情報と、障害が発生する前に複製されていた実行情報とに基づいて速やかに判定することができる。そして、ジョブ管理装置4は、障害が発生する前に待機系のジョブ実行装置3に複製されていた、現用系のジョブ実行装置6が実行したジョブの成果物を活用して、待機系のシステムの運用を開始することが可能になる。このため、迅速にシステムを復旧することが可能になる。
また、本実施形態のジョブ管理装置4は、管理情報と待機系のジョブ実行装置3から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置3に実行させるか否かを判定する。そのため、管理情報が実行状況情報を含む場合に、実行状況情報と待機系のジョブ実行装置3に複製された実行情報とが整合しないことによる不都合が生じる可能性を低減することができる。
また、ジョブ管理装置4は、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報格納表の実行情報が示すジョブの状態と一致しているジョブの、管理情報記憶部45に記憶されている管理情報格納表に含まれるジョブの実行状況情報を確定する。さらに、ジョブ管理装置4は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブを、待機系のジョブ実行装置3にジョブを実行させるか、否かを判定する。これにより、待機系のジョブ管理装置4は、待機系のジョブ実行装置3に実行させる必要がないジョブを、待機系のジョブ実行装置3に実行させないことが可能になる。これにより、待機系のジョブ管理システム2を、障害の発生前の現用系のジョブ管理システム5の状態に、迅速に復旧させることが可能になる。
次に、本実施形態の、待機系のジョブ管理システム2と現用系のジョブ管理システム5に含まれる装置の動作例について説明する。
まず、図13を用いて、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4の受付部47が受信するまでの、待機系のジョブ実行装置3および現用系のジョブ実行装置6の動作例を説明する。図13は、待機系のジョブ実行装置3および現用系のジョブ実行装置6の動作例を示す。
現用系のジョブ実行装置6のデータ出力部611は、前回成果物を出力して以降に実行されたジョブの成果物を、所定のタイミングで、待機系のジョブ実行装置3に出力する。さらに、データ出力部611がジョブの成果物を出力する動作と同じタイミングで、現用系のジョブ実行装置6の実行情報出力部612は、実行情報記憶部64に記憶されている、前回実行情報格納表に含まれる情報を出力して以降に実行されたジョブに関連する、実行情報格納表に含まれる情報を、待機系のジョブ実行装置3に出力する(ステップS201)。
待機系のジョブ実行装置3のレプリケーション部35は、現用系のジョブ実行装置6により実行されたジョブの成果物と、現用系のジョブ実行装置6の実行情報格納表に含まれる情報とを受信する。レプリケーション部35は、受信したジョブの成果物を、待機系のジョブ実行装置3のデータ記憶部33、または待機系のジョブ管理システム2に含まれるリモートストレージにレプリケーションする。また、レプリケーション部35は、受信した実行情報格納表に含まれる情報を、待機系のジョブ実行装置3の実行情報記憶部34に記憶されている実行情報格納表にレプリケーションする(ステップS202)。
レプリケーション部35は、ジョブの成果物および実行情報格納表に含まれる情報を現用系のジョブ実行装置6からレプリケーションした時刻を示す複製時刻情報を実行情報記憶部34に記憶させる(ステップS203)。ここでの複製時刻情報が示す時刻は、ジョブの成果物および実行情報格納表に含まれる情報が、現用系のジョブ実行装置6から出力された時刻である。本実施形態では、現用系のジョブ実行装置6のデータ出力部611が、ジョブの成果物を出力した時刻を示す複製時刻情報を待機系のジョブ実行装置3のレプリケーション部35に出力する。また、待機系のジョブ実行装置3のレプリケーション部35が、受信した複製時刻情報を実行情報記憶部34に記憶させる。
次に、図14を用いて、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4の受付部47が受信するまでの、待機系のジョブ管理装置4および現用系のジョブ管理装置7の動作例を説明する。図14は、現用系のジョブ管理装置7および待機系のジョブ管理装置4の動作例を示す。
現用系のジョブ管理装置7の管理情報出力部711は、管理情報記憶部73に記憶されている管理情報格納表に含まれる情報を、所定のタイミングで、待機系のジョブ管理装置4に出力する。出力される、管理情報格納表に含まれる情報は、ジョブ管理装置7が、前回管理情報格納表に含まれる情報を出力して以降に現用系のジョブ実行装置6に実行させたジョブに関連する。さらに、管理情報出力部711が管理情報格納表に含まれる情報を出力する動作と同じタイミングで、現用系のジョブ管理装置7のジョブネット定義出力部712は、前回ジョブネット定義格納表に含まれる情報を出力して以降に変更された、ジョブネット定義記憶部74に記憶されているジョブネット定義格納表に含まれる情報を、待機系のジョブ管理装置4に出力する(ステップS301)。
待機系のジョブ管理装置4のレプリケーション部48は、現用系のジョブ管理装置7に記憶されている、管理情報格納表に含まれる情報と、ジョブネット定義格納表に含まれる情報とを現用系のジョブ管理装置7から受信する。レプリケーション部48は、受信した、管理情報格納表に含まれる情報を、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表にレプリケーションする。また、レプリケーション部48は、受信した、ジョブネット定義格納表に含まれる情報を、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表にレプリケーションする(ステップS302)。
レプリケーション部48は、管理情報格納表に含まれる情報およびジョブネット定義格納表に含まれる情報を現用系のジョブ管理装置7からレプリケーションした時刻を示す複製時刻情報と、レプリケーションを行った装置が待機系のジョブ管理装置4であることを示す装置情報と、レプリケーションを行った待機系のジョブ管理装置4の装置識別情報とを、取得情報記憶部44の時刻格納表(図5)に格納する(ステップS303)。
ここでの複製時刻情報が示す時刻は、現用系のジョブ管理装置7に記憶されている管理情報格納表に含まれる情報およびジョブネット定義格納表に含まれる情報が、現用系のジョブ管理装置7から出力された時刻である。本実施形態では、現用系のジョブ実行装置6の管理情報出力部711が、管理情報格納表に含まれる情報を出力した時刻を示す複製時刻情報を、待機系のジョブ管理装置4のレプリケーション部48に出力する。また、待機系のジョブ管理装置4のレプリケーション部48が、受信した複製時刻情報を、取得情報記憶部44の時刻格納表に格納する。
次に、図15を用いて、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を、待機系のジョブ管理装置4の受付部47が受信した場合の、待機系のジョブ管理システム2の動作例を説明する。図15は、本発明の第二の実施形態の待機系のジョブ管理システム2の動作例を示す。
待機系のジョブ管理装置4の受付部47は、待機系のジョブ管理システム2への系の切り替えを指示する指示情報を受信する(ステップS401)。受付部47は、複製時刻情報の取得を時刻取得部411に要求する。
時刻取得部411は、複製時刻情報の取得を受付部47から要求された場合に、複製時刻情報の出力を待機系のジョブ実行装置3に要求する(ステップS402)。
待機系のジョブ実行装置3の時刻出力部311は、待機系のジョブ実行装置3の装置識別情報と、実行情報記憶部34に記憶されている複製時刻情報とを出力する(ステップS403)。
待機系のジョブ管理装置4の時刻取得部411は、待機系のジョブ実行装置3の装置識別情報および複製時刻情報を、待機系のジョブ実行装置3の時刻出力部311から受信する。待機系のジョブ管理装置4の時刻取得部411は、受信した情報が待機系のジョブ実行装置3の情報であることを示す装置情報と、待機系のジョブ実行装置3の、受信した装置識別情報および複製時刻情報とを、取得情報記憶部44に記憶されている時刻格納表(図5)に格納する(ステップS404)。時刻取得部411は、待機系のジョブ管理システム2に含まれるすべてのジョブ実行装置3の複製時刻情報を、待機系のジョブ管理装置4の取得情報記憶部44の時刻格納表に格納する。そして、時刻取得部411は、取得情報記憶部44の時刻格納表に格納されている複製時刻情報の中で最も過去の時刻である確定時刻を示す確定時刻情報を、実行情報取得部412に出力する。図5に示す時刻格納表の例では、確定時刻情報は、装置識別情報が「AG1」であるジョブ実行装置3の複製時刻情報が示す「9:05」である。
実行情報取得部412は、確定時刻情報を時刻取得部411から受信する。実行情報取得部412は、確定時刻情報を待機系のジョブ実行装置3の実行情報出力部312に出力する。実行情報取得部412は、実行情報出力条件を満たすジョブに関連する、実行情報格納表に含まれる情報の出力を、待機系のジョブ実行装置3の実行情報出力部312に要求する(ステップS405)。
待機系のジョブ実行装置3の実行情報出力部312は、確定時刻情報を、待機系のジョブ管理装置4の実行情報取得部412から受信する。また、待機系のジョブ実行装置3の実行情報出力部312は、実行情報出力条件を満たすジョブに関連する、実行情報格納表に含まれる情報の出力を待機系のジョブ管理装置4の実行情報取得部412から要求される。待機系のジョブ実行装置3の実行情報出力部312は、待機系のジョブ実行装置3の装置識別情報と、実行情報出力条件を満たすジョブに関連する、実行情報記憶部34に記憶されている実行情報格納表に含まれる情報とを出力する(ステップS406)。
待機系のジョブ管理装置4の実行情報取得部412は、待機系のジョブ実行装置3の装置識別情報と、実行情報出力条件を満たすジョブに関連する、ジョブ識別情報と、実行情報と、開始時刻情報と、終了時刻情報とを待機系のジョブ実行装置3の実行情報出力部312から受信する。待機系のジョブ管理装置4の実行情報取得部412は、待機系のジョブ実行装置3の実行情報出力部312から受信した情報を取得情報記憶部44に記憶されている取得実行情報格納表(図6)に格納する(ステップS407)。実行情報取得部412は、待機系のジョブ管理システム2に含まれるすべてのジョブ実行装置3の実行情報格納表に含まれる情報を、待機系のジョブ管理装置4の取得情報記憶部44に記憶されている取得実行情報格納表に格納する。そして、実行情報取得部412は、確定時刻情報を確定部421に出力する。
たとえば、実行情報取得部412は、実行情報出力条件を満たすジョブに関連する、実行情報格納表に含まれる情報の出力を要求した場合に、装置識別情報が「AG1」である待機系のジョブ実行装置3の実行情報格納表に、次の情報が格納されていたとする。ジョブ識別情報が「JOB2」であるジョブについて、実行情報は「実行中」であり、ジョブの開始時刻情報は、「9:03」であり、終了時刻情報は格納されていないとする。確定時刻情報が「9:05」である場合、ジョブ識別情報が「JOB2」であるジョブについて、ジョブが実行中の状態であることを実行情報が示し、また、終了時刻情報が格納されていないので、このジョブは実行情報出力条件を満たす。この場合、待機系のジョブ管理装置4の実行情報取得部412は、待機系のジョブ実行装置3の装置識別情報(「AG1」)と、このジョブのジョブ識別情報(「JOB2」)と、このジョブに関する実行情報(「実行中」)と、開始時刻情報(「9:03」)と、終了時刻情報(データなしを示す情報)とを、装置識別情報が「AG1」である待機系のジョブ実行装置3から受信する。また、この場合、待機系のジョブ管理装置4の実行情報取得部412により、図6に示す取得実行情報格納表の1行目のレコードの、ジョブ識別情報が「JOB2」であるジョブに関する情報が格納される。
確定部421は、確定時刻情報を実行情報取得部412から受信する。そして、確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報と、取得情報記憶部44に記憶されている取得実行情報格納表に含まれる実行情報とに基づいて、次の動作を行う。確定部421の動作の詳細については、図16を用いて、後述する。確定部421は、管理情報記憶部45の管理情報格納表の実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報格納表の実行情報が示すジョブの状態と一致しているジョブの、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報を確定する。また、確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブを、後述する判定部422による判定の対象のジョブとする。さらに、確定部421は、ジョブの判定を判定部422に要求する。
判定部422は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブについて、当該ジョブを、待機系のジョブ実行装置3に実行させるか否かを判定する。判定部422の動作の詳細については、図17を用いて、後述する。判定部422は、待機系のジョブ実行装置3に実行させるジョブを特定する(ステップS408)。さらに、判定部422は、実行するジョブを指示する制御情報の出力を制御部43に要求する。
制御部43は、実行させるジョブのジョブ識別情報を含む、特定部42により特定されたジョブの実行を指示する制御情報を出力する(ステップS409)。
待機系のジョブ実行装置3の実行部32は、実行するジョブのジョブ識別情報を含む、実行するジョブを指示する制御情報を待機系のジョブ管理装置4から受信する。待機系のジョブ実行装置3の実行部32は、ジョブの実行を開始した時刻を示す開始時刻情報と、実行情報(「実行中」)とを、実行情報記憶部34に記憶されている実行情報格納表に格納する。実行部32は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、待機系のジョブ管理装置4に出力する(ステップS410)。
待機系のジョブ管理装置4の制御部43は、実行を開始したジョブのジョブ識別情報と、当該ジョブの開始時刻情報とを、待機系のジョブ実行装置3から受信する。制御部43は、受信したジョブ識別情報に基づいて、当該ジョブの開始時刻情報と、実行状況情報(「実行中」)とを管理情報記憶部45の管理情報格納表に格納する。
待機系のジョブ実行装置3の実行部32は、ジョブの成果物をデータ記憶部33、または待機系のジョブ管理システム2に含まれるリモートストレージに記憶させる。実行部32は、ジョブの実行を終了した時刻を示す終了時刻情報と、ジョブの実行を終了した状態を示す実行情報(「完了」)とを、実行情報記憶部34に記憶されている実行情報格納表に格納する。待機系のジョブ実行装置3の実行部32は、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを待機系のジョブ管理装置4に出力する(ステップS411)。
待機系のジョブ管理装置4の制御部43は、実行を終了したジョブのジョブ識別情報と、当該ジョブの終了時刻情報とを待機系のジョブ実行装置3から受信する。制御部43は、受信したジョブ識別情報に基づき、実行が完了したジョブについて、当該ジョブが実行済みの状態を示す実行状況情報(「完了」)と、終了時刻情報とを、管理情報記憶部45の管理情報格納表に格納する(ステップS412)。
なお、制御部43は、実行させるジョブとして特定部42により特定されたジョブを待機系のジョブ実行装置3に実行させる。その後、制御部43は、障害発生前に現用系のジョブ管理システム2において実行されていないジョブを待機系のジョブ実行装置3に実行させる。このように、ジョブ管理装置4は、待機系のジョブ管理システム2の運用を開始する。
次に、図16および図18を用いて、待機系のジョブ管理システム2に含まれる、待機系のジョブ管理装置4の特定部42の動作例を説明する。図16および図18は、待機系のジョブ管理装置4の動作例を示す。図16は、待機系のジョブ管理装置4の確定部421の動作例を示す。図18は、待機系のジョブ管理装置4の判定部422の動作例を示す。また、図16および図18の動作は、図15のステップS408の動作を詳述するものである。
待機系のジョブ管理装置4および待機系のジョブ実行装置3が、第二の実施形態の待機系のジョブ管理システム2の動作例(図15)のステップ401からステップ407までの一連の動作を行う。その後、本実施形態の待機系のジョブ管理装置4は、図15のステップS408の動作(図16および図18に詳述する動作)を行う。
まず、図16を用いて、待機系のジョブ管理装置4の特定部42に含まれる確定部421の動作例を説明する。
確定部421は、確定時刻情報を実行情報取得部412から受信する。確定部421は、終了時刻情報が、確定時刻までの時刻を示す、確定時刻までに実行が終了したジョブに関連する、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報を「完了」のままとする。確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報が示すジョブの状態と、ジョブが実行済みの状態であることを示すことで一致するジョブについて、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報を確定する(ステップS501)。
たとえば、確定時刻が9:05である場合、図7の管理情報格納表の例では、確定部421は、実行状況情報が「完了」であり、かつ、終了時刻情報が示す時刻が9:05以前の、ジョブ識別情報が「JOB1」であるジョブの管理情報格納表の実行状況情報を「完了」のままとする。
確定部421は、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報と、取得情報記憶部44に記憶されている取得実行情報格納表に含まれる実行情報の少なくとも一方が、ジョブが実行済みであることを示すジョブの識別情報を抽出する。そして、確定部421は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表に含まれる前方ジョブ情報に基づいて、抽出されたジョブ識別情報が示すジョブの中から、待機系のジョブ実行装置3に、最後に実行させるジョブである最終ジョブを特定する(ステップS502)。
確定部421は、最終ジョブ以前に実行されるジョブのうち、実行済みであることが確定されたジョブ以外のジョブを、後述する判定部422による判定の対象のジョブとする(ステップS503)。
図17は、図6に示す取得実行情報格納表と、図7から図9および図12に示す管理情報格納表と、図10に示すジョブネット定義格納表とに含まれる、ジョブの実行順序を模式的に示した模式図である。各ジョブを結ぶ矢印は、ジョブの実行順序を表現している。具体的には、矢印の始点側にあるジョブの実行が完了すると、次に矢印の終点側にあるジョブが実行される。枝分かれした矢印は、並列に実行されるジョブを示す。図17の例では、ジョブ識別情報が「JOB3-1」であるジョブとジョブ識別情報が「JOB3-2」であるジョブは並列に実行される。また、ジョブ識別情報が「JOB5-1」であるジョブとジョブ識別情報が「JOB5-2」であるジョブは並列に実行される。
たとえば、確定時刻情報が「9:05」であり、管理情報格納表が図7に示す管理情報格納表であり、取得実行情報格納表が図6に示す取得実行情報格納表の例である場合、確定部421は、ジョブ識別情報が「JOB5-1」であるジョブを最終ジョブとする。また、確定部421は、ジョブ識別情報が「JOB2」であるジョブと、「JOB3-1」であるジョブと、「JOB3-2」であるジョブと、「JOB5-1」であるジョブとを、後述する判定部422による判定の対象とする。
確定部421は、判定の対象のジョブについて、当該ジョブが判定の対象であることを示す実行状況情報(「判定待ち」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。
たとえば、ジョブ識別情報が「JOB2」から「JOB5-1」までであるジョブが、後述する判定部422による判定の対象であるとする。判定の対象であることを示す実行状況情報(「判定待ち」)を確定部421が管理情報記憶部45に記憶されている管理情報格納表に格納した場合、管理情報記憶部45に記憶されている管理情報格納表には、図8に示す管理情報格納表の2行目から6行目のレコードの実行状況情報に「判定待ち」が格納される。なお、確定部421は、待機系の管理情報格納表において、開始時刻情報および終了時刻情報が記憶されていないジョブについて、取得情報記憶部44の取得実行情報格納表に記憶されている開始時刻情報および終了時刻情報を、管理情報格納表に格納してもよい。なお、図8に示す管理情報格納表の5行目の開始時刻情報(「?」)、および終了時刻情報(「?」)は、開始時刻情報および終了時刻情報が、取得情報記憶部44の取得実行情報格納表に格納されていないことを示す。
確定部421は、最終ジョブより後に実行されるジョブに関連する、管理情報記憶部45に記憶されている管理情報格納表の実行状況情報を「未実行」のままとする。確定部421は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が、待機系のジョブ実行装置3の実行情報記憶部34の実行情報が示すジョブの状態と、ジョブが未実行の状態であることを示すことで一致するジョブについて、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報を確定する(ステップS504)。さらに、確定部421は、ジョブの判定を判定部422に要求する。
次に、図18を用いて、待機系のジョブ管理装置4の特定部42に含まれる判定部422の動作例を説明する。図18は、待機系のジョブ管理装置4の動作例を示す。
待機系のジョブ管理装置4の確定部421の動作例(図16)のステップ501からステップS504までの一連の動作を、確定部421が行った後、本実施形態の待機系のジョブ管理装置4の判定部422は、図18に示す動作を行う。
ジョブの判定を確定部421から要求された場合に、判定部422は、管理情報記憶部45に記憶されている管理情報格納表から、対応付けられているジョブが判定の対象であることを示す実行状況情報(「判定対象」)を含むレコードを抽出する(ステップS601)。
判定部422は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表(図10)に含まれる、前方ジョブ情報に基づいて、抽出されたレコードに関連するジョブを、待機系のジョブ実行装置3に実行させるか否かの判定を、後方のジョブから行う。判定部422は、判定対象のジョブのうち、実行順序が最も後方のジョブを特定する(ステップS602)。
判定部422は、まず、ステップS602で特定されたジョブを、ステップS603からステップS607で行われる判定の対象とする。判定部422は、ジョブネット定義記憶部46に記憶されたジョブネット定義格納表の装置識別情報に基づいて、判定対象のジョブを実行する待機系のジョブ実行装置3を特定する。そして、判定部422は、特定したジョブ実行装置3の実行情報出力部312に、成果物に関する情報を出力させる。判定部422は、判定対象のジョブの成果物に関する情報に含まれる、出力データ識別情報および出力データ形式情報が、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる、判定対象のジョブに関連する出力データ識別情報および出力データ形式情報と一致するか否かを判定する。さらに、判定部422は、判定対象のジョブの成果物に関する情報に基づいて、判定対象のジョブと対応付けられた判定情報が示す条件を判定対象のジョブの成果物が満たすか、否かを判定する(前述の(1)の判定)。このように、判定部422は、判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在するか、否かを判定する(ステップS603)。
判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在する場合(ステップS603、YES)、判定部422は、判定対象のジョブを実行済みのジョブであるとする(ステップS607)。判定部422は、判定対象のジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。この場合、判定部422は、後述するステップS604からステップS606までの動作を行わない。
たとえば、ジョブ識別情報が「JOB4」であるジョブの成果物を、判定部422が判定するとする。図10に示すジョブネット定義格納表には、ジョブ識別情報が「JOB4」であるジョブの判定情報として、「ファイルが存在」が格納されている。判定部422は、装置識別情報が「AG1」である待機系のジョブ実行装置3から出力された、成果物に関する情報に基づき、出力データ識別情報が「File4」であり、かつ、出力データ形式情報が「リモートファイル」である成果物が、待機系のジョブ管理システム2に存在するか、否かを判定する。判定情報が「ファイルが存在」であるので、成果物に関する情報に、出力データ識別情報が「File4」であり、かつ、出力データ形式情報が「リモートファイル」である成果物の情報が含まれる場合に、判定部422は、判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在するとする。判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在すると判定部422が判定した場合、判定部422により、図9に示す管理情報格納表の5行目のレコードの実行状況情報に「完了」が格納される。
判定対象のジョブの正常な成果物が待機系のジョブ管理システム2に存在しないと判定部422が判定した場合(ステップS603、NO)、判定部422は、次の動作を行う。判定部422は、ジョブネット定義記憶部46に記憶されているジョブネット定義格納表に含まれる中間情報に基づいて、判定対象のジョブの成果物が中間成果物であるか、否かを判定する(前述の(2)の判定)(ステップS604)。
判定対象のジョブの成果物が中間成果物でないと判定部422が判定した場合(ステップS604、NO)、判定部422は、判定対象のジョブを、実行させるジョブであるとする(ステップS606)。また、判定部422は、判定対象のジョブについて、当該ジョブを実行させることを示す実行状況情報(「要実行」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。この場合、判定部422は、後述するステップS605およびステップS607の動作を行わない。
たとえば、ジョブ識別情報が「JOB3-2」であるジョブの成果物を、判定部422が判定するとする。出力データ識別情報が「File3」であり、かつ、出力データ形式情報が「ローカルファイル」である成果物が、装置識別情報が「AG3」である待機系のジョブ実行装置3のデータ記憶部33に記憶されていないとする。また、図10に示すジョブネット定義格納表には、ジョブ識別情報が「JOB3-2」であるジョブの中間情報として、「No」が格納されている。この場合、ジョブ識別情報が「JOB3-2」であるジョブの成果物が中間成果物でないので、判定部422により、図9に示す管理情報格納表の4行目のレコードの実行状況情報に「要実行」が格納される。
判定対象のジョブの成果物が中間成果物であると判定部422が判定した場合(ステップS604、YES)、判定部422は、判定対象のジョブの成果物が、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられるか、否かを判定する(前述の(3)の判定)(ステップS605)。
判定対象のジョブの成果物が、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられるジョブであると判定部422が判定した場合(ステップS605、YES)、判定部422は、判定対象のジョブを実行させるジョブであるとする(ステップS606)。そして、判定部422は、判定対象のジョブについて、当該ジョブを実行させることを示す実行状況情報(「要実行」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する。また、判定部422は、ステップS607の動作を行わない。
たとえば、ジョブ識別情報が「JOB5-1」であるジョブの成果物を、判定部422が判定するとする。出力データ識別情報が「Record2」であり、かつ、出力データ形式が「DBレコード」である成果物が、待機系のジョブ実行装置3のデータ記憶部33、またはジョブ管理システム2に含まれるリモートストレージに記憶されているデータベースに格納されていないとする。また、図10に示すジョブネット定義格納表には、ジョブ識別情報が「JOB5-1」であるジョブの中間情報として、「Yes」が格納されている。この場合、ジョブ識別情報が「JOB5-1」であるジョブの成果物が中間成果物であるので、判定部422は、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられるか否かを判定する。図10に示すジョブネット定義格納表には、ジョブ識別情報が「JOB6」であるジョブの入力データ識別情報として、「Record2」が格納されている。この場合、ジョブ識別情報が「JOB5-1」であるジョブの成果物は、ジョブ識別情報が「JOB6」であるジョブの実行で用いられる。また、図10に示すジョブネット定義格納表の、ジョブ識別情報が「JOB6」であるジョブの前方ジョブ情報(「JOB5-1」)および図17に示すように、ジョブ識別情報が「JOB6」であるジョブは、ジョブ識別情報が「JOB5-1」であるジョブの後に実行される。ここで、図9の管理情報格納表の例では、ジョブ識別情報が「JOB6」であるジョブは実行されていないので、判定部422により、図9に示す管理情報格納表の6行目のレコードの実行状況情報に「要実行」が格納される。
判定対象のジョブの成果物が、判定対象のジョブより後に実行される、実行されていない他のジョブの実行で用いられないと判定部422が判定した場合(ステップS605、NO)、判定部422は、次の動作を行う。判定部422は、判定対象のジョブについて、当該ジョブが実行済みの状態であることを示す実行状況情報(「完了」)を、管理情報記憶部45に記憶されている管理情報格納表に格納する(ステップS607)。この場合、判定部422は、ステップS606の動作を行わない。
たとえば、ジョブ識別情報が「JOB2」であるジョブの成果物を、判定部422が判定するとする。出力データ識別情報が「File2」であり、かつ、出力データ形式情報が「リモートファイル」である成果物が、待機系のジョブ管理システム2に存在しないとする。また、図10に示すジョブネット定義格納表には、ジョブ識別情報が「JOB2」であるジョブの中間情報として、「Yes」が格納されている。さらに、図10に示すジョブネット定義格納表の例では、ジョブ識別情報が「JOB3-1」であるジョブの入力データ識別情報として、「File2」が格納されている。ジョブ識別情報が「JOB2」であるジョブの成果物は、中間成果物である。また、ジョブ識別情報が「JOB2」であるジョブの成果物は、ジョブ識別情報が「JOB3-1」であるジョブの実行で用いられる。また、図10に示すジョブネット定義格納表の、ジョブ識別情報が「JOB3-1」であるジョブの前方ジョブ情報(「JOB2」)および図17に示すように、ジョブ識別情報が「JOB3-1」であるジョブは、ジョブ識別情報が「JOB2」であるジョブの後に実行される。ここで、図9の管理情報格納表の例では、ジョブ識別情報が「JOB3-1」であるジョブは実行済みであるので、判定部422により、図9に示す管理情報格納表の2行目のレコードの実行状況情報に「完了」が格納される。
判定部422は、ステップS606またはステップS607の動作の後に、待機系のジョブ実行装置3に実行させるか否かを、判定対象のすべてのジョブについて判定したか否かを確認する(ステップS608)。ここでいう判定対象のすべてのジョブとは、ステップS601でレコードを抽出されたジョブである。待機系のジョブ実行装置3に実行させるか否かを、判定対象のすべてのジョブについて判定していない場合(ステップS608、NO)、判定部422は、次の動作を行う。判定部422は、ステップS601でレコードを抽出されたジョブのうち、待機系のジョブ実行装置3に実行させるか否かが判定されていないジョブについて、ステップS603からステップS608の動作を行う。待機系のジョブ実行装置3に実行させるか否かを、判定対象のすべてのジョブについて判定した場合(ステップS608、YES)、待機系のジョブ管理装置4の判定部422は、実行するジョブを指示する制御情報の出力を制御部43に要求する。なお、本実施形態では、判定対象のジョブについて判定するたびに、判定部422は、管理情報格納表に判定結果を反映している。判定部422は、判定対象のすべてのジョブについて判定した後に、管理情報格納表に判定結果を反映してもよい。
以上で説明したように、本発明の第二の実施形態では、ジョブ管理装置4は、現用系のジョブ実行装置6を含むシステムに障害が発生した場合に、ジョブを実行する待機系のジョブ実行装置3から、実行情報を取得する。待機系のジョブ実行装置3には、現用系のジョブ実行装置6により実行されたジョブの成果物と、現用系のジョブ実行装置6のジョブの実行の状態を示す実行情報とが、障害が発生する前に複製されている。また、ジョブ管理装置4は、ジョブを待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、待機系のジョブ実行装置3から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置3に実行させるか否かを判定し、実行させると判定されたジョブを、待機系のジョブ実行装置3に実行させるジョブとして特定する。また、ジョブ管理装置4は、特定されたジョブを待機系のジョブ実行装置3に実行させる。
このように、ジョブ管理装置4は、障害が発生した場合に、待機系のジョブ実行装置3における各ジョブの実行要否を、管理情報と、障害が発生する前に複製されていた実行情報とに基づいて速やかに判定することができる。そして、ジョブ管理装置4は、障害が発生する前に待機系のジョブ実行装置3に複製されていた、現用系のジョブ実行装置6が実行したジョブの成果物を活用して、更新された管理情報に基づいて、待機系のシステムの運用を開始することが可能になる。このため、迅速にシステムを復旧することが可能になる。
また、本実施形態のジョブ管理装置4は、管理情報と待機系のジョブ実行装置3から取得した実行情報とに基づいて、ジョブの各々について、待機系のジョブ実行装置3に実行させるか否かを判定する。そのため、管理情報が実行状況情報を含む場合に、実行状況情報と待機系のジョブ実行装置3に複製された実行情報とが整合しないことによる不都合が生じる可能性を低減することができる。
また、待機系のジョブ管理装置4は、待機系のジョブ実行装置3の実行情報記憶部34の実行情報格納表の実行情報が示すジョブの状態と、待機系のジョブ管理装置4の管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が、ジョブの実行が終了していることを示す情報またはジョブの実行が開始されていないことを示す情報を示すことで一致しているジョブの、管理情報記憶部45に記憶されている管理情報格納表に含まれるジョブの実行状況情報を確定する。さらに、ジョブ管理装置4は、管理情報記憶部45に記憶されている管理情報格納表に含まれる実行状況情報が確定されていないジョブを、待機系のジョブ実行装置3に実行させるか、否かを判定する。これにより、待機系のジョブ管理装置4は、待機系のジョブ実行装置3に実行させる必要がないジョブを、待機系のジョブ実行装置3に実行させないことが可能になる。このため、待機系のジョブ管理システム2を、障害の発生前の現用系のジョブ管理システム5の状態に、迅速に復旧することが可能になる。
また、待機系のジョブ管理装置4は、オペレータを介在することなく、待機系のジョブ管理システム2において実行させる必要があるジョブを待機系のジョブ実行装置3に実行させる。その後、制御部43は、障害発生前に現用系のジョブ管理システム2において実行されていないジョブを待機系のジョブ実行装置3に実行させる。このように、ジョブ管理装置4は、待機系のジョブ管理システム2の運用を開始する。また、稼働中の現用系のジョブ管理システム5に障害が発生した場合に、待機系のジョブ管理システム2がシステムを自動復旧することが可能になり、システムの復旧までの時間の短縮や人為的な操作ミスを防ぐことが可能になる。
[ハードウェア構成例]
上述した本発明の各実施形態におけるジョブ管理装置(1、または4、または7)または、ジョブ実行装置(3または6)を、一つの情報処理装置(コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。なお、ジョブ管理装置または、ジョブ実行装置は、物理的または機能的に少なくとも二つの情報処理装置を用いて実現してもよい。また、ジョブ管理装置または、ジョブ実行装置3は、専用の装置として実現してもよい。また、ジョブ管理装置または、ジョブ実行装置の一部の機能のみを情報処理装置を用いて実現してもよい。
図19は、本発明の各実施形態のジョブ管理装置または、ジョブ実行装置を実現可能な情報処理装置のハードウェア構成例を概略的に示す図である。情報処理装置8は、通信インタフェース81、入出力インタフェース82、演算装置83、記憶装置84、不揮発性記憶装置85およびドライブ装置86を含む。
たとえば、図1の取得部11と、特定部12と、制御部13は、演算装置83で実現することが可能である。
通信インタフェース81は、各実施形態のジョブ管理装置またはジョブ実行装置が、有線あるいは/および無線で外部装置と通信するための通信手段である。なお、ジョブ管理装置またはジョブ実行装置を、少なくとも二つの情報処理装置を用いて実現する場合は、それらの装置の間を通信インタフェース81経由で相互に通信可能なように接続してもよい。
入出力インタフェース82は、入力デバイスの一例であるキーボードや、出力デバイスとしてのディスプレイ等のマンマシンインタフェースである。
演算装置83は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置や複数の電気回路によって実現される。演算装置83は、たとえば、不揮発性記憶装置85に記憶された各種プログラムを記憶装置84に読み出し、読み出したプログラムに従って処理を実行することが可能である。
記憶装置84は、演算装置83から参照可能な、RAM(Random Access Memory)等のメモリ装置であり、プログラムや各種データ等を記憶する。記憶装置84は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置85は、たとえば、ROM(Read Only Memory)、フラッシュメモリ、等の、不揮発性の記憶装置であり、各種プログラムやデータ等を記憶することが可能である。
ドライブ装置86は、たとえば、後述する記録媒体87に対するデータの読み取りや書き込みを処理する装置である。
記録媒体87は、たとえば、光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
本発明の各実施形態は、たとえば、図19に例示した情報処理装置8によりジョブ管理装置またはジョブ実行装置を構成し、このジョブ管理装置またはジョブ実行装置に対して、上記各実施形態において説明した機能を実現可能なプログラムを供給することにより実現してもよい。
この場合、ジョブ管理装置またはジョブ実行装置に対して供給したプログラムを、演算装置83が実行することによって、実施形態を実現することが可能である。また、ジョブ管理装置またはジョブ実行装置のすべてではなく、一部の機能を情報処理装置8で構成することも可能である。
さらに、上記プログラムを記録媒体87に記録しておき、ジョブ管理装置またはジョブ実行装置の出荷段階、あるいは運用段階等において、適宜上記プログラムが不揮発性記憶装置85に格納されるよう構成してもよい。なお、この場合、上記プログラムの供給方法は、出荷前の製造段階、あるいは運用段階等において、適当な治具を利用してジョブ管理装置またはジョブ実行装置内にインストールする方法を採用してもよい。また、上記プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等の一般的な手順を採用してもよい。
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ジョブを実行する現用系のジョブ実行装置により実行されたジョブの成果物と、前記現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、前記現用系のジョブ実行装置を含むシステムに障害が発生する前に複製された待機系のジョブ実行装置から、前記障害が発生した場合に、前記実行情報を取得する取得部と、
ジョブを前記待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、取得した前記実行情報とに基づいて、ジョブを、前記待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、前記待機系のジョブ実行装置に実行させるジョブとして特定する特定部と、
特定されたジョブを前記待機系のジョブ実行装置に実行させる制御部とを備える、
ジョブ管理装置。
(付記2)
前記管理情報は、前記障害が発生する前に、前記現用系のジョブ実行装置を含むシステムに含まれる現用系のジョブ管理装置から複製され、前記待機系のジョブ実行装置に実行させるジョブの状態を示す情報である実行状況情報を含み、
前記特定部は、前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報と前記実行情報とが整合していないジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記1に記載のジョブ管理装置。
(付記3)
前記特定部は、前記成果物および前記実行情報が前記現用系のジョブ実行装置から複製された時刻および前記管理情報が前記現用系のジョブ管理装置から複製された時刻の中で、最も過去の時刻を示す確定時刻情報と、前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報において、前記確定時刻情報が示す時刻までにジョブの実行が終了されていることを示す情報が関連付けられているジョブより後に実行され、かつ、前記実行状況情報および取得した前記実行情報の少なくとも一方に、ジョブが実行済みであることを示す情報が関連付けられているジョブの中で、最後に実行される最終ジョブ以前に実行されるジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記2に記載のジョブ管理装置。
(付記4)
判定対象のジョブについて、ジョブの正常な前記成果物が前記待機系のジョブ実行装置または所定の記憶装置に存在するか否かを判定し、正常な前記成果物が存在する場合に、正常な前記成果物が存在すると判定された前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させないジョブとして判定する
ことを特徴とする付記1から付記3の何れか1項に記載のジョブ管理装置。
(付記5)
正常な前記成果物が存在しないと判定された前記成果物が、前記待機系のジョブ実行装置または所定の記憶装置に一時的に存在する中間成果物であるか否かをさらに判定し、前記成果物が前記中間成果物でない場合に、前記中間成果物でない前記成果物を得るジョブを前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記4に記載のジョブ管理装置。
(付記6)
前記中間成果物であると判定された前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられるか否かをさらに判定し、前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられる場合に、前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記5に記載のジョブ管理装置。
(付記7)
付記1から付記6のいずれか1項に記載のジョブ管理装置と、
前記待機系のジョブ実行装置と、
を備えるジョブ管理システム。
(付記8)
ジョブを実行する現用系のジョブ実行装置により実行されたジョブの成果物と、前記現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、前記現用系のジョブ実行装置を含むシステムに障害が発生する前に複製された待機系のジョブ実行装置から、前記障害が発生した場合に、前記実行情報を取得し、
ジョブを前記待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、取得した前記実行情報とに基づいて、ジョブを、前記待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、前記待機系のジョブ実行装置に実行させるジョブとして特定し、
特定されたジョブを前記待機系のジョブ実行装置に実行させる、
ジョブ管理方法。
(付記9)
前記管理情報は、前記障害が発生する前に、前記現用系のジョブ実行装置を含むシステムに含まれる現用系のジョブ管理装置から複製され、前記待機系のジョブ実行装置に実行させるジョブの状態を示す情報である実行状況情報を含み、
前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報と前記実行情報とが整合していないジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記8に記載のジョブ管理方法。
(付記10)
前記成果物および前記実行情報が前記現用系のジョブ実行装置から複製された時刻および前記管理情報が前記現用系のジョブ管理装置から複製された時刻の中で、最も過去の時刻を示す確定時刻情報と、前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報において、前記確定時刻情報が示す時刻までにジョブの実行が終了されていることを示す情報が関連付けられているジョブより後に実行され、かつ、前記実行状況情報および取得した前記実行情報の少なくとも一方に、ジョブが実行済みであることを示す情報が関連付けられているジョブの中で、最後に実行される最終ジョブ以前に実行されるジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記9に記載のジョブ管理方法。
(付記11)
判定対象のジョブについて、ジョブの正常な前記成果物が前記待機系のジョブ実行装置または所定の記憶装置に存在するか否かを判定し、正常な前記成果物が存在する場合に、正常な前記成果物が存在すると判定された前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させないジョブとして判定する
ことを特徴とする付記8から付記10の何れか1項に記載のジョブ管理方法。
(付記12)
正常な前記成果物が存在しないと判定された前記成果物が、前記待機系のジョブ実行装置または所定の記憶装置に一時的に存在する中間成果物であるか否かをさらに判定し、前記成果物が前記中間成果物でない場合に、前記中間成果物でない前記成果物を得るジョブを前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記11に記載のジョブ管理方法。
(付記13)
前記中間成果物であると判定された前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられるか否かをさらに判定し、前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられる場合に、前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記12に記載のジョブ管理方法。
(付記14)
コンピュータに、
ジョブを実行する現用系のジョブ実行装置により実行されたジョブの成果物と、前記現用系のジョブ実行装置のジョブの実行の状態を示す実行情報とが、前記現用系のジョブ実行装置を含むシステムに障害が発生する前に複製された待機系のジョブ実行装置から、前記障害が発生した場合に、前記実行情報を取得する取得機能と、
ジョブを前記待機系のジョブ実行装置に実行させるか否かを判定するための情報である管理情報と、取得した前記実行情報とに基づいて、ジョブを、前記待機系のジョブ実行装置に実行させるか否かを判定し、実行させると判定されたジョブを、前記待機系のジョブ実行装置に実行させるジョブとして特定する特定機能と、
特定されたジョブを前記待機系のジョブ実行装置に実行させる制御機能と
を実現させるジョブ管理プログラム。
(付記15)
前記管理情報は、前記障害が発生する前に、前記現用系のジョブ実行装置を含むシステムに含まれる現用系のジョブ管理装置から複製され、前記待機系のジョブ実行装置に実行させるジョブの状態を示す情報である実行状況情報を含み、
前記特定機能は、前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報と前記実行情報とが整合していないジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記14に記載のジョブ管理プログラム。
(付記16)
前記特定機能は、前記成果物および前記実行情報が前記現用系のジョブ実行装置から複製された時刻および前記管理情報が前記現用系のジョブ管理装置から複製された時刻の中で、最も過去の時刻を示す確定時刻情報と、前記実行状況情報と、取得した前記実行情報とに基づいて、前記実行状況情報において、前記確定時刻情報が示す時刻までにジョブの実行が終了されていることを示す情報が関連付けられているジョブより後に実行され、かつ、前記実行状況情報および取得した前記実行情報の少なくとも一方に、ジョブが実行済みであることを示す情報が関連付けられているジョブの中で、最後に実行される最終ジョブ以前に実行されるジョブについて、前記待機系のジョブ実行装置に当該ジョブを実行させるか否かを判定する
ことを特徴とする付記15に記載のジョブ管理プログラム。
(付記17)
判定対象のジョブについて、ジョブの正常な前記成果物が前記待機系のジョブ実行装置または所定の記憶装置に存在するか否かを判定し、正常な前記成果物が存在する場合に、正常な前記成果物が存在すると判定された前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させないジョブとして判定する
ことを特徴とする付記14から付記16の何れか1項に記載のジョブ管理プログラム。
(付記18)
正常な前記成果物が存在しないと判定された前記成果物が、前記待機系のジョブ実行装置または所定の記憶装置に一時的に存在する中間成果物であるか否かをさらに判定し、前記成果物が前記中間成果物でない場合に、前記中間成果物でない前記成果物を得るジョブを前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記17に記載のジョブ管理プログラム。
(付記19)
前記中間成果物であると判定された前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられるか否かをさらに判定し、前記成果物が、前記成果物を得るジョブより後に実行される、実行されていないジョブの実行で用いられる場合に、前記成果物を得るジョブを、前記待機系のジョブ実行装置に実行させるジョブとして判定する
ことを特徴とする付記18に記載のジョブ管理プログラム。