図面 (/)
課題
解決手段
概要
背景
概要
分散印刷におけるユーザの利便性を向上する。 分散元のプリンタPRT1は、分散印刷の対象とされている印刷ジョブを受信すると、分散先プリンタのうち、直ちに印刷を開始できないプリンタから印刷可能となる印刷可能時刻を取得する。分散元プリンタPRT1は、取得された印刷可能時刻に応じて、各分散先プリンタにおける印刷がほぼ同時に完了するように、前記印刷ジョブにより印刷を要求される複数のページを各分散先印刷装置に割り当てる。分散元プリンタPRT1は、割り当てられた割当ページの印刷を要求する新たな印刷ジョブを生成し、各分散先プリンタPRT1〜PRT4に生成された印刷ジョブを送信する。
目的
上述された課題は、複数ページの印刷を要求する印刷ジョブをページ単位で分散する分散印刷システムに固有の課題ではなく、複数部数の印刷が要求される印刷ジョブを部数単位で分散する分散印刷システムにおいても同様の課題である。
効果
実績
- 技術文献被引用数
- 1件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
印刷ジョブを複数の分散先印刷装置に分散する分散元印刷装置であって、前記印刷ジョブを受信する受信手段と、前記各分散先印刷装置から前記各分散先印刷装置において印刷可能な時刻に関する第1の情報を取得する取得手段と、前記各分散先から取得される各前記第1の情報に応じて、前記印刷ジョブにより要求される印刷の負荷を前記各分散先印刷装置に対して割り当てる割当手段と、前記各分散先印刷装置に割り当てられた印刷の負荷に応じて、前記各分散先印刷装置に供給する分散印刷ジョブを個別に生成する分散印刷ジョブ生成手段と、各前記分散印刷ジョブを、各前記分散先印刷装置に対してそれぞれ送信する送信手段と、を備える分散元印刷装置。
請求項2
請求項1記載の分散元印刷装置であって、前記印刷ジョブは、複数のページに渡る印刷を要求する印刷ジョブであり、前記割当手段は、各前記第1の情報に応じて、前記複数のページの互いに異なる一部のページを割当ページとして前記各分散先印刷装置に割り当て、前記分散印刷ジョブ生成手段は、前記各割当ページの印刷を要求する前記分散印刷ジョブを生成する、分散元印刷装置。
請求項3
前記第1の情報には、前記印刷可能となる印刷可能時刻が含まれる、請求項1または請求項2記載の分散元印刷装置。
請求項4
前記第1の情報には、前記印刷可能となるまでの残時間が含まれる、請求項1または請求項2記載の分散元印刷装置。
請求項5
請求項1または請求項2記載の分散先印刷装置であって、前記第1の情報には、前記各分散先印刷装置が、直ちに印刷可能か否かを示す第2の情報が含まれており、前記第1の情報は、前記第2の情報が直ちに印刷可能でないことを示す場合には、更に、前記印刷可能な時刻を示す第3の情報を含む、分散先印刷装置。
請求項6
請求項1または請求項2記載の分散先印刷装置であって、前記第1の情報には、前記各分散先印刷装置が、直ちに印刷可能か否かを示す第2の情報が含まれており、前記第1の情報は、前記第2の情報が直ちに印刷可能でないことを示す場合には、更に、前記印刷可能となるまでの残時間を示す第4の情報を含む、分散先印刷装置。
請求項7
複数の分散先印刷装置と、印刷ジョブを前記複数の分散先印刷装置に分散する印刷制御装置とを備える分散印刷システムであって、前記分散元印刷装置は、前記印刷ジョブを受信する受信手段と、前記各分散先印刷装置から前記各分散先印刷装置において印刷可能な時刻に関する第1の情報を取得する取得手段と、前記各分散先から取得される各前記第1の情報に応じて、前記印刷ジョブにより要求される印刷の負荷を前記各分散先印刷装置に対して割り当てる割当手段と、前記各分散先印刷装置に割り当てられる負荷に応じて、前記各分散先印刷装置に供給する分散印刷ジョブを個別に生成する分散印刷ジョブ生成手段と、各前記分散印刷ジョブを、各前記分散先印刷装置に対してそれぞれ送信する送信手段と、を備え、各前記分散先印刷装置は、前記分散元印刷装置に供給される前記第1の情報を管理する管理手段と、前記分散元印刷装置から送信される前記分散印刷ジョブを受信する分散印刷ジョブ受信手段と、前記分散印刷ジョブを解釈し、前記分散印刷ジョブにより要求される印刷を実行する印刷実行手段と、を備える分散印刷システム。
請求項8
印刷ジョブを複数の分散先印刷装置に分散する分散元印刷装置により実行される分散印刷方法であって、前記印刷ジョブを受信し、前記各分散先印刷装置から前記各分散先印刷装置において印刷可能な時刻に関する第1の情報を取得し、前記各分散先から取得される各前記第1の情報に応じて、前記印刷ジョブにより要求される印刷の負荷を前記各分散先印刷装置に対して割り当て、前記各分散先印刷装置に割り当てられる負荷に応じて、前記各分散先印刷装置に供給する分散印刷ジョブを個別に生成し、各前記分散印刷ジョブを、各前記分散先印刷装置に対してそれぞれ送信する、分散印刷方法。
請求項9
複数の分散先印刷装置と、印刷ジョブを前記複数の分散先印刷装置に分散する分散元印刷装置とを備える分散印刷システムにより実行される分散印刷方法であって、前記分散元印刷装置は、前記印刷ジョブを受信し、前記各分散先印刷装置から前記各分散先印刷装置において印刷可能な時刻に関する第1の情報を取得し、前記各分散先から取得される各前記第1の情報に応じて、前記印刷ジョブにより要求される印刷の負荷を前記各分散先印刷装置に対して割り当て、前記各分散先印刷装置に割り当てられる負荷に応じて、前記各分散先印刷装置に供給する分散印刷ジョブを個別に生成し、各前記分散印刷ジョブを、各前記分散先印刷装置に対してそれぞれ送信し、各前記分散先印刷装置は、前記分散元印刷装置に供給される前記第1の情報を管理し、前記分散元印刷装置から送信される前記分散印刷ジョブを受信し、前記分散印刷ジョブを解釈し、前記分散印刷ジョブにより要求される印刷を実行する、分散印刷方法。
技術分野
背景技術
0002
ネットワークを介して複数のプリンタと接続されている印刷装置が、複数のプリンタに印刷ジョブを分散する分散印刷システムが普及しつつある。分散印刷システムは、例えば、1つの印刷ジョブに含まれる複数ページをページ単位で複数のプリンタに配分して並行して印刷を行うことにより、短時間で複数ページの印刷を完了できる。
0003
特開2002−268850号公報
特開2001−100963号公報
特開平11−110143号公報
特開2003−295705号公報
発明が解決しようとする課題
0004
しかしながら、上述した従来技術の分散印刷システムでは、分散先となるプリンタが直ちに印刷を行えるか否かに関わらず、印刷が要求される複数のページを分散先となる複数の印刷装置に振り分けていた。プリンタは、次のような処理、例えば、電力を節約するためにプリンタエンジンへの電力供給を中断するスタンバイ処理、インクカートリッジのヘッドのクリーニング処理、を実行中の間は、これらの処理が終了するまで印刷を行えない。直ちに印刷を行えるか否かに関わらず印刷すべきページを分散先の印刷装置に振り分けることにより、印刷ジョブにより要求される印刷の完了までの印刷時間が、分散せずに印刷を実行した際の印刷時間よりも長くなり、ユーザにとって不便であるという問題があった。
0005
上述された課題は、複数ページの印刷を要求する印刷ジョブをページ単位で分散する分散印刷システムに固有の課題ではなく、複数部数の印刷が要求される印刷ジョブを部数単位で分散する分散印刷システムにおいても同様の課題である。
0006
本発明は上述した課題に鑑みてなされたものであり、分散印刷におけるユーザの利便性の向上を目的とする。
課題を解決するための手段
0007
上述した課題の少なくとも一部を解決するために、本発明は、印刷ジョブを複数の分散先印刷装置に分散する分散元印刷装置において、前記印刷ジョブを受信する受信手段と、前記各分散先印刷装置から前記各分散先印刷装置において印刷可能な時刻に関する第1の情報を取得する取得手段と、前記各分散先から取得される各前記第1の情報に応じて、前記印刷ジョブにより要求される印刷の負荷を前記各分散先印刷装置に対して割り当てる割当手段と、前記各分散先印刷装置に割り当てられた印刷の負荷に応じて、前記各分散先印刷装置に供給する分散印刷ジョブを個別に生成する分散印刷ジョブ生成手段と、各前記分散印刷ジョブを、各前記分散先印刷装置に対してそれぞれ送信する送信手段と、を備えることを要旨とする。
0008
本発明の印刷装置によれば、分散元印刷装置は、各分散先印刷装置の印刷可能な時刻に関する情報に応じて、印刷ジョブにより要求される印刷の負荷を各分散先印刷装置に分散できる。従って、印刷ジョブにより要求される印刷にかかる印刷時間を短縮できるため、ユーザの利便性を向上できる。
0009
本発明の分散元印刷装置において、前記印刷ジョブは、複数のページに渡る印刷を要求する印刷ジョブであり、前記割当手段は、各前記第1の情報に応じて、前記複数のページの互いに異なる一部を割当ページとして前記各分散先印刷装置に割り当て、前記分散印刷ジョブ生成手段は、前記各割当ページの印刷を要求する前記分散印刷ジョブを生成してもよい。
0010
こうすれば、分散元印刷装置は、印刷ジョブにより要求される複数のページを、各分散先印刷装置の印刷可能な時刻に関する情報に応じて、各分散先印刷装置に割り当てることができる。従って、各分散先印刷装置における印刷をほぼ同時に完了でき、ユーザの利便性を向上できる。
0011
本発明の分散元印刷装置において、前記第1の情報には、前記印刷可能となる印刷可能時刻が含まれてもよい。
0012
本発明の分散元印刷装置によれば、分散先印刷装置から取得する第1の情報に、直接、印刷可能となる印刷可能時刻が含まれるため、分散元印刷装置は、印刷ジョブにより要求される印刷の負荷の各分散先印刷装置への割り当てに用いられる情報である印刷可能時刻を簡易に取得できる。従って、印刷の負荷の割り当て処理の効率を向上できる。
0013
また、本発明の分散元印刷装置には、前記第1の情報には、前記印刷可能となるまでの残時間が含まれてもよい。
0014
本発明の分散元印刷装置によれば、分散先印刷装置から取得する第1の情報に、直接、印刷可能となるまでの残時間が含まれるため、分散元印刷装置は、印刷ジョブにより要求される印刷の負荷の各分散先印刷装置への割り当てに用いられる情報である残時間を簡易に取得できる。従って、印刷の負荷の割り当て処理の効率を向上できる。
0015
本発明の分散先印刷装置において、前記第1の情報には、前記各分散先印刷装置が、直ちに印刷可能か否かを示す第2の情報が含まれており、前記第2の情報が直ちに印刷可能でないことを示す場合には、前記第1の情報には、更に、前記印刷可能な時刻を示す第3の情報を含まれてもよい。
0016
本発明の分散元印刷装置によれば、第3の情報が含まれる第1の情報を全分散先印刷装置から取得する必要がないため、分散元印刷装置の処理負荷を軽減できる。
0017
本発明の分散先印刷装置において、
前記第1の情報には、前記各分散先印刷装置が、直ちに印刷可能か否かを示す第2の情報が含まれており、
前記第1の情報は、前記第2の情報が直ちに印刷可能でないことを示す場合には、更に、前記印刷可能となるまでの残時間を示す第4の情報を含んでもよい。
0018
本発明の分散元印刷装置によれば、第4の情報が含まれる第1の情報を全分散先印刷装置から取得する必要がないため、分散元印刷装置の処理負荷を軽減できる。
0019
本発明において、上述した種々の態様は、適宜、組み合わせたり、一部を省略したりして適用することができる。また、本発明は、上述した分散元印刷装置としての構成の他に、分散元印刷装置による分散印刷方法、分散印刷ジョブを生成する分散元印刷装置と、分散印刷ジョブにより要求される印刷を行う分散先印刷装置とを備える分散印刷システム、かかる分散印刷システムによる分散印刷方法、出力装置に出力データを出力させるためのコンピュータプログラム、かかるコンピュータプログラムをコンピュータ読み取り可能に記録した記録媒体等としても構成できる。いずれの構成においても、上述した各態様を適宜適用可能である。コンピュータが読み取り可能な記録媒体としては、例えば、フレキシブルディスクや、CD−ROM、DVD−ROM、光磁気ディスク、ICカード、ハードディスク等種々の媒体を利用することが可能である。
発明を実施するための最良の形態
0020
以下、本発明の実施の形態について、実施例に基づき説明する。
0021
A.実施例:
A1.システム構成:
図1は、実施例における分散印刷システム1000の概略構成を例示する説明図である。分散印刷システム1000は、クライアントCLと、複数のプリンタPRT1〜PRT4を有する。プリンタPRT1にはネットワークボード100、が取り付けられており、プリンタPTR2〜PRT4にはネットワークボード200が取り付けられている。クライアントCLとプリンタPRT1〜PRT4はローカルエリアネットワークLANを介して接続されている。クライアントCLおよびプリンタPRT1〜PRT4の間の通信は、TCP/IPプロトコルを用いて行われる。図1に示すように、クライアントCLには「IPc」、プリンタPRT1〜PRT4の各ネットワークボードには、それぞれ「IP1」〜「IP4」というIPアドレスが設定されている。
0022
プリンタPRT1に取り付けられているネットワークボード100はカスタムネットワークボードである(以降、ネットワークボード100をカスタムネットワークボード100と呼ぶ)。カスタムネットワークボード100は、クライアントCLから受信した印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備える。プリンタPRT2〜プリンタPRT4にそれぞれ取り付けられているネットワークボード200は、標準的なネットワークボードである。
0023
印刷ジョブがプリンタPRT1のカスタムネットワークボード100からプリンタPRT1〜PRT4に分散される流れを、図1に実線矢印により示す。プリンタPRT1〜PRT4はいずれもネットワークボード100による分散印刷の分散先とされ得る。プリンタPRT1は印刷ジョブにより印刷を要求される複数のページの分散元であり、かつ、分散先となりうる。
0024
分散元のプリンタPRT1は、分散印刷の対象とされている印刷ジョブを受信すると、直ちに印刷を開始できるプリンタにPRT1に対して先頭ページを割り当てるように、各プリンタに対して割当ページを決定する。分散元プリンタPRT1は、割り当てられた割当ページの印刷を要求する新たな印刷ジョブを生成し、各分散先プリンタPRT1〜PRT4に生成された印刷ジョブを送信する。本実施例において、プリンタPRT1およびプリンタPRT2は印刷ジョブを受信すると直ちに印刷を開始できるプリンタであり、プリンタPRT3およびプリンタPRT4は、所定の処理を実行中であるため、印刷ジョブを受信しても直ちに印刷を開始できないプリンタである。
0025
ここで、所定の処理とは、例えば、(1)電力消費を抑制するために、プリンタエンジン90への電力の供給が抑制・切断する省電力処理、(2)インクカートリッジのノズルの目詰まりを防止・除去するためのクリーニング処理、(3)カラープリンタにおいて、出力された色と実際の色とのバランスのずれを調整するためのキャリブレーション処理、である。
0026
本実施例では、所定の処理を実行中であり直ちに印刷を開始できないプリンタを処理中プリンタ、直ちに印刷を開始でき、印刷ジョブの受信を待機しているプリンタを待機プリンタと呼ぶ。また、分散先とされるプリンタを分散先プリンタと呼ぶ。なお、本実施例において、プリンタPRT1、PRT2は待機プリンタ、プリンタPRT3およびプリンタPRT4は処理中プリンタである。プリンタPRT3はスタンバイ処理、プリンタPRT4は、クリーニング処理をそれぞれ実行中である。
0027
プリンタPRT1、プリンタPRT2およびクライアントCLの構成について、図2を用いて説明する。図2は、本実施例におけるプリンタPRT1、プリンタPRT2、およびクライアントCLの機能ブロックを例示する説明図である。本実施例におけるプリンタPRT1、PRT2には、それぞれ、電源が投入されてからの経過時間をカウントアップするカウントアップタイマー(図示しない)が備えられている。プリンタPRT1、PRT2は、ぞれぞれのカウントアップタイマーにより示される経過時間を各プリンタの現在時刻として管理する。すなわち、電源が投入されてから1分後には、プリンタPRT1〜PRT2の現在時刻は「00:01:00」となる。
0028
プリンタPRT1は、図2に示すようにプリンタ本体PRB1と上述したカスタムネットワークボード100とを備える。プリンタ本体PRB1は、プリンタコントローラ80と、プリンタエンジン90とを備える。プリンタエンジン90は実際に印刷を実行する。プリンタコントローラ80は後述する印刷ジョブ受信部60から供給される印刷ジョブを受け取り、受け取った印刷ジョブを解釈してプリンタエンジン90に印刷を実行させる。プリンタコントローラ80は、供給される印刷ジョブを始めとするデータを一時的に格納するプリンタバッファ82を備える。また、プリンタコントローラ80は、MIB(Management Information Base)ファイル81を有する。
0029
MIBファイル81には、プリンタコントローラ80によって収集されるプリンタ本体PRB1に関する種々の情報がオブジェクト単位で保存される。オブジェクトごとにオブジェクトIDが割り振られている。MIBファイル81に格納されている種々の情報の中に、前述の所定の処理に関する種々の情報が含まれる。本実施例では、所定の処理の開始時間、所定の処理にかかる時間長さが格納されている。例えば、プリンタPRT1がクリーニング中である場合、MIBファイル81にはクリーニング処理の開始時間およびクリーニング処理にかかる時間長さが含まれている。MIBファイル81に格納されている種々の情報には、また、例えば、クリーニングが完了され印刷可能となる印刷可能時刻、クリーニングが完了され印刷可能となるまでの残時間が含まれていてもよい。
0030
カスタムネットワークボード100は、CPU20、メモリ30および通信を行うための通信用インターフェース等を備える。説明の便宜上、通信用インターフェース等の構成については省略する。
0031
CPU20は、メモリ30から分散印刷を実行するためのソフトウェアプログラムを読み出して実行することにより、図示する各機能ブロックをソフトウェア的に実現する。なお。各機能ブロックをハードウェア的に構成してもかまわない。
0032
CPU20によって実現される機能ブロックには、TCP/IP部10と、分散制御部50と、印刷ジョブ受信部60と、SNMPマネージャ40と、SNMPエージェント70が含まれる。
0033
TCP/IP部10は、TCP/IPプロトコルを解釈してネットワークを介して外部との通信を行う。TCP/IP部10は、TCPを用いて後述する印刷ジョブの通信行うとともに、UDPを用いてSNMPマネージャ40とSNMPエージェント70間の通信を行う。
0034
分散制御部50は、分散ジョブ受信部52、分散先特定部54、割当ページ決定部56、印刷ジョブ送信部58を備える。分散ジョブ受信部52は、クライアントCLから第1の印刷ジョブを受信する。
0035
分散先特定部54は、ローカルエリアネットワークLANに接続されている複数のプリンタが所定の処理中であるかを確認し、所定の処理中である場合には所定の処理の開始時間および所定の処理に係る時間長さを取得する。分散先特定部54は、取得された所定の処理の開始時間および所定の処理に係る時間長さと、第1の印刷ジョブにより印刷を要求される総ページ数とに基づき、複数のプリンタの中から第1の印刷ジョブの分散先となる複数のプリンタを特定する。
0036
分散先特定部54は、また、所定の処理が完了するまでの残時間を算出し、算出された残時間に応じて各分散先プリンタに割り当てる割当ページ数を決定する。分散先特定部54は、割当ページ数を決定する際に、待機プリンタが複数存在する場合には割当ページが各待機プリンタにほぼ均等に割り当てられるように決定する。ここで、「ほぼ均等」とは、割当ページ数を算出する段階で、総ページ数の関係上、完全に均等に割り当てることができず端数のページ数が発生した場合、各待機プリンタに割り当てられる割当ページ数の差が1ないし2ページ程度となることを指す。例えば、残ページ数が21ページであるのに対し、待機プリンタが4台存在する場合、1台目の待機プリンタに5ページ、2台目から4台目の分散先プリンタに4ページ割り当てる。このように、待機プリンタに印刷させるページ数をほぼ均等に割り当てることとすれば、効率的に印刷を行うことができる。
0037
割当ページ決定部56は、分散先特定部54によって決定された割当ページ数に応じて各分散先プリンタに割り当てられる割当ページを決定する。
0038
印刷ジョブ送信部58は、割当ページの印刷を分散先プリンタに要求する印刷ジョブ(以下、第2の印刷ジョブと呼ぶ)を、各分散先プリンタに対して送信する。
0039
印刷ジョブ受信部60は、分散印刷が指定されていない通常の印刷ジョブ、例えば、上述した第2の印刷ジョブを受信し、プリンタコントローラ80に供給する。
0040
SNMPマネージャ40は、SNMP(Simple Network Management Protocol)を用いて各プリンタPRT1〜PRT4が備えるSNMPエージェント70に問い合わせて各種の情報を取得する。SNMPマネージャ40は、オブジェクトIDを指定することにより取得すべき情報を特定して問い合わせを行う。
0041
SNMPエージェント70は、MIBファイル81を管理し、SNMPマネージャ40の問い合わせに応じてMIBファイル81から所望の情報を取得し、SNMPマネージャ40に対して取得した情報を送信する。
0042
メモリ30は、上述された各機能を実現するためのプログラムを格納する他、オブジェクトID格納部32、バッファ36を有する。オブジェクトID格納部32には、SNMPマネージャ40が問い合わせを行う際に指定するオブジェクトIDが格納されている。オブジェクトIDは、問い合わせ可能な情報と関連づけられて格納されている。SNMPマネージャ40は、オブジェクトID格納部32を参照して指定すべきオブジェクトIDを取得することができる。
0043
プリンタPRT2〜プリンタPRT4は、同一の構成を有しているので、代表してプリンタPRT2の構成について説明する。プリンタPRT2は、図2に示すように、プリンタ本体PRB2および上述したネットワークボード200を備える。プリンタ本体PRB2の構成は、上述したプリンタPRT1のプリンタ本体PRB1と同一の構成を有しているので、各構成要素にプリンタPRT1のプリンタ本体PRB1の構成要素と同一の符号を付しその説明を省略する。
0044
ネットワークボード200は、TCP/IP部10と、印刷ジョブ受信部60と、SNMPエージェント70とを有している。ネットワークボード200の各構成要素のうち、カスタムネットワークボード100の構成要素と同名の構成要素は、カスタムネットワークボード100の各構成要素と同様の機能や構成を有しているのでその説明を省略する。
0045
ここで、上記説明から解るように、プリンタPRT1〜プリンタPRT4に搭載されたネットワークボードには通常の印刷を実行するための機能(TCP/IP部10、印刷ジョブ受信部60、プリンタ本体PRB1)を全て備えている。カスタムネットワークボード100の分散制御部50からみて、プリンタPRT1〜プリンタPRT4は、全て等価であり、後述する分散印刷処理において全て分散先プリンタとして指定され得る。分散制御部50は、分散制御部50自体が内蔵されているプリンタPRT1についても、他のプリンタについても区別なく扱うことができる。
0046
クライアントCLは、図2に示すように、アプリケーション11の他、機能ブロックとして、TCP/IP部13と印刷ジョブ送信部12とを有している。TCP/IP部13は、上述したカスタムネットワークボード100のTCP/IP部10と同様の機能および構成を有している。印刷ジョブ送信部12は、アプリケーション11の印刷要求に応じて印刷ジョブを生成し、TCP/IP部13を介して生成された印刷ジョブをプリンタPRT1に送信する。なお、分散印刷が指定された第1の印刷ジョブは、カスタムネットワークボード100を備えるプリンタPRT1に対してのみ送信され、分散印刷が指定されていない通常の印刷ジョブは、プリンタPRT1〜PRT4のいずれに対しても送信されることができる。
0047
本実施例に用いられる印刷ジョブについて、図3を参照して説明する。図3は、印刷ジョブの構成を説明する概念図である。図3(a)は、印刷ジョブの通信に用いられる通信データの構成を示している。図3(b)は、印刷ジョブのデータ構造を示している。
0048
印刷ジョブは、TCP/IPプロトコルに従った形式の通信データとして送信される。この通信データは、図3(a)に示すように、ヘッダ400と、データ部450とに分かれている。このうち、ヘッダ400には、その通信データの送信元である機器のIPアドレスである送信元IPアドレスSAと、その機器内における送信元であるソフトウェアを特定するポート番号である送信元ポート番号SPと、を含む他、その通信データの送信先である機器のIPアドレスである送信先IPアドレスDAと、その機器内における送信先であるソフトウェアを特定するポート番号である送信先ポート番号DPとを含んでいる。送信元である機器のソフトウェアから発信された通信データは、送信先IPアドレスDAに従って、そのIPアドレスを有する機器に送信される。さらに、受信したその機器内では、送信先ポート番号DPに従って、その番号のポートで待機しているソフトウェアに渡される。データ部450は、通信の対象となるデータが格納される部分であり、本実施例では、印刷ジョブが格納される。
0049
例えば、クライアント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の印刷ジョブと通常の印刷ジョブとの間に違いはない。
0050
図3(b)を参照して、印刷ジョブのデータ構造について説明する。印刷ジョブJBは、図3(b)に示すように、ジョブ制御言語部501と、ページ記述言語部502を有している。ページ記述言語部502は、印刷内容を表す印刷データが所定のページ記述言語を用いて記述されている部分である。ページ記述言語としては、ESC/PageやPostscriptなどが用いられ得る。ジョブ制御言語部501には、ページ記述言語部502に記述された印刷データを印刷するために必要な属性が記述されている。ジョブ制御言語部501は、所定のジョブ制御言語、本実施例ではEJL(Epson Job Language)を用いて記述されている。
0051
図3(b)の下側は、ジョブ制御言語部501に記述された内容の具体例を示している。ジョブ制御言語部501は、上述した属性として、印刷用紙サイズ、ページ記述言語部502の記述に使用されているページ記述言語の種別と共に、総ページ数情報TP、印刷部数QTを含んでいる。総ページ数情報TPは、ページ記述言語部502に含まれる印刷データの総ページ数を示している。図3(b)に示す例では、総ページ数情報TPとして、総ページ数は34ページであることが記述されている。印刷部数QTは、ページ記述言語部502に含まれる印刷データの印刷部数を示している。図3(b)に示す例では、印刷部数QTとして30部であることが記述されている。
0052
ジョブ制御言語部501には、さらに、ページ特定情報PEを含めることができる。ページ特定情報PEは、ページ記述言語部502に含まれる印刷データの全てのページの中から印刷すべきページを特定する情報である。印刷ジョブのジョブ制御言語部501にページ特定情報PEが含まれている場合、印刷ジョブを受信したプリンタPRTは、後述するように、ページ記述言語部502に含まれる印刷データのうちページ特定情報PEによって特定されたページのみを選択的に印刷する。ページ特定情報PEは、開始ページ番号S、および、終了ページ番号Eを含んでいる。これによって、開始ページ番号Sから終了ページ番号Eまでの、1または連続する複数のページが指定される。図3(b)に示す例では、先頭ページ番号(STARTPAGE)として「11」が、終了ページ番号(ENDPAGE)として「20」が記述されている。したがって、図3(b)に示す印刷ジョブは、1〜34ページまでの34ページ分の印刷データを含んでいるが、そのうち11ページから20ページまでの10ページの印刷を要求していることになる。一方、ジョブ制御言語部501にページ特定情報PEが含まれていない印刷ジョブは、ページ記述言語部502に含まれる印刷データの全てのページの印刷を要求しているものと解釈される。
0053
A2.分散印刷処理:
図4〜図10を参照して上述した印刷ジョブを用いて行われる本実施例における分散印刷処理について詳細に説明する。図4は、分散印刷処理の概要を示す説明図である。図5は、分散印刷処理を説明するフローチャートである。図6および図7は、分散先プリンタ特定処理を説明するフローチャートである。図9は、各分散先印刷装置へのページ数の割り当てについて説明する説明図である。図10は、各分散先印刷装置へのページの割り当てを示す割当テーブルである。
0054
図4を用いて、分散印刷処理について説明する。本実施例では、クライアントCLからプリンタPRT1に対して分散印刷が指定された第1の印刷ジョブJB1が送信される。そして、第1の印刷ジョブJB1を受信したプリンタPRT1の分散制御部50が、第1の印刷ジョブにより要求される印刷を、分散先プリンタとしての4つのプリンタPRT1〜PRT4に分散する。
0055
クライアントCLからプリンタPRT1に送信される第1の印刷ジョブJB1は、送信先IPアドレスDAとして「IP1」、送信先ポート番号DPとして「59100」が記述されたヘッダ400を有する通信データとして送信される。実際には、第1の印刷ジョブJB1は、複数のTCPパケットに分割され、分割されたパケットごとにヘッダ400が付加されて、送信される。しかしながら、図4では、図を見やすくするため、第1の印刷ジョブJB1全体に、1つのヘッダ400が付加された図を示している。このような図示は、後述する第2の印刷ジョブJB21〜JB24についても同様である。
0056
第1の印刷ジョブJB1のジョブ制御言語部501には、上述した総ページ数情報TPが含まれ、図4に示す例では、総ページ数情報TPには総ページ数Q=34であることが記述されている。
0057
第1の印刷ジョブJB1のページ記述言語部502には、総ページ数Qに対応する印刷データがページ記述言語により記述されている。図4に示す例では、34ページ分の印刷データDTが、ページ記述言語部502に記述されている。
0058
図5を用いて分散印刷処理の流れを説明する。分散印刷処理は、カスタムネットワークボード100のCPU20が備える分散制御部50によって実行される。カスタムネットワークボード100が搭載されたプリンタPRT1が、印刷ジョブを受け付ける状態にあるとき、分散制御部50の分散ジョブ受信部52は、クライアントCLから送信される第1の印刷ジョブJB1、すなわち、送信先ポート番号DPが「59100」である印刷ジョブの着信を検出すると(ステップS102)、分散ジョブ受信部52は、TCP/IP部10を介して、第1の印刷ジョブJB1を受信する。分散ジョブ受信部52は、まず、ジョブ制御言語部501を含む印刷ジョブの先頭部分を受信する(ステップS104)。
0059
分散制御部50は、受信された第1の印刷ジョブにより印刷を要求される総ページ数Qを取得する(ステップS106)。具体的には、分散制御部50は、ジョブ制御言語部501を読み出し、第1の印刷ジョブに含まれる総ページ数情報TPに記述されている総ページ数Q=34を取得する。続いて分散制御部50は、分散先プリンタを特定する処理を行う(ステップS108)。
0061
分散先特定部54は、ローカルエリアネットワークLANに接続されている機器のIPアドレスを取得する(ステップS202)。分散先特定部54は、取得されたIPアドレスが割り当てられた各機器に関する情報を取得する(ステップS204)。具体的には、分散先特定部54は、SNMPマネージャ40を用いて、ユニキャストで各機器に対して問い合わせを行い、問い合わせの応答として、各機器のSNMPエージェント70から機種名およびステータスを取得する。
0062
分散先特定部54は、取得された機種名およびステータスに基づいて、ローカルエリアネットワークLANに接続された機器の中から所定の条件を満たすプリンタを検索し、検索されたプリンタを分散先候補プリンタとして特定する(ステップS206)。所定の条件の一例を以下に示す。
1.分散元のプリンタPRT1と同一の機種であること。
2.トナー残量が所定の閾値以上であること。
3.自己復帰不可能なエラーが発生していないこと。
0063
これらの項目についての情報は、全て上述のSNMPマネージャ40による問い合わせによって各機器のSNMPエージェント70から取得することができる。条件1.として挙げるように、分散元のプリンタPRT1と同一機種であることを分散先候補プリンタとして選択するのは、分散印刷を行う際に各分散先プリンタにおいて印刷ジョブの展開処理、例えば、印刷ジョブのデータ変換をすることなく、適正な印刷を行わせるためである。条件2は、印刷途中でトナー切れとならないための条件である。条件3に示す「自己復帰不可能なエラー」とは、オペレータがプリンタの設置されている場所まで出向き、修理する必要のあるエラーを示す。「自己復帰不可能なエラー」には、例えば、紙詰まりが含まれる。
0064
分散先特定部54は、1台以上の分散先候補プリンタが特定されたか否かを判断する(ステップS208)。1台以上の分散先候補プリンタが特定されない場合(ステップS208:NO)、分散先特定部54は、所定時間待機して(ステップS212)、ステップS202〜ステップS208の処理を繰り返す。
0065
1台以上の分散先候補プリンタが特定された場合(ステップS208:YES)、分散先特定部54は、所定の処理を実行中である処理中プリンタが存在するか否かを判断する(ステップS210)。処理中プリンタが存在しない場合、すなわち、全ての分散先候補プリンタが直ちに印刷可能な待機プリンタである場合(ステップS210:NO)、分散先特定部54は、分散先候補プリンタの全てを分散先プリンタとして特定し(ステップS216)、分散先プリンタ特定処理を終了する。
0066
処理中プリンタが存在する場合(ステップS210:YES)、分散先特定部54は、各処理中プリンタが印刷を行えるようになるまでの残時間を取得する(ステップS218)。
0068
分散先特定部54は、SNMPマネージャ40を用いて、各処理中プリンタのSNMPエージェント70に対して実行中の処理の開始時刻、処理の開始から完了までにかかる時間を問い合わせ、開始時間、処理にかかる時間を取得する(ステップS260,S262)。開始時間とは、処理の開始時点で処理中プリンタのカウントアップタイマーが示している時間である。
0069
続いて、分散先特定部54は処理中プリンタの現在時刻を取得する(ステップS264)。分散先特定部54は、取得された開始時間、処理にかかる時間、および、現在時刻を用いて、現時点から処理が完了するまでの残時間を算出する(ステップS266)。具体的には、以下の式(1)を適用することにより算出される。なお、算出される残時間=Wx、開始時間t1、処理にかかる時間=L、現在時刻=ttとする。Wxのxは第1実施例と同様に処理中プリンタに一意に割り振られる番号であり、処理中プリンタのうち各プリンタの符号PRT1,PRT2等の末尾の数字の早い順に1から昇順で割り振られている。
0070
0071
分散先特定部54は、算出された残時間を用いて、各分散先候補プリンタに割り当てる割当ページ数を算出する(ステップS220)。分散先候補プリンタに割り当てる割当ページ数は、各分散先プリンタの印刷完了がほぼ同時となるように算出される。
0072
第1の印刷ジョブJB1により印刷を要求される総ページ数を、各分散先プリンタにおける印刷完了がほぼ同時となるように割当ページ数を決定する方法を、図9を参照して説明する。
0073
図9は、本実施例における割当ページ数の決定について説明する割当図である。各分散先プリンタに割り当てられるページ数を斜線で示す。割当図600の横軸は時間tを表している。本実施例では、以降、印刷を要求される総ページ数=Q、分散先プリンタの数=M、全分散先プリンタの数=N、分散先プリンタのうち待機プリンタの数=N1、分散先プリンタのうち処理中プリンタの数=N2、処理中プリンタの印刷可能となるまでの残時間Wx、各プリンタに割り当てられる割当ページ数=P(y)、分散先プリンタの1秒あたりの印刷可能ページ数、すなわちエンジンスピード=Vとする。残時間Wxにおけるxは各処理中プリンタの符号の末尾の数字の早い順に、1,2…と昇順に割り振られる。例えば、本実施例では、プリンタPRT3およびプリンタPRT4が処理中プリンタであるため、W1はプリンタPRT3において実行中のスタンバイの完了までの残時間を示し、W2はプリンタPRT4において実行中のクリーニングの完了までの残時間を示す。Wxの単位は秒(s)である。P(y)におけるyは、各プリンタの符号の末尾の数字に対応している。例えば、P(2)は、プリンタPRT2に割当られる割当ページ数を示す。
0074
本実施例では、分散処理が開始されてから分散印刷ジョブが各分散先プリンタに受信されるまでの時間を無視できるものとし、分散元プリンタPRT1は時間t=0に分散処理を開始し、各分散先プリンタは時間t=0に分散印刷ジョブを受信する。割当図600中に示すマーク「▲」は、印刷可能となる時点を示す。全ての分散先プリンタにおける印刷が完了するまでに必要な印刷時間を時間Tとして示す。例えば、プリンタPRT3は、時間t=W1に印刷可能となり、印刷を開始する。
0075
本実施例では、プリンタPRT3およびPRT4は処理中プリンタであるが、もしプリンタPRT3がスタンバイ処理中でなければ、プリンタPRT3は残時間W1の間に「W1/V」ページ分の印刷を行うことができる。また、もしプリンタPRT4がクリーニング処理中でなければ、プリンタPRT4は残時間W2の間に「W2/V」ページ分の印刷を行うことができる。ここで、プリンタPRT3およびPRT4が処理中でない場合、分散元プリンタPRT1は総ページ数Qを4台の分散先プリンタPRT1〜PRT4に均等に割り当てることにより、全分散先プリンタにおいてほぼ同時に印刷を完了できる。従って、待機プリンタPRT1、PRT2に割当られる割当ページ数は、次のように算出される。
P(1)=(Q+W1/V+W2/V)/N
0076
また、処理中プリンタPRT3に割り当てられるページ数は、P(1)を考慮して次のように算出される。
P(3)=P(1)—W1/V
0077
プリンタPRT4もプリンタPRT3と同様に次のように算出される。
P(4)=P(1)—W2/V
0078
以上の説明を考慮し、各分散先プリンタに割り当てられる割当ページ数は、以下の計算式を用いて算出される。以下に示す式(2)は、待機プリンタに割り当てられる割当ページ数を算出する式であり、式(3)は、処理中プリンタに割り当てられる割当ページ数を算出する式である。
0079
0080
0081
ここで、式(2)、式(3)における関数Int(a)は、数値aの整数部分を取り出す関数である。例えば、Int(1.23)=1である。この数式にそれぞれ数値Q,Wx、M、N1、N2、Vを代入することにより各分散先候補プリンタに割り当てられる割当ページ数が算出される。例えば、第1の印刷ジョブにより印刷を要求される総ページ数Q=34、プリンタPRT3の残時間W1=4、プリンタPRT4の残時間W2=2、エンジンスピードV=1の場合、各分散先候補プリンタに割り当てられる割当ページ数は、以下に示すように算出される。
0082
・プリンタPRT1およびプリンタPRT2(以下の式はPRT1の割り当て割当ページ数)
・プリンタPRT3
・プリンタPRT4
0083
分散先特定部54は、上記割当ページ数の計算結果をもとに、図10に示す割当テーブルTBを作成する。分散先特定部54は割当テーブルTBをメモリ30に格納する。割当テーブルTBは、各分散先プリンタのステータス、算出された残時間、式(2)、式(3)によって算出された割当ページ数、および、各プリンタに割り当てられる割当ページを示す。割当ページの割り当てについては後述する。図10に示すように、例えば、プリンタPRT3はスタンバイ処理中であり、スタンバイ処理の完了、すなわち、スタンバイからの復帰までの残時間は4sである。そして、プリンタPRT3に割り当てられる割当ページ数は、上記の計算で示すように6ページとなる。また、待機プリンタであるプリンタPRT1およびプリンタPRT2に割り当てられる割当ページ数は10ページ、クリーニング処理中であるプリンタPRT4に割り当てられる割当ページ数は8ページとなる。いずれの待機プリンタも上述の式(2)を用いて割当ページ数が算出されるため、割当ページは均等に算出される。
0084
分散先特定部54は、分散先候補プリンタのうちの処理中プリンタが、他の分散先候補プリンタの印刷の完了とほぼ同時に印刷を完了できるか否かを判断する(ステップS222)。分散先特定部54は、式(3)によって算出されるP2(y)が0未満となるか否かに基づき、上記判断を行う。すなわち、分散先特定部54は、P2(y)<0の場合、分散先候補プリンタのうちの処理中プリンタが、他の分散先候補プリンタの印刷の完了とほぼ同時に印刷を完了できないと判断し(ステップS222:YES)、その処理中プリンタを分散先候補プリンタから除外する(ステップS224)。分散先特定部54は、残りの分散先候補プリンタに割り当てられる割当ページ数を再計算する(ステップS220)。
0085
分散先特定部54は、P2(y)<0でない場合、他の分散先候補プリンタの印刷の完了とほぼ同時に印刷を完了できない処理中プリンタは存在しないと判断し(ステップS222:NO)、その時点で残っている分散先候補プリンタを分散先プリンタと特定する(ステップS226)。本実施例では、P2(y)<0となる処理中プリンタは存在しないため、全ての分散先候補プリンタを分散先プリンタと特定する。
0086
P2(y)<0となる場合を説明する。例えば、第1の印刷ジョブにより印刷を要求される総ページ数Q=8、プリンタPRT3の残時間W1=16、プリンタPRT4の残時間W2=1、エンジンスピードV=1の場合、P(y)は、1巡目の計算では次に示すように算出される。
・プリンタPRT1
P(1)=6
・プリンタPRT2
P(2)=6
・プリンタPRT3
P(3)=−10
・プリンタPRT4
P(4)=5
0087
P(3)=−10<0となるため、プリンタPRT3を分散先候補プリンタから除外して(ステップS224)、分散先候補プリンタを残りの3台のプリンタPRT1、PRT2、PRT4として、割当ページ数を再計算する(ステップS220)。各分散先プリンタの割当ページ数は、次に示すように算出される。
0088
・プリンタPRT1
P(1)=3
・プリンタPRT2
P(2)=3
・プリンタPRT4
P(4)=2
0089
P(y)<0となる分散先候補プリンタはないため、分散先特定部54は、プリンタPRT1、プリンタPRT2、プリンタPRT4の3台の分散先候補プリンタを分散先プリンタと特定するとともに、プリンタPRT1、PRT2に割り当てる割当ページ数を3ページ、プリンタPRT4に割り当てる割当ページ数を2ページとする。
0090
分散先プリンタが特定されると、分散制御部50の割当ページ決定部56は、分散先プリンタ特定処理において決定された割当ページ数に応じて各分散先プリンタに割り当てるページを決定する(ステップS110)。このとき、割当ページ決定部56は、印刷ジョブによって印刷が要求される複数のページの先頭ページが分散先プリンタの中の待機プリンタのいずれかに割り当てられるように割当ページを決定する。
0091
割当ページ決定部56は、図10に示す割当テーブルTBを参照して、各分散先プリンタに対して割当ページの開始ページ番号S(y)および終了ページ番号E(y)を決定する。例えば、プリンタPRT1の開始ページ番号S(1)=1、終了ページ番号E(1)=10であり、プリンタPRT2の開始ページ番号S(2)=11、終了ページ番号E(2)=20である。本実施例では、このように待機プリンタであるプリンタPRT1に先頭ページ(ページ番号1)が割り当てられる。プリンタPRT2も待機プリンタであるため、プリンタPRT2に割り当ててもよい。本実施例では、割当ページ決定部56は、ページ番号の若い順に待機プリンタに優先してページを割り当てる。なお、先頭ページを分散先プリンタのうちの待機プリンタのいずれかに割り当てれば、他の分散先プリンタへの割当ページはどのように決定してもよい。
0092
各分散先プリンタについて、割当ページの開始ページ番号S(y)および終了ページ番号E(y)が決定される、すなわち、各分散先プリンタが印刷する割当ページが決定されると、分散制御部50の印刷ジョブ送信部58は、割当ページの印刷を要求する第2の印刷ジョブを、各分散先プリンタに対して送信する(ステップS112〜S114)。図4には、各分散先プリンタとしてのプリンタPRT1〜PRT4に送信される第2の印刷ジョブJB21〜JB24がそれぞれ示されている。
0093
図4に示すように、第2の印刷ジョブJB21〜JB24を送信する通信データのヘッダ400には、送信先IPアドレスDAとしてそれぞれの分散先であるプリンタPRTのIPアドレス「IP1」、「IP2」、「IP3」「IP4」が記述される。さらに、これらのヘッダ400には、送信先ポート番号DPとして「9100」が記述される。
0094
第2の印刷ジョブJB21〜JB24のジョブ制御言語部501は、第1の印刷ジョブJB1のジョブ制御言語部501に上述したページ特定情報PEを追加したものである。ページ特定情報PEには、上述したステップS110において算出された各分散先プリンタの割当ページの開始ページ番号S(y)および終了ページ番号E(y)が記述される。
0095
第2の印刷ジョブJB21〜JB24のページ記述言語部502は、第1の印刷ジョブJB1のページ記述言語部502と全く同一である。すなわち、第2の印刷ジョブJB21〜JB24のページ記述言語部502には、総ページ数Qに対応する印刷データがページ記述言語により記述されている。図4に示す例では、34ページ分の印刷データDTが、ページ記述言語部502に記述されている。
0096
第2の印刷ジョブJB21〜JB24の送信を、ステップごとに説明する。まず、分散制御部50の印刷ジョブ送信部58は、ジョブ制御言語部501に各分散先プリンタ用のページ特定情報PEを追加した上で、ジョブ制御言語部501を含む第2の印刷ジョブJB21〜JB24の先頭部分を、それぞれ各プリンタPRT1〜PRT4(分散先プリンタ)に送信する(ステップS112)。次に、分散制御部50の分散ジョブ受信部52は、第1の印刷ジョブJB1の先頭部分以降の部分をクライアントCLから受信し、分散制御部50の印刷ジョブ送信部58は、受信された先頭部分以降の部分を、そのまま順次各プリンタPRT1〜PRT4に送信する(ステップS114)。その後、分散制御部50は、第1の印刷ジョブJB1の全ての部分を受信したか否かを判断する(ステップS116)。分散制御部50は、第1の印刷ジョブJB1の全てを受信していないと判断すると(ステップS116:NO)、ステップS114に戻る。一方、分散制御部50は、第1の印刷ジョブJB1の受信が終了したと判断すると(ステップS116:YES)、本処理を終了する。
0097
A3.印刷処理
続いて、図11および図12を参照して、分散先プリンタPRT1〜PRT4における処理について説明する。図11は、第2の印刷ジョブを含む通常の印刷ジョブの受信処理を説明するフローチャートである。図12は、第2の印刷ジョブを含む通常の印刷ジョブの印刷処理を説明するフローチャートである。
0098
まず、通常の印刷ジョブの受信処理について説明する。本処理は、プリンタPRTの印刷ジョブ受信部60によって実行される処理である。プリンタPRTが印刷ジョブを受け付ける状態にあるとき、印刷ジョブ受信部60は、第2の印刷ジョブを含む通常の印刷ジョブ、すなわち、送信先ポート番号DPが「9100」である印刷ジョブのプリンタPRTへの着信を検出すると(ステップS302)、印刷ジョブ受信部60は、TCP/IP部10を介して、送信されてくる印刷ジョブを順次受信して、プリンタバッファ82に格納する(ステップS304)。印刷ジョブ受信部60は、印刷ジョブを全て受信したか否かを判断する(ステップS306)。印刷ジョブを送信してくる機器は、印刷ジョブを全て送信すると、印刷ジョブを送信するための通信コネクションの切断要求を送信してくる。従って、印刷ジョブ受信部60は、通信コネクションの切断要求の有無によって、印刷ジョブを全て受信したか否かを判断できる。印刷ジョブ受信部60は、印刷ジョブを全て受信していないと判断すると(ステップS306:NO)、ステップS304に戻る。印刷ジョブ受信部60は、印刷ジョブを全て受信したと判断すると(ステップS306:YES)、受信処理を終了する。
0099
続いて、通常の印刷ジョブの印刷処理について説明する。この印刷処理は、プリンタPRTのプリンタコントローラ80によって実行される処理である。プリンタコントローラ80は、印刷ジョブ受信部60から印刷ジョブのデータを受け取ると、すなわち、上述した受信処理によりプリンタバッファ82に印刷ジョブが格納され始めると、印刷処理を開始する。
0100
プリンタコントローラ80は、印刷処理を開始すると、まず、印刷ジョブにページ特定情報PEが含まれているか否かを判断する(ステップS402)。具体的には、プリンタコントローラ80は、プリンタバッファ82に格納されている印刷ジョブのジョブ制御言語部501から、ページ特定情報PEを検索し、ページ特定情報PEの有無を判断する。ページ特定情報PEが含まれていると判断すると(ステップS402:YES)、プリンタコントローラ80は、ページ特定情報PE、すなわち、開始ページ番号Sおよび終了ページ番号Eを取得して(ステップS404)、ステップS406に移行する。一方、ページ特定情報PEが含まれていないと判断すると(ステップS402:NO)、プリンタコントローラ80は、そのままステップS406に移行する。
0101
プリンタコントローラ80は、続いて、処理対象のページ番号nを初期化して、n=1とする(ステップS406)。プリンタコントローラ80は、印刷ジョブを解釈して、処理対象のページ、すなわち、第nページの画像データを生成する(ステップS410)。具体的には、プリンタコントローラ80は、プリンタエンジン90が印刷に用いるための画像データ、例えば、プリンタエンジン90の解像度に合わせたドットデータを、ページ記述言語に記述されている印刷データから生成する。印刷ジョブのページ記述言語部502には、印刷データがページ順に記述されているため、プリンタコントローラ80は、ページ記述言語部502に含まれる印刷データを、先頭から順次、1ページ分ずつ解釈していく。
0102
処理対象である第nページの画像データが生成されると、プリンタコントローラ80は、ステップS404においてページ特定情報PEを取得していたか否かを判断する(ステップS412)。プリンタコントローラ80は、ページ特定情報PEを取得していたと判断すると(ステップS412:YES)、ページ特定情報PEとして取得していた開始ページ番号Sおよび終了ページ番号Eを用いて、処理対象である第nページがページ特定情報PEにより特定されるページであるか否かを判断する(ステップS414)。プリンタコントローラ80は、nの値に応じて、該判断を行う。
0103
プリンタコントローラ80は、S≦n≦Eが成立すると判断した場合(ステップS414:S≦n≦E)、すなわち、第nページがページ特定情報PEにより特定されるページであると判断した場合、あるいは、ページ特定情報PEを取得していないと判断した場合(ステップS412:NO)には、第nページについての印刷要求を、プリンタエンジン90に対して発行し(ステップS416)、ステップS418に移行する。プリンタコントローラ80は、n<Sである場合(ステップS414:n<S)、ステップS418へ移行する。プリンタコントローラ80は、n>Eである場合(ステップS414:n>E)には、残りの印刷ジョブを全て読み飛ばし、処理を終了する。プリンタエンジン90は、プリンタコントローラ80から印刷要求を受け取ると、プリンタコントローラ80が生成した画像データを用いて、第nページの印刷を実行する。
0104
続いて、プリンタコントローラ80は、印刷ジョブを全て解釈したかを判断する(ステップS418)。プリンタコントローラ80は、印刷ジョブを全て解釈したと判断すると(ステップS418:YES)、印刷処理を終了する。一方で、プリンタコントローラ80は、印刷ジョブを全て解釈していないと判断すると(ステップS418:NO)、処理対象のページ番号nをインクリメントし(ステップS420)、ステップS410に戻る。すなわち、プリンタコントローラ80は、次のページについて上述したステップS410〜S418の処理を繰り返す。
0105
以上のような印刷処理を実行することによって、プリンタPRTは、印刷ジョブにページ特定情報PEが含まれている場合には、ページ特定情報PEにより特定されるページについて印刷を実行し、それ以外のページについては印刷を行わない。また、プリンタPRTは、印刷ジョブにページ特定情報PEが含まれていない場合には、ページ記述言語部502に記述された印刷データの全てのページを印刷する。
0106
以上の説明から解るように、分散先プリンタとしてのプリンタPRT1〜PRT4は、ページ特定情報PEを含む第2の印刷ジョブJB21〜JB24を受信すると、ページ特定情報PEにより特定される割当ページについてのみ印刷を実行する。この結果、各分散先プリンタが、割当ページの印刷をそれぞれ実行することにより、第1の印刷ジョブJB1により要求される印刷が完了される。
0107
以上説明した第1実施例の分散印刷システムによれば、処理中プリンタから取得可能な情報に基づき、印刷を開始できるようになるまでの残時間を簡易に取得でき、残時間に応じて印刷ジョブにより要求される印刷の負荷を複数の分散先プリンタに効率的に分散できる。従って、印刷にかかる印刷時間を短縮でき、ユーザの利便性を向上できる。
0108
B.第2実施例:
第1実施例では、各処理中プリンタの残時間Wxを用いて、式(2)、式(3)を適用することにより分散先プリンタに割り当てる割当ページ数を算出した。第2実施例では、処理中プリンタの残時間に、待機プリンタが処理中プリンタに先行して印刷可能な先行印刷ページ数を算出し、算出されたページ数を待機プリンタにほぼ均等となるように割り当てる。先行印刷ページを除く残ページは、全分散先プリンタにほぼ均等となるように割り当てる。
0109
B1.ページ割当:
先行印刷ページの待機プリンタへの割当について、図13を用いて説明する。図13は、第2実施例における先行印刷ページの待機プリンタへの割当について説明する割当図である。割当図700の横軸は時間tを表す。各プリンタが印刷するページ数をハッチングにより示す。本実施例では、プリンタPRT3およびPRT4がともにスタンバイ処理中であり、双方ともスタンバイ処理が完了するまでの残時間W=4sである。図13中に示すマーク「▲」は、処理中のスタンバイ処理が完了され印刷可能となる時点を示している。本実施例では、処理中の処理が完了され印刷可能な状態となることを「復帰する」と言う。なお、本実施例において各プリンタのエンジンスピードV=1であり、第1の印刷ジョブにより印刷を要求される総ページ数Q=32である。
0110
待機プリンタPRT1およびPRT2が、処理中プリンタPRT3およびPRT4が復帰するまでに処理中プリンタに先行して印刷可能な先行印刷ページ数P(pre)は以下の式(4)により算出される。なお、残時間W=4s、エンジンスピードV=1である。
0111
0112
上述の式にW、Vを代入すると、P(pre)=4となる。すなわち、待機プリンタPRT1およびPRT2が、図13にクロスハッチングで示すように、処理中プリンタPRT3およびPRT4の復帰に先行してそれぞれ4ページずつ印刷できる。従って、処理中プリンタPRT3、PRT4の印刷に先行してプリンタPRT1およびPRT2によって印刷される8ページを除いた残ページP(r)はP(r)=32−8=24となる。
0113
プリンタPRT1、PRT2による先行印刷ページの印刷の終了時点ではプリンタPRT3、プリンタPRT4はスタンバイ処理から復帰しているため、分散制御部50は、全分散先プリンタPRT1〜PRT4に、残ページを均等に割り当てる。従って、分散先プリンタPRT1〜PRT4はそれぞれ6ページずつ割り当てられる。すなわち、プリンタPRT1およびPRT2には先行印刷ページを含み10ページずつ割り当てられ、プリンタPRT3およびPRT4には6ページずつ割り当てられることとなる。
0114
分散制御部50は、第1実施例と同様に、先頭ページを含む割当ページを待機プリンタに割り当てる。
0115
以上説明した第2実施例の分散印刷システムによれば、先頭ページを含む割り当てページを待機プリンタに割り当てるとともに、先行印刷ページを待機プリンタに均等に割り当て、残ページを全分散印刷プリンタに割り当てることにより、簡易な構成で印刷効率を向上できる。
0116
C.第3実施例:
上述の第1実施例では、分散先プリンタから取得された情報、すなわち、所定の処理の開始時間および所定の処理に係る時間長さを用いて残時間を算出した。第3実施例では、予め分散先プリンタの現在時刻と分散元プリンタの現在時刻とを同期させ、分散元プリンタは、所定の処理が完了され、印刷を開始できる印刷開始時刻を分散先プリンタから取得し、印刷開始時刻に基づき印刷を開始できるまでの残時間を算出する。第3実施例におけるシステム構成は第1実施例と同様である。
0117
C1.時刻同期処理:
図14を参照して、プリンタPRT2により実行される時刻同期処理について説明する。なお、プリンタPRT3およびプリンタPRT4は、プリンタPRT2と同様の処理を行う。図14は、本実施例における時刻同期処理を説明するフローチャートである。
0118
プリンタPRT2は、プリンタPRT2の電源が投入されたことを検出すると(ステップS1001)、分散元のプリンタであるプリンタPRT1に対して、プリンタPRT1の現在時刻を問い合わせ(ステップS1002)、問い合わせに対する応答としてプリンタPRT1の現在時刻を取得する(ステップS1003)。具体的には、プリンタPRT2は、プリンタPRT2のSNMPマネージャ40を介して、プリンタPRT1のSNMPエージェント70に対して現在時刻を問い合わせる。問い合わせに対する応答として、プリンタPRT1のSNMPエージェント70からプリンタPRT2のSNMPマネージャ40を介してプリンタPRT1の現在時刻を取得する。
0119
プリンタPRT2は、取得されたプリンタPRT1の現在時刻をプリンタPRT2の現在時刻に設定する(ステップS1004)。
0120
こうすることで、分散元プリンタPRT1の現在時刻と分散先プリンタPRT2の現在時刻の同期を取ることができ、プリンタPRT1とプリンタPRT2との間で授受される時刻に関する情報の整合性を図ることができる。
0121
C2.分散処理:
分散元プリンタPRT1は、第1実施例において図6および図7を用いて説明済みのとおり、分散処理を実行する。ただし、かかる分散処理において、分散元プリンタPRT1が、処理中プリンタが存在するか否かを判断し(ステップS210)、処理中プリンタが存在する場合(ステップS210:YES)は、各処理中プリンタのから、各印刷処理中プリンタのMIBファイルに格納されている印刷可能時刻を取得する。具体的には、分散先特定部54は、SNMPマネージャ40を介して、各処理中プリンタに対して印刷可能時刻を問い合わせ、問い合わせに対する応答として処理中プリンタから印刷可能時刻を得る。
0122
分散元プリンタPRT1は、取得された印刷可能時刻を用いて印刷可能となるまでの残時間を算出する(ステップS218)。分散元プリンタPRT1は、算出された残時間を用いて、図7のステップS220以降の処理を実行する。
0123
以上説明した第3実施例の分散印刷システムによれば、分散先プリンタの印刷可能時刻を簡易に取得でき、印刷可能時刻に応じて印刷ジョブを分散できる。
0124
D.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成をとることができることは言うまでもない。例えば、以下の実施態様が挙げられる。
0125
(1)上述の第3実施例では、分散先候補プリンタに対して所定の処理を実行中であるかを問い合わせ、所定の処理を実行中の処理中プリンタからのみ印刷可能時刻を取得したがこれに限られない。例えば、各分散先候補プリンタは、所定の処理を実行していない場合、MIBファイル81に格納されている印刷可能時刻として、各分散先候補プリンタの現在時刻が格納されていてもよい。この際、分散元プリンタは、各分散先候補プリンタから取得済みの印刷可能時刻と分散元プリンタの現在時刻とに応じて、全ての分散先候補プリンタの印刷可能までの残時間を算出する。所定の処理を実行していない待機プリンタの残時間はほぼ0sとして算出されるため、分散元プリンタは、残時間がほぼ0sの分散候補プリンタを待機プリンタであると判断し分散先候補として特定すればよい。こうすれば、1度の問い合わせで、各分散先候補プリンタの印刷可能時間を簡易に取得できる。
0126
(2)上述の第3実施例では、処理中プリンタから印刷可能時刻そのものを取得しているがこれに限られない。処理中プリンタのMIBファイル81に格納されており、所定の処理について時間情報であれば、分散元プリンタは情報を取得可能である。時間情報には、例えば、所定の処理の印刷可能時刻を取得可能な情報、所定の処理が完了するまでの残時間、残時間を取得可能な情報、所定の処理の開始時間、所定の処理の開始から完了までに必要な時間、などが含まれる。
0127
(3)上述した第1実施例における分散印刷システムでは、まず、各分散先プリンタへの割当ページ数を算出し、先頭ページを含む割当ページ数分のページ群を各分散先プリンタに割り当てているがこれに限られない。例えば、割当ページ数を算出する前に先頭ページのみ待機プリンタに印刷させ、残りのページを全分散先プリンタに分散させてもよい。こうすれば、先頭ページは直ちに印刷されるため、ユーザは早い段階で先頭ページを確認でき、印刷のミス等を確認できる。
0128
(4)上述の第1実施例における分散印刷システムでは、処理中プリンタにおいて1つの処理のみが実行されているがこれに限られない。例えば、1台の処理中プリンタにおいて、複数の処理、例えば、クリーニングとキャリブレーションが並行して実行されている場合、プリンタPRT1はそれぞれの処理の完了までの残時間を算出し、最長の残時間を用いて割当ページ数を計算してもよい。
0129
(5)上述の第1実施例における分散印刷システムでは、処理中プリンタが複数存在する場合、各処理中プリンタの残時間に応じて割当ページ数を算出しているがこれに限られない。例えば、処理中プリンタが複数存在する場合、各処理中プリンタの残時間のうち最長の残時間を用いて全処理中プリンタの割当ページ数を算出してもよい。こうすれば、計算量が軽減でき処理効率を向上できる。
0130
(6)上述の第1実施例では、印刷ジョブにより印刷を要求される複数のページを分散先プリンタに分散したが、これに限られない。たとえば、印刷ジョブにより、複数部数の印刷が要求される場合には、複数部数を各分散先プリンタに分散してもよい。こうすれば、複数部数の印刷を要求される印刷ジョブをほぼ同時に、短時間で完了できる。
図面の簡単な説明
0131
第1実施例における分散印刷システムの概略構成を例示する説明図。
第1実施例におけるプリンタPRT1プリンタPRT2およびクライアントCLの機能ブロックを例示する説明図。
第1実施例における印刷ジョブの構成を説明する概念図。
第1実施例における分散印刷処理の概要を示す説明図。
第1実施例における分散印刷処理を説明するフローチャート。
第1実施例における分散先プリンタ特定処理を説明するフローチャート。
第1実施例における分散先プリンタ特定処理を説明するフローチャート。
第1実施例における残時間算出処理を説明するフローチャートである。
第実施例における各分散先印刷装置へのページ数の割り当てについて説明する説明図。
第1実施例における各分散先印刷装置へのページの割り当てを示す割当テーブル。
第1実施例における第2の印刷ジョブを含む通常の印刷ジョブの受信処理を説明するフローチャート。
第1実施例における第2の印刷ジョブを含む通常の印刷ジョブの印刷処理を説明するフローチャート。
第2実施例における先行印刷ページの待機プリンタへの割当について説明する割当図。
第3実施例における時刻同期処理を説明するフローチャート。
符号の説明
0132
11…アプリケーション
12…印刷ジョブ送信部
20…CPU
30…メモリ
36…バッファ
50…分散制御部
52…分散ジョブ受信部
54…分散先特定部
56…割当ページ決定部
58…印刷ジョブ送信部
60…印刷ジョブ受信部
80…プリンタコントローラ
81…ファイル
82…プリンタバッファ
90…プリンタエンジン
100…カスタムネットワークボード
200…ネットワークボード
400…ヘッダ
450…データ部
501…ジョブ制御言語部
502…ページ記述言語部
601…印刷グラフ
1000…分散印刷システム