(57)【要約】【課題】  現在、バッチ処理システムにおいて、ユーザがジョブネットごとに適切なリランポイントを指定しない場合、リラン処理もしくは正常処理の処理時間の性能向上の度合いが少なくなるという課題やユーザの設計作業が増加するという課題が発生している。【解決手段】  ジョブの性質やジョブネット実行時間に基づき、データの出力先を揮発性高性能記憶媒体であるメモリと不揮発性低性能記憶媒体であるディスクのどちらにデータを書き込むかを動的に判断する。また、本発明には、リラン用のデータ（ファイル）をメモリに格納しておき、障害発生した場合に、これらをディスクに出力（ダンプ）し、これによってリランを実行することも含まれる。【選択図】図１
2010231682.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ用いてプログラム群の処理であるジョブを実行するバッチ処理システムにおいて、
前記ジョブの処理の進捗状況を検知する手段と、
前記ジョブの性質を特定する手段と、
前記ジョブの性質および前記進捗状況に応じて、前記ジョブにおける出力データの格納先を特定する手段と、
特定された前記格納先に、前記出力データを格納する手段とを有することを特徴とするバッチ処理ステム。
【請求項２】
請求項１に記載のバッチ処理システムにおいて、
前記特定する手段は、前記格納先として、揮発性記憶媒体もしくは不揮発性記憶媒体のいずれかを、前記ジョブの性質および進捗状況に応じて特定することを特徴とするバッチ処理システム。
【請求項３】
請求項２に記載のバッチ処理システムにおいて、
前記特定する手段により、揮発性記憶媒体が特定された場合、前記ジョブの実行に障害が発生した場合に、前記揮発性記憶媒体に格納された出力データを、前記不揮発性記憶媒体に出力し、当該出力された出力データを用いてリラン処理を実行する手段をさらに有することを特徴とするバッチ処理システム。
【請求項４】
請求項１乃至３にいずれかに記載のバッチ処理システムにおいて、
前記ジョブの性質には、障害時におけるジョブの再実行可能可否、各ジョブと入出力データの関係、障害時におけるバッチ処理再実行推定時間、ユーザの定義した出力データの属性の少なくとも１つが含まれることを特徴とするバッチ処理システム。
【請求項５】
請求項４に記載のバッチ処理システムにおいて、
前記ジョブの性質を特定する手段は、処理済みジョブの実処理時間及び未処理ジョブの過去の処理時間に基づき、前記バッチ処理システムの障害時における再実行処理の時間を推定することを特徴としたバッチ処理システム。
【請求項６】
請求項１乃至５のいずれかに記載のバッチ処理システムにおいて、
前記格納先を特定する手段は、前記ジョブから出力されたデータを入力として利用するジョブを抽出し、データを出力したジョブと抽出したジョブの関係に基づき前記格納先を特定することを特徴としたバッチ処理システム。
【請求項７】
請求項1乃至６のいずれかに記載のバッチ処理システムにおいて、
既に実行した処理を再び実行しても業務上支障のないジョブを示す情報を格納する手段をさらに有し、
前記格納先を特定する手段は、格納された前記情報に基づきデータの格納先を特定することを特徴としたバッチ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるいわゆるバッチ処理に関するものである。その中でも、金融、流通、産業などの分野で利用されるコンピュータシステムでのバッチ処理システムに関する。
【背景技術】
【０００２】
近年、webトラフィック増加や扱うデータの大容量化により、バッチ処理に想定以上の時間がかかってしまい、業務に支障をきたすケースが発生している。なお、バッチ処理とはコンピュータで１つの流れのプログラム群を順次実行することである。ここでは、プログラム群をジョブ、複数ジョブの実行順序関係を定義したフローをジョブネットと呼ぶ。これに対応するために、メモリに入出力データを展開し、同一サーバ上でバッチ処理を実行するというバッチ処理システムが提案されている。このバッチ処理システムでは、基幹系システムから前日分のＰＯＳデータや発注データを受け取り、それらをメモリに展開してから集計やマージといった処理を実行する。それらの処理の途中結果をメモリで保持しておき、最終的な結果だけをディスクに書き込んでいる。また、メモリに大量データを取り扱いシステムにおいて、データをメモリに格納しておく技術として、特許文献１がある。特許文献１には、「検索・集計に必要な項目に関する情報のみをメモリ等の高速な記憶装置上に取り込む」ことが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷO2000/010103
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリに入出力などのデータを保持する技術の課題として、障害発生時におけるリラン処理時間の長時間化が挙げられる。従来のバッチ処理はジョブの入出力データをディスクで保持するため、障害発生時においてデータが損失しないため、障害の発生した直前に保存したデータから処理を再実行している。しかし、メモリに入出力データを保持する場合、障害発生時においてデータが損失してしまう可能性があるため、基幹系システムから受け取ったデータに基づくリラン処理を実行しなければならない。これを回避するためには、ユーザがジョブネットごとにリラン用データを指定し、指定されたデータだけをディスクに書き込めばよい。
【０００５】
しかし、ユーザがジョブネットごとに適切なリランポイントを指定しない場合、リラン処理もしくは正常処理の処理時間がそれほど向上しない。ユーザの指定するリランポイントが多い場合、正常処理のディスクI/Oが増加してしまい、性能向上が限定される。一方、ユーザの指定するリランポイントが少ない場合、リランポイント間の間隔が大きすぎてしまい、リラン処理時において再実行する処理が多くなり、時間がかかる可能性がある。
【課題を解決するための手段】
【０００６】
本発明は、ジョブの性質やジョブネット実行時間に基づき、データの出力先を揮発性（高性能）記憶媒体であるメモリと不揮発性低性能記憶媒体であるディスクのどちらにデータを書き込むかを動的に判断することを最も主要な特徴とするバッチ処理システムである。
【０００７】
また、本発明には、リラン用のデータ（ファイル）をメモリに格納しておき、障害発生した場合に、これらをディスクに出力（ダンプ）し、これによってリランを実行することも含まれる。
【発明の効果】
【０００８】
本発明により、リラン処理をより高速に実行でき、効率的な情報処理を実現することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施の形態であるデータをメモリに展開して処理を行うバッチ処理システムに関する第１の実施例の概要を示す構成図である。
【図２】第１の実施例において、ユーザの定義した情報に基づきバッチ処理システムを実行するために必要な情報を生成する場合のフローチャート図である。
【図３】ジョブネット定義情報の構成である。
【図４】ジョブ定義情報の構成である。
【図５】入出力管理テーブルの構成である。
【図６】第１の実施例において、バッチ処理システムが実行するジョブネットの例である。
【図７】入出力管理テーブルを生成する場合のフローチャート図である。
【図８】第１の実施例において、バッチ処理システムがジョブネットを実行する場合のフローチャート図である。
【図９】ジョブネット進捗管理テーブルの構成である。
【図１０】第１の実施例において、出力データをディスクとメモリにどちらに書き込むかを判定するフローチャート図である。
【図１１】第１の実施例において、ジョブ実行サーバがジョブを実行する場合のフローチャート図である。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態を、データを保持する記憶媒体(例：メモリ、ディスク)を動的に判断するバッチ処理システムを例に説明する。
【００１１】
図１は、本実施形態におけるバッチ処理システムの構成図である。バッチ処理システムは、ジョブネットを管理する計算機１とジョブを提供する計算機２とからなり、これらはネットワーク等を介して接続される。この構成は本実施形態の場合の例であり、ひとつの計算機の中にジョブネットを管理する機能とジョブを提供する機能が存在する場合、ジョブネットを管理する計算機が複数存在する場合、ジョブを提供する計算機が複数存在する場合もありえる。
【００１２】
ジョブネットを管理する計算機１は、ＣＰＵ１０、メインメモリ１１、記憶装置１２、入力装置１３、出力装置１４、及び通信インタフェース１５とからなる計算機であり、これらは内部バス等により接続される。ＣＰＵ１０は、記憶装置１２に格納されているプログラムをメインメモリ１１に読み込み、実行することにより、種々の処理を行う。  記憶装置１２は、ジョブネットの実行を制御するジョブネット制御部１０１、ジョブネットの処理要求を受け付けるジョブネット処理要求指示部１０２、ジョブネットを構成するジョブを呼び出すジョブ呼び出し部１０３、後述するジョブネット定義情報１０５とジョブ定義情報１０６から入出力データ管理テーブル１０８を生成する入出力データ管理テーブル生成部１０４、ジョブネットに関する定義情報を格納するジョブネット定義情報１０５、ジョブに関する定義情報を格納するジョブ定義情報１０６、処理中のジョブネットの進捗状況を管理するジョブネット進捗管理テーブル１０７、メモリに格納している入出力データを削除してよいかを判定する入出力データの状態を格納する入出力データ管理テーブル１０８を格納している。以下、ジョブネットを管理する計算機をジョブネット管理サーバと呼ぶ。
【００１３】
ジョブを提供する計算機２は、ＣＰＵ２０、メインメモリ２１、記憶装置２２、入力装置２３、出力装置２４、及び通信インタフェース２５とからなる計算機であり、これらは内部バス等により接続される。記憶装置２２に格納されているプログラムをメインメモリ２１に読み込み、実行することにより、種々の処理を行う。
【００１４】
記憶装置２２は、ひとつのジョブとして定義されたプログラム群を順次呼び出すジョブ制御部１１０、ジョブから呼び出されるプログラム群を実行するプログラム実行部１１１、プログラム実行部から生成されるデータをディスクもしくはメモリに書き込むデータ書き込み部１１２、プログラム実行部の扱うデータを格納するデータ管理テーブル１１３、ジョブに関する定義情報を格納するジョブ定義情報１１４を格納している。以下、ジョブを提供する計算機をジョブ実行サーバと呼ぶ。なお、ジョブを提供する、とは、ジョブ（についての計算）を実行し、その結果を出力することを示す。
【００１５】
図２は、ユーザの定義した情報をジョブネット定義情報１０５、ジョブ定義情報１０６に登録し、入出力データ管理テーブル１０８を生成するフローチャート図である。
【００１６】
ステップ２０１では、バッチ処理システムを実行する前に、ユーザがジョブとジョブネットに関する定義情報をジョブネット管理サーバのジョブ定義情報１０６とジョブネット定義情報１０５に登録する。
【００１７】
図３に、ジョブネット定義情報の例を示す。ジョブネット定義情報は、少なくともジョブネット名３０１、ジョブネットの実行タイミング３０２、ジョブネット内で使用するジョブ名３０３、各ジョブの実行順序３０４、各ジョブの実行タイミング３０５で構成され、図３はジョブネットXを定義した場合の例である。ジョブネットの実行タイミング３０２とは、ジョブネットを実行するスケジュールもしくはジョブネット実行の契機となる事象を登録する項目である。図３ではジョブネットRの実行完了という事象を契機としてジョブネットXの実行を開始する場合の例である。もし、毎時２０：００にジョブネットXの実行を開始する場合、ジョブネットの実行タイミング３０２に毎時２０：００と定義する。ジョブネット実行タイミングの種類として、曜日や日付の一致する時刻にジョブネットを実行するスケジュール指定、ジョブネットやジョブの完了といったイベント指定、障害発生などにより処理が中断した場合などにユーザが起動を指示するユーザ指定がある。各ジョブの実行順序３０４とは、ジョブネットで使用するジョブ３０３をどのような順序で実行するかを定義した項目である。図３では、ジョブネットXはジョブA１、A２、A３、A４で構成されており、ジョブA１、A２、A３、A４の順に処理を行っている場合の例である。各ジョブの実行タイミング３０５とは、ジョブを実行するスケジュールもしくはジョブ実行の契機となる事象を登録する項目である。図３では、ジョブネットXの実行開始という事象を契機としてジョブAの実行を開始する場合の例である。ジョブ実行タイミング３０５の種類はジョブネット実行タイミングの種類と同様にスケジュール指定、イベント指定、ユーザ指定がある。
【００１８】
図４に、ジョブ定義情報の例を示す。ジョブ定義情報には、ジョブ名４０１、ジョブで使用する使用プログラム名４０２、ジョブで使用するプログラムの実行順序であるプログラム実行順序４０３、ジョブで使用する入力データ名４０４、ジョブで使用する出力データ名４０５、ジョブで出力されるデータの中で業務上永続化することが必須である出力データをまとめた永続化出力データ名４０６、何かしら障害が発生した際にジョブを再実行できるかを判断するジョブ再実行可能可否４０７、ジョブの処理時間の推定値であるジョブ完了見込時間４０８が格納されている。ジョブで使用する入力データ名４０４及び出力データ４０５はジョブ内のプログラムで使用するデータの一覧である。例えば、プログラムP1の入力としてデータI-D1とO-D2を使用し、出力としてA-D1を生成し、プログラムP2の入力としてデータA-D1を使用し、出力としてA-D2を生成する場合、入力データ名４０４はI-D1、O-D2、A−D1となり、出力データ名４０５はA-D1、A-D2となる。永続化出力データ名４０６とは、業務上の要件などからデータを永続化することが必須なデータのことであり、出力データ名４０５の中から選択される（これは、データ中に必須であることを示すフラグを設けておいてもよいし、データの内容を予め登録している定義データと比較して判断してもよい）。
【００１９】
図４では、出力データの中でA-D2は永続化必須としている。永続化が要件となるケースとして、他システムでデータを利用する場合、ある程度の期間においてデータの保存が義務付けられている場合等が挙げられる。ジョブ再実行可能可否４０７とは、ジョブを一度実行した後に再度同じ処理を実行しても同じ結果を得ることが可能かどうかである。例えば、ジョブの処理内容が用紙への印字処理の場合、そのジョブを再実行すると同じ用紙が２枚生成されてしまうため、再実行は不可である。ジョブの再実行が不可の場合、ジョブを再実行することで出力データを再生成できないため、出力データを永続化しなければならないため、ディスクに書き込む必要がある。一方、ジョブの処理内容が計算処理であれば、入力データに基づく同じ計算結果が出力データに生成されるため、再実行可能である。ジョブの再実行が可能な場合、ジョブを再実行することで出力データを再生成できるため、出力データを永続化しなくてよいため、メモリに書き込んでもよい。ジョブ完了見込時間４０８とは、そのジョブの開始から終了までにかかる時間の推定値である。処理時間の推定値は過去の統計情報に基づき算出する。
【００２０】
ステップ２０２では、定義情報をジョブネット管理サーバのジョブ定義情報１０６をジョブ実行サーバのジョブ定義情報１１４に転送する。
【００２１】
ステップ２０３では、入出力データテーブル管理部１０４がユーザの定義したジョブ定義情報１０６とジョブネット定義情報１０５に基づき入出力データ管理テーブル１０８を生成する。入出力管理テーブルの構成例を図５に示す。入出力管理テーブルはデータ名５０１、データを出力したジョブ名とそのジョブの属しているジョブネット名である出力元ジョブ名５０２、データを入力として使用するジョブ名とそのジョブの属しているジョブネット名である入力先ジョブ名５０３、ユーザ定義によりデータ永続化すべきかを判断する永続化定義有無５０４、データを出力したジョブの再実行が可能かを判断する再実行可能可否５０５、ジョブネット間でデータを利用するかを判断するジョブネット間連携５０６、データをディスクに書き込むべきかを判断するディスク書き込み要件５０７で構成されている。以下、入出力データ管理テーブル１０８の生成方法について図６を例として説明する。
【００２２】
図６には２つのジョブネットX、Yが定義されており、ジョブネットXはジョブA、B、C、Dを順に実行するジョブネットであり、ジョブネットYはジョブネットX完了後にジョブEを実行するジョブネットである。ジョブAは他システムから転送されたデータI-D1を入力としてA-D1、A−D2を出力している。ジョブBはA−D１とA-D2を入力として、B-D1を出力している。ジョブCはB-01を入力としてC-D1を出力している。ジョブDはA-D1とC-D1を入力としてD-D1を出力している。ジョブEはD-D1を入力としてE-D1を出力している。また、本例では、永続化出力データ名４０６に定義されているデータはE-D1のみ、ジョブ再実行可能可否４０７にて再実行不可能と定義されているジョブはジョブDのみとする。
【００２３】
入出力データ管理テーブル生成部１０４はジョブネットXで使用するジョブの入力データ及び出力データを順々に入出力管理テーブルに登録していく。図７に入出力データ管理テーブル生成部１０４が入出力管理テーブル１０８を生成するフローチャート図を示す。ステップ７０１では、定義されたジョブネットの中でまだ読み込んでいないジョブネットの定義情報を読み込む。ステップ７０２では、読み込んだジョブネットの中に記載されているジョブ定義情報を読み込む。ステップ７０３では、ジョブ定義情報の入力データ名もしくは出力データ名を読み込み、入出力データ管理テーブル１０８と比較する。もし、読み込んだデータ名が存在すればステップ７０５、存在しなければステップ７０４に進む。
【００２４】
ステップ７０４では、読み込んだデータ名を入出力データ管理テーブルに登録する。読み込んだデータが入力データの場合、データ名５０１と入力先ジョブ名５０３を登録する。例えば、ジョブAの入力データであるI-D1の場合、データ名５０１にI-D1、入力元ジョブ名５０３にX-Aを登録する。また、読み込んだデータが出力データの場合、データ名５０１、出力元ジョブ名５０２、永続化定義有無５０４、再実行可能可否５０５を登録する。例えば、ジョブAの出力データであるA-D1の場合、データ名５０１にA-D1、出力元ジョブ名５０２にX-A、ジョブネット間連携５０６に０を登録する。永続化定義有無５０４はジョブ定義情報の永続化出力データ名４０６に基づいて永続化が必要であれば１、必要でなければ０を登録する。再実行可能可否５０５はジョブ定義情報のジョブ再実行可能可否に基づいて再実行が可能であれば０、不可能であれば１を登録する。
【００２５】
ステップ７０５では、読み込んだデータ名と一致する情報を更新する。読み込んだデータが入力データの場合、入力先ジョブ名５０３、ジョブネット間連携５０６を更新する。例えば、ジョブBの入力データであるA-D1の場合、すでにジョブAの出力データとして入出力データ管理テーブルに登録されていれば、入力先ジョブ名５０３にX-Bを追加する。ジョブネット間連携５０６は出力元ジョブ名５０２のジョブネット名と読み込んだジョブの属しているジョブネットを比較し、もし異なっていた場合、１に変更する。この例では、両方ともジョブネットはXのため、値を変更しない。また、読み込んだデータが出力データの場合、出力元ジョブ名５０２、永続化定義有無５０４、再実行可能可否５０５、ジョブネット間連携５０６を更新する。永続化定義有無５０４はジョブ定義情報の永続化出力データ名４０６に基づいて永続化が必要であれば１、必要でなければ０を登録する。再実行可能可否５０５はジョブ定義情報のジョブ再実行可能可否に基づいて再実行が可能であれば０、不可能であれば１を登録する。ジョブネット間連携５０６は出力元ジョブ名５０２のジョブネット名と読み込んだジョブの属しているジョブネットを比較し、もし異なっていた場合、１に変更する。
【００２６】
各入力データと出力データを入出力管理テーブル１０８に登録するまでステップ７０１からステップ７０５を繰り返し、ステップ７０６にすすむ。ステップ７０６では、入出力管理テーブル１０８に登録された全てのデータのディスク書込要件５０７を永続化定義有無５０４、再実行可能可否５０５、ジョブネット間連携５０６から算出し、登録を行う。算出方法は、永続化定義有無５０４、再実行可能可否５０５、ジョブネット間連携５０６の少なくともともひとつに１が登録されている場合、ディスク書込要件５０７に１を登録する。そうでなければディスク書込要件５０７に０を登録する。
【００２７】
図８は、バッチ処理システムがジョブネットを実行するフローチャート図である。以下、図６で示したジョブネットXを例として、図８について述べる。
【００２８】
ステップ８０１では、ジョブネット処理要求指示部１０２がジョブネット定義情報１０６に登録されたジョブネット実行タイミング３０２に定義されたジョブネットを実行するスケジュールもしくはジョブネット実行の契機となる事象を検知し、ジョブネット制御部１０１にジョブネット処理を要求する。図６の例では、ジョブネット処理要求指示部１０２がジョブネットRの終了を検知し、ジョブネット制御部１０１にジョブネットXの処理要求を依頼（つまり、要求情報を送信）する。
【００２９】
ステップ８０２では、ジョブネット制御部１０１がジョブネット定義情報１０５、ジョブ定義情報１０６、入出力データ管理テーブル１０８を参照する。第一に、ジョブネット制御部１０１はジョブネット定義情報１０５を参照し、ジョブネット定義情報を取得する。図６の例では、ジョブネット制御部１０１がジョブネット定義情報１０５を参照し、ジョブネットXの定義情報を取得する。第二に、ジョブネット制御部１０１がジョブ定義情報１０６を参照し、先ほど取得したジョブの入力データ名４０４、出力データ４０５、ジョブ完了見込時間４０８を取得する。図６の例では、ジョブネット制御部１０１がジョブ定義情報１０６を参照し、ジョブA、ジョブB、ジョブC、ジョブDの定義情報を取得する。第三に、ジョブネット制御部１０１が入出力データ管理テーブル１０８を参照し、さきほど取得したジョブの入力データ及び出力データの情報を取得する。図６の例では、ジョブネット制御部１０１がジョブ定義情報１０６を参照し、ジョブAであれば、入力データ名であるI-D1、出力データ名であるA−D1、A-D2を取得する。ジョブB、ジョブC、ジョブDについても同様である。
【００３０】
ステップ８０３では、ジョブネット制御部１０１がジョブネット進捗管理テーブル１０７に登録を行う。ジョブネット進捗管理テーブルの構成を図９に示す。ジョブネット管理テーブル１０８はジョブネット名９０１、ジョブネット進捗状況９０２、最新リランポイント９０３、最新リランポイント作成時刻９０４で構成される。ジョブネット名９０１とは、進捗を管理するジョブネットの名前である。ジョブネット進捗状況９０２とは現在ジョブネットに定義された処理がどこまですすんでいるかである。最新リランポイント９０３とはリランポイントを作成したジョブの中で最新のジョブのことであり、リランポイント作成とは出力データをディスクに書き込むことである。最新リランポイント作成時刻９０４とは最新のリランポイントを作成した時刻である。図６の例では、ジョブネット制御部１０１がジョブネット進捗管理テーブル１０７のジョブネット名９０１にX、ジョブネット進捗状況９０２にジョブA開始前、最新リランポインと９０３にジョブネットX開始、最新リランポイント作成時刻９０４に処理要求を受け付けた時間を登録する。
【００３１】
ステップ８０４では、ジョブネット制御部１０１は出力データごとにデータをディスクに書き込むかどうかを判定する。ジョブネット制御部１０１が出力データをディスクとメモリにどちらに書き込むかを判定するフローチャート図を図１０に示す。
【００３２】
ステップ１００１では、ジョブネット制御部１０１は出力データのディスク書込要件５０７の値を参照し、参照結果が１となっていた場合、出力データをディスクに書き込むと判定して処理を終了する。それ以外の値であれば、ステップ１００２に進む。
【００３３】
ステップ１００２では、ジョブネット制御部１０１は出力データの入力先ジョブ名５０３を参照し、ジョブ名が登録されているかを判定する。ジョブ名が登録されていない場合、出力データをメモリに書き込むと判定して処理を終了する。それ以外であればステップ１００３に進む。
【００３４】
ステップ１００３では、ジョブネット制御部１０１はリランポイント作成可否判定を行う。具体的には、実行中ジョブの出力データをメモリに書き込み次に実行されるジョブでリランポイントを作成した場合におけるリラン処理推定時間を算出し、その時刻がユーザの定義したリラン処理許容時間を超過するかで判定する。リラン処理許容時間とは、障害が発生しバッチ処理を再実行する場合において、その再実行処理に費やしてもよい時間である。例えば、ユーザがリラン処理許容時間を１０分と定義した場合、バッチ処理システムは障害発生に伴うリラン処理を１０分以内に行えるよう、適切なリランポイントを設定する。
【００３５】
図６の例では、ジョブAでリランポイントを作成せずジョブBでリランポイントを作成した場合のリラン処理推定時間を算出する。ジョブAとジョブBのジョブ完了見込時間４０８がそれぞれ３分と９分、リラン処理許容時間を１０分とした場合、ジョブAでリランポイントを作成せず、ジョブB実行中に障害が発生した場合、リラン処理時間は最短で３分、最長で１２分と推定される。この場合、リラン処理許容時間の１０分を超過する可能性があるため、ジョブAでリランポイントを作成すると判定する。そのためジョブAの出力するデータであるA-D1、A−D2の両方をディスクに書き込む必要がある。もし、リラン処理許容時間が２０分であれば、ジョブAとジョブBのジョブ完了見込時間４０８は最長１２分のため、リラン処理許容時間を超過しないことが予想されるため、ジョブBでのみ入力として利用されるデータA-D２をメモリに格納する。一方、データA−D１の書き込み先の判定については、ジョブDの入力としても利用されるため、ジョブA、B、Cでリランポイントを作成せずジョブDでリランポイントを作成した場合のリラン処理推定時間を算出し、リラン処理許容時間と比較を行う必要がある。
【００３６】
また、ジョブA、ジョブBでリランポイントを作成していない状況下でジョブCのリランポイント作成可否を判断する場合、最新リランポイント作成時刻９０４とジョブC開始直前の時刻からジョブAとジョブBの実行時間を算出し、その値とジョブCのジョブ完了見込時間４０８に基づきリラン処理推定時間を算出することで、リラン処理許容時間と比較を行う。なお、最新リランポイント作成時刻の更新はステップ８０７で行う。
【００３７】
最後にリランポイント作成可否の判定に基づき出力データの書き込み先を判定する。リランポイントを作成する場合、出力データをディスクに書き込むと判定し、処理を終了する。そうでなければそうでなければメモリに出力データを書き込むと判定し、処理を終了する。
【００３８】
ステップ８０５では、ジョブネット制御部１０１はジョブ呼び出し部１０３にジョブ呼び出しを依頼する。ジョブネット制御部１０１は、処理を依頼するジョブ名、ステップ８０４で算出した出力データごとのデータ書き込み先判定結果をジョブ呼び出し部１０３に送信する。
【００３９】
ステップ８０６では、ジョブ呼び出し部１０３がジョブ制御部１１０に処理要求を依頼し、ジョブ制御部はジョブを実行し処理結果を返答する。以下ジョブ実行サーバ側のフローチャート図を図１１に示す。
【００４０】
ステップ１１０１では、ジョブ制御部１１０がジョブ定義情報１１４を参照、つまり、装置上で取り扱えるようにその情報を取り込む。
【００４１】
ステップ１１０２では、ジョブ制御部１１０がデータ書き込み部１１２に出力データごとに書き込み先を指定する。出力データごとの書き込み先はステップ８０５にてジョブネット制御部が送信した出力データごとのデータ書き込み先判定結果に基づいて指定する。
【００４２】
ステップ１１０３では、ジョブ制御部１１０がジョブ定義情報に記載されているプログラム実行順序４０３に従い、プログラム実行部１１１を呼び出す。
【００４３】
ステップ１１０４では、プログラム制御部１１１がプログラムを実行し、データ書き込み部１１２にデータの書き込み要求を行う。
【００４４】
ステップ１１０５では、データ書き込み部１１２が、ステップ１１０２で指定されたデータ書き込み先に従い、格納先をメモリのみもしくはディスクかを意識してデータ管理テーブル１１３に出力データを書き込む。
【００４５】
以下、ステップ１１０４とステップ１１０５をプログラム実行順序４０３に従って繰り返し、各プログラムが完了した後、ジョブ制御部１１０はジョブ呼び出し部１０３を介してジョブネット制御部１０１に処理完了通知を返答（つまり、完了通知を送信）する。
【００４６】
ステップ８０７では、入出力管理テーブル１０８のジョブネット進捗状況９０２、最新リランポイント９０３、最新リランポイント作成時刻９０４を更新する。最初に、ジョブネット制御部１０１は入出力管理テーブル１０８のジョブネット進捗状況９０２を更新する。次に、ジョブネット制御部１０１は、ディスクに格納した出力データのみを用いてリラン処理を行えるかを確認する（ここでは、ディスクに格納した出力データを主に、他のデータを利用しなくともとの意味でそれ以外を使うようにしても構わない）。具体的には、処理の完了したジョブの後続で実行されるジョブの入力データの中でメモリにのみ格納されているものが存在していないかをチェックする。もし、入力データの中にメモリにのみ格納されているデータがない場合、リランポイントが作成されたものとし、最新リランポイント９０３、最新リランポイント作成時刻９０４を更新する。図６の例であれば、最新リランポイント９０３にジョブA完了、最新リランポイント作成時刻にジョブA完了時の時間を更新する。
【００４７】
以下、ジョブネット処理順序３０４に基づき、ステップ８０３からステップ８０７を繰り返す。以上で、本実施形態の内容の説明を終わる。
【符号の説明】
【００４８】
１０１ジョブネット制御部
１０２ジョブネット処理要求指示部
１０３ジョブ呼び出し部
１０４入出力データ管理テーブル生成部
１０５ジョブネット定義情報
１０６ジョブ定義情報
１０７ジョブネット進捗管理テーブル
１０８入出力データ管理テーブル
１１０ジョブ制御部
１１１プログラム実行部
１１２データ書き込み部
１１３データ管理テーブル
１１４ジョブ定義情報
【図１】
2010231682.tif 000003
【図２】
2010231682.tif 000004
【図３】
2010231682.tif 000005
【図４】
2010231682.tif 000006
【図５】
2010231682.tif 000007
【図６】
2010231682.tif 000008
【図７】
2010231682.tif 000009
【図８】
2010231682.tif 000010
【図９】
2010231682.tif 000011
【図１０】
2010231682.tif 000012
【図１１】
2010231682.tif 000013