(57)【特許請求の範囲】
【請求項１】
複数のサーバを用いてジョブを処理するジョブ処理システムであって、
要求に応じてジョブを生成する第１のプログラム制御手段を有する第１のサーバと、
該第１のサーバによって生成されたジョブの管理を行う第２のサーバであって、該第２サーバは、該ジョブに関する属性情報及び該ジョブの処理に使用されるファイルを保管する記憶装置と、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理する管理テーブルと、該管理テーブルへの管理情報の登録及び参照、及び該記憶装置へのファイル及び属性情報の登録を行う第２のプログラム制御手段とを有し、
該第２のサーバで管理されるジョブを逐次取得して処理する、複数の第３のサーバであって、該第３のサーバはそれぞれ、該第２のサーバから取得したジョブを処理する１又は複数のジョブ処理プログラムと、該第２のサーバからのジョブの取得及び処理後の該ジョブに関する応答を行う第３のプログラム制御手段と、取得したジョブの属性情報及びファイルを保管する記憶装置を有し、
複数の該第３のサーバは逐次、該第２のサーバに対してジョブ処理の問合せをし、
該第２のサーバは、第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該ジョブに関する属性情報及びファイルを取得した該第３のサーバは、関連する該ジョブ処理プログラムを実行して、該属性情報及び該ファイルを参照してジョブを処理し、第３のプログラム制御手段は、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信し、
該第２のサーバの第２のプログラム制御手段は、該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該属性情報に従って該管理テーブルを更新し、
複数の前記第３のサーバは、複数の異なる種類のジョブを処理する前記ジョブ処理プログラムを有し、かつ複数の種類毎に複数のクラスに分けられ、
該ジョブ毎の前記属性情報は、規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を保持し、
前記管理テーブルは、該ジョブ毎に規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を登録し、
前記第２のプログラム制御手段は、該管理テーブルを参照して、クラス分けされたジョブを処理する前記第３のサーバからの問合せに対するジョブが有り、かつ同じクラス内で優先度が規定されている場合には、優先度の高い順に、問合せ先の該第３のサーバにジョブを割り当てることを特徴とするジョブ処理システム。
【請求項２】
前記管理テーブルは、ジョブＩＤ、ジョブを種別するジョブクラス、該ジョブクラス内の優先度、該ジョブの処理に使用されるプログラム情報、及び該第３のサーバで処理されるジョブの処理状況を示すステータスに関する情報を保管することを特徴とする請求項１のジョブ処理システム。
【請求項３】
前記属性情報は、ジョブを識別するジョブＩＤ、ジョブ名、ジョブクラス、ジョブクラス内の優先度、ジョブ処理に使用されるプログラム情報を含んで構成されることを特徴とする請求項１乃至３のいずれかに記載のジョブ処理システム。
【請求項４】
複数のサーバを用いてジョブを処理するジョブ処理方法であって、
第１のサーバは、ネットワークを介して受信した処理要求に応じてジョブを生成し、
第２サーバは、該第１のサーバによって生成されたジョブに関する属性情報及び該ジョブの処理に使用されるファイルを記憶装置に保管し、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理テーブルで管理し、
該ジョブを処理する複数の第３のサーバは逐次、該第２のサーバに対してジョブ処理の問合せをし、
該第２のサーバは、第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該ジョブに関する属性情報及びファイルを取得した該第３のサーバは、関連するジョブ処理プログラムを実行して、該属性情報及び該ファイルを参照してジョブを処理し、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信し、
該第２のサーバは、該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該属性情報に従って該管理テーブルを更新し、
複数の前記第３のサーバは、複数の異なる種類のジョブを処理する前記ジョブ処理プログラムを有し、かつ複数の種類毎に複数のクラスに分けられ、
該ジョブ毎の前記属性情報は、規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を保持し、
前記管理テーブルは、該ジョブ毎に規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を登録し、
該管理テーブルを参照して、クラス分けされたジョブを処理する前記第３のサーバからの問合せに対するジョブが有り、かつ同じクラス内で優先度が規定されている場合には、優先度の高い順に、問合せ先の該第３のサーバにジョブを割り当てることを特徴とするジョブ処理方法。
【請求項５】
複数のサーバを用いて処理されるジョブ処理の管理のために使用されるプログラムの集合体であって、
第１のサーバにおいて、ネットワークを介して受信した処理要求に応じてジョブを生成する第１のプログラムと、
第２サーバにおいて、該第１のサーバによって生成されたジョブに関する属性情報及び該ジョブの処理に使用されるファイルを記憶装置に保管し、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理テーブルで管理すると共に、
第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該属性情報に従って該管理テーブルを更新する機能を有する第２のプログラムと、
該ジョブを処理する複数の第３のサーバにおいて、該第２のサーバに対してジョブ処理の問合せをして、該第２のサーバから取得した該ジョブに関する属性情報及びファイルを保管して管理し、関連するジョブ処理プログラムを実行した結果、該属性情報及び該ファイルを更新して、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信する第３のプログラムと、を有し、
複数の前記第３のサーバは、複数の異なる種類のジョブを処理する前記ジョブ処理プログラムを有し、かつ複数の種類毎に複数のクラスに分けられ、
該ジョブ毎の前記属性情報は、規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を保持し、
前記管理テーブルは、該ジョブ毎に規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を登録し、
該管理テーブルを参照して、クラス分けされたジョブを処理する前記第３のサーバからの問合せに対するジョブが有り、かつ同じクラス内で優先度が規定されている場合には、優先度の高い順に、問合せ先の該第３のサーバにジョブを割り当てることを特徴とするコンピュータに手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ処理システム及びその方法、そのプログラムに係り、特に、ジョブの処理を複数のサーバに分散して処理させる、ジョブ処理の管理に関するものである。
【背景技術】
【０００２】
ジョブの処理を複数のサーバに分散して処理させることにより、負荷の分散及び処理の効率化が図られている。
例えば、特許文献１には、ジョブ保存装置に、クライアントコンピュータから送られたジョブ要求を一次保存すると共に、複数のサーバコンピュータに対して、ジョブ到着通知を同報し、複数のサーバコンピュータは、ジョブ到着通知を受信すると、各々の負荷に対応する待機時間を算出して、各々の待機時間の間待機した後、ジョブ保存装置をアクセスして、最先にアクセスしたサーバコンピュータがジョブ要求を取得してそのジョブを処理することにより、情報処理にかかる負荷を複数のコンピュータに偏りなく分散させる、負荷分散式情報処理システムが開示されている。
【０００３】
また、特許文献２には、大規模ジョブを複数の小ジョブに分割し、その分割された複数の小ジョブのうち未処理のジョブを、複数の各端末のうちジョブ取得要求を行った端末に対して配信して分散実行させることにより、大規模ジョブの処理を少ない計算負荷で実行するようにした、分散処理システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１６００３８公報
【特許文献２】特開２０００−２４２６１４公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
然るに、特許文献１の技術は、複数のコンピュータに負荷は分散されるものの、ジョブ保存装置は、ジョブ到着通知を同報すべき、全てのサーバコンピュータを管理していなければならず、また各サーバコンピュータは各々の負荷に対応する待機時間を一々算出して、その時間待機しなければならない。
また、特許文献２の技術は、複数の端末から要求があったときのみ分割ジョブを配信するので端末主導でジョブの処理が行われると言えるが、複数の端末で処理されるジョブの管理やジョブ属性を考慮したジョブの配信については言及されていない。
いずれの特許文献も、ジョブを処理する複数のコンピュータ或いは端末の処理能力が均一であることを前提としているようであり、またこれらの装置の１つがダウンしたり、或いは複数のコンピュータ間にジョブ配信の偏りがある場合のジョブの管理については記載されていない。
【０００６】
本発明の目的は、複数のサーバの主導によってジョブの処理を行い、これら複数のサーバの処理に偏りがあってもジョブ処理を円滑に進めることができるジョブ処理システム及びその方法、そのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係るジョブ処理システムは、好ましくは、複数のサーバを用いてジョブを処理するジョブ処理システムであって、
要求に応じてジョブを生成する第１のプログラム制御手段を有する第１のサーバと、
該第１のサーバによって生成されたジョブの管理を行う第２のサーバであって、該第２サーバは、該ジョブに関する属性情報及び該ジョブの処理に使用されるファイルを保管する記憶装置と、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理する管理テーブルと、該管理テーブルへの管理情報の登録及び参照、及び該記憶装置へのファイル及び属性情報の登録を行う第２のプログラム制御手段とを有し、
該第２のサーバで管理されるジョブを逐次取得して処理する、複数の第３のサーバであって、該第３のサーバはそれぞれ、該第２のサーバから取得したジョブを処理する１又は複数のジョブ処理プログラムと、該第２のサーバからのジョブの取得及び処理後の該ジョブに関する応答を行う第３のプログラム制御手段と、取得したジョブの属性情報及びファイルを保管する記憶装置を有し、
複数の該第３のサーバは逐次、該第２のサーバに対してジョブ処理の問合せをし、
該第２のサーバは、第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該ジョブに関する属性情報及びファイルを取得した該第３のサーバは、関連する該ジョブ処理プログラムを実行して、該属性情報及び該ファイルを参照してジョブを処理し、第３のプログラム制御手段は、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信し、
該第２のサーバの第２のプログラム制御手段は、該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該管理テーブルを更新すること、
を特徴とするジョブ処理システムとして構成される。
【０００８】
好ましい例によれば、複数の前記第３のサーバは、複数の異なる種類のジョブを処理する前記ジョブ処理プログラムを有し、かつ複数の種類毎に複数のクラスに分けられ、
該ジョブ毎の前記属性情報は、規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を保持し、
前記管理テーブルは、該ジョブ毎に規定された該クラス、及び同じクラスにおけるジョブ処理の優先度を示す情報を登録し、
前記第２のプログラム制御手段は、該管理テーブルを参照して、クラス分けされたジョブを処理する前記第３のサーバからの問合せに対するジョブが有り、かつ同じクラス内で優先度が規定されている場合には、優先度の高い順に、問合せ先の該第３のサーバにジョブを割り当てる。
また、好ましい例によれば、前記管理テーブルは、ジョブＩＤ、ジョブを種別するジョブクラス、該ジョブクラス内の優先度、該ジョブの処理に使用されるプログラム情報、及び該第３のサーバで処理されるジョブの処理状況を示すステータスに関する情報を保管する。
【０００９】
本発明に係るジョブ処理方法は、好ましくは、複数のサーバを用いてジョブを処理するジョブ処理方法であって、
第１のサーバは、ネットワークを介して受信した処理要求に応じてジョブを生成し、
該第２サーバは、該第１のサーバによって生成されたジョブに関する属性情報及び該ジョブの処理に使用されるファイルを記憶装置に保管し、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理テーブルで管理し、
該ジョブを処理する複数の第３のサーバは逐次、該第２のサーバに対してジョブ処理の問合せをし、
該第２のサーバは、第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該ジョブに関する属性情報及びファイルを取得した該第３のサーバは、関連する該ジョブ処理プログラムを実行して、該属性情報及び該ファイルを参照してジョブを処理し、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信し、
該第２のサーバは、該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該管理テーブルを更新することを特徴とするジョブ処理方法として構成される。
【００１０】
本発明に係るジョブ処理システムで使用されるプログラムは、好ましくは、複数のサーバを用いて処理されるジョブ処理の管理のために使用されるプログラムの集合体であって、
第１のサーバにおいて、ネットワークを介して受信した処理要求に応じてジョブを生成する第１のプログラムと、
該第２サーバにおいて、該第１のサーバによって生成されたジョブに関する属性情報及び該ジョブの処理に使用されるファイルを記憶装置に保管し、該ジョブに関する管理情報をジョブ毎に固有のＩＤを付して管理テーブルで管理すると共に、
第３のサーバからの問合せがある度に該管理テーブルを参照して、問合せ先の該第３のサーバによって処理できるジョブが有るかを確認して、該当するジョブが有る場合には該ジョブに関する属性情報及びファイルを、該問合せ先の該第３のサーバへ送信し、
該第３のサーバから取得した該属性情報及び該ファイルを該記憶装置に保管するとともに、該管理テーブルを更新する機能を有する第２のプログラムと、
該ジョブを処理する複数の第３のサーバにおいて、該第２のサーバに対してジョブ処理の問合せをして、該第２のサーバから取得した該ジョブに関する属性情報及びファイルを保管して管理し、関連する該ジョブ処理プログラムを実行した結果、該属性情報及び該ファイルを更新して、処理結果となる該ファイル及び該属性情報を該第２のサーバへ送信する第３のプログラムと、を有することを特徴とするプログラムの集合体として構成される。
【発明の効果】
【００１１】
本発明によれば、複数のサーバが自発的にジョブを取得して処理することができ、これら複数のサーバに処理の偏りがあってもジョブ処理を円滑に進めることができる。
また、本発明によれば、複数のバッチサーバがそれぞれのランク分けされたジョブを担当して処理することで、システム全体の処理能力を増強することができる。
また、複数のバッチサーバに同じランクを割り当てることにより、仮にその内の１台がダウンした場合でも、同じランク内にある他のバッチサーバが同種のジョブを引き受けて処理するので、ジョブ処理システム全体の停止を防止でき、また同じランク内の他のバッチサーバがジョブ処理を終わる度にキューサーバから同種のジョブを取得して処理するので、ジョブ処理能力の大幅な減退となることが防止できる。
また、従来のような、中央集権型のジョブ処理システムでは処理サーバの能力を一定とするか、処理能力を管理する必要があるが、本実施例によれば、処理能力の異なる複数のバッチサーバを使用することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施例によるジョブ処理システムの全体構成を示す図。
【図２】一実施例におけるキューテーブルの構成例を示す図。
【図３】一実施例におけるジョブ属性の例を示す図。
【図４】一実施例のジョブ処理システムにおけるジョブ処理のフローチャートを示す図。
【発明を実施するための形態】
【００１３】
図１は、ジョブ処理システムの全体構成例を示す。
このジョブ処理システムは、公衆回線又は専用線等のネットワークを介して接続される、ジョブを生成する機能と有するＥＤＩ（Electronic Data Interchange）サーバ１１、生成された複数のジョブを一括保管して管理するキューサーバ１０、キューサーバ１０からジョブを順次取得して処理する複数のバッチサーバ１２１〜１２n（総称して１２と示す）、バッチサーバ１２によるジョブの処理状況を監視し、またバッチサーバの設定を変更することができる管理端末１３を有して構成される。
【００１４】
ＥＤＩサーバ１１は、ネットワークを介して企業間で情報を送受信するコンピュータであり、例えば、受発注や見積もり、決済、出入荷などに関する処理要求を含むデータ及び要求に対する回答データをあらかじめ定められた形式に従って送受信する。ＥＤＩサーバ１１はプロセッサ、メモリ及び記憶装置等のハードウェアを備え、かつソフトウェアとしてジョブ生成プログラム１１２を有する。そして、ネットワークを介して受信するデータや処理要求を解析して、ジョブ生成プログラム１１２をプロセッサで実行してジョブ１１４を生成する。生成されたジョブ１１４は逐次、キューサーバ１０へ転送される。
【００１５】
なお、この例では、ＥＤＩサーバ１１をジョブの生成機能を有するコンピュータとしているが、ＥＤＩサーバに限らず、ジョブを生成する機能を有するサーバであれば、Ｗｅｂサーバ等の他のサーバでもよい。或いは、ＥＤＩサーバとＷｅｂサーバの両者で生成されたジョブを処理するようにしてもよい。
【００１６】
ここで、ジョブ１１４はジョブ属性１１４２とジョブの処理に使用される入力ファイル１１４４から成る。図３に示すように、ジョブ属性１１４２は、ジョブを識別するジョブＩＤ、ジョブ名、ジョブクラス、ジョブクラス内の優先度、ジョブ処理に使用されるプログラム情報、等の情報を含んで構成される。ジョブクラスとはバッチサーバ１２で処理するジョブの種類やランク分けを意味する。例えば、クラスＡは発注書作成処理、クラスＢは請求書作成処理、のように分類して定義する。ジョブクラス内の優先度とは同じクラス内のジョブ処理に優先順位を付けて処理する場合、その優先順位をいう。
【００１７】
キューサーバ１０は、ハードウェアとしてプロセッサ、メモリ及び記憶装置等を備え、またソフトウェアとしてキュー制御プログラム１０２、キューテーブル１０４、データベース（ＤＢ）１０８を有する。キュー制御プログラム１０２は、キューサーバ１０における中心的な機能であり、その実行によってジョブ管理部１０６の機能を実現して、ジョブの登録及び各ジョブの処理状況を管理する。
キューテーブル１０４は、キューサーバ１０に取得したジョブ及びその処理の進捗状況を管理する。その構成例については図２を参照して後述する。ＤＢ１０８は、ＥＤＩサーバ１１より取得したジョブの入力ファイル１１４４を保管する。入力ファイル１１４４はジョブＩＤごとに準備されたフォルダに格納され、関連するジョブと対応付けられる。
【００１８】
バッチサーバ１２はそれぞれ、ジョブを処理するコンピュータであり、ハードウェアとしてプロセッサ、メモリ及び記憶装置等を備え、またソフトウェアとしてバッチ制御プログラム２１２、１つ又は複数のジョブ処理プログラム２２４、及びキューサーバ１０から取得したジョブ（処理前のジョブ属性と入力ファイル）２３１及び処理後のジョブ（処理後のジョブ属性と入力ファイル）２３２を有する。処理後のジョブ属性と入力ファイルは、バッチ制御プログラム２１２の制御の下、キューサーバ１０へ戻される。
バッチ制御プログラム２１２はキューサーバ１０のキュー制御プログラム１０２と連携して、キューサーバ１０からのジョブの取得、バッチサーバ１２内におけるジョブの処理の進捗状況の管理、ジョブ処理後のキューサーバ１０への応答、等の管理を行う。
【００１９】
複数のジョブ処理プログラム２２４は、バッチサーバ１２が取得したジョブを処理するためのプログラムであり、各バッチサーバ１２１〜１２nは予め複数のジョブ処理プログラムを用意しておく。ここで、各バッチサーバ１２１〜１２nはそれぞれ特有の処理を専門的に処理する方が効果的なので、各バッチサーバ１２１〜１２nは異なる特有のジョブ処理プログラム毎にクラス分けして特有の処理プログラムを備えておくのがよい。例えば、バッチサーバ１２１は発注書作成や発注費管理のためのジョブ処理を行うプログラムＡ１〜Ａｎを保持し、バッチサーバ１２２は請求書作成や請求費用管理のためのジョブ処理を行うプログラムＢ１〜Ｂｍ、バッチサーバ１２３は、在庫管理のジョブ処理を行うプログラムＣ１〜Ｃｋを保持する。なお、処理要求の多い同種のジョブに対応するために、複数のバッチサーバの内の幾つかのサーバには同じクラスに属する同一のプログラムを備え、これらのバッチサーバで並列的に同種のジョブを処理するように構成してもよい。
なお、ここで複数のバッチサーバは、ハードウェアとして独立したコンピュータであってもよいし、或いはソフトウェアによって形成された仮想計算機であってもよい。
管理端末１３は、例えば、入力手段及び表示手段を備えたＰＣ（パーソナルコンピュータ）である。
【００２０】
図２は、一実施例におけるキューテーブルの構成例を示す。
キューテーブル１０４は、ジョブ及びその処理の進捗状況を管理するものであり、ＥＤＩサーバ１１から受信したジョブ属性１１４２から、ジョブＩＤ、ジョブ名、ジョブクラス、ジョブクラス内の優先度、ジョブを登録したバッチサーバのサーバＩＤ、ジョブを実行したサーバＩＤ、プログラム情報、及びバッチサーバ１２で処理されるジョブの処理状況を示すステータス（実行中、正常終了、待ち、異常終了等の状況）に関する情報を保管する。
なお、上記サーバＩＤは、ジョブの実行記録（ログ）として保持するものであり、ジョブ制御には直接的に係らない。ログが不要であれば、省略可能である。
【００２１】
次に、図４を参照してジョブ処理システムにおけるジョブ処理について説明する。
以下の説明では、ジョブ処理システムにおいてバッチサーバ１２１と１２２はクラスＡに属するジョブを処理し、バッチサーバ１２３はクラスＢのジョブを処理し、バッチサーバ１２nはクラスＣのジョブを処理するものとする。そのため、キューテーブル１０４に保持されたジョブ情報のうち、ジョブクラスＡのもの（Ａ１，Ａ２，Ａ３）はバッチサーバ１２１又は１２２で処理可能であり、同様にしてジョブクラスＢはバッチサーバ１２３で、ジョブクラスＣはバッチサーバ１２nで処理可能である。その場合、ジョブクラス内の優先度が決められているので、ジョブクラスＡ２，Ａ３はそれ以前のジョブクラスＡ１、Ａ２よりも優先順位が低いので、これらのジョブ処理又は他のジョブ処理の結果待ちとなる。
【００２２】
さて、ＥＤＩサーバ１１は、ネットワークを介して送信されて来るジョブ処理要求を受信する度に（Ｓ４１１）、ジョブ生成プログラム１１２を実行してジョブ（即ちジョブＩＤが付与されたジョブ属性と入力ファイル）を生成し（Ｓ４１２）、生成したジョブ（ジョブ属性と入力ファイル）をキューサーバ１０へ送信する（Ｓ４１３）。ＥＤＩサーバ１１はこの処理（Ｓ４１１〜Ｓ４１３）を逐次繰り返す。
【００２３】
キューサーバ１０では、ＥＤＩサーバ１１から送信されたジョブを受信する度に、キュー制御プログラム１０２を実行してジョブ管理部１０６を起動し、ジョブを登録する。即ち、受信したジョブ属性及び対応する入力ファイルをＤＢ１０８に保管すると共に、キューテーブル１０４に当該ジョブの管理情報を登録する。図２に、キューテーブル１０４の登録状況を示す。なお、キューテーブル１０４にジョブの管理情報を登録した直後は、何れのバッチサーバも当該ジョブを取得していないので、「ステータス」の欄は「待ち」となっている。なお、図４のフローチャートにおいて、キューサーバ１０でジョブを登録するステップ（Ｓ４００１）が１箇所しか記載されていないが、ジョブの登録はジョブを受信する度に生じるので、このルーチンの随所にあると考えてよい。
【００２４】
複数のバッチサーバ１２は、逐次、キューサーバ１０に対して自バッチサーバで処理するジョブが有るかを問い合わせる（Ｓ４２１０１，Ｓ４２２０１、Ｓ４２３０１）。
キューサーバ１０では、バッチサーバ１２からの問合せを受信する度に、キュー制御プログラム１０２の制御の下、キューテーブル１０４を当該バッチサーバで処理するジョブが有るかを判断する（ＳＳ４００２，Ｓ４００３）。判断の結果、各バッチサーバが処理すべきジョブが無ければ、その旨の回答を問い合わせ先のバッチサーバへ返す。バッチサーバは、ジョブ無しの回答を受信すると（Ｓ４２１０２）、以後逐次ジョブの問合せを繰り返す。
【００２５】
以下の説明では、バッチサーバ１２１で処理するジョブが有った場合（Ｓ４００３）について説明する。なお、他のバッチサーバでジョブを処理する場合でも処理ルーチン自体は同様である。
キューサーバ１０は、キューテーブル１０４を参照してバッチサーバ１２１で処理するジョブ（ジョブＩＤ０００１）が有ると、そのジョブをバッチサーバ１２１に割り当てる（Ｓ４００４）。そして、バッチサーバ１２１へジョブＩＤ０００１のジョブ（ジョブ属性及び入力ファイル）を送信する（Ｓ４００５）。
【００２６】
バッチサーバ１２１では、バッチ制御プログラム２１２の実行の下、送信されたジョブ属性及び入力ファイル２３１を受信して、記憶装置に登録する（Ｓ４２１０３）。続いて、当該ジョブＩＤ０００１のジョブ属性にあるプログラム情報によって指定されるジョブ処理プログラム（例えば、Ｘ００１Ａ１のジョブ処理プログラム）を実行して、登録された当該ジョブを処理する（Ｓ４２１０４）。なお、バッチサーバにジョブが登録された時、及びそのジョブが実行された時には、その都度、バッチサーバからキューサーバ１０へ、登録サーバＩＤ及び実行サーバＩＤを含むレスポンスが送られて、キューテーブル１０４にこれらのサーバＩＤが登録される。
ジョブ処理の実行が終了すると（Ｓ４２１０５）、処理結果ステータス（即ち正常終了又は異常終了）をキューサーバ１０へ送信する（Ｓ４２１０６）。
【００２７】
キューサーバ１０では、キュー制御プログラム１０２の実行の下、受信したジョブ属性を参照して、当該ジョブ（ジョブＩＤ０００１）に関するキューテーブル１０４の内容を更新する。即ち、当該ジョブＩＤ０００１のジョブのステータス欄に処理結果ステータスを登録する（Ｓ４００６）。
【００２８】
またバッチサーバ１２１で実行された処理プログラム（例えば、Ｘ００１Ａ１のジョブ処理プログラム）が後続処理を必要と判断した場合、バッチ制御プログラム２１２に対し、ジョブの生成を要求する。バッチ制御プログラム２１２は１つまたは複数の後続ジョブ（ジョブ属性と処理プログラムが作成した後続ジョブの入力ファイル）を生成する。この後続ジョブはＥＤＩサーバ１１の場合と同様にキューサーバ１０へ送信される。
【００２９】
以上で、バッチサーバ１２１がキューサーバ１０にジョブの問合せをして、取得した１つのジョブ処理が終了する。
その後、バッチサーバ１２１は再びキューサーバ１０へジョブの問合せをして（Ｓ４２１０７）、キューサーバ１０から新たなジョブを取得して、上記を同様の処理を行う（Ｓ４００８〜Ｓ４２１０８）。
【００３０】
同じジョブクラスに属する優先度に関して説明すれば、図２に示すキューテーブルにおいて、同じジョブクラスＡの優先度は、ジョブＩＤ０００３、ジョブＩＤ０００４の優先度は「２」「３」となっていて、ジョブＩＤ０００１よりも低い。これは、ジョブ優先度２，３のものは、ジョブ優先度がそれよりも高次のジョブの処理結果を待ってから実行されることを意味する。そのため、ジョブＩＤ０００１の処理が正常終了（ステータス欄に正常終了が記録）したことを確認して、ジョブＩＤ０００３、０００４のジョブが問合せ先の撥サーバへ割り当てられることになる。当該ジョブの処理が正常終了するまでは、ジョブＩＤ０００３、０００４のジョブのステータスは「待ち」状態である。
【００３１】
なお、上記バッチサーバ１２１におけるジョブの処理（Ｓ４２１０１〜Ｓ４２１０６）の間に、他のバッチサーバは逐次、キューサーバ１０に対してジョブの問合せをして、同じジョブクラスＡの優先度に関係無い他のジョブクラスＢ又はＣのジョブについて、それぞれ自バッチサーバのジョブクラスに属するジョブを取得して処理を実行することができる。
【００３２】
本実施例は更に以下のような作用効果がある。
管理者は管理端末１３を用いて、ジョブの実行状況や入力ファイルの内容を容易に確認することができる。ジョブの実行状況としては、例えば図２のキューテーブルの内容が表示手段に表示される。
また、管理端末１３を用いて、バッチサーバのパラメータを修正し、キューテーブルにおける当該バッチサーバの実行クラス、実行クラス優先順位の設定や変更をすることができる。これは、管理端末１３の操作により、バッチサーバのバッチ制御プログラム用の設定情報（例えば、バッチサーバがどの実行クラスを処理するかを定めた値）を変更することで実施される。これにより、特殊な処理を一定のバッチサーバで実行するなどの調整が可能であり、特にジョブが混んだ場合に調整が容易である。
また、管理端末１３を用いて、キューテーブルのジョブの状態を、例えば、「終了」から「待ち」に変更することができ、これによりジョブの再実行を容易に行える。
【００３３】
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定されることなく、種々変形して実施することができる。
例えば、上記実施例では説明上、キューサーバと複数のバッチサーバとを分けて説明した。しかし、変形例によれば、バッチサーバ１２１にキューサーバ１０の機能を持たせ、バッチサーバ１２２〜１２nに本来のバッチサーバの機能を持たせるようにしてもよい。その場合、バッチサーバ１２１は、キューサーバ１０の機能を実行するだけでなく、ジョブ処理プログラムとバッチ制御プログラムを持たせれば、ある種のランクのジョブ処理を行うことも可能であろう。
【符号の説明】
【００３４】
１０：キューサーバ  １２、１２１〜１２n：バッチサーバ  １３：管理端末  １１：ＥＤＩサーバ  
１０２：キュー制御プログラム  １０４：キューテーブル  １０６：ジョブ管理部  １０８：データベース（ＤＢ）  
１１２：ジョブ生成プログラム  １１４：ジョブ  １１４２：ジョブ属性  １１４４：入力ファイル  
２１２：バッチ制御プログラム  ２２４：ジョブ処理プログラム  ２３１，２３２：ジョブ。
【図１】
0005512215.tif 000002
【図２】
0005512215.tif 000003
【図３】
0005512215.tif 000004
【図４】
0005512215.tif 000005