(57)【要約】【課題】  複数の画像形成装置それぞれにプリントデータを効率的に送信すること。【解決手段】  プリントサーバーは、外部から受信されたプリントデータを一時記憶する一時記憶部２５３と、複数の画像形成装置のいずれかから要求を受信することに応じて、送信対象となる１以上のプリントデータの組を抽出する抽出部２５７と、抽出された１以上のプリントデータを、複数の画像形成装置のうち要求を送信してきた要求装置に順に送信するプリントデータ送信部２５９と、プリントデータが送信されている最中に、複数の組が抽出される場合、送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データの送信を、送信中のプリントデータの送信が完了した後、保留する保留部２７５と、を含む。【選択図】        図５
2014016704.tif 000002
【特許請求の範囲】
【請求項１】
外部からプリントデータを受信するプリントデータ受信手段と、
前記受信されるプリントデータを一時記憶する一時記憶手段と、
複数の画像形成装置のいずれかから要求を受信することに応じて、前記要求に基づいて前記一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出手段と、
前記抽出された組に含まれる１以上のプリントデータを、前記複数の画像形成装置のうち前記要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信手段と、
前記プリントデータ送信手段によってプリントデータが送信されている最中に、前記抽出手段により複数の組が抽出される場合、前記複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御手段と、を備え、
前記タイミング制御手段は、前記送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、前記送信中のプリントデータの送信が完了した後、前記送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留手段と、を含む、プリントサーバー。
【請求項２】
前記タイミング制御手段は、前記抽出手段により抽出された複数の組それぞれに対応する要求が受信された順に基づいて、前記複数の組それぞれに対応する優先順位を決定する優先順位決定手段と、
前記抽出手段により抽出された複数の組のうちから送信の対象となる送信対象組を前記優先順位に従って選択する選択手段と、をさらに含み、
前記保留手段は、前記複数の組のうち前記送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を保留する、請求項１に記載のプリントサーバー。
【請求項３】
前記保留手段は、前記複数の組のうち前記送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、前記送信対象組に含まれる１以上の未送信データのうち１つの送信が完了するまで保留する、請求項２に記載のプリントサーバー。
【請求項４】
前記選択手段は、２以上の所定数を最大として、前記複数の組のうちから最大で前記所定数の送信対象組を選択し、
前記保留手段は、前記複数の組のうち前記選択された最大で前記所定数の送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、前記選択された最大で前記所定数の送信対象組のいずれかに含まれる１以上の未送信データのうち１つの送信が完了するまで保留する、請求項３に記載のプリントサーバー。
【請求項５】
前記複数の組ごとに限界待機時間を設定する限界待機時間設定手段を、さらに備え、
前記プリントデータ送信手段は、前記複数の組それぞれにおいて、前記保留手段により送信が保留されている時間が当該組に設定された限界待機時間以上になる場合、前記保留手段により送信が保留されている１以上の未送信データの１つを、前記選択手段により当該組が前記送信対象組に選択されていない場合であっても送信する強制送信手段を含む、請求項１〜４のいずれかに記載のプリントサーバー。
【請求項６】
前記限界待機時間設定手段は、前記複数の組それぞれに含まれる１以上のプリントデータごとに送信に必要な送信時間を決定する送信時間決定手段と、
前記複数の組それぞれに含まれる１以上のプリントデータごとに、当該プリントデータの送信時間と、前記プリントデータが含まれる組に対応する要求を送信してきた画像形成装置の画像形成能力と、当該プリントデータよりも優先順位が１つ高いプリントデータの画像形成枚数と、に基づいて、前記限界待機時間を算出する限界待機時間算出手段と、を含む、請求項５に記載のプリントサーバー。
【請求項７】
前記タイミング制御手段は、前記複数の画像形成装置のいずれかが画像を形成できない状態になる場合、当該画像を形成できない状態となった画像形成装置から受信された要求に対応する組に含まれる１以上の未送信データの送信を保留するエラー時保留手段を、さらに備えた、請求項１に記載のプリントサーバー。
【請求項８】
外部からプリントデータを受信するプリントデータ受信ステップと、
前記受信されるプリントデータを一時記憶する一時記憶ステップと、
複数の画像形成装置のいずれかから要求を受信することに応じて、前記要求に基づいて前記一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出ステップと、
前記抽出された組に含まれる１以上のプリントデータを、前記複数の画像形成装置のうち前記要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信ステップと、
前記プリントデータ送信ステップにおいてプリントデータが送信されている最中に、前記抽出ステップにおいて複数の組が抽出される場合、前記複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御ステップと、を含み、
前記タイミング制御ステップは、前記送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、前記送信中のプリントデータの送信が完了した後、前記送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留ステップを含む、プリントデータ送信方法。
【請求項９】
外部からプリントデータを受信するプリントデータ受信ステップと、
前記受信されるプリントデータを一時記憶する一時記憶ステップと、
複数の画像形成装置のいずれかから要求を受信することに応じて、前記要求に基づいて前記一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出ステップと、
前記抽出された組に含まれる１以上のプリントデータを、前記複数の画像形成装置のうち前記要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信ステップと、
前記プリントデータ送信ステップにおいてプリントデータが送信されている最中に、前記抽出ステップにおいて複数の組が抽出される場合、前記複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御ステップと、をプリントデータを制御するコンピューターに実行させ、
前記タイミング制御ステップは、前記送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、前記送信中のプリントデータの送信が完了した後、前記送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留ステップを含む、プリントデータ送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プリントサーバー、プリントデータ送信方法、およびプリントデータ送信プログラムに関し、特に、画像形成装置にプリントデータを送信するプリントサーバー、そのプリントサーバーで実行されるプリントデータ送信方法、およびプリントデータ送信プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピューター（以下「ＰＣ」という）から送信したプリントデータを、複合機で代表される画像形成装置に直ちにプリントさせるのではなく、一度プリントサーバーに記憶しておき、ユーザーが画像形成装置にログインした時点で、画像形成装置がプリントデータをダウンロードしてプリントするプリントシステムが知られている。
【０００３】
このプリントシステムにおいて、プリントサーバーから同時に複数の画像形成装置にプリントデータを送信する場合があり、プリントサーバーの負荷が増大する場合がある。プリントサーバーの負荷が増大すると、複数の画像形成装置それぞれにプリントデータを送信する時間が遅延する場合があり、複数の画像形成装置のすべてでプリントデータのプリントを開始するまでの時間が遅延する場合があるといった問題がある。
【０００４】
特開２００６−０９９７１４号公報には、印刷管理サーバーと複数のプリントサーバーとからなるシステムであって、複数のプリントサーバーに分散してプリントデータを記憶させ、および、印刷管理サーバーで、複数のプリントサーバーに分散して記憶されたプリントデータを管理させることにより、複数のプリントサーバー間で負荷を分散するシステムが記載されている。
【０００５】
しかしながら、従来のシステムにおいては、プリントサーバーを複数設けなければならず、さらに、複数のプリントサーバーを管理するための印刷管理サーバーを設けなければならない。このため、コストが増大するといった問題がある。
【特許文献１】特開２００６−０９９７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントサーバーを提供することである。
【０００７】
この発明の他の目的は、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントデータ送信方法を提供することである。
【０００８】
この発明のさらに他の目的は、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントデータ送信プログラムを提供することである。
【課題を解決するための手段】
【０００９】
上述した目的を達成するためにこの発明のある局面によれば、プリントサーバーは、外部からプリントデータを受信するプリントデータ受信手段と、受信されるプリントデータを一時記憶する一時記憶手段と、複数の画像形成装置のいずれかから要求を受信することに応じて、要求に基づいて一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出手段と、抽出された組に含まれる１以上のプリントデータを、複数の画像形成装置のうち要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信手段と、プリントデータ送信手段によってプリントデータが送信されている最中に、抽出手段により複数の組が抽出される場合、複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御手段と、を備え、タイミング制御手段は、送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留手段と、を含む。
【００１０】
この局面に従えば、複数の画像形成装置のいずれかから要求を受信すると、送信対象となる１以上のプリントデータの組を抽出し、１以上のプリントデータを同時に２以上を送信することなく順に送信するが、プリントデータが送信されている最中に、新たな要求が受信される場合、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する。このため、新たな要求が受信される場合は、並列して送信するプリントデータの数を減少させて、プリントデータを送信することによる負荷が高くなるのを回避することができる。また、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する間に、新たな組に含まれる１以上のプリントデータを新たな要求を送信してきた画像形成装置に送信することができる。このため、複数の画像形成装置それぞれにプリントデータを送信する場合に、プリントデータを送信することによる負荷が高くなることによりプリントデータの送信が遅延するのを回避することができる。その結果、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントサーバーを提供することができる。
【００１１】
好ましくは、タイミング制御手段は、抽出手段により抽出された複数の組それぞれに対応する要求が受信された順に基づいて、複数の組それぞれに対応する優先順位を決定する優先順位決定手段と、抽出手段により抽出された複数の組のうちから送信の対象となる送信対象組を優先順位に従って選択する選択手段と、をさらに含み、保留手段は、複数の組のうち送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を保留する。
【００１２】
この局面に従えば、抽出された複数の組のうちから対応する要求が受信された順に送信対象組が選択され、送信対象組に選択されなかった組に含まれる１以上の未送信データの送信が保留される。このため、複数の画像形成装置に、要求を送信してきた順に、プリントデータが送信されるので、複数の画像形成装置間で、要求を送信してから最初のプリントデータを受信するまでの時間のバラツキを少なくすることができる。
【００１３】
好ましくは、保留手段は、複数の組のうち送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、送信対象組に含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。
【００１４】
この局面に従えば、複数の組のうち送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、送信対象組に含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。このため、複数の画像形成装置に時分割でプリントデータを送信することができる。また、複数の画像形成装置それぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
【００１５】
好ましくは、選択手段は、２以上の所定数を最大として、複数の組のうちから最大で所定数の送信対象組を選択し、保留手段は、複数の組のうち選択された最大で所定数の送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、選択された最大で所定数の送信対象組のいずれかに含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。
【００１６】
この局面に従えば、複数の組のうち最大で所定数の送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、最大で所定数の送信対象組のいずれかに含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。このため、複数の画像形成装置のうち最大で所定数の装置に並列でプリントデータを送信することができる。並列でプリントデータを送信する画像形成装置の台数を所定数に制限するので、プリントデータを送信する負荷の上限を定めることができ、負荷が無制限に上昇するのを回避することができる。また、複数の画像形成装置それぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
【００１７】
好ましくは、複数の組ごとに限界待機時間を設定する限界待機時間設定手段を、さらに備え、プリントデータ送信手段は、複数の組それぞれにおいて、保留手段により送信が保留されている時間が当該組に設定された限界待機時間以上になる場合、保留手段により送信が保留されている１以上の未送信データの１つを、選択手段により当該組が送信対象組に選択されていない場合であっても送信する強制送信手段を含む。
【００１８】
この局面に従えば、送信が保留されている時間が限界待機時間以上になる場合、送信が保留されている１以上の未送信データの１つを強制的に送信する。このため、複数の画像形成装置において、複数のプリントデータを連続して画像形成させることができる。
【００１９】
好ましくは、限界待機時間設定手段は、複数の組それぞれに含まれる１以上のプリントデータごとに送信に必要な送信時間を決定する送信時間決定手段と、複数の組それぞれに含まれる１以上のプリントデータごとに、当該プリントデータの送信時間と、プリントデータが含まれる組に対応する要求を送信してきた画像形成装置の画像形成能力と、当該プリントデータよりも優先順位が１つ高いプリントデータの画像形成枚数と、に基づいて、限界待機時間を算出する限界待機時間算出手段と、を含む。
【００２０】
好ましくは、タイミング制御手段は、複数の画像形成装置のいずれかが画像を形成できない状態になる場合、当該画像を形成できない状態となった画像形成装置から受信された要求に対応する組に含まれる１以上の未送信データの送信を保留するエラー時保留手段を、さらに備える。
【００２１】
この局面に従えば、複数の画像形成装置のうち画像を形成できない状態となった画像形成装置にはプリントデータを送信しないので、画像を形成できる状態の画像形成装置に優先してプリントデータを送信することができる。
【００２２】
この発明の他の局面によれば、プリントデータ送信方法は、外部からプリントデータを受信するプリントデータ受信ステップと、受信されるプリントデータを一時記憶する一時記憶ステップと、複数の画像形成装置のいずれかから要求を受信することに応じて、要求に基づいて一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出ステップと、抽出された組に含まれる１以上のプリントデータを、複数の画像形成装置のうち要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信ステップと、プリントデータ送信ステップにおいてプリントデータが送信されている最中に、抽出ステップにおいて複数の組が抽出される場合、複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御ステップと、を含み、タイミング制御ステップは、送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留ステップを含む。
【００２３】
この局面に従えば、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントデータ送信方法を提供することができる。
【００２４】
この発明の他の局面によれば、プリントデータ送信プログラムは、外部からプリントデータを受信するプリントデータ受信ステップと、受信されるプリントデータを一時記憶する一時記憶ステップと、複数の画像形成装置のいずれかから要求を受信することに応じて、要求に基づいて一時記憶されたプリントデータのうちから送信対象となる１以上のプリントデータの組を抽出する抽出ステップと、抽出された組に含まれる１以上のプリントデータを、複数の画像形成装置のうち要求を送信してきた要求装置に、同時に２以上を送信することなく順に送信するプリントデータ送信ステップと、プリントデータ送信ステップにおいてプリントデータが送信されている最中に、抽出ステップにおいて複数の組が抽出される場合、複数の組それぞれに含まれる１以上のプリントデータを送信するタイミングを制御するタイミング制御ステップと、をプリントデータを制御するコンピューターに実行させ、タイミング制御ステップは、送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データが存在する場合、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する保留ステップを含む。
【００２５】
この局面に従えば、複数の画像形成装置それぞれにプリントデータを効率的に送信することが可能なプリントデータ送信プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態におけるプリントシステムの全体概要を示す図である。
【図２】本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。
【図３】ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】プリントサーバーのハードウェア構成の一例を示すブロック図である。
【図５】プリントサーバーが備えるＣＰＵの機能の一例を示すブロック図である。
【図６】ＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図７】プリントデータ送信処理の流れの一例を示すフローチャートである。
【図８】プリントデータ受信処理の流れの一例を示す図である。
【図９】取得要求受信処理の流れの一例を示すフローチャートである。
【図１０】送信中データ決定処理の流れの一例を示すフローチャートである。
【図１１】待機データ選択処理の流れの一例を示すフローチャートである。
【図１２】強制送信処理の流れの一例を示すフローチャートである。
【図１３】プリントサーバーとＭＦＰとの間でプリントデータを送受信するタイミングを説明するための第１のタイムチャートである。
【図１４】プリントサーバーとＭＦＰとの間でプリントデータを送受信するタイミングを説明するための第２のタイムチャートである。
【図１５】第１の変形例におけるプリントサーバーが備えるＣＰＵの機能の一例を示すブロック図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。
【００２８】
図１は、本発明の実施の形態におけるプリントシステムの全体概要を示す図である。図１を参照して、プリントシステム１は、それぞれがネットワーク３に接続された画像形成装置としての複合機（以下、「ＭＦＰ」という）１００，１００Ａ，１００Ｂと、プリントサーバー２００と、認証サーバー３００と、パーソナルコンピューター（以下、「ＰＣ」という）４００〜４０２と、を含む。なお、図ではネットワーク３に３台のＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００，１００Ａ，１００Ｂが接続される例を示しているが、ＭＦＰの数はこれに限定されるものではなく、１台以上であればよい。また、ＭＦＰ１００，１００Ａ，１００Ｂに代えて、画像を形成する機能を備えた装置であれば、例えば、ファクシミリ、プリンタ等であってもよい。ネットワーク３は、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワーク３は、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、インターネット等であってもよい。
【００２９】
ＰＣ４００〜４０２、プリントサーバー２００および認証サーバー３００は、一般的なコンピューターである。認証サーバー３００は、ＰＣ４００〜４０２、ＭＦＰ１００，１００Ａ，１００Ｂを使用するユーザーを認証する処理を実行する。認証サーバー３００は、ユーザーごとに予め割り当てられ、ユーザーを識別するためのユーザー識別情報と認証情報とを含むユーザーデータを記憶しており、ＰＣ４００〜４０２、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかから、ユーザーによりそれに入力されたユーザー識別情報と認証情報とを受信すると、受信されたユーザー識別情報と認証情報とを予め記憶されているユーザーデータと比較する。認証サーバー３００は、両者が一致すれば認証成功を示す認証結果を返信するが、両者が一致しなければ認証失敗を示す認証結果を返信する。
【００３０】
なお、認証情報としてパスワードを用いる例を示すが、ユーザーの指紋、静脈パターン、虹彩等の生体情報を用いて認証するようにしてもよい。この場合、ＭＦＰ１００，１００Ａ，１００Ｂ、ＰＣ４００〜４０２には、生体情報を読み取るための読取装置が接続され、認証サーバー３００に記憶されるユーザーデータは、ユーザー識別情報と生体情報とを含む。そして、ＭＦＰ１００，１００Ａ，１００Ｂ、ＰＣ４００〜４０２それぞれは、読取装置により読み取られた生体情報が入力される。ＭＦＰ１００，１００Ａ，１００Ｂ、ＰＣ４００〜４０２それぞれは、読取装置から入力される生体情報を認証サーバー３００に送信し、認証サーバー３００に認証させる。
【００３１】
なお、プリントサーバー２００が認証サーバー３００となる場合、または、ＰＣ４００〜４０２およびＭＦＰ１００，１００Ａ，１００Ｂ各々が認証サーバー３００を兼ねる場合があり、この場合には認証サーバー３００は不要である。
【００３２】
ＰＣ４００〜４０２各々は、ユーザーにより使用され、アプリケーションプログラムを実行することにより、種々の処理を実行する。種々の処理は、使用するユーザーを認証するログイン処理、プリントデータを生成し、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかにプリントさせるプリント処理を含む。
【００３３】
本実施の形態におけるプリントシステム１においては、ＰＣ４００〜４０２各々には、プルプリント用ドライバプログラムがインストールされている。ＰＣ４００〜４０２各々は、プルプリント用ドライバプログラムを実行することにより、プリントデータを、プリントサーバー２００に一時的に記憶させる。ＰＣ４００〜４０１各々は、プルプリント用ドライバプログラムをインストールする際に、プリントデータの送信先としてプリントサーバー２００が登録される。例えば、プリントサーバー２００のネットワークアドレスを設定することにより、プリントサーバー２００が登録される。
【００３４】
ＰＣ４００〜４０２各々は、プルプリント用ドライバプログラムを実行することにより、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかにプリントデータをプリントさせる。具体的には、例えば、ＰＣ４００において、ユーザーＡがユーザー識別情報「ｔａｒｏ１」でログインし、ユーザーＡが指定したデータのプリントを指示する場合、プルプリント用ドライバプログラムは、プルプリントデータをプリントサーバー２００に送信する。プルプリントデータは、ユーザーにより指定されたデータをプリント用のフォーマットに変換したプリントデータと、ユーザー識別情報「ｔａｒｏ１」とを含む。
【００３５】
プリントサーバー２００は、ＰＣ４００〜４０２のいずれかからユーザー識別情報とプリントデータとを含むプルプリントデータを受信すると、ユーザー識別情報とプリントデータとを関連付けて一時記憶する。その後、ユーザー識別情報「ｔａｒｏ１」のユーザーＡが、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかにログインすると、例えば、ＭＦＰ１００に、ユーザーＡがログインすれば、ＭＦＰ１００はプリントサーバー２００にユーザーＡのユーザー識別情報「ｔａｒｏ１」を含む取得要求を送信する。取得要求を受信するプリントサーバー２００は、一時記憶されたプリントデータのうちから取得要求に含まれるユーザー識別情報「ｔａｒｏ１」と関連付けられたプリントデータを、取得要求を送信してきたＭＦＰ１００に送信する。ＭＦＰ１００は、プリントサーバー２００から受信するプリントデータをプリントする。
【００３６】
なお、ＰＣ４００〜４０２のいずれかからプリントデータとともに、複写枚数、用紙のサイズ、カラーとモノクロの別、印刷レイアウト等のプリント条件が送信される場合がある。このプリント条件は、ＰＣ４００〜４０２が、ユーザーから受け付けられた値に基づいて定める。また、ＰＣ４００〜４０２において、プリントデータとともにプリント条件を送信することなく、プリントデータのみを送信して、プリント条件を、ＭＦＰ１００，１００Ａ，１００ＢのうちユーザーがログインしたＭＦＰで、ユーザーがログインした後に指定するようにしてもよい。
【００３７】
ＭＦＰ１００，１００Ａ，１００Ｂは、ハードウェア構成は同じであってもよく異なっていてもよいが、少なくとも画像データに基づいて紙などの用紙に画像を形成するための画像形成部を備えている。ＭＦＰ１００，１００Ａ，１００Ｂ各々が有するハードウェア構成は同じではない場合があるが、ここではＭＦＰ１００が、他のＭＦＰ１００Ａ，１００Ｂの少なくとも１つが有する構成を有している場合を例に説明する。
【００３８】
図２は、本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。図２を参照して、ＭＦＰ１００は、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００３９】
自動原稿搬送装置１２０は、原稿給紙トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。
【００４０】
画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成する。
【００４１】
図３は、ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン回路１１０を含む。メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、ファクシミリ部１１６と、外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００４２】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取画像を一時的に記憶する。
【００４３】
ファクシミリ部１１６は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１６は、受信したファクシミリデータを、ＨＤＤ１１５に記憶するか、または、画像形成部１４０でプリント可能なプリントデータに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１１６により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部１１６は、原稿読取部１３０が原稿を読み取って出力するデータ（読取画像）、または、ＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００４４】
通信Ｉ／Ｆ部１１２は、ネットワーク３にＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワーク３に接続された他のＭＦＰ１００Ａ，１００Ｂ、ＰＣ４００〜４０２、プリントサーバー２００および認証サーバー３００と通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信Ｉ／Ｆ部１１２が接続されるネットワーク３は、例えば、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワーク３は、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）を用いたネットワーク等であってもよい。さらに、ネットワーク３は、インターネットに接続されている。このため、ＭＦＰ１００は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
【００４５】
外部記憶装置１１７は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１８、または半導体メモリが装着される。ＣＰＵ１１１は、外部記憶装置１１７を介してＣＤ−ＲＯＭ１１８または半導体メモリにアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１７に装表されたＣＤ−ＲＯＭ１１８または半導体メモリに記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１８に記録されたプログラムに限られず、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、通信Ｉ／Ｆ部１１２に接続されるネットワーク３を介して、ネットワーク３に接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１５に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４６】
なお、ＣＰＵ１１１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ１１８に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリであってもよい。
【００４７】
操作パネル１６０は、表示部１６１と操作部１６３とを含む。表示部１６１は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６３は、タッチパネル１６５と、複数のキーからなるハードキー部１６７と、を含む。ハードキー部１６７が含む複数のキーそれぞれは、接点スイッチを含み、ＣＰＵ１１１に接続される。ハードキーは、ユーザーにより押下されると接点を閉じて、ＣＰＵ１１１に接続される回路を閉じる。ハードキーは、ＭＦＰ１００を操作するユーザーにより押下されている間は回路を閉じ、ユーザーにより押下されていない間は回路を開く。
【００４８】
操作部１６３は、ハードキー部１６７が有する複数のキーが押下されると、押下されたキーに対応する指示、文字、数字などのデータの入力を受け付ける。タッチパネル１６５は、表示部１６１の上面または下面に設けられ、ユーザーにより押下された位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、ユーザーが指またはスタイラスペンで指示した位置を検出し、検出した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、表示部１６１の表示面と同じまたはそれ以上のサイズであるのが好ましい。タッチパネル１６５は、表示部１６１に重畳して設けられるので、タッチパネル１６５は、ユーザーが表示部１６１の表示面を指示すれば、表示部１６１の表示面中でユーザーが指示した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式を用いることができ、その方式は限定されない。
【００４９】
図４は、プリントサーバーのハードウェア構成の一例を示すブロック図である。図４を参照して、プリントサーバー２００は、それぞれがバス２０８に接続され、プリントサーバー２００の全体を制御するためのＣＰＵ２０１と、ＣＰＵ２０１が実行するプログラム等を記憶するためのＲＯＭ２０２と、ＣＰＵ２０１の作業領域として用いられるＲＡＭ２０３と、プリントサーバー２００をネットワークに接続するためのネットワークＩ／Ｆ１０４と、大容量記憶装置としてのＨＤＤ２０５と、表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０９と、を含む。
【００５０】
外部記憶装置２０９は、プログラムを記憶したＣＤ−ＲＯＭ２０９Ａが装着される。ＣＰＵ２０１は、外部記憶装置２０９を介してＣＤ−ＲＯＭ２０９Ａに記憶されたプログラムをＲＡＭ２０３にロードし、実行する。なお、プログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ２０９Ａに限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ／ＭＤ／ＤＶＤ）、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ等でもよい。また、ＨＤＤ２０５に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、プリントサーバー２００が、ネットワーク３に接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５１】
図５は、プリントサーバーが備えるＣＰＵの機能の一例を示すブロック図である。図５に示すプリントサーバー２００が備えるＣＰＵ２０１の機能は、ＣＰＵ２０１がＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶されたプリントデータ送信プログラムを実行することにより、ＣＰＵ２０１に形成される機能である。
【００５２】
図５を参照して、プリントサーバー２００が備えるＣＰＵ２０１は、外部からプルプリントデータを受信するプリントデータ受信部２５１と、プリントデータを一時記憶する一時記憶部２５３と、取得要求を受信する取得要求受信部２５５と、取得要求に基づいてプリントデータを抽出する抽出部２５７と、取得要求を送信してきた装置にプリントデータを送信するプリントデータ送信部２５９と、タイミング制御部２６１と、限界待機時間設定部２６３と、を含む。
【００５３】
プリントデータ受信部２５１は、ネットワークＩ／Ｆ２０４を制御し、ＰＣ４００〜４０２のいずれかからプリントデータとユーザー識別情報とを含むプルプリントデータを受信する。プリントデータ受信部２５１は、プルプリントデータを受信すると、受信されたプルプリントデータを一時記憶部２５３に出力する。さらに、プリントデータ受信部２５１は、プルプリントデータに含まれるプリントデータの受信を開始してから終了するまでの時間を計測し、計測した時間を受信時間としてプリントデータと関連付けて限界待機時間設定部２６３に出力する。例えば、受信時間とプリントデータを識別するためのプリントデータ識別情報との組を、限界待機時間設定部２６３に出力する。
【００５４】
一時記憶部２５３は、プリントデータ受信部２５１からプルプリントデータが入力されると、プルプリントデータをＨＤＤ２０５に記憶する。これにより、ＨＤＤ２０５にプルプリントデータがスプールデータ２９１として記憶される。スプールデータ２９１は、プリントデータとユーザー識別情報とを含み、プリントデータをユーザー識別情報と関連付ける。
【００５５】
取得要求受信部２５５は、ネットワークＩ／Ｆ２０４を制御して、ＭＦＰ１００，１００，１００Ｂのいずれかから取得要求を受信する。ＭＦＰ１００，１００，１００Ｂが取得要求を送信する動作は同じなので、ここではＭＦＰ１００を例に説明する。ＭＦＰ１００は、それを操作するユーザーがログインし、認証に成功すると、ログインしたユーザーのユーザー識別情報を含む取得要求をプリントサーバー２００に送信する。したがって、取得要求受信部２５５がＭＦＰ１００から受信する取得要求は、ＭＦＰ１００を操作するユーザーのユーザー識別情報を含む。
【００５６】
取得要求受信部２５５は、取得要求を受信すると、取得要求を識別するための取得要求識別情報と、取得要求に含まれるユーザー識別情報と、ＭＦＰ１００，１００，１００Ｂのうち取得要求を送信してきた装置を識別するための装置識別情報との組を抽出部２５７に出力し、取得要求識別情報と装置識別情報との組をエラー時保留部２７７に出力する。
【００５７】
抽出部２５７は、取得要求受信部２５５から取得要求識別情報と、ユーザー識別情報と、装置識別情報との組が入力されることに応じて、ＨＤＤ２０５に記憶されているプリントデータのうちから取得要求受信部２５５から入力されるユーザー識別情報と関連付けられたプリントデータを抽出する。具体的には、抽出部２５７は、ＨＤＤ２０５に記憶されているスプールデータ２９１のうちから、取得要求受信部２５５から入力されるユーザー識別情報を含むスプールデータ２９１を抽出し、抽出された１以上のスプールデータ２９１にそれぞれ含まれる１上のプリントデータを取得する。抽出部２５７は、取得要求受信部２５５から入力されるユーザー識別情報を含むスプールデータ２９１が複数記憶されている場合、複数のスプールデータのすべてを抽出する。抽出部２５７は、取得された１以上のプリントデータと、取得要求識別情報と、装置識別情報との組をプリントデータ送信部２５９に出力し、１以上のプリントデータと装置識別情報との組を、限界待機時間設定部２６３に出力する。
【００５８】
プリントデータ送信部２５９は、抽出部２５７から１以上のプリントデータと、取得要求識別情報と、装置識別情報との組が入力される。プリントデータ送信部２５９は、取得要求に基づき抽出されたプリントデータを、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置に送信する。具体的には、プリントデータ送信部２５９は、ＭＦＰ１００，１００Ａ，１００Ｂのうち抽出部２５７から入力される装置識別情報で特定される装置に、抽出部２５７から入力される１以上のプリントデータを、同時に２以上を送信することなく順に送信する。プリントデータ送信部２５９が、抽出部２５７から入力される１以上のプリントデータを送信する順番は、特に限定するものではないが、予め定められた条件に従って定まる順に送信するようにしてもよい。例えば、プリントデータが受信された日時の早いものから順に送信するようにしてもよい。
【００５９】
プリントデータ送信部２５９が、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかにプリントデータを送信している最中に、取得要求受信部２５５によって新たな取得要求が受信される場合がある。この場合、プリントデータ送信部２５９は、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた複数の装置に、プリントデータを送信することになる。しかしながら、ＭＦＰ１００，１００Ａ，１００Ｂのうちから選ばれた複数に並列してプリントデータを送信すると、ＣＰＵ２０１の負荷が増大する。
【００６０】
プリントサーバー２００がＭＦＰ１００，１００Ａ，１００Ｂのうちから選ばれた複数に並列してプリントデータを送信する場合、例えば、ＣＰＵ２０１に形成されるオペレーションシステムにおいて、タスク（スレッド）を切り換える処理が増加する場合がある。また、ＣＰＵ２０１において、オペレーションシステムで複数のタスクを並列処理する数が限界に到達する場合、限界を超えるタスクについては処理が実行されず、待機状態となることがある。さらに、ＣＰＵ２０１は、ＲＡＭ２０３、ＨＤＤ２０５、外部記憶装置２０９、ネットワークＩ／Ｆ２０４等のハードウェアにアクセスする処理を、並列で実行できない場合があり、この場合、複数のタスクが同時に同じハードウェアにアクセスする処理は、１つを除いて他のタスクに待ち時間が発生する場合がある。
【００６１】
このため、プリントデータ送信部２５９は、原則として、タイミング制御部２６１によりＭＦＰ１００，１００Ａ，１００Ｂのうちから定められた１つの装置に、プリントデータを送信する。プリントデータ送信部２５９は、送信中のプリントデータに対応する取得要求識別情報をタイミング制御部２６１に出力する。以下、プリントデータ送信部２５９が送信中のプリントデータを「送信中データ」という。
【００６２】
タイミング制御部２６１は、プリントデータ送信部２５９が、複数のＭＦＰ１００，１００Ａ，１００Ｂそれぞれにプリントデータを送信するタイミングを制御する。タイミング制御部２６１は、優先順位決定部２７１と、選択部２７３と、保留部２７５と、エラー時保留部２７７と、強制送信部２８７と、を含む。
【００６３】
優先順位決定部２７１は、抽出部２５７から取得要求識別情報が入力される。プリントデータ送信部２５９がＭＦＰ１００，１００Ａ，１００Ｂのいずれかにプリントデータを送信している最中に、取得要求受信部２５５によって新たな取得要求が受信される場合、取得要求受信部２５５から新たな取得要求識別情報が入力される。優先順位決定部２７１は、取得要求受信部２５５から入力される複数の取得要求識別情報それぞれに対して、それらが入力される順に高い優先順位を決定する。換言すれば、優先順位決定部２７１は、取得要求識別情報に対して、それより後に入力される取得要求識別情報よりも高い優先順位を決定する。優先順位決定部２７１は、取得要求識別情報と優先順位との組を選択部２７３に出力する。
【００６４】
選択部２７３は、優先順位決定部２７１から取得要求識別情報と優先順位との組が入力され、プリントデータ送信部２５９から、送信中データに対応する取得要求識別情報が入力される。選択部２７３は、プリントデータ送信部２５９が送信しているプリントデータの送信が完了すると、プリントデータ送信部２５９から入力される、送信中データに対応する取得要求識別情報に対応する優先順位の次に優先順位の高い取得要求識別情報を送信対象組として選択する。選択部２７３は、プリントデータ送信部２５９から入力される、送信中データに対応する取得要求識別情報に対応する優先順位が最も低い場合、優先順位が最も高い取得要求識別情報を、送信対象組として選択する。選択部２７３は、送信対象組に選択された取得要求識別情報を、プリントデータ送信部２５９および保留部２７５に出力する。
【００６５】
プリントデータ送信部２５９は、送信中データの送信が完了すると、選択部２７３から入力され、送信対象組に選択された取得要求識別情報に対応する未送信の１以上のプリントデータが存在すれば、未送信のプリントデータのうちから選択されたプリントデータを送信する。具体的には、プリントデータ送信部２５９は、選択部２７３から入力される送信対象組の取得要求識別情報に対応する１以上のプリントデータであって未送信のプリントデータのうちから受信された日時が最も早い１つを特定する。
【００６６】
プリントデータ送信部２５９は、選択部２７３から入力される送信対象組の取得要求識別情報に対応する未送信の１以上のプリントデータが存在しなければ、選択部２７３に選択指令を出力し、選択部２７３に次に優先順位の高い取得要求識別情報を、送信対象組として選択させる。選択部２７３は、選択指令が入力されると、先に送信対象組に選択した取得要求識別情報の次に優先順位の高い取得要求識別情報を送信対象組に選択し、新たに選択された取得要求識別情報をプリントデータ送信部２５９および保留部２７５に出力する。
【００６７】
保留部２７５は、選択部２７３から送信対象組の取得要求識別情報が入力されることに応じて、取得要求受信部２５５から入力される複数の取得要求識別情報のうち、選択部２７３から入力される送信対象組の取得要求識別情報以外のすべての取得要求識別情報それぞれに対応する１以上の未送信データの送信を保留する。具体的には、保留部２７５は、送信保留指令をプリントデータ送信部２５９に出力する。保留指令は、取得要求受信部２５５から入力される複数の取得要求識別情報のうち、選択部２７３から入力される送信対象組の取得要求識別情報以外のすべての取得要求識別情報を含む。
【００６８】
プリントデータ送信部２５９は、保留部２７５から保留指令が入力されると、保留指令に含まれるすべての取得要求識別情報それぞれに対応するに対応する未送信の１以上のプリントデータを送信しない。プリントデータ送信部２５９は、保留部２７５から保留指令が入力される場合、保留指令に含まれる取得要求に対応するプリントデータを送信するのを待機し、選択部２７３から入力される送信対象組に選択された取得要求識別情報に対応する１以上のプリントデータのうちから選択された１つのみを、送信する。
【００６９】
エラー時保留部２７７は、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置すべての状態を監視する。例えば、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置それぞれが送信するＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）に基づいて、各装置の状態を監視する。エラー時保留部２７７は、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置のうちで、プリントすることのできない状態となった装置を検出する場合、取得要求受信部２５５において受信された取得要求のうちで、プリントすることのできない状態の装置から受信された取得要求を特定する。エラー時保留部２７７は、取得要求受信部２５５から取得要求識別情報と装置識別情報との組が入力される。エラー時保留部２７７は、プリントすることのできない状態の装置を検出する場合、検出された装置の装置識別情報と組になる取得要求識別情報を特定する。エラー時保留部２７７は、特定された取得要求識別情報に対応する１以上の未送信データの送信を保留する。具体的には、エラー時保留部２７７は、エラー保留指令をプリントデータ送信部２５９に出力する。エラー保留指令は、ＭＦＰ１００，１００Ａ，１００Ｂのうちプリントすることのできない状態の装置の装置識別情報と組になる取得要求識別情報を含む。
【００７０】
さらに、エラー時保留部２７７は、ＭＦＰ１００，１００Ａ，１００Ｂのうちプリントすることのできない状態の装置の装置識別情報と組になる取得要求識別情報を、選択部２７３に出力する。
【００７１】
選択部２７３は、エラー時保留部２７７から取得要求識別情報が入力される場合、エラー時保留部２７７から入力される取得要求識別情報を選択しない。選択部２７３は、送信中データに対応する取得要求識別情報に対応する優先順位の次に優先順位の高い取得要求識別情報が、エラー時保留部２７７から入力される取得要求識別情報の場合、さらに次に優先順位の高い取得要求識別情報を選択する。
【００７２】
限界待機時間設定部２６３は、受信時間取得部２８１と、送信時間決定部２８３と、限界待機時間算出部２８５と、を含む。受信時間取得部２８１は、プリントデータ受信部２５１から受信時間とプリントデータ識別情報との組が入力される。受信時間取得部２８１は、受信時間とプリントデータ識別情報との組を、送信時間決定部２８３に出力する。送信時間決定部２８３は、受信時間取得部２８１から入力される受信時間を、それと組になるプリントデータ識別情報で特定されるプリントデータの送信時間に決定し、送信時間とプリントデータ識別情報との組を限界待機時間算出部２８５に出力する。
【００７３】
限界待機時間算出部２８５は、取得要求受信部２５５が取得要求を受信するごとに、取得要求受信部２５５から１以上のプリントデータと装置識別情報との組が入力され、プリントデータ受信部２５１がプリントデータを受信するごとに送信時間決定部２６７から送信時間とプリントデータ識別情報との組が入力される。限界待機時間算出部２８５は、取得要求受信部２５５から１以上のプリントデータと装置識別情報との組が入力されるごとに、限界待機時間を算出する。具体的には、限界待機時間算出部２８５は、取得要求受信部２５５から入力される装置識別情報で特定される装置の能力情報を取得し、能力情報に基づいてプリント時間を算出する。装置の能力情報は、例えば、用紙１枚当たりをプリントする時間である。限界待機時間算出部２８５は、取得された能力情報に基づいて、１以上のプリントデータそれぞれに対して、プリント時間を算出する。さらに、１以上のプリントデータを送信する順に従って、限界待機時間を算出する。１以上のプリントデータを送信する順は、例えば、プリントデータを受信した時刻の早い順とする。限界待機時間算出部２６９は、１以上のプリントデータのうち送信する順が最初のプリントデータに対しては、予め定められた限界待機時間を設定する。限界待機時間算出部２６９は、１以上のプリントデータのうち送信する順が２番目以降のプリントデータに対しては、そのプリントデータの送信時間と、送信する順が１つ前のプリントデータのプリント時間とに基づいて限界待機時間を算出する。具体的には、送信する順が１つ前のプリントデータのプリント時間から送信時間を減算した値を、限界待機時間に設定する。限界待機時間算出部２６９は、１以上のプリントデータそれぞれに対して限界待機時間を算出すると、プリントデータ識別情報と限界待機時間との組を、強制送信部２８７に出力する。
【００７４】
強制送信部２８７は、限界待機時間算出部２８５からプリントデータごとに、プリントデータ識別情報と限界待機時間との組が入力される。強制送信部２８７は、保留部２７５から送信が保留されたプリントデータに対応する取得要求識別情報が入力される。強制送信部２８７は、取得要求識別情報ごとに、取得要求識別情報に対応する１以上のプリントデータのうちから最後に送信されたプリントデータの送信が終了してからの経過時間を計時する。強制送信部２８７は、取得要求識別情報に対応する１以上のプリントデータのうちから最後に送信されたプリントデータの次に送信される順のプリントデータのプリントデータ識別情報と組になる限界待機時間と、経過時間とを比較する。強制送信部２８７は、取得要求識別情報に対応する経過時間が限界待機時間以上になると、その取得要求識別情報に対応する１以上のプリントデータのうち次に送信される順のプリントデータを、その取得要求識別情報が保留部２７５から入力され、送信が保留されている場合であっても送信する。送信先は、ＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求識別情報により特定される取得要求を送信してきた装置である。換言すれば、抽出部２５７から入力される１以上のプリントデータと取得要求識別情報と装置識別情報との組のうち、限界待機時間以上になった経過時間に対応する取得要求識別情報を含む組に含まれる装置識別情報により特定される。
【００７５】
図６は、ＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図６に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたプルプリントプログラムを実行することにより、ＣＰＵ１１１に形成される機能である。
【００７６】
図６を参照して、ＭＦＰ１００が備えるＣＰＵ１１１は、ＭＦＰ１００を操作するユーザーを認証するための認証部５１と、プリントサーバー２００からプリントデータを取得する取得部５３と、プリントジョブを管理するジョブ管理部５５と、画像形成部１３０を制御する画像形成制御部５７と、を含む。
【００７７】
認証部５１は、ＭＦＰ１００を操作するユーザーを認証する。具体的には、認証部５１は、ログイン画面を表示部１６１に表示する。ログイン画面は、ユーザー識別情報を入力する領域と、パスワードを入力する領域とを含む。ユーザーが操作部１６３にユーザー識別情報とパスワードとを入力すると、操作部１６３からユーザー識別情報とパスワードとを受け付け、受け付けたユーザー識別情報とパスワードとを含む認証情報を、通信Ｉ/Ｆ部１１２を介してプリントサーバー２００に送信し、プリントサーバー２００に認証させる。認証情報の送信先の情報、具体的には、プリントサーバー２００の装置識別情報は、ＭＦＰ１００にプルプリントプログラムがインストールされる段階で、ユーザーにより設定され、ＨＤＤ１１５に記憶される。
【００７８】
認証部５１は、通信Ｉ／Ｆ部１１２がプリントサーバー２００から認証結果を受信すると、その認証結果を受け付ける。認証部５１は、認証結果が認証成功を示す場合、ログインユーザーのユーザー識別情報を取得部５３に出力する。認証部５１は、認証結果が認証失敗を示す場合、エラーメッセージを表示部１６１に表示する。認証部５１は、認証結果が認証成功を示す場合、その後にログアウト指示が入力されるまで、操作部１６１に入力される操作は、認証されてログインが許可されたユーザーによる操作として受け付ける。
【００７９】
取得部５３は、認証部５１により認証されたユーザーに関連するプリントデータを取得する。具体的には、取得部５３は、認証部５１からユーザー識別情報が入力されることに応じて、ユーザー識別情報を含む取得要求をプリントサーバー２００に送信する。上述したように、プリントサーバー２００は、取得要求を受信すると、その取得要求に含まれるユーザー識別情報と関連付けられた１以上のプリントデータを特定し、特定した１以上のプリントデータを返信する。取得部５３は、通信Ｉ／Ｆ部１１２がプリントサーバー２００からプリントデータを受信すると、受信されたプリントデータを、ジョブ管理部５５に出力する。プリントサーバー２００は、複数のプリントデータを抽出する場合、複数のプリントデータを順に送信するので、取得部５３は、複数のプリントデータを受信する順に、プリントデータをジョブ管理部５５に出力する。
【００８０】
ジョブ管理部５５は、取得部５３からプリントデータが入力されると、プリントデータを含むプリントジョブを生成し、生成したプリントジョブを画像形成制御部５７に出力する。画像形成制御部５７は、ジョブ管理部５５からプリントジョブが入力されると、プリントジョブに含まれるプリントデータをプリントする。具体的には、画像形成部１３０にプリントデータを出力し、画像形成部１３０にプリントデータの画像を形成させる。
【００８１】
図７は、プリントデータ送信処理の流れの一例を示すフローチャートである。プリントデータ送信処理は、プリントサーバー２００が備えるＣＰＵ２０１がＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９Ａに記憶されたプリントデータ送信プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。
【００８２】
図７を参照して、ＣＰＵ２０１は、変数に初期値を設定する（ステップＳ０１）。ここでは、変数ｎに「０」を設定し、変数ｍに「１」を設定する。変数ｎは、取得要求を受信した数をカウントするための変数であり、取得要求を受信するごとにその取得要求を識別するための要求番号（取得要求識別情報）に設定される。このため、要求番号は、取得要求が受信された順番を示す。変数ｍは、送信対象組の取得要求を特定するために用いられる。
【００８３】
次のステップＳ０２においては、プリントデータ受信処理を実行する。プリントデータ受信処理の詳細は後述するが、ＰＣ４００〜４０２のいずれかからプリントデータとユーザー識別情報とを受信し、スプールデータ２９１をＨＤＤ２０５に記憶する処理である。次のステップＳ０３においては、取得要求受信処理を実行する。取得要求受信処理の詳細は後述するが、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかから取得要求を受信する処理である。
【００８４】
図８は、プリントデータ受信処理の流れの一例を示す図である。図８を参照して、ＣＰＵ２０１は、プリントデータとユーザー識別情報とを受信したか否かを判断する（ステップＳ２１）。ネットワークＩ／Ｆ２０４がＰＣ４００〜４０２のいずれかからプリントデータとユーザー識別情報とを受信したか否かを判断する。プリントデータとユーザー識別情報とを受信したならば処理をステップＳ２２に進めるが、そうでなければ処理をプリントデータ送信処理に戻す。
【００８５】
ステップＳ２２においては、プリントデータとユーザー識別情報とを含むプルプリントデータをＨＤＤ２０５に記憶し、処理をステップＳ２３に進める。ステップＳ２３においては、受信時間をプリントデータと関連付けて記憶し、処理をプリントデータ送信処理に戻す。受信時間は、プリントデータの受信を開始してから終了するまでの時間である。
【００８６】
図９は、取得要求受信処理の流れの一例を示すフローチャートである。図９を参照して、ＣＰＵ２０１は、取得要求を受信したか否かを判断する。（ステップＳ３１）。ネットワークＩ／Ｆ２０４がＭＦＰ１００，１００Ａ，１００Ｂのいずれかから取得要求を受信したか否かを判断する。取得要求を受信したならば処理をステップＳ３２に進めるが、そうでなければ処理をプリントデータ送信処理に戻す。
【００８７】
ステップＳ３２においては、送信中データを送信中か否かを判断する。送信中データは、図７のステップＳ０６において実行される送信中データ決定処理によって決定され、ネットワークＩ／Ｆ２０４からＭＦＰ１００，１００Ａ，１００Ｂのいずれかに送信されるプリントデータである。送信中データを送信中ならば処理をステップＳ３３に進めるが、そうでなければ処理をステップＳ３４に進める。ステップＳ３３においては、変数ｎに１を加算し、処理をステップＳ３５に進める。一方、ステップＳ３４においては、変数ｎに「１」を設定し、処理をステップＳ３５に進める。ステップＳ３１において取得要求を受信した時点で、送信中データを送信中でない場合は、受信された取得要求を１番目に受信された取得要求とし、ステップＳ３１において取得要求を受信した時点で、送信中データを送信中の場合は、受信された取得要求を、それより前に受信された取得要求の次に受信された取得要求とするためである。
【００８８】
ステップＳ３５においては、要求番号Ｒに変数ｎの値を設定する。要求番号は、ステップＳ３１において受信された取得要求を識別するための取得要求識別情報である。
【００８９】
次のステップＳ３６においては、取得要求数Ｒｍａｘに変数ｎの値を設定する。取得要求数Ｒｍａｘは、受信された取得要求の数を示す。
【００９０】
ステップＳ３７においては、ステップＳ３１において受信された取得要求に含まれるユーザー識別情報と関連付けられたプリントデータを抽出する。具体的には、ＨＤＤ２０５に記憶されているスプールデータ２９１であって、ステップＳ３１において受信された取得要求に含まれるユーザー識別情報を含むスプールデータ２９１を抽出する。スプールデータ２９１は、ユーザー識別情報とプリントデータとを含む。
【００９１】
次のステップＳ３８においては、配列であるデータ数ＤＮ（Ｒ）に、ステップＳ３７において抽出されたプリントデータの数を設定する。データ数ＤＮ（Ｒ）は、要求番号Ｒの取得要求に対して抽出されたプリントデータの数を示す。
【００９２】
ステップＳ３９においては、タイマーＴ（Ｒ）をスタートさせる。タイマーＴ（Ｒ）は、要求番号Ｒの取得要求に対応する。したがって、ステップＳ３９においてスタートするタイマーＴ（Ｒ）は、要求番号Ｒの取得要求が受信されてからの経過時間を計時する。ステップＳ４０においては、ステップＳ３７において抽出された１以上のプリントデータのうちから１つのプリントデータを送信対象に選択する。１以上のプリントデータのうちから、受信された時刻が最も早いものを選択する。なお、選択する条件を限定するものではなく、これとは別の条件を用いて選択するようにしてもよい。
【００９３】
次のステップＳ４１においては、配列である待機データＷＤ（Ｒ）にステップＳ４０において選択されたプリントデータを識別するためのプリントデータ識別情報を設定する。待機データＷＤ（Ｒ）は、要求番号Ｒの取得要求において送信対象に選択された１つのプリントデータを示す。
【００９４】
ステップＳ４２においては、限界時間ＬＴ（Ｒ）にデフォルト値を設定し、処理をプリントデータ送信処理に戻す。限界時間ＬＴ（Ｒ）は、待機データＷＤ（Ｒ）で特定されるプリントデータの送信を保留することができる最大の時間を示す。限界時間ＬＴ（Ｒ）に設定されるデフォルト値は、プリントデータ送信プログラムによって、予め定められた値であってもよいし、ユーザーにより設定される値であってもよい。
【００９５】
次のステップＳ４３においては、プリント時間ＰＴ（Ｒ）を予測し、処理をプリントデータ送信処理に戻す。プリント時間ＰＴ（Ｒ）は、待機データＷＤ（Ｒ）で特定されるプリントデータを取得要求を送信してきた装置でプリントする時間である。まず、ＭＦＰ１００，１００Ａ，１００ＢのうちからステップＳ３１において受信された取得要求を送信してきた装置を特定する。例えば、ＭＦＰ１００から取得要求を受信した場合を例に説明する。ＭＦＰ１００から取得要求を受信する場合、ＭＦＰ１００の能力情報を取得し、能力情報に基づいてプリント時間ＰＴ（Ｒ）を算出する。ＭＦＰ１００の能力情報は、例えば、用紙１枚をプリントする時間である。ＭＦＰ１００の能力情報と、待機データＷＤ（Ｒ）で特定されるプリントデータのプリント枚数と、に基づいて、プリント時間を算出する。
【００９６】
以下、要求番号Ｒの取得要求に基づいて、スプールデータ２９１のうちから選択された１以上のプリントデータを、要求番号Ｒの取得要求に対応する１以上のプリントデータという。また、要求番号Ｒの取得要求に対応する１以上のプリントデータのうち、未だ送信されていないものを未送信データといい、未送信データのうち最初に送信する送信対象に選択されたものを待機データという。さらに、送信中のプリントデータを送信中データという。
【００９７】
図７に戻って、ステップＳ０４においては、送信中データが決定されているか否かを判断する。送信中データは、ステップＳ０７において決定される。ステップＳ０７において、送信中データが決定されていれば処理をステップＳ０５に進めるが、そうでなければ処理をステップＳ０９に進める。ステップＳ０５においては、送信中データの送信は完了しているか否かを判断する。ネットワークＩ／Ｆ２０４による送信中データの送信が完了していれば処理をステップＳ０６に進めるが、そうでなければ処理をステップＳ０２に戻す。
【００９８】
次のステップＳ０６においては、タイマーＴ（ｍ）をスタートさせ、処理をステップＳ０７に進める。タイマーＴ（ｍ）は、要求番号がｍの取得要求に対応する。したがって、ステップＳ０６においてスタートするタイマーＴ（ｍ）は、要求番号ｍの取得要求に対応する送信中データの送信が開始されてからの経過時間を計時する。
【００９９】
ステップＳ０７においては、送信中データ決定処理を実行し、処理をステップＳ０８に進める。送信中データ決定処理の詳細は後述するが、待機データＤＷ（ｉ）のうちから１つを送信中データとして選択する処理である。ステップＳ０８においては、ステップＳ０７において実行された送信中データ決定処理により、送信中データが決定されたか否かを判断する。送信中データが決定されたならば処理をステップＳ１０に進めるが、そうでなければ処理をステップＳ０１に戻す。送信中データ決定処理が実行される段階において、待機データＤＷ（ｉ）が１つも存在しない場合があり、その場合には送信中データは決定されないからである。
【０１００】
一方、ステップＳ０９においては、待機データＷＤ（１）を送信中データに設定し、処理をステップＳ１０に進める。待機データＷＤ（１）は、要求番号が「１」の取得要求に対応する１以上のプリントデータのうちから最初に送信対象として選択されたプリントデータである。
【０１０１】
ステップＳ１０においては、送信中データの送信を開始する。具体的には、ネットワークＩ／Ｆ２０４を介して送信中データを送信する。送信先は、ＭＦＰ１００，１００Ａ，１００Ｂのうち送信中データ（プリントデータ）に対応する取得要求を送信してきた装置である。送信先は、処理がステップＳ０９から進む場合は、ＭＦＰ１００，１００Ａ，１００Ｂのうち、要求番号が「１」の取得要求を送信してきた装置であり、処理がステップＳ０８から進む場合には、ＭＦＰ１００，１００Ａ，１００Ｂのうち要求番号がｍの取得要求を送信してきた装置である。
【０１０２】
次のステップＳ１１においては、待機データ選択処理を実行する。待機データ選択処理の詳細は後述するが、要求番号ｍの取得要求に対応する新たな待機データＷＤ（ｍ）を設定する処理である。変数ｍが「１」の場合には、ステップＳ０８において、要求番号「１」の取得要求に対応する待機データＷＤ（１）が送信中データに決定され、変数ｍが「１」でない場合には、ステップＳ０７において、要求番号ｍの取得要求に対応する待機データＷＤ（ｍ）が送信中データに決定されるからである。
【０１０３】
ステップＳ１２においては、待機データが存在するか否かを判断する。待機データは、ステップＳ０３において実行される取得要求受信処理において、図９に示したステップＳ４１において待機データＷＤ（ｉ）（ｉは、１以上Ｒｍａｘ以下の整数）に設定されたプリントデータである。要求番号が１〜Ｒｍａｘの取得要求にそれぞれ対応する待機データＷＤ（ｉ）が１つでも存在すれば待機データが存在すると判断するが、１つも存在しなければ待機データが存在しないと判断する。待機データが存在すれば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ０１に戻す。待機データが存在しない場合、送信が保留されているプリントデータが存在しないからである。
【０１０４】
ステップＳ１３においては、強制送信処理を実行し、処理をステップＳ１１に戻す。強制送信処理の詳細は、後述する。
【０１０５】
図１０は、送信中データ決定処理の流れの一例を示すフローチャートである。送信中データ決定処理は、図７のステップＳ０７において実行される処理であり、ステップＳ０５において、要求番号ｍの取得要求に対応する送信中データの送信が完了したと判断された後に実行される。
【０１０６】
図１０を参照して、ＣＰＵ２０１は、定数ＳＥＴＮＯに変数ｍの値を設定する（ステップＳ５１）。定数ＳＥＴＮＯは、送信中データ決定処理が実行される時点において、換言すれば、要求番号ｍの取得要求に対応する送信中データの送信が完了した時点において、送信が完了した送信中データに対応する取得要求の要求番号を示す。次のステップＳ５２においては、変数ｍを１を加算した値に変更する。そして、変数ｍが定数ＳＥＴＮＯと同じが否かを判断する（ステップＳ５３）。変数ｍが定数ＳＥＴＮＯと同じならば処理をステップＳ５４に進めるが、そうでなければ処理をステップＳ５５に進める。
【０１０７】
ステップＳ５５においては、変数ｍが取得要求数Ｒｍａｘより大きいか否かを判断する。変数ｍが取得要求数Ｒｍａｘより大きいならば処理をステップＳ５６に進め、そうでなければステップＳ５６をスキップして処理をステップＳ５７に進める。ステップＳ５６においては、変数ｍに「１」を設定し、処理をステップＳ５７に進める。
【０１０８】
ステップＳ５７においては、待機データＷＤ（ｍ）が存在するか否かを判断する。待機データＷＤ（ｍ）が存在するならば処理をステップＳ５９に進めるが、そうでなければ処理をステップＳ５２に戻す。ステップＳ５９においては、要求番号ｍの取得要求に対応する待機データＷＤ（ｍ）を送信中データに設定し、処理をプリントデータ送信処理に戻す。
【０１０９】
処理がステップＳ５４に進むのは、要求番号１〜Ｒｍａｘのすべての取得要求に対応する待機データＷＤ（ｉ）（１≦ｉ≦Ｒｍａｘ）が存在しない場合である。ステップＳ５４においては、送信中データに設定するべき待機データＷＤ（ｉ）が存在しないので、送信中データ無しに設定し、処理をプリントデータ送信処理に戻す。
【０１１０】
図１１は、待機データ選択処理の流れの一例を示すフローチャートである。待機データ選択処理は、図７のステップＳ１１において実行される処理である。図１１を参照して、ＣＰＵ２０１は、要求番号Ｒがｍの取得要求を処理対象に選択する（ステップＳ６１）。次のステップＳ６２においては、要求番号Ｒがｍの取得要求に対応する１以上のプリントデータのうちに未送信データが存在するか否かを判断する。未送信データが存在するならば処理をステップＳ６３に進めるが、存在しなければ処理をステップＳ６８に進める。ステップＳ６８においては、要求番号Ｒがｍの取得要求に対応する待機データＷＤ（ｍ）を無しに設定し、処理をプリントデータ送信処理に戻す。
【０１１１】
ステップＳ６３においては、要求番号Ｒがｍの取得要求に対応する１以上のプリントデータのうち１以上の未送信データのうちから１つを選択する。例えば、１以上の未送信データのうち、そのプリントデータが受信された日時が最も早いものを選択する。そして、選択された未送信データを要求番号Ｒがｍの取得要求に対応する待機データＷＤ（ｍ）に設定する（ステップＳ６４）。
【０１１２】
ステップＳ６５においては、送信時間ＳＴ（ｍ）を予測する。ここでは、待機データＷＤ（ｍ）に設定されたプリントデータを受信する際に計測された受信時間を送信時間ＳＴ（ｍ）に設定する。受信時間は、図８のステップＳ２３においてプリントデータに関連付けて記憶されている。
【０１１３】
次のステップＳ６６においては、限界時間ＬＴ（ｍ）を算出する。ステップＳ６７が実行される前の段階において、要求番号Ｒがｍの取得要求に対応するプリント時間ＰＴ（ｍ）が設定されている。具体的には、要求番号Ｒがｍの取得要求が受信された時点において実行される図９に示した取得要求受信処理のステップＳ４３において、優先順位が最も高いプリントデータのプリント時間ＰＴ（ｍ）が算出されている。また、優先順位が２番目以降のプリントデータのプリント時間ＰＴ（ｍ）は、ステップＳ６６が実行される前の段階において実行されたステップＳ６７において算出されている。ステップＳ６６が実行される前の段階において実行されたステップＳ６７において算出されるプリント時間ＰＴ（ｍ）は、ステップＳ６４において待機データＷＤ（ｍ）に設定されたプリントデータより１つ前に待機データＷＤに設定されたプリントデータのプリント時間ＰＴ（ｍ）である。このように算出済のプリント時間ＰＴ（ｍ）からステップＳ６５において予測された送信時間ＳＴ（ｍ）を減算した値を限界時間ＬＴ（ｍ）に設定する。
【０１１４】
次のステップＳ６７においては、新たなプリント時間ＰＴ（ｍ）を算出し、処理をプリントデータ送信処理に戻す。具体的には、ＭＦＰ１００，１００Ａ，１００Ｂのうち要求番号Ｒがｍの取得要求を送信してきた装置の能力情報を取得し、取得された能力情報と、待機データＷＤ（ｍ）に設定されたプリントデータと、に基づいてプリント時間ＰＴ（ｍ）を算出する。ここでは、能力情報を所定時間あたりにプリントする用紙の枚数としている。ＭＦＰ１００，１００Ａ，１００Ｂのうち要求番号Ｒがｍの取得要求を送信してきた装置の能力情報を、ステップＳ６５において待機データＷＤ（ｍ）に設定されたプリントデータの画像形成枚数で除算することによりプリント時間ＰＴ（ｍ）を算出する。
【０１１５】
図１２は、強制送信処理の流れの一例を示すフローチャートである。強制送信処理は、図７のステップＳ１３において実行される処理であり、強制送信処理が実行される前の段階で、要求番号１〜Ｒｍａｘの取得要求それぞれに対応するタイマーＴ（ｉ）（１≦ｉ≦Ｒｍａｘ）が計時されており（ステップＳ０６、またはステップＳ３９）、限界時間ＬＴ（ｉ）（１≦ｉ≦Ｒｍａｘ）が設定されている（ステップＳ４２、またはステップＳ６６）。
【０１１６】
図１２を参照して、ＣＰＵ２０１は、変数ｉに初期値「１」を設定する（ステップＳ７１）。変数ｉは、要求番号１〜Ｒｍａｘの取得要求のうち処理対象とする取得要求を定めるために用いる。
【０１１７】
次のステップＳ７２においては、待機データＷＤ（ｉ）が設定されているか否かを判断する。要求番号ｉの取得要求に対応する待機データＷＤ（ｉ）が設定されているならば処理をステップＳ７３に進めるが、そうでなければ処理をステップＳ７５に進める。
【０１１８】
ステップＳ７３においては、タイマーＴ（ｉ）が限界時間ＬＴ（ｉ）以上か否かを判断する。タイマーＴ（ｉ）が限界時間ＬＴ（ｉ）以上ならば処理をステップＳ７４に進めるが、そうでなければ処理をステップＳ７５に進める。ステップＳ７４においては、待機データＷＤ（ｉ）を送信する。ＭＦＰ１００，１００Ａ，１００Ｂのうち要求番号Ｒがｉの取得要求を送信してきた装置に待機データＷＤ（ｉ）を送信する。
【０１１９】
要求番号ｉの取得要求に対応するタイマーＴ（ｉ）は、待機データＷＤ（ｉ）が設定されてから送信されることなく経過する時間を示す。要求番号ｉの取得要求に対応する限界時間ＬＴ（ｉ）は、要求番号ｉの取得要求に対応する１以上のプリントデータのうち待機データＷＤ（ｉ）の１つ前に送信されたプリントデータがプリントされるプリント時間ＰＴ（ｉ）から待機データＷＤ（ｉ）を送信する送信時間ＳＴ（ｉ）を減算した値である。タイマーＴ（ｉ）が限界時間ＬＴ（ｉ）以上になると、待機データＷＤ（ｉ）を送信するようにしたので、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかにおいて、待機データＷＤ（ｉ）の１つ前に送信されたプリントデータのプリントが完了した後、直ちに待機データＷＤ（ｉ）のプリントデータをプリントさせることができる。このため、ユーザーの待ち時間ができるだけ発生しないようにすることができる。
【０１２０】
ステップＳ７５においては、変数ｉを１増加した値に設定し、処理をステップＳ７６に進める。ステップＳ７６においては、変数ｉが取得要求数Ｒｍａｘより大きいか否かを判断する。変数ｉが取得要求数Ｒｍａｘより大きいならば処理をプリントデータ送信処理に戻し、そうでなければ処理をステップＳ７２に戻す。
【０１２１】
図１３は、プリントサーバーとＭＦＰとの間でプリントデータを送受信するタイミングを説明するための第１のタイムチャートである。ここでは、プリントサーバー２００において、ＭＦＰ１００から取得要求Ａ、ＭＦＰ１００Ａから取得要求Ｂ、ＭＦＰ１００Ｂから取得要求Ｃが、取得要求Ａ，取得要求Ｂおよび取得要求Ｃの順に受信される場合を例に説明する。また、ＭＦＰ１００から受信される取得要求Ａに基づいて２つのプリントデータＡ１、Ａ２が抽出され、ＭＦＰ１００Ａから受信される取得要求Ｂに基づいて２つのプリントデータＢ１、Ｂ２が抽出され、ＭＦＰ１００Ｂから受信される取得要求Ｃに基づいて２つのプリントデータＣ１、Ｃ２が抽出される場合を例に説明する。
【０１２２】
図１３を参照して、プリントサーバー２００は、プリントデータＡ１，プリントデータＢ１、プリントデータＣ１、プリントデータＡ２，プリントデータＢ２、プリントデータＣ２の順に、それらを同時に２つを送信することなく順に送信する。このため、同時に２以上のプリントデータを送信しないので、ＣＰＵ２０１の負荷が増大するのを防止することができる。
【０１２３】
ＭＦＰ１００においては、時刻Ｔ１においてプリントデータＡ１の受信を開始し、プリントデータＡ１の受信が完了する時刻Ｔ２においてプリントデータＡ１のプリントを開始し、時刻Ｔ５において終了する。また、時刻Ｔ４においてプリントデータＡ２の受信を開始し、プリントデータＡ２の受信が完了する時刻Ｔ５においてプリントデータＡ２のプリントを開始する。プリントデータＡ１のプリントが終了する時刻Ｔ５において、プリントデータＡ２の受信が完了しているので、プリントデータＡ２を、プリントデータＡ１のプリントが完了した後に直ちにプリントすることができる。
【０１２４】
ＭＦＰ１００Ａにおいては、時刻Ｔ２においてプリントデータＢ１の受信を開始し、プリントデータＢ１の受信が完了する時刻Ｔ３においてプリントデータＢ１のプリントを開始し、時刻Ｔ６において終了する。また、時刻Ｔ５においてプリントデータＢ２の受信を開始し、プリントデータＢ２の受信が完了する時刻Ｔ６においてプリントデータＢ２のプリントを開始する。プリントデータＢ１のプリントが終了する時刻Ｔ６において、プリントデータＢ２の受信が完了しているので、プリントデータＢ２を、プリントデータＢ１のプリントが完了した後に直ちにプリントすることができる。
【０１２５】
ＭＦＰ１００Ｂにおいては、時刻Ｔ３においてプリントデータＣ１の受信を開始し、プリントデータＣ１の受信が完了する時刻Ｔ４においてプリントデータＣ１のプリントを開始し、時刻Ｔ７において終了する。また、時刻Ｔ６においてプリントデータＣ２の受信を開始し、プリントデータＣ２の受信が完了する時刻Ｔ７においてプリントデータＣ２のプリントを開始する。プリントデータＣ１のプリントが終了する時刻Ｔ７において、プリントデータＣ２の受信が完了しているので、プリントデータＣ２を、プリントデータＣ１のプリントが完了した後に直ちにプリントすることができる。
【０１２６】
図１４は、プリントサーバーとＭＦＰとの間でプリントデータを送受信するタイミングを説明するための第２のタイムチャートである。ここでは、プリントサーバー２００において、ＭＦＰ１００から取得要求Ａ、ＭＦＰ１００Ａから取得要求Ｂ、ＭＦＰ１００Ｂから取得要求Ｃ’が、取得要求Ａ，取得要求Ｂおよび取得要求Ｃ’の順に受信される場合を例に説明する。また、ＭＦＰ１００から受信される取得要求Ａに基づいて２つのプリントデータＡ１、Ａ２が抽出され、ＭＦＰ１００Ａから受信される取得要求Ｂに基づいて２つのプリントデータＢ１、Ｂ２が抽出され、ＭＦＰ１００Ｂから受信される取得要求Ｃ’に基づいて２つのプリントデータＣ１’、Ｃ２が抽出される場合を例に説明する。
【０１２７】
図１４を参照して、プリントサーバー２００は、プリントデータＡ１，プリントデータＢ１、プリントデータＣ１’の順に、それらを同時に２つを送信することなく順に送信する。
【０１２８】
ＭＦＰ１００においては、時刻Ｔ１においてプリントデータＡ１の受信を開始し、プリントデータＡ１の受信が完了する時刻Ｔ２においてプリントデータＡ１のプリントを開始し、時刻Ｔ５において終了する。
【０１２９】
ＭＦＰ１００Ａにおいては、時刻Ｔ２においてプリントデータＢ１の受信を開始し、プリントデータＢ１の受信が完了する時刻Ｔ３においてプリントデータＢ１のプリントを開始し、時刻Ｔ６において終了する。
【０１３０】
ＭＦＰ１００Ｂにおいては、時刻Ｔ３においてプリントデータＣ１’の受信を開始し、プリントデータＣ１’の受信が完了する時刻Ｔ５においてプリントデータＣ１’のプリントを開始し、時刻Ｔ８において終了する。
【０１３１】
ここで、プリントサーバー２００は、プリントデータＣ１’の次にプリントデータＡ２を送信するが、プリントデータＣ１’の送信中に、プリントデータＡ１の送信が完了してからの経過時間、換言すれば、プリントデータＡ２の待機時間がプリントデータＡ２に対する限界待機時間ＬＴ（１）となる。限界待機時間ＬＴ（１）は、プリントデータＡ１をプリントするためのプリント時間ＰＴ（１）からプリントデータＡ２を送信する送信時間ＳＴ（１）を減算した値である。このため、プリントサーバー２００は、プリントデータＣ１’を送信している場合であっても、時刻Ｔ４においてプリントデータＡ２をＭＦＰ１００に送信する。このため、ＭＦＰ１００においては、時刻Ｔ４においてプリントデータＡ２の受信を開始し、時刻Ｔ５までに受信することができ、時刻Ｔ５においてプリントデータＡ２のプリントを開始する。プリントデータＡ１のプリントが終了する時刻Ｔ５において、プリントデータＡ２の受信が完了しているので、プリントデータＡ２を、プリントデータＡ１のプリントが完了した後に直ちにプリントすることができる。
【０１３２】
さらに、プリントサーバー２００は、プリントデータＣ１’の送信が完了する時刻Ｔ５において、次にプリントデータＡ２を送信する予定であったが、既に送信が開始されているので、プリントデータＢ２の送信を開始する。そして、プリントサーバー２００は、プリントデータＢ２の送信が完了する時刻Ｔ６において、プリントデータＣ２の送信を開始する。
【０１３３】
このため、ＭＦＰ１００Ａにおいては、時刻Ｔ５においてプリントデータＢ２の受信を開始し、プリントデータＢ２の受信が完了する時刻Ｔ６においてプリントデータＢ２のプリントを開始する。プリントデータＢ１のプリントが終了する時刻Ｔ６において、プリントデータＢ２の受信が完了しているので、プリントデータＢ２を、プリントデータＢ１のプリントが完了した後に直ちにプリントすることができる。
【０１３４】
さらに、ＭＦＰ１００Ｂにおいては、時刻Ｔ６においてプリントデータＣ１’をプリント中であるが、プリントサーバー２００から送信されるプリントデータＣ２の受信を開始し、プリントデータＣ２の受信が完了する時刻Ｔ７において終了する。時刻Ｔ７においては、プリントデータＣ１’をプリント中なので、プリントデータＣ１’のプリントが終了する時刻Ｔ８において、プリントデータＣ２のプリントを開始する。プリントデータＣ１’のプリントが終了する時刻Ｔ８において、プリントデータＣ２の受信が完了しているので、プリントデータＣ２を、プリントデータＣ１’のプリントが完了した後に直ちにプリントすることができる。
【０１３５】
以上説明したように、本実施の形態におけるプリントシステム１において、プリントサーパー２００は、ＰＣ４００，４０１，４０２のいずれかからプリントデータを受信すると、プリントデータとユーザー識別情報とを一時記憶する。一方、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかから取得要求を受信することに応じて、取得要求に含まれるユーザー識別情報と関連付けられた１以上のプリントデータの組を抽出し、同時に２以上を送信することなく順に返信する。さらに、プリントデータを送信している最中に、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかから新たな取得要求が受信される場合、送信中のプリントデータと同じ組に含まれる１以上のプリントデータのうち未送信の１以上の未送信データを、送信中のプリントデータの送信が完了した後に送信するのを保留する。このため、新たな取得要求が受信される場合は、並列して送信するプリントデータの数を減少させて、プリントデータを送信することによるＣＰＵ２０１の負荷が高くなるのを回避することができる。
【０１３６】
また、送信中のプリントデータの送信が完了した後、送信中のプリントデータと同じ組に含まれる１以上の未送信データの送信を保留する間に、新たな組に含まれる１以上のプリントデータを新たな取得要求を送信してきたＭＦＰに送信することができる。このため、複数のＭＦＰ１００，１００Ａ，１００Ｂそれぞれにプリントデータを送信する場合に、プリントデータを送信することによる負荷が高くなることによりプリントデータの送信が遅延するのを回避することができる。
【０１３７】
また、プリントサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂの複数から複数の取得要求が受信される場合は、１以上のプリントデータの組を複数抽出するが、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択し、送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を保留する。このため、複数のＭＦＰ１００，１００Ａ，１００Ｂに、取得要求を送信してきた順に、プリントデータを送信するので、複数のＭＦＰ１００，１００Ａ，１００Ｂ間で、取得要求を送信してから最初のプリントデータを受信するまでの時間のバラツキを少なくすることができる。
【０１３８】
さらに、プリントサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂの複数から複数の取得要求が受信される場合は、１以上のプリントデータの組を複数抽出し、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択するが、複数の組のうち送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、送信対象組に含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。このため、複数のＭＦＰ１００，１００Ａ，１００Ｂに時分割でプリントデータを送信することができる。また、複数のＭＦＰ１００，１００Ａ，１００Ｂそれぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
【０１３９】
また、プリントサーバー２００は、プリントデータの送信を保留している時間が限界待機時間以上になる場合、送信を保留しているプリントデータを強制的に送信する。このため、複数のＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置のすべてにおいて、複数のプリントデータを連続して画像形成することができる。
【０１４０】
また、プリントサーバー２００は、複数のＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置のいずれかが画像を形成できない状態となった場合、画像を形成できない状態となった装置にはプリントデータを送信するのを保留し、送信しないので、複数のＭＦＰ１００，１００Ａ，１００Ｂのうち取得要求を送信してきた装置のうち画像を形成できる状態の装置に優先してプリントデータを送信することができる。
【０１４１】
＜第１の変形例＞
第１の変形例は、上述したプリントサーバー２００において、ＣＰＵ２０１に形成される機能である限界待機時間設定部２６３を変形したものである。図１５は、第１の変形例におけるプリントサーバーが備えるＣＰＵの機能の一例を示すブロック図である。図１５を参照して、図５に示したＣＰＵ２０１の機能と異なる点は、限界待機時間設定部２６３を限界待機時間設定部２６３Ａに変更した点である。その他の機能は図５に示した機能と同じなので、ここでは説明を繰り返さない。
【０１４２】
図１５を参照して、限界待機時間設定部２６３Ａは、送信時間算出部２８９と、送信時間決定部２８３Ａと、限界待機時間算出部２８５と、を含む。送信時間算出部２８９は、プリントデータ受信部２５１からプリントデータ識別情報が入力される。送信時間算出部２８９は、ネットワークＩ／Ｆ２０４がデータを送信するために予め定められた送信能力と、プリントデータ識別情報で特定されるプリントデータのデータとから送信時間を算出する。たとえば、送信能力を単位時間当たりに送信可能なデータ量とすれば、プリントデータのデータ量を送信能力で除算した値を、送信時間とする。送信時間算出部２８９は、プリントデータ識別情報と、算出された送信時間との組を送信時間決定部２８３Ａに出力する。
【０１４３】
送信時間決定部２８３Ａは、送信時間算出部２８９から入力される送信時間を、それと組になるプリントデータ識別情報で特定されるプリントデータの送信時間に決定し、送信時間とプリントデータ識別情報との組を限界待機時間算出部２８５に出力する。
【０１４４】
＜第２の変形例＞
上述した実施の形態において、プリントサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂのうちから定められた１つの装置に、プリントデータを送信するようにした。具体的には、プリントデータ送信部２５９が、原則として、ＭＦＰ１００，１００Ａ，１００Ｂのうちからタイミング制御部２６１により定められた１つの装置に、プリントデータを送信する。
【０１４５】
第２の変形例におけるプリントサーバー２００は、２以上の所定数を最大として、ＭＦＰ１００，１００Ａ，１００Ｂのうち、最大で所定数の装置にプリントデータを送信する処理を並列で実行するようにしたものである。所定数は、ＣＰＵ２０１の処理能力、ネットワークＩ／Ｆ２０４の送信速度等によって任意に定めることができる。この場合には、タイミング制御部２６１は、ＭＦＰ１００，１００Ａ，１００Ｂのうちから所定数の装置を選択する。このため、第２の変形例におけるＣＰＵ２０１において、プリントデータ送信部２５９は、ＭＦＰ１００，１００Ａ，１００Ｂのうちタイミング制御部２６１により選択された所定数の装置それぞれにプリントデータを送信する処理を並列で実行する。
【０１４６】
第２の変形例におけるプリントサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂの複数から複数の取得要求が受信される場合は、１以上のプリントデータの組を複数抽出し、抽出された複数の組のうちから対応する取得要求が受信された順に送信対象組を選択するが、複数の組のうち最大で所定数の送信対象組に選択されなかった組に含まれる１以上の未送信データの送信を、最大で所定数の送信対象組のいずれかに含まれる１以上の未送信データのうち１つの送信が完了するまで保留する。このため、複数のＭＦＰ１００，１００Ａ，１００Ｂのうち最大で所定数の装置に並列でプリントデータを送信することができる。ＭＦＰ１００，１００Ａ，１００Ｂのうちから並列でプリントデータを送信する装置の台数を所定数に制限するので、プリントデータを送信する場合のＣＰＵ２０１の負荷の上限を定めることができ、負荷が無制限に上昇するのを回避することができる。また、複数のＭＦＰ１００，１００Ａ，１００Ｂそれぞれにおいて、要求を送信してから最初のプリントデータを受信するまでの時間が遅延するのを回避することができる。
【０１４７】
なお、上述した実施の形態においては、プリントシステム１について説明したが、図７〜図１１に示したプリントデータ送信処理をプリントサーバー２００に実行させるプリントデータ送信方法、またはプリントデータ送信方法を、プリントサーバー２００を制御するＣＰＵ２０１に実行させるプログラムとして発明を捉えることができるのは言うまでもない。
【０１４８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１４９】
＜付記＞
（１）  前記限界待機時間設定手段は、前記複数の組それぞれに含まれる１以上のプリントデータごとに前記プリントデータ受信手段が当該プリントデータを受信する間の受信時間を取得する受信時間取得手段を、さらに含み、
前記送信時間決定手段は、前記プリントデータに対応して取得された受信時間を送信時間に決定する、請求項６に記載のプリントサーバー。
（２）  前記限界待機時間設定手段は、前記複数の組それぞれに含まれる１以上のプリントデータごとに、当該プリントデータのデータ量と、データ通信のための通信速度とに基づいて、前記送信時間を算出する送信時間算出手段を、さらに含む、請求項６に記載のプリントサーバー。
【符号の説明】
【０１５０】
１  プリントシステム、１００，１００Ａ，１００Ｂ  ＭＦＰ、２００  プリントサーバー、３００  認証サーバー、３  ネットワーク、５１  認証部、５３  取得部、５５  ジョブ管理部、５７  画像形成制御部、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、１２０  自動原稿搬送装置、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６１  表示部、１６３  操作部、１６５  タッチパネル、１６７  ハードキー部、２００  プリントサーバー、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ネットワークＩ／Ｆ、２０５  ＨＤＤ、２０６  表示部、２０７  操作部、２０８  バス、２０９  外部記憶装置、２５１  プリントデータ受信部、２５３  一時記憶部、２５５  取得要求受信部、２５７  抽出部、２５９  プリントデータ送信部、２６１  タイミング制御部、２６３，２６３Ａ  限界待機時間設定部、２６７  送信時間決定部、２６９  限界待機時間算出部、２７１  優先順位決定部、２７３  選択部、２７５  保留部、２７７  エラー時保留部、２８１  受信時間取得部、２８３，２８３Ａ  送信時間決定部、２８５  限界待機時間算出部、２８７  強制送信部、２８９  送信時間算出部、２９１  スプールデータ。
【図１】
2014016704.tif 000003
【図２】
2014016704.tif 000004
【図３】
2014016704.tif 000005
【図４】
2014016704.tif 000006
【図５】
2014016704.tif 000007
【図６】
2014016704.tif 000008
【図７】
2014016704.tif 000009
【図８】
2014016704.tif 000010
【図９】
2014016704.tif 000011
【図１０】
2014016704.tif 000012
【図１１】
2014016704.tif 000013
【図１２】
2014016704.tif 000014
【図１３】
2014016704.tif 000015
【図１４】
2014016704.tif 000016
【図１５】
2014016704.tif 000017