(57)【要約】      （修正有）【課題】各プリンタにおける印刷完了時刻を平滑化し、プリンタを停止させることなく最短時間で要求した複数部数のジョブの印刷を完了させる分散印刷制御方法を提供する。【解決手段】分散印刷制御装置から任意のプリンタに印刷部数１の印刷予約コマンドを送信する第１のステップと、印刷中でない場合はプリンタは部開始通知を返信する第２のステップと、分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第３のステップと、プリンタは部完了通知を送信する第４のステップと、分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第５のステップとを含み、印刷完了部数が印刷要求部数に等しくなるまで前記第１乃至第５のステップを繰り返すようにした。【選択図】図２−１
2008015894.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のプリンタと、分散印刷制御装置を用いて要求された印刷部数を分散印刷する方法であって、
前記分散印刷制御装置から任意のプリンタに印刷部数１の印刷予約コマンドを送信する第１のステップと、
該コマンドを受信したプリンタが印刷中でない場合は、該プリンタは印刷を開始すると共に、前記分散印刷制御装置に部開始通知を送信する第２のステップと、
該部開始通知を受信した前記分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達しているか否かを判定し、達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第３のステップと、
前記第２ステップで印刷を開始したプリンタが部数１の印刷を終了したときは、前記分散印刷制御装置に部完了通知を送信する第４のステップと、
該部完了通知を受信した前記分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達しているか否かを判定し、達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第５のステップとを含み、印刷完了部数が印刷要求部数に等しくなるまで前記第１乃至第５のステップを繰り返すことを特徴とする分散印刷制御方法。
【請求項２】
請求項１において、印刷予約コマンドを受信したプリンタに障害が発生し、印刷ができないときは、該プリンタから前記分散印刷制御装置に障害発生通知を送信する第６のステップを備えたことを特徴とする分散印刷制御方法。
【請求項３】
請求項２において、前記障害発生通知を受信した分散印刷制御装置は、該当するプリンタに印刷予約キャンセルコマンドを送信する第７のステップを備えたことを特徴とする分散印刷制御方法。
【請求項４】
請求項２において、障害発生通知を送信したプリンタが障害を回復したときは、該当するプリンタから前記分散印刷制御装置に障害回復通知を送信する第８のステップを備えたことを特徴とする分散印刷制御方法。
【請求項５】
請求項４において、障害回復通知を受信した前記分散印刷制御装置は、印刷済、印刷中及び印刷予約済の部数が要求印刷部数に達していないときは、障害回復したプリンタに印刷続行コマンドを送信する第９のステップを備えたことを特徴とする分散印刷制御方法。
【請求項６】
ネットワークに接続された複数個Ｍのプリンタと分散印刷制御装置とよりなり、要求された印刷部数Ｎを１部ずつ各プリンタに割り当てて印刷する分散印刷システムにおける分散印刷制御装置であって、
印刷要求部数Ｎを記憶する印刷要求部数レジスタと、
前記プリンタに印刷予約コマンドを送信したときに各プリンタ毎に印刷予約フラグを記憶する印刷予約フラグレジスタと、
前記プリンタが印刷を開始したとき通知する部開始通知を受信したときに、各プリンタ毎に部開始フラグを記憶する部開始フラグレジスタと、
前記プリンタが印刷を終了したとき通知する部終了通知を受信したときに、各プリンタ毎に部終了フラグを記憶する部終了フラグレジスタと、
前記各レジスタにセットされた印刷予約フラグ数ｒ、部開始フラグ数ｐ、部終了フラグ数ｔと、前記要求印刷部数Ｎとの関係から次の印刷予約コマンドをプリンタに送信するか否かを判定する演算手段とを備えたことを特徴とする分散印刷制御装置。
【請求項７】
請求項６において、前記プリンタで障害が発生したとき、該プリンタが通知する障害発生通知を受信したときに、各プリンタ毎に障害フラグを記憶する障害フラグレジスタを備え、該障害フラグレジスタにセットされた障害フラグ数ｅも含めて次の印刷予約コマンドをプリンタに送信するか否かを判断することを特徴とする分散印刷制御装置。
【請求項８】
請求項７において、前記プリンタが障害を回復したときは、該プリンタが通知する障害回復通知を受信したときに、前記障害フラグレジスタにセットしたフラグをリセットし、リセット後の障害フラグ数ｅに基づいて次の印刷予約コマンドをプリンタに送信するか否かを判断することを特徴とする分散印刷制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された複数のプリンタを組み合わせて、複数部数ジョブを効率良く印刷する分散印刷制御装置及び分散印刷制御方法に関するものである。
【背景技術】
【０００２】
近年、複数のプリンタを同一ネットワークに接続し、ネットワーク上のコンピュータユーザが複数のプリンタを使い分ける印刷システムが普及している。複数部数のジョブを印刷する場合、印刷ジョブを同一機能を持った複数台のプリンタに分配し、並列印刷させることにより、短時間で印刷を完了する分散印刷方式も提案されている。分散印刷を行う場合は、一般にネットワーク上に設けられた分散印刷制御装置が、印刷ジョブの分散出力先の設定、複数部数ジョブの分割処理、分割されたジョブのネットワーク上のプリンタへの送信を行い、これらジョブの印刷制御を集中して行っている。
【０００３】
【特許文献１】特開２００２−２１５３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術では同時印刷を行っている何れかのプリンタで、用紙切れ、用紙ジャム、トナー切れ、或いは保守を伴うハードウエア障害が発生した場合、そのプリンタに割り当てられた分割ジョブはプリンタが復旧するまで印刷を中断することになり、分散印刷による時間短縮が期待できないという問題があった。
【０００５】
この問題に対し、特許文献１は、障害発生したプリンタで印刷する部数を印刷可能な他のプリンタに振り分けて印刷処理することを開示する。
【０００６】
また、障害が発生したプリンタを一時的にシステムから切り離し、利用可能な他のプリンタへ代行印刷させる仕組みも利用されている。しかし、他のプリンタへ代行印刷用のジョブを送信してしまった後、障害が発生していたプリンタが回復した場合は、回復したプリンタが使用されないという不都合があった。
【０００７】
これを解決するために、代行印刷するためのプリンタへ、代行印刷用のジョブを送信するのではなく、印刷する部数を増減するコマンドを送信する方法も考案されている。しかしこの方法では、部数を増減させるコマンドを送信するタイミングによって、そのコマンドを受信する前の部の印刷を開始してしまう可能性があった。これを避けるためには、増減するコマンドを送信する前に、各プリンタの印刷を一時的に中断させることも考えられるが、各プリンタの印刷を一時的に中断させることは、効率的な印刷を阻害する要因になる。
【０００８】
また、性能が異なる複数台のプリンタで分散印刷を行う場合、それぞれの印刷が完了する時間を無視して同程度の部数を指定する方法と、各プリンタの性能を考慮して部数を指定する方法があるが、前者は印刷効率が悪く、後者は事前にプリンタの性能情報を入手する必要があるため、制御が煩雑になるという問題があった。
【０００９】
本発明は上記のような従来技術の問題を解決した分散印刷制御装置及び分散印刷制御方法を提供することを目的とする。
【００１０】
具体的には、本発明は、ハードウエア障害によりプリンタが印刷続行不可能状態になったり、或いは用紙切れなどのためにオペレータ介入によってプリンタが一時停止状態になった場合にも、各プリンタに印刷ジョブを適正に割り当てることにより、各プリンタにおける印刷完了時刻を平滑化し、印刷中のプリンタを停止させることなく最短時間で要求した複数部数のジョブの印刷を完了させることができる分散印刷制御装置及び分散印刷制御方法を提供することを目的とする。
【００１１】
また本発明は、性能が異なる複数台のプリンタを用いて分散印刷を行う場合でも、事前にプリンタの性能情報を入手せずに印刷ジョブを各プリンタに適正に配分し、効率よく印刷することが可能な分散印刷制御装置及び分散印刷制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために本発明は,ネットワークに接続された複数のプリンタと、分散印刷制御装置を用いて要求された印刷部数を分散印刷する方法であって、前記分散印刷制御装置から任意のプリンタに印刷部数１の印刷予約コマンドを送信する第１のステップと、該コマンドを受信したプリンタが印刷中でない場合は、該プリンタは印刷を開始すると共に、前記分散印刷制御装置に部開始通知を送信する第２のステップと、該部開始通知を受信した前記分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達しているか否かを判定し、達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第３のステップと、前記第２ステップで印刷を開始したプリンタが部数１の印刷を終了したときは、前記分散印刷制御装置に部完了通知を送信する第４のステップと、該部完了通知を受信した前記分散印刷制御装置は、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達しているか否かを判定し、達していない場合は別のプリンタに印刷部数１の印刷予約コマンドを送信する第５のステップとを含み、印刷完了部数が印刷要求部数に等しくなるまで前記第１乃至第５のステップを繰り返すようにした分散印刷制御方法に一つの特徴を有する。  
本発明の他の特徴は、印刷予約コマンドを受信したプリンタに障害が発生し、印刷ができないときは、該プリンタから前記分散印刷制御装置に障害発生通知を送信する第６のステップを備えたことにある。
本発明の他の特徴は、前記障害発生通知を受信した分散印刷制御装置が、該当するプリンタに印刷予約キャンセルコマンドを送信する第７のステップを備えたことにある。
【００１３】
本発明の他の特徴は,障害発生通知を送信したプリンタが障害を回復したときは、該当するプリンタから前記分散印刷制御装置に障害回復通知を送信する第８のステップを備えたことにある。
【００１４】
本発明の他の特徴は、障害回復通知を受信した前記分散印刷制御装置が、印刷済、印刷中及び印刷予約済の総和の部数が要求印刷部数に達していないとき、障害回復したプリンタに印刷続行コマンドを送信する第９のステップを備えたことにある。
【００１５】
本発明の他の特徴は,ネットワークに接続された複数個Ｍのプリンタと、分散印刷制御装置とよりなり、要求された印刷部数Ｎを１部ずつ各プリンタに割り当てて印刷する分散印刷システムにおける分散印刷制御装置であって、印刷要求部数Ｎを記憶する印刷要求部数レジスタと、前記プリンタに印刷予約コマンドを送信したときに、各プリンタ毎に印刷予約フラグを記憶する印刷予約フラグレジスタと、前記プリンタが印刷を開始したとき通知する部開始通知を受信したときに、各プリンタ毎に部開始フラグを記憶する部開始フラグレジスタと、前記プリンタが印刷を終了したとき通知する部終了通知を受信したときに、各プリンタ毎に部終了フラグを記憶する部終了フラグレジスタと、前記各レジスタにセットされた印刷予約フラグ数ｒ、部開始フラグ数ｐ、部終了フラグ数ｔと、前記要求印刷部数Ｎとの関係から次の印刷予約コマンドをプリンタに送信するか否かを判定する演算手段とを備えた分散印刷制御装置にある。
【００１６】
本発明の他の特徴は,前記プリンタで障害が発生したとき、該プリンタが通知する障害発生通知を受信したときに、各プリンタ毎に障害フラグを記憶する障害フラグレジスタを備え、該障害フラグレジスタにセットされた障害フラグ数ｅも含めて次の印刷予約コマンドをプリンタに送信するか否かを判断するようにしたことにある。
【００１７】
本発明の他の特徴は,前記プリンタが障害を回復したときは、該プリンタが通知する障害回復通知を受信したときに、前記障害フラグレジスタにセットしたフラグをリセットし、リセット後の障害フラグ数ｅに基づいて次の印刷予約コマンドをプリンタに送信するか否かを判断するようにしたことにある。
【発明の効果】
【００１８】
本発明によれば、各プリンタに対して部数１ずつ印刷指示をし、プリンタから通知される印刷開始及び印刷終了通知に応じて次の１部の印刷予約を行うので、各プリンタは中断することなく連続して印刷処理を行うことが可能になる。また、印刷速度の情報を予め制御装置が入手しておく必要がなく、各プリンタの印刷速度に応じて自動的に印刷開始及び印刷予約を制御することができる。
【００１９】
更に、プリンタに障害が発生した場合は、自動的に障害のないプリンタだけで印刷処理を行い、障害が回復した場合は、回復したプリンタも含めて印刷処理を実行することができる。このため、分散印刷の印刷効率を格段に向上せしめ得るという効果がある。
【発明を実施するための最良の形態】
【００２０】
図１は本発明に係る分散印刷制御装置を含む分散印刷システムの構成を示す。分散印刷システムは、ネットワーク１００に接続された複数個のプリンタ４００，５００，６００と、分散印刷制御装置３００及びクライアントコンピュータ２００とから構成されている。
【００２１】
図２−１は本発明に係る分散印刷制御装置の一実施例を示すブロック図である。図に示すように、各プリンタ４００，５００，６００はネットワーク１００を介して分散印刷制御装置３００の送受信ポート３０２に接続されている。送受信ポート３０２は共通バス３０３を介して演算制御処理装置（以下ＣＰＵ）３０１に接続されている。また、共通バス３０３には、ＲＯＭ３０４、ＲＡＭ３０５、カウンタ群３０６、レジスタ群３１１が接続されている。
【００２２】
ＲＯＭ３０４は、分散印刷制御装置３００で実行するプログラムを格納し、ＲＡＭはプログラムの実行に伴うデータを一時的に記憶する。
【００２３】
レジスタ群３１１は本実施例では印刷要求部数レジスタ３１２、部開始フラグレジスタ３１３、印刷予約フラグレジスタ３１４、部終了フラグレジスタ３１５及び障害フラグレジスタ３１６を含む。
【００２４】
印刷要求部数レジスタ３１２は、クライアントコンピュータ２００から要求される印刷要求部数ｎ（本実施例では初期値をＮ（定数）とする）を記憶する。
【００２５】
フラグレジスタ３１３〜３１６は、図２−２に示すようにプリンタの数（本実施例ではＭとする）に相当するビット、または記憶領域（１）、（２）・・・（Ｍ）を有し、（１）はプリンタ１、（２）はプリンタ２、（Ｍ）はプリンタＭの情報を記憶する。
【００２６】
部開始フラグレジスタ３１３の各記憶領域（１）、（２）・・・（Ｍ）には、各プリンタ１，２，・・・Ｍから部数１の印刷を開始したという通知を受信したときにフラグ（例えば“１”）がセットされる。また印刷予約フラグレジスタ３１４の各記憶領域（１）、（２）・・・（Ｍ）には、各プリンタ１，２，・・・Ｍに印刷ジョブを送信したときにフラグがセットされる。部終了フラグレジスタ３１５の各記憶領域（１）、（２）・・・（Ｍ）には、各プリンタから部数１の印刷を終了したという通知を受信したときにフラグがセットされる。障害フラグレジスタ３１６の各記憶領域（１）、（２）・・・（Ｍ）には、各プリンタ１，２，・・・Ｍから障害が発生したという通知を受信したときにフラグがセットされる。
【００２７】
一方、レジスタ群３０６は本実施例では部終了カウンタ３０７、部開始カウンタ３０８、印刷予約カウンタ３０９、及び障害カウンタ３１０を含む。
【００２８】
印刷完了部数カウンタ３０７は、クライアントコンピュータ２００から要求された印刷部数Ｎのうち、プリンタ１〜Ｍにより何部の部数の印刷が完了したかを表す情報を記憶する。すなわち、部終了フラグレジスタ３１５のフラグ数をカウントして記憶するもので、本実施例では印刷完了部数をｔで表わす。部開始カウンタ３０８は、部開始フラグレジスタ３１３にセットされているフラグ数（本実施例ではｐとする）をカウントする。
【００２９】
印刷予約カウンタ３０９は、印刷予約フラグレジスタ３１４にセットされているフラグ数（本実施例ではｒとする）をカウントする。障害カウンタ３１０は、障害フラグレジスタ３１６にセットされているフラグ数（本実施例ではｅとする）をカウントする。
【００３０】
次に本分散印刷システムにおけるプリンタ側の制御フローと、分散印刷制御装置の制御フローのそれぞれについて説明する。
【００３１】
（プリンタの制御フロー）
図３−１は各プリンタ４００，５００，６００における印刷処理Ｓ１０のフローチャートを示す。
【００３２】
各プリンタ４００，５００，６００は分散印刷制御装置３００からジョブを受信してもすぐには印刷を開始しない。印刷予約コマンドを受信したか否かを判定し（Ｓ１０１）、受信すると内部フラグをセットする（Ｓ１０２）。次にステップＳ１０３においてプリンタが現在印刷中であるか否かを判定し、印刷中でない場合は、分散印刷制御装置３００に部開始通知を送信する（Ｓ１０４）。この部開始通知を分散印刷制御装置３００が受信すると、該当するプリンタに対応する部開始フラグレジスタ３１３の記憶領域にフラグをセットする。従って部開始カウンタ３０８のカウント値ｐから、現在印刷中のプリンタの数を知ることができる。
【００３３】
図３−１の説明に戻り、ステップＳ１０４に続いてＳ１０５に進み、印刷予約コマンドの内部フラグをリセットし、次の印刷予約コマンドを受信できるようにしてからステップＳ１０６で印刷を開始する。更にステップＳ１０７では１部（部数）の印刷が終了したか否かを判定し、終了した場合は分散印刷制御装置３００に部完了通知を送信する。分散印刷制御装置３００は部完了通知を受信すると、部開始フラグレジスタ３１３の該当するプリンタの記憶領域のフラグをリセットすると共に、部終了フラグレジスタ３１５の該当するプリンタの記憶領域にフラグをセットする。
【００３４】
以上の処理により、部開始フラグレジスタ３１３、印刷予約フラグレジスタ３１４及び部終了フラグレジスタ３１５の各記憶領域のフラグから、現在印刷予約コマンドを受信中のプリンタと、現在印刷中のプリンタと、部数１の印刷を終了したプリンタを知ることができる。また、部終了カウンタ３０７、部開始カウンタ３０８及び印刷予約カウンタ３０９のカウント値ｔ，ｐ，ｒより、印刷を終了した部数と、現在印刷中の部数及び印刷予約中の部数を知ることができる。
【００３５】
図３−２は各プリンタにおける障害処理Ｓ２０の処理フローを示す。まずステップＳ２０１においてプリンタに障害が発生したか否かを判定し、発生した場合には障害発生通知を分散印刷制御装置３００に送信する（Ｓ２０２）。分散印刷制御装置３００はこの通知を受信すると、障害フラグレジスタ３１６の所定の記憶領域にフラグをセットする。
【００３６】
次にステップＳ２０３では障害が回復したか否かを判定し、回復した場合には分散印刷制御装置３００に障害回復通知を送信する。分散印刷制御装置３００は、障害回復通知を受信すると、障害フラグレジスタ３１６の所定の記憶領域のフラグをリセットする。従って、障害フラグレジスタ３１６の内容から、現在障害が発生しているプリンタを知ることができる。また、障害カウンタ３１０のカウント値ｅより、現在障害が発生しているプリンタの数を知ることができる。
【００３７】
（分散印刷制御装置の制御フロー）
図４は、分散印刷制御装置３００の印刷制御処理Ｓ３０の制御フローを示す。まずステップＳ３１０において、分散印刷制御装置３００は、各プリンタに対する印刷ジョブの送信処理を実行する。プリンタの台数をＭ、印刷部数をＮとすると、Ｎ＞Ｍの場合はＭ台のプリンタに対してジョブを送信し、Ｎ≦Ｍの場合はＮ台のプリンタに対してジョブを送信する。
【００３８】
次に、ステップＳ３６１でプリンタより何らかの通知があったか否かを判定し、通知があった場合は、その通知が部開始通知であるか否か判定する（ステップＳ３６２）。ステップＳ３６２の判定がＹＥＳの場合は、後述する部開始処理Ｓ３２０を実行する。またステップＳ３６３では、プリンタより受信した通知が部完了通知か否かを判定し、ＹＥＳの場合は、後述する部完了処理Ｓ３３０を実行する。ステップＳ３６４では、プリンタより受信した通知が障害発生通知か否かを判定し、ＹＥＳの場合は、後述する障害発生処理Ｓ３４０を実行する。ステップＳ３６５では、プリンタより受信した通知が障害回復通知か否かを判定し、ＹＥＳの場合は、後述する障害回復処理Ｓ３５０を実行する。以下、各処理Ｓ３１０〜Ｓ３５０の詳細について説明する。
【００３９】
（ジョブ送信処理Ｓ３１０）
図５−１は、ジョブ送信処理Ｓ３１０の処理フローを示す。処理Ｓ３１０は、印刷要求部数に応じて複数プリンタに印刷ジョブを割り当てる処理を行う。まずステップＳ３１１において、分散印刷制御装置３００におけるカウンタ群３０６及びレジスタ群３１１等のイニシャライズを行う。即ちプリンタの台数ｍ（本実施例では初期値Ｍ（定数））をＲＡＭ３０５の適当な記憶領域に記憶し、印刷要求部数ｎ（本実施例では初期値Ｎ（定数））を印刷要求部数レジスタ３１２に設定する。また、部終了数ｔ、部開始数ｐ、印刷予約数ｒ、障害発生数ｅをそれぞれ０にセットする。
【００４０】
次にステップＳ３１２において、ｍ又はｎが０か否か判定し、ＮＯの場合は１つのプリンタにジョブを送信する（Ｓ３１３）。また、ジョブを送信したプリンタに対応する印刷予約フラグレジスタ３１４の記憶領域に予約フラグをセットする（Ｓ３１４）。更に、印刷予約数ｒについて、ｒ＝ｒ＋１の演算を実行して更新した予約数ｒを印刷予約カウンタ３０９に格納する（Ｓ３１５）。ステップＳ３１６においては、該当するプリンタへ印刷予約コマンドを送信し、ステップＳ３１７ではｍ＝ｍ−１、ｎ＝ｎ−１の演算を行って、それぞれｍ及びｎの値を更新する。このような処理を繰り返し実行してｍ＝０又はｎ＝０になると、ジョブ送信処理Ｓ３１０を終了し、図４のステップＳ３６１に進む。
【００４１】
以上のようにして、ジョブ送信処理Ｓ３１０においては、Ｎ＞Ｍの場合はＭ台の全てのプリンタに対して印刷予約コマンドを送信し、Ｎ≦Ｍの場合はＮ台のプリンタの全てに対して印刷予約コマンドを送信する処理を実行する。
【００４２】
各プリンタは印刷予約コマンドを受信すると、図３−１に示したように内部フラグをセットし（Ｓ１０２）、印刷中でなければ部開始通知を送信して（Ｓ１０４）、内部フラグをリセットし（Ｓ１０５）、１部だけの印刷を開始する（Ｓ１０６）。分散印刷制御装置３００は、プリンタからの通知を受信待機する。
【００４３】
（部開始処理Ｓ３２０）
図５−２は、部開始処理Ｓ３２０の処理フローを示す。処理Ｓ３２０は、各プリンタにおける印刷の実行開始を管理する。プリンタより部開始通知があると、分散印刷制御装置３００は、まずステップＳ３２１において印刷予約フラグレジスタ３１４の該当するプリンタの記憶領域のフラグをリセットする。また、印刷予約数ｒに対してｒ＝ｒ−１の演算を実行し（Ｓ３２２）、その結果を印刷予約カウンタ３０９に格納する。
【００４４】
ステップＳ３２３において、部開始フラグレジスタ３１３の該当するプリンタの記憶領域をセットする。また、部開始数ｐに対してｐ＝ｐ＋１の演算を実行し（Ｓ３２４）、その結果を部開始カウンタ３０８に格納する。
【００４５】
次にステップＳ３２５において、Ｎ＞ｔ＋ｒ＋ｐ−ｅの不等式が成立するか否か判定する。障害が発生しているプリンタを除いて、印刷完了部数ｔ、部開始数ｐ及び印刷予約数ｒの総和より印刷要求部数Ｎが多いということは、更に印刷を必要とするということであるから、分散印刷制御装置３００は、ステップＳ３２６において印刷中でないプリンタの印刷予約フラグをセットし（Ｓ３２６）、ｒ＝ｒ＋１の演算結果を印刷予約カウンタ３０９に格納（Ｓ３２７）した後、ステップＳ３２８において該当するプリンタに印刷予約コマンドを送信する。
【００４６】
一方、ステップＳ３２５の判定がＮＯになると、印刷要求部数の印刷が完了、印刷中もしくは印刷予約されていることを示しているので、部開始処理Ｓ３２０を終了する。
【００４７】
以上のように、部開始処理Ｓ３２０はプリンタ数、印刷要求数に応じて、各プリンタで実行するジョブの開始を管理する。
【００４８】
（部完了処理Ｓ３３０）
図５−３は、部完了処理Ｓ３３０の処理フローを示す。Ｓ３３０は、各プリンタで実行を開始したジョブの実行完了を管理する。分散印刷制御装置３００は、プリンタから部完了通知を受信すると、まずステップＳ３３１において部開始フラグレジスタ３１３の該当するプリンタの記憶領域のフラグをリセットすると共に、部終了フラグレジスタ３１５の該当するプリンタの記憶領域にフラグをセットする。また部開始数ｐに対してｐ＝ｐ−１、印刷完了部数ｔに対してｔ＝ｔ＋１を演算し、その結果を部開始カウンタ３０８及び印刷完了部数カウンタ３０７にそれぞれ格納する（Ｓ３３２、Ｓ３３３）。
【００４９】
次に、ステップＳ３３４においてＮ＝ｔか否か判定する。この判定結果がＹＥＳということは、印刷完了部数が印刷要求部数に達したということであるから、これ以上の印刷をしないように該当するプリンタの印刷予約フラグをセットして（Ｓ３３５）、処理を終了する（Ｓ３３６）。また、ステップＳ３３４の判定結果がＮＯの場合はステップＳ３６１の処理に戻り、同じ処理が繰り返し実行される。
【００５０】
このように部完了処理は、各プリンタが実行開始したジョブの完了を管理する。
【００５１】
以上述べたように、本発明に係る分散印刷制御装置３００は、各プリンタに対して１部ずつ印刷を指示し、プリンタが印刷を開始すると次の１部の印刷予約をするので、各プリンタは、中断することなく連続して印刷処理を行う。すなわち、予めプリンタの印刷速度に関する情報を入手しなくとも、各プリンタの印刷速度に応じて効率よく印刷処理を行うことが可能となる。
【００５２】
（障害発生処理Ｓ３４０）
図５−４は、障害発生処理Ｓ３４０の処理フローを示す。プリンタより障害発生通知を受信すると、分散印刷制御装置３００は、まずステップＳ３４１において、障害フラグレジスタ３１６の該当するプリンタに対応する記憶領域に障害フラグをセットする。また障害発生数ｅに対してｅ＝ｅ＋１の演算を行って、その結果を障害カウンタ３１０に格納する（Ｓ３４２）。
【００５３】
更にステップＳ３４３において、該当するプリンタの印刷予約フラグがセットされているか否かを判定し、セットされている場合には印刷予約キャンセルコマンドを送信し、プリンタに、次の部は印刷しないように指示する。また印刷予約数ｒに対してｒ＝ｒ−１の演算を行い、その結果を印刷予約カウンタ３０９に格納する（Ｓ３４６）。
【００５４】
以上のように障害発生処理Ｓ３４０を実行すると、これ以降は障害が発生したプリンタに新しく印刷予約がされないようにすると共に、常に印刷可能なプリンタだけで印刷処理を実行させることができる。またステップＳ３４６を実行することにより、前述のステップＳ３２５は、障害が発生した分ｅを差し引いて印刷要求部数の値と比較するため、最終的に印刷される部数が多くなったり少なくなることはない。
【００５５】
このように本発明では、印刷可能なプリンタに対して１部ずつ印刷を指示し、障害が発生したプリンタには印刷を指示しない。即ち、障害が発生したプリンタが印刷するはずだった分を、他のプリンタが代行する方法ではなく、印刷可能なプリンタを分散印刷制御装置３００が認識して、そのプリンタだけで１部ずつ印刷処理していくため、印刷する部数の変更を行う必要がなく、プリンタは中断することなく連続して印刷処理を行うことができる。
【００５６】
（障害回復処理Ｓ３５０）
図５−５は、障害回復処理Ｓ３５０の処理フローを示す。障害が発生したプリンタから障害回復通知を受信すると、分散印刷制御装置３００は、ステップＳ３５１において、障害フラグレジスタ３１６における該当するプリンタに相当する記憶領域の障害フラグをリセットする。
【００５７】
更にステップＳ３５２において、Ｎ＞ｔ＋ｒ＋ｐ−ｅが成立するか否か判定する。この判定がＹＥＳの場合は印刷完了、印刷中及び印刷予約中の部数の総和が印刷要求部数Ｎに達していないことを意味するから、障害が回復したプリンタに、障害が発生して中断していた印刷を続行するための印刷続行コマンドを送信する（ステップＳ３５３）。そしてｅ＝ｅ−１の演算を実行して、その結果を障害カウンタ３１０に格納する（Ｓ３５４）。
【００５８】
更にステップＳ３５５において更に、印刷完了、印刷中及び印刷予約中の部数の総和が印刷要求部数に達していなければ、他のプリンタへ印刷予約コマンドを送信する（Ｓ３５６）。これ以降は障害が回復したプリンタも印刷可能なプリンタとなり印刷予約が行われるようになる。
【００５９】
このように本発明では、プリンタに障害が発生しても、障害が回復した場合には直ちに分散印刷制御装置３００から印刷を指示することが可能であるから、たとえプリンタに障害が発生してもその影響を最小限に留めることができ、印刷業務効率を高めることができる。
【００６０】
以上本発明の実施例について説明したが、本発明の基本的な考え方を変更しない範囲で種々の変形を加えることは可能である。例えば本実施例では、ＲＡＭ３０５とは別にレジスタ群３１１及びカウンタ群３０６を設けたが、ＲＡＭ３０５の一部の記憶領域を用いることもできる。
【図面の簡単な説明】
【００６１】
【図１】本発明の分散印刷制御装置３００を含む分散印刷システムの構成を示すブロック図。
【図２−１】本発明に係る分散印刷制御装置３００の一実施例の構成を示すブロック図。
【図２−２】図２−１におけるフラグレジスタの説明図。
【図３−１】本発明におけるプリンタの印刷処理を示すフローチャート。
【図３−２】本発明におけるプリンタの障害処理を示すフローチャート。
【図４】本発明に係る分散印刷制御装置３００の印刷制御処理の全体を示すフローチャート。
【図５−１】本発明におけるジョブ送信処理の一実施例を示すフローチャート。
【図５−２】本発明における部開始処理の一実施例を示すフローチャート。
【図５−３】本発明における部完了処理の一実施例を示すフローチャート。
【図５−４】本発明における障害発生処理の一実施例を示すフローチャート。
【図５−５】本発明における障害回復処理の一実施例を示すフローチャート。
【符号の説明】
【００６２】
１００：ネットワーク
２００：クライアントコンピュータ
３００：分散印刷制御装置
４００〜６００：プリンタ
３０１：ＣＰＵ
３０２：送受信ポート
３０３：共通バス
３０４：ＲＯＭ
３０５：ＲＡＭ
３０６：カウンタ群
３０７：印刷完了部数カウンタ
３０８：部開始カウンタ
３０９：印刷予約カウンタ
３１０：障害カウンタ
３１１：レジスタ群
３１２：印刷要求部数レジスタ
３１３：部開始フラグレジスタ
３１４：印刷予約フラグレジスタ
３１５：部終了フラグレジスタ
３１６：障害フラグレジスタ
【図１】
2008015894.tif 000003
【図２−１】
2008015894.tif 000004
【図２−２】
2008015894.tif 000005
【図３−１】
2008015894.tif 000006
【図３−２】
2008015894.tif 000007
【図４】
2008015894.tif 000008
【図５−１】
2008015894.tif 000009
【図５−２】
2008015894.tif 000010
【図５−３】
2008015894.tif 000011
【図５−４】
2008015894.tif 000012
【図５−５】
2008015894.tif 000013