説明

分散印刷を実行するための印刷制御

【課題】 分散対象である印刷ジョブに応じて、効率的な分散印刷を実現する。
【解決手段】印刷制御装置は、複数の印刷装置と接続され、複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散する。印刷制御装置は、印刷ジョブを受信する受信部と、印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価する評価部と、評価の結果に基づいて、複数種類の分散方法の中から、所要時間の短い分散方法を選択する選択部と、選択された分散方法を用いて、印刷ジョブの分散を実行する分散部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷ジョブを2以上の印刷装置に分散して、分散印刷を行う技術に関する。
【背景技術】
【0002】
複数の印刷装置にネットワークを介して接続された印刷制御装置が、複数の印刷装置に印刷ジョブを分散する分散印刷システムが知られている(例えば、特許文献1)。その従来技術では、1つの印刷ジョブにおいて印刷を要求される印刷を、複数の印刷装置に配分し、並行して印刷を行うことにより、短時間で複数部数の印刷を完了することができる。
【0003】
【特許文献1】特開2002−268850号公報
【特許文献2】特開2001−100963号公報
【特許文献3】特開平11−110143号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上述した分散印刷において、印刷ジョブが要求する印刷に応じて、さらに効率的に、短時間で分散印刷を実行することが望まれている。
【0005】
本発明は、上記課題を解決するためになされたものであり、分散対象である印刷ジョブに応じて、より効率的な分散印刷を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために本発明の第1の態様は、複数の印刷装置と接続され、前記複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散する印刷制御装置を提供する。本態様に係る印刷制御装置は、前記印刷ジョブを受信する受信部と、受信された前記印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価する評価部と、前記評価の結果に基づいて、複数種類の分散方法の中から、前記所要時間の短い分散方法を選択する選択部と、前記選択された分散方法を用いて、受信された前記印刷ジョブの分散を実行する分散部と、を備えることを特徴とする。
【0007】
本態様によれば、複数種類の分散方法の中から、分散される印刷ジョブごとに、所要時間の短い分散方法を選択するので、より効率的な分散印刷を実現することができる。
【0008】
本態様に係る印刷制御装置において、前記複数種類の分散方法は、複数ページに亘る印刷を、ページ単位で各分散先印刷装置に分散する第1の方法と、複数部数の印刷を、部数単位で各分散先印刷装置に分散する第2の方法とを含んでも良い。こうすれば、印刷制御装置は、少なくとも部数単位の分散方法とページ単位の分散方法を含む複数種類の分散方法の中から、所要時間の短い分散方法を選択する。この結果、効率的な分散印刷を実現することができる。
【0009】
本態様に係る印刷制御装置において、前記評価は、前記複数の分散先印刷装置にそれぞれ割り当てられる印刷枚数のうち、最大の印刷枚数に基づいて実行されても良い。また、前記選択された分散方法は、前記複数種類の分散方法のうち、前記最大の印刷枚数が最小となる分散方法であっても良い。こうすれば、分散印刷に要する所要時間を、容易に評価することができる。
【0010】
本態様に係る印刷制御装置において、前記選択部は、さらに、前記複数種類の分散方法のうち、優先される分散方法を特定するための優先情報を取得し、前記評価の結果と前記優先情報とに基づいて、前記分散方法を選択しても良い。かかる場合において、前記選択部は、前記評価が等しい分散方法が2以上ある場合には、前記2以上の分散方法のうち、前記優先される分散方法を選択しても良い。こうすれば、所要時間の評価のみでは一つの分散方法を選択できない場合であっても、好ましい一つの分散方法を選択することができる。
【0011】
本態様に係る印刷制御装置において、前記優先情報は、ユーザの指示に応じて設定されても良い。こうすれば、ユーザの意図を反映して、一つの分散方法を選択することができる。
【0012】
本態様に係る印刷制御装置において、前記優先情報は、前記印刷ジョブに含まれていても良い。こうすれば、分散印刷制御装置は、印刷ジョブごとに容易に優先情報を取得できる。
【0013】
本態様に係る印刷制御装置において、前記評価は、さらに、各分散先印刷装置の印刷速度に関連する特性を考慮して実行されても良い。こうすれば、印刷に要する所要時間の評価精度を向上させることができる。この結果、効率的な分散方法の選択の正確性を向上させることができる。
【0014】
本態様に係る印刷制御装置は、前記複数の印刷装置の少なくとも1つに内蔵されても良い。こうすれば、専用サーバなどを用いることなく、簡易な構成にて上述の分散印刷を実現することができる。
【0015】
なお、本発明は、上記した印刷制御装置としての構成の他、ネットワークに接続される印刷装置、あるいは、複数の印刷装置を備える印刷システムとしても構成することができる。また、そのような物の発明としての態様に限ることなく、複数の分散先印刷装置に印刷ジョブを分散する分散方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【0016】
以下、本発明に係る印刷制御装置および印刷装置について、図面を参照しつつ、実施例に基づいて説明する。
【0017】
A.実施例:
・分散印刷システムの構成:
図1および図2を参照して、本発明の実施例における分散印刷システムの構成について説明する。図1は、本発明の実施例における分散印刷システムの概略構成を示す説明図である。図2は、実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図である。
【0018】
この分散印刷システムは、図1に示すように、クライアントとしての計算機(以下、単にクライアントという。)CLと、複数のプリンタPRT1〜PRT4を含む。クライアントCLと、プリンタPRT1〜PRT4は、ローカルエリアネットワーク(LAN)を介して互いに接続されている。各機器間の通信は、TCP/IPプロトコルを用いて行われるため、各機器にはそれぞれIPアドレスが割り振られる。説明の便宜上、クライアントCLには「IPc」、プリンタPRT1〜PRT4には、それぞれ「IP1」〜「IP4」なるIPアドレスが設定されているものとする。なお、厳密に言えば、これらIPアドレスは、クライアントCL、プリンタPRT1〜PRT4自体に設定されているわけではなく、TCP/IPのネットワークから見た場合のノード(すなわち、具体的には、TCP/IP通信を行うためにネットワークに接続されているネットワークボードなど)に設定されている。
【0019】
これらプリンタのうち、プリンタPRT1には、カスタムネットワークボード100がそれぞれ取り付けられている。このカスタムネットワークボード100は、クライアントCLから受信された印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における印刷制御装置に相当する。プリンタPRT2〜PRT4には、それぞれ、標準のネットワークボード200が取り付けられている。
【0020】
図1において、実線で示す矢印は、クライアントCLからプリンタPRT1のカスタムネットワークボード100に印刷ジョブが送信され、プリンタPRT1のカスタムネットワークボード100からプリンタPRT1〜PRT4にその印刷ジョブが分散される流れを示している。このように、プリンタPRT1〜PRT4はいずれも、プリンタPRT1のカスタムネットワークボード100から分散印刷の分散先とされ得る。以下において、各プリンタPRT1〜PRT4を区別する必要のない場合には、符号の末尾の数字を省略しプリンタPRTともいう。また、プリンタPRT1〜PRT4のうち、分散先とされたプリンタを分散先プリンタともいう。
【0021】
プリンタPRT1は、図2に示すように、プリンタ本体PRB1と、上述したカスタムネットワークボード100とを備えている。プリンタ本体PRB1は、主として、プリンタエンジン90と、プリンタコントローラ80とを備えている。プリンタエンジン90は、実際に印刷を行う。プリンタコントローラ80は、後述する印刷ジョブ受信部60から供給される印刷ジョブを受け取り、その印刷ジョブを解釈してプリンタエンジン90を制御して印刷を実行させる。プリンタコントローラ80は、供給された印刷ジョブを始めとするデータを一時的に格納するプリンタバッファ82を備えている。また、プリンタコントローラ80は、プリンタ本体PRB1に関する種々の情報を収集してMIB(Management Information Base)と呼ばれる形式で保存したファイル(以下、MIBファイルという。)81を格納している。MIBファイル81には、種々の情報がオブジェクト単位で保存され、オブジェクトごとに、オブジェクトID(以下、OIDという。)が割り振られている。
【0022】
カスタムネットワークボード100は、主として、中央演算装置(CPU)20と、メモリ30とを備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略している。
【0023】
CPU20によって実現される機能ブロックには、TCP/IP部10と、分散制御部50と、印刷ジョブ受信部60と、SNMPマネージャ40と、SNMPエージェント70が含まれる。
【0024】
TCP/IP部10は、TCP/IPプロトコルを解釈して、主としてネットワークを介して外部との通信を行う。TCP/IPプロトコルにおいてトランスポート層の処理を行うプロトコルとして、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)がある。TCPは、信頼性の高いコネクション型の通信を実現するプロトコルである。一方、UDPは、高速なコネクションレス型の通信を実現するプロトコルである。TCP/IP部10は、後述する印刷ジョブの通信を、TCPを用いて行うと共に、後述するSNMPマネージャ40とSNMPエージェント70間の通信を、UDPを用いて行う。
【0025】
分散制御部50は、分散印刷が指定された印刷ジョブ(以下、第1の印刷ジョブともいう。)を受信して、分散先プリンタに印刷ジョブを分散する。分散制御部50は、後述するように、2種類の分散方法を用いて、印刷ジョブを分散することができる。分散制御部50は、サブ機能ブロックとして分散ジョブ受信部51と、分散先特定部52と、分散方法評価部53と、分散方法選択部54と、ジョブ分散部55を備えている。分散ジョブ受信部51は、クライアントCLなどの外部機器からネットワークを介して、第1の印刷ジョブを受信する。分散先特定部52は、カスタムネットワークボード100と接続されている複数のプリンタの中から第1の印刷ジョブの分散先となる複数の分散先プリンタを特定する。分散方法評価部53は、第1の印刷ジョブにより要求される印刷に要する所要時間に関する評価を、2種類の分散方法について、それぞれ実行する。評価の具体的な内容については後述する。分散方法選択部54は、分散方法評価部53による評価結果に基づいて、2種類の分散方法の中から、上述の所要時間の短い分散方法を選択する。ジョブ分散部55は、分散方法選択部54により選択された分散方法を用いて、第1の印刷ジョブを分散する。第1の印刷ジョブの分散は、各分散先プリンタに割り当てられた印刷を要求する印刷ジョブ(以下、第2の印刷ジョブともいう。)を、各分散先プリンタに対して送信することによって実行される。以上のような分散制御部50が実行する処理については、さらに後述する。
【0026】
印刷ジョブ受信部60は、分散印刷が指定されていない通常の印刷ジョブ、例えば、上述した第2の印刷ジョブを受信してプリンタコントローラ80に供給する。SNMPマネージャ40は、SNMP(Simple Network Management Protocol)と呼ばれる通信プロトコルを用いて、各プリンタPRT1〜PRT4が備えるSNMPエージェント70に問い合わせて、各種の情報を取得する。SNMPマネージャ40は、上述したOIDを指定することにより取得すべき情報を特定して問い合わせを行う。
【0027】
SNMPエージェント70は、SNMPマネージャ40の問い合わせに応じて、上述したMIBファイル81から所望の情報を取得し、SNMPマネージャ40に対して、その情報を送信する。
【0028】
一方、メモリ30は、上述の各機能を実現するためのプログラムを格納する他、OID格納部32、分散先指定ファイル格納部34、バッファ36と、優先情報格納部38を備えている。OID格納部32には、SNMPマネージャ40が上述した問い合わせを行う際に指定するOIDが格納されている。OIDは、問い合わせ可能な情報の種類と関連付けられて格納されており、SNMPマネージャ40は、OID格納部32を参照して指定すべきOIDを取得することができる。分散先指定ファイル格納部34は、分散先指定ファイルを格納する。この分散先指定ファイルは、LANに接続されている複数のプリンタの中で、分散印刷における分散先として使用したいプリンタを、前もって、指定しておきたい場合に用いられる。従って、前もって指定する必要がない場合には、分散先指定ファイル格納部34には何も格納されなくても良い。バッファ36は、受信した第1の印刷ジョブを始めとするデータを、CPU20が一時的に格納するための格納部である。優先情報格納部38は、2種類の分散方法のうち、優先される分散方法を特定するための優先情報を格納するための領域である。優先情報については後述する。
【0029】
プリンタPRT2〜プリンタPRT4は、同一の構成を有しているので、代表してプリンタPRT2の構成について説明する。プリンタPRT2は、図2に示すように、プリンタ本体PRB2および上述したネットワークボード200を備えている。プリンタ本体PRB2の構成は、上述したプリンタPRT1のプリンタ本体PRB1と同一であるので、各構成要素にプリンタPRT1のプリンタ本体PRB1の構成要素と同一の符号を付しその説明を省略する。ネットワークボード200は、上述したカスタムネットワークボード100が有する機能のうち、分散印刷制御機能を除く機能を有している。すなわち、ネットワークボード200は、TCP/IP部10と、印刷ジョブ受信部60と、SNMPエージェント70とを有している。ネットワークボード200の各構成要素は、カスタムネットワークボード100の同名の構成要素と同一であるので、同一の符号を付しその説明を省略する。
【0030】
上記説明から解るように、プリンタPRT1に搭載されたカスタムネットワークボード100は、プリンタPRT2〜プリンタPRT4に搭載されたネットワークボード200の備える機能を全て備えている。そして、カスタムネットワークボード100の分散制御部50からみて、プリンタPRT1〜プリンタPRT4は、全て等価であり、後述する分散印刷処理において全て分散先プリンタとして指定され得る。分散制御部50は、分散制御部50自体が内蔵されているプリンタPRT1についても、他のプリンタについても区別なく扱うことができる。
【0031】
クライアントCLは、図2に示すように、アプリケーション11の他、機能ブロックとして、TCP/IP部13と印刷ジョブ送信部12とを有している。TCP/IP部13は、上述したカスタムネットワークボード100のTCP/IP部10と同様の機能および構成を有している。印刷ジョブ送信部12は、アプリケーション11の印刷要求に応じて印刷ジョブを生成し、生成された印刷ジョブをTCP/IP部13を介してプリンタPRTに送信する。なお、分散印刷が指定された第1の印刷ジョブは、カスタムネットワークボード100を備えるプリンタPRT1に対してのみ送信され、分散印刷が指定されていない通常の印刷ジョブは、プリンタPRT1〜PRT4のいずれに対しても送信されることができる。
【0032】
・印刷ジョブについて:
分散印刷処理を説明する前に、図3を参照して、本実施例に用いられる印刷ジョブについて説明する。図3は、印刷ジョブの構成を説明する概念図である。図3(a)は、印刷ジョブの通信に用いられる通信データの構成を示している。図3(b)は、印刷ジョブのデータ構造を示している。
【0033】
印刷ジョブは、TCP/IPプロトコルに従った形式の通信データとして送信される。この通信データは、図3(a)に示すように、ヘッダ400と、データ部450とに分かれている。このうち、ヘッダ400には、その通信データの送信元の機器のIPアドレスである送信元IPアドレスSAと、その機器内における送信元のソフトウエアを特定するポート番号である送信元ポート番号SPとを含む。ヘッダ400は、さらに、その通信データの送信先の機器のIPアドレスである送信先IPアドレスDAと、その機器内における送信先のソフトウエアを特定するポート番号である送信先ポート番号DPとを含む。送信元の機器のソフトウエアから発信された通信データは、送信先IPアドレスDAに従って、そのIPアドレスを有する機器に送信され、さらに、受信したその機器内では、送信先ポート番号DPに従って、その番号のポートで待機しているソフトウエアに渡される。データ部450は、通信の対象となるデータが格納される部分であり、本実施例では、印刷ジョブが格納される。
【0034】
例えば、クライアントCLからプリンタPRT1に分散印刷が指定された第1の印刷ジョブを送信する場合、通信データのヘッダ400には、上述した送信先IPアドレスDAとしてプリンタPRT1のIPアドレスである「IP1」が、送信先ポート番号DPとして「59100」がそれぞれ記載される。「59100」は、第1の印刷ジョブを受信する分散制御部50が待機しているポート番号である。また、ヘッダ400には、送信元IPアドレスSAとして「IPc」が、送信元ポート番号SPとして印刷ジョブ送信部12が待機しているポート番号(具体的な数字は省略)が記載される。一方、クライアントCLからプリンタPRT1に分散印刷が指定されていない通常の印刷ジョブを送信する場合、送信先ポート番号DPとして上述した「59100」に代えて、「9100」が記載される。「9100」は、通常の印刷ジョブの受信を行う印刷ジョブ受信部60が待機しているポート番号である。すなわち、本実施例では、印刷ジョブ送信部12は、ユーザの要求に応じて印刷ジョブの送信時に指定される送信先ポート番号DPの値を切り換えることにより、分散印刷を指定するか、指定しないかを選択することができる。言い換えれば、分散印刷が指定された第1の印刷ジョブは、ポート番号「59100」で待機する分散制御部50に受信される印刷ジョブのことを指し、分散印刷が指定されていない通常の印刷ジョブは、ポート番号「9100」で待機する印刷ジョブ受信部60に渡される印刷ジョブを指している。印刷ジョブの内容自体は、基本的に第1の印刷ジョブと通常の印刷ジョブとの間に違いはない。
【0035】
図3(b)を参照して、印刷ジョブのデータ構造について説明する。印刷ジョブJBは、図3(b)に示すように、ジョブ制御言語部501と、ページ記述言語部502を有している。ページ記述言語部502は、印刷内容を表す印刷データが所定のページ記述言語を用いて記述されている部分である。ページ記述言語としては、例えば、ESC/PageやPostscriptなどが用いられ得る。ジョブ制御言語部501には、ページ記述言語部502に記述された印刷データを印刷するために必要な属性が記述されている。ジョブ制御言語部501は、所定のジョブ制御言語、本実施例ではEJL(Epson Job Language)を用いて記述されている。
【0036】
図3(b)の下側は、ジョブ制御言語部501に記述された内容の具体例を示している。ジョブ制御言語部501は、上述した属性として、印刷用紙サイズ、ページ記述言語部502の記述に使用されているページ記述言語の種別等と共に、総ページ数情報TP、印刷部数情報PCを含んでいる。総ページ数情報TPは、ページ記述言語部502に含まれる印刷データの総ページ数Qを示している。図3(b)に示す例では、総ページ数情報TPとして、総ページ数Qは8ページであることが記述されている。印刷部数情報PCは、印刷されるべき印刷部数QTを示している。図3(b)に示す例では、印刷部数情報PCとして、印刷部数QTは4部であることが記述されている。
【0037】
ジョブ制御言語部501には、さらに、ページ特定情報PEを含めることができる。ページ特定情報PEは、ページ記述言語部502に含まれる印刷データの全てのページの中から印刷すべきページを特定する情報である。印刷ジョブのジョブ制御言語部501にページ特定情報PEが含まれている場合、印刷ジョブを受信したプリンタPRTは、ページ記述言語部502に含まれる印刷データのうちページ特定情報PEによって特定されたページのみを選択的に印刷する。ページ特定情報PEは、開始ページ番号S、および、終了ページ番号Eを含んでいる。これによって、開始ページ番号Sから終了ページ番号Eまでの、1または連続する複数のページが特定される。図3(b)に示す例では、開始ページ番号(STARTPAGE)として「5」が、終了ページ番号(ENDPAGE)として「7」が記述されている。したがって、図3(b)に示す印刷ジョブは、1〜8ページまでの8ページ分の印刷データを含んでいるが、そのうち5ページから7ページまでの3ページの印刷を要求していることになる。一方、ジョブ制御言語部501にページ特定情報PEが含まれていない印刷ジョブは、ページ記述言語部502に含まれる印刷データの全てのページの印刷を要求しているものと解釈される。
【0038】
・分散方法:
図4および図5を参照して、本実施例における分散制御部50が第1の印刷ジョブJB1を分散する際に用いる2種類の分散方法について説明する。図4は、ページ分散の概要を示す説明図である。図5は、部数分散の概要を示す説明図である。
【0039】
上述した2種類の分散方法は、ページ分散と、部数分散である。ページ分散は、複数ページに亘る印刷をページ単位で分散先プリンタに分散する方法である。部数分散は、複数部数の印刷を部数単位で分散先プリンタに分散する方法である。ページ分散は、第1の印刷ジョブJB1が、複数ページに亘る印刷データの印刷を1部以上要求する場合に用いることができる。一方、部数分散は、第1の印刷ジョブJB1が、1ページ以上の印刷データの印刷を複数部数要求する場合に用いることができる。従って、第1の印刷ジョブJB1が、複数ページに亘る印刷データの印刷を、複数部数要求する場合には、ページ分散と部数分散のどちらの方法も用いることができる。かかる場合にどちらの方法を選択するかについては後述することとし、まず、ページ分散と部数分散について具体例を挙げて説明する。
【0040】
本具体例では、図4および図5に示すように、クライアントCLからプリンタPRT1に分散印刷が指定された第1の印刷ジョブJB1が送信される。そして、第1の印刷ジョブJB1を受信したプリンタPRT1の分散制御部50が、第1の印刷ジョブにより要求される印刷を、分散先プリンタとしての4つのプリンタPRT1〜PRT4に分散する。
【0041】
クライアントCLからプリンタPRT1に送信される第1の印刷ジョブJB1は、送信先IPアドレスDAとして「IP1」、送信先ポート番号DPとして「59100」が記述されたヘッダ400を有する通信データとして送信される。実際には、第1の印刷ジョブJB1は、複数のTCPパケットに分割され、分割されたパケットごとにヘッダ400を付加されて、送信される。しかしながら、図4では、図を見やすくするため、第1の印刷ジョブJB1全体に、1つのヘッダ400が付加された図を示している。このような図示は、後述する第2の印刷ジョブJB21〜JB24についても同様である。
【0042】
第1の印刷ジョブJB1のジョブ制御言語部501には、上述した総ページ数情報TPおよび印刷部数情報PCが含まれる。図4および図5に示す例では、総ページ数Qは8であること、および印刷部数QTは4であることが記述されている。すなわち、第1の印刷ジョブJB1は、一部あたり8ページに亘る文書を4部印刷することを要求している。一方、第1の印刷ジョブJB1として送信されてくる印刷ジョブに、印刷する必要のない印刷データを含める必要は通常はない。従って、第1の印刷ジョブJB1のジョブ制御言語部501には、ページ特定情報PEが含まれていないか、あるいは、総ページ数情報TPに記述されたページ数の全てを特定するページ特定情報PEが含まれているのが通常である。本実施例における第1の印刷ジョブJB1には、図4および図5に示すように、ページ特定情報PEは含まれていないものとする。
【0043】
第1の印刷ジョブJB1のページ記述言語部502には、総ページ数Qに対応する印刷データがページ記述言語により記述されている。図4に示す例では、8ページ分の印刷データDTが、ページ記述言語部502に記述されている。
【0044】
このような第1の印刷ジョブJB1をページ分散により分散する場合について、まず、説明する(図4)。ページ分散が用いられる場合は、分散制御部50のジョブ分散部55は、各分散先プリンタに割り当てられる割当ページを決定する。具体的には、ジョブ分散部55は、分散先プリンタごとに、割当ページの開始ページ番号Sと終了ページ番号Eとを決定する。図4に示す例では、
1台目の分散先プリンタ(プリンタPRT1):S=1、E=2;
2台目の分散先プリンタ(プリンタPRT2):S=3、E=4;
3台目の分散先プリンタ(プリンタPRT3):S=5、E=6;
4台目の分散先プリンタ(プリンタPRT4):S=7、E=8;
というように、各分散先プリンタに2ページずつ割当てている。
【0045】
ジョブ分散部55は、第1の印刷ジョブJB1に決定された割当ページを特定するためのページ特定情報PEを追加することによって、第2の印刷ジョブJB21〜JB24を作成する。そして、第2の印刷ジョブJB21〜JB24に記述されている印刷部数情報PCは、第1の印刷ジョブJB1から変更されていないので、各第2の印刷ジョブの印刷部数QTは、それぞれ4部である。ジョブ分散部55は、作成された第2の印刷ジョブJB21〜JB24を各分散先プリンタに送信することによって、第1の印刷ジョブJB1の分散を行う。
【0046】
なお、図4に示すように、第2の印刷ジョブJB21〜JB24は、通常の印刷ジョブであるので、第2の印刷ジョブJB21〜JB24を送信する通信データのヘッダ400には、送信先ポート番号DPとして「9100」が記述される。
【0047】
第2の印刷ジョブJB21〜JB24を受信したプリンタPRTは、割り当てられたページを、指定された部数ずつ印刷する。例えば、第2の印刷ジョブJB21を受信したプリンタPRT1は、1ページと2ページを4部ずつ、合計8枚の印刷を実行する。
【0048】
次に、第1の印刷ジョブJB1を部数分散により分散する場合について、説明する(図5)。部数分散が用いられる場合は、分散制御部50のジョブ分散部55は、各分散先プリンタに割り当てられる割当部数を決定する。図5に示す例では、1台目〜4台目の各分散先プリンタ(プリンタPRT1〜PRT4)に、1部ずつ割り当てている。
【0049】
ジョブ分散部55は、第1の印刷ジョブJB1の印刷部数情報PCに記述されている印刷部数QTの値を、割当部数1に変更することによって、第2の印刷ジョブJB21〜JB24を作成する。第2の印刷ジョブJB21〜JB24にはページ特定情報PEは、追加されていないので、第2の印刷ジョブJB21〜JB24により印刷を要求されるページは、全8ページである。ジョブ分散部55は、ページ分散の場合と同様に、作成された第2の印刷ジョブJB21〜JB24を各分散先プリンタに送信することによって、第1の印刷ジョブJB1の分散を行う。
【0050】
第2の印刷ジョブJB21〜JB24を受信したプリンタPRTは、全ページを、指定された部数だけ印刷する。図5の例では、各プリンタPRT1〜PRTは、8ページの文書を1部ずつ印刷する。
【0051】
以上のように、ページ分散と部数分散のいずれの分散方法を用いても、システム全体としては、第1の印刷ジョブJB1が要求するとおり、8ページの文書が4部印刷される。
【0052】
・割当のアルゴリズム
図6および図7を参照して、ページ分散において割当ページ数を決定するアルゴリズム、および、部数分散において割当部数を決定するアルゴリズムについて説明する。図6は、ページ分散において分散先プリンタに割り当てられるページ数の一例を示すテーブルである。図7は、部数分散において分散先プリンタに割り当てられる部数の一例を示すテーブルである。
【0053】
ここで、ページ分散における割当ページ数は、以下の2つの考え方に基づいて決定される。
1.各分散先プリンタに、できるだけ均等なページ数を割り当てる。
2.完全に均等に割り当てられない場合、すなわち、印刷が要求される総ページ数Qが、分散先プリンタの数Mで割り切れない場合には、端数は、ページ順の早いページ、すなわち、ページ番号が小さいページを割り当てられる分散先プリンタから順に1ページずつ割り当てる。
【0054】
図6には、4台の分散先プリンタに分散される場合に、上述した考え方に基づいて求められた割当ページの数が示されている。分散先プリンタ番号mが小さい分散先プリンタほど、ページ順の早いページが割り当てられるものとする。図6に示すように、印刷が要求される総ページ数Qが、分散先プリンタの数Mで割り切れる場合には、各分散先プリンタにそれぞれ同じページ数が割り当てられる。例えば、総ページ数Q=12であり、分散先プリンタの数が4である場合には、各分散先プリンタに3ページずつ割り当てられる。一方、総ページ数Qが、分散先プリンタの数Mで割り切れない場合には、端数は、ページ順の早いページが割り当てられる分散先プリンタに、1ページずつ割り当てられる。例えば、総ページ数Q=14であり、分散先プリンタの数が4である場合には、総ページ数を分散先プリンタの数4で割った余りである2ページは、ページ順の早いページが割り当てられる2台の分散先プリンタに、それぞれ1ページずつ割り当てられる。
【0055】
一方、部数分散における割当部数は、以下の2つの考え方に基づいて決定される。
1.各分散先プリンタに、できるだけ均等な部数を割り当てる。
2.完全に均等に割り当てられない場合、すなわち、印刷が要求される印刷部数QTが、分散先プリンタの数Mで割り切れない場合には、端数は、いずれかの分散先プリンタに1部ずつ割り当てる。
【0056】
図7には、4台の分散先プリンタに分散される場合に、上述した考え方に基づいて求められた割当ページの数が示されている。端数は、一例として、分散先プリンタ番号mが小さい分散先プリンタに優先して割り当てるものとしている。例えば、印刷が要求される印刷部数QTが、分散先プリンタの数Mで割り切れる場合には、各分散先プリンタにそれぞれ同じ部数が割り当てられる。一方、印刷部数QTが、分散先プリンタの数Mで割り切れない場合には、端数は、分散先プリンタ番号mが小さい2台の分散先プリンタに、1部ずつ割り当てられる。
【0057】
以下、上述したアルゴリズムを実現するための具体的な計算式について、説明する。まず、ページ分散における割当ページを決定するための式について説明する。印刷を要求される総ページ数=Q、分散先プリンタの数=M、ページ順が早いページが割り当てられる順番に付された分散先プリンタ番号=mとする。そうすると、m番の分散先プリンタの割当ページのページ数P(m)は、以下の式(1)によって、算出される。
【0058】
【数1】

【0059】
ここで、式(1)における関数Int(a)は、数値aの整数部分を取り出す関数である。例えば、Int(3.23)=3である。この数式に、数値Q、M、mを代入すると、図7のテーブルに示す数値を算出することができる。P(m)を用いて、m番の分散先プリンタの割当ページの開始ページ番号S(m)および終了ページ番号E(m)は、それぞれ以下の式(2)(3)によって算出される。
【0060】
【数2】

【0061】
次に、部数分散における割当部数を決定するための式について説明する。印刷を要求される印刷部数=QT、分散先プリンタの数=M、端数が割当てられる順番に付された分散先プリンタ番号=mとする。m番の分散先プリンタの割当部数C(m)は、上記の式(1)の総ページ数Qを、印刷部数QTで置き換えた式(4)によって、算出される。
【0062】
【数3】

【0063】
・分散印刷処理:
以上説明した2種類の分散方法を踏まえて、分散制御部50が実行する分散印刷処理について、図8〜図13を参照して説明する。図8は、分散印刷処理の処理ルーチンを示すフローチャートである。図9は、分散先プリンタ特定処理の処理ルーチンを示すフローチャートである。図10は、分散方法選択処理の処理ルーチンを示すフローチャートである。図11は、優先情報の一例を示す説明図である。
【0064】
分散印刷処理は、カスタムネットワークボード100のCPU20が備える分散制御部50によって実行される処理である。カスタムネットワークボード100が搭載されたプリンタPRT1が、印刷ジョブを受け付ける状態にあるとき、分散制御部50の分散ジョブ受信部51は、上述した第1の印刷ジョブJB1の着信を待つ(ステップS102)。クライアントCLから第1の印刷ジョブJB1、すなわち、送信先ポート番号DPが「59100」である印刷ジョブがプリンタPRT1に着信すると(ステップS102:YES)、分散ジョブ受信部51は、TCP/IP部10を介して、第1の印刷ジョブJB1を受信する。分散ジョブ受信部51は、まず、ジョブ制御言語部501を含む印刷ジョブの先頭部分を受信する(ステップS104)。
【0065】
分散制御部50は、受信された第1の印刷ジョブにより印刷を要求される総ページ数Qおよび印刷部数QTを取得する(ステップS106)。具体的には、分散制御部50は、ジョブ制御言語部501を読み出し、第1の印刷ジョブに含まれる総ページ数情報TPおよび印刷部数情報PCを取得する。
【0066】
続いて、分散制御部50は、分散先プリンタ特定処理を実行する(ステップS108)。分散先プリンタ特定処理は、分散制御部50の分散先特定部52によって実行される処理である。図9に示すように、分散先プリンタ特定処理が開始されると、分散先特定部52は、ネットワーク上に接続された機器のIPアドレスを取得する(ステップS202)。分散先特定部52は、分散先指定ファイル格納部34に分散先指定ファイルが格納されている場合には、分散先指定ファイルを参照して、IPアドレスを取得する。分散先指定ファイルには、分散先として使用したいプリンタのIPアドレスが記載されている。このような分散先指定ファイルは、プリンタPRT1が初期設定される際に、設定用コンピュータなどを用いてプリンタPRT1に格納される。なお、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタPRT1も使用される場合には、自己プリンタPRT1のIPアドレス「IP1」も、分散先指定ファイルに記載される必要がある。
【0067】
一方、分散先指定ファイルが格納されていない場合には、分散先特定部52は、SNMPマネージャ40を用いて、問い合わせコマンドのブロードキャストを行うことにより、LANに接続されている各機器に対してIPアドレスを問い合わせ、応答されたIPアドレスを取得する。
【0068】
次に、分散先特定部52は、取得されたIPアドレスを割り当てられた各機器に関する情報を取得する(ステップS204)。具体的には、分散先特定部52は、SNMPマネージャ40を用いて、ユニキャストで各機器に対して問い合わせを行い、問い合わせの応答として機種名およびステータスを取得する。
【0069】
分散先特定部52は、取得された機種名およびステータスに基づいて、ネットワーク上に接続された機器の中から所定の条件を満たすプリンタを検索し、検索されたプリンタを分散先プリンタとして特定する(ステップS206)。所定の条件の一例を、以下に示す。
1.自己プリンタPRT1と同一の機種であること。
2.電源が投入されていること。
3.トナー残量が所定の閾値以上であること。
4.オンライン状態にあること。
5.印刷中でないこと(プリンタエンジン90が駆動中でないこと)。
【0070】
これらの項目についての情報は、全て上述のSNMPマネージャ40による問い合わせによって、取得することができる。自己プリンタPRT1と同一機種であることを、分散先プリンタとして選択する条件とするのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。また、カラー印刷や両面印刷指定も統一して実行させることができる。分散先指定ファイルで指定されているIPアドレスの機器に対しても、機種名の問い合わせを行うのは、次の理由による。すなわち、分散先指定ファイル作成後に、機器の入れ換えなどにより、分散先指定ファイルに記載されていたIPアドレスが、自己のプリンタPRT1と別機種のプリンタに割り振られたり、プリンタ以外の機器に割り振られたりする可能性があるので、自己のプリンタPRT1と同一機種であるかの確認を行うためである。
【0071】
2〜5の条件は、すぐに印刷できないプリンタを分散先プリンタとして選択することを防ぐためである。オンライン状態とは、用紙切れや紙詰まりといったエラーを起こしている状態(オフライン状態)ではない正常な状態のことを指す。
【0072】
そして、分散先特定部52は、1台以上の分散先プリンタが特定されたか否かを判断する(ステップS208)。一台以上特定されている場合(ステップS208:YES)には、分散先特定部52は分散先プリンタ特定処理を終了する。一台の分散先プリンタも特定されていない場合(ステップS208:NO)には、分散先特定部52は、所定期間待機して(ステップS210)、ステップS202〜ステップS208の処理を繰り返す。
【0073】
分散先プリンタが特定されると、分散制御部50は、分散方法選択処理を実行する(ステップS110)。分散方法選択処理は、分散制御部50の分散方法評価部53および分散方法選択部54によって実行される。分散方法選択処理が開始されると、まず、分散方法評価部53は、ページ分散を用いる場合における最大印刷枚数Pmaxを算出する(ステップS302)。最大印刷枚数は、各分散先プリンタのうち、割当印刷枚数が最大の分散先プリンタにおける割当印刷枚数である。割当印刷枚数は、ある分散方法を用いた場合に、ある分散先プリンタに割当られた印刷が実行された結果、その分散先プリンタから出力される印刷媒体の枚数である。最大印刷枚数Pmaxは、以下の式(5)によって示される。
Pmax=MAX{P(m)}×QT …(5)
【0074】
ここで、MAX{P(m)}は、上述した各分散先プリンタの割当ページのページ数P(m)のうち、最大の値である。上述したページ分散のアルゴリズムの場合には、MAX{P(m)}=P(1)であるので、Pmax=P(1)×QTとなる。
【0075】
次に、分散方法評価部53は、部数分散を用いる場合における最大印刷枚数Cmaxを算出する(ステップS304)。最大印刷枚数Cmaxは、以下の式(6)によって示される。
Cmax=MAX{C(m)}×Q …(6)
【0076】
ここで、MAX{C(m)}は、上述した各分散先プリンタの割当部数C(m)のうち、最大の値である。上述した部数分散のアルゴリズムの場合には、MAX{C(m)}=C(1)であるので、Cmax=C(1)×Qとなる。
【0077】
ステップS302およびS304において算出されたPmaxおよびCmaxが、対応する分散方法を用いた場合における印刷に要する所要時間の評価値となる。本実施例では、分散先プリンタとして特定されるための上述した条件によって、複数の分散先プリンタは、同一の機種とされる。このため、各分散先プリンタの印刷速度(例えば、PPM(page per minute)によって表される)は同じである。従って、各分散先プリンタにおいて印刷に要する時間は、ほぼ印刷枚数によって決まる。この結果、分散印刷に要する時間は、最も多くの枚数を印刷する分散先プリンタの印刷枚数によって決まることになる。
【0078】
次に、分散方法選択部54は、分散方法評価部53によって算出されたPmaxとCmaxを比較する(ステップS306)。比較の結果、Pmax<Cmaxである場合には、すなわち、ページ分散を用いた方が印刷の所要時間が短いと判断される場合には、分散方法選択部54は、用いるべき分散方法としてページ分散を選択する(ステップS312)。一方、比較の結果、Pmax>Cmaxである場合には、すなわち、部数分散を用いた方が印刷の所要時間が短いと判断される場合には、分散方法選択部54は、用いるべき分散方法として部数分散を選択する(ステップS314)。
【0079】
また、比較の結果、Pmax=Cmaxである場合には、分散方法選択部54は、優先情報を優先情報格納部38から取得する(ステップS310)。優先情報は、分散制御部50が用いることができる分散方法の中から、選択の際に優先される分散方法を特定するための情報である。本実施例では、ページ分散と部数分散のうちのいずれかが、優先情報として優先情報格納部38に記述されている(図11の例では部数分散)。優先情報は、ユーザが設定することとしても良いし、予め製品出荷時から設定されていても良い。分散方法選択部54は、取得された優先情報に基づいてページ分散か部数分散のいずれかを選択する(ステップS312またはS314)。
【0080】
分散方法が選択されると、分散方法選択処理は終了され、処理は、図8に示すフローチャートにリターンされる。選択された分散方法が部数分散である場合には、ジョブ分散部55は、上述した式(4)を用いて、各分散先プリンタの割当部数C(m)を決定する(ステップS114)。そして、ジョブ分散部55は、図5を参照して説明したように、ジョブ制御言語部501の印刷部数情報PCを変更した第2の印刷ジョブの先頭部分を各分散先プリンタに送信する(ステップS116)。一方、選択された分散方法がページ分散である場合には、ジョブ分散部55は、上述した式(2)(3)を用いて、各分散先プリンタの割当ページの開始ページ番号S(m)および終了ページ番号E(m)を決定する(ステップS118)。そして、ジョブ分散部55は、図4を参照して説明したように、ジョブ制御言語部501のページ特定情報PEを変更した第2の印刷ジョブの先頭部分を各分散先プリンタに送信する(ステップS120)。
【0081】
次に、分散制御部50の分散ジョブ受信部51は、第1の印刷ジョブJB1の先頭部分以降の部分をクライアントCLから受信し、分散制御部50のジョブ分散部55は、受信された先頭部分以降の部分を、そのまま順次各プリンタPRT1〜PRT4に送信する(ステップS122)。その後、分散制御部50は、第1の印刷ジョブJB1の全ての部分を受信したか否かを判断する(ステップS124)。分散制御部50は、第1の印刷ジョブJB1の全てを受信していないと判断すると(ステップS124:NO)、ステップS122に戻る。一方、分散制御部50は、第1の印刷ジョブJB1の受信が終了したと判断すると(ステップS124:YES)、本処理を終了する。
【0082】
・分散方法の選択の具体例
図12および図13は、分散方法の選択の具体例を示す説明図である。これらの具体例における分散印刷では、理解の容易のため、2台の分散先プリンタ(分散先プリンタ1および分散先プリンタ2と呼ぶ。)に、第1の印刷ジョブJB1を分散するものとする。
【0083】
図12は、第1の印刷ジョブJB1が、1部あたり3ページの文書を2部印刷することを要求する(Q=3、QT=2)場合を示している。この第1の印刷ジョブJB1を上述した部数分散(図5、式(4)参照)を用いて分散する場合を考える。この場合には、図12に示すように、2台の分散先プリンタに1〜3ページを1部ずつ分散することになる。したがって、分散先プリンタ1および分散先プリンタ2の印刷枚数は、共に3×1=3となる。したがって、上述した部数分散時の最大印刷枚数Cmaxは、3である。
【0084】
次に、この第1の印刷ジョブJB1を上述したページ分散(図4、式(2)(3)参照)を用いて分散する場合を考える。この場合には、図12に示すように、分散先プリンタ1に、1〜2ページを2部分散し、分散先プリンタ2に3ページを2部分散することになる。したがって、分散先プリンタ1の印刷枚数は、2×2=4となり、分散先プリンタ2の印刷枚数は、1×2=2となる。したがって上述したページ分散時の最大印刷枚数Pmaxは、4である。Pmax>Cmaxであるから上述した分散印刷処理によれば、分散方法として部数分散が選択される。
【0085】
図13は、第1の印刷ジョブJB1が、1部あたり2ページの文書を3部印刷することを要求する(Q=2、QT=3)場合を示している。この第1の印刷ジョブJB1を上述した部数分散(図5、式(4)参照)を用いて分散する場合を考える。この場合には、図13に示すように、分散先プリンタ1に1〜2ページを2部分散し、分散先プリンタ2に1〜2ページを1部分散することになる。したがって、分散先プリンタ1の印刷枚数は、2×2=4となり、分散先プリンタ2の印刷枚数は、2×1=2となる。したがって、上述した部数分散時の最大印刷枚数Cmaxは、4である。
【0086】
次に、この第1の印刷ジョブJB1を上述したページ分散(図4、式(2)(3)参照)を用いて分散する場合を考える。この場合には、図13に示すように、分散先プリンタ1に、1ページを3部分散し、分散先プリンタ2に2ページを3部分散することになる。したがって、分散先プリンタ1および分散先プリンタ2の印刷枚数は、共に1×3=3となる。したがって上述したページ分散時の最大印刷枚数Pmaxは、3である。そうすると、Pmax<Cmaxであるから上述した分散印刷処理によれば、分散方法としてページ分散が選択される。
【0087】
以上説明した実施例によれば、カスタムネットワークボード100は、第1の印刷ジョブJB1による印刷要求の内容に応じて、部数分散とページ分散のうち、所要時間の短い分散方法を選択する。この結果、実施例に係る印刷システムは、短時間で効率よく分散印刷を実行することができる。
【0088】
また、カスタムネットワークボード100は、最大印刷枚数CmaxおよびPmaxに基づいて、印刷の所要時間を評価する。この結果、分散印刷に要する所要時間を、容易に評価することができる。本実施例では、各分散先プリンタは同一機種であり、印刷速度が等しいので、印刷枚数に基づいて印刷の所要時間を評価することができる。
【0089】
さらに、カスタムネットワークボード100は、2つの分散方法の最大印刷枚数CmaxおよびPmaxが互いに等しい場合には、優先情報に基づいて分散方法を選択する。この結果、所要時間の評価が等しい場合であっても、好ましい一つの分散方法を選択することができる。なお、優先情報は、ユーザにより設定されることも可能であるので、ユーザの意図を反映して分散方法の選択を行うことができる。
【0090】
また、カスタムネットワークボード100は、分散先プリンタとして用いることができるプリンタPRT1に内蔵されているので、専用の分散サーバ等の外部機器を用いることなく、複数のプリンタPRTからなる簡易な構成で、効率の良い分散印刷を実現できる。
【0091】
B.変形例:
・第1変形例:
上記実施例では、優先情報は、優先情報格納部38から取得されるが、他の方法により取得されても良い。例えば、優先情報は、クライアントCLによって第1の印刷ジョブJB1ごとに設定され、第1の印刷ジョブJB1に含まれても良い。図14は、優先情報を含む印刷ジョブの一例を示す説明図である。図14に示す印刷ジョブJBには、実施例における印刷ジョブJBの内容に加えて、ジョブ制御言語部501に優先情報PIが記述されている。例えば、優先情報PIとして記述されている内容が、「PM=1」である場合には「ページ分散」が、「PM=2」である場合には「部数分散」が、それぞれ優先されることとすることができる。このような印刷ジョブJBを第1の印刷ジョブJB1として用いる場合には、カスタムネットワークボード100は、第1の印刷ジョブJB1ごとに容易に優先情報を取得できる。
【0092】
また、優先情報は、カスタムネットワークボード100にMIBオブジェクトとして格納されていても良い。こうすれば、クライアントCL等、ネットワークに接続された計算機からSNMPプロトコルを用いて、容易に優先情報の設定を行うことができる。
【0093】
・第2変形例:
図15および図16を参照して、第2変形例について説明する。図15は、第2変形例における第1の印刷ジョブJB1のデータ構造を示す説明図である。図16は、第2変形例における分散印刷処理の処理ルーチンを示すフローチャートである。
【0094】
本変形例における第1の印刷ジョブJB1は、実施例における第1の印刷ジョブJB1と異なり、ジョブ制御言語部501が2つの部分、すなわち、第1のジョブ制御言語部501aと第2のジョブ制御言語部501bとに分かれている。第1のジョブ制御言語部501aは、ページ記述言語部502の前に配置される一方で、第2のジョブ制御言語部501bはページ記述言語部502の後ろに配置される。すなわち、本変形例における第1の印刷ジョブJB1は、分散制御部50の分散ジョブ受信部51に受信される際、第1のジョブ制御言語部501a、ページ記述言語部502、第2のジョブ制御言語部501bという順序で受信される。第2のジョブ制御言語部501bには、第1および第2の実施例においてジョブ制御言語部501に含まれていた情報のうち総ページ数情報TPが記述され、第1のジョブ制御言語部501aには、それ以外の情報が記述されている。プリンタコントローラ80およびクライアントCLのプリンタドライバの仕様によって、第1の印刷ジョブJB1がこのような構造を有する場合がある。
【0095】
本変形例における分散印刷処理について説明する。図8を参照して説明した実施例における分散印刷処理と異なる点は、図5におけるステップS104に代えてステップS404が実行される点と、図5におけるステップS116、S120〜S124に代えて、ステップS416およびS420が実行される点である(図16)。
【0096】
ステップS504において、分散制御部50の分散ジョブ受信部51は、第1の印刷ジョブJB1の先頭部分だけでなく、第1の印刷ジョブJB1の全体を受信する。分散制御部50は、次のステップS106において、総ページ数情報TPを参照して総ページ数Qを取得する必要があるため、印刷ジョブのうち最後に受信される第2のジョブ制御言語部501bを受信しておく必要があるからである。
【0097】
ステップS416およびS420において、ジョブ分散部55は、第1の印刷ジョブJB1において印刷部数情報PCを変更、あるいは、ページ特定情報PEを追加することにより第2の印刷ジョブJB21〜JB24を生成し、各分散先プリンタに送信する。ステップS404において、第1の印刷ジョブJB1の全体が受信されているので、実施例のように、第1の印刷ジョブJB1の受信と、第2の印刷ジョブJB21〜JB24の送信を繰り返す必要はない。
【0098】
他のステップにおける処理は、実施例と同一であるので、図16において図8と同一の符号を付しその説明を省略する。
【0099】
本変形例によれば、第1の印刷ジョブJB1の全体を一度に受信する必要があるので、バッファ36には、第1の印刷ジョブJB1の全体を格納できる領域が確保される必要がある。それ以外は、上記実施例と同様の作用・効果を得ることができる。
【0100】
・第3変形例:
上記実施例では、印刷に要する所要時間を最大印刷枚数CmaxおよびPmaxを用いて評価しているが、分散先プリンタの印刷速度に関する特性を考慮しても良い。例えば、複数の分散先プリンタの印刷速度が異なる場合には、各分散先プリンタの印刷速度を考慮して所要時間を評価しても良い。
【0101】
かかる場合には、分散方法評価部53は、各分散先プリンタの印刷速度を取得する。例えば、カスタムネットワークボード100のメモリ30に、プリンタの機種ごとの印刷速度PT(単位は例えば、PPM(page per minute))を記録したテーブルを、格納しておく。そして、分散方法評価部53は、上述したステップS204において取得される分散先プリンタの機種名に基づいて、上記テーブルから各分散先プリンタの印刷速度PT(m)(mは分散先プリンタの番号)を取得する。あるいは、各分散先プリンタが、MIB情報として印刷速度PT(m)を特定する情報を有していても良い。かかる場合には、分散方法評価部53は、SNMPプロトコルを用いた問い合わせにより、各分散先プリンタから印刷速度PT(m)を取得することができる。
【0102】
そして、分散方法評価部53は、各分散先プリンタの印刷の所要時間を、部数分散の場合とページ分散の場合についてそれぞれ算出する。例えば、部数分散の場合におけるm番目の分散先プリンタの所要時間をCNT(m)とし、ページ分散の場合におけるm番目の分散先プリンタの所要時間をPNT(m)とすると、CNT(m)およびPNT(m)は、以下の式(7)(8)を用いて算出される。
CNT(m)=C(m)×Q/PT(m) …(7)
PNT(m)=P(m)×QT/PT(m) …(8)
【0103】
分散方法評価部53は、各分散先プリンタの所要時間CNT(m)およびPNT(m)の最大値MAX{CNT(m)}およびMAX{PNT(m)}を算出する。分散方法選択部54は、最大値MAX{CNT(m)}とMAX{PNT(m)}を比較して、分散方法を選択する。MAX{CNT(m)}<MAX{PNT(m)}である場合には部数分散が、MAX{CNT(m)}>MAX{PNT(m)}である場合にはページ分散が、それぞれ選択される。MAX{CNT(m)}=MAX{PNT(m)}である場合には、実施例同様に、優先情報に基づいて分散方法が選択される。
【0104】
こうすれば、各分散先プリンタの性能を考慮して、分散方法を選択するので、各分散先プリンタの印刷速度が異なる場合であっても、適切な分散方法を選択することができる。
【0105】
・その他の変形例:
実施例において説明した部数分散およびページ分散に代えて、または、これらの分散方法と共に、他の異なる様々な分散方法を用いても良い。例えば、各分散先プリンタが同一機種であることを条件としない場合には、各分散先プリンタの印刷速度を考慮して、割当ページ数P(m)または割当部数C(m)を決定する分散方法を用いても良い。かかる場合には、上述した第3変形例で説明した印刷速度を考慮した分散方法の選択と組み合わせることにより、各分散先プリンタの印刷速度が異なる場合において、より効率的に短時間で分散印刷を完了することができる。
【0106】
また、分散制御部50が3種類以上の分散方法を用いることができる場合には、全ての分散方法について、印刷の所要時間を評価して、最も所要時間が短い分散方法を選択することとすれば良い。
【0107】
上記実施例において、プリンタPRTの各部は、ソフトウエア的に構成されているものを、ハードウエア的に構成するようにしてもよいし、ハードウエア的に構成されているものを、ソフトウエア的に構成するようにしてもよい。
【0108】
上記実施例におけるプリンタエンジン90は、種々のタイプのものが用いられ得る。例えば、レーザー式に限らず、インクジェット式、昇華型、ドットインパクト式、熱転写型など、あらゆるタイプのプリンタエンジンが用いられ得る。
【0109】
以上、本発明の実施例および変形例について説明したが、本発明はこれらの実施例および変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
【図面の簡単な説明】
【0110】
【図1】本発明の実施例における分散印刷システムの概略構成を示す説明図。
【図2】実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図。
【図3】印刷ジョブの構成を説明する概念図。
【図4】ページ分散の概要を示す説明図。
【図5】部数分散の概要を示す説明図。
【図6】ページ分散において分散先プリンタに割り当てられるページ数の一例を示すテーブル。
【図7】部数分散において分散先プリンタに割り当てられる部数の一例を示すテーブル。
【図8】分散印刷処理の処理ルーチンを示すフローチャート。
【図9】分散先プリンタ特定処理の処理ルーチンを示すフローチャート。
【図10】分散方法選択処理の処理ルーチンを示すフローチャート。
【図11】優先情報の一例を示す説明図。
【図12】分散方法の選択の具体例を示す第1の説明図である。
【図13】分散方法の選択の具体例を示す第2の説明図である。
【図14】優先情報を含む印刷ジョブの一例を示す説明図。
【図15】第2変形例における第1の印刷ジョブJB1のデータ構造を示す説明図。
【図16】第2変形例における分散印刷処理の処理ルーチンを示すフローチャート。
【符号の説明】
【0111】
10…TCP/IP部
11…アプリケーション
12…印刷ジョブ送信部
13…TCP/IP部
20…CPU
30…メモリ
32…OID格納部
34…分散先指定ファイル格納部
36…バッファ
38…優先情報格納部
40…SNMPマネージャ
50…分散制御部
51…分散ジョブ受信部
52…分散先特定部
53…分散方法評価部
54…分散方法選択部
55…ジョブ分散部
60…印刷ジョブ受信部
70…SNMPエージェント
80…プリンタコントローラ
81…MIBファイル
82…プリンタバッファ
90…プリンタエンジン
100…カスタムネットワークボード
200…ネットワークボード
400…ヘッダ
450…データ部
501…ジョブ制御言語部
502…ページ記述言語部
PRT…プリンタ
PRB…プリンタ本体

【特許請求の範囲】
【請求項1】
複数の印刷装置と接続され、前記複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散する印刷制御装置であって、
前記印刷ジョブを受信する受信部と、
受信された前記印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価する評価部と、
前記評価の結果に基づいて、複数種類の分散方法の中から、前記所要時間の短い分散方法を選択する選択部と、
前記選択された分散方法を用いて、受信された前記印刷ジョブの分散を実行する分散部と、
を備える印刷制御装置。
【請求項2】
請求項1に記載の印刷制御装置において、
前記複数種類の分散方法は、複数ページに亘る印刷を、ページ単位で各分散先印刷装置に分散する第1の方法と、複数部数の印刷を、部数単位で各分散先印刷装置に分散する第2の方法とを含む印刷制御装置。
【請求項3】
請求項1または請求項2に記載の印刷制御装置において、
前記評価は、前記複数の分散先印刷装置にそれぞれ割り当てられる印刷枚数のうち、最大の印刷枚数を用いて行われる印刷制御装置。
【請求項4】
請求項3に記載の印刷制御装置において、
前記選択される分散方法は、前記複数種類の分散方法のうち、前記最大の印刷枚数が最小となる分散方法である印刷制御方法。
【請求項5】
請求項1ないし請求項4のいずれかに記載の印刷制御装置において、
前記選択部は、さらに、
前記複数種類の分散方法のうち、優先される分散方法を特定するための優先情報を取得し、前記評価の結果と前記優先情報とに基づいて、前記分散方法を選択する印刷制御方法。
【請求項6】
請求項5に記載の印刷制御装置において、
前記選択部は、前記評価が等しい分散方法が2以上ある場合には、前記2以上の分散方法のうち、前記優先される分散方法を選択する印刷制御方法。
【請求項7】
請求項5に記載の印刷制御装置において、
前記優先情報は、ユーザの指示に応じて設定される印刷制御装置。
【請求項8】
請求項5ないし請求項7のいずれかに記載の印刷制御装置において、
前記優先情報は、前記印刷ジョブに含まれている印刷制御装置。
【請求項9】
請求項3に記載の印刷制御を装置において、
前記評価は、さらに、各分散先印刷装置の印刷速度に関連する特性を考慮して実行される印刷制御装置。
【請求項10】
前記複数の印刷装置の少なくとも1つに内蔵されている請求項1ないし請求項9のいずれかに記載の印刷制御装置。
【請求項11】
請求項1ないし請求項9のいずれかに記載の印刷制御装置を内蔵する印刷装置。
【請求項12】
複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散する分散方法であって、
前記印刷ジョブを取得し、
取得された前記印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価し、
前記評価の結果に基づいて、複数種類の分散方法の中から、前記所要時間の短い分散方法を選択し、
前記選択された分散方法を用いて、取得された前記印刷ジョブの分散を実行する分散方法。
【請求項13】
複数の印刷装置のうち、分散先となる複数の分散先印刷装置に印刷ジョブを分散するためのコンピュータプログラムであって、
前記印刷ジョブを取得する第1の機能と、
取得された前記印刷ジョブにより要求される印刷に要する所要時間を、複数種類の分散方法について、それぞれ評価する第2の機能と、
前記評価の結果に基づいて、複数種類の分散方法の中から、前記所要時間の短い分散方法を選択する第3の機能と、
前記選択された分散方法を用いて、取得された前記印刷ジョブの分散を実行する第4の機能と、
をコンピュータに実現させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−58384(P2007−58384A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−240834(P2005−240834)
【出願日】平成17年8月23日(2005.8.23)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】