(57)【要約】【課題】簡易な印刷システムで、複数部数の印刷ジョブを複数台のプリンタで分散印刷する。【解決手段】ネットワークにクライアントおよび複数のプリンタを接続して印刷システムを構築する。プリンタＰＲＴ１は、クライアントから複数部数が指定された印刷ジョブＪＯＢ０の印刷部数を１部に修正し、他の代替プリンタＰＲＴ２等に分配する。プリンタＰＲＴ１は、この他の代替プリンタに分配された部数および自身が印刷する部数を併せて、総部数を管理し、指定された部数の印刷を実行する。かかる機能をプリンタに備えることにより、簡易なシステム構成で、分散印刷を実現することができる。【選択図】図１
2004181647.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された印刷装置であって、
前記ネットワークに接続された機器から、印刷部数の指定を含む印刷ジョブを受信するデータ受信部と、
前記ネットワークに接続された他の印刷装置を、印刷ジョブが移転可能な代替印刷装置として特定する印刷装置特定部と、
印刷部数が複数である場合に、前記印刷ジョブのうち該印刷部数を指定された部数よりも少ない部数に変更した修正印刷ジョブの印刷を、前記代替印刷装置の少なくとも一部に移転するジョブ移転部と、
該代替印刷装置によって印刷される部数も含めて、前記指定された印刷部数を実現するよう、部数管理を行う部数管理部とを備える印刷装置。
【請求項２】
請求項１記載の印刷装置であって、
前記ジョブ移転部は、印刷未了の部数が複数である場合に、繰り返し前記移転を実行する印刷装置。
【請求項３】
請求項２記載の印刷装置であって、
前記代替印刷装置は、該印刷装置内に印刷ジョブをスプールする機能を有しており、
前記ジョブ移転部は、前記修正印刷ジョブをスプールしている印刷装置に対しては、該修正印刷ジョブを再送信することなく、該修正印刷ジョブの実行指示を送信する印刷装置。
【請求項４】
請求項１記載の印刷装置であって、
前記部数管理部は、前記印刷ジョブを送信した機器に対して、前記代替印刷装置によって印刷される部数も含めて、印刷済みの部数を通知する印刷装置。
【請求項５】
請求項１記載の印刷装置であって、
前記修正印刷ジョブの部数は１部である印刷装置。
【請求項６】
請求項１記載の印刷装置であって、
前記印刷装置特定部は、該印刷装置が受信した前記印刷ジョブに基づく印刷を、そのまま実行可能な印刷装置を前記ネットワーク上で探索し、特定する印刷装置。
【請求項７】
請求項１記載の印刷装置であって、
前記印刷装置特定部は、前記代替印刷装置のそれぞれについて、残寿命を特定し、
前記ジョブ移転部は、該残寿命に基づいて、前記移転する部数を設定する印刷装置。
【請求項８】
請求項７記載の印刷装置であって、
前記ジョブ移転部は、該残寿命が長い代替印刷装置に対して、前記移転する部数を増やす印刷装置。
【請求項９】
請求項７記載の印刷装置であって、
前記代替印刷装置は、それぞれ寿命に至る目標時期が予め設定されており、
前記ジョブ移転部は、前記代替印刷装置のそれぞれについて、更に前記目標時期を考慮して、前記移転する部数を設定する印刷装置。
【請求項１０】
請求項１記載の印刷装置であって、
前記ジョブ移転部は、前記代替印刷装置から更に他の印刷装置への移転を禁止するための制御情報を付して前記修正印刷ジョブの移転を行う印刷装置。
【請求項１１】
請求項１記載の印刷装置であって、
前記印刷装置特定部は、前記印刷ジョブまたは修正印刷ジョブを受信した印刷装置を特定するとともに、該印刷装置を前記代替印刷装置から除外する印刷装置。
【請求項１２】
請求項１記載の印刷装置であって、
前記ジョブ移転部は、前記ネットワークに接続された他の印刷装置から受信した印刷ジョブを、前記代替印刷装置に移転した場合には、該印刷ジョブの送信元である前記他の印刷装置に該移転先となった代替印刷装置を通知する印刷装置。
【請求項１３】
請求項１記載の印刷装置であって、
印刷装置以外の機器から前記印刷ジョブを受信した場合に、前記各代替印刷装置からの通知に基づいて、該印刷ジョブまたは修正印刷ジョブを実行する全印刷装置を特定するための一覧データを生成し、それぞれの代替印刷装置に該一覧データを送信する一覧データ送信部を備える印刷装置。
【請求項１４】
請求項１記載の印刷装置であって、
前記他の印刷装置について、前記修正印刷ジョブの実行に要する所要時間を評価する所要時間評価部を備え、
前記印刷装置特定部は、該所要時間が所定値以上となる他の印刷装置を、前記代替印刷装置から除外する印刷装置。
【請求項１５】
請求項１記載の印刷装置であって、
前記修正印刷ジョブを自ら印刷する印刷実行部を備え、
前記ジョブ移転部は、該印刷実行部による前記修正印刷ジョブの読み出しに同期して前記移転を行う印刷装置。
【請求項１６】
請求項１記載の印刷装置であって、
前記ジョブ移転部は、
前記修正印刷ジョブを複数の分割データに分割して前記代替印刷装置に送信する分割送信部と、
該修正印刷ジョブについて、送信が完了したデータ位置を特定するためのポインタを、前記代替印刷装置ごとに管理するポインタ管理部とを備える印刷装置。
【請求項１７】
ネットワークに接続された印刷装置によって印刷を行う印刷方法であって、
前記ネットワークに接続された機器から、印刷部数の指定を含む印刷ジョブを受信する工程と、
前記ネットワークに接続された他の印刷装置を、印刷ジョブが移転可能な代替印刷装置として特定する工程と、
印刷部数が複数である場合に、前記印刷ジョブのうち該印刷部数を指定された部数よりも少ない部数に変更した修正印刷ジョブの印刷を、前記代替印刷装置の少なくとも一部に移転する工程と、
該代替印刷装置によって印刷される部数も含めて、前記指定された印刷部数を実現するよう、部数管理を行う工程とを備える印刷方法。
【請求項１８】
ネットワークに接続された印刷装置を制御するためのコンピュータプログラムであって、
前記ネットワークに接続された機器から、印刷部数の指定を含む印刷ジョブを受信する機能と、
前記ネットワークに接続された他の印刷装置を、印刷ジョブが移転可能な代替印刷装置として特定する機能と、
印刷部数が複数である場合に、前記印刷ジョブのうち該印刷部数を指定された部数よりも少ない部数に変更した修正印刷ジョブの印刷を、前記代替印刷装置の少なくとも一部に移転する機能と、
該代替印刷装置によって印刷される部数も含めて、前記指定された印刷部数を実現するよう、部数管理を行う機能とを前記印刷装置に内蔵されたコンピュータによって実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに複数の印刷装置が接続された印刷環境下で、印刷装置間で印刷ジョブを分配して、分散印刷を行う技術に関する。
【０００２】
【従来の技術】
近年、複数のプリンタを同一ネットワークに接続し、ユーザが複数のプリンタを使い分けることができる印刷システムが普及しつつある。複数部の印刷を行う場合、印刷ジョブを各プリンタに分配し、並行処理することにより、短時間で印刷を完了する技術、いわゆる分散印刷も提案されている（例えば、特許文献１参照）。分散印刷は、ネットワーク上に設けられた分散印刷用のプリントサーバが、印刷ジョブの分散先および印刷部数を制御するのが通常である。
【０００３】
【特許文献１】
特開２００２−２１５３６９号公報
【０００４】
【発明が解決しようとする課題】
しかし、従来技術では、分散印刷を実現するためにサーバを含めた大がかりなシステムが必要となっていた。また、印刷途中にいずれかのプリンタでエラーが生じた場合、印刷完了した総部数の管理が困難であるという課題があった。例えば、１００部の印刷を、２台のプリンタに５０部ずつ実行されている途中で、一方のプリンタにエラーが生じた場合、ユーザは、そのプリンタで印刷完了した部数を数え、残りの印刷部数を計算して、再度、印刷ジョブを発行する必要があった。本発明は、かかる課題を解決するためになされたものであり、簡易なシステムで、印刷部数の管理が容易な分散印刷を実現することを目的とする。
【０００５】
【課題を解決するための手段およびその作用・効果】
本発明では、以下に示す印刷装置によって、上記課題の少なくとも一部の解決を図る。本発明の印刷装置は、他の印刷装置とともにネットワークに接続された印刷環境下で使用される。本発明の印刷装置は、ネットワークに接続された機器、例えば、コンピュータや他の印刷装置から、印刷部数の指定を含む印刷ジョブを受信する。また、同じネットワークに接続された他の印刷装置を、印刷ジョブが移転可能な代替印刷装置として特定する。印刷部数が複数である場合には、印刷ジョブのうち印刷部数を指定された部数よりも少ない部数（以下、「分配部数」と呼ぶ）に変更した修正印刷ジョブの印刷を、代替印刷装置の少なくとも一部に移転する。この移転とともに、代替印刷装置によって印刷される部数も含めて、指定された印刷部数を実現するよう、部数管理を行う。本発明の印刷装置によれば、印刷装置自体が印刷ジョブの移転を行うため、分散印刷用のサーバを用いるまでなく、分散印刷を実現することができる。
【０００６】
部数管理は、種々のタイミングで行うことができる。例えば、代替印刷装置への移転が完了した印刷部数を、印刷完了分とみなして、総印刷部数を求めてもよい。代替印刷装置からの印刷完了通知を受けた時点で、印刷完了分とみなしてもよい。
【０００７】
修正印刷ジョブの移転は、一度だけに制限してもよいし、印刷未了の部数が複数である場合には、繰り返し実行するようにしてもよい。後者の態様では、既に移転済みの修正印刷ジョブについて印刷完了通知を受けた後、次の移転を行うことが好ましい。こうすることにより、印刷の進捗状況に合わせて、移転先を制御し、効率的に印刷を行うことが可能となる。
【０００８】
繰り返し移転を行う場合には、その都度、修正印刷ジョブを再送するようにしてもよい。また、代替印刷装置が印刷装置内に印刷ジョブをスプールする機能を有している場合、修正印刷ジョブをスプールしている印刷装置に対しては、印刷の実行指示のみを再送するようにしてもよい。こうすれば、修正印刷ジョブの再送信が不要となり、ネットワークのトラフィックの軽減、処理時間の短縮を図ることができる。
【０００９】
本発明の印刷装置は、印刷ジョブを送信した機器に対して、代替印刷装置によって印刷される部数も含めて、印刷済みの部数を通知可能としてもよい。こうすることにより、印刷済みの部数をネットワークを介して遠隔的に把握することができ、利便性が向上する。
【００１０】
本発明において、分配部数は、任意に設定可能であり、複数部数としてもよいし、１部としてもよい。複数部数とすれば、修正印刷ジョブの移転回数を軽減することができる利点がある。分配部数を１部など、小さい部数とすれば、印刷途中で代替印刷装置にエラーが生じた場合でも、その影響を抑制することができる。例えば、エラーが正常に動作している他の印刷装置を利用して、未処理の印刷を支障なく続行することができる。また、エラーによって印刷不能となった部数が少ないため、部数管理も容易となる。
【００１１】
本発明の印刷装置では、印刷ジョブをそのまま実行可能な印刷装置を、ネットワーク上で探索し、特定することが好ましい。例えば、自己と同機種の印刷装置を探索するようにしてもよい。用紙サイズ、カラー／モノクロの種別、両面印刷の可否、使用するフォント、解像度の種類などについて、印刷ジョブで指定された仕様を満足する印刷装置を探索するようにしてもよい。こうすることにより、印刷ジョブのデータ変換などをするまでなく、適正な印刷を行うことができる。また、各印刷装置での印刷物の品質、例えば、解像度やフォントなどを統一することができる。
【００１２】
本発明において、分配部数は種々の設定が可能である。代替印刷装置に均一に分配するようにしてもよいし、差違をもたせてもよい。後者の例としては、代替印刷装置のそれぞれについて、残寿命を特定し、この残寿命に基づいて分配部数を設定する方法が挙げられる。こうすれば、各代替印刷装置が寿命を迎える時期を制御することができる。
【００１３】
例えば、残寿命が長い代替印刷装置に対しては、移転する部数を増やしてもよい。こうすれば、複数の代替印刷装置にほぼ同時期に寿命を迎えさせることができ、これら複数の印刷装置の機種交換時期などの計画が容易になる利点がある。
【００１４】
また、寿命に至る目標時期が各印刷装置に予め設定されている場合には、各印刷装置について、残寿命とともに目標時期を考慮して移転する部数を設定してもよい。こうすることにより、機種交換の計画に合わせて寿命を迎えさせることが可能となる。目標時期は、印刷装置に個別に設定されていてもよいし、複数の印刷装置を含むグループ単位で設定されていてもよい。
【００１５】
ネットワークに接続される代替印刷装置は、本発明の印刷装置、即ち印刷ジョブを他の印刷装置に移転する機能を有する印刷装置であってもよい。このように本発明の印刷装置がネットワークに多数接続された印刷システムでは、ユーザは任意の印刷装置に印刷ジョブを送信するだけで、適宜、分散印刷を実施することができるため、印刷システムの利便性が向上される。
【００１６】
この場合、いずれかの印刷装置（「親装置」と呼ぶ）から印刷ジョブを受信した印刷装置（「子装置」と呼ぶ）が、本発明の機能により、親装置に印刷ジョブを逆移転する可能性がある。かかる逆移転が生じると、印刷ジョブの実行、部数管理が不安定になる恐れがある。従って、例えば、代替印刷装置から更に他の印刷装置への移転を禁止するための制御情報を修正印刷ジョブに付しても良い。各代替印刷装置は、この制御情報が付されたジョブは、他の印刷装置への移転を行わないため、上述の逆移転を回避することができる。このような制御情報の付加に代えて、印刷部数の指定を「１部」にして修正印刷ジョブの移転を行うものとしてもよい。本発明の印刷装置は、複数部数の指定がされている場合に、印刷ジョブの移転を行うよう制御されるから、「１部」という指定により、子装置からの移転を抑止することができる。
【００１７】
子装置から更に、他の代替印刷装置（「孫装置」と呼ぶ）への移転を許容しつつ、上述の逆移転を回避するため、本発明の印刷装置において、印刷ジョブまたは修正印刷ジョブを受信した印刷装置を特定し、その印刷装置を除外して、移転先となる代替印刷装置を決定してもよい。除外されるべき印刷装置は、例えば、スプール中または実行中の印刷ジョブを各印刷装置に問い合わせることで特定することができる。
【００１８】
また、除外されるべき印刷装置を容易に特定可能とするため、子装置が、親装置から受信した印刷ジョブを孫装置に移転した場合には、親装置に、移転先となった孫装置を通知してもよい。孫装置の名称、アドレス、ＩＤなどを通知すればよい。この機能により、印刷ジョブの移転先となった代替印刷装置は、最初にクライアントなど印刷装置以外に機器から印刷ジョブを受信したルートの印刷装置（「ルート装置」と呼ぶ）に集約される。従って、各印刷装置は、ルート装置への問い合わせを行うことにより、移転先から除外されるべき印刷装置を容易に特定することができる。
【００１９】
ルート装置は、上述の通知に基づいて、この印刷ジョブまたは修正印刷ジョブを実行する全印刷装置を特定するための一覧データを生成し、各代替印刷装置に送信してもよい。例えば、一覧データをブロードキャストまたはマルチキャストを利用することにより、代替印刷装置が多数に至った場合でも、ネットワークのトラフィックの増大を回避しつつ、一覧データの配信を行うことができる。
【００２０】
本発明においては、他の印刷装置について、修正印刷ジョブの実行に要する所要時間を評価し、所要時間が所定値以上となる装置を除外して、印刷ジョブの移転先を設定してもよい。こうすることにより、印刷の所要時間を短縮することができる。印刷ジョブの実行の所要時間に代えて、ネットワークの通信所要時間を評価して移転先を決定してもよい。
【００２１】
本発明の印刷装置は、修正印刷ジョブを他の印刷装置に移転しつつ、自ら印刷してもよい。この場合、印刷ジョブの移転は、例えば、自らの印刷のために修正印刷ジョブを読み出すタイミングに同期して移転を行ってもよい。こうすれば、移転のために改めて修正印刷ジョブを読み出す必要がなくなり、効率的に移転を行うことができる。
【００２２】
複数の印刷装置に同じタイミングで印刷ジョブを移転しようとすると、通信速度の遅い印刷装置が律速となり、移転効率が低くなる場合がある。かかる弊害を回避するため、印刷ジョブをパケットなど複数の分割データに分割して送信するとともに、送信が完了したデータ位置を特定するためのポインタを、代替印刷装置ごとに管理するようにしてもよい。こうすれば、代替印刷装置ごとに異なる速度で印刷ジョブを移転することが可能となり、移転効率を向上することができる。印刷装置のメモリ容量に余裕がある場合には、複数のポインタを用いる方法に代えて、代替印刷装置の数だけ修正印刷ジョブをコピーし、個別に送信を行っても良い。
【００２３】
本発明は、上述の印刷装置としての構成の他、ネットワークに接続された印刷装置によって印刷を行う印刷方法の発明として構成することもできる。また、上述の分散印刷を実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。各態様において、先に示した種々の付加的要素を適用することが可能である。
【００２４】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、印刷装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態について、以下の項目に分けて説明する。
Ａ．第１実施例：
Ａ１．システム概要：
Ａ２．プリンタの機能ブロック：
Ａ３．分散印刷処理：
Ａ４．パケット送信：
Ｂ．第２実施例：
Ｂ１．第２実施例の変形例：
Ｃ．第３実施例：
Ｄ．第４実施例：
【００２６】
Ａ．第１実施例：
Ａ１．システム概要：
図１は第１実施例としての印刷システムの構成を示す説明図である。本実施例では、図示するように、クライアントＣＬ、複数のプリンタＰＲＴ１〜ＰＲＴ４がＬＡＮに接続されている。各機器のＩＰアドレスは、ＬＡＮ上に接続されたＤＨＣＰサーバＤＳによって割り振られる。説明の便宜上、クライアントＣＬには「ＩＰｃ」、プリンタＰＲＴ１〜ＰＲＴ４には、それぞれ「ＩＰ１」〜「ＩＰ４」なるアドレスが設定されているものとする。
【００２７】
各プリンタは、以下に例示する通り、受信した印刷ジョブを、他のプリンタに分配して、分散印刷する機能が備えられている。一例として図中には、クライアントＣＬからプリンタＰＲＴ１に、印刷ジョブＪＯＢ０が送信された場合を例示した。印刷ジョブＪＯＢ０のデータには、発信元のＩＰアドレス「ＩＰｃ」、送信先のＩＰアドレス「ＩＰ１」、および印刷部数「１００部」などの情報が含まれている。
【００２８】
プリンタＰＲＴ１は、この印刷ジョブを受信すると、印刷部数を「１部」に変更した修正ジョブＪＯＢ１を生成し、プリンタＰＲＴ２に分配する。送信時には、発信元はプリンタＰＲＴ１のＩＰアドレス「ＩＰ１」、送信先はプリンタＰＲＴ２のＩＰアドレス「ＩＰ２」が指定される。プリンタＰＲＴ１は、同様に、修正ジョブ１を、プリンタＰＲＴ３、ＰＲＴ４にも分配する。
【００２９】
この分配過程では、プリンタＰＲＴ１自身も印刷を行う。プリンタＰＲＴ１は、他のプリンタＰＲＴ２〜ＰＲＴ４に分配された部数および自己が印刷した部数を合わせて、総印刷部数を管理し、指定された部数「１００部」の印刷を実行する。また、進捗状況を操作パネルＯＰに逐次、表示する。
【００３０】
図２は操作パネルの構成例を示す説明図である。操作パネルＯＰには、ディスプレイＤＩＳＰおよび種々のボタンが用意されている。ディスプレイＤＩＳＰは、ＬＣＤパネルであり、エラー、分散印刷の状況などの情報を表示する。分散印刷時には、分散先、残部数を表示するものとした。
【００３１】
Ａ２．プリンタの機能ブロック：
図３はプリンタの機能ブロックを示す説明図である。プリンタには、内部にＣＰＵ、メモリを有する制御ユニットが備えられており、図示する各機能ブロックは、この制御ユニットが実施するソフトウェアのモジュールとして構成されている。各機能ブロックをハードウェア的に構築しても構わない。
【００３２】
図では、プリンタが元来有している機能と、先に説明した分散印刷を実現するための追加機能とを分けて示した。元来有している機能としては、次の各機能ブロックが上げられる。ＴＣＰ／ＩＰ２１は、ＴＣＰ／ＩＰを解釈して、ネットワークを介して外部との通信を行う。ＬＰＲｄ２３は、印刷用のプロトコルであるＬＰＲを解釈する。解釈部２２は、同じく印刷用のプロトコルであるＰｏｒｔ９１００を解釈する。プリントエンジン２４は、プリンタの各ハードウェアを制御して、印刷ジョブを実行する。パネル制御部２５は、ディスプレイを制御して、プリンタの動作状況の表示、ユーザによる設定内容の受け付けを行う。
【００３３】
プリンタに元来の機能のみが備えられている場合、印刷ジョブは、図中に破線で示す経路で、プリンタに受け渡され、実行される。ユーザが印刷命令を出すと、クライアントＣＬに備えられたアプリケーション１３は、ＬＰＲ１２およびＴＣＰ／ＩＰ１１を通じて、印刷用のプロトコルＬＰＲに従って生成された印刷ジョブをプリンタに送信する。プリンタでは、ＴＣＰ／ＩＰ２１およびＬＰＲｄ２３がこの印刷ジョブを受け取り、プロトコルを解釈した上で、印刷用のデータをプリントエンジン２４に受け渡す。
【００３４】
このようなプリンタの拡張スロットに、追加機能を実現するためのプログラムを記録したＲＯＭ３０を差し込むことにより、分散印刷用の各追加機能は実現される。以下に示す追加機能用の各機能ブロックは、分散印刷を制御するための分散処理部３４の制御下で動作する。
【００３５】
代替プリンタ管理部３７は、分散印刷を行う際に、分配先となるべきプリンタの検索、選択などを行う。部数管理部３６は、指定された部数、印刷済みの部数を管理する。印刷済みの部数には、自身が印刷した部数の他、分散印刷により他のプリンタで印刷された部数も含まれる。発信元管理部３５は、分散印刷すべき印刷ジョブの発信元を管理する。発信元は、クライアント、プリンタなど種々の機器が考えられる。発信元管理部３５は、例えば、発信元のＩＰアドレス、ＭＡＣアドレス、クライアントかプリンタかの種別などを印刷ジョブ完了まで保持する。
【００３６】
ＬＰＲｄ３１は、ＬＰＲを解釈するとともに、元来備えられていたＬＰＲｄ２３の機能を停止する。この結果、図中に実線で示すように、クライアントＣＬからの印刷ジョブは、追加機能としてのＬＰＲｄ３１が受け取る。ＬＰＲｄ３１の機能により、クライアントＣＬは、プリンタに追加機能が用意されているか否かを意識することなく、印刷ジョブを送信するだけで実施例の分散印刷機能が利用可能となる。
【００３７】
ＬＰＲ３２は、ＬＰＲプロトコルに従って、他のプリンタに印刷ジョブを分配する機能を奏する。クライアントＣＬに備えられているＬＰＲ１２と同様の機能である。Ｐｏｒｔ９１００の送信部３３は、Ｐｏｒｔ９１００のプロトコルに従って、印刷ジョブを送信する機能を奏する。本実施例では、送信先は、プリンタが元来備えているＰｏｒｔ９１００の解釈部２２である。こうすることで、元来備えているＬＰＲｄ２３が機能を停止させられた状況下でも、自分自身での印刷を実行することができる。
【００３８】
自身での印刷は、分散処理部３４から直接、プリントエンジン２４に印刷データを受け渡すことによって実現してもよい。但し、Ｐｏｒｔ９１００を介してネットワーク上のプロトコルを利用して、受け渡す場合には、ＲＯＭ３０によって追加される機能を、プリンタとは別体のプリントサーバやホームゲートウェイなどの装置に容易に構築可能となる利点がある。
【００３９】
実施例では、各プリンタに、上述のＲＯＭ３０が備えられているものとして説明するが、分散印刷実現のためには、上述の追加機能が、ネットワーク上のいずれか一台のプリンタで実現されていれば足りる。但し、各プリンタにＲＯＭ３０が備えられていれば、ユーザは、いずれのプリンタに印刷ジョブを出力しても、分散印刷機能を利用可能となるため、システムの利便性が向上するという利点がある。
【００４０】
Ａ３．分散印刷処理：
図４は分散印刷処理のフローチャートである。プリンタの制御ユニットが実行する処理である。プリンタＰＲＴ１が印刷ジョブを受信し。プリンタＰＲＴ２に分散する場合を例にとって、説明する。
【００４１】
プリンタＰＲＴ１は、印刷ジョブを受信すると（ステップＳ１０）、部数カウンタを、設定された印刷部数にセットする（ステップＳ１１）。また、後述する完了通知のため、ＩＰアドレスなど印刷ジョブの発信元の情報を保存する。
【００４２】
プリンタＰＲＴ１は、設定された印刷部数が２部以上の場合には、以下に示す分散処理を行う（ステップＳ１２）。即ち、プリンタＰＲＴ１は、送信用およびプリンタＰＲＴ１自身が印刷するたに、印刷部数を１部に変更した印刷ジョブを生成する（ステップＳ１４）。次に、後述する方法で、分散先となる代替プリンタを特定し（ステップＳ１５）、その代替プリンタに印刷ジョブを送信する（ステップＳ１６）。代替プリンタは、１台である必要はなく、複数台であってもよい。ステップＳ１５の処理は、印刷ジョブがその時点で送信中ではなく、印刷ジョブを受け付け可能な代替プリンタが発見されるまで、ループさせてもよい。代替プリンタが発見されない場合には、印刷ジョブの送信を行わずに、次のステップに進むようにしてもよい。後述する通り、本実施例では、印刷部数に残りがある限り、ステップＳ１５〜Ｓ１９の処理が繰り返し実行されるため、代替プリンタが発見された時点で、適宜、印刷ジョブの送信を行うことができる。
【００４３】
プリンタＰＲＴ１は、これらの分散処理と合わせて、自身でも印刷を実行する（ステップＳ１７）。指定された印刷部数が１部の場合（ステップＳ１２）、上述の分散処理をスキップし、印刷を実行する（ステップＳ１７）。
【００４４】
印刷ジョブの送信および印刷実行に合わせて、プリンタＰＲＴ１は、部数カウンタを更新する（ステップＳ１７）。即ち、各プリンタに分散された部数、および自身で印刷する部数を、部数カウンタの従前の値から引く。例えば、代替プリンタへの分散を行わずに印刷する場合には、自身で印刷する１部を、部数カウンタから引くことになる。３台のプリンタに１部ずつ印刷ジョブを分散する場合には、分散される３部および自身で印刷する１部の合計４部を、部数カウンタから引くことになる。本実施例では、代替プリンタに印刷ジョブを送信した時点で、その分の印刷が完了したものとみなして、部数カウンタを更新するが、代替プリンタから印刷完了の通知を受けた時点で、更新するものとしてもよい。
【００４５】
プリンタＰＲＴ１は、部数カウンタに基づき、残部数が無いと判断されるまで、上述の印刷処理を繰り返し実行し（ステップＳ１９）、印刷が完了すると、印刷ジョブの発信元に完了通知を行う（ステップＳ２０）。
【００４６】
図示する通り、代替プリンタとして印刷ジョブが分散されたプリンタＰＲＴ２でも同様の処理が実行される。プリンタＰＲＴ２に分散された印刷ジョブの印刷部数は、１部である。従って、プリンタＰＲＴ２は、印刷ジョブを受信すると（ステップＳ１０）、他のプリンタへの分散を行わずに印刷を実行し、完了通知を、印刷ジョブの発信元であるプリンタＰＲＴ１に送信する（ステップＳ２０）。
【００４７】
図５は代替プリンタ特定処理のフローチャートである。先に説明した代替プリンタ特定（図４のステップＳ１５）の詳細内容に相当する。以下、プリンタＰＲＴ１の制御ユニットが実施するものとして、処理内容を説明する。
【００４８】
プリンタＰＲＴ１は、まず、同一機種のプリンタをネットワークから検索する（ステップＳ３１）。例えば、ネットワーク上の各プリンタに対して、ＳＮＭＰを利用して、ブロードキャストによって機種を問い合わせることにより、検索することができる。プリンタＰＲＴ１にＩＰアドレスが近い範囲のプリンタのみを抽出するなど、検索範囲に種々の制限を課してもよい。プリンタに設けたユーザインタフェースや、プリンタによって提供されるＷｅｂページを利用して、転送先のプリンタをユーザが特定するようにしてもよい。
【００４９】
次に、プリンタＰＲＴ１は、検索された中から、印刷ジョブで指定されている印刷仕様を満たすプリンタを抽出する（ステップＳ３２）。図中に印刷仕様の例を示した。例えば、印刷用紙のサイズ、カラー／モノクロの別、両面印刷の要否などが印刷仕様として挙げられる。各印刷装置の仕様も、ＳＮＭＰを利用して問い合わせることができる。本実施例では、印刷用紙およびインクなどの消耗品については、残量も併せて問い合わせるものとした。
【００５０】
図示する通り、印刷仕様では、Ａ４サイズの用紙、カラー印刷、および両面印刷が指定されているものとする。これらの各項目について、検索されたプリンタＡ，Ｂ，Ｃの問い合わせ結果は、図示する通りである。プリンタＡは、Ａ３サイズおよびＡ４サイズの用紙への印刷、カラー印刷、両面印刷が可能であり、用紙およびインクの残量も「多」ため、全ての仕様を満足し、Ａｖａｉｌａｂｌｅと判断される。
【００５１】
プリンタＢは、Ｂ４サイズの用紙のみが取扱可能であるため、印刷仕様を満足しない。また、プリンタＣは、インクの残量が少ないため、印刷仕様を満足しない。従って、これらのプリンタは、Ｎ．Ａ．（Ｎｏｔ  Ａｖａｉｌａｂｌｅ）と判定される。
【００５２】
消耗品の残量についての判断は、予め設定された所定の基準値との比較で行うものとしてもよいし、印刷ジョブでの指定内容を考慮してもよい。例えば、１００部の印刷が指定されている場合には、１００枚を基準として用紙の残量を評価することができる。残量については、例えば、印刷データのデータ量を基準として、予想されるインク消費量を算出し、評価することができる。消耗品の残量を考慮せず、プリンタの抽出を行っても構わないが、残量を考慮することにより、印刷途中での消耗品不足によるエラーを回避することができる利点がある。特に、多くの部数を印刷する場合には、エラーに起因する部数把握の混乱を抑制することができる。
【００５３】
既に、印刷ジョブが移転されているプリンタに重複して移転されるのを回避するため、プリンタＰＲＴ１は、こうして抽出された候補プリンタについて、印刷ジョブの実行状況を反映して、代替プリンタを特定する（ステップＳ３３）。図中に、印刷ジョブの実行状況の評価内容を例示した。この例では、候補プリンタとしてＡ，Ｄ，Ｅ，Ｆの４台が挙げられている。プリンタＡには、印刷ジョブが未だ移転されていないため、「Ａｖａｉｌａｂｌｅ」、即ち代替プリンタとして適用可能と判断される。プリンタＤについては、印刷ジョブが１６時５３分２０秒に移転されているものの、完了通知が未了であるため、Ｎ．Ａ．と判定される。
【００５４】
プリンタＥおよびプリンタＦについては、印刷ジョブが移転され、完了通知も受領しているため、共に、印刷ジョブの移転が可能な状態にある。但し、プリンタＥは印刷ジョブの所要時間が１１秒であるのに対し、プリンタＦは所要時間が２９秒と長い。従って、プリンタＰＲＴ１は、所要時間の短いプリンタＥを「Ａｖａｉｌａｂｌｅ」、プリンタＦをＮ．Ａ．と判定する。Ａｖａｉｌａｂｌｅ／Ｎ．Ａ．を判定するための所要時間の基準値は、任意に設定可能である。例えば、基準値が３０秒に設定されている場合には、プリンタＥ，ＦともにＡｖａｉｌａｂｌｅと判定して差し支えない。本実施例では、プリンタＰＲＴ１自身の印刷所要時間を基準値として用いるものとした。かかる設定により、プリンタＰＲＴ１自身が印刷するよりも移転した方が所要時間が短くなる場合に、移転が行われることになる。
【００５５】
以上の処理によって、代替プリンタが特定される。代替プリンタの特定では、本実施例で考慮した種々の条件の一部を省略しても差し支えない。例えば、ステップＳ３１の処理を省略し、異機種のプリンタも候補に含めても良い。但し、同一機種とすれば、印刷ジョブに含まれる印刷データをそのまま利用可能であるという利点、機種間でのフォントの差違などが回避できるため印刷結果の均一化を図ることができる利点がある。
【００５６】
別の例として、印刷の所要時間に基づく評価に代えて、ネットワークの通信速度を考慮しても構わない。各プリンタとの通信速度は、例えば、ＳＮＭＰにおける応答や「ｐｉｎｇ」コマンドへの応答所要時間などから評価することが可能である。所定以上の通信速度で通信可能なプリンタのみを代替プリンタとして選択することにより、印刷ジョブの速やかな移転、所要時間の短縮を図ることができる。
【００５７】
図６は分散印刷の実行例を示す説明図である。プリンタＰＲＴ１が１００部の印刷ジョブを受け付け、プリンタＰＲＴ２、ＰＲＴ３に分散しつつ、印刷を行う場合のシーケンスを例示した。
【００５８】
図示する通り、プリンタＰＲＴ１が印刷ジョブを受け付けた時点では、部数カウンタは１００部にセットされる。その後、プリンタＰＲＴ１は、自身が印刷ジョブのデータ読み込みおよび印刷を行うとともに、これと同期してプリンタＰＲＴ２、ＰＲＴ３に印刷ジョブを分配する。この時点で、３部の印刷が完了したものとみなされるから、部数カウンタの値は９７部となる。
【００５９】
プリンタＰＲＴ１は、自身での印刷が完了すると、次の印刷および分配を行う。この時点で、部数カウンタは９４部となる。本実施例では、プリンタＰＲＴ１の印刷開始に同期して、分配を行うものとした。従って、プリンタＰＲＴ２、ＰＲＴ３の印刷が完了しても、プリンタＰＲＴ１の印刷が完了するまでは、次の印刷ジョブの分配は行われない。
【００６０】
プリンタＰＲＴ１での印刷が完了すると、プリンタＰＲＴ１は、３度目の印刷および分配を行う。この時点で部数カウンタは９１部となる。仮に、この分配時に、プリンタＰＲＴ３にエラーが生じたとすると、プリンタＰＲＴ３からは印刷完了通知が送信されないから、プリンタＰＲＴ３は、代替プリンタから外される。従って、プリンタＰＲＴ１は、４度目の印刷時には、プリンタＰＲＴ２にのみ印刷ジョブの分配を行う。残り部数を印刷している間に、プリンタＰＲＴ３のエラーが解消した場合には、プリンタＰＲＴ３は再び代替プリンタとして選択可能となり、印刷ジョブが分散可能となる。
【００６１】
印刷ジョブを分配した時点で、印刷が完了したものとみなして、部数カウンタを更新する場合には、印刷ジョブの分配後にエラーが生じると、結果として、そのエラーの分、印刷部数に誤差が生じる可能性がある。この誤差は明確であるため、所要部数の印刷ジョブをユーザが再発行することにより、容易に補充することができる。分散印刷の過程で、ユーザ操作によって印刷処理を一時停止し、部数カウンタをマニュアルで修正可能としてもよい。印刷完了通知を受けてから、部数カウンタを更新するものとしてもよい。また、少なくとも指定された部数は印刷されているように余分に印刷するようにしてもよい。
【００６２】
実施例では、プリンタＰＲＴ１の印刷実行に同期して、印刷ジョブの分配を行うものとした。こうすることにより、プリンタＰＲＴ１が印刷ジョブを読み出しつつ、効率的に分配することができる。また、プリンタＰＲＴ１の印刷処理を阻害することなく、代替プリンタの検索、部数管理を行うことができる。分配のタイミングは、実施例に限定されるものではなく、プリンタＰＲＴ１の印刷実行タイミングとは無関係に、代替プリンタからの印刷完了通知に基づいて、次の分配を行う方法を適用することも可能である。
【００６３】
Ａ４．パケット送信：
図７はパケット送信処理のフローチャートである。複数の代替プリンタにパケット単位で印刷ジョブを分配する場合の処理であり、図４のステップＳ１６に相当する処理である。以下、印刷ジョブの分配元となるプリンタＰＲＴ１がこの処理を実行するものとして説明する。
【００６４】
プリンタＰＲＴ１は、代替プリンタの中から、送信先となるプリンタを特定すると（ステップＳ４１）、そのプリンタに対応するポインタを読み込み、送信パケットを生成する（ステップＳ４２）。図中に、ポインタの概念図を示した。図示する通り、印刷ジョブはヘッダおよび印刷データから構成されており、先頭から順次読み出されて、所定単位のパケットに分割され、送信される。送信済みのデータ位置を示すのがポインタである。図中には、２台の代替プリンタＡ，Ｂに対応するポインタを三角形のマークで模式的に示した。代替プリンタＡ，Ｂとの通信速度に差違があるため、ポインタ位置も各プリンタで相違する。本実施例では、このように代替プリンタに個別に対応づけてポインタを用意した。こうすることにより、通信速度の速いプリンタＢには、遅いプリンタＡに律速されることなく、印刷ジョブの送信を行うことができる。
【００６５】
プリンタＰＲＴ１は、各プリンタにパケットを送信する度に、ポインタを更新する（ステップＳ４３）。以上の処理を、全ての代替プリンタに印刷ジョブの送信が完了するまで実行する（ステップＳ４４）。
【００６６】
上述のパケット送信処理に代えて、代替プリンタの数だけ、印刷ジョブをコピーし、プリンタと印刷ジョブを１対１に対応づけて送信してもよい。メモリ容量に十分な余裕がある場合には、比較的簡単な制御で、効率的な分配を実現することができる。
【００６７】
以上で説明した第１実施例によれば、簡易なシステムで、複数台のプリンタを用いた分散印刷を実現することができる。ユーザが、通常の印刷と同様の手順により、いずれかのプリンタに印刷ジョブを出力するだけで分散印刷が行われるという利便性の高いシステムが実現される。
【００６８】
実施例では、指定された部数の印刷が完了するまで、自身での印刷および代替プリンタへの印刷ジョブの送信を繰り返し行う場合を例示した（図３のステップＳ１５〜Ｓ１７）。代替プリンタが印刷ジョブをスプール可能な場合、各プリンタには、消去の指示があるまで、印刷ジョブを保持しておく機能を持たせても良い。こうすることにより、初回に印刷ジョブを送信した後は、各プリンタにスプールされた印刷ジョブの印刷指示を繰り返し出力するだけで、分散印刷を実現することができる。
【００６９】
Ｂ．第２実施例：
第１実施例では、印刷仕様、印刷ジョブの実行状況を考慮して、代替プリンタを特定する場合を例示した（図５参照）。第２実施例では、更に、各プリンタの残寿命を考慮して、代替プリンタに分配される部数を制御する例を示す。
【００７０】
図８は第２実施例としての代替プリンタ特定処理のフローチャートである。第１実施例の処理（図５）に続く処理である。以下、第１実施例と同様、印刷ジョブを分配するプリンタＰＲＴ１が実行するものとして処理内容を説明する。
【００７１】
プリンタＰＲＴ１は、候補として挙げられた各代替プリンタの残寿命を取得する（ステップＳ３４）。残寿命は、ＳＮＭＰを利用して各プリンタに問い合わせることができる。プリンタの残寿命は、例えば、トナー残量、感光体ドラムの残り寿命（印刷枚数換算）、転写ベルト寿命、残り用紙枚数等の諸量や、これらの組合わせで表されることが多い。以下では、一例として、これらの諸量のうち、プリンタのエンジン寿命に近い「感光体ドラム寿命」を残寿命として説明する。他の諸量を残寿命として用いることも可能である。
【００７２】
次に、プリンタＰＲＴ１は、残寿命に基づき、各プリンタへの分配部数を算出する（ステップＳ３５）。図中に、算出方法を示した。分配部数は、残寿命の比に基づいて決定される。図中の例では、プリンタＰ１の残寿命はＬ１（枚）である。ＳＮＭＰで、印刷済みの枚数、Ｓ１（枚）が取得される場合には、寿命枚数からＳ１（枚）を引くことで残寿命Ｌ１（枚）を特定してもよい。プリンタＰ２、Ｐ３の残寿命は、それぞれＬ２、Ｌ３である。
【００７３】
各プリンタへの、分配部数は、残寿命の比に基づき次の通り決定される。
プリンタＬ１の分配部数＝ＣＮ×Ｌ１／（Ｌ１＋Ｌ２＋Ｌ３）；
プリンタＬ２の分配部数＝ＣＮ×Ｌ２／（Ｌ１＋Ｌ２＋Ｌ３）；
プリンタＬ３の分配部数＝ＣＮ×Ｌ３／（Ｌ１＋Ｌ２＋Ｌ３）；
ＣＮ…総印刷部数；
プリンタＰＲＴ１は、自己の残寿命および各プリンタの残寿命を考慮して、上式により、各プリンタの分配部数を設定する。
【００７４】
プリンタＰＲＴ１は、分配部数を反映して代替プリンタを特定する（ステップＳ３６）。分散印刷において、既に分配済みの部数が、上述の分配部数以上の場合には、代替プリンタから外すものとした。図中に、分配部数の反映例を示した。プリンタＰ１、Ｐ３については、分配済みの部数が分配部数未満であるため、Ａｖａｉｌａｂｌｅと判定される。プリンタＰ２については、分配済みの部数が分配部数に至っているため、Ｎ．Ａ．と判定される。
【００７５】
以上で説明した第２実施例の処理によれば、プリンタの残寿命に応じて分配部数を制御することができ、複数のプリンタに、ほぼ同時期に寿命を迎えさせるなど、寿命が来る時期を制御することができる。この結果、印刷システムを構成するプリンタの更新計画の容易化が図られ、例えば、プリンタのメンテナンス頻度を低くしたり、プリンタ全体を廃却する寸前まで使い切ったりすることができる。
【００７６】
Ｂ１．第２実施例の変形例：
図９は変形例としての分配部数の設定方法を示す説明図である。プリンタを２つのグループに分け、グループごとに寿命を迎える時期をずらすように分配部数を設定する場合を例示した。
【００７７】
図の例では、プリンタＰＡ１〜ＰＡ３の３台については、６月に寿命を迎える計画になっており、プリンタＰＢ１〜ＰＢ３の３台については、その６ヶ月後の１２月に寿命を迎える計画になっているものとする。変形例では、いずれかのグループに対して仮寿命を設定することにより、寿命を迎える時期の相違を調整する。
【００７８】
図の例では、プリンタＰＡ１〜ＰＡ３が寿命を迎える６月の時点で、プリンタＰＢ１〜ＰＢ３は６月分の寿命が残っている必要がある。この残寿命は、例えば、「一月当たりの平均印刷枚数×６月」という計算により、印刷枚数に換算することができる。従って、後に寿命を迎える計画となっているプリンタＰＢ１〜ＰＢ３について、本来の寿命から上述の計算式で特定される寿命調整量を引いた値を仮寿命として設定する。また、この仮寿命を基準として、プリンタＰＢ１〜ＰＢ３の仮の残寿命ＬＢ１〜ＬＢ３をそれぞれ設定する。プリンタＰＡ１〜ＰＡ３については、本来の寿命を基準とした残寿命ＬＡ１〜ＬＡ３を求める。
【００７９】
こうして、各プリンタの残寿命が求まると、第２実施例と同様、残寿命の比に基づいて分配部数を設定することができる。図中に、総印刷部数がＣＮ枚の場合の分配部数をそれぞれ示した。
【００８０】
変形例の処理によれば、一度に全プリンタが寿命を迎えるのを回避することができるため、一部のプリンタを稼働しながら、寿命を迎えたプリンタの更新を行うことができる。変形例では、グループ単位で寿命をずらす場合を例示したが、同様の手法により、プリンタごとに寿命を迎える時期を制御することが可能である。
【００８１】
Ｃ．第３実施例：
図１０は第３実施例としての分散印刷の概要を示す説明図である。第１実施例および第２実施例では、印刷部数を「１部」に修正した印刷ジョブを代替プリンタに分配する場合を例示した。第３実施例では、分配時の印刷部数を複数に設定する場合を例示する。
【００８２】
図示する通り、クライアントＣＬからプリンタＰＲＴ１に対して印刷ジョブＪＯＢａが発信されたものとする。第３実施例の印刷ジョブでは、印刷部数の指定データＣｎの他、分配制御フラグＦｄが添付される。分配制御フラグＦｄとは、他のプリンタへの分配が許可されている場合に「０」、禁止される場合に「１」に設定されるフラグである。
【００８３】
プリンタＰＲＴ１は、受信した印刷ジョブＪＯＢａの分配制御フラグＦｄが「０」であるため、他の代替プリンタＰＲＴ２〜ＰＲＴ４への分配を行う。プリンタＰＲＴ１は、指定された印刷部数「１００部」を小分けにし、「１０部」を指定する印刷ジョブＪＯＢｂを生成する。この印刷ジョブＪＯＢｂについては、分配制御フラグＦｄを「１」に設定し、分配を禁止する。
【００８４】
プリンタＰＲＴ１は、こうして生成された印刷ジョブＪＯＢｂを各プリンタＰＲＴ２〜ＰＲＴ４に分配する。プリンタごとに印刷部数の指定を変えてもよい。プリンタＰＲＴ２〜ＰＲＴ４は、印刷ジョブＪＯＢｂを受け取り、印刷を実行する。分配は禁止されているため、印刷部数の指定が複数であっても、他のプリンタへの分配は行われない。
【００８５】
かかる制御は、分散印刷処理（図４）のステップＳ１２の条件を、「分配制御フラグが０、かつ印刷部数が２部以上」という条件に置換することにより実現される。これらの条件を満足する場合には、ステップＳ１４〜Ｓ１６の処理により代替プリンタへの分配が行われ、その他の場合には、ステップＳ１７にスキップすることにより、分配が禁止されることになる。
【００８６】
第３実施例の処理によれば、それぞれの代替プリンタに複数部の印刷を行わせることができ、印刷ジョブの送信に関するトラフィックを軽減することができる。また、分配制御フラグを用いることにより、分配可否を制御することができる。従って、プリンタＰＲＴ２からプリンタＰＲＴ３への分配など、印刷ジョブの分配を受けたプリンタ間で、無秩序に印刷ジョブの再分配が行われるのを回避することができる。
【００８７】
Ｄ．第４実施例：
図１１は第４実施例における分散印刷処理の概要を示す説明図である。ネットワークで接続された各プリンタ間で連鎖的に印刷ジョブの分配を行う場合を例示した。
【００８８】
プリンタＰＲＴ１は、クライアントから１００部の指定で印刷ジョブを受け取ったとする。プリンタＰＲＴ１は、自身で１０部印刷し、プリンタＰＲＴ２に５０部、プリンタＰＲＴ３に４０部を指定して、印刷ジョブを分配したとする。この際、プリンタＰＲＴ２、ＰＲＴ３に対して、印刷ジョブの分配は禁じない。
【００８９】
プリンタＰＲＴ２、ＰＲＴ３は、複数部数が指定された印刷ジョブを受けたため、更に代替プリンタを検索し、印刷ジョブを分配する。例えば、プリンタＰＲＴ２は、自身で１０部印刷し、プリンタＰＲＴ４、ＰＲＴ５にそれぞれ１０部、プリンタＰＲＴ６に２０部を指定して印刷ジョブを分配したとする。
【００９０】
以下、説明の便宜上、クライアントから印刷ジョブを受信したプリンタＰＲＴ１を「親」または「ルート」、親から印刷ジョブが分配されたプリンタＰＲＴ２、ＰＲＴ３を「子」、子から分配されたプリンタＰＲＴ４〜ＰＲＴ６を「孫」と称する。上述のように階層的に印刷ジョブを分配する場合には、子から親への逆分配（図中の矢印Ｒａ）、子の間での分配（矢印Ｒｂ）など、既に印刷ジョブを受信済みのプリンタに重複して印刷ジョブが分配されることを回避する必要がある。第４実施例では、以下に示す手法により、これらの重複分配を回避する。
【００９１】
図１２は重複分配の回避方法を示す説明図である。各プリンタには、自己が受けた印刷ジョブを実行するプリンタを、上位のプリンタに通知（以下、「分配先通知」と称する）する機能を持たせる。上位のプリンタとは、自己に印刷ジョブを発信したプリンタである。但し、クライアントから印刷ジョブを受けた、親プリンタは、この通知は行わない。
【００９２】
この機能により、例えば、他のプリンタへの分配を行わない孫プリンタＰＲＴ４は、上位プリンタである子プリンタＰＲＴ２に、「プリンタＰＲＴ４」という内容の分配先通知を行う。同様に、孫プリンタＰＲＴ５、ＰＲＴ６も、子プリンタＰＲＴ２に分配先通知を行う。
【００９３】
子プリンタＰＲＴ２は、孫プリンタＰＲＴ４〜ＰＲＴ６の分配先通知を受領し、自分自身を追加して、「ＰＲＴ２、ＰＲＴ４、ＰＲＴ５、ＰＲＴ６」という内容の分配先通知を親プリンタＰＲＴ１に送信する。同様に、子プリンタＰＲＴ３も分配先通知を親プリンタＰＲＴ１に送信する。
【００９４】
このように下位のプリンタからルートに向かって、順次、分配先通知を送信することにより、親プリンタＰＲＴ１は、印刷ジョブを受信した全プリンタを掌握することができる。親プリンタＰＲＴ１は、こうして得られた結果に基づき、分配先リストを生成する。図示する通り、分配先リストには、各プリンタの親子関係に関する情報も保持してもよい。各プリンタは、直系の子から、印刷部数の報告を受けることになる。
【００９５】
第４実施例では、各プリンタは、親プリンタＰＲＴ１の分配先リストを参照し、このリスト中に含まれるプリンタを除外して、分配先となる代替プリンタを特定する。この処理は、例えば、第１実施例で説明した図５のステップＳ３１において、分配先リスト中のプリンタを除いて検索を行うことで実現可能である。
【００９６】
第４実施例によれば、重複分配を回避しつつ、複数部数の印刷ジョブを分配することができる。こうすることにより、親プリンタでの部数管理負担を軽減しつつ、分散印刷を実現することができる。
【００９７】
第４実施例では、親プリンタの分配先リストを各プリンタが参照するものとしたが、親プリンタが分配先リストを各プリンタに配信するようにしてもよい。例えば、分配先リストが更新されるたびに、ブロードキャストまたはマルチキャストで各プリンタに配信する方法を採ることができる。
【００９８】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【図面の簡単な説明】
【図１】第１実施例としての印刷システムの構成を示す説明図である。
【図２】操作パネルの構成例を示す説明図である。
【図３】プリンタの機能ブロックを示す説明図である。
【図４】分散印刷処理のフローチャートである。
【図５】代替プリンタ特定処理のフローチャートである。
【図６】分散印刷の実行例を示す説明図である。
【図７】パケット送信処理のフローチャートである。
【図８】第２実施例としての代替プリンタ特定処理のフローチャートである。
【図９】変形例としての分配部数の設定方法を示す説明図である。
【図１０】第３実施例としての分散印刷の概要を示す説明図である。
【図１１】第４実施例における分散印刷処理の概要を示す説明図である。
【図１２】重複分配の回避方法を示す説明図である。
【符号の説明】
１１…ＴＣＰ／ＩＰ
１２…ＬＰＲ
１３…アプリケーション
２１…ＴＣＰ／ＩＰ
２２…解釈部
２３…ＬＰＲｄ
２４…プリントエンジン
２５…パネル制御部
３１…ＬＰＲｄ
３２…ＬＰＲ
３３…送信部
３４…分散処理部
３５…発信元管理部
３６…部数管理部
３７…代替プリンタ管理部
【図１】
2004181647.tif 000003
【図２】
2004181647.tif 000004
【図３】
2004181647.tif 000005
【図４】
2004181647.tif 000006
【図５】
2004181647.tif 000007
【図６】
2004181647.tif 000008
【図７】
2004181647.tif 000009
【図８】
2004181647.tif 000010
【図９】
2004181647.tif 000011
【図１０】
2004181647.tif 000012
【図１１】
2004181647.tif 000013
【図１２】
2004181647.tif 000014