(57)【要約】【課題】分散印刷における複数の画像形成装置のジョブ終了タイミングのズレを抑制し、印刷ジョブを効率的に処理する。【解決手段】複数の画像形成装置と、複数の画像形成装置を制御する分散印刷制御装置と、を含む分散印刷システムで動作する分散印刷制御プログラムであって、分散印刷システム内のいずれかの装置に、印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理、分散印刷制御装置における複数の仮想キューに複数の分割ジョブを割り当てるジョブ割り当て処理、画像形成装置のジョブ処理状態に応じて、画像形成装置に対応する仮想キューから分割ジョブを順次取り出して、対応する画像形成装置のデバイスキューに送信するジョブ指示処理、複数の画像形成装置のジョブ終了タイミングを揃えるように、仮想キュー間で分割ジョブを移動させるジョブ再割り当て処理、を実行させる。【選択図】図１１
2018010640.tif 000002
【特許請求の範囲】
【請求項１】
デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置と、前記複数の画像形成装置毎に対応する仮想キューを有し前記複数の画像形成装置を制御する分散印刷制御装置と、を含む分散印刷システムで動作する分散印刷制御プログラムであって、
前記分散印刷システム内のいずれかの装置に、
前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理、
前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当てるジョブ割り当て処理、
前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ指示処理、
前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させるジョブ再割り当て処理、を実行させる、
ことを特徴とする分散印刷制御プログラム。
【請求項２】
前記デバイスキューは、前記仮想キューから送信される前記分割ジョブを複数保存する、
ことを特徴とする請求項１に記載の分散印刷制御プログラム。
【請求項３】
前記ジョブ分割処理では、前記印刷ジョブを、所定数の部単位又は所定数のページ単位で分割する、
ことを特徴とする請求項１又は２に記載の分散印刷制御プログラム。
【請求項４】
前記ジョブ分割処理では、前記複数の画像形成装置の処理能力に差がある場合は、処理能力が最も低い画像形成装置が単位時間に処理可能な部数又はページ数を単位にして、前記印刷ジョブを分割する、
ことを特徴とする請求項３に記載の分散印刷制御プログラム。
【請求項５】
前記ジョブ指示処理では、各々の前記画像形成装置における処理待ちの前記分割ジョブの数が１つとなるように、前記仮想キューから前記分割ジョブを送信する、
ことを特徴とする請求項３又は４に記載の分散印刷制御プログラム。
【請求項６】
前記ジョブ割り当て処理では、前記複数の仮想キューに前記分割ジョブを均等に割り当て、
前記ジョブ再割り当て処理では、前記複数の仮想キューにおける前記分割ジョブの残数が均等になるように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項３乃至５のいずれか一に記載の分散印刷制御プログラム。
【請求項７】
前記ジョブ割り当て処理では、前記複数の仮想キューに前記分割ジョブを、前記画像形成装置の処理能力に応じた所定の比率で割り当て、
前記ジョブ再割り当て処理では、前記複数の仮想キューにおける前記分割ジョブの残数が前記所定の比率を維持するように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項３乃至５のいずれか一に記載の分散印刷制御プログラム。
【請求項８】
２台の画像形成装置に前記所定数のページ単位で分割した分割ジョブを送信する場合、
前記ジョブ割り当て処理では、第１の画像形成装置に対応する仮想キューには、昇順でページが変化するように前記分割ジョブを割り当て、第２の画像形成装置に対応する仮想キューには、降順でページが変化するように前記分割ジョブを割り当て、
前記ジョブ再割り当て処理では、一方の仮想キュー内の末尾の前記分割ジョブを他方の仮想キューの末尾に移動させる、
ことを特徴とする請求項６又は７に記載の分散印刷制御プログラム。
【請求項９】
前記ジョブ指示処理では、前記第１の画像形成装置にはフェイスダウン出力を指示し、前記第２の画像形成装置にはフェイスアップ出力を指示する、
ことを特徴とする請求項８に記載の分散印刷制御プログラム。
【請求項１０】
前記分散印刷制御装置は、前記複数の画像形成装置を一群の画像形成装置として予め設定して制御する、
ことを特徴とする請求項１乃至９のいずれか一に記載の分散印刷制御プログラム。
【請求項１１】
デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置を制御し、前記複数の画像形成装置毎に対応する仮想キューを有する分散印刷制御装置であって、
前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割部と、
各々の前記画像形成装置のジョブ処理状態を監視する状態監視部と、
前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当て、前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ制御部と、を備え、
前記ジョブ制御部は、前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする分散印刷制御装置。
【請求項１２】
前記デバイスキューは、前記仮想キューから送信される前記分割ジョブを複数保存する、
ことを特徴とする請求項１１に記載の分散印刷制御装置。
【請求項１３】
前記ジョブ分割部は、前記印刷ジョブを、所定数の部単位又は所定数のページ単位で分割する、
ことを特徴とする請求項１１又は１２に記載の分散印刷制御装置。
【請求項１４】
前記ジョブ分割部は、前記複数の画像形成装置の処理能力に差がある場合は、処理能力が最も低い画像形成装置が単位時間に処理可能な部数又はページ数を単位にして、前記印刷ジョブを分割する、
ことを特徴とする請求項１３に記載の分散印刷制御装置。
【請求項１５】
前記ジョブ制御部は、各々の前記画像形成装置における処理待ちの前記分割ジョブの数が１つとなるように、前記仮想キューから前記分割ジョブを送信する、
ことを特徴とする請求項１３又は１４に記載の分散印刷制御装置。
【請求項１６】
前記ジョブ制御部は、前記複数の仮想キューに前記分割ジョブを均等に割り当てると共に、前記複数の仮想キューにおける前記分割ジョブの残数が均等になるように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項１３乃至１５のいずれか一に記載の分散印刷制御装置。
【請求項１７】
前記ジョブ制御部は、前記複数の仮想キューに前記分割ジョブを、前記画像形成装置の処理能力に応じた所定の比率で割り当てると共に、前記複数の仮想キューにおける前記分割ジョブの残数が前記所定の比率を維持するように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項１３乃至１５のいずれか一に記載の分散印刷制御装置。
【請求項１８】
２台の画像形成装置に前記所定数のページ単位で分割した分割ジョブを送信する場合、
前記ジョブ制御部は、第１の画像形成装置に対応する仮想キューには、昇順でページが変化するように前記分割ジョブを割り当て、第２の画像形成装置に対応する仮想キューには、降順でページが変化するように前記分割ジョブを割り当て、前記分割ジョブを移動させる場合は、一方の仮想キュー内の末尾の前記分割ジョブを他方の仮想キューの末尾に移動させる、
ことを特徴とする請求項１６又は１７に記載の分散印刷制御装置。
【請求項１９】
前記ジョブ制御部は、前記第１の画像形成装置にはフェイスダウン出力を指示し、前記第２の画像形成装置にはフェイスアップ出力を指示する、
ことを特徴とする請求項１８に記載の分散印刷制御装置。
【請求項２０】
前記分散印刷制御装置は、前記複数の画像形成装置を一群の画像形成装置として予め設定して制御する、
ことを特徴とする請求項１１乃至１９のいずれか一に記載の分散印刷制御装置。
【請求項２１】
デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置と、前記複数の画像形成装置毎に対応する仮想キューを有し前記複数の画像形成装置を制御する分散印刷制御装置と、を含む分散印刷システムにおける分散印刷制御方法であって、
前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理と、
前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当てるジョブ割り当て処理と、
前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ指示処理と、
前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させるジョブ再割り当て処理と、を実行する、
ことを特徴とする分散印刷制御方法。
【請求項２２】
前記デバイスキューは、前記仮想キューから送信される前記分割ジョブを複数保存する、
ことを特徴とする請求項２１に記載の分散印刷制御方法。
【請求項２３】
前記ジョブ分割処理では、前記印刷ジョブを、所定数の部単位又は所定数のページ単位で分割する、
ことを特徴とする請求項２１又は２２に記載の分散印刷制御方法。
【請求項２４】
前記ジョブ分割処理では、前記複数の画像形成装置の処理能力に差がある場合は、処理能力が最も低い画像形成装置が単位時間に処理可能な部数又はページ数を単位にして、前記印刷ジョブを分割する、
ことを特徴とする請求項２３に記載の分散印刷制御方法。
【請求項２５】
前記ジョブ指示処理では、各々の前記画像形成装置における処理待ちの前記分割ジョブの数が１つとなるように、前記仮想キューから前記分割ジョブを送信する、
ことを特徴とする請求項２３又は２４に記載の分散印刷制御方法。
【請求項２６】
前記ジョブ割り当て処理では、前記複数の仮想キューに前記分割ジョブを均等に割り当て、
前記ジョブ再割り当て処理では、前記複数の仮想キューにおける前記分割ジョブの残数が均等になるように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項２３乃至２５のいずれか一に記載の分散印刷制御方法。
【請求項２７】
前記ジョブ割り当て処理では、前記複数の仮想キューに前記分割ジョブを、前記画像形成装置の処理能力に応じた所定の比率で割り当て、
前記ジョブ再割り当て処理では、前記複数の仮想キューにおける前記分割ジョブの残数が前記所定の比率を維持するように、前記仮想キュー間で前記分割ジョブを移動させる、
ことを特徴とする請求項２３乃至２５のいずれか一に記載の分散印刷制御方法。
【請求項２８】
２台の画像形成装置に前記所定数のページ単位で分割した分割ジョブを送信する場合、
前記ジョブ割り当て処理では、第１の画像形成装置に対応する仮想キューには、昇順でページが変化するように前記分割ジョブを割り当て、第２の画像形成装置に対応する仮想キューには、降順でページが変化するように前記分割ジョブを割り当て、
前記ジョブ再割り当て処理では、一方の仮想キュー内の末尾の前記分割ジョブを他方の仮想キューの末尾に移動させる、
ことを特徴とする請求項２６又は２７に記載の分散印刷制御方法。
【請求項２９】
前記ジョブ指示処理では、前記第１の画像形成装置にはフェイスダウン出力を指示し、前記第２の画像形成装置にはフェイスアップ出力を指示する、
ことを特徴とする請求項２８に記載の分散印刷制御方法。
【請求項３０】
前記分散印刷制御装置は、前記複数の画像形成装置を一群の画像形成装置として予め設定して制御する、
ことを特徴とする請求項２１乃至２９のいずれか一に記載の分散印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像形成装置を含む分散印刷システム内の装置で動作する分散印刷制御プログラム及び複数の画像形成装置を用いた分散印刷を制御する分散印刷制御装置並びに分散印刷制御方法に関する。
【背景技術】
【０００２】
近年、複数の画像形成装置を有するオフィス等においては、大量の印刷ジョブを効率よく処理するために、印刷ジョブを複数の画像形成装置に割り当てて印刷する分散印刷が利用されている。この分散印刷では、印刷ジョブを複数の画像形成装置に割り当てて処理させるため、効率的に分散印刷を実施するためのジョブのスケジューリングが必要になる。
【０００３】
分散印刷に関する技術ではないが、ジョブのスケジューリングに関する技術として、例えば、下記特許文献１には、複数の物理プリンタを一括管理する論理プリンタを作成し、前記論理プリンタを複数の物理プリンタとリンクし、前記論理プリンタのキュー上にあるジョブのリストを取得し、論理プリンタのキュー上にあるジョブを物理プリンタのキューに割り当てるプリントジョブスケジュール方法が開示されている。
【０００４】
また、下記特許文献２には、サーバシステムに保存された文書データの印刷指示が入力されると、当該文書データのジョブチケットを前記サーバシステムに要求し、要求に応じて前記サーバシステムから受信したジョブチケットを参照して前記文書データが複数の分割ジョブに分割されているか否かを判定する判定手段と、前記文書データが分割されていると判定した場合には、前記プリント装置が印刷可能状態であれば前記ジョブチケットに記載の順序に従い分割された前記複数の文書データを前記サーバシステムに要求して受信し、印刷不能状態であれば、分割された前記複数の文書データを並行して前記サーバシステムに要求して受信する受信手段と、を備えるプリント装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】２００４−１０２９４５号公報
【特許文献２】２０１２−０５３６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の印刷ジョブをジョブ単位で複数の画像形成装置に割り当てる場合、各々の印刷ジョブは別個独立しているため、複数の画像形成装置から印刷物が出力されるジョブ終了タイミングを揃える必要はない。しかしながら、１つの印刷ジョブを複数に分割して複数の画像形成装置に割り当てる場合、各々の画像形成装置から出力された印刷物をまとめる必要があることから、複数の画像形成装置のジョブ終了タイミングを揃える必要がある。特に、複数の画像形成装置から出力された印刷物をまとめた後、パンチやステープルなどの後処理を行う場合、一つの画像形成装置からの出力が遅延すると、その画像形成装置からの出力が完了するまで後処理を実施することができない。従って、印刷ジョブを分割して分散印刷を実施するケースでは、複数の画像形成装置のジョブ終了タイミングが揃うようにジョブの割り当てを制御する必要がある。
【０００７】
ジョブの割り当てを制御する方法として、各々の画像形成装置に同じ量のジョブを予め割り当てる方法が考えられる。しかしながら、この方法では、各々の画像形成装置の処理能力に差がある場合に、ジョブ終了タイミングにズレが生じる。また、各々の画像形成装置に画像形成装置の処理能力に応じた比率のジョブを予め割り当てる方法も考えられる。しかしながら、この方法では、いずれかの画像形成装置で用紙切れや紙詰まりなどのトラブルが発生した場合、その画像形成装置のジョブの処理が遅延してしまうため、複数の画像形成装置のジョブ終了タイミングを揃えることができない。
【０００８】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、印刷ジョブを分割して複数の画像形成装置に分散印刷させる場合において、複数の画像形成装置のジョブ終了タイミングのズレを抑制し、印刷ジョブを効率的に処理することができる分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一側面は、デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置と、前記複数の画像形成装置毎に対応する仮想キューを有し前記複数の画像形成装置を制御する分散印刷制御装置と、を含む分散印刷システムで動作する分散印刷制御プログラムであって、前記分散印刷システム内のいずれかの装置に、前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理、前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当てるジョブ割り当て処理、前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ指示処理、前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させるジョブ再割り当て処理、を実行させることを特徴とする。
【００１０】
本発明の一側面は、デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置を制御し、前記複数の画像形成装置毎に対応する仮想キューを有する分散印刷制御装置であって、前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割部と、各々の前記画像形成装置のジョブ処理状態を監視する状態監視部と、前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当て、前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ制御部と、を備え、前記ジョブ制御部は、前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させることを特徴とする。
【００１１】
本発明の一側面は、デバイスキューを個々に有し印刷ジョブを分散して処理する複数の画像形成装置と、前記複数の画像形成装置毎に対応する仮想キューを有し前記複数の画像形成装置を制御する分散印刷制御装置と、を含む分散印刷システムにおける分散印刷制御方法であって、前記印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理と、前記分散印刷制御装置における複数の前記仮想キューに、前記複数の分割ジョブを割り当てるジョブ割り当て処理と、前記画像形成装置のジョブ処理状態に応じて、前記画像形成装置に対応する前記仮想キューから前記分割ジョブを順次取り出して、取り出した前記分割ジョブを前記仮想キューから対応する前記画像形成装置の前記デバイスキューに送信するジョブ指示処理と、前記複数の画像形成装置のジョブ終了タイミングを揃えるように、前記仮想キュー間で前記分割ジョブを移動させるジョブ再割り当て処理と、を実行することを特徴とする。
【発明の効果】
【００１２】
本発明の分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法によれば、印刷ジョブを分割して複数の画像形成装置に分散印刷させる場合において、複数の画像形成装置のジョブ終了タイミングのズレを抑制し、印刷ジョブを効率的に処理することができる。
【００１３】
その理由は、分散印刷制御装置（分散印刷制御プログラム）は、印刷ジョブを所定の単位の複数の分割ジョブに分割し、分散印刷の対象となる画像形成装置毎に仮想キューを設け、その仮想キューに分割ジョブを均等又は所定の比率で割り当てておき、各々の画像形成装置の処理状況を監視しながら分割ジョブを順次送信すると共に、仮想キューの残ジョブ数が均等又は所定の比率を維持するように、仮想キュー間で分割ジョブを移動させる制御を行うからである。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施例に係る分散印刷システムの一例を模式的に示す図である。
【図２】本発明の第１の実施例に係るクライアント端末の構成を示すブロック図である。
【図３】本発明の第１の実施例に係る分散印刷制御装置の構成を示すブロック図である。
【図４】本発明の第１の実施例に係る画像形成装置の構成を示すブロック図である。
【図５】従来の分散印刷の問題点（部数で分割する場合の問題点）を説明する図である。
【図６】従来の分散印刷の問題点（ページ数で分割する場合の問題点）を説明する図である。
【図７】本発明の第１の実施例に係る分散印刷制御装置の処理を示すフローチャート図である。
【図８】本発明の第１の実施例に係る分散印刷制御装置の処理（分割ジョブの再割り当て処理）を示すフローチャート図である。
【図９】本発明の第１の実施例に係る印刷ジョブの残部数管理の一例（初期状態）を示す図である。
【図１０】本発明の第１の実施例に係る印刷ジョブの残部数管理の一例（印刷開始時の状態）を示す図である。
【図１１】本発明の第１の実施例に係る印刷ジョブの残部数管理の一例（２分経過後の状態）を示す図である。
【図１２】本発明の第１の実施例に係る印刷ジョブの残ページ数管理の一例（初期状態）を示す図である。
【図１３】本発明の第１の実施例に係る印刷ジョブの残ページ数管理の一例（印刷開始時の状態）を示す図である。
【図１４】本発明の第１の実施例に係る印刷ジョブの残ページ数管理の一例（２分経過後の状態）を示す図である。
【図１５】本発明の第２の実施例に係る分散印刷制御装置の処理を示すフローチャート図である。
【図１６】本発明の第２の実施例に係る分散印刷制御装置の処理（分割ジョブの再割り当て処理）を示すフローチャート図である。
【図１７】本発明の第２の実施例に係る印刷ジョブの残部数管理の一例（初期状態）を示す図である。
【図１８】本発明の第２の実施例に係る印刷ジョブの残部数管理の一例（１４分経過後の状態）を示す図である。
【図１９】本発明の第２の実施例に係る印刷ジョブの残ページ数管理の一例（初期状態）を示す図である。
【図２０】本発明の第２の実施例に係る印刷ジョブの残ページ数管理の一例（３分経過後の状態）を示す図である。
【図２１】本発明の第３の実施例に係る仮想キューの構成の一例を示す模式図である。
【図２２】本発明の第３の実施例に係る仮想キューの構成の他の例を示す模式図である。
【図２３】本発明の第４の実施例に係る分散印刷システムの一例を模式的に示す図である。
【図２４】本発明の第４の実施例に係る画像形成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
背景技術で示したように、複数の画像形成装置を用いて印刷ジョブを処理する分散印刷が利用されているが、１つの印刷ジョブを複数のジョブに分割して（分割した印刷ジョブを分割ジョブと呼ぶ。）、複数の画像形成装置に割り当てる場合、各々の画像形成装置から出力された印刷物をまとめる必要があるため、複数の画像形成装置のジョブ終了タイミングが揃うように制御しなければならない。
【００１６】
その方法として、各々の画像形成装置に同じ量のジョブを予め割り当てる方法が考えられるが、この方法では各々の画像形成装置の処理能力に差がある場合にジョブ終了タイミングにズレが生じる。また、各々の画像形成装置に処理能力に応じたジョブを予め割り当てる方法も考えられるが、この方法ではいずれかの画像形成装置で用紙切れや紙詰まりなどのトラブルが発生した場合に、その画像形成装置のジョブの処理が遅延してしまうため、複数の画像形成装置のジョブ終了タイミングを揃えることができない。
【００１７】
すなわち、ジョブの処理が終了するまでの所要時間は、画像形成装置の処理能力の差のみならず、用紙切れや紙詰まりなどのトラブルの発生の有無などによっても変化するため、各々の画像形成装置に予めジョブを割り当てる方法では、複数の画像形成装置のジョブ終了タイミングを揃えることができず、無駄な待ち時間が生じ、後処理の開始が遅れたり、次の印刷ジョブが開始できなくなったりするという問題が生じる。
【００１８】
そこで、本発明の一実施の形態では、印刷ジョブを所定の要素のクラスタ（所定数の部単位や所定数のページ単位など）に分割して処理する場合に、複数の画像形成装置に分割ジョブを割り当てる分割印刷制御装置に、画像形成装置毎に、当該画像形成装置に送信する分割ジョブを格納する仮想キューを設け、各々の画像形成装置には最小限の分割ジョブを送信し、かつ、複数の仮想キューの残ジョブ数が均等（若しくは所定の比率）になるように仮想キュー間で分割ジョブを移動させる。すなわち、全ての分割ジョブを予め画像形成装置に送信するのではなく、分割ジョブを一旦仮想キューに格納し、各々の画像形成装置の処理状況に応じて、仮想キューから順次画像形成装置に分割ジョブを送信し、未送信の分割ジョブに関して仮想キュー内の残ジョブ数が均等（若しくは所定の比率）になるように制御する。
【００１９】
このように、印刷ジョブを細分化して、仮想キュー内の残ジョブ数を均等（若しくは所定の比率）に保つことにより、画像形成装置の処理能力に差がある場合や、ある画像形成装置に紙切れや紙詰まりなどのトラブルが発生した場合でも、複数の画像形成装置のジョブ終了タイミングを揃えることができ、これにより、無駄な待ち時間の発生を抑制し、印刷ジョブを効率的に処理することができる。
【実施例１】
【００２０】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の第１の実施例に係る分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法について、図１乃至図１４を参照して説明する。図１は、本実施例の分散印刷システムの構成を模式的に示す図であり、図２乃至図４は、各々、クライアント端末、分散印刷制御装置、画像形成装置の構成を示すブロック図である。また、図５及び図６は、従来の分散印刷の問題点を説明する図であり、図７及び図８は、本実施例の分散印刷制御装置の処理を示すフローチャート図である。また、図９乃至図１１は、印刷ジョブの残部数管理の一例を示す図であり、図１２乃至図１４は、印刷ジョブの残ページ数管理の一例を示す図である。
【００２１】
図１に示すように、本実施例の分散印刷システム１０は、複数台の画像形成装置４０を分散印刷制御装置３０で管理するシステムであって、イントラネット上に、通信ネットワーク５０で接続可能なクライアント端末２０、分散印刷制御装置３０、複数の画像形成装置４０が配置される。なお、通信ネットワーク５０の規格としてEthernet（登録商標）などを用いることができる。以下、各装置について説明する。
【００２２】
［クライアント端末］
クライアント端末２０は、パーソナルコンピュータなどのコンピュータ装置であり、分散印刷制御装置３０に印刷ジョブを送信する。このクライアント端末２０は、図２（ａ）に示すように、制御部２１、記憶部２５、ネットワークＩ／Ｆ部２６、表示部２７、操作部２８などで構成される。
【００２３】
制御部２１は、ＣＰＵ（Central Processing Unit）２２とＲＯＭ（Read Only Memory）２３やＲＡＭ（Random Access Memory）２４などのメモリとで構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５に記憶した制御プログラムをＲＡＭ２４に展開して実行することにより、クライアント端末２０全体の動作を制御する。また、図２（ｂ）に示すように、上記制御部２１（ＣＰＵ２２）により、ＯＳ（Operating System）２１ａ、文書作成アプリケーション２１ｂ、プリンタドライバ２１ｃなどが実行される。
【００２４】
ＯＳ２１ａは、Windows（登録商標）やMacintosh（登録商標）、Androidなどであり、クライアント端末２０で文書作成アプリケーション２１ｂやプリンタドライバ２１ｃを動作可能にする。
【００２５】
文書作成アプリケーション２１ｂは、文章作成や表計算、画像加工などを行うソフトウェアであり、印刷指示の際にプリンタドライバ２１ｃを読み出し、文書作成アプリケーション２１ｂで作成した原稿データをプリンタドライバ２１ｃに転送する。
【００２６】
プリンタドライバ２１ｃは、文書作成アプリケーション２１ｂで作成した原稿データを、画像形成装置４０が解釈可能な言語の印刷ジョブ（ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬ（Page Description Language）データ、または、ＰＤＦ（Portable Document Format）データ）に変換する。この印刷ジョブには、プリンタドライバ２１ｃの印刷設定画面で設定された印刷設定情報が付加されている。
【００２７】
記憶部２５は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成され、ＣＰＵ２２が各部を制御するためのプログラム、自装置の処理機能に関する情報、文書作成アプリケーション２１ｂが作成した原稿データ、プリンタドライバ２１ｃが作成した印刷ジョブなどを記憶する。
【００２８】
ネットワークＩ／Ｆ部２６は、ＮＩＣ（Network Interface Card）やモデムなどで構成され、クライアント端末２０を通信ネットワーク５０に接続し、分散印刷制御装置３０に印刷ジョブを送信する。
【００２９】
表示部２７は、液晶表示装置（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（electroluminescence）表示装置などで構成され、文書作成アプリケーション２１ｂの原稿作成画面、プリンタドライバ２１ｃの印刷設定画面などを表示する。
【００３０】
操作部２８は、マウスやキーボードなどで構成され、文書作成アプリケーション２１ｂを用いた原稿の作成、プリンタドライバ２１ｃを用いた印刷条件の設定などの操作を可能にする。
【００３１】
［分散印刷制御装置］
分散印刷制御装置３０は、各々の画像形成装置４０に対して、印刷ジョブを分割した分割ジョブを送信して分散印刷を指示するサーバなどである。この分散印刷制御装置３０は、図３（ａ）に示すように、制御部３１、記憶部３５、ネットワークＩ／Ｆ部３６、必要に応じて、表示部及び操作部などで構成される。また、分散印刷制御装置３０は、複数の画像形成装置４０を一群の画像形成装置として予め設定して管理し、分散印刷を指示する。
【００３２】
制御部３１は、ＣＰＵ３２とＲＯＭ３３やＲＡＭ３４などのメモリとで構成され、ＣＰＵ３２は、ＲＯＭ３３や記憶部３５に記憶した制御プログラムをＲＡＭ３４に展開して実行することにより、分散印刷制御装置３０全体の動作を制御する。上記制御部３１は、図３（ｂ）に示すように、ジョブ分割部３１ａ、状態監視部３１ｂ、ジョブ制御部３１ｃなどとして機能する。
【００３３】
ジョブ分割部３１ａは、クライアント端末２０から受信した印刷ジョブを所定の単位の複数の分割ジョブに分割するジョブ分割処理を実行する。例えば、印刷ジョブが複数部の印刷を指示するジョブの場合、当該印刷ジョブを一塊の部（部数クラスタと呼ぶ。）からなる複数の分割ジョブに分割する。また、印刷ジョブが複数ページの印刷を指示するジョブの場合、当該印刷ジョブを一塊のページ（ページクラスタと呼ぶ。）からなる複数の分割ジョブに分割する。なお、上記分割ジョブは、所定数の部やページの印刷を指示可能であればよく、そのファイル形式や構造は特に限定されず、印刷ジョブと同じファイル形式や構造である必要はない。
【００３４】
状態監視部３１ｂは、画像形成装置４０からジョブの処理状態を表す印刷ステータスを受信し、印刷ステータスに基づいて画像形成装置４０のジョブ処理状態を監視し、処理待ちの待機ジョブがなくなった画像形成装置４０があるかを判断する。なお、この印刷ステータスは、画像形成装置４０が分散印刷制御装置３０に送信する構成としてもよいし、状態監視部３１ｂがＭＩＢ（Management Information Base）情報から印刷ステータスを取得する構成としてもよい。
【００３５】
ジョブ制御部３１ｃは、ジョブ分割部３１ａが分割した分割ジョブを、画像形成装置４０毎に設けた仮想キューに均等に割り当てるジョブ割り当て処理を実行する。そして、状態監視部３１ｂにより待機ジョブがなくなったと判断された画像形成装置４０に対して、その画像形成装置４０に対応する仮想キューから分割ジョブを１つ取り出して送信するジョブ指示処理を実行する。すなわち、各々の画像形成装置４０の待機ジョブの数が１つとなるように、分割ジョブを順次送信する。更に、所定のタイミング（例えば、いずれかの画像形成装置４０に仮想キューから分割ジョブを送信した時や所定の時間間隔）で、各々の仮想キュー内の分割ジョブの数（残ジョブ数）を取得し、各々の仮想キュー内の残ジョブ数が均等になるように、仮想キュー間で分割ジョブを移動させるジョブ再割り当て処理を実行する。
【００３６】
なお、上記ジョブ分割部３１ａ、状態監視部３１ｂ、ジョブ制御部３１ｃは、ハードウェアとして構成してもよいし、制御部３１をジョブ分割部３１ａ、状態監視部３１ｂ、ジョブ制御部３１ｃとして機能させる分散印刷制御プログラムとして構成し、当該分散印刷制御プログラムをＣＰＵ３２に実行させるようにしてもよい。
【００３７】
記憶部３５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ３２が各部を制御するためのプログラム、クライアント端末２０から受信した印刷ジョブを保存する。また、記憶部３５は、画像形成装置４０毎の仮想キュー３５ａを備え、ジョブ制御部３１ｃの指示に従って仮想キュー３５ａに分割ジョブを格納する。なお、仮想キュー３５ａとは、バッファとコントローラとで構成され、印刷を指示するデータ（分割ジョブ）を先入れ先出しのリスト構造で保持するものであり、先に格納した分割ジョブから順に画像形成装置４０のデバイスキューに出力される。
【００３８】
ネットワークＩ／Ｆ部３６は、ＮＩＣやモデムなどで構成され、分散印刷制御装置３０を通信ネットワーク５０に接続し、クライアント端末２０から印刷ジョブを受信したり、画像形成装置４０から印刷ステータスを受信したり、画像形成装置４０に分割ジョブを送信したりする。
【００３９】
［画像形成装置］
画像形成装置４０は、ＭＦＰ（Multi-Functional Peripherals）など（本実施例では、必要に応じてプリンタと呼ぶ。）であり、分散印刷制御装置３０から受信した分割ジョブに基づいて印刷処理を実行する。なお、分散印刷システム１０に含まれる複数の画像形成装置４０は、オプションの構成や処理能力に差異はあるものの、同じ用紙に印刷可能であり、同じように分割ジョブを処理することが可能であるとする。また、分散印刷システム１０に含まれる複数の画像形成装置４０は群で管理可能であり、同じ群に属する画像形成装置４０を本実施例の分散印刷制御の対象とすることができる。この画像形成装置４０は、図４に示すように、制御部４１、記憶部４５、ネットワークＩ／Ｆ部４６、表示操作部４７、画像処理部４８、印刷処理部４９などで構成される。
【００４０】
制御部４１は、ＣＰＵ４２とＲＯＭ４３やＲＡＭ４４などのメモリとで構成され、ＣＰＵ４２は、ＲＯＭ４３や記憶部４５に記憶した制御プログラムをＲＡＭ４４に展開して実行することにより、画像形成装置４０全体の動作を制御する。
【００４１】
記憶部４５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ４２が各部を制御するためのプログラム、自装置の処理機能に関する情報などを記憶する。また、記憶部４５は、デバイスキュー４５ａを備え、制御部４１の指示に従ってデバイスキュー４５ａに分散印刷制御装置３０から受信した分割ジョブを格納する。なお、デバイスキュー４５ａも、バッファとコントローラとで構成され、印刷を指示するデータ（分割ジョブ）を先入れ先出しのリスト構造で保持するものであり、先に格納した分割ジョブから順に画像処理部４８及び印刷処理部４９によって処理される。
【００４２】
ネットワークＩ／Ｆ部４６は、ＮＩＣやモデムなどで構成され、画像形成装置４０を通信ネットワーク５０に接続し、分散印刷制御装置３０から分割ジョブを受信したり、分散印刷制御装置３０に印刷ステータスを送信したりする。
【００４３】
表示操作部４７は、表示部上に透明電極が格子状に配置された感圧式の操作部（タッチセンサ）を設けたタッチパネルなどであり、印刷処理に関する各種画面を表示し、印刷に関する各種操作を可能にする。
【００４４】
画像処理部４８は、ＲＩＰ部（Raster Image Processor）として機能し、分割ジョブを翻訳して中間データを生成し、レンダリングを行ってビットマップ画像データを生成する（この一連の処理をＲＩＰ処理と呼ぶ。）。また、画像処理部４８は、必要に応じて、ビットマップ画像データに対して、スクリーン処理、階調補正、濃度バランス調整、細線化、網点処理などを行う。そして、画像処理部４８は、生成したビットマップ画像データを印刷処理部４９に出力する。
【００４５】
印刷処理部４９は、ビットマップ画像データに基づいて印刷処理を実行する。この印刷処理部４９は、ビットマップ画像データに基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と１次転写ローラとを備え、ＣＭＹＫの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する２次転写ローラと、用紙に転写されたトナー像を定着させる定着部と、用紙を搬送する給紙ローラやレジストローラ、ループローラ、反転ローラ、排紙ローラ等の搬送部などで構成される。
【００４６】
なお、図１乃至図４は、本実施例の分散印刷システム１０の一例であり、本実施例の分散印刷制御が実施可能な限りにおいて、各装置の構成や制御は適宜変更可能である。
【００４７】
以下、上記構成の分散印刷システム１０における分散印刷制御方法について説明するが、まず、従来の分散印刷における問題について説明する。
【００４８】
図５は、１００部の印刷物を作成する印刷ジョブを２台の画像形成装置４０（プリンタＡ、Ｂ）に分散して処理させる場合の制御の一例である。従来は、印刷ジョブを５０部ずつ印刷するジョブＡとジョブＢとに分割し、各々のジョブをプリンタＡ、Ｂに割り当てて分散印刷を行っていた。この場合、プリンタＡ、Ｂの処理能力が同じであればジョブ終了タイミングを揃えることができるが、プリンタＡの処理能力が１００ｐｐｍ（page per minutes）、プリンタＢの処理能力が２００ｐｐｍのように、プリンタＢの処理能力の方が高い場合、プリンタＢがジョブＢの出力を完了しても、プリンタＡはジョブＡの出力を完了させることができず、残り部数（ここでは２５部）分だけ待ち時間が発生してしまう。
【００４９】
図６は、１０００ページの印刷物を作成する印刷ジョブを２台の画像形成装置４０（プリンタＡ、Ｂ）に分散して処理させる場合の制御の一例である。従来は、印刷ジョブを、先頭ページから５００ページまで印刷するジョブＡと、５０１ページから最終ページまで印刷するジョブＢとに分割し、各々のジョブをプリンタＡ、Ｂに割り当てて分散印刷を行っていた。この場合、プリンタＡ、Ｂの処理能力が同じであればジョブ終了タイミングを揃えることができるが、一方の画像形成装置４０（ここではプリンタＡ）にトラブル（例えば、用紙切れや紙詰まり等）が発生した場合、プリンタＡに割り当てられたジョブＡの処理が中断してしまう。その結果、プリンタＢがジョブＢの出力を完了しても、プリンタＡはジョブＡの出力を完了させることができず、残りページ数（ここでは２００ページ）分だけ待ち時間が発生してしまう。
【００５０】
このように、従来は印刷ジョブを等分に分割し、予め各々の画像形成装置４０に送信していたため、画像形成装置４０の処理能力に差がある場合や、いずれかの画像形成装置４０でトラブルが発生した場合に、ジョブ終了タイミングを揃えることができず、その後の後処理や次の印刷ジョブの処理ができないという問題があった。
【００５１】
この問題に対して、例えば、各々の画像形成装置４０の処理能力に応じて、予め割り当てるジョブの量を調整する（処理能力の高い画像形成装置４０により多くのジョブを割り当てる）ことも可能であるが、この方法でも、いずれかの画像形成装置４０にトラブルが発生した場合にジョブ終了タイミングを揃えることはできない。また、ジョブ終了タイミングにズレが発生することが分かった時点で処理が遅い画像形成装置４０から処理が早い画像形成装置４０にジョブを転送する方法も考えられるが、この方法では一旦送信したジョブを再送信することになるため、無駄な通信が生じ、効率的にジョブを処理することができない。
【００５２】
そこで、本実施例では、印刷ジョブを分割した分割ジョブの全てを予め画像形成装置４０に送信するのではなく、分散印刷制御装置３０に、画像形成装置４０毎の仮想キュー３５ａを設け、その仮想キュー３５ａに分割ジョブを均等に割り当てておき、各々の画像形成装置４０の処理状況を監視しながら分割ジョブを順次送信する（最小限の分割ジョブを送信する）と共に、仮想キュー３５ａの残ジョブ数が均等になるように、仮想キュー３５ａ間で分割ジョブを移動させる。
【００５３】
以下、その場合の分散印刷制御装置３０の処理について説明する。ＣＰＵ３２は、ＲＯＭ３３又は記憶部３５に記憶した分散印刷制御プログラムをＲＡＭ３４に展開して実行することにより、図７及び図８のフローチャート図に示す各ステップの処理を実行する。
【００５４】
図７に示すように、分散印刷制御装置３０はクライアント端末２０から印刷ジョブを受信すると、制御部３１（ジョブ分割部３１ａ）は、印刷ジョブを部数又はページ数で複数の分割ジョブに分割する（Ｓ１０１）。そして、制御部３１（ジョブ制御部３１ｃ）は、画像形成装置４０毎に設けた仮想キュー３５ａに分割ジョブを均等に割り当て（Ｓ１０２）、各々の画像形成装置４０に、対応する仮想キュー３５ａから所定数（最小限）の分割ジョブを送信する（Ｓ１０３）。
【００５５】
次に、制御部３１（状態監視部３１ｂ）は、各々の画像形成装置４０から印刷ステータスを取得し（Ｓ１０４）、印刷ステータスに基づいて、待機ジョブがなくなった画像形成装置４０があるかを判断する（Ｓ１０５）。待機ジョブがなくなった画像形成装置４０があれば、制御部３１（ジョブ制御部３１ｃ）は、その画像形成装置４０に対して、対応する仮想キュー３５ａから分割ジョブを１つ送信する（Ｓ１０６）。すなわち、各画像形成装置４０の待機ジョブが１つになるように分割ジョブを順次送信する。
【００５６】
そして、所定のタイミング（仮想キュー３５ａから分割ジョブを送信した時や所定の時間間隔）で分割ジョブの再割り当て処理を実施する（Ｓ１０７）。その後、制御部３１（ジョブ制御部３１ｃ）は、仮想キュー３５ａに残ジョブがあるかを確認し（Ｓ１０８）、残ジョブがあれば、Ｓ１０４に戻って同様の処理を繰り返し、残ジョブがなくなったら一連のジョブ処理を終了する。
【００５７】
図８は、上記Ｓ１０７の分割ジョブの再割り当て処理の詳細を示している。なお、以下では、説明を容易にするために、２つの画像形成装置（プリンタＡ、Ｂ）に対応する２つの仮想キュー（仮想キューＡ、Ｂ）に分割ジョブを割り当てるものとする。
【００５８】
まず、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数を取得し（Ｓ２０１）、続いて、仮想キューＢの残ジョブ数を取得する（Ｓ２０２）。次に、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数と仮想キューＢの残ジョブ数とを比較し、両者が等しければ（Ｓ２０３のＹｅｓ）、分割ジョブの再割り当てを実施する必要がないため、本フローの処理を終了する。
【００５９】
一方、両者が等しくない場合（Ｓ２０３のＮｏ）は、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数が仮想キューＢの残ジョブ数以上であるかを判断する（Ｓ２０４）。仮想キューＡの残ジョブ数が仮想キューＢの残ジョブ数以上であれば、仮想キューＡから仮想キューＢに分割ジョブを１ジョブ分移動し（Ｓ２０５）、仮想キューＡの残ジョブ数が仮想キューＢの残ジョブ数未満であれば、仮想キューＢから仮想キューＡに分割ジョブを１ジョブ分移動する（Ｓ２０６）。
【００６０】
このように、複数の仮想キューに分割ジョブを均等に割り当てておき、待機ジョブがなくなった画像形成装置４０に順次、仮想キューから分割ジョブを送信すると共に、分割ジョブの再割り当てを実施することにより、画像形成装置４０の処理能力に差がある場合や、いずれかの画像形成装置４０にトラブルが発生した場合でも、仮想キューの残ジョブ数を均等に保つことができるため、複数の画像形成装置４０のジョブ終了タイミングを揃えることができ、その後の後処理や次の印刷ジョブを遅延なく進めることができ、印刷ジョブを効率的に処理することができる。
【００６１】
以下、分割ジョブの割り当て及び再割り当てについて具体例を挙げて説明する。なお、以下では、処理能力が１００ｐｐｍのプリンタＡと処理能力が２００ｐｐｍのプリンタＢの２台に分散印刷を実行させる場合を考える。また、図９乃至図１４において、左側はプリンタＡの処理、右側はプリンタＢの処理を示し、上側はプリンタＡ、Ｂのデバイスキュー４５ａ、下側は分散印刷制御装置３０の仮想キュー３５ａを示す。
【００６２】
１部が１００ページの文書を１００部印刷する場合、従来は、単純に部数を等分して２台のプリンタＡ、Ｂに各々５０部の印刷を指示していた（デバイスキュー４５ａに５０部の印刷を指示する印刷ジョブを送信していた）が、本実施例では、図９に示すように、１００部の印刷ジョブを例えば１部ずつの１００個（Ａ１〜Ａ５０及びＢ１〜Ｂ５０）の分割ジョブに分割し、この１００個の分割ジョブをプリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａに均等に割り当てる。
【００６３】
そして、図１０に示すように、各々の仮想キュー３５ａ内の所定数（印刷が途切れない程度の最小限の数、ここでは３つ）の分割ジョブをプリンタＡ、Ｂに送信して、印刷を開始させる。このケースでは、プリンタＡ、Ｂの処理能力に差がある（プリンタＢの処理能力が高い）ため、プリンタＢ用の仮想キュー３５ａの方が早く残部数が減少する。そこで、所定のタイミングで（仮想キュー３５ａから分割ジョブを送信した時や予め定めた所定の期間が経過した時に）、各々の仮想キュー３５ａの残ジョブ数を確認して、差異が生じた場合には、残部数が同じになるように仮想キュー３５ａ間で分割ジョブを移動する。
【００６４】
例えば、今回のケースでは、２分後に、プリンタＡは２部印刷済み、プリンタＢは４部印刷済みになるため、プリンタＡ用の仮想キュー３５ａの残部数は４６部、プリンタＢ用の仮想キュー３５ａの残部数は４４部になる。そこで、図１１に示すように、プリンタＡ用の仮想キュー３５ａからプリンタＢ用の仮想キュー３５ａに１ジョブ分移す（図ではＡ５０の分割ジョブを移動する）ことにより、複数の仮想キュー３５ａの残部数を均等に保つ。これにより、ほぼ同時刻にジョブを終了することができる。
【００６５】
また、２０００ページの文書を印刷する印刷ジョブを２台のプリンタＡ、Ｂに分散印刷させる場合、従来は、単純にページ数を２分割して、１〜１０００ページを一方のプリンタに印刷させ、１００１〜２０００ページを他方のプリンタに印刷させていたが、本実施例では、図１２に示すように、２０００ページを所定のページ数（ここでは、１００ページ）ずつの２０個の分割ジョブに分割し、この２０個の分割ジョブをプリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａに均等に割り当てる。その際、プリンタＡ用の仮想キュー３５ａには、最初のページから１０００ページまでを割り当て、プリンタＢ用の仮想キューには最後のページから１００１ページまでを割り当てる。このようにページの並びを逆にするのは、仮想キュー間で分割ジョブを移動させた場合に、ページ順が正しく印刷されるようにするためである。なお、プリンタＡでは、各ページを印刷した用紙をフェイスダウン出力し（印刷面を下にして順次上に重ねる）、プリンタＢでは、各ページを印刷した用紙をフェイスアップ出力する（印刷面を上にして順次上に重ねる）ように印刷指示を行う。また、１つの分割ジョブのページ数は適宜設定可能であるが、プリンタの処理能力に差がある場合は、処理能力が低いプリンタが単位時間に印刷可能なページ数にすることが好ましい。
【００６６】
そして、図１３に示すように、各々の仮想キュー３５ａ内の所定数（印刷が途切れない程度の最小限の数、ここでは３つ）の分割ジョブをプリンタＡ、Ｂに送信して、印刷を開始させる。ここで、プリンタＡ、Ｂの処理能力に差がある（プリンタＢの処理能力が高い）ため、プリンタＢ用の仮想キュー３５ａの方が早く残ページ数が減少するが、例えば、プリンタＢにトラブルが発生してジョブ処理が停止した場合、プリンタＡ用の仮想キュー３５ａの方が早く残ページ数が減少する。そこで、所定のタイミングで（仮想キュー３５ａから分割ジョブを送信した時や予め定めた所定の期間が経過した時に）、各々の仮想キュー３５ａの残ページ数を確認して、差異が生じた場合には、残ページ数が同じになるように仮想キュー３５ａ間で分割ジョブを移動する。
【００６７】
例えば、プリンタＢに用紙切れが発生した場合、プリンタＡでは印刷が継続される。停止の期間が長くなると仮想キュー３５ａ内の残ページ数に差が生じる。そこで、図１４に示すように、プリンタＢ用の仮想キュー３５ａからプリンタＡ用の仮想キュー３５ａに１ジョブ分移す（図では１１００〜１１０１ページの分割ジョブをページの順番を入れ替え、１００１〜１１００ページの分割ジョブにして移動する）ことにより、残ページ数を均等に保つ。これにより、ほぼ同時刻にジョブを終了することができる。
【実施例２】
【００６８】
次に、本発明の第２の実施例に係る分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法について、図１５乃至図２０を参照して説明する。図１５及び図１６は、本実施例の分散印刷制御装置の処理を示すフローチャート図である。また、図１７及び図１８は、印刷ジョブの残部数管理の一例を示す図であり、図１９及び図２０は、印刷ジョブの残ページ数管理の一例を示す図である。
【００６９】
前記した第１の実施例では、複数の仮想キュー３５ａに分割ジョブを均等に割り当てたが、複数の画像形成装置４０の処理能力に差がある場合は、処理能力に応じて仮想キューに分割ジョブを割り当てることにより、仮想キュー間の分割ジョブの移動を少なくすることもできる。その場合、分散印刷システム１０の構成は、第１の実施例の図１乃至図４と同様であるが、分散印刷制御装置３０の制御部３１のジョブ制御部３１ｃは、ジョブ分割部３１ａが分割した分割ジョブを、画像形成装置４０毎に設けた仮想キュー３５ａに、画像形成装置４０の処理能力に応じた所定の比率で割り当てる。そして、所定のタイミング（例えば、いずれかの画像形成装置４０に仮想キューから分割ジョブを送信した時や所定の時間間隔）で、各々の仮想キュー内の分割ジョブの数（残ジョブ数）を取得し、各々の仮想キューの残ジョブ数が所定の比率を保つように、仮想キュー間で分割ジョブを移動させる。
【００７０】
以下、その場合の分散印刷制御装置３０の処理について説明する。ＣＰＵ３２は、ＲＯＭ３３又は記憶部３５に記憶した分散印刷制御プログラムをＲＡＭ３４に展開して実行することにより、図１５及び図１６のフローチャート図に示す各ステップの処理を実行する。
【００７１】
図１５に示すように、分散印刷制御装置３０はクライアント端末２０から印刷ジョブを受信すると、制御部３１（ジョブ分割部３１ａ）は、印刷ジョブを部数又はページ数で複数の分割ジョブに分割する（Ｓ３０１）。そして、制御部３１（ジョブ制御部３１ｃ）は、画像形成装置４０毎に設けた仮想キュー３５ａに分割ジョブを画像形成装置４０の処理能力に応じた所定の比率で割り当て（Ｓ３０２）、各々の画像形成装置４０に、対応する仮想キュー３５ａから所定数（最小限）の分割ジョブを送信する（Ｓ３０３）。
【００７２】
次に、制御部３１（状態監視部３１ｂ）は、各々の画像形成装置４０から印刷ステータスを取得し（Ｓ３０４）、印刷ステータスに基づいて、待機ジョブがなくなった画像形成装置４０があるかを判断する（Ｓ３０５）。待機ジョブがなくなった画像形成装置４０があれば、制御部３１（ジョブ制御部３１ｃ）は、その画像形成装置４０に対して、対応する仮想キュー３５ａから分割ジョブを１つ送信する（Ｓ３０６）。すなわち、各画像形成装置４０の待機ジョブが１つになるように分割ジョブを順次送信する。
【００７３】
そして、所定のタイミング（仮想キュー３５ａから分割ジョブを送信した時や所定の時間間隔）で分割ジョブの再割り当てを実施する（Ｓ３０７）。その後、制御部３１（ジョブ制御部３１ｃ）は、仮想キュー３５ａに残ジョブがあるかを確認し（Ｓ３０８）、残ジョブがあれば、Ｓ３０４に戻って同様の処理を繰り返し、残ジョブがなくなったら一連のジョブ処理を終了する。
【００７４】
図１６は、上記Ｓ３０７の分割ジョブの再割り当て処理の詳細を示している。なお、以下では、説明を容易にするために、２つの画像形成装置４０（プリンタＡ、Ｂ）に対応する２つの仮想キュー（仮想キューＡ、Ｂ）に分割ジョブを割り当てるものとする。また、プリンタＡの処理能力はプリンタＢの処理能力のα倍とする。
【００７５】
まず、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数を取得し（Ｓ４０１）、続いて、仮想キューＢの残ジョブ数を取得する（Ｓ４０２）。次に、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数×αと仮想キューＢの残ジョブ数とを比較し、両者が等しければ（Ｓ４０３のＹｅｓ）、分割ジョブの再割り当てを実施する必要がないため、本フローの処理を終了する。
【００７６】
一方、両者が等しくない場合（Ｓ４０３のＮｏ）は、制御部３１（ジョブ制御部３１ｃ）は、仮想キューＡの残ジョブ数×αが仮想キューＢの残ジョブ数以上であるかを判断する（Ｓ４０４）。仮想キューＡの残ジョブ数×αが仮想キューＢの残ジョブ数以上であれば、仮想キューＡから仮想キューＢに分割ジョブを１ジョブ分移動し（Ｓ４０５）、仮想キューＡの残ジョブ数×αが仮想キューＢの残ジョブ数未満であれば、仮想キューＢから仮想キューＡに分割ジョブを１ジョブ分移動する（Ｓ４０６）。
【００７７】
このように、複数の仮想キューに分割ジョブを画像形成装置４０の処理能力に応じた所定の比率で割り当てておき、待機ジョブがなくなった画像形成装置４０に順次、仮想キューから分割ジョブを送信すると共に、分割ジョブの再割り当てを実施することにより、画像形成装置４０の処理能力に差がある場合や、いずれかの画像形成装置４０にトラブルが発生した場合でも、仮想キューの残ジョブ数を所定の比率で保つことができるため、仮想キュー間の分割ジョブの移動を第１の実施例よりも抑えて、複数の画像形成装置４０のジョブ終了タイミングを揃えることができ、その後の後処理や次の印刷ジョブを遅延なく進めることができ、印刷ジョブを効率的に処理することができる。
【００７８】
以下、分割ジョブの割り当て及び再割り当てについて具体例を挙げて説明する。なお、以下では、処理能力が１００ｐｐｍのプリンタＡと処理能力が２００ｐｐｍのプリンタＢの２台に分散印刷を実行させる場合を考える。また、図１７乃至図２０において、左側はプリンタＡの処理、右側はプリンタＢの処理を示し、上側はプリンタＡ、Ｂのデバイスキュー４５ａ、下側は分散印刷制御装置３０の仮想キュー３５ａを示す。
【００７９】
１部が１００ページの文書を６０部印刷する場合、本実施例では、図１７に示すように、６０部の印刷ジョブを例えば１部ずつの６０個（Ａ１〜Ａ２０及びＢ１〜Ｂ４０）の分割ジョブに分割し、この６０個の分割ジョブをプリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａにプリンタＡ、Ｂの処理能力に応じた所定の比率で割り当てる。ここでは、プリンタＢの処理能力はプリンタＡの処理能力の２倍であるため、プリンタＢ用の仮想キュー３５ａにプリンタＡ用の仮想キュー３５ａの２倍の分割ジョブを割り当てる。
【００８０】
そして、各々の仮想キュー３５ａ内の所定数の分割ジョブをプリンタＡ、Ｂに送信して、印刷を開始させる。このケースでは、プリンタＡ、Ｂの処理能力に応じた所定の比率で仮想キュー３５ａに分割ジョブを割り当てているため、プリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａは同じ割合で残部数が減少する。例えば、図１８に示すように、１４分後には、プリンタＡは１４部印刷済み、プリンタＢは２８部印刷済みになる。この場合、プリンタＡの処理中及び未処理ジョブは、処理中のＡ１５と転送中のＡ１６と仮想キュー３５ａ内のＡ１７〜Ａ２０の計６部、プリンタＢの処理中及び未処理ジョブは、処理中のＢ２９と転送中のＢ３０と仮想キュー３５ａ内のＢ３１〜Ｂ４０の計１２部であり、プリンタＢの処理能力はプリンタＡの処理能力の２倍であることからほぼ同時刻にジョブが終了するため、仮想キュー３５ａ間の分割ジョブの移動をなくすことができる。
【００８１】
なお、一方のプリンタにトラブルが発生した場合は、所定のタイミングで（仮想キュー３５ａから分割ジョブを送信した時や予め定めた所定の期間が経過した時に）、各々の仮想キュー３５ａの残部数を確認して、残部数（ジョブ終了タイミングを正確に揃える場合は処理中及び転送中の部数と仮想キュー３５ａの残部数の合計）が所定の比率を保つように仮想キュー３５ａ間で分割ジョブを移動すればよい。
【００８２】
また、１８００ページの文書を印刷する印刷ジョブを２台のプリンタＡ、Ｂに分散印刷させる場合、本実施例では、図１９に示すように、１８００ページを所定のページ数（ここでは、１００ページ）ずつの１８個の分割ジョブに分割し、この１８個の分割ジョブをプリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａにプリンタＡ、Ｂの処理能力に応じた所定の比率で割り当てる。ここでは、プリンタＢの処理能力はプリンタＡの処理能力の２倍であるため、プリンタＢ用の仮想キュー３５ａにプリンタＡ用の仮想キュー３５ａの２倍のページ数の分割ジョブを割り当てる。なお、第１の実施例と同様に、仮想キュー間で分割ジョブを移動させた場合に、ページ順が正しく印刷されるようにするために、ページの並びを逆にする。また、プリンタＡはフェイスダウン出力し、プリンタＢはフェイスアップ出力するように印刷指示を行う。また、プリンタの処理能力に差がある場合は、１つの分割ジョブのページ数は処理能力が低いプリンタが単位時間に印刷可能なページ数にすることが好ましい。
【００８３】
そして、各々の仮想キュー３５ａ内の所定数の分割ジョブをプリンタＡ、Ｂに送信して、印刷を開始させる。このケースでは、プリンタＡ、Ｂの処理能力に応じた所定の比率で仮想キュー３５ａに分割ジョブを割り当てているため、プリンタＡ用の仮想キュー３５ａ及びプリンタＢ用の仮想キュー３５ａは同じ割合で残ページ数が減少する。例えば、図２０に示すように、３分後には、プリンタＡは１〜３００ページが印刷済み、プリンタＢは１８００〜１２０１ページが印刷済みになる。この場合、プリンタＡの処理中及び未処理ページ数は、処理中の３０１〜４００と転送中の４０１〜５００と仮想キュー３５ａ内の５０１〜６００の計３００ページ、プリンタＢの処理中及び未処理ページ数は、処理中の１２００〜１１０１と転送中の１１００〜１００１と仮想キュー３５ａ内の１０００〜６０１の計６００ページであり、プリンタＢの処理能力はプリンタＡの処理能力の２倍であることからほぼ同時刻にジョブが終了するため、仮想キュー３５ａ間の分割ジョブの移動をなくすことができる。
【００８４】
なお、一方のプリンタにトラブルが発生した場合は、所定のタイミングで（仮想キュー３５ａから分割ジョブを送信した時や予め定めた所定の期間が経過した時に）、各々の仮想キュー３５ａの残ページ数を確認して、残ページ数（ジョブ終了タイミングを正確に揃える場合は処理中及び転送中のページ数と仮想キュー３５ａの残ページ数の合計）が所定の比率を保つように仮想キュー３５ａ間で分割ジョブを移動すればよい。
【実施例３】
【００８５】
次に、本発明の第３の実施例に係る分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法について、図２１及び図２２を参照して説明する。図２１及び図２２は、本実施例の仮想キューの構成例を示す模式図である。
【００８６】
前記した第１の実施例では、画像形成装置４０毎に仮想キュー３５ａを設けたが、２台の画像形成装置４０に分散印刷を実行させる場合は、１つの仮想キュー３５ａを用いて分散印刷を制御することもできる。その際、印刷ジョブを部数で分割する場合は、双方の画像形成装置４０に、仮想キューの先頭から順次分割ジョブを送信すればよい。また、印刷ジョブをページで分割する場合は、図２１に示すように、一方の画像形成装置４０（ここではプリンタＡ）には仮想キュー３５ａの先頭から分割ジョブを送信し、他方の画像形成装置４０（ここではプリンタＢ）には仮想キュー３５ａの末尾から分割ジョブを送信するようにすればよい。
【００８７】
また、図２２に示すように、画像形成装置４０毎に仮想キュー３５ａを設けると共に、これらの仮想キューの上位に別の仮想キューを設け、上位の仮想キューから画像形成装置４０毎の仮想キュー３５ａに所定数の分割ジョブを順次移してから各々の画像形成装置４０に送信するようにしてもよい。
【実施例４】
【００８８】
次に、本発明の第４の実施例に係る分散印刷制御プログラム及び分散印刷制御装置及び分散印刷制御方法について、図２３及び図２４を参照して説明する。図２３は、本実施例の分散印刷システムの構成を模式的に示す図であり、図２４は、画像形成装置の構成を示すブロック図である。
【００８９】
前記した第１の実施例では、分散印刷システム１０に分散印刷制御装置３０を配置したが、いずれかの画像形成装置４０が分散印刷を制御可能な場合は、図２３に示すように、分散印刷システム１０をクライアント端末２０と複数の画像形成装置４０とで構成し、分散印刷制御装置３０を省略することができる。
【００９０】
この場合、複数の画像形成装置４０の内の特定の画像形成装置４０（図では、左側の画像形成装置）は、前記した第１の実施例（図１）の分散印刷制御装置３０として機能する。具体的には、図２４に示すように、特定の画像形成装置４０は、制御部４１、記憶部４５、ネットワークＩ／Ｆ部４６、表示操作部４７、画像処理部４８、印刷処理部４９などで構成されるが、記憶部４５はデバイスキュー４５ａに加えて仮想キュー４５ｂを備える。また、制御部４１は、ジョブ分割部４１ａ、状態監視部４１ｂ、ジョブ制御部４１ｃとして機能する（ＣＰＵ４２により、制御部４１をジョブ分割部４１ａ、状態監視部４１ｂ、ジョブ制御部４１ｃとして機能させる分散印刷制御プログラムが実行される）。
【００９１】
具体的には、ジョブ分割部４１ａは、クライアント端末２０から受信した印刷ジョブを所定の単位の分割ジョブ（部数クラスタやページクラスタ）からなる分割ジョブに分割する。状態監視部４１ｂは、自装置の印刷ステータス及び他の画像形成装置４０から取得した印刷ステータスに基づいて各々の画像形成装置４０のジョブ処理状態を監視し、待機ジョブがなくなった画像形成装置４０があるかを判断する。ジョブ制御部４１ｃは、ジョブ分割部４１ａが分割した分割ジョブを、自装置を含む画像形成装置４０毎に設けた仮想キュー４５ｂに均等に（若しくは画像形成装置４０の処理能力に応じた所定の比率で）割り当て、仮想キュー４５ｂ内の残ジョブ数が均等に（若しくは所定の比率で）維持されるように、仮想キュー４５ｂ間で分割ジョブを移動する。
【００９２】
上記構成では、図７及び図８に示した分散印刷制御装置３０の処理を特定の画像形成装置４０が実行することになる。また、複数の画像形成装置４０にジョブを分散させる際に、特定の画像形成装置４０が、自装置をも割り当て先として選択する。このような構成でも、第１の実施例と同様の効果を得ることができる。
【００９３】
また、図２３では、特定の画像形成装置４０に分散印刷制御装置３０（分散印刷制御プログラム）の機能を内包させたが、クライアント端末２０に分散印刷制御装置３０（分散印刷制御プログラム）の機能を内包させてもよい。
【００９４】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００９５】
例えば、上記実施例では、印刷ジョブを同じ部数又は同じページ数の分割ジョブに分割する場合を例示したが、必ずしも、全ての分割ジョブで部数又はページ数が同じである必要はない。例えば、部又はページに端数が生じる場合は、末尾の分割ジョブは部数又はページ数が異なっていてもよい。また、各々の仮想キュー内で先頭から末尾に向かって、分割ジョブの部数又はページ数が徐々に少なくなるようにしてもよく、仮想キュー間で移動させる可能性が高い分割ジョブの部数又はページ数を少なくすることにより、ジョブ終了タイミングを正確に揃えることができる。
【００９６】
また、上記実施例では、仮想キューから分割ジョブを出力した時、又は、予め定めた所定の時間間隔で分割ジョブの再割り当て処理を実施するようにしたが、分割ジョブの再割り当て処理の実施間隔を変化させることもできる。例えば、ジョブ処理を開始した直後は分割ジョブの再割り当て処理の実施間隔を長くし、ジョブ処理が進むに従って、分割ジョブの再割り当て処理の実施間隔を短くしてもよく、このような制御により、ジョブ終了タイミングを正確に揃えることができる。
【産業上の利用可能性】
【００９７】
本発明は、複数の画像形成装置を含む分散印刷システム内の装置で動作する分散印刷制御プログラム及び当該分散印刷制御プログラムを記録した記録媒体並びに複数の画像形成装置を用いた分散印刷を制御する分散印刷制御装置並びに分散印刷制御方法に利用可能である。
【符号の説明】
【００９８】
１０  分散印刷システム
２０  クライアント端末
２１  制御部
２１ａ  ＯＳ
２１ｂ  文書作成アプリケーション
２１ｃ  プリンタドライバ
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  ネットワークＩ／Ｆ部
２７  表示部
２８  操作部
３０  分散印刷制御装置
３１  制御部
３１ａ  ジョブ分割部
３１ｂ  状態監視部
３１ｃ  ジョブ制御部
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  記憶部
３５ａ  仮想キュー
３６  ネットワークＩ／Ｆ部
４０  画像形成装置
４１  制御部
４１ａ  ジョブ分割部
４１ｂ  状態監視部
４１ｃ  ジョブ制御部
４２  ＣＰＵ
４３  ＲＯＭ
４４  ＲＡＭ
４５  記憶部
４５ａ  デバイスキュー
４５ｂ  仮想キュー
４６  ネットワークＩ／Ｆ部
４７  表示操作部
４８  画像処理部
４９  印刷処理部
５０  通信ネットワーク
【図１】
2018010640.tif 000003
【図２】
2018010640.tif 000004
【図３】
2018010640.tif 000005
【図４】
2018010640.tif 000006
【図５】
2018010640.tif 000007
【図６】
2018010640.tif 000008
【図７】
2018010640.tif 000009
【図８】
2018010640.tif 000010
【図９】
2018010640.tif 000011
【図１０】
2018010640.tif 000012
【図１１】
2018010640.tif 000013
【図１２】
2018010640.tif 000014
【図１３】
2018010640.tif 000015
【図１４】
2018010640.tif 000016
【図１５】
2018010640.tif 000017
【図１６】
2018010640.tif 000018
【図１７】
2018010640.tif 000019
【図１８】
2018010640.tif 000020
【図１９】
2018010640.tif 000021
【図２０】
2018010640.tif 000022
【図２１】
2018010640.tif 000023
【図２２】
2018010640.tif 000024
【図２３】
2018010640.tif 000025
【図２４】
2018010640.tif 000026