(57)【特許請求の範囲】
【請求項１】
複数の印刷装置と接続され、前記複数の印刷装置のうち、分散先となる複数の分散先印刷装置に、複数ページに亘る印刷データの印刷を複数部数要求する第１の印刷ジョブを分散する印刷制御装置であって、
前記印刷制御装置は、前記複数の印刷装置の１つに内蔵され、
前記第１の印刷ジョブを受信する受信部と、
前記複数の印刷装置の中から、前記印刷制御装置が内蔵されている印刷装置と同一の機種であって、かつ、印刷が可能な状態にある印刷装置を前記分散先印刷装置として特定する分散先特定部と、
受信された前記第１の印刷ジョブにより要求される印刷に要する所要時間を、複数ページに亘る印刷を、ページ単位で各前記分散先印刷装置に分散する第１の方法と、複数部数の印刷を、部数単位で各前記分散先印刷装置に分散する第２の方法とを含む、複数種類の分散方法について、それぞれ評価する評価部と、
前記評価の結果に基づいて、前記複数種類の分散方法の中から、前記所要時間の短い分散方法を選択する選択部と、
前記選択された分散方法を用いて、受信された前記第１の印刷ジョブから複数の第２の印刷ジョブを作成し、前記複数の第２の印刷ジョブを前記分散先特定部が特定した前記各分散先印刷装置に分散させる分散部と、を備え、
前記評価部は、前記複数の分散先印刷装置にそれぞれ割り当てられる印刷枚数のうち、最大の印刷枚数を用いて前記評価を行い、
前記選択部は、前記複数種類の分散方法のうち、前記最大の印刷枚数が最小となる分散方法を選択する、印刷制御装置。
【請求項２】
請求項１に記載の印刷制御装置において、
前記選択部は、さらに、
前記複数種類の分散方法のうち、優先される分散方法を特定するための優先情報を取得し、前記評価の結果と前記優先情報とに基づいて、前記分散方法を選択する印刷制御装置。
【請求項３】
請求項２に記載の印刷制御装置において、
前記選択部は、前記評価が等しい分散方法が２以上ある場合には、前記２以上の分散方法のうち、前記優先される分散方法を選択する印刷制御装置。
【請求項４】
請求項２に記載の印刷制御装置において、
前記優先情報は、ユーザの指示に応じて設定される印刷制御装置。
【請求項５】
請求項２ないし請求項４のいずれかに記載の印刷制御装置において、
前記優先情報は、前記第１の印刷ジョブに含まれている印刷制御装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の印刷制御装置を内蔵する印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷ジョブを２以上の印刷装置に分散して、分散印刷を行う技術に関する。
【背景技術】
【０００２】
複数の印刷装置にネットワークを介して接続された印刷制御装置が、複数の印刷装置に印刷ジョブを分散する分散印刷システムが知られている（例えば、特許文献１）。その従来技術では、１つの印刷ジョブにおいて印刷を要求される印刷を、複数の印刷装置に配分し、並行して印刷を行うことにより、短時間で複数部数の印刷を完了することができる。
【０００３】
【特許文献１】特開２００２−２６８８５０号公報
【特許文献２】特開２００１−１００９６３号公報
【特許文献３】特開平１１−１１０１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した分散印刷において、印刷ジョブが要求する印刷に応じて、さらに効率的に、短時間で分散印刷を実行することが望まれている。
【０００５】
本発明は、上記課題を解決するためになされたものであり、分散対象である印刷ジョブに応じて、より効率的な分散印刷を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一部を解決するために本発明の第１の態様は、複数の印刷装置と接続され、前記複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散する印刷制御装置を提供する。本態様に係る印刷制御装置は、前記印刷ジョブを受信する受信部と、受信された前記印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価する評価部と、前記評価の結果に基づいて、複数種類の分散方法の中から、前記所要時間の短い分散方法を選択する選択部と、前記選択された分散方法を用いて、受信された前記印刷ジョブの分散を実行する分散部と、を備えることを特徴とする。
【０００７】
本態様によれば、複数種類の分散方法の中から、分散される印刷ジョブごとに、所要時間の短い分散方法を選択するので、より効率的な分散印刷を実現することができる。
【０００８】
本態様に係る印刷制御装置において、前記複数種類の分散方法は、複数ページに亘る印刷を、ページ単位で各分散先印刷装置に分散する第１の方法と、複数部数の印刷を、部数単位で各分散先印刷装置に分散する第２の方法とを含んでも良い。こうすれば、印刷制御装置は、少なくとも部数単位の分散方法とページ単位の分散方法を含む複数種類の分散方法の中から、所要時間の短い分散方法を選択する。この結果、効率的な分散印刷を実現することができる。
【０００９】
本態様に係る印刷制御装置において、前記評価は、前記複数の分散先印刷装置にそれぞれ割り当てられる印刷枚数のうち、最大の印刷枚数に基づいて実行されても良い。また、前記選択された分散方法は、前記複数種類の分散方法のうち、前記最大の印刷枚数が最小となる分散方法であっても良い。こうすれば、分散印刷に要する所要時間を、容易に評価することができる。
【００１０】
本態様に係る印刷制御装置において、前記選択部は、さらに、前記複数種類の分散方法のうち、優先される分散方法を特定するための優先情報を取得し、前記評価の結果と前記優先情報とに基づいて、前記分散方法を選択しても良い。かかる場合において、前記選択部は、前記評価が等しい分散方法が２以上ある場合には、前記２以上の分散方法のうち、前記優先される分散方法を選択しても良い。こうすれば、所要時間の評価のみでは一つの分散方法を選択できない場合であっても、好ましい一つの分散方法を選択することができる。
【００１１】
本態様に係る印刷制御装置において、前記優先情報は、ユーザの指示に応じて設定されても良い。こうすれば、ユーザの意図を反映して、一つの分散方法を選択することができる。
【００１２】
本態様に係る印刷制御装置において、前記優先情報は、前記印刷ジョブに含まれていても良い。こうすれば、分散印刷制御装置は、印刷ジョブごとに容易に優先情報を取得できる。
【００１３】
本態様に係る印刷制御装置において、前記評価は、さらに、各分散先印刷装置の印刷速度に関連する特性を考慮して実行されても良い。こうすれば、印刷に要する所要時間の評価精度を向上させることができる。この結果、効率的な分散方法の選択の正確性を向上させることができる。
【００１４】
本態様に係る印刷制御装置は、前記複数の印刷装置の少なくとも１つに内蔵されても良い。こうすれば、専用サーバなどを用いることなく、簡易な構成にて上述の分散印刷を実現することができる。
【００１５】
なお、本発明は、上記した印刷制御装置としての構成の他、ネットワークに接続される印刷装置、あるいは、複数の印刷装置を備える印刷システムとしても構成することができる。また、そのような物の発明としての態様に限ることなく、複数の分散先印刷装置に印刷ジョブを分散する分散方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係る印刷制御装置および印刷装置について、図面を参照しつつ、実施例に基づいて説明する。
【００１７】
Ａ．実施例：
・分散印刷システムの構成：
図１および図２を参照して、本発明の実施例における分散印刷システムの構成について説明する。図１は、本発明の実施例における分散印刷システムの概略構成を示す説明図である。図２は、実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図である。
【００１８】
この分散印刷システムは、図１に示すように、クライアントとしての計算機（以下、単にクライアントという。）ＣＬと、複数のプリンタＰＲＴ１〜ＰＲＴ４を含む。クライアントＣＬと、プリンタＰＲＴ１〜ＰＲＴ４は、ローカルエリアネットワーク（ＬＡＮ）を介して互いに接続されている。各機器間の通信は、ＴＣＰ／ＩＰプロトコルを用いて行われるため、各機器にはそれぞれＩＰアドレスが割り振られる。説明の便宜上、クライアントＣＬには「ＩＰｃ」、プリンタＰＲＴ１〜ＰＲＴ４には、それぞれ「ＩＰ１」〜「ＩＰ４」なるＩＰアドレスが設定されているものとする。なお、厳密に言えば、これらＩＰアドレスは、クライアントＣＬ、プリンタＰＲＴ１〜ＰＲＴ４自体に設定されているわけではなく、ＴＣＰ／ＩＰのネットワークから見た場合のノード（すなわち、具体的には、ＴＣＰ／ＩＰ通信を行うためにネットワークに接続されているネットワークボードなど）に設定されている。
【００１９】
これらプリンタのうち、プリンタＰＲＴ１には、カスタムネットワークボード１００がそれぞれ取り付けられている。このカスタムネットワークボード１００は、クライアントＣＬから受信された印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における印刷制御装置に相当する。プリンタＰＲＴ２〜ＰＲＴ４には、それぞれ、標準のネットワークボード２００が取り付けられている。
【００２０】
図１において、実線で示す矢印は、クライアントＣＬからプリンタＰＲＴ１のカスタムネットワークボード１００に印刷ジョブが送信され、プリンタＰＲＴ１のカスタムネットワークボード１００からプリンタＰＲＴ１〜ＰＲＴ４にその印刷ジョブが分散される流れを示している。このように、プリンタＰＲＴ１〜ＰＲＴ４はいずれも、プリンタＰＲＴ１のカスタムネットワークボード１００から分散印刷の分散先とされ得る。以下において、各プリンタＰＲＴ１〜ＰＲＴ４を区別する必要のない場合には、符号の末尾の数字を省略しプリンタＰＲＴともいう。また、プリンタＰＲＴ１〜ＰＲＴ４のうち、分散先とされたプリンタを分散先プリンタともいう。
【００２１】
プリンタＰＲＴ１は、図２に示すように、プリンタ本体ＰＲＢ１と、上述したカスタムネットワークボード１００とを備えている。プリンタ本体ＰＲＢ１は、主として、プリンタエンジン９０と、プリンタコントローラ８０とを備えている。プリンタエンジン９０は、実際に印刷を行う。プリンタコントローラ８０は、後述する印刷ジョブ受信部６０から供給される印刷ジョブを受け取り、その印刷ジョブを解釈してプリンタエンジン９０を制御して印刷を実行させる。プリンタコントローラ８０は、供給された印刷ジョブを始めとするデータを一時的に格納するプリンタバッファ８２を備えている。また、プリンタコントローラ８０は、プリンタ本体ＰＲＢ１に関する種々の情報を収集してＭＩＢ(Management Information Base)と呼ばれる形式で保存したファイル（以下、ＭＩＢファイルという。）８１を格納している。ＭＩＢファイル８１には、種々の情報がオブジェクト単位で保存され、オブジェクトごとに、オブジェクトＩＤ（以下、ＯＩＤという。）が割り振られている。
【００２２】
カスタムネットワークボード１００は、主として、中央演算装置（ＣＰＵ）２０と、メモリ３０とを備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略している。
【００２３】
ＣＰＵ２０によって実現される機能ブロックには、ＴＣＰ／ＩＰ部１０と、分散制御部５０と、印刷ジョブ受信部６０と、ＳＮＭＰマネージャ４０と、ＳＮＭＰエージェント７０が含まれる。
【００２４】
ＴＣＰ／ＩＰ部１０は、ＴＣＰ／ＩＰプロトコルを解釈して、主としてネットワークを介して外部との通信を行う。ＴＣＰ／ＩＰプロトコルにおいてトランスポート層の処理を行うプロトコルとして、ＴＣＰ（Transmission Control Protocol）とＵＤＰ（User Datagram Protocol）がある。ＴＣＰは、信頼性の高いコネクション型の通信を実現するプロトコルである。一方、ＵＤＰは、高速なコネクションレス型の通信を実現するプロトコルである。ＴＣＰ／ＩＰ部１０は、後述する印刷ジョブの通信を、ＴＣＰを用いて行うと共に、後述するＳＮＭＰマネージャ４０とＳＮＭＰエージェント７０間の通信を、ＵＤＰを用いて行う。
【００２５】
分散制御部５０は、分散印刷が指定された印刷ジョブ（以下、第１の印刷ジョブともいう。）を受信して、分散先プリンタに印刷ジョブを分散する。分散制御部５０は、後述するように、２種類の分散方法を用いて、印刷ジョブを分散することができる。分散制御部５０は、サブ機能ブロックとして分散ジョブ受信部５１と、分散先特定部５２と、分散方法評価部５３と、分散方法選択部５４と、ジョブ分散部５５を備えている。分散ジョブ受信部５１は、クライアントＣＬなどの外部機器からネットワークを介して、第１の印刷ジョブを受信する。分散先特定部５２は、カスタムネットワークボード１００と接続されている複数のプリンタの中から第１の印刷ジョブの分散先となる複数の分散先プリンタを特定する。分散方法評価部５３は、第１の印刷ジョブにより要求される印刷に要する所要時間に関する評価を、２種類の分散方法について、それぞれ実行する。評価の具体的な内容については後述する。分散方法選択部５４は、分散方法評価部５３による評価結果に基づいて、２種類の分散方法の中から、上述の所要時間の短い分散方法を選択する。ジョブ分散部５５は、分散方法選択部５４により選択された分散方法を用いて、第１の印刷ジョブを分散する。第１の印刷ジョブの分散は、各分散先プリンタに割り当てられた印刷を要求する印刷ジョブ（以下、第２の印刷ジョブともいう。）を、各分散先プリンタに対して送信することによって実行される。以上のような分散制御部５０が実行する処理については、さらに後述する。
【００２６】
印刷ジョブ受信部６０は、分散印刷が指定されていない通常の印刷ジョブ、例えば、上述した第２の印刷ジョブを受信してプリンタコントローラ８０に供給する。ＳＮＭＰマネージャ４０は、ＳＮＭＰ（Simple Network Management Protocol）と呼ばれる通信プロトコルを用いて、各プリンタＰＲＴ１〜ＰＲＴ４が備えるＳＮＭＰエージェント７０に問い合わせて、各種の情報を取得する。ＳＮＭＰマネージャ４０は、上述したＯＩＤを指定することにより取得すべき情報を特定して問い合わせを行う。
【００２７】
ＳＮＭＰエージェント７０は、ＳＮＭＰマネージャ４０の問い合わせに応じて、上述したＭＩＢファイル８１から所望の情報を取得し、ＳＮＭＰマネージャ４０に対して、その情報を送信する。
【００２８】
一方、メモリ３０は、上述の各機能を実現するためのプログラムを格納する他、ＯＩＤ格納部３２、分散先指定ファイル格納部３４、バッファ３６と、優先情報格納部３８を備えている。ＯＩＤ格納部３２には、ＳＮＭＰマネージャ４０が上述した問い合わせを行う際に指定するＯＩＤが格納されている。ＯＩＤは、問い合わせ可能な情報の種類と関連付けられて格納されており、ＳＮＭＰマネージャ４０は、ＯＩＤ格納部３２を参照して指定すべきＯＩＤを取得することができる。分散先指定ファイル格納部３４は、分散先指定ファイルを格納する。この分散先指定ファイルは、ＬＡＮに接続されている複数のプリンタの中で、分散印刷における分散先として使用したいプリンタを、前もって、指定しておきたい場合に用いられる。従って、前もって指定する必要がない場合には、分散先指定ファイル格納部３４には何も格納されなくても良い。バッファ３６は、受信した第１の印刷ジョブを始めとするデータを、ＣＰＵ２０が一時的に格納するための格納部である。優先情報格納部３８は、２種類の分散方法のうち、優先される分散方法を特定するための優先情報を格納するための領域である。優先情報については後述する。
【００２９】
プリンタＰＲＴ２〜プリンタＰＲＴ４は、同一の構成を有しているので、代表してプリンタＰＲＴ２の構成について説明する。プリンタＰＲＴ２は、図２に示すように、プリンタ本体ＰＲＢ２および上述したネットワークボード２００を備えている。プリンタ本体ＰＲＢ２の構成は、上述したプリンタＰＲＴ１のプリンタ本体ＰＲＢ１と同一であるので、各構成要素にプリンタＰＲＴ１のプリンタ本体ＰＲＢ１の構成要素と同一の符号を付しその説明を省略する。ネットワークボード２００は、上述したカスタムネットワークボード１００が有する機能のうち、分散印刷制御機能を除く機能を有している。すなわち、ネットワークボード２００は、ＴＣＰ／ＩＰ部１０と、印刷ジョブ受信部６０と、ＳＮＭＰエージェント７０とを有している。ネットワークボード２００の各構成要素は、カスタムネットワークボード１００の同名の構成要素と同一であるので、同一の符号を付しその説明を省略する。
【００３０】
上記説明から解るように、プリンタＰＲＴ１に搭載されたカスタムネットワークボード１００は、プリンタＰＲＴ２〜プリンタＰＲＴ４に搭載されたネットワークボード２００の備える機能を全て備えている。そして、カスタムネットワークボード１００の分散制御部５０からみて、プリンタＰＲＴ１〜プリンタＰＲＴ４は、全て等価であり、後述する分散印刷処理において全て分散先プリンタとして指定され得る。分散制御部５０は、分散制御部５０自体が内蔵されているプリンタＰＲＴ１についても、他のプリンタについても区別なく扱うことができる。
【００３１】
クライアントＣＬは、図２に示すように、アプリケーション１１の他、機能ブロックとして、ＴＣＰ／ＩＰ部１３と印刷ジョブ送信部１２とを有している。ＴＣＰ／ＩＰ部１３は、上述したカスタムネットワークボード１００のＴＣＰ／ＩＰ部１０と同様の機能および構成を有している。印刷ジョブ送信部１２は、アプリケーション１１の印刷要求に応じて印刷ジョブを生成し、生成された印刷ジョブをＴＣＰ／ＩＰ部１３を介してプリンタＰＲＴに送信する。なお、分散印刷が指定された第１の印刷ジョブは、カスタムネットワークボード１００を備えるプリンタＰＲＴ１に対してのみ送信され、分散印刷が指定されていない通常の印刷ジョブは、プリンタＰＲＴ１〜ＰＲＴ４のいずれに対しても送信されることができる。
【００３２】
・印刷ジョブについて：
分散印刷処理を説明する前に、図３を参照して、本実施例に用いられる印刷ジョブについて説明する。図３は、印刷ジョブの構成を説明する概念図である。図３（ａ）は、印刷ジョブの通信に用いられる通信データの構成を示している。図３（ｂ）は、印刷ジョブのデータ構造を示している。
【００３３】
印刷ジョブは、ＴＣＰ／ＩＰプロトコルに従った形式の通信データとして送信される。この通信データは、図３（ａ）に示すように、ヘッダ４００と、データ部４５０とに分かれている。このうち、ヘッダ４００には、その通信データの送信元の機器のＩＰアドレスである送信元ＩＰアドレスＳＡと、その機器内における送信元のソフトウエアを特定するポート番号である送信元ポート番号ＳＰとを含む。ヘッダ４００は、さらに、その通信データの送信先の機器のＩＰアドレスである送信先ＩＰアドレスＤＡと、その機器内における送信先のソフトウエアを特定するポート番号である送信先ポート番号ＤＰとを含む。送信元の機器のソフトウエアから発信された通信データは、送信先ＩＰアドレスＤＡに従って、そのＩＰアドレスを有する機器に送信され、さらに、受信したその機器内では、送信先ポート番号ＤＰに従って、その番号のポートで待機しているソフトウエアに渡される。データ部４５０は、通信の対象となるデータが格納される部分であり、本実施例では、印刷ジョブが格納される。
【００３４】
例えば、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定された第１の印刷ジョブを送信する場合、通信データのヘッダ４００には、上述した送信先ＩＰアドレスＤＡとしてプリンタＰＲＴ１のＩＰアドレスである「ＩＰ１」が、送信先ポート番号ＤＰとして「５９１００」がそれぞれ記載される。「５９１００」は、第１の印刷ジョブを受信する分散制御部５０が待機しているポート番号である。また、ヘッダ４００には、送信元ＩＰアドレスＳＡとして「ＩＰｃ」が、送信元ポート番号ＳＰとして印刷ジョブ送信部１２が待機しているポート番号（具体的な数字は省略）が記載される。一方、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定されていない通常の印刷ジョブを送信する場合、送信先ポート番号ＤＰとして上述した「５９１００」に代えて、「９１００」が記載される。「９１００」は、通常の印刷ジョブの受信を行う印刷ジョブ受信部６０が待機しているポート番号である。すなわち、本実施例では、印刷ジョブ送信部１２は、ユーザの要求に応じて印刷ジョブの送信時に指定される送信先ポート番号ＤＰの値を切り換えることにより、分散印刷を指定するか、指定しないかを選択することができる。言い換えれば、分散印刷が指定された第１の印刷ジョブは、ポート番号「５９１００」で待機する分散制御部５０に受信される印刷ジョブのことを指し、分散印刷が指定されていない通常の印刷ジョブは、ポート番号「９１００」で待機する印刷ジョブ受信部６０に渡される印刷ジョブを指している。印刷ジョブの内容自体は、基本的に第１の印刷ジョブと通常の印刷ジョブとの間に違いはない。
【００３５】
図３（ｂ）を参照して、印刷ジョブのデータ構造について説明する。印刷ジョブＪＢは、図３（ｂ）に示すように、ジョブ制御言語部５０１と、ページ記述言語部５０２を有している。ページ記述言語部５０２は、印刷内容を表す印刷データが所定のページ記述言語を用いて記述されている部分である。ページ記述言語としては、例えば、ESC/PageやPostscriptなどが用いられ得る。ジョブ制御言語部５０１には、ページ記述言語部５０２に記述された印刷データを印刷するために必要な属性が記述されている。ジョブ制御言語部５０１は、所定のジョブ制御言語、本実施例ではＥＪＬ（Epson Job Language）を用いて記述されている。
【００３６】
図３（ｂ）の下側は、ジョブ制御言語部５０１に記述された内容の具体例を示している。ジョブ制御言語部５０１は、上述した属性として、印刷用紙サイズ、ページ記述言語部５０２の記述に使用されているページ記述言語の種別等と共に、総ページ数情報ＴＰ、印刷部数情報ＰＣを含んでいる。総ページ数情報ＴＰは、ページ記述言語部５０２に含まれる印刷データの総ページ数Ｑを示している。図３（ｂ）に示す例では、総ページ数情報ＴＰとして、総ページ数Ｑは８ページであることが記述されている。印刷部数情報ＰＣは、印刷されるべき印刷部数ＱＴを示している。図３（ｂ）に示す例では、印刷部数情報ＰＣとして、印刷部数ＱＴは４部であることが記述されている。
【００３７】
ジョブ制御言語部５０１には、さらに、ページ特定情報ＰＥを含めることができる。ページ特定情報ＰＥは、ページ記述言語部５０２に含まれる印刷データの全てのページの中から印刷すべきページを特定する情報である。印刷ジョブのジョブ制御言語部５０１にページ特定情報ＰＥが含まれている場合、印刷ジョブを受信したプリンタＰＲＴは、ページ記述言語部５０２に含まれる印刷データのうちページ特定情報ＰＥによって特定されたページのみを選択的に印刷する。ページ特定情報ＰＥは、開始ページ番号Ｓ、および、終了ページ番号Ｅを含んでいる。これによって、開始ページ番号Ｓから終了ページ番号Ｅまでの、１または連続する複数のページが特定される。図３（ｂ）に示す例では、開始ページ番号（STARTPAGE）として「５」が、終了ページ番号（ENDPAGE）として「７」が記述されている。したがって、図３（ｂ）に示す印刷ジョブは、１〜８ページまでの８ページ分の印刷データを含んでいるが、そのうち５ページから７ページまでの３ページの印刷を要求していることになる。一方、ジョブ制御言語部５０１にページ特定情報ＰＥが含まれていない印刷ジョブは、ページ記述言語部５０２に含まれる印刷データの全てのページの印刷を要求しているものと解釈される。
【００３８】
・分散方法：
図４および図５を参照して、本実施例における分散制御部５０が第１の印刷ジョブＪＢ１を分散する際に用いる２種類の分散方法について説明する。図４は、ページ分散の概要を示す説明図である。図５は、部数分散の概要を示す説明図である。
【００３９】
上述した２種類の分散方法は、ページ分散と、部数分散である。ページ分散は、複数ページに亘る印刷をページ単位で分散先プリンタに分散する方法である。部数分散は、複数部数の印刷を部数単位で分散先プリンタに分散する方法である。ページ分散は、第１の印刷ジョブＪＢ１が、複数ページに亘る印刷データの印刷を１部以上要求する場合に用いることができる。一方、部数分散は、第１の印刷ジョブＪＢ１が、１ページ以上の印刷データの印刷を複数部数要求する場合に用いることができる。従って、第１の印刷ジョブＪＢ１が、複数ページに亘る印刷データの印刷を、複数部数要求する場合には、ページ分散と部数分散のどちらの方法も用いることができる。かかる場合にどちらの方法を選択するかについては後述することとし、まず、ページ分散と部数分散について具体例を挙げて説明する。
【００４０】
本具体例では、図４および図５に示すように、クライアントＣＬからプリンタＰＲＴ１に分散印刷が指定された第１の印刷ジョブＪＢ１が送信される。そして、第１の印刷ジョブＪＢ１を受信したプリンタＰＲＴ１の分散制御部５０が、第１の印刷ジョブにより要求される印刷を、分散先プリンタとしての４つのプリンタＰＲＴ１〜ＰＲＴ４に分散する。
【００４１】
クライアントＣＬからプリンタＰＲＴ１に送信される第１の印刷ジョブＪＢ１は、送信先ＩＰアドレスＤＡとして「ＩＰ１」、送信先ポート番号ＤＰとして「５９１００」が記述されたヘッダ４００を有する通信データとして送信される。実際には、第１の印刷ジョブＪＢ１は、複数のＴＣＰパケットに分割され、分割されたパケットごとにヘッダ４００を付加されて、送信される。しかしながら、図４では、図を見やすくするため、第１の印刷ジョブＪＢ１全体に、１つのヘッダ４００が付加された図を示している。このような図示は、後述する第２の印刷ジョブＪＢ２１〜ＪＢ２４についても同様である。
【００４２】
第１の印刷ジョブＪＢ１のジョブ制御言語部５０１には、上述した総ページ数情報ＴＰおよび印刷部数情報ＰＣが含まれる。図４および図５に示す例では、総ページ数Ｑは８であること、および印刷部数ＱＴは４であることが記述されている。すなわち、第１の印刷ジョブＪＢ１は、一部あたり８ページに亘る文書を４部印刷することを要求している。一方、第１の印刷ジョブＪＢ１として送信されてくる印刷ジョブに、印刷する必要のない印刷データを含める必要は通常はない。従って、第１の印刷ジョブＪＢ１のジョブ制御言語部５０１には、ページ特定情報ＰＥが含まれていないか、あるいは、総ページ数情報ＴＰに記述されたページ数の全てを特定するページ特定情報ＰＥが含まれているのが通常である。本実施例における第１の印刷ジョブＪＢ１には、図４および図５に示すように、ページ特定情報ＰＥは含まれていないものとする。
【００４３】
第１の印刷ジョブＪＢ１のページ記述言語部５０２には、総ページ数Ｑに対応する印刷データがページ記述言語により記述されている。図４に示す例では、８ページ分の印刷データＤＴが、ページ記述言語部５０２に記述されている。
【００４４】
このような第１の印刷ジョブＪＢ１をページ分散により分散する場合について、まず、説明する（図４）。ページ分散が用いられる場合は、分散制御部５０のジョブ分散部５５は、各分散先プリンタに割り当てられる割当ページを決定する。具体的には、ジョブ分散部５５は、分散先プリンタごとに、割当ページの開始ページ番号Ｓと終了ページ番号Ｅとを決定する。図４に示す例では、
１台目の分散先プリンタ（プリンタＰＲＴ１）：Ｓ＝１、Ｅ＝２；
２台目の分散先プリンタ（プリンタＰＲＴ２）：Ｓ＝３、Ｅ＝４；
３台目の分散先プリンタ（プリンタＰＲＴ３）：Ｓ＝５、Ｅ＝６；
４台目の分散先プリンタ（プリンタＰＲＴ４）：Ｓ＝７、Ｅ＝８；
というように、各分散先プリンタに２ページずつ割当てている。
【００４５】
ジョブ分散部５５は、第１の印刷ジョブＪＢ１に決定された割当ページを特定するためのページ特定情報ＰＥを追加することによって、第２の印刷ジョブＪＢ２１〜ＪＢ２４を作成する。そして、第２の印刷ジョブＪＢ２１〜ＪＢ２４に記述されている印刷部数情報ＰＣは、第１の印刷ジョブＪＢ１から変更されていないので、各第２の印刷ジョブの印刷部数ＱＴは、それぞれ４部である。ジョブ分散部５５は、作成された第２の印刷ジョブＪＢ２１〜ＪＢ２４を各分散先プリンタに送信することによって、第１の印刷ジョブＪＢ１の分散を行う。
【００４６】
なお、図４に示すように、第２の印刷ジョブＪＢ２１〜ＪＢ２４は、通常の印刷ジョブであるので、第２の印刷ジョブＪＢ２１〜ＪＢ２４を送信する通信データのヘッダ４００には、送信先ポート番号ＤＰとして「９１００」が記述される。
【００４７】
第２の印刷ジョブＪＢ２１〜ＪＢ２４を受信したプリンタＰＲＴは、割り当てられたページを、指定された部数ずつ印刷する。例えば、第２の印刷ジョブＪＢ２１を受信したプリンタＰＲＴ１は、１ページと２ページを４部ずつ、合計８枚の印刷を実行する。
【００４８】
次に、第１の印刷ジョブＪＢ１を部数分散により分散する場合について、説明する（図５）。部数分散が用いられる場合は、分散制御部５０のジョブ分散部５５は、各分散先プリンタに割り当てられる割当部数を決定する。図５に示す例では、１台目〜４台目の各分散先プリンタ（プリンタＰＲＴ１〜ＰＲＴ４）に、１部ずつ割り当てている。
【００４９】
ジョブ分散部５５は、第１の印刷ジョブＪＢ１の印刷部数情報ＰＣに記述されている印刷部数ＱＴの値を、割当部数１に変更することによって、第２の印刷ジョブＪＢ２１〜ＪＢ２４を作成する。第２の印刷ジョブＪＢ２１〜ＪＢ２４にはページ特定情報ＰＥは、追加されていないので、第２の印刷ジョブＪＢ２１〜ＪＢ２４により印刷を要求されるページは、全８ページである。ジョブ分散部５５は、ページ分散の場合と同様に、作成された第２の印刷ジョブＪＢ２１〜ＪＢ２４を各分散先プリンタに送信することによって、第１の印刷ジョブＪＢ１の分散を行う。
【００５０】
第２の印刷ジョブＪＢ２１〜ＪＢ２４を受信したプリンタＰＲＴは、全ページを、指定された部数だけ印刷する。図５の例では、各プリンタＰＲＴ１〜ＰＲＴは、８ページの文書を１部ずつ印刷する。
【００５１】
以上のように、ページ分散と部数分散のいずれの分散方法を用いても、システム全体としては、第１の印刷ジョブＪＢ１が要求するとおり、８ページの文書が４部印刷される。
【００５２】
・割当のアルゴリズム
図６および図７を参照して、ページ分散において割当ページ数を決定するアルゴリズム、および、部数分散において割当部数を決定するアルゴリズムについて説明する。図６は、ページ分散において分散先プリンタに割り当てられるページ数の一例を示すテーブルである。図７は、部数分散において分散先プリンタに割り当てられる部数の一例を示すテーブルである。
【００５３】
ここで、ページ分散における割当ページ数は、以下の２つの考え方に基づいて決定される。
１．各分散先プリンタに、できるだけ均等なページ数を割り当てる。
２．完全に均等に割り当てられない場合、すなわち、印刷が要求される総ページ数Ｑが、分散先プリンタの数Ｍで割り切れない場合には、端数は、ページ順の早いページ、すなわち、ページ番号が小さいページを割り当てられる分散先プリンタから順に１ページずつ割り当てる。
【００５４】
図６には、４台の分散先プリンタに分散される場合に、上述した考え方に基づいて求められた割当ページの数が示されている。分散先プリンタ番号ｍが小さい分散先プリンタほど、ページ順の早いページが割り当てられるものとする。図６に示すように、印刷が要求される総ページ数Ｑが、分散先プリンタの数Ｍで割り切れる場合には、各分散先プリンタにそれぞれ同じページ数が割り当てられる。例えば、総ページ数Ｑ＝１２であり、分散先プリンタの数が４である場合には、各分散先プリンタに３ページずつ割り当てられる。一方、総ページ数Ｑが、分散先プリンタの数Ｍで割り切れない場合には、端数は、ページ順の早いページが割り当てられる分散先プリンタに、１ページずつ割り当てられる。例えば、総ページ数Ｑ＝１４であり、分散先プリンタの数が４である場合には、総ページ数を分散先プリンタの数４で割った余りである２ページは、ページ順の早いページが割り当てられる２台の分散先プリンタに、それぞれ１ページずつ割り当てられる。
【００５５】
一方、部数分散における割当部数は、以下の２つの考え方に基づいて決定される。
１．各分散先プリンタに、できるだけ均等な部数を割り当てる。
２．完全に均等に割り当てられない場合、すなわち、印刷が要求される印刷部数ＱＴが、分散先プリンタの数Ｍで割り切れない場合には、端数は、いずれかの分散先プリンタに１部ずつ割り当てる。
【００５６】
図７には、４台の分散先プリンタに分散される場合に、上述した考え方に基づいて求められた割当ページの数が示されている。端数は、一例として、分散先プリンタ番号ｍが小さい分散先プリンタに優先して割り当てるものとしている。例えば、印刷が要求される印刷部数ＱＴが、分散先プリンタの数Ｍで割り切れる場合には、各分散先プリンタにそれぞれ同じ部数が割り当てられる。一方、印刷部数ＱＴが、分散先プリンタの数Ｍで割り切れない場合には、端数は、分散先プリンタ番号ｍが小さい２台の分散先プリンタに、１部ずつ割り当てられる。
【００５７】
以下、上述したアルゴリズムを実現するための具体的な計算式について、説明する。まず、ページ分散における割当ページを決定するための式について説明する。印刷を要求される総ページ数＝Ｑ、分散先プリンタの数＝Ｍ、ページ順が早いページが割り当てられる順番に付された分散先プリンタ番号＝ｍとする。そうすると、ｍ番の分散先プリンタの割当ページのページ数Ｐ(ｍ)は、以下の式（１）によって、算出される。
【００５８】
【数１】
0004650158.tif 000002
【００５９】
ここで、式（１）における関数Ｉｎｔ（ａ）は、数値ａの整数部分を取り出す関数である。例えば、Ｉｎｔ（３．２３）＝３である。この数式に、数値Ｑ、Ｍ、ｍを代入すると、図７のテーブルに示す数値を算出することができる。Ｐ（ｍ）を用いて、ｍ番の分散先プリンタの割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）は、それぞれ以下の式（２）（３）によって算出される。
【００６０】
【数２】
0004650158.tif 000003
【００６１】
次に、部数分散における割当部数を決定するための式について説明する。印刷を要求される印刷部数＝ＱＴ、分散先プリンタの数＝Ｍ、端数が割当てられる順番に付された分散先プリンタ番号＝ｍとする。ｍ番の分散先プリンタの割当部数Ｃ(ｍ)は、上記の式（１）の総ページ数Ｑを、印刷部数ＱＴで置き換えた式（４）によって、算出される。
【００６２】
【数３】
0004650158.tif 000004
【００６３】
・分散印刷処理：
以上説明した２種類の分散方法を踏まえて、分散制御部５０が実行する分散印刷処理について、図８〜図１３を参照して説明する。図８は、分散印刷処理の処理ルーチンを示すフローチャートである。図９は、分散先プリンタ特定処理の処理ルーチンを示すフローチャートである。図１０は、分散方法選択処理の処理ルーチンを示すフローチャートである。図１１は、優先情報の一例を示す説明図である。
【００６４】
分散印刷処理は、カスタムネットワークボード１００のＣＰＵ２０が備える分散制御部５０によって実行される処理である。カスタムネットワークボード１００が搭載されたプリンタＰＲＴ１が、印刷ジョブを受け付ける状態にあるとき、分散制御部５０の分散ジョブ受信部５１は、上述した第１の印刷ジョブＪＢ１の着信を待つ（ステップＳ１０２）。クライアントＣＬから第１の印刷ジョブＪＢ１、すなわち、送信先ポート番号ＤＰが「５９１００」である印刷ジョブがプリンタＰＲＴ１に着信すると（ステップＳ１０２：ＹＥＳ）、分散ジョブ受信部５１は、ＴＣＰ／ＩＰ部１０を介して、第１の印刷ジョブＪＢ１を受信する。分散ジョブ受信部５１は、まず、ジョブ制御言語部５０１を含む印刷ジョブの先頭部分を受信する（ステップＳ１０４）。
【００６５】
分散制御部５０は、受信された第１の印刷ジョブにより印刷を要求される総ページ数Ｑおよび印刷部数ＱＴを取得する（ステップＳ１０６）。具体的には、分散制御部５０は、ジョブ制御言語部５０１を読み出し、第１の印刷ジョブに含まれる総ページ数情報ＴＰおよび印刷部数情報ＰＣを取得する。
【００６６】
続いて、分散制御部５０は、分散先プリンタ特定処理を実行する（ステップＳ１０８）。分散先プリンタ特定処理は、分散制御部５０の分散先特定部５２によって実行される処理である。図９に示すように、分散先プリンタ特定処理が開始されると、分散先特定部５２は、ネットワーク上に接続された機器のＩＰアドレスを取得する（ステップＳ２０２）。分散先特定部５２は、分散先指定ファイル格納部３４に分散先指定ファイルが格納されている場合には、分散先指定ファイルを参照して、ＩＰアドレスを取得する。分散先指定ファイルには、分散先として使用したいプリンタのＩＰアドレスが記載されている。このような分散先指定ファイルは、プリンタＰＲＴ１が初期設定される際に、設定用コンピュータなどを用いてプリンタＰＲＴ１に格納される。なお、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタＰＲＴ１も使用される場合には、自己プリンタＰＲＴ１のＩＰアドレス「ＩＰ１」も、分散先指定ファイルに記載される必要がある。
【００６７】
一方、分散先指定ファイルが格納されていない場合には、分散先特定部５２は、ＳＮＭＰマネージャ４０を用いて、問い合わせコマンドのブロードキャストを行うことにより、ＬＡＮに接続されている各機器に対してＩＰアドレスを問い合わせ、応答されたＩＰアドレスを取得する。
【００６８】
次に、分散先特定部５２は、取得されたＩＰアドレスを割り当てられた各機器に関する情報を取得する（ステップＳ２０４）。具体的には、分散先特定部５２は、ＳＮＭＰマネージャ４０を用いて、ユニキャストで各機器に対して問い合わせを行い、問い合わせの応答として機種名およびステータスを取得する。
【００６９】
分散先特定部５２は、取得された機種名およびステータスに基づいて、ネットワーク上に接続された機器の中から所定の条件を満たすプリンタを検索し、検索されたプリンタを分散先プリンタとして特定する（ステップＳ２０６）。所定の条件の一例を、以下に示す。
１．自己プリンタＰＲＴ１と同一の機種であること。
２．電源が投入されていること。
３．トナー残量が所定の閾値以上であること。
４．オンライン状態にあること。
５．印刷中でないこと（プリンタエンジン９０が駆動中でないこと）。
【００７０】
これらの項目についての情報は、全て上述のＳＮＭＰマネージャ４０による問い合わせによって、取得することができる。自己プリンタＰＲＴ１と同一機種であることを、分散先プリンタとして選択する条件とするのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。また、カラー印刷や両面印刷指定も統一して実行させることができる。分散先指定ファイルで指定されているＩＰアドレスの機器に対しても、機種名の問い合わせを行うのは、次の理由による。すなわち、分散先指定ファイル作成後に、機器の入れ換えなどにより、分散先指定ファイルに記載されていたＩＰアドレスが、自己のプリンタＰＲＴ１と別機種のプリンタに割り振られたり、プリンタ以外の機器に割り振られたりする可能性があるので、自己のプリンタＰＲＴ１と同一機種であるかの確認を行うためである。
【００７１】
２〜５の条件は、すぐに印刷できないプリンタを分散先プリンタとして選択することを防ぐためである。オンライン状態とは、用紙切れや紙詰まりといったエラーを起こしている状態（オフライン状態）ではない正常な状態のことを指す。
【００７２】
そして、分散先特定部５２は、１台以上の分散先プリンタが特定されたか否かを判断する（ステップＳ２０８）。一台以上特定されている場合（ステップＳ２０８：ＹＥＳ）には、分散先特定部５２は分散先プリンタ特定処理を終了する。一台の分散先プリンタも特定されていない場合（ステップＳ２０８：ＮＯ）には、分散先特定部５２は、所定期間待機して（ステップＳ２１０）、ステップＳ２０２〜ステップＳ２０８の処理を繰り返す。
【００７３】
分散先プリンタが特定されると、分散制御部５０は、分散方法選択処理を実行する（ステップＳ１１０）。分散方法選択処理は、分散制御部５０の分散方法評価部５３および分散方法選択部５４によって実行される。分散方法選択処理が開始されると、まず、分散方法評価部５３は、ページ分散を用いる場合における最大印刷枚数Ｐｍａｘを算出する（ステップＳ３０２）。最大印刷枚数は、各分散先プリンタのうち、割当印刷枚数が最大の分散先プリンタにおける割当印刷枚数である。割当印刷枚数は、ある分散方法を用いた場合に、ある分散先プリンタに割当られた印刷が実行された結果、その分散先プリンタから出力される印刷媒体の枚数である。最大印刷枚数Ｐｍａｘは、以下の式（５）によって示される。
Ｐｍａｘ＝ＭＡＸ｛Ｐ（ｍ）｝×ＱＴ  …（５）
【００７４】
ここで、ＭＡＸ｛Ｐ（ｍ）｝は、上述した各分散先プリンタの割当ページのページ数Ｐ（ｍ）のうち、最大の値である。上述したページ分散のアルゴリズムの場合には、ＭＡＸ｛Ｐ（ｍ）｝＝Ｐ（１）であるので、Ｐｍａｘ＝Ｐ（１）×ＱＴとなる。
【００７５】
次に、分散方法評価部５３は、部数分散を用いる場合における最大印刷枚数Ｃｍａｘを算出する（ステップＳ３０４）。最大印刷枚数Ｃｍａｘは、以下の式（６）によって示される。
Ｃｍａｘ＝ＭＡＸ｛Ｃ（ｍ）｝×Ｑ  …（６）
【００７６】
ここで、ＭＡＸ｛Ｃ（ｍ）｝は、上述した各分散先プリンタの割当部数Ｃ（ｍ）のうち、最大の値である。上述した部数分散のアルゴリズムの場合には、ＭＡＸ｛Ｃ（ｍ）｝＝Ｃ（１）であるので、Ｃｍａｘ＝Ｃ（１）×Ｑとなる。
【００７７】
ステップＳ３０２およびＳ３０４において算出されたＰｍａｘおよびＣｍａｘが、対応する分散方法を用いた場合における印刷に要する所要時間の評価値となる。本実施例では、分散先プリンタとして特定されるための上述した条件によって、複数の分散先プリンタは、同一の機種とされる。このため、各分散先プリンタの印刷速度（例えば、ＰＰＭ（page per minute）によって表される）は同じである。従って、各分散先プリンタにおいて印刷に要する時間は、ほぼ印刷枚数によって決まる。この結果、分散印刷に要する時間は、最も多くの枚数を印刷する分散先プリンタの印刷枚数によって決まることになる。
【００７８】
次に、分散方法選択部５４は、分散方法評価部５３によって算出されたＰｍａｘとＣｍａｘを比較する（ステップＳ３０６）。比較の結果、Ｐｍａｘ＜Ｃｍａｘである場合には、すなわち、ページ分散を用いた方が印刷の所要時間が短いと判断される場合には、分散方法選択部５４は、用いるべき分散方法としてページ分散を選択する（ステップＳ３１２）。一方、比較の結果、Ｐｍａｘ＞Ｃｍａｘである場合には、すなわち、部数分散を用いた方が印刷の所要時間が短いと判断される場合には、分散方法選択部５４は、用いるべき分散方法として部数分散を選択する（ステップＳ３１４）。
【００７９】
また、比較の結果、Ｐｍａｘ＝Ｃｍａｘである場合には、分散方法選択部５４は、優先情報を優先情報格納部３８から取得する（ステップＳ３１０）。優先情報は、分散制御部５０が用いることができる分散方法の中から、選択の際に優先される分散方法を特定するための情報である。本実施例では、ページ分散と部数分散のうちのいずれかが、優先情報として優先情報格納部３８に記述されている（図１１の例では部数分散）。優先情報は、ユーザが設定することとしても良いし、予め製品出荷時から設定されていても良い。分散方法選択部５４は、取得された優先情報に基づいてページ分散か部数分散のいずれかを選択する（ステップＳ３１２またはＳ３１４）。
【００８０】
分散方法が選択されると、分散方法選択処理は終了され、処理は、図８に示すフローチャートにリターンされる。選択された分散方法が部数分散である場合には、ジョブ分散部５５は、上述した式（４）を用いて、各分散先プリンタの割当部数Ｃ（ｍ）を決定する（ステップＳ１１４）。そして、ジョブ分散部５５は、図５を参照して説明したように、ジョブ制御言語部５０１の印刷部数情報ＰＣを変更した第２の印刷ジョブの先頭部分を各分散先プリンタに送信する（ステップＳ１１６）。一方、選択された分散方法がページ分散である場合には、ジョブ分散部５５は、上述した式（２）（３）を用いて、各分散先プリンタの割当ページの開始ページ番号Ｓ（ｍ）および終了ページ番号Ｅ（ｍ）を決定する（ステップＳ１１８）。そして、ジョブ分散部５５は、図４を参照して説明したように、ジョブ制御言語部５０１のページ特定情報ＰＥを変更した第２の印刷ジョブの先頭部分を各分散先プリンタに送信する（ステップＳ１２０）。
【００８１】
次に、分散制御部５０の分散ジョブ受信部５１は、第１の印刷ジョブＪＢ１の先頭部分以降の部分をクライアントＣＬから受信し、分散制御部５０のジョブ分散部５５は、受信された先頭部分以降の部分を、そのまま順次各プリンタＰＲＴ１〜ＰＲＴ４に送信する（ステップＳ１２２）。その後、分散制御部５０は、第１の印刷ジョブＪＢ１の全ての部分を受信したか否かを判断する（ステップＳ１２４）。分散制御部５０は、第１の印刷ジョブＪＢ１の全てを受信していないと判断すると（ステップＳ１２４：ＮＯ）、ステップＳ１２２に戻る。一方、分散制御部５０は、第１の印刷ジョブＪＢ１の受信が終了したと判断すると（ステップＳ１２４：ＹＥＳ）、本処理を終了する。
【００８２】
・分散方法の選択の具体例
図１２および図１３は、分散方法の選択の具体例を示す説明図である。これらの具体例における分散印刷では、理解の容易のため、２台の分散先プリンタ（分散先プリンタ１および分散先プリンタ２と呼ぶ。）に、第１の印刷ジョブＪＢ１を分散するものとする。
【００８３】
図１２は、第１の印刷ジョブＪＢ１が、１部あたり３ページの文書を２部印刷することを要求する（Ｑ＝３、ＱＴ＝２）場合を示している。この第１の印刷ジョブＪＢ１を上述した部数分散（図５、式（４）参照）を用いて分散する場合を考える。この場合には、図１２に示すように、２台の分散先プリンタに１〜３ページを１部ずつ分散することになる。したがって、分散先プリンタ１および分散先プリンタ２の印刷枚数は、共に３×１＝３となる。したがって、上述した部数分散時の最大印刷枚数Ｃｍａｘは、３である。
【００８４】
次に、この第１の印刷ジョブＪＢ１を上述したページ分散（図４、式（２）（３）参照）を用いて分散する場合を考える。この場合には、図１２に示すように、分散先プリンタ１に、１〜２ページを２部分散し、分散先プリンタ２に３ページを２部分散することになる。したがって、分散先プリンタ１の印刷枚数は、２×２＝４となり、分散先プリンタ２の印刷枚数は、１×２＝２となる。したがって上述したページ分散時の最大印刷枚数Ｐｍａｘは、４である。Ｐｍａｘ＞Ｃｍａｘであるから上述した分散印刷処理によれば、分散方法として部数分散が選択される。
【００８５】
図１３は、第１の印刷ジョブＪＢ１が、１部あたり２ページの文書を３部印刷することを要求する（Ｑ＝２、ＱＴ＝３）場合を示している。この第１の印刷ジョブＪＢ１を上述した部数分散（図５、式（４）参照）を用いて分散する場合を考える。この場合には、図１３に示すように、分散先プリンタ１に１〜２ページを２部分散し、分散先プリンタ２に１〜２ページを１部分散することになる。したがって、分散先プリンタ１の印刷枚数は、２×２＝４となり、分散先プリンタ２の印刷枚数は、２×１＝２となる。したがって、上述した部数分散時の最大印刷枚数Ｃｍａｘは、４である。
【００８６】
次に、この第１の印刷ジョブＪＢ１を上述したページ分散（図４、式（２）（３）参照）を用いて分散する場合を考える。この場合には、図１３に示すように、分散先プリンタ１に、１ページを３部分散し、分散先プリンタ２に２ページを３部分散することになる。したがって、分散先プリンタ１および分散先プリンタ２の印刷枚数は、共に１×３＝３となる。したがって上述したページ分散時の最大印刷枚数Ｐｍａｘは、３である。そうすると、Ｐｍａｘ＜Ｃｍａｘであるから上述した分散印刷処理によれば、分散方法としてページ分散が選択される。
【００８７】
以上説明した実施例によれば、カスタムネットワークボード１００は、第１の印刷ジョブＪＢ１による印刷要求の内容に応じて、部数分散とページ分散のうち、所要時間の短い分散方法を選択する。この結果、実施例に係る印刷システムは、短時間で効率よく分散印刷を実行することができる。
【００８８】
また、カスタムネットワークボード１００は、最大印刷枚数ＣｍａｘおよびＰｍａｘに基づいて、印刷の所要時間を評価する。この結果、分散印刷に要する所要時間を、容易に評価することができる。本実施例では、各分散先プリンタは同一機種であり、印刷速度が等しいので、印刷枚数に基づいて印刷の所要時間を評価することができる。
【００８９】
さらに、カスタムネットワークボード１００は、２つの分散方法の最大印刷枚数ＣｍａｘおよびＰｍａｘが互いに等しい場合には、優先情報に基づいて分散方法を選択する。この結果、所要時間の評価が等しい場合であっても、好ましい一つの分散方法を選択することができる。なお、優先情報は、ユーザにより設定されることも可能であるので、ユーザの意図を反映して分散方法の選択を行うことができる。
【００９０】
また、カスタムネットワークボード１００は、分散先プリンタとして用いることができるプリンタＰＲＴ１に内蔵されているので、専用の分散サーバ等の外部機器を用いることなく、複数のプリンタＰＲＴからなる簡易な構成で、効率の良い分散印刷を実現できる。
【００９１】
Ｂ．変形例：
・第１変形例：
上記実施例では、優先情報は、優先情報格納部３８から取得されるが、他の方法により取得されても良い。例えば、優先情報は、クライアントＣＬによって第１の印刷ジョブＪＢ１ごとに設定され、第１の印刷ジョブＪＢ１に含まれても良い。図１４は、優先情報を含む印刷ジョブの一例を示す説明図である。図１４に示す印刷ジョブＪＢには、実施例における印刷ジョブＪＢの内容に加えて、ジョブ制御言語部５０１に優先情報ＰＩが記述されている。例えば、優先情報ＰＩとして記述されている内容が、「ＰＭ＝１」である場合には「ページ分散」が、「ＰＭ＝２」である場合には「部数分散」が、それぞれ優先されることとすることができる。このような印刷ジョブＪＢを第１の印刷ジョブＪＢ１として用いる場合には、カスタムネットワークボード１００は、第１の印刷ジョブＪＢ１ごとに容易に優先情報を取得できる。
【００９２】
また、優先情報は、カスタムネットワークボード１００にＭＩＢオブジェクトとして格納されていても良い。こうすれば、クライアントＣＬ等、ネットワークに接続された計算機からＳＮＭＰプロトコルを用いて、容易に優先情報の設定を行うことができる。
【００９３】
・第２変形例：
図１５および図１６を参照して、第２変形例について説明する。図１５は、第２変形例における第１の印刷ジョブＪＢ１のデータ構造を示す説明図である。図１６は、第２変形例における分散印刷処理の処理ルーチンを示すフローチャートである。
【００９４】
本変形例における第１の印刷ジョブＪＢ１は、実施例における第１の印刷ジョブＪＢ１と異なり、ジョブ制御言語部５０１が２つの部分、すなわち、第１のジョブ制御言語部５０１ａと第２のジョブ制御言語部５０１ｂとに分かれている。第１のジョブ制御言語部５０１ａは、ページ記述言語部５０２の前に配置される一方で、第２のジョブ制御言語部５０１ｂはページ記述言語部５０２の後ろに配置される。すなわち、本変形例における第１の印刷ジョブＪＢ１は、分散制御部５０の分散ジョブ受信部５１に受信される際、第１のジョブ制御言語部５０１ａ、ページ記述言語部５０２、第２のジョブ制御言語部５０１ｂという順序で受信される。第２のジョブ制御言語部５０１ｂには、第１および第２の実施例においてジョブ制御言語部５０１に含まれていた情報のうち総ページ数情報ＴＰが記述され、第１のジョブ制御言語部５０１ａには、それ以外の情報が記述されている。プリンタコントローラ８０およびクライアントＣＬのプリンタドライバの仕様によって、第１の印刷ジョブＪＢ１がこのような構造を有する場合がある。
【００９５】
本変形例における分散印刷処理について説明する。図８を参照して説明した実施例における分散印刷処理と異なる点は、図５におけるステップＳ１０４に代えてステップＳ４０４が実行される点と、図５におけるステップＳ１１６、Ｓ１２０〜Ｓ１２４に代えて、ステップＳ４１６およびＳ４２０が実行される点である（図１６）。
【００９６】
ステップＳ５０４において、分散制御部５０の分散ジョブ受信部５１は、第１の印刷ジョブＪＢ１の先頭部分だけでなく、第１の印刷ジョブＪＢ１の全体を受信する。分散制御部５０は、次のステップＳ１０６において、総ページ数情報ＴＰを参照して総ページ数Ｑを取得する必要があるため、印刷ジョブのうち最後に受信される第２のジョブ制御言語部５０１ｂを受信しておく必要があるからである。
【００９７】
ステップＳ４１６およびＳ４２０において、ジョブ分散部５５は、第１の印刷ジョブＪＢ１において印刷部数情報ＰＣを変更、あるいは、ページ特定情報ＰＥを追加することにより第２の印刷ジョブＪＢ２１〜ＪＢ２４を生成し、各分散先プリンタに送信する。ステップＳ４０４において、第１の印刷ジョブＪＢ１の全体が受信されているので、実施例のように、第１の印刷ジョブＪＢ１の受信と、第２の印刷ジョブＪＢ２１〜ＪＢ２４の送信を繰り返す必要はない。
【００９８】
他のステップにおける処理は、実施例と同一であるので、図１６において図８と同一の符号を付しその説明を省略する。
【００９９】
本変形例によれば、第１の印刷ジョブＪＢ１の全体を一度に受信する必要があるので、バッファ３６には、第１の印刷ジョブＪＢ１の全体を格納できる領域が確保される必要がある。それ以外は、上記実施例と同様の作用・効果を得ることができる。
【０１００】
・第３変形例：
上記実施例では、印刷に要する所要時間を最大印刷枚数ＣｍａｘおよびPｍａｘを用いて評価しているが、分散先プリンタの印刷速度に関する特性を考慮しても良い。例えば、複数の分散先プリンタの印刷速度が異なる場合には、各分散先プリンタの印刷速度を考慮して所要時間を評価しても良い。
【０１０１】
かかる場合には、分散方法評価部５３は、各分散先プリンタの印刷速度を取得する。例えば、カスタムネットワークボード１００のメモリ３０に、プリンタの機種ごとの印刷速度ＰＴ（単位は例えば、ＰＰＭ（page per minute））を記録したテーブルを、格納しておく。そして、分散方法評価部５３は、上述したステップＳ２０４において取得される分散先プリンタの機種名に基づいて、上記テーブルから各分散先プリンタの印刷速度ＰＴ（ｍ）（ｍは分散先プリンタの番号）を取得する。あるいは、各分散先プリンタが、ＭＩＢ情報として印刷速度ＰＴ（ｍ）を特定する情報を有していても良い。かかる場合には、分散方法評価部５３は、ＳＮＭＰプロトコルを用いた問い合わせにより、各分散先プリンタから印刷速度ＰＴ（ｍ）を取得することができる。
【０１０２】
そして、分散方法評価部５３は、各分散先プリンタの印刷の所要時間を、部数分散の場合とページ分散の場合についてそれぞれ算出する。例えば、部数分散の場合におけるｍ番目の分散先プリンタの所要時間をＣＮＴ（ｍ）とし、ページ分散の場合におけるｍ番目の分散先プリンタの所要時間をＰＮＴ（ｍ）とすると、ＣＮＴ（ｍ）およびＰＮＴ（ｍ）は、以下の式（７）（８）を用いて算出される。
ＣＮＴ（ｍ）＝Ｃ（ｍ）×Ｑ／ＰＴ（ｍ）  …（７）
ＰＮＴ（ｍ）＝P（ｍ）×ＱＴ／ＰＴ（ｍ）  …（８）
【０１０３】
分散方法評価部５３は、各分散先プリンタの所要時間ＣＮＴ（ｍ）およびＰＮＴ（ｍ）の最大値ＭＡＸ｛ＣＮＴ（ｍ）｝およびＭＡＸ｛ＰＮＴ（ｍ）｝を算出する。分散方法選択部５４は、最大値ＭＡＸ｛ＣＮＴ（ｍ）｝とＭＡＸ｛ＰＮＴ（ｍ）｝を比較して、分散方法を選択する。ＭＡＸ｛ＣＮＴ（ｍ）｝＜ＭＡＸ｛ＰＮＴ（ｍ）｝である場合には部数分散が、ＭＡＸ｛ＣＮＴ（ｍ）｝＞ＭＡＸ｛ＰＮＴ（ｍ）｝である場合にはページ分散が、それぞれ選択される。ＭＡＸ｛ＣＮＴ（ｍ）｝＝ＭＡＸ｛ＰＮＴ（ｍ）｝である場合には、実施例同様に、優先情報に基づいて分散方法が選択される。
【０１０４】
こうすれば、各分散先プリンタの性能を考慮して、分散方法を選択するので、各分散先プリンタの印刷速度が異なる場合であっても、適切な分散方法を選択することができる。
【０１０５】
・その他の変形例：
実施例において説明した部数分散およびページ分散に代えて、または、これらの分散方法と共に、他の異なる様々な分散方法を用いても良い。例えば、各分散先プリンタが同一機種であることを条件としない場合には、各分散先プリンタの印刷速度を考慮して、割当ページ数Ｐ（ｍ）または割当部数Ｃ（ｍ）を決定する分散方法を用いても良い。かかる場合には、上述した第３変形例で説明した印刷速度を考慮した分散方法の選択と組み合わせることにより、各分散先プリンタの印刷速度が異なる場合において、より効率的に短時間で分散印刷を完了することができる。
【０１０６】
また、分散制御部５０が３種類以上の分散方法を用いることができる場合には、全ての分散方法について、印刷の所要時間を評価して、最も所要時間が短い分散方法を選択することとすれば良い。
【０１０７】
上記実施例において、プリンタＰＲＴの各部は、ソフトウエア的に構成されているものを、ハードウエア的に構成するようにしてもよいし、ハードウエア的に構成されているものを、ソフトウエア的に構成するようにしてもよい。
【０１０８】
上記実施例におけるプリンタエンジン９０は、種々のタイプのものが用いられ得る。例えば、レーザー式に限らず、インクジェット式、昇華型、ドットインパクト式、熱転写型など、あらゆるタイプのプリンタエンジンが用いられ得る。
【０１０９】
以上、本発明の実施例および変形例について説明したが、本発明はこれらの実施例および変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施例における分散印刷システムの概略構成を示す説明図。
【図２】実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図。
【図３】印刷ジョブの構成を説明する概念図。
【図４】ページ分散の概要を示す説明図。
【図５】部数分散の概要を示す説明図。
【図６】ページ分散において分散先プリンタに割り当てられるページ数の一例を示すテーブル。
【図７】部数分散において分散先プリンタに割り当てられる部数の一例を示すテーブル。
【図８】分散印刷処理の処理ルーチンを示すフローチャート。
【図９】分散先プリンタ特定処理の処理ルーチンを示すフローチャート。
【図１０】分散方法選択処理の処理ルーチンを示すフローチャート。
【図１１】優先情報の一例を示す説明図。
【図１２】分散方法の選択の具体例を示す第１の説明図である。
【図１３】分散方法の選択の具体例を示す第２の説明図である。
【図１４】優先情報を含む印刷ジョブの一例を示す説明図。
【図１５】第２変形例における第１の印刷ジョブＪＢ１のデータ構造を示す説明図。
【図１６】第２変形例における分散印刷処理の処理ルーチンを示すフローチャート。
【符号の説明】
【０１１１】
１０…ＴＣＰ／ＩＰ部
１１…アプリケーション
１２…印刷ジョブ送信部
１３…ＴＣＰ／ＩＰ部
２０…ＣＰＵ
３０…メモリ
３２…ＯＩＤ格納部
３４…分散先指定ファイル格納部
３６…バッファ
３８…優先情報格納部
４０…ＳＮＭＰマネージャ
５０…分散制御部
５１…分散ジョブ受信部
５２…分散先特定部
５３…分散方法評価部
５４…分散方法選択部
５５…ジョブ分散部
６０…印刷ジョブ受信部
７０…ＳＮＭＰエージェント
８０…プリンタコントローラ
８１…ＭＩＢファイル
８２…プリンタバッファ
９０…プリンタエンジン
１００…カスタムネットワークボード
２００…ネットワークボード
４００…ヘッダ
４５０…データ部
５０１…ジョブ制御言語部
５０２…ページ記述言語部
ＰＲＴ…プリンタ
ＰＲＢ…プリンタ本体
【図１】
0004650158.tif 000005
【図２】
0004650158.tif 000006
【図３】
0004650158.tif 000007
【図４】
0004650158.tif 000008
【図５】
0004650158.tif 000009
【図６】
0004650158.tif 000010
【図７】
0004650158.tif 000011
【図８】
0004650158.tif 000012
【図９】
0004650158.tif 000013
【図１０】
0004650158.tif 000014
【図１１】
0004650158.tif 000015
【図１２】
0004650158.tif 000016
【図１３】
0004650158.tif 000017
【図１４】
0004650158.tif 000018
【図１５】
0004650158.tif 000019
【図１６】
0004650158.tif 000020