以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態におけるプリントシステムの全体概要を示す図である。図1を参照して、プリントシステム1は、それぞれがネットワーク3に接続された画像形成装置としての複合機(以下、「MFP」という)100,100A,100Bと、プリントサーバー200と、認証サーバー300と、パーソナルコンピューター(以下、「PC」という)400〜402と、を含む。なお、図ではネットワーク3に3台のMFP(Multi Function Peripheral)100,100A,100Bが接続される例を示しているが、MFPの数はこれに限定されるものではなく、1台以上であればよい。また、MFP100,100A,100Bに代えて、画像を形成する機能を備えた装置であれば、例えば、ファクシミリ、プリンタ等であってもよい。ネットワーク3は、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワーク3は、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)、インターネット等であってもよい。
PC400〜402、プリントサーバー200および認証サーバー300は、一般的なコンピューターである。認証サーバー300は、PC400〜402、MFP100,100A,100Bを使用するユーザーを認証する処理を実行する。認証サーバー300は、ユーザーごとに予め割り当てられ、ユーザーを識別するためのユーザー識別情報と認証情報とを含むユーザーデータを記憶しており、PC400〜402、MFP100,100A,100Bのいずれかから、ユーザーによりそれに入力されたユーザー識別情報と認証情報とを受信すると、受信されたユーザー識別情報と認証情報とを予め記憶されているユーザーデータと比較する。認証サーバー300は、両者が一致すれば認証成功を示す認証結果を返信するが、両者が一致しなければ認証失敗を示す認証結果を返信する。
なお、認証情報としてパスワードを用いる例を示すが、ユーザーの指紋、静脈パターン、虹彩等の生体情報を用いて認証するようにしてもよい。この場合、MFP100,100A,100B、PC400〜402には、生体情報を読み取るための読取装置が接続され、認証サーバー300に記憶されるユーザーデータは、ユーザー識別情報と生体情報とを含む。そして、MFP100,100A,100B、PC400〜402それぞれは、読取装置により読み取られた生体情報が入力される。MFP100,100A,100B、PC400〜402それぞれは、読取装置から入力される生体情報を認証サーバー300に送信し、認証サーバー300に認証させる。
なお、プリントサーバー200が認証サーバー300となる場合、または、PC400〜402およびMFP100,100A,100B各々が認証サーバー300を兼ねる場合があり、この場合には認証サーバー300は不要である。
PC400〜402各々は、ユーザーにより使用され、アプリケーションプログラムを実行することにより、種々の処理を実行する。種々の処理は、使用するユーザーを認証するログイン処理、プリントデータを生成し、MFP100,100A,100Bのいずれかにプリントさせるプリント処理を含む。
本実施の形態におけるプリントシステム1においては、PC400〜402各々には、プルプリント用ドライバプログラムがインストールされている。PC400〜402各々は、プルプリント用ドライバプログラムを実行することにより、プリントデータを、プリントサーバー200に一時的に記憶させる。PC400〜401各々は、プルプリント用ドライバプログラムをインストールする際に、プリントデータの送信先としてプリントサーバー200が登録される。例えば、プリントサーバー200のネットワークアドレスを設定することにより、プリントサーバー200が登録される。
PC400〜402各々は、プルプリント用ドライバプログラムを実行することにより、MFP100,100A,100Bのいずれかにプリントデータをプリントさせる。具体的には、例えば、PC400において、ユーザーAがユーザー識別情報「taro1」でログインし、ユーザーAが指定したデータのプリントを指示する場合、プルプリント用ドライバプログラムは、プルプリントデータをプリントサーバー200に送信する。プルプリントデータは、ユーザーにより指定されたデータをプリント用のフォーマットに変換したプリントデータと、ユーザー識別情報「taro1」とを含む。
プリントサーバー200は、PC400〜402のいずれかからユーザー識別情報とプリントデータとを含むプルプリントデータを受信すると、ユーザー識別情報とプリントデータとを関連付けて一時記憶する。その後、ユーザー識別情報「taro1」のユーザーAが、MFP100,100A,100Bのいずれかにログインすると、例えば、MFP100に、ユーザーAがログインすれば、MFP100はプリントサーバー200にユーザーAのユーザー識別情報「taro1」を含む取得要求を送信する。取得要求を受信するプリントサーバー200は、一時記憶されたプリントデータのうちから取得要求に含まれるユーザー識別情報「taro1」と関連付けられたプリントデータを、取得要求を送信してきたMFP100に送信する。MFP100は、プリントサーバー200から受信するプリントデータをプリントする。
なお、PC400〜402のいずれかからプリントデータとともに、複写枚数、用紙のサイズ、カラーとモノクロの別、印刷レイアウト等のプリント条件が送信される場合がある。このプリント条件は、PC400〜402が、ユーザーから受け付けられた値に基づいて定める。また、PC400〜402において、プリントデータとともにプリント条件を送信することなく、プリントデータのみを送信して、プリント条件を、MFP100,100A,100BのうちユーザーがログインしたMFPで、ユーザーがログインした後に指定するようにしてもよい。
MFP100,100A,100Bは、ハードウェア構成は同じであってもよく異なっていてもよいが、少なくとも画像データに基づいて紙などの用紙に画像を形成するための画像形成部を備えている。MFP100,100A,100B各々が有するハードウェア構成は同じではない場合があるが、ここではMFP100が、他のMFP100A,100Bの少なくとも1つが有する構成を有している場合を例に説明する。
図2は、本実施の形態の一つにおけるMFPの外観を示す斜視図である。図2を参照して、MFP100は、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル160とを含む。
自動原稿搬送装置120は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成する。
図3は、MFPのハードウェア構成の概要の一例を示すブロック図である。図3を参照して、MFP100は、メイン回路110を含む。メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM(Read Only Memory)113と、RAM(Random Access Memory)114と、大容量記憶装置としてのハードディスクドライブ(HDD)115と、ファクシミリ部116と、外部記憶装置117と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150および操作パネル160と接続され、MFP100の全体を制御する。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる読取画像を一時的に記憶する。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶するか、または、画像形成部140でプリント可能なプリントデータに変換して、画像形成部140に出力する。これにより、画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部116は、原稿読取部130が原稿を読み取って出力するデータ(読取画像)、または、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
通信I/F部112は、ネットワーク3にMFP100を接続するためのインターフェースである。通信I/F部112は、TCP(Transmission Control Protocol)またはFTP(File Transfer Protocol)等の通信プロトコルで、ネットワーク3に接続された他のMFP100A,100B、PC400〜402、プリントサーバー200および認証サーバー300と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信I/F部112が接続されるネットワーク3は、例えば、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワーク3は、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)を用いたネットワーク等であってもよい。さらに、ネットワーク3は、インターネットに接続されている。このため、MFP100は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
外部記憶装置117は、CPU111により制御され、CD−ROM(Compact Disk Read Only Memory)118、または半導体メモリが装着される。CPU111は、外部記憶装置117を介してCD−ROM118または半導体メモリにアクセス可能である。CPU111は、外部記憶装置117に装表されたCD−ROM118または半導体メモリに記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムは、CD−ROM118に記録されたプログラムに限られず、HDD115に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、通信I/F部112に接続されるネットワーク3を介して、ネットワーク3に接続された他のコンピューターが、MFP100のHDD115に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD115に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
なお、CPU111が実行するプログラムを記憶する媒体としては、CD−ROM118に限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリであってもよい。
操作パネル160は、表示部161と操作部163とを含む。表示部161は、液晶表示装置(LCD)、有機ELD(Electro−Luminescence Display)等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部163は、タッチパネル165と、複数のキーからなるハードキー部167と、を含む。ハードキー部167が含む複数のキーそれぞれは、接点スイッチを含み、CPU111に接続される。ハードキーは、ユーザーにより押下されると接点を閉じて、CPU111に接続される回路を閉じる。ハードキーは、MFP100を操作するユーザーにより押下されている間は回路を閉じ、ユーザーにより押下されていない間は回路を開く。
操作部163は、ハードキー部167が有する複数のキーが押下されると、押下されたキーに対応する指示、文字、数字などのデータの入力を受け付ける。タッチパネル165は、表示部161の上面または下面に設けられ、ユーザーにより押下された位置の座標をCPU111に出力する。タッチパネル165は、ユーザーが指またはスタイラスペンで指示した位置を検出し、検出した位置の座標をCPU111に出力する。タッチパネル165は、表示部161の表示面と同じまたはそれ以上のサイズであるのが好ましい。タッチパネル165は、表示部161に重畳して設けられるので、タッチパネル165は、ユーザーが表示部161の表示面を指示すれば、表示部161の表示面中でユーザーが指示した位置の座標をCPU111に出力する。タッチパネル165は、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式を用いることができ、その方式は限定されない。
図4は、プリントサーバーのハードウェア構成の一例を示すブロック図である。図4を参照して、プリントサーバー200は、それぞれがバス208に接続され、プリントサーバー200の全体を制御するためのCPU201と、CPU201が実行するプログラム等を記憶するためのROM202と、CPU201の作業領域として用いられるRAM203と、プリントサーバー200をネットワークに接続するためのネットワークI/F104と、大容量記憶装置としてのHDD205と、表示部206と、ユーザーの操作の入力を受け付ける操作部207と、外部記憶装置209と、を含む。
外部記憶装置209は、プログラムを記憶したCD−ROM209Aが装着される。CPU201は、外部記憶装置209を介してCD−ROM209Aに記憶されたプログラムをRAM203にロードし、実行する。なお、プログラムを記憶する記録媒体としては、CD−ROM209Aに限られず、フレキシブルディスク、カセットテープ、光ディスク(MO/MD/DVD)、ICカード、光カード、マスクROM、EPROM、EEPROMなどの半導体メモリ等でもよい。また、HDD205に記憶されたプログラムをRAM203にロードして実行するようにしてもよい。この場合、プリントサーバー200が、ネットワーク3に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD205に記憶するようにしてもよい。ここでいうプログラムは、CPU201が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図5は、プリントサーバーが備えるCPUの機能の一例を示すブロック図である。図5に示すプリントサーバー200が備えるCPU201の機能は、CPU201がROM202、HDD205またはCD−ROM209Aに記憶されたプリントデータ送信プログラムを実行することにより、CPU201に形成される機能である。
図5を参照して、プリントサーバー200が備えるCPU201は、外部からプルプリントデータを受信するプリントデータ受信部251と、プリントデータを一時記憶する一時記憶部253と、取得要求を受信する取得要求受信部255と、取得要求に基づいてプリントデータを抽出する抽出部257と、取得要求を送信してきた装置にプリントデータを送信するプリントデータ送信部259と、タイミング制御部261と、限界待機時間設定部263と、を含む。
プリントデータ受信部251は、ネットワークI/F204を制御し、PC400〜402のいずれかからプリントデータとユーザー識別情報とを含むプルプリントデータを受信する。プリントデータ受信部251は、プルプリントデータを受信すると、受信されたプルプリントデータを一時記憶部253に出力する。さらに、プリントデータ受信部251は、プルプリントデータに含まれるプリントデータの受信を開始してから終了するまでの時間を計測し、計測した時間を受信時間としてプリントデータと関連付けて限界待機時間設定部263に出力する。例えば、受信時間とプリントデータを識別するためのプリントデータ識別情報との組を、限界待機時間設定部263に出力する。
一時記憶部253は、プリントデータ受信部251からプルプリントデータが入力されると、プルプリントデータをHDD205に記憶する。これにより、HDD205にプルプリントデータがスプールデータ291として記憶される。スプールデータ291は、プリントデータとユーザー識別情報とを含み、プリントデータをユーザー識別情報と関連付ける。
取得要求受信部255は、ネットワークI/F204を制御して、MFP100,100,100Bのいずれかから取得要求を受信する。MFP100,100,100Bが取得要求を送信する動作は同じなので、ここではMFP100を例に説明する。MFP100は、それを操作するユーザーがログインし、認証に成功すると、ログインしたユーザーのユーザー識別情報を含む取得要求をプリントサーバー200に送信する。したがって、取得要求受信部255がMFP100から受信する取得要求は、MFP100を操作するユーザーのユーザー識別情報を含む。
取得要求受信部255は、取得要求を受信すると、取得要求を識別するための取得要求識別情報と、取得要求に含まれるユーザー識別情報と、MFP100,100,100Bのうち取得要求を送信してきた装置を識別するための装置識別情報との組を抽出部257に出力し、取得要求識別情報と装置識別情報との組をエラー時保留部277に出力する。
抽出部257は、取得要求受信部255から取得要求識別情報と、ユーザー識別情報と、装置識別情報との組が入力されることに応じて、HDD205に記憶されているプリントデータのうちから取得要求受信部255から入力されるユーザー識別情報と関連付けられたプリントデータを抽出する。具体的には、抽出部257は、HDD205に記憶されているスプールデータ291のうちから、取得要求受信部255から入力されるユーザー識別情報を含むスプールデータ291を抽出し、抽出された1以上のスプールデータ291にそれぞれ含まれる1上のプリントデータを取得する。抽出部257は、取得要求受信部255から入力されるユーザー識別情報を含むスプールデータ291が複数記憶されている場合、複数のスプールデータのすべてを抽出する。抽出部257は、取得された1以上のプリントデータと、取得要求識別情報と、装置識別情報との組をプリントデータ送信部259に出力し、1以上のプリントデータと装置識別情報との組を、限界待機時間設定部263に出力する。
プリントデータ送信部259は、抽出部257から1以上のプリントデータと、取得要求識別情報と、装置識別情報との組が入力される。プリントデータ送信部259は、取得要求に基づき抽出されたプリントデータを、MFP100,100A,100Bのうち取得要求を送信してきた装置に送信する。具体的には、プリントデータ送信部259は、MFP100,100A,100Bのうち抽出部257から入力される装置識別情報で特定される装置に、抽出部257から入力される1以上のプリントデータを、同時に2以上を送信することなく順に送信する。プリントデータ送信部259が、抽出部257から入力される1以上のプリントデータを送信する順番は、特に限定するものではないが、予め定められた条件に従って定まる順に送信するようにしてもよい。例えば、プリントデータが受信された日時の早いものから順に送信するようにしてもよい。
プリントデータ送信部259が、MFP100,100A,100Bのいずれかにプリントデータを送信している最中に、取得要求受信部255によって新たな取得要求が受信される場合がある。この場合、プリントデータ送信部259は、MFP100,100A,100Bのうち取得要求を送信してきた複数の装置に、プリントデータを送信することになる。しかしながら、MFP100,100A,100Bのうちから選ばれた複数に並列してプリントデータを送信すると、CPU201の負荷が増大する。
プリントサーバー200がMFP100,100A,100Bのうちから選ばれた複数に並列してプリントデータを送信する場合、例えば、CPU201に形成されるオペレーションシステムにおいて、タスク(スレッド)を切り換える処理が増加する場合がある。また、CPU201において、オペレーションシステムで複数のタスクを並列処理する数が限界に到達する場合、限界を超えるタスクについては処理が実行されず、待機状態となることがある。さらに、CPU201は、RAM203、HDD205、外部記憶装置209、ネットワークI/F204等のハードウェアにアクセスする処理を、並列で実行できない場合があり、この場合、複数のタスクが同時に同じハードウェアにアクセスする処理は、1つを除いて他のタスクに待ち時間が発生する場合がある。
このため、プリントデータ送信部259は、原則として、タイミング制御部261によりMFP100,100A,100Bのうちから定められた1つの装置に、プリントデータを送信する。プリントデータ送信部259は、送信中のプリントデータに対応する取得要求識別情報をタイミング制御部261に出力する。以下、プリントデータ送信部259が送信中のプリントデータを「送信中データ」という。
タイミング制御部261は、プリントデータ送信部259が、複数のMFP100,100A,100Bそれぞれにプリントデータを送信するタイミングを制御する。タイミング制御部261は、優先順位決定部271と、選択部273と、保留部275と、エラー時保留部277と、強制送信部287と、を含む。
優先順位決定部271は、抽出部257から取得要求識別情報が入力される。プリントデータ送信部259がMFP100,100A,100Bのいずれかにプリントデータを送信している最中に、取得要求受信部255によって新たな取得要求が受信される場合、取得要求受信部255から新たな取得要求識別情報が入力される。優先順位決定部271は、取得要求受信部255から入力される複数の取得要求識別情報それぞれに対して、それらが入力される順に高い優先順位を決定する。換言すれば、優先順位決定部271は、取得要求識別情報に対して、それより後に入力される取得要求識別情報よりも高い優先順位を決定する。優先順位決定部271は、取得要求識別情報と優先順位との組を選択部273に出力する。
選択部273は、優先順位決定部271から取得要求識別情報と優先順位との組が入力され、プリントデータ送信部259から、送信中データに対応する取得要求識別情報が入力される。選択部273は、プリントデータ送信部259が送信しているプリントデータの送信が完了すると、プリントデータ送信部259から入力される、送信中データに対応する取得要求識別情報に対応する優先順位の次に優先順位の高い取得要求識別情報を送信対象組として選択する。選択部273は、プリントデータ送信部259から入力される、送信中データに対応する取得要求識別情報に対応する優先順位が最も低い場合、優先順位が最も高い取得要求識別情報を、送信対象組として選択する。選択部273は、送信対象組に選択された取得要求識別情報を、プリントデータ送信部259および保留部275に出力する。
プリントデータ送信部259は、送信中データの送信が完了すると、選択部273から入力され、送信対象組に選択された取得要求識別情報に対応する未送信の1以上のプリントデータが存在すれば、未送信のプリントデータのうちから選択されたプリントデータを送信する。具体的には、プリントデータ送信部259は、選択部273から入力される送信対象組の取得要求識別情報に対応する1以上のプリントデータであって未送信のプリントデータのうちから受信された日時が最も早い1つを特定する。
プリントデータ送信部259は、選択部273から入力される送信対象組の取得要求識別情報に対応する未送信の1以上のプリントデータが存在しなければ、選択部273に選択指令を出力し、選択部273に次に優先順位の高い取得要求識別情報を、送信対象組として選択させる。選択部273は、選択指令が入力されると、先に送信対象組に選択した取得要求識別情報の次に優先順位の高い取得要求識別情報を送信対象組に選択し、新たに選択された取得要求識別情報をプリントデータ送信部259および保留部275に出力する。
保留部275は、選択部273から送信対象組の取得要求識別情報が入力されることに応じて、取得要求受信部255から入力される複数の取得要求識別情報のうち、選択部273から入力される送信対象組の取得要求識別情報以外のすべての取得要求識別情報それぞれに対応する1以上の未送信データの送信を保留する。具体的には、保留部275は、送信保留指令をプリントデータ送信部259に出力する。保留指令は、取得要求受信部255から入力される複数の取得要求識別情報のうち、選択部273から入力される送信対象組の取得要求識別情報以外のすべての取得要求識別情報を含む。
プリントデータ送信部259は、保留部275から保留指令が入力されると、保留指令に含まれるすべての取得要求識別情報それぞれに対応するに対応する未送信の1以上のプリントデータを送信しない。プリントデータ送信部259は、保留部275から保留指令が入力される場合、保留指令に含まれる取得要求に対応するプリントデータを送信するのを待機し、選択部273から入力される送信対象組に選択された取得要求識別情報に対応する1以上のプリントデータのうちから選択された1つのみを、送信する。
エラー時保留部277は、MFP100,100A,100Bのうち取得要求を送信してきた装置すべての状態を監視する。例えば、MFP100,100A,100Bのうち取得要求を送信してきた装置それぞれが送信するMIB(Management Information Base)に基づいて、各装置の状態を監視する。エラー時保留部277は、MFP100,100A,100Bのうち取得要求を送信してきた装置のうちで、プリントすることのできない状態となった装置を検出する場合、取得要求受信部255において受信された取得要求のうちで、プリントすることのできない状態の装置から受信された取得要求を特定する。エラー時保留部277は、取得要求受信部255から取得要求識別情報と装置識別情報との組が入力される。エラー時保留部277は、プリントすることのできない状態の装置を検出する場合、検出された装置の装置識別情報と組になる取得要求識別情報を特定する。エラー時保留部277は、特定された取得要求識別情報に対応する1以上の未送信データの送信を保留する。具体的には、エラー時保留部277は、エラー保留指令をプリントデータ送信部259に出力する。エラー保留指令は、MFP100,100A,100Bのうちプリントすることのできない状態の装置の装置識別情報と組になる取得要求識別情報を含む。
さらに、エラー時保留部277は、MFP100,100A,100Bのうちプリントすることのできない状態の装置の装置識別情報と組になる取得要求識別情報を、選択部273に出力する。
選択部273は、エラー時保留部277から取得要求識別情報が入力される場合、エラー時保留部277から入力される取得要求識別情報を選択しない。選択部273は、送信中データに対応する取得要求識別情報に対応する優先順位の次に優先順位の高い取得要求識別情報が、エラー時保留部277から入力される取得要求識別情報の場合、さらに次に優先順位の高い取得要求識別情報を選択する。
限界待機時間設定部263は、受信時間取得部281と、送信時間決定部283と、限界待機時間算出部285と、を含む。受信時間取得部281は、プリントデータ受信部251から受信時間とプリントデータ識別情報との組が入力される。受信時間取得部281は、受信時間とプリントデータ識別情報との組を、送信時間決定部283に出力する。送信時間決定部283は、受信時間取得部281から入力される受信時間を、それと組になるプリントデータ識別情報で特定されるプリントデータの送信時間に決定し、送信時間とプリントデータ識別情報との組を限界待機時間算出部285に出力する。
限界待機時間算出部285は、取得要求受信部255が取得要求を受信するごとに、取得要求受信部255から1以上のプリントデータと装置識別情報との組が入力され、プリントデータ受信部251がプリントデータを受信するごとに送信時間決定部267から送信時間とプリントデータ識別情報との組が入力される。限界待機時間算出部285は、取得要求受信部255から1以上のプリントデータと装置識別情報との組が入力されるごとに、限界待機時間を算出する。具体的には、限界待機時間算出部285は、取得要求受信部255から入力される装置識別情報で特定される装置の能力情報を取得し、能力情報に基づいてプリント時間を算出する。装置の能力情報は、例えば、用紙1枚当たりをプリントする時間である。限界待機時間算出部285は、取得された能力情報に基づいて、1以上のプリントデータそれぞれに対して、プリント時間を算出する。さらに、1以上のプリントデータを送信する順に従って、限界待機時間を算出する。1以上のプリントデータを送信する順は、例えば、プリントデータを受信した時刻の早い順とする。限界待機時間算出部269は、1以上のプリントデータのうち送信する順が最初のプリントデータに対しては、予め定められた限界待機時間を設定する。限界待機時間算出部269は、1以上のプリントデータのうち送信する順が2番目以降のプリントデータに対しては、そのプリントデータの送信時間と、送信する順が1つ前のプリントデータのプリント時間とに基づいて限界待機時間を算出する。具体的には、送信する順が1つ前のプリントデータのプリント時間から送信時間を減算した値を、限界待機時間に設定する。限界待機時間算出部269は、1以上のプリントデータそれぞれに対して限界待機時間を算出すると、プリントデータ識別情報と限界待機時間との組を、強制送信部287に出力する。
強制送信部287は、限界待機時間算出部285からプリントデータごとに、プリントデータ識別情報と限界待機時間との組が入力される。強制送信部287は、保留部275から送信が保留されたプリントデータに対応する取得要求識別情報が入力される。強制送信部287は、取得要求識別情報ごとに、取得要求識別情報に対応する1以上のプリントデータのうちから最後に送信されたプリントデータの送信が終了してからの経過時間を計時する。強制送信部287は、取得要求識別情報に対応する1以上のプリントデータのうちから最後に送信されたプリントデータの次に送信される順のプリントデータのプリントデータ識別情報と組になる限界待機時間と、経過時間とを比較する。強制送信部287は、取得要求識別情報に対応する経過時間が限界待機時間以上になると、その取得要求識別情報に対応する1以上のプリントデータのうち次に送信される順のプリントデータを、その取得要求識別情報が保留部275から入力され、送信が保留されている場合であっても送信する。送信先は、MFP100,100A,100Bのうち取得要求識別情報により特定される取得要求を送信してきた装置である。換言すれば、抽出部257から入力される1以上のプリントデータと取得要求識別情報と装置識別情報との組のうち、限界待機時間以上になった経過時間に対応する取得要求識別情報を含む組に含まれる装置識別情報により特定される。
図6は、MFPが備えるCPUが有する機能の一例を示すブロック図である。図6に示す機能は、MFP100が備えるCPU111が、ROM113、HDD115またはCD−ROM118に記憶されたプルプリントプログラムを実行することにより、CPU111に形成される機能である。
図6を参照して、MFP100が備えるCPU111は、MFP100を操作するユーザーを認証するための認証部51と、プリントサーバー200からプリントデータを取得する取得部53と、プリントジョブを管理するジョブ管理部55と、画像形成部130を制御する画像形成制御部57と、を含む。
認証部51は、MFP100を操作するユーザーを認証する。具体的には、認証部51は、ログイン画面を表示部161に表示する。ログイン画面は、ユーザー識別情報を入力する領域と、パスワードを入力する領域とを含む。ユーザーが操作部163にユーザー識別情報とパスワードとを入力すると、操作部163からユーザー識別情報とパスワードとを受け付け、受け付けたユーザー識別情報とパスワードとを含む認証情報を、通信I/F部112を介してプリントサーバー200に送信し、プリントサーバー200に認証させる。認証情報の送信先の情報、具体的には、プリントサーバー200の装置識別情報は、MFP100にプルプリントプログラムがインストールされる段階で、ユーザーにより設定され、HDD115に記憶される。
認証部51は、通信I/F部112がプリントサーバー200から認証結果を受信すると、その認証結果を受け付ける。認証部51は、認証結果が認証成功を示す場合、ログインユーザーのユーザー識別情報を取得部53に出力する。認証部51は、認証結果が認証失敗を示す場合、エラーメッセージを表示部161に表示する。認証部51は、認証結果が認証成功を示す場合、その後にログアウト指示が入力されるまで、操作部161に入力される操作は、認証されてログインが許可されたユーザーによる操作として受け付ける。
取得部53は、認証部51により認証されたユーザーに関連するプリントデータを取得する。具体的には、取得部53は、認証部51からユーザー識別情報が入力されることに応じて、ユーザー識別情報を含む取得要求をプリントサーバー200に送信する。上述したように、プリントサーバー200は、取得要求を受信すると、その取得要求に含まれるユーザー識別情報と関連付けられた1以上のプリントデータを特定し、特定した1以上のプリントデータを返信する。取得部53は、通信I/F部112がプリントサーバー200からプリントデータを受信すると、受信されたプリントデータを、ジョブ管理部55に出力する。プリントサーバー200は、複数のプリントデータを抽出する場合、複数のプリントデータを順に送信するので、取得部53は、複数のプリントデータを受信する順に、プリントデータをジョブ管理部55に出力する。
ジョブ管理部55は、取得部53からプリントデータが入力されると、プリントデータを含むプリントジョブを生成し、生成したプリントジョブを画像形成制御部57に出力する。画像形成制御部57は、ジョブ管理部55からプリントジョブが入力されると、プリントジョブに含まれるプリントデータをプリントする。具体的には、画像形成部130にプリントデータを出力し、画像形成部130にプリントデータの画像を形成させる。
図7は、プリントデータ送信処理の流れの一例を示すフローチャートである。プリントデータ送信処理は、プリントサーバー200が備えるCPU201がROM202、HDD205またはCD−ROM209Aに記憶されたプリントデータ送信プログラムを実行することにより、CPU201により実行される処理である。
図7を参照して、CPU201は、変数に初期値を設定する(ステップS01)。ここでは、変数nに「0」を設定し、変数mに「1」を設定する。変数nは、取得要求を受信した数をカウントするための変数であり、取得要求を受信するごとにその取得要求を識別するための要求番号(取得要求識別情報)に設定される。このため、要求番号は、取得要求が受信された順番を示す。変数mは、送信対象組の取得要求を特定するために用いられる。
次のステップS02においては、プリントデータ受信処理を実行する。プリントデータ受信処理の詳細は後述するが、PC400〜402のいずれかからプリントデータとユーザー識別情報とを受信し、スプールデータ291をHDD205に記憶する処理である。次のステップS03においては、取得要求受信処理を実行する。取得要求受信処理の詳細は後述するが、MFP100,100A,100Bのいずれかから取得要求を受信する処理である。
図8は、プリントデータ受信処理の流れの一例を示す図である。図8を参照して、CPU201は、プリントデータとユーザー識別情報とを受信したか否かを判断する(ステップS21)。ネットワークI/F204がPC400〜402のいずれかからプリントデータとユーザー識別情報とを受信したか否かを判断する。プリントデータとユーザー識別情報とを受信したならば処理をステップS22に進めるが、そうでなければ処理をプリントデータ送信処理に戻す。
ステップS22においては、プリントデータとユーザー識別情報とを含むプルプリントデータをHDD205に記憶し、処理をステップS23に進める。ステップS23においては、受信時間をプリントデータと関連付けて記憶し、処理をプリントデータ送信処理に戻す。受信時間は、プリントデータの受信を開始してから終了するまでの時間である。
図9は、取得要求受信処理の流れの一例を示すフローチャートである。図9を参照して、CPU201は、取得要求を受信したか否かを判断する。(ステップS31)。ネットワークI/F204がMFP100,100A,100Bのいずれかから取得要求を受信したか否かを判断する。取得要求を受信したならば処理をステップS32に進めるが、そうでなければ処理をプリントデータ送信処理に戻す。
ステップS32においては、送信中データを送信中か否かを判断する。送信中データは、図7のステップS06において実行される送信中データ決定処理によって決定され、ネットワークI/F204からMFP100,100A,100Bのいずれかに送信されるプリントデータである。送信中データを送信中ならば処理をステップS33に進めるが、そうでなければ処理をステップS34に進める。ステップS33においては、変数nに1を加算し、処理をステップS35に進める。一方、ステップS34においては、変数nに「1」を設定し、処理をステップS35に進める。ステップS31において取得要求を受信した時点で、送信中データを送信中でない場合は、受信された取得要求を1番目に受信された取得要求とし、ステップS31において取得要求を受信した時点で、送信中データを送信中の場合は、受信された取得要求を、それより前に受信された取得要求の次に受信された取得要求とするためである。
ステップS35においては、要求番号Rに変数nの値を設定する。要求番号は、ステップS31において受信された取得要求を識別するための取得要求識別情報である。
次のステップS36においては、取得要求数Rmaxに変数nの値を設定する。取得要求数Rmaxは、受信された取得要求の数を示す。
ステップS37においては、ステップS31において受信された取得要求に含まれるユーザー識別情報と関連付けられたプリントデータを抽出する。具体的には、HDD205に記憶されているスプールデータ291であって、ステップS31において受信された取得要求に含まれるユーザー識別情報を含むスプールデータ291を抽出する。スプールデータ291は、ユーザー識別情報とプリントデータとを含む。
次のステップS38においては、配列であるデータ数DN(R)に、ステップS37において抽出されたプリントデータの数を設定する。データ数DN(R)は、要求番号Rの取得要求に対して抽出されたプリントデータの数を示す。
ステップS39においては、タイマーT(R)をスタートさせる。タイマーT(R)は、要求番号Rの取得要求に対応する。したがって、ステップS39においてスタートするタイマーT(R)は、要求番号Rの取得要求が受信されてからの経過時間を計時する。ステップS40においては、ステップS37において抽出された1以上のプリントデータのうちから1つのプリントデータを送信対象に選択する。1以上のプリントデータのうちから、受信された時刻が最も早いものを選択する。なお、選択する条件を限定するものではなく、これとは別の条件を用いて選択するようにしてもよい。
次のステップS41においては、配列である待機データWD(R)にステップS40において選択されたプリントデータを識別するためのプリントデータ識別情報を設定する。待機データWD(R)は、要求番号Rの取得要求において送信対象に選択された1つのプリントデータを示す。
ステップS42においては、限界時間LT(R)にデフォルト値を設定し、処理をプリントデータ送信処理に戻す。限界時間LT(R)は、待機データWD(R)で特定されるプリントデータの送信を保留することができる最大の時間を示す。限界時間LT(R)に設定されるデフォルト値は、プリントデータ送信プログラムによって、予め定められた値であってもよいし、ユーザーにより設定される値であってもよい。
次のステップS43においては、プリント時間PT(R)を予測し、処理をプリントデータ送信処理に戻す。プリント時間PT(R)は、待機データWD(R)で特定されるプリントデータを取得要求を送信してきた装置でプリントする時間である。まず、MFP100,100A,100BのうちからステップS31において受信された取得要求を送信してきた装置を特定する。例えば、MFP100から取得要求を受信した場合を例に説明する。MFP100から取得要求を受信する場合、MFP100の能力情報を取得し、能力情報に基づいてプリント時間PT(R)を算出する。MFP100の能力情報は、例えば、用紙1枚をプリントする時間である。MFP100の能力情報と、待機データWD(R)で特定されるプリントデータのプリント枚数と、に基づいて、プリント時間を算出する。
以下、要求番号Rの取得要求に基づいて、スプールデータ291のうちから選択された1以上のプリントデータを、要求番号Rの取得要求に対応する1以上のプリントデータという。また、要求番号Rの取得要求に対応する1以上のプリントデータのうち、未だ送信されていないものを未送信データといい、未送信データのうち最初に送信する送信対象に選択されたものを待機データという。さらに、送信中のプリントデータを送信中データという。
図7に戻って、ステップS04においては、送信中データが決定されているか否かを判断する。送信中データは、ステップS07において決定される。ステップS07において、送信中データが決定されていれば処理をステップS05に進めるが、そうでなければ処理をステップS09に進める。ステップS05においては、送信中データの送信は完了しているか否かを判断する。ネットワークI/F204による送信中データの送信が完了していれば処理をステップS06に進めるが、そうでなければ処理をステップS02に戻す。
次のステップS06においては、タイマーT(m)をスタートさせ、処理をステップS07に進める。タイマーT(m)は、要求番号がmの取得要求に対応する。したがって、ステップS06においてスタートするタイマーT(m)は、要求番号mの取得要求に対応する送信中データの送信が開始されてからの経過時間を計時する。
ステップS07においては、送信中データ決定処理を実行し、処理をステップS08に進める。送信中データ決定処理の詳細は後述するが、待機データDW(i)のうちから1つを送信中データとして選択する処理である。ステップS08においては、ステップS07において実行された送信中データ決定処理により、送信中データが決定されたか否かを判断する。送信中データが決定されたならば処理をステップS10に進めるが、そうでなければ処理をステップS01に戻す。送信中データ決定処理が実行される段階において、待機データDW(i)が1つも存在しない場合があり、その場合には送信中データは決定されないからである。
一方、ステップS09においては、待機データWD(1)を送信中データに設定し、処理をステップS10に進める。待機データWD(1)は、要求番号が「1」の取得要求に対応する1以上のプリントデータのうちから最初に送信対象として選択されたプリントデータである。
ステップS10においては、送信中データの送信を開始する。具体的には、ネットワークI/F204を介して送信中データを送信する。送信先は、MFP100,100A,100Bのうち送信中データ(プリントデータ)に対応する取得要求を送信してきた装置である。送信先は、処理がステップS09から進む場合は、MFP100,100A,100Bのうち、要求番号が「1」の取得要求を送信してきた装置であり、処理がステップS08から進む場合には、MFP100,100A,100Bのうち要求番号がmの取得要求を送信してきた装置である。
次のステップS11においては、待機データ選択処理を実行する。待機データ選択処理の詳細は後述するが、要求番号mの取得要求に対応する新たな待機データWD(m)を設定する処理である。変数mが「1」の場合には、ステップS08において、要求番号「1」の取得要求に対応する待機データWD(1)が送信中データに決定され、変数mが「1」でない場合には、ステップS07において、要求番号mの取得要求に対応する待機データWD(m)が送信中データに決定されるからである。
ステップS12においては、待機データが存在するか否かを判断する。待機データは、ステップS03において実行される取得要求受信処理において、図9に示したステップS41において待機データWD(i)(iは、1以上Rmax以下の整数)に設定されたプリントデータである。要求番号が1〜Rmaxの取得要求にそれぞれ対応する待機データWD(i)が1つでも存在すれば待機データが存在すると判断するが、1つも存在しなければ待機データが存在しないと判断する。待機データが存在すれば処理をステップS13に進めるが、そうでなければ処理をステップS01に戻す。待機データが存在しない場合、送信が保留されているプリントデータが存在しないからである。
ステップS13においては、強制送信処理を実行し、処理をステップS11に戻す。強制送信処理の詳細は、後述する。
図10は、送信中データ決定処理の流れの一例を示すフローチャートである。送信中データ決定処理は、図7のステップS07において実行される処理であり、ステップS05において、要求番号mの取得要求に対応する送信中データの送信が完了したと判断された後に実行される。
図10を参照して、CPU201は、定数SETNOに変数mの値を設定する(ステップS51)。定数SETNOは、送信中データ決定処理が実行される時点において、換言すれば、要求番号mの取得要求に対応する送信中データの送信が完了した時点において、送信が完了した送信中データに対応する取得要求の要求番号を示す。次のステップS52においては、変数mを1を加算した値に変更する。そして、変数mが定数SETNOと同じが否かを判断する(ステップS53)。変数mが定数SETNOと同じならば処理をステップS54に進めるが、そうでなければ処理をステップS55に進める。
ステップS55においては、変数mが取得要求数Rmaxより大きいか否かを判断する。変数mが取得要求数Rmaxより大きいならば処理をステップS56に進め、そうでなければステップS56をスキップして処理をステップS57に進める。ステップS56においては、変数mに「1」を設定し、処理をステップS57に進める。
ステップS57においては、待機データWD(m)が存在するか否かを判断する。待機データWD(m)が存在するならば処理をステップS59に進めるが、そうでなければ処理をステップS52に戻す。ステップS59においては、要求番号mの取得要求に対応する待機データWD(m)を送信中データに設定し、処理をプリントデータ送信処理に戻す。
処理がステップS54に進むのは、要求番号1〜Rmaxのすべての取得要求に対応する待機データWD(i)(1≦i≦Rmax)が存在しない場合である。ステップS54においては、送信中データに設定するべき待機データWD(i)が存在しないので、送信中データ無しに設定し、処理をプリントデータ送信処理に戻す。
図11は、待機データ選択処理の流れの一例を示すフローチャートである。待機データ選択処理は、図7のステップS11において実行される処理である。図11を参照して、CPU201は、要求番号Rがmの取得要求を処理対象に選択する(ステップS61)。次のステップS62においては、要求番号Rがmの取得要求に対応する1以上のプリントデータのうちに未送信データが存在するか否かを判断する。未送信データが存在するならば処理をステップS63に進めるが、存在しなければ処理をステップS68に進める。ステップS68においては、要求番号Rがmの取得要求に対応する待機データWD(m)を無しに設定し、処理をプリントデータ送信処理に戻す。
ステップS63においては、要求番号Rがmの取得要求に対応する1以上のプリントデータのうち1以上の未送信データのうちから1つを選択する。例えば、1以上の未送信データのうち、そのプリントデータが受信された日時が最も早いものを選択する。そして、選択された未送信データを要求番号Rがmの取得要求に対応する待機データWD(m)に設定する(ステップS64)。
ステップS65においては、送信時間ST(m)を予測する。ここでは、待機データWD(m)に設定されたプリントデータを受信する際に計測された受信時間を送信時間ST(m)に設定する。受信時間は、図8のステップS23においてプリントデータに関連付けて記憶されている。
次のステップS66においては、限界時間LT(m)を算出する。ステップS67が実行される前の段階において、要求番号Rがmの取得要求に対応するプリント時間PT(m)が設定されている。具体的には、要求番号Rがmの取得要求が受信された時点において実行される図9に示した取得要求受信処理のステップS43において、優先順位が最も高いプリントデータのプリント時間PT(m)が算出されている。また、優先順位が2番目以降のプリントデータのプリント時間PT(m)は、ステップS66が実行される前の段階において実行されたステップS67において算出されている。ステップS66が実行される前の段階において実行されたステップS67において算出されるプリント時間PT(m)は、ステップS64において待機データWD(m)に設定されたプリントデータより1つ前に待機データWDに設定されたプリントデータのプリント時間PT(m)である。このように算出済のプリント時間PT(m)からステップS65において予測された送信時間ST(m)を減算した値を限界時間LT(m)に設定する。
次のステップS67においては、新たなプリント時間PT(m)を算出し、処理をプリントデータ送信処理に戻す。具体的には、MFP100,100A,100Bのうち要求番号Rがmの取得要求を送信してきた装置の能力情報を取得し、取得された能力情報と、待機データWD(m)に設定されたプリントデータと、に基づいてプリント時間PT(m)を算出する。ここでは、能力情報を所定時間あたりにプリントする用紙の枚数としている。MFP100,100A,100Bのうち要求番号Rがmの取得要求を送信してきた装置の能力情報を、ステップS65において待機データWD(m)に設定されたプリントデータの画像形成枚数で除算することによりプリント時間PT(m)を算出する。
図12は、強制送信処理の流れの一例を示すフローチャートである。強制送信処理は、図7のステップS13において実行される処理であり、強制送信処理が実行される前の段階で、要求番号1〜Rmaxの取得要求それぞれに対応するタイマーT(i)(1≦i≦Rmax)が計時されており(ステップS06、またはステップS39)、限界時間LT(i)(1≦i≦Rmax)が設定されている(ステップS42、またはステップS66)。
図12を参照して、CPU201は、変数iに初期値「1」を設定する(ステップS71)。変数iは、要求番号1〜Rmaxの取得要求のうち処理対象とする取得要求を定めるために用いる。
次のステップS72においては、待機データWD(i)が設定されているか否かを判断する。要求番号iの取得要求に対応する待機データWD(i)が設定されているならば処理をステップS73に進めるが、そうでなければ処理をステップS75に進める。
ステップS73においては、タイマーT(i)が限界時間LT(i)以上か否かを判断する。タイマーT(i)が限界時間LT(i)以上ならば処理をステップS74に進めるが、そうでなければ処理をステップS75に進める。ステップS74においては、待機データWD(i)を送信する。MFP100,100A,100Bのうち要求番号Rがiの取得要求を送信してきた装置に待機データWD(i)を送信する。
要求番号iの取得要求に対応するタイマーT(i)は、待機データWD(i)が設定されてから送信されることなく経過する時間を示す。要求番号iの取得要求に対応する限界時間LT(i)は、要求番号iの取得要求に対応する1以上のプリントデータのうち待機データWD(i)の1つ前に送信されたプリントデータがプリントされるプリント時間PT(i)から待機データWD(i)を送信する送信時間ST(i)を減算した値である。タイマーT(i)が限界時間LT(i)以上になると、待機データWD(i)を送信するようにしたので、MFP100,100A,100Bのいずれかにおいて、待機データWD(i)の1つ前に送信されたプリントデータのプリントが完了した後、直ちに待機データWD(i)のプリントデータをプリントさせることができる。このため、ユーザーの待ち時間ができるだけ発生しないようにすることができる。
ステップS75においては、変数iを1増加した値に設定し、処理をステップS76に進める。ステップS76においては、変数iが取得要求数Rmaxより大きいか否かを判断する。変数iが取得要求数Rmaxより大きいならば処理をプリントデータ送信処理に戻し、そうでなければ処理をステップS72に戻す。
図13は、プリントサーバーとMFPとの間でプリントデータを送受信するタイミングを説明するための第1のタイムチャートである。ここでは、プリントサーバー200において、MFP100から取得要求A、MFP100Aから取得要求B、MFP100Bから取得要求Cが、取得要求A,取得要求Bおよび取得要求Cの順に受信される場合を例に説明する。また、MFP100から受信される取得要求Aに基づいて2つのプリントデータA1、A2が抽出され、MFP100Aから受信される取得要求Bに基づいて2つのプリントデータB1、B2が抽出され、MFP100Bから受信される取得要求Cに基づいて2つのプリントデータC1、C2が抽出される場合を例に説明する。
図13を参照して、プリントサーバー200は、プリントデータA1,プリントデータB1、プリントデータC1、プリントデータA2,プリントデータB2、プリントデータC2の順に、それらを同時に2つを送信することなく順に送信する。このため、同時に2以上のプリントデータを送信しないので、CPU201の負荷が増大するのを防止することができる。
MFP100においては、時刻T1においてプリントデータA1の受信を開始し、プリントデータA1の受信が完了する時刻T2においてプリントデータA1のプリントを開始し、時刻T5において終了する。また、時刻T4においてプリントデータA2の受信を開始し、プリントデータA2の受信が完了する時刻T5においてプリントデータA2のプリントを開始する。プリントデータA1のプリントが終了する時刻T5において、プリントデータA2の受信が完了しているので、プリントデータA2を、プリントデータA1のプリントが完了した後に直ちにプリントすることができる。
MFP100Aにおいては、時刻T2においてプリントデータB1の受信を開始し、プリントデータB1の受信が完了する時刻T3においてプリントデータB1のプリントを開始し、時刻T6において終了する。また、時刻T5においてプリントデータB2の受信を開始し、プリントデータB2の受信が完了する時刻T6においてプリントデータB2のプリントを開始する。プリントデータB1のプリントが終了する時刻T6において、プリントデータB2の受信が完了しているので、プリントデータB2を、プリントデータB1のプリントが完了した後に直ちにプリントすることができる。
MFP100Bにおいては、時刻T3においてプリントデータC1の受信を開始し、プリントデータC1の受信が完了する時刻T4においてプリントデータC1のプリントを開始し、時刻T7において終了する。また、時刻T6においてプリントデータC2の受信を開始し、プリントデータC2の受信が完了する時刻T7においてプリントデータC2のプリントを開始する。プリントデータC1のプリントが終了する時刻T7において、プリントデータC2の受信が完了しているので、プリントデータC2を、プリントデータC1のプリントが完了した後に直ちにプリントすることができる。
図14は、プリントサーバーとMFPとの間でプリントデータを送受信するタイミングを説明するための第2のタイムチャートである。ここでは、プリントサーバー200において、MFP100から取得要求A、MFP100Aから取得要求B、MFP100Bから取得要求C’が、取得要求A,取得要求Bおよび取得要求C’の順に受信される場合を例に説明する。また、MFP100から受信される取得要求Aに基づいて2つのプリントデータA1、A2が抽出され、MFP100Aから受信される取得要求Bに基づいて2つのプリントデータB1、B2が抽出され、MFP100Bから受信される取得要求C’に基づいて2つのプリントデータC1’、C2が抽出される場合を例に説明する。
図14を参照して、プリントサーバー200は、プリントデータA1,プリントデータB1、プリントデータC1’の順に、それらを同時に2つを送信することなく順に送信する。
MFP100においては、時刻T1においてプリントデータA1の受信を開始し、プリントデータA1の受信が完了する時刻T2においてプリントデータA1のプリントを開始し、時刻T5において終了する。
MFP100Aにおいては、時刻T2においてプリントデータB1の受信を開始し、プリントデータB1の受信が完了する時刻T3においてプリントデータB1のプリントを開始し、時刻T6において終了する。
MFP100Bにおいては、時刻T3においてプリントデータC1’の受信を開始し、プリントデータC1’の受信が完了する時刻T5においてプリントデータC1’のプリントを開始し、時刻T8において終了する。
ここで、プリントサーバー200は、プリントデータC1’の次にプリントデータA2を送信するが、プリントデータC1’の送信中に、プリントデータA1の送信が完了してからの経過時間、換言すれば、プリントデータA2の待機時間がプリントデータA2に対する限界待機時間LT(1)となる。限界待機時間LT(1)は、プリントデータA1をプリントするためのプリント時間PT(1)からプリントデータA2を送信する送信時間ST(1)を減算した値である。このため、プリントサーバー200は、プリントデータC1’を送信している場合であっても、時刻T4においてプリントデータA2をMFP100に送信する。このため、MFP100においては、時刻T4においてプリントデータA2の受信を開始し、時刻T5までに受信することができ、時刻T5においてプリントデータA2のプリントを開始する。プリントデータA1のプリントが終了する時刻T5において、プリントデータA2の受信が完了しているので、プリントデータA2を、プリントデータA1のプリントが完了した後に直ちにプリントすることができる。
さらに、プリントサーバー200は、プリントデータC1’の送信が完了する時刻T5において、次にプリントデータA2を送信する予定であったが、既に送信が開始されているので、プリントデータB2の送信を開始する。そして、プリントサーバー200は、プリントデータB2の送信が完了する時刻T6において、プリントデータC2の送信を開始する。
このため、MFP100Aにおいては、時刻T5においてプリントデータB2の受信を開始し、プリントデータB2の受信が完了する時刻T6においてプリントデータB2のプリントを開始する。プリントデータB1のプリントが終了する時刻T6において、プリントデータB2の受信が完了しているので、プリントデータB2を、プリントデータB1のプリントが完了した後に直ちにプリントすることができる。
さらに、MFP100Bにおいては、時刻T6においてプリントデータC1’をプリント中であるが、プリントサーバー200から送信されるプリントデータC2の受信を開始し、プリントデータC2の受信が完了する時刻T7において終了する。時刻T7においては、プリントデータC1’をプリント中なので、プリントデータC1’のプリントが終了する時刻T8において、プリントデータC2のプリントを開始する。プリントデータC1’のプリントが終了する時刻T8において、プリントデータC2の受信が完了しているので、プリントデータC2を、プリントデータC1’のプリントが完了した後に直ちにプリントすることができる。
以上説明したように、本実施の形態におけるプリントシステム1において、プリントサーパー200は、PC400,401,402のいずれかからプリントデータを受信すると、プリントデータとユーザー識別情報とを一時記憶する。一方、MFP100,100A,100Bのいずれかから取得要求を受信することに応じて、取得要求に含まれるユーザー識別情報と関連付けられた1以上のプリントデータの組を抽出し、同時に2以上を送信することなく順に返信する。さらに、プリントデータを送信している最中に、MFP100,100A,100Bのいずれかから新たな取得要求が受信される場合、送信中のプリントデータと同じ組に含まれる1以上のプリントデータのうち未送信の1以上の未送信データを、送信中のプリントデータの送信が完了した後に送信するのを保留する。このため、新たな取得要求が受信される場合は、並列して送信するプリントデータの数を減少させて、プリントデータを送信することによるCPU201の負荷が高くなるのを回避することができる。
また、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる1以上の未送信データの送信を保留する間に、新たな組に含まれる1以上のプリントデータを新たな取得要求を送信してきたMFPに送信することができる。このため、複数のMFP100,100A,100Bそれぞれにプリントデータを送信する場合に、プリントデータを送信することによる負荷が高くなることによりプリントデータの送信が遅延するのを回避することができる。
また、プリントサーバー200は、MFP100,100A,100Bの複数から複数の取得要求が受信される場合は、1以上のプリントデータの組を複数抽出するが、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択し、送信対象組に選択されなかった組に含まれる1以上の未送信データの送信を保留する。このため、複数のMFP100,100A,100Bに、取得要求を送信してきた順に、プリントデータを送信するので、複数のMFP100,100A,100B間で、取得要求を送信してから最初のプリントデータを受信するまでの時間のバラツキを少なくすることができる。
さらに、プリントサーバー200は、MFP100,100A,100Bの複数から複数の取得要求が受信される場合は、1以上のプリントデータの組を複数抽出し、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択するが、複数の組のうち送信対象組に選択されなかった組に含まれる1以上の未送信データの送信を、送信対象組に含まれる1以上の未送信データのうち1つの送信が完了するまで保留する。このため、複数のMFP100,100A,100Bに時分割でプリントデータを送信することができる。また、複数のMFP100,100A,100Bそれぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
また、プリントサーバー200は、プリントデータの送信を保留している時間が限界待機時間以上になる場合、送信を保留しているプリントデータを強制的に送信する。このため、複数のMFP100,100A,100Bのうち取得要求を送信してきた装置のすべてにおいて、複数のプリントデータを連続して画像形成することができる。
また、プリントサーバー200は、複数のMFP100,100A,100Bのうち取得要求を送信してきた装置のいずれかが画像を形成できない状態となった場合、画像を形成できない状態となった装置にはプリントデータを送信するのを保留し、送信しないので、複数のMFP100,100A,100Bのうち取得要求を送信してきた装置のうち画像を形成できる状態の装置に優先してプリントデータを送信することができる。
<第1の変形例>
第1の変形例は、上述したプリントサーバー200において、CPU201に形成される機能である限界待機時間設定部263を変形したものである。図15は、第1の変形例におけるプリントサーバーが備えるCPUの機能の一例を示すブロック図である。図15を参照して、図5に示したCPU201の機能と異なる点は、限界待機時間設定部263を限界待機時間設定部263Aに変更した点である。その他の機能は図5に示した機能と同じなので、ここでは説明を繰り返さない。
図15を参照して、限界待機時間設定部263Aは、送信時間算出部289と、送信時間決定部283Aと、限界待機時間算出部285と、を含む。送信時間算出部289は、プリントデータ受信部251からプリントデータ識別情報が入力される。送信時間算出部289は、ネットワークI/F204がデータを送信するために予め定められた送信能力と、プリントデータ識別情報で特定されるプリントデータのデータとから送信時間を算出する。たとえば、送信能力を単位時間当たりに送信可能なデータ量とすれば、プリントデータのデータ量を送信能力で除算した値を、送信時間とする。送信時間算出部289は、プリントデータ識別情報と、算出された送信時間との組を送信時間決定部283Aに出力する。
送信時間決定部283Aは、送信時間算出部289から入力される送信時間を、それと組になるプリントデータ識別情報で特定されるプリントデータの送信時間に決定し、送信時間とプリントデータ識別情報との組を限界待機時間算出部285に出力する。
<第2の変形例>
上述した実施の形態において、プリントサーバー200は、MFP100,100A,100Bのうちから定められた1つの装置に、プリントデータを送信するようにした。具体的には、プリントデータ送信部259が、原則として、MFP100,100A,100Bのうちからタイミング制御部261により定められた1つの装置に、プリントデータを送信する。
第2の変形例におけるプリントサーバー200は、2以上の所定数を最大として、MFP100,100A,100Bのうち、最大で所定数の装置にプリントデータを送信する処理を並列で実行するようにしたものである。所定数は、CPU201の処理能力、ネットワークI/F204の送信速度等によって任意に定めることができる。この場合には、タイミング制御部261は、MFP100,100A,100Bのうちから所定数の装置を選択する。このため、第2の変形例におけるCPU201において、プリントデータ送信部259は、MFP100,100A,100Bのうちタイミング制御部261により選択された所定数の装置それぞれにプリントデータを送信する処理を並列で実行する。
第2の変形例におけるプリントサーバー200は、MFP100,100A,100Bの複数から複数の取得要求が受信される場合は、1以上のプリントデータの組を複数抽出し、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択するが、複数の組のうち最大で所定数の送信対象組に選択されなかった組に含まれる1以上の未送信データの送信を、最大で所定数の送信対象組のいずれかに含まれる1以上の未送信データのうち1つの送信が完了するまで保留する。このため、複数のMFP100,100A,100Bのうち最大で所定数の装置に並列でプリントデータを送信することができる。MFP100,100A,100Bのうちから並列でプリントデータを送信する装置の台数を所定数に制限するので、プリントデータを送信する場合のCPU201の負荷の上限を定めることができ、負荷が無制限に上昇するのを回避することができる。また、複数のMFP100,100A,100Bそれぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
なお、上述した実施の形態においては、プリントシステム1について説明したが、図7〜図11に示したプリントデータ送信処理をプリントサーバー200に実行させるプリントデータ送信方法、またはプリントデータ送信方法を、プリントサーバー200を制御するCPU201に実行させるプログラムとして発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 前記限界待機時間設定手段は、前記複数の組それぞれに含まれる1以上のプリントデータごとに前記プリントデータ受信手段が当該プリントデータを受信する間の受信時間を取得する受信時間取得手段を、さらに含み、
前記送信時間決定手段は、前記プリントデータに対応して取得された受信時間を送信時間に決定する、請求項6に記載のプリントサーバー。
(2) 前記限界待機時間設定手段は、前記複数の組それぞれに含まれる1以上のプリントデータごとに、当該プリントデータのデータ量と、データ通信のための通信速度とに基づいて、前記送信時間を算出する送信時間算出手段を、さらに含む、請求項6に記載のプリントサーバー。