JP4438698B2 - 分散印刷システム,印刷方法,及び,コンピュータプログラム - Google Patents

分散印刷システム,印刷方法,及び,コンピュータプログラム Download PDF

Info

Publication number
JP4438698B2
JP4438698B2 JP2005180236A JP2005180236A JP4438698B2 JP 4438698 B2 JP4438698 B2 JP 4438698B2 JP 2005180236 A JP2005180236 A JP 2005180236A JP 2005180236 A JP2005180236 A JP 2005180236A JP 4438698 B2 JP4438698 B2 JP 4438698B2
Authority
JP
Japan
Prior art keywords
printing
print
print job
unit
printer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005180236A
Other languages
English (en)
Other versions
JP2007004225A (ja
Inventor
敏博 島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005180236A priority Critical patent/JP4438698B2/ja
Priority to US11/445,395 priority patent/US20060274370A1/en
Publication of JP2007004225A publication Critical patent/JP2007004225A/ja
Application granted granted Critical
Publication of JP4438698B2 publication Critical patent/JP4438698B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、複数の印刷ジョブを処理可能な印刷装置に関し、特に、分散印刷の分散先として用いられる印刷装置に関する。
複数の印刷装置に接続された印刷制御装置が、複数の印刷装置に印刷ジョブを分散する分散印刷システムが知られている(例えば、特許文献1)。上記技術では、印刷すべき部数を複数の印刷装置に適切に配分し、並行して印刷を行うことにより、短時間で複数部数の印刷を完了することができる。
特開2001−273113号公報 特開2001−100963号公報 特開平6−214920号公報
ところで、このような分散印刷システムにおいて、印刷ジョブを複数のパケットに分けて分散する方法がある。この分散方法では、パケットを複数の分散先プリンタに分散する処理を、パケットごとに繰り返し実行することにより、印刷ジョブを分散する。こうすれば、例えば、クライアントとしての計算機からネットワークを介して印刷ジョブを受信し、受信された印刷ジョブを複数の印刷装置に分散する場合に、印刷制御装置が備えるバッファの容量が小さくクライアントとしての計算機から全ての印刷ジョブを一度に受信することができない場合でも、印刷制御装置は、印刷ジョブを分散することができる。
しかしながら、上記従来技術において、上述の分散方法を用いると、分散先の印刷装置によっては円滑な分散印刷が妨げられるおそれがあった。例えば、印刷装置が、印刷ジョブを受信するためのコネクションを複数個同時に保持できる一方で、印刷ジョブは1つずつしか処理できない場合、その印刷装置は、一般的に、先に確立されたコネクションから順番に印刷ジョブを受信し、その印刷ジョブの処理が終了してから次のコネクションからの印刷ジョブを受信する。このような、印刷装置を分散先として、上述した分散方法を用いると、順番待ちの状態にあるコネクションにパケットを送信した場合に、そのパケットが受信されるまで分散処理を停止せざるを得なくなる。
特に、複数の印刷制御装置が共通する複数の印刷装置を分散先として、上述した分散方法により印刷ジョブを分散すると、分散処理が完全に停止してしまうおそれがあった。
本発明は、上記課題を解決するためになされたものであり、円滑な分散印刷処理を実現することを目的とする。
上記課題の少なくとも一部を解決するために本発明は、印刷装置を提供する。本発明に係る印刷装置は、コネクション型のプロトコルを用いる通信を行う通信部であって、前記通信のためのコネクションを保持する通信部と、前記コネクションを介して印刷ジョブを受信する印刷ジョブ受信部であって、並行して受信可能な印刷ジョブの数はm(mは自然数)である印刷ジョブ受信部と、前記受信された印刷ジョブについて、並行して印刷処理を実行する印刷実行部と、を備え、前記通信部が同時に保持するコネクションの数は、m以下に設定されることを特徴とする。
本発明に係る印刷装置によれば、並行して受信可能な印刷ジョブの数mを超える数のコネクションが保持されることはないので、コネクションを介して印刷ジョブを送信する機器を待機状態にすることがない。特に、分散先印刷装置として用いられる場合には、分散印刷処理を円滑に進めることができる。
本発明に係る印刷装置は、前記印刷ジョブを複数のパケットに分割し、前記パケットを2以上の分散先印刷装置に対してそれぞれ送信するパケット分散を、前記分割されたパケットごとに繰り返し実行することによって、前記印刷ジョブを2以上の前記分散先印刷装置に対してそれぞれ送信可能な印刷制御装置と接続されると共に、前記分散先印刷装置として用いられても良い。こうすれば、このような印刷制御装置による分散印刷処理において起こり得るデッドロックを防止することができる。
本発明に係る印刷装置において、前記印刷実行部は、前記受信された印刷ジョブを解釈して印刷要求を発行する解釈処理を実行する解釈部であって、前記m個の印刷ジョブについて前記解釈処理を並行して実行可能な解釈部と、前記発行された印刷要求に基づいて前記印刷ジョブの印刷結果を出力する印刷部と、を有しても良い。こうすれば、並行して受信された印刷ジョブを並行して解釈するので、より円滑な印刷処理を実現できる。
本発明に係る印刷装置において、前記印刷部は、各印刷ジョブの印刷結果を所定枚数ずつ出力することを繰り返すことによって、複数の前記印刷ジョブの印刷結果を出力しても良い。こうすれば、印刷部がm個より少ない場合であっても、複数の印刷ジョブについて並行して印刷処理を進めることができる。
本発明に係る印刷装置は、さらに、前記印刷部によって出力された印刷結果を、前記印刷ジョブごとに複数の収納部に分けて収納するソータ機構を備えても良い。かかる場合、前記並行して受信可能な印刷ジョブの数mは、前記ソータ機構が有する収容部の数であっても良い。こうすれば、並行して処理された印刷ジョブの印刷結果が混じり合う不都合を避けることできる。
本発明に係る印刷装置において、前記並行して受信可能な印刷ジョブの数mは、前記印刷装置の状態に応じて変化しても良い。例えば、前記並行して受信可能な印刷ジョブの数mは、前記ソータ機構が有する収容部のうち印刷結果を収容できる状態にある収容部の数であっても良い。
本発明に係る印刷装置において、前記印刷部は、m個備えられていても良い。こうすれば、受信可能な印刷ジョブごとに印刷部を使用することができるので、複数の印刷ジョブを並行して円滑に進めることができる。
なお、本発明は、上記した印刷装置としての構成の他、その印刷方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
以下、本発明に係る印刷装置について、図面を参照しつつ、実施例に基づいて説明する。
A.実施例:
・分散印刷システムの構成:
図1および図2を参照して、本発明の実施例における分散印刷システムの構成について説明する。図1は、本発明の実施例における分散印刷システムの概略構成を示す説明図である。図2は、実施例における分散印刷システムを構成する各機器の内部構成を示すブロック図である。
この分散印刷システムは、図1に示すように、クライアントとしての複数の計算機(以下、単にクライアントという。)CLa、CLbと、複数のプリンタPRT1〜PRT4を含む。クライアントCLa、CLbと、プリンタPRT1〜PRT4は、ローカルエリアネットワーク(LAN)を介して互いに接続されている。各機器間の通信は、TCP/IPプロトコルを用いて行われるため、各機器にはそれぞれIPアドレスが割り振られる。説明の便宜上、クライアントCLa、CLbにはそれぞれ「IPa」「IPb」、プリンタPRT1〜PRT4には、それぞれ「IP1」〜「IP4」なるIPアドレスが設定されているものとする。なお、厳密に言えば、これらIPアドレスは、クライアントCLa、CLb、プリンタPRT1〜PRT4自体に設定されているわけではなく、TCP/IPのネットワークから見た場合のノード(すなわち、具体的には、TCP/IP通信を行うためにネットワークに接続されているネットワークボードなど)に設定されている。
これらプリンタのうち、プリンタPRT1およびPRT4には、カスタムネットワークボード100がそれぞれ取り付けられている。このカスタムネットワークボード100は、クライアントCLa、CLbから受信した印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における印刷制御装置に相当する。プリンタPRT2およびPRT3には、それぞれ、標準のネットワークボード200が取り付けられている。
図1において、実線で示す矢印は、クライアントCLaからプリンタPRT1のカスタムネットワークボード100に印刷ジョブが送信され、プリンタPRT1のカスタムネットワークボード100からプリンタPRT1〜PRT4にその印刷ジョブが分散される様子を概念的に示している。破線で示す矢印は、クライアントCLbからプリンタPRT4のカスタムネットワークボード100に印刷ジョブが送信され、プリンタPRT4のカスタムネットワークボード100からプリンタPRT1〜PRT4にその印刷ジョブが分散される様子を概念的に示している。このように、プリンタPRT1〜PRT4は、プリンタPRT1およびプリンタPRT2のカスタムネットワークボード100のいずれからも分散印刷の分散先とされ得る。以下において、各プリンタPRT1〜PRT4を区別する必要のない場合には、符号の末尾の数字を省略しプリンタPRTともいう。また、クライアントCLa、CLbを区別する必要のない場合には、符号の小文字の英字を省略しクライアントCLともいう。
プリンタPRT1は、図2に示すように、プリンタ本体PRBと、上述したカスタムネットワークボード100とを備えている。プリンタ本体PRBは、中央演算装置(CPU)60と、メモリ70と、プリンタエンジン80と、ソータ85とを備えている。CPU60は、プリンタ本体PRBの全体を制御するコントローラとして機能する。メモリ70は、CPU60が制御のためのプログラムやデータを一時的に格納するためのメモリである。プリンタエンジン80は、実際に印刷を行う機構部分であり、本実施例では、静電気によってトナー粉が付着する現象を利用して印刷用紙上に画像を形成するいわゆるレーザー式のプリンタエンジンである。ソータ85は、印刷された紙(以下、印刷紙という。)を収納しておく収納部として3つの排紙ビンを備え、プリンタエンジン80から送られてきた印刷紙を各排紙ビンに選択的に収納する機構を備える。
CPU60は、メモリ70より、プリンタ本体PRBを制御するためのソフトウェアなどのプログラムを読み出して、実行することにより、様々な制御機能をソフトウエア的に実現する。なお、各機能をハードウェア的に構築しても構わない。メモリ70によって実現される機能には、印刷ジョブ解釈部90が含まれる。印刷ジョブ解釈部90は、サブ機能ブロックとして複数のサブ解釈部を備える。本実施例では、3つのサブ解釈部が備えられており、それぞれ第1解釈部91、第2解釈部92、第3解釈部93と呼ぶこととする(図2参照)。3つの解釈部はそれぞれ、印刷ジョブを解釈して画像データを生成し、生成された画像データと共に印刷要求を発行する処理(以下、解釈処理ともいう。)を行う。これらの3つの解釈部は、それぞれ独立して機能する。この結果、印刷ジョブ解釈部90は、並行して3つの解釈処理を実行することができる。プリンタエンジン80は、印刷ジョブ解釈部90から画像データと印刷要求を受信し、これらに基づいて印刷を実行する。
カスタムネットワークボード100は、主として、CPU20と、メモリ30とを備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略している。
CPU20は、メモリ30より、分散印刷やデータ通信を実行するためのソフトウェアなどのプログラムを読み出して、実行することにより、図示した各機能をソフトウェア的に実現する。なお、各機能をハードウェア的に構築しても構わない。
CPU20によって実現される機能ブロックには、TCP/IP部10と、分散制御部40と、印刷ジョブ受信部50が含まれる。TCP/IP部10は、TCP/IPプロトコルを解釈して、主としてネットワークを介して外部との通信を行う。TCP/IPプロトコルにおいてトランスポート層の処理を行うプロトコルとして、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)がある。TCPは、信頼性の高いコネクション型の通信を実現するプロトコルである。一方、UDPは、高速なコネクションレス型の通信を実現するプロトコルである。TCP/IP部10は、後述する印刷ジョブの通信をTCPを用いて行うと共に、後述するSNMPによる通信をUDPを用いて行う。
分散制御部40は、分散印刷を指定した印刷ジョブ(以下、分散印刷ジョブともいう。)を受信して、分散先に印刷ジョブを分散する。分散制御部40が実行する処理については、さらに後述する。
印刷ジョブ受信部50は、サブ機能ブロックとして複数のサブ受信部を備える。本実施例では、3つのサブ受信部が備えられており、それぞれ第1受信部51、第2受信部52、第3受信部53と呼ぶこととする(図2参照)。3つの受信部はそれぞれ、分散印刷を指定していない通常の印刷ジョブ(以下、通常印刷ジョブという。)を受信してプリンタ本体PRBに供給する。これらの3つの受信部は、それぞれ独立して機能する。この結果、印刷ジョブ受信部50は、並行して3つの印刷ジョブを並行して受信することができる。
メモリ30は、上述の機能を実現するためのプログラムを格納する他、主として印刷ジョブ受信部50により受信された印刷ジョブを一時的に格納する受信バッファとして機能する。
プリンタPRT2は、図2に示すように、プリンタ本体PRBおよび上述したネットワークボード200を備えている。プリンタ本体PRBの構成は、上述したプリンタPRT1のプリンタ本体PRBと同一の構成を有しているので、各構成要素にプリンタPRT1のプリンタ本体PRBの構成要素と同一の符号を付しその説明を省略する。ネットワークボード200は、上述したカスタムネットワークボード100が有する機能のうち、分散制御部40を除く構成要素を有している。すなわち、ネットワークボード200は、TCP/IP部10と、印刷ジョブ受信部50と、メモリ30を有している。ネットワークボード200の各構成要素は、カスタムネットワークボード100の同名の構成要素と同様の機能や構成を有しているのでその説明を省略する。
ここで、上記説明から解るように、プリンタPRT1およびPRT4に搭載されたカスタムネットワークボード100は、プリンタPRT2およびプリンタPRT3に搭載されたネットワークボード200の備える機能を全て備えている。すなわち、カスタムネットワークボード100の分散制御部40からみて、プリンタPRT1〜プリンタPRT4は、全て等価であり、後述する分散印刷処理において全て分散先プリンタとして指定され得る。分散制御部40は、分散制御部40自体が内蔵されているプリンタPRT1についても、他のプリンタについても区別なく扱うことができる。
クライアントCLaは、図2に示すように、アプリケーション11の他、機能ブロックとして、TCP/IP部13と印刷ジョブ送信部12とを有している。TCP/IP部13は、TCP/IPプロトコルを解釈して、主としてネットワークを介して外部との通信を行う。印刷ジョブ送信部12は、アプリケーション11の印刷要求に応じて印刷ジョブを生成し、TCP/IP部13を介して生成された印刷ジョブをプリンタPRTに送信する。なお、分散印刷を指定する分散印刷ジョブは、カスタムネットワークボード100を備えるプリンタPRT1およびPRT4にのみ送信することができ、分散印刷を指定しない通常印刷ジョブは、プリンタPRT1〜PRT4のいずれにも送信することができる。
プリンタPRT4は、上述したプリンタPRT1と同様の構成を有し、プリンタPRT3は、上述したプリンタPRT2と同様の構成を有している。クライアントCLbは、上述したクライアントCLaと同様の構成を有している。これらについては、詳しい説明を省略する。
なお、以上の説明からも解るように、本実施例におけるTCP/IP部10は、請求項における通信部に、プリンタ本体PRBは、請求項における印刷実行部に、プリンタエンジン80は、請求項における印刷部に、それぞれ相当する。
・分散印刷処理:
次に、図3〜図5を参照して、分散印刷処理について詳細に説明する。図3は、印刷ジョブのデータ構造を示す概念図である。図4は、分散印刷処理の処理ルーチンを示すフローチャートである。図5は、印刷ジョブが複数の印刷ジョブ受信部50に送信される通信シーケンスの一例を示す説明図である。
分散印刷処理は、カスタムネットワークボード100のCPU20が備える分散制御部40によって実行される処理である。分散制御部40は、指定された印刷部数を、分散先のプリンタに配分して印刷する。分散制御部40は、印刷部数を100部とした分散印刷ジョブを受信した場合には、例えば、印刷部数を25部とした通常印刷ジョブをプリンタPRT1〜PRT4にそれぞれ送信する。これによって、分散印刷システム全体として100部の印刷が実行される。
印刷ジョブは、TCP/IPプロトコルに従った形式の通信データとして送信される。この通信データは、図3(a)に示すように、ヘッダ400と、データ部450とに分かれている。このうち、ヘッダ400には、その通信データの送信元である機器のIPアドレス(送信元IPアドレス)と、その機器内における送信元であるソフトウェアを特定するポート番号(送信元ポート番号)と、を含む他、その通信データの送信先である機器のIPアドレス(送信先IPアドレス)と、その機器内における送信先であるソフトウェアを特定するポート番号(送信先ポート番号)とを含んでいる。送信元である機器のソフトウェアから発信された通信データは、送信先IPアドレスに従って、そのIPアドレスを有する機器に送信され、さらに、受信したその機器内では、送信先ポート番号に従って、その番号のポートで待機しているソフトウェアに渡される。データ部450は、送受信の対象となるデータが格納される部分であり、本実施例では、後述する印刷ジョブデータ500が格納される。
印刷ジョブデータ500は、図3(b)に示すように、ジョブ制御言語部501と、ページ記述言語部502を有している。ページ記述言語部502は、印刷内容が所定のページ記述言語を用いて記述されている部分である。ページ記述言語としては、ESC/PageやPostscriptなどが用いられ得る。ジョブ制御言語部501は、印刷部数、印刷用紙サイズ、ページ記述言語部502の記述に使用されているページ記述言語の種別を始め、ページ記述言語部502に記述された印刷内容を印刷するために必要な属性が記述されている。ジョブ制御言語部501は、所定のジョブ制御言語、本実施例ではEJL(Epson Job Language)を用いて記述されている。
分散印刷を行う際には、ユーザは、クライアント(例えば、クライアントCLa(図1))におけるプリンタドライバにおいて、送信先ポート番号の設定を、通常の「9100」から特定の「59100」に変更する。すなわち、本実施例では、ここでのポート番号の設定を切り換えることにより、通常の「9100」では通常印刷を、特定の「59100」では分散印刷を、それぞれ選択することになる。ポート番号「9100」で待ち受けているのは、上述した印刷ジョブ受信部50である。一方、ポート番号「59100」で待ち受けているのは、上述した分散制御部40である。
図4を参照しながら、分散印刷処理を順を追って説明していく。カスタムネットワークボード100が搭載されたプリンタ(例えば、プリンタPRT1)が印刷ジョブを受け付ける状態にあるとき、分散制御部40は、ポート番号「59100」に印刷ジョブが着信するまで待機している(ステップS102)。
クライアントCLから送信先ポート番号として「59100」を指定した印刷ジョブ(分散印刷ジョブ)を含む通信データがプリンタPRT1に着信すると(ステップS102:YES)、TCP/IP部10は、ポート番号「59100」で待機している分散制御部40に印刷ジョブを渡す。分散制御部40は、受け取った印刷ジョブの最初の部分(後述するパケットP1)を、メモリ30に一時的に格納しておく(ステップS104)。
ここで、印刷ジョブデータ500の大きさは、一部あたりの印刷量に応じて大きくなるのに対し、メモリ30において、印刷ジョブデータ500の格納に用いられる記憶領域の容量は限られているので、印刷ジョブデータ500は、その記憶領域の容量より小さなデータの固まり(以下、パケットという。)に分割して取得される。図3(c)では、印刷ジョブデータ500は、各パケットP1〜P8に分けられている。上述したステップS102で印刷ジョブが着信した時点では、パケットP1のみが取得され、メモリ30に格納されている。
図4に戻って、説明を続ける。次に、分散制御部40は、分散先プリンタを選択するための処理(ステップS106〜S114)を実行する。先ず、分散制御部40は、ネットワーク上に接続された機器のIPアドレスを取得する(ステップS106)。例えば、分散制御部40は、SNMPを用いてLANに対し、ブロードキャストでLANに接続されている各機器のIPアドレスを問い合わせ、応答されたIPアドレスを取得する。あるいは、分散制御部40は、分散先指定ファイルが設定されている場合には、分散先指定ファイルを参照して、IPアドレスを取得する。分散先指定ファイルには、例えば、分散先として使用したいプリンタのIPアドレスが列挙して記載されている。このような分散先指定ファイルは、例えば、サービスマンが、プリンタPRT1を設置して初期設定する際に、そのプリンタPRT1に設定用コンピュータなどを接続して、インストールすることにより、メモリ30に格納することができる。また、LANを介してインストールするようにしてもよい。なお、このような分散先指定ファイルを用いる場合、分散先として自己のプリンタPRT1も使用したい場合には、自己プリンタPRT1のIPアドレス「IP1」も、分散先指定ファイルに記載しておく必要がある。
次に、分散制御部40は、取得されたIPアドレスを割り当てられた各機器に関する情報を取得する(ステップS108)。具体的には、分散制御部40は、SNMPを用いて、マルチキャストで各機器に対して問い合わせを行い、問い合わせの応答として機種名およびステータスを取得する。
分散制御部40は、取得された機種名およびステータスに基づいて、ネットワーク上に接続された機器の中から所定の条件を満たすプリンタを検索し、検索されたプリンタを分散先プリンタとして選択する(ステップS110)。本実施例では、分散先プリンタとして、上述したプリンタPRT1〜PRT4の一部または全部が分散先プリンタとして選択されるものとする。プリンタが分散先プリンタとして選択されるための条件を、以下に示す。
1.自己プリンタ(例えば、プリンタPRT1)と同一の機種であること。
2・電源が投入されていること。
3.トナー残量が所定の閾値以上であること。
4.オンライン状態にあること。
5.印刷中でないこと(プリンタエンジン80が駆動中でないこと)。
自己プリンタPRT1と同一機種であることを、分散先プリンタとして選択する条件とするのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。
2〜5の条件は、すぐに印刷できないプリンタを分散先プリンタとして選択することを防ぐためである。オンライン状態とは、用紙切れや紙詰まりといったエラーを起こしている状態(オフライン状態)ではない正常な状態のことを指す。
そして、分散制御部40は、1台以上の分散先プリンタが選択されたか否かを判断する(ステップS112)。一台の分散先プリンタも選択されていない場合(ステップS112:NO)には、分散制御部40は、所定期間待機して(ステップS114)、ステップS106〜ステップS112の処理を繰り返す。
分散先プリンタが一台以上選択されると(ステップS112:YES)には、分散制御部40は、選択された各分散先プリンタとの間に、分散制御部40から分散先プリンタの印刷ジョブ受信部50に印刷ジョブを送信するためのコネクションを確立する(ステップS116)。具体的には、分散制御部40は、カスタムネットワークボード100のTCP/IP部10に、分散先プリンタのTCP/IP部10との間で、コネクションの確立処理を行わせる。カスタムネットワークボード100から分散先プリンタへの第1の確立要求を示すTCPパケット(SYNパケット)と、第1の確立要求に対する受信確認と分散先プリンタからカスタムネットワークボード100への第2の確立要求とを兼ねるTCPパケット(ACK/SYNパケット)と、第2の確立要求に対する受信確認を示すTCPパケット(ACKパケット)とが、2つのTCP/IP部10間において、順次やり取りされると、コネクションが確立される。
分散制御部40は、確立された各コネクションを介して、各分散先プリンタに印刷ジョブを送信する(ステップS118)。送信される印刷ジョブのジョブ制御言語部501には、分散先ごとに配分される印刷部数が記述される。また、送信される印刷ジョブは、送信先ポート番号を「9100」として送信される。ここで、図5を参照して分散印刷処理における分散制御部40から分散先プリンタ(印刷ジョブ受信部50)への印刷ジョブの送信について、さらに説明する。図5では、プリンタPRT1の分散制御部40がクライアントCLaから印刷ジョブを受信し、2つのプリンタPRT2およびプリンタPRT3の各印刷ジョブ受信部50に対して、その印刷ジョブを送信(分散)する様子を示している。
図3(c)を参照して上述したように、印刷ジョブデータ500は、所定のパケットに分けてクライアントから取得される。このため、分散制御部40から分散先プリンタの印刷ジョブ受信部50への印刷ジョブの送信は、パケット単位で複数回に分けて行う必要がある。図5に示す例では、図3(c)に示す8つのパケットP1〜P8に分けられた印刷ジョブデータ500が送信される場合を示している。
分散制御部40が印刷ジョブの送信(ステップS118)を開始すると、まず、最初にメモリ30に格納されているパケットP1(ジョブ制御言語部501を含む印刷ジョブの最初のパケット)をプリンタPRT2およびプリンタPRT3の印刷ジョブ受信部50にそれぞれ送信する。以下、このようにパケットを複数の分散先プリンタの印刷ジョブ受信部50にそれぞれ送信することをパケット分散という。図5において、記号PDで示す破線で囲まれた矢印の集合は、1回のパケット分散に対応している。
最初のパケットP1のパケット分散PDの終了が確認されると、分散制御部40は、図5に示すようにクライアントCLaから次のパケットP2を受信する。パケット分散PDの終了の確認は、TCPプロトコルにしたがって送信元と送信先のTCP/IP部10が行う。分散制御部40は、メモリ30に格納されたパケットP1を消去して、新たに受信されたパケットP2をメモリ30に格納する。分散制御部40は、メモリ30に格納されたパケットP2について、パケットP1と同様にパケット分散PDを実行する。同様の処理を印刷ジョブデータ500を構成する残りのパケットP3〜P8について繰り返し実行することにより、印刷ジョブデータ500の全体が、最終的にプリンタPRT2およびプリンタPRT3の印刷ジョブ受信部50にそれぞれ送信される。
・分散先プリンタにおける処理:
次に、図6〜図8を参照して、分散先プリンタとしてのプリンタPRTにおける処理について説明する。図6は、コネクション確立処理の処理ルーチンを示すフローチャートである。図7は、印刷処理の処理ルーチンを示す第1のフローチャートである。図8は、印刷処理の処理ルーチンを示す第2のフローチャートである。図9は、複数の印刷処理が並行して実行される様子を概念的に示す説明図である。
先ず、プリンタPRTのTCP/IP部10が実行するコネクション確立処理について説明する。プリンタPRTに電源が投入されている場合には、常時、このコネクション確立処理が実行されている。TCP/IP部10は、現在、保持されているコネクションの数が3未満であるか否かを判断する(ステップS202)。コネクションが、既に3つ保持されていると判断すると(ステップS202:NO)、TCP/IP部10は、保持されているコネクションの数が3未満になるまで待機する。つまり、TCP/IP部10は、3つ以上のコネクションが同時に保持されないように、新たなコネクションの確立を行わない。コネクションの最大保持数(本実施例では、3)は、プリンタPRTが並行して受信して処理可能な印刷ジョブの数(本実施例では、3)に等しくなるように設定される。
一方、TCP/IP部10は、現在確立されているコネクションの数が3未満であると判断すると(ステップS202:YES)、TCP/IP部10は、コネクションの確立要求の有無を監視する(ステップS204)。印刷ジョブを送信しようとする機器(以下、送信機器ともいう。)は、印刷ジョブの送信に先立ってコネクションを確立する必要があるため、先ず、コネクションの確立要求(SYNパケット)を送信してくる。送信機器には、例えば、上述のカスタムネットワークボード100(分散制御部40)、あるいは、クライアントCLが該当する。TCP/IP部10は、コネクションの確立要求を受信すると(ステップS204:YES)、コネクションの確立要求を送信してきた機器から印刷ジョブを受信するためのコネクションを確立する(ステップS206)。TCP/IP部10は、その後、ステップS202にリターンする。
図7〜8を参照して、上述したコネクション確立処理によってコネクションが確立された場合に実行される印刷処理について説明する。コネクションが確立されると、コネクションを介して送信機器から印刷ジョブが送信されてくる。第1受信部51〜第3受信部53の中で別の印刷ジョブの受信中でないサブ受信部は、印刷ジョブが送信されてくるのを待機しており(ステップS302)、印刷ジョブが送信されてくると、送信されてくる印刷ジョブを受信する(ステップS304)。以下、第1受信部51が印刷ジョブを受信するとして説明を続ける。第1受信部51は受信した印刷ジョブをメモリ30に格納しておく必要があるので、一度に受信できるデータ量は限られている。このため、第1受信部51は、一度に受信可能な所定データ量分だけ印刷ジョブを先頭から順次受信する。
続いて、第1解釈部91は、受信された印刷ジョブを解釈して画像データを生成する(ステップS306)。生成された画像データは、メモリ70に格納される。次に、1ページ分の画像データが生成されたか否かが調べられる(ステップS308)。1ページ分の画像データが生成されたか否かは、改ページ要求まで印刷ジョブを解釈したか否かによって判断される。1ページ分の画像データが生成されていると(ステップS308:YES)、第1解釈部91は、生成された1ページ分の画像データについて印刷要求を発行する(ステップS310)。1ページ分の印刷要求が発行されるか、あるいは、1ページ分の画像データが生成されていない場合には(ステップS308:NO)、既に受信されていながら未処理の印刷ジョブが有るか否かが調べられる(ステップS312)。未処理の印刷ジョブが有る場合には(ステップS312:YES)、未処理の印刷ジョブを解釈するため、ステップS306に戻る。
一方、未処理の印刷ジョブがない場合には(ステップS312:NO)、送信機器からコネクションの終了要求が有るか否かが調べられる(ステップS314)。送信機器は、印刷ジョブを全て送信し終わると、コネクションの終了要求を送信してくる。従って、送信機器からコネクションの終了要求がない場合には(ステップS314:NO)、送信機器からさらに印刷ジョブが送信されてくるので、ステップS304に戻って上述のステップ(S304〜S312)を繰り返す。
一方で、送信機器からコネクションの終了要求が有った場合には(ステップS314:YES)、印刷ジョブは全て受信されたことになるので、コネクションは終了される(ステップS316)。その後、メモリ70に、まだ印刷要求が未発行の画像データが有るか否かが調べられる(ステップS318)。未発行の画像データがない場合には(ステップS318:NO)、本処理は終了される。一方、未発行の画像データが有る場合には(ステップS318:YES)、第1解釈部91は、未発行の画像データについて1ページ分の印刷要求を発行し(ステップS320)、本処理は終了される。ここで、ステップS318において、未発行の画像データの有無を調べるのは、印刷ジョブの最後に改ページ要求がある場合と、改ページ要求がない場合とがあるからである。印刷ジョブの最後に改ページ要求がある場合は、コネクションの終了後に未発行の画像データはないので(ステップS318:NO)、そのまま処理が終了される。一方、印刷ジョブの最後に改ページ要求がない場合には、コネクション終了後に未発行の画像データがメモリ70に残るので(ステップS318:YES)、上述のステップS320の処理が必要になる。
以上のように、印刷ジョブを受信しながら、1ページ分の印刷要求を順次発行していく。画像データを格納するメモリ70には限界があるので、メモリ70の残容量がなくなると、本処理は一時中断される。後述する図8の処理によって、1ページ分の印刷要求に応じて印刷が実行されると印刷済みの画像データを消去して、本処理は再開される。
図7に示す処理と並行して、図8に示すように印刷要求に応じて、印刷を実行する処理が行われる。本処理では、印刷要求が発行される(図7:ステップS312、S314)のを待ち受けており(ステップS402)、発行された印刷要求を受信すると(ステップS402:YES)、プリンタエンジン80が別の印刷ジョブの印刷中であるか否かが調べられる(ステップS404)。プリンタエンジン80が別の印刷ジョブの印刷中である場合には(ステップS404:YES)、直ちに印刷を実行できないため本処理における印刷ジョブの印刷順が来るまで待機する(ステップS406)。プリンタエンジン80が印刷中でない場合には(ステップS404:NO)、本処理のためにプリンタエンジン80が占有され(ステップS408)、プリンタエンジン80は、図7に示す処理において生成された画像データに基づいて1ページ分の印刷を実行する(ステップS410)。例えば、5ページを一部とする印刷物を10部印刷する印刷ジョブである場合において、1ページ目の印刷要求が受信されたとすると、本ステップにおいて1ページ目が10部印刷される。
印刷された紙(印刷紙)はソータ85に送られ、ソータ85は印刷紙を複数の排紙ビンのうちの特定の排紙ビンに収納する(ステップS412)。特定の排紙ビンは、印刷ジョブごとに定められており、1の印刷ジョブに係る印刷紙は、1の排紙ビンに収納される。1ページ分の印刷が終了すると、プリンタエンジン80は、本処理による占有から解放される(ステップS414)。つまり、印刷順が来るまで待機している他の印刷処理が存在する場合には、他の印刷処理にプリンタエンジン80の占有を譲ることになる。
続いて、印刷されたページが最終ページか否かが判断され(ステップS416)、最終ページではないと判断されると(ステップS416:NO)、ステップS402に戻って次ページの印刷要求が受信されるのを待つ。一方、印刷されたページが最終ページか最終ページであると判断されると(ステップS416:YES)、本処理は終了される。
プリンタPRTは、以上説明した印刷処理を、3つまで並行して処理することができる。上記の説明では、印刷ジョブの受信(ステップS302)と印刷ジョブの解釈処理(ステップS304)は、それぞれ第1受信部51と第1解釈部91により実行されている。複数の印刷処理が並行して処理される場合には、これらの処理は、第1受信部51と第1解釈部91、第2受信部52と第2解釈部92、あるいは、第3受信部53と第3解釈部93によって、それぞれ別々に処理されるので、互いに影響を与えることなく処理される。図9には、3つの送信機器(クライアントCLa、プリンタPRT4の分散制御部40、および、プリンタPRT1の分散制御部40)からそれぞれ送信された印刷ジョブがプリンタPRTにおいて並行して処理される様子が示されている。
ただし、プリンタPRTのプリンタエンジン80は1つであるので、並行して処理される複数の印刷処理において、プリンタエンジン80を排他的に使用する必要がある。本実施例では、上述した図8に示す処理から解るように、各印刷処理は、一枚ずつ印刷を実行するごとに、プリンタエンジン80の占有を解放する。このようにして、各印刷処理が交代でプリンタエンジン80を順次占有することによって、並行して複数の印刷処理を進めることができる。言い換えれば、プリンタPRTは、複数の印刷ジョブについて一枚ずつ印刷することによって、複数の印刷ジョブを並行して処理することができる。
以上説明した本実施例におけるプリンタPRTによれば、印刷ジョブを受信するためのコネクションが同時に保持される数は、並行して受信可能な印刷ジョブの数(3つ)以下に制限される。この結果、送信機器とプリンタPRTとのコネクションが確立されれば、コネクションを介して送信された印刷ジョブは必ずプリンタPRTによって受信されるので、送信機器はいわゆる待機状態にされることがない。
従って、実施例におけるプリンタPRTを分散印刷処理における分散先プリンタとして用いれば、分散印刷処理におけるデッドロックの発生を防止することができる。ここで、デッドロックとは、分散印刷処理が完全に停止してしまう不具合をいうものとする。例えば、2以上のカスタムネットワークボード100(分散制御部40)と、2以上のカスタムネットワークボード100のそれぞれが印刷ジョブの分散先として指定可能な2以上の分散先プリンタとを含む分散印刷システムがあるとする。このシステムにおいて、2以上のカスタムネットワークボード100が、分散印刷処理によって、ほぼ同時に2以上の分散先プリンタに対して印刷ジョブを送信しようとした場合に、従来はデッドロックが発生する場合があった。
ここで、理解の容易のため、図10〜図12を参照して、デッドロックが発生するメカニズムについて説明する。図10は、従来のプリンタにおける印刷ジョブの受信を概念的に示す説明図である。図11は、デッドロックの発生する場合の通信シーケンスを示す説明図である。図12は、デッドロックが発生する場合を概念的に示す説明図である。
先ず、図10を参照して、従来のプリンタによる印刷ジョブの受信について説明する。従来のプリンタは、同時に保持可能なコネクションの数は、並行して受信可能な印刷ジョブの数より多かった。例えば、図10に示す従来のプリンタPRは、同時に保持可能なコネクションの数は8つであり、並行して受信可能な印刷ジョブの数は1つである。
図10は、このようなプリンタPRに対して、3つのクライアントCLa〜CLcとが、並行して印刷ジョブを送信しようとする様子を概念的に示している。記号CN1〜CN3と、クライアントCLa〜CLcの各TCP/IP部13とプリンタPRのTCP/IP部1との間で確立されたコネクションを示しており、符号の末尾の数字は、コネクションが確立された時間的な順番を示している。すなわち、クライアントCLaのTCP/IP部13が1番先に、クライアントCLcのTCP/IP部13が2番目に、クライアントCLbのTCP/IP部13が3番目に、それぞれプリンタPRのTCP/IP部1とコネクションを確立したことを示している。
上述したように、TCP/IP部1は複数のコネクションを保持できるのに対して、プリンタPRの受信部2は1つずつ印刷ジョブを受信するように構成されている。プリンタPRのプリンタ本体(図示せず。)が並行して複数の印刷ジョブを処理することができないからである。受信部2は、先に確立されたコネクションを介して送信される印刷ジョブを優先して受信する。図10に示す具体例では、受信部2は、最初に確立されたコネクションCN1を介して、クライアントCLaから送信される印刷ジョブを、最初に受信する(図10(a))。受信部2は、印刷プロトコルに従って、受信された印刷ジョブをプリンタ本体に供給する。受信部2がクライアントCLaから送信される印刷ジョブを受信している間、他のクライアントCLb、CLcは、コネクションCN3、2を保持したまま、待機させられる。さらに、詳しく説明するとTCPプロトコルを用いた通信では、データのフロー制御(データの流れを許可したり禁止したりする制御)がなされており、コネクションを介してTCP/IP部1の上位アプリケーションである受信部2が印刷ジョブを受信しない(TCP/IP部1から受け取らない)場合は、TCP/IP部1はフロー制御によりデータの流れを禁止する。すなわち、送信元のTCP/IP部(この例ではクライアントCLb、CLcのTCP/IP部13)に対して、データを送信しないように通知する。この状態では、クライアントCLb、CLcは、データを送信することができず、データの送信が許可されるまで待機することになる。以下、このような状態を待機状態という。
そして、受信部2がクライアントCLaから送信される印刷ジョブを全て受信すると、TCP/IP部1は、コネクションCN1を終了する。コネクションCN1が終了された後、図10(b)に示すように、受信部2は、2番目に確立されたコネクションCN2を介して、クライアントCLcから印刷ジョブを受信する。受信部2がコネクションCN2を介して送信されてきた印刷ジョブを受信する(TCP/IP部1から受け取る)ようになると、TCP/IP部1は上述したフロー制御によりデータの流れを許可する。すなわち、TCP/IP部1は、送信元(クライアントCLc)のTCP/IP部13に、データの送信を許可する。こうして、クライアントCLcは、待機状態から解放されて、印刷ジョブを送信できるようになる。
このように、受信部2が、コネクションが確立された順番に印刷ジョブを順次受信し、受信された印刷ジョブをプリンタ本体に順次供給することによって、クライアントのアクセス順に印刷が順次実行される。
以上の説明した従来のプリンタPRを2台(プリンタPR2とプリンタPR3と呼ぶ。)分散先プリンタとして用いて、例えば、プリンタPRT1の分散制御部40とプリンタPRT4の分散制御部40が、それぞれほぼ同時に分散印刷処理を実行する場合を考える。プリンタPRT1の分散制御部40とプリンタPRT4の分散制御部40は、2台のプリンタPR2、PR3に対して印刷ジョブを送信するためにそれぞれコネクションを確立したとする。上述したように、プリンタPR2、PR3のTCP/IP部1は、複数のコネクションを同時に保持することができるので、各コネクションの確立は成功する。図11において、白抜きの丸は、プリンタPRT1の分散制御部40とプリンタPR2およびプリンタPR3の各受信部2との間のコネクションが確立されたタイミングを示している。一方、黒塗りの丸は、プリンタPRT4の分散制御部40とプリンタPR2およびプリンタPR3の各受信部2との間のコネクションが確立されたタイミングを示している。
図11に示すように、プリンタPR2の受信部2とのコネクションは、プリンタPRT1の分散制御部40が先に確立している。従って、プリンタPR2の受信部2は、プリンタPRT1の分散制御部40から送信されてくる印刷ジョブを優先的に受信し、この印刷ジョブの受信が全て終了するまで、プリンタPRT4の分散制御部40は待機状態にされる。
一方、図11に示すように、プリンタPR3の受信部2とのコネクションは、プリンタPRT4の分散制御部40が先に確立している。従って、プリンタPR3の受信部2は、プリンタPRT4の分散制御部40から送信されてくる印刷ジョブを優先的に受信し、この印刷ジョブの受信が全て終了するまで、プリンタPRT1の分散制御部40は待機状態にされる。図11において、太い実線は、優先的に印刷ジョブを受信するコネクションCN12、CN43を示し、細い実線は、待機状態にされているコネクションC42、C13を示している。
このような状態から、プリンタPRT1の分散制御部40は、確立されたコネクションC12、C13を介して、上述したパケット分散PD(図5)を実行してプリンタPR2、PR3の各受信部2に印刷ジョブを送信しようとする。かかる場合には、プリンタPR2の受信部2に送信されるパケットP1は、コネクションCN12の優先順位が高いため直ちに受信されるが、プリンタPR3の受信部2に送信されるパケットP1は、コネクションCN13の優先順位が低いために受信されない。そのため、プリンタPRT1の分散制御部40は、1回目のパケット分散PDを終了することができず待機状態になる。
同様にして、プリンタPRT4の分散制御部40は、確立されたコネクションC42、C43を介して、プリンタPR2、PR3の各受信部2に印刷ジョブを送信しようとする。かかる場合には、プリンタPR3の受信部2に送信されるパケットP1は、コネクションCN43の優先順位が高いため直ちに受信されるが、プリンタPR2の受信部2に送信されるパケットP1は、コネクションCN42の優先順位が低いために受信されない。そのため、プリンタPRT1の分散制御部40と同様に、プリンタPRT4の分散制御部40は、1回目のパケット分散PDを終了することができず待機状態になる。
この結果、プリンタPRT1の分散制御部40およびプリンタPRT4の分散制御部40による分散印刷処理は、両方とも完全に停止状態に陥ってしまう。プリンタPRT1の分散制御部40の待機状態は、プリンタPRT4の分散制御部40による分散印刷処理が終了するまで解消されず、一方でプリンタPRT4の分散制御部40の待機状態は、プリンタPRT1の分散制御部40による分散印刷処理が終了するまで解消されないためである。
図11に示すようなデッドロックは、図12に示すような場合に起こる。概念的に説明すると、印刷ジョブの送信側である複数の分散制御部と、受信側である複数の受信部があり、分散制御部と受信部間の通信のためのコネクションによって、分散制御部と受信部とを交互に結ぶ閉じた環が形成され得るシステムにおいて、デッドロックが起きうる。上述したようにコネクションの環が確立され、環上にある全ての受信部に少なくとも待機状態になるコネクションが1つ以上ある状態で、分散印刷処理が実行されるとデッドロック状態になる。図12において、コネクションに付されている番号は、1が即時受信状態のコネクション、2が待機状態のコネクションを示している。
本実施例に係るプリンタPRTを分散先プリンタとして上述したような分散印刷処理を実行すれば、印刷ジョブを送信しようとする分散制御部40が待機状態にされることはないので、上述したデッドロックの発生を防止することができる。例えば、図11に示すようなタイミングでコネクションの確立がおこなわれたとしても、プリンタPRT1の分散制御部40から送信される印刷ジョブとプリンタPRT4の分散制御部40から送信される印刷ジョブとを並行して受信し、並行して印刷処理を実行することができるからである。また、並行して受信可能な数(本実施例では3つ)を超える数のコネクションが確立されることはない(図6)。
さらに、本実施例におけるプリンタPRTの印刷ジョブ解釈部90は、複数のサブ解釈部(第1解釈部91〜第3解釈部93)を備え、並行して印刷ジョブを解釈することができる。この結果、並行して受信されて複数の印刷ジョブを速やかに解釈して印刷処理を進めることができる。
また、各印刷ジョブについて1ページずつ印刷することを繰り返して、複数の印刷ジョブを処理していくので、プリンタPRTは全ての印刷ジョブを一度に受信する必要がない。この結果、プリンタPRTに搭載するメモリ30およびメモリ70の容量を低減することができる。
さらに、複数の印刷ジョブ(最大3つ)を並行して処理する場合でも、印刷紙は3つの収容部を備えるソータ85によって印刷ジョブごとに分けて収納される。この結果、複数の印刷ジョブの印刷紙が混じり合う不都合は解消される。
B.変形例:
プリンタPRTが並行して受信できる印刷ジョブの数mは、上記実施例で示した3に限られない。本実施例では、ソータ85の収容部(排紙ビン)の数3に合わせて設定されているが、さらに多数の収容部を備えるソータを用いる場合には収容部の数に応じてmの値も増加させても良い。また、プリンタPRTが受信できる印刷ジョブの数mは、プリンタPRTごとに常に一定値である必要はなく、プリンタPRTの状態に応じて動的に変化させても良い。例えば、ソータ85の排紙ビンのうち印刷紙を収容できる状態にある排紙ビンの数に応じてmの値を設定することができる。具体的には、ソータ85の排紙ビンごとに印刷紙が排紙ビンに収容されているか否かを検出するセンサを設け、印刷紙が収容されていない排紙ビンの数を、mの値としても良い。いずれにしても、その時に設定されているmの値に対して、同時に保持できるコネクション数nは、m以下の自然数に制限される。こうすることによって上述した作用・効果が得られる。
上記実施例では、プリンタPRTごとにプリンタエンジン80は1つであるが、プリンタPRTごとに複数のプリンタエンジン80を備えても良い。例えば、上記実施例において1つのプリンタPRTに3つのプリンタエンジン80がある場合には、3つのサブ解釈部(第1解釈部91〜第3解釈部93)ごとに1つのプリンタエンジン80を割り当てることができるので、より高速に印刷処理を実行することができる。
上記実施例では、複数の印刷ジョブを並行して処理する場合、各印刷ジョブについて1ページずつ印刷することを繰り返しているが、繰り返しの単位は1ページずつに限られない。例えば、2ページずつあるいは3ページずつ繰り返すこととしても良い。これは、画像データを一時的に格納するためのメモリ70の容量などに応じて適宜変更することができる。
上記実施例におけるプリンタエンジン80は、種々のタイプのものが用いられ得る。例えば、レーザー式に限らず、インクジェット式、昇華型、ドットインパクト式、熱転写型など、あらゆるタイプのプリンタエンジンが用いられ得る。
以上、本発明の実施例および変形例について説明したが、本発明はこれらの実施例および変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
実施例における分散印刷システムの概略構成を示す説明図。 分散印刷システムを構成する各機器の内部構成を示すブロック図。 印刷ジョブのデータ構造を示す概念図。 分散印刷処理の処理ルーチンを示すフローチャート。 印刷ジョブが複数の印刷ジョブ受信部に送信される通信シーケンスの一例を示す説明図。 コネクション確立処理の処理ルーチンを示すフローチャート。 印刷処理の処理ルーチンを示す第1のフローチャート。 印刷処理の処理ルーチンを示す第2のフローチャート。 複数の印刷処理が並行して実行される様子を概念的に示す説明図。 従来のプリンタにおける印刷ジョブの受信を概念的に示す説明図。 デッドロックの発生する場合の通信シーケンスを示す説明図。 デッドロックが発生する場合を概念的に示す説明図。
符号の説明
10...TCP/IP部
11...アプリケーション
12...印刷ジョブ送信部
13...TCP/IP部
20...CPU
30...メモリ
40...分散制御部
50...印刷ジョブ受信部
51...第1受信部
51...第1受信部
52...第2受信部
53...第3受信部
60...CPU
70...メモリ
80...プリンタエンジン
85...ソータ
90...印刷ジョブ解釈部
91...第1解釈部
92...第2解釈部
93...第3解釈部
100...カスタムネットワークボード
200...ネットワークボード
400...ヘッダ
450...データ部
500...印刷ジョブデータ
501...ジョブ制御言語部
502...ページ記述言語部
PRT、PR...プリンタ
CLa〜CLc...クライアント

Claims (11)

  1. ネットワークに、複数の印刷装置が接続され、前記複数の印刷装置の少なくとも2以上の印刷装置で印刷ジョブに基づく印刷を行う分散印刷システムであって、
    各印刷装置は、
    コネクション型のプロトコルを用いる通信を行う通信部であって、前記通信のためのコネクションを保持する通信部と、
    前記コネクションを介して前記印刷ジョブを受信する印刷ジョブ受信部であって、並行して受信可能な印刷ジョブの数はm(mは自然数)である印刷ジョブ受信部と、
    前記受信された印刷ジョブについて、並行して印刷処理を実行する印刷実行部と、
    を備え、
    前記通信部が同時に保持するコネクションの数は、m以下に設定されており、
    前記複数の印刷装置のうちの所定の印刷装置は、
    前記印刷ジョブを2以上の前記印刷装置である分散先印刷装置に対して送信可能な印刷制御装置を備え、
    前記印刷制御装置は、
    前記ネットワークに接続された前記複数の印刷装置の中から、前記印刷制御装置が備え付けられた印刷装置と同一の機種であって、かつ、印刷が可能な状態にある印刷装置を分散先印刷装置として選択し、
    前記所定の印刷装置の通信部に対し、選択した分散先印刷装置の通信部との間で、コネクションの確立処理を行わせ、コネクションが確立された分散先印刷装置に対して前記印刷ジョブを送信する、
    分散印刷システム。
  2. 請求項1に記載の分散印刷システムにおいて、
    前記印刷制御装置は、2以上の前記分散先印刷装置に対する前記印刷ジョブの送信を、前記印刷ジョブを複数のパケットに分割し、前記パケットを前記コネクションが確立された2以上の前記分散先印刷装置に対してそれぞれ送信するパケット分散を、前記分割されたパケットごとに繰り返し実行することによって行う、分散印刷システム。
  3. 請求項1又は請求項2に記載の分散印刷システムにおいて、
    前記各印刷装置の前記印刷実行部は、
    前記受信された印刷ジョブを解釈して印刷要求を発行する解釈処理を実行する印刷ジョブ解釈部であって、前記m個の印刷ジョブについて前記解釈処理を並行して実行可能な印刷ジョブ解釈部と、
    前記発行された印刷要求に基づいて前記印刷ジョブの印刷結果を出力する印刷部と、
    を有する分散印刷システム。
  4. 請求項3に記載の分散印刷システムにおいて、
    前記印刷装置の前記印刷部は、各印刷ジョブの印刷結果を所定枚数ずつ出力することを繰り返すことによって、複数の前記印刷ジョブの印刷結果を出力する、分散印刷システム。
  5. 請求項4に記載の分散印刷システムにおいて、
    前記各印刷装置は、さらに、
    前記印刷部によって出力された印刷結果を、前記印刷ジョブごとに複数の収納部に分けて収納するソータ機構を備える、分散印刷システム。
  6. 請求項5に記載の分散印刷システムにおいて、
    前記各印刷装置における前記並行して受信可能な印刷ジョブの数mは、前記ソータ機構が有する収容部の数である、分散印刷システム。
  7. 請求項1ないし請求項6のいずれかに記載の分散印刷システムにおいて、
    前記各印刷装置が並行して受信可能な前記印刷ジョブの数mは、前記印刷装置の状態に応じて変化する、分散印刷システム。
  8. 請求項5に記載の分散印刷システムであって、
    前記各印刷装置が前記並行して受信可能な印刷ジョブの数mは、前記ソータ機構が有する収容部のうち印刷結果を収容できる状態にある収容部の数である、分散印刷システム。
  9. 請求項3に記載の分散印刷システムであって、
    前記各印刷装置の前記印刷部は、m個備えられている、分散印刷システム。
  10. ネットワークに、複数の印刷装置が接続され、前記複数の印刷装置の少なくとも2以上の印刷装置で印刷ジョブに基づく印刷を行う印刷方法であって、
    前記複数の印刷装置のうちの所定の印刷装置は、前記印刷ジョブを2以上の前記印刷装置である分散先印刷装置に対して送信可能な印刷制御装置を備え、
    前記印刷方法は、前記印刷制御装置が、
    前記複数の印刷装置の中から所定の条件を満たす印刷装置を分散先印刷装置として選択し、選択した印刷装置に対しコネクションの確立要求を行う工程と、
    コネクションの確立が行われた前記分散先印刷装置に対し、前記印刷ジョブを送信する工程と、を備え、
    前記所定の条件を満たす印刷装置は、
    前記所定の印刷装置と同一の機種であって、かつ、印刷が可能な状態にある印刷装置であり、
    前記ネットワークに接続された各印刷装置は、
    コネクション型のプロトコルを用いる通信を行う通信部であって、前記通信のためのコネクションを保持する通信部と、前記コネクションを介して印刷ジョブを受信する印刷ジョブ受信部であって、並行して受信可能な印刷ジョブの数はm(mは自然数)である印刷ジョブ受信部と、前記受信された印刷ジョブについて、並行して印刷処理を実行する印刷実行部と、を備え、
    さらに前記印刷方法は、前記各印刷装置のうち、前記所定の印刷装置からコネクションの確立要求を受信した印刷装置の前記通信部が、
    前記確立要求を受信した時点において、保持しているコネクションの数がm未満である場合は、前記確立要求に応じて前記所定の印刷装置との間でコネクションを確立し、
    前記確立要求を受信した時点において、保持しているコネクションの数がm以上である場合は、保持しているコネクションの数がm未満となるまで新たなコネクションの確立を行わない工程を、有する、
    印刷方法。
  11. ネットワークに、複数の印刷装置が接続され、前記複数の印刷装置の少なくとも2以上の印刷装置で印刷ジョブに基づく印刷を実現させるためのコンピュータプログラムであって、
    前記各印刷装置に、
    コネクション型のプロトコルを用いる通信を行う第1の機能であって、前記通信のためのコネクションを保持する第1の機能と、
    前記コネクションを介して前記印刷ジョブを受信する第2の機能であって、並行して受信可能な印刷ジョブの数はm(mは自然数)である第2の機能と、
    前記受信された印刷ジョブについて、並行して印刷処理を実行する第3の機能と、
    同時に保持するコネクションの数を、m以下に設定する第4の機能と、を実現させ、
    前記複数の印刷装置のうちの所定の印刷装置に、さらに、
    前記印刷ジョブを2以上の前記印刷装置である分散先印刷装置に対して送信可能な第5の機能と、
    前記ネットワークに接続された前記複数の印刷装置の中から、前記所定の印刷装置と同一の機種であって、かつ、印刷が可能な状態にある印刷装置を分散先印刷装置として選択する第6の機能と、
    選択した分散先印刷装置との間で、コネクションの確立要求を行い、コネクションが確立された分散先印刷装置に対して前記印刷ジョブを送信する第7の機能と、を実現させるコンピュータプログラム。
JP2005180236A 2005-06-03 2005-06-21 分散印刷システム,印刷方法,及び,コンピュータプログラム Expired - Fee Related JP4438698B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005180236A JP4438698B2 (ja) 2005-06-21 2005-06-21 分散印刷システム,印刷方法,及び,コンピュータプログラム
US11/445,395 US20060274370A1 (en) 2005-06-03 2006-06-02 Control technology used in distributed printing for printing control device and printer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005180236A JP4438698B2 (ja) 2005-06-21 2005-06-21 分散印刷システム,印刷方法,及び,コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2007004225A JP2007004225A (ja) 2007-01-11
JP4438698B2 true JP4438698B2 (ja) 2010-03-24

Family

ID=37689825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005180236A Expired - Fee Related JP4438698B2 (ja) 2005-06-03 2005-06-21 分散印刷システム,印刷方法,及び,コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4438698B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6106984B2 (ja) * 2012-08-06 2017-04-05 セイコーエプソン株式会社 印刷装置、制御システム、印刷装置の制御方法、プログラム、及び、制御システムの制御方法

Also Published As

Publication number Publication date
JP2007004225A (ja) 2007-01-11

Similar Documents

Publication Publication Date Title
JP4650158B2 (ja) 分散制御を実行するための印刷制御装置、及び、印刷装置
JP6065542B2 (ja) 画像処理装置および通信プログラム
US20080170584A1 (en) Management device, management method, computer readable medium and computer data signal
JPH11184649A (ja) 印刷システム、方法及びプリンタ
JP2004220565A (ja) 分散印刷システム及び分散印刷方法、分散印刷プログラム、並びにプリンタ及びプリンタ管理サーバ
JP2007276119A (ja) 印刷装置におけるエラーの回避
JP4285474B2 (ja) 印刷システム、方法及びプリンタ
US20050141018A1 (en) Network printer control system and data reception control method thereof
JP2005322054A (ja) 分散印刷制御装置及び印刷ジョブ分散方法
JP2006134043A (ja) 印刷システム、及び、その制御方法
JP3941794B2 (ja) 分散印刷制御装置及び印刷ジョブ分散方法
JP2006347110A (ja) 画像形成装置及び代行印刷制御プログラム
JP4438698B2 (ja) 分散印刷システム,印刷方法,及び,コンピュータプログラム
JP4045800B2 (ja) プリントシステム及び方法
JP4453369B2 (ja) 印刷装置および印刷方法、コンピュータプログラム、記録媒体
JP2005346739A (ja) プリンタおよびプリンタジョブデータの転送方法
JP2006277501A (ja) 分散印刷制御装置およびその方法
JP2004221629A (ja) 画像処理装置、データ通信方法、及びプログラム
JP2007041754A (ja) 分散印刷を実行するための印刷制御
JP2000066853A (ja) 情報処理装置
JP4404013B2 (ja) 分散印刷を実行する印刷制御装置および印刷装置
EP2610733B1 (en) Image forming apparatus connectable to multiple hosts and method of controlling image forming jobs of the image forming apparatus
JP4269479B2 (ja) プリンタ、印刷システム及びインタフェース制御方法
JP2007276269A (ja) 印刷装置、負荷分散制御方法
JP4289164B2 (ja) 分散印刷制御装置及び印刷ジョブ分散方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091228

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4438698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees