(57)【要約】【課題】未完了のジョブへの影響を抑えつつリソースが従来よりも効率的に用いられるように、ジョブの新たなスレッドの設定を行う。【解決手段】予測部２０３は、ジョブを受け付けるごとに、これを実行するのに掛かる第一の所要時間を推測する。計測部２０７は、ジョブを実行するごとに、開始時から終了時までの第二の所要時間を計測する。判別部２０５は、スレッドが設定されているが実行し終わっていない未完了ジョブを、スレッドが未設定である未設定ジョブを含む他のジョブと並行して実行した場合に掛かる第三の所要時間を、未完了ジョブの第一の所要時間と、未設定ジョブの第一の所要時間と、実行済のジョブの第一の所要時間および第二の所要時間と、に基づいて推測する。制御部２０６は、未完了ジョブの第三の所要時間と第一の所要時間との差が所定の時間未満である場合に、未設定ジョブのスレッドの設定を行う。【選択図】図３
2014170265.tif 000002
【特許請求の範囲】
【請求項１】
複数のジョブを、当該複数のジョブそれぞれのスレッドを切り換えながら実行するジョブ処理装置であって、
前記複数のジョブのそれぞれを受け付けるごとに、当該受け付けたジョブを実行するのに掛かる第一の所要時間を推測する推測手段と、
前記複数のジョブのそれぞれを実行するごとに、当該実行したジョブの開始の時から終了の時までの時間である第二の所要時間を計測する計測手段と、
前記複数のジョブのうちのスレッドの設定がなされているが未だ実行し終わっていない未完了ジョブを、スレッドの設定が未だなされていない未設定ジョブを含む他のジョブと並行して実行した場合に掛かる第三の所要時間を、当該未完了ジョブの前記第一の所要時間と、当該未設定ジョブの前記第一の所要時間と、前記複数のジョブのうちの既に実行し終わった実行済ジョブの前記第一の所要時間および前記第二の所要時間と、に基づいて推測する、再推測手段と、
前記未完了ジョブの前記第三の所要時間と前記第一の所要時間との差が所定の時間未満である場合に、前記未設定ジョブのスレッドの設定を行う、スレッド制御手段と、
を有することを特徴とするジョブ処理装置。
【請求項２】
前記再推測手段は、前記未完了ジョブの前記第三の所要時間を、前記未設定ジョブの前記第一の所要時間の長さに応じた係数と前記実行済ジョブの前記第一の所要時間に対する前記第二の所要時間の比率とを当該未完了ジョブの前記第一の所要時間に乗算することによって推測する、
請求項１に記載のジョブ処理装置。
【請求項３】
前記推測手段は、前記受け付けたジョブの前記第一の所要時間を、当該ジョブのスレッドの個数に基づいて推測する、
請求項１または請求項２に記載のジョブ処理装置。
【請求項４】
前記推測手段は、前記受け付けたジョブの前記第一の所要時間を、前記実行済ジョブの前記第二の所要時間に基づいて推測する、
請求項１または請求項２に記載のジョブ処理装置。
【請求項５】
前記推測手段は、前記受け付けたジョブの前記第一の所要時間を、当該ジョブの内容に基づいて推測する、
請求項１または請求項２に記載のジョブ処理装置。
【請求項６】
前記差が所定の時間を超える場合に、前記未設定ジョブを未だ開始することができない旨のメッセージを通知する、通知手段、を有する、
請求項１ないし請求項５のいずれかに記載のジョブ処理装置。
【請求項７】
前記再推測手段は、前記差が所定の時間未満である場合に、他のジョブの全部または一部のスレッドが終了したら、前記第三の所要時間を推測し直し、
前記スレッド制御手段は、算出し直された前記第三の所要時間と、前記第一の所要時間との差が、前記所定の時間未満である場合にも、前記未設定ジョブのスレッドの設定を行う、
請求項１ないし請求項６のいずれかに記載のジョブ処理装置。
【請求項８】
前記複数のジョブそれぞれは、画像を印刷するプリントジョブである、
請求項１ないし請求項７のいずれかに記載のジョブ処理装置。
【請求項９】
前記複数のジョブそれぞれは、画像を印刷するためのデータを印刷装置へ付与する印刷データ付与ジョブである、
請求項１ないし請求項７のいずれかに記載のジョブ処理装置。
【請求項１０】
複数のジョブを、当該複数のジョブそれぞれのスレッドを切り換えながらジョブ処理装置に実行させるジョブ制御方法であって、
前記ジョブ処理装置に
前記複数のジョブのそれぞれを受け付けるごとに、当該受け付けたジョブを実行するのに掛かる第一の所要時間を推測させ、
前記複数のジョブのそれぞれを実行するごとに、当該実行したジョブの開始の時から終了の時までの時間である第二の所要時間を計測させ、
前記複数のジョブのうちのスレッドの設定がなされているが未だ実行し終わっていない未完了ジョブを、スレッドの設定が未だなされていない未設定ジョブを含む他のジョブと並行して実行した場合に掛かる第三の所要時間を、当該未完了ジョブの前記第一の所要時間と、当該未設定ジョブの前記第一の所要時間と、前記複数のジョブのうちの既に実行し終わった実行済ジョブの前記第一の所要時間および前記第二の所要時間と、に基づいて推測させ、
前記未完了ジョブの前記第三の所要時間と前記第一の所要時間との差が所定の時間未満である場合に、前記未設定ジョブのスレッドの設定を行わせる、
ことを特徴とするジョブ制御方法。
【請求項１１】
複数のジョブを、当該複数のジョブそれぞれのスレッドを切り換えながら実行するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに
前記複数のジョブのそれぞれを受け付けるごとに、当該受け付けたジョブを実行するのに掛かる第一の所要時間を推測させ、
前記複数のジョブのそれぞれを実行するごとに、当該実行したジョブの開始の時から終了の時までの時間である第二の所要時間を計測させ、
前記複数のジョブのうちのスレッドの設定がなされているが未だ実行し終わっていない未完了ジョブを、スレッドの設定が未だなされていない未設定ジョブを含む他のジョブと並行して実行した場合に掛かる第三の所要時間を、当該未完了ジョブの前記第一の所要時間と、当該未設定ジョブの前記第一の所要時間と、前記複数のジョブのうちの既に実行し終わった実行済ジョブの前記第一の所要時間および前記第二の所要時間と、に基づいて推測させ、
前記未完了ジョブの前記第三の所要時間と前記第一の所要時間との差が所定の時間未満である場合に、前記未設定ジョブのスレッドの設定を行わせる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆるマルチスレッドで複数のジョブを並行して処理する装置および方法などに関する。
【背景技術】
【０００２】
近年、コピー、スキャン、およびファックスなどの機能が備わった画像形成装置が普及している。このような画像形成装置は、一般に、「複合機」または「ＭＦＰ（Multi Function Peripherals）」などと呼ばれる。
【０００３】
また、複数台の画像形成装置を有するネットワークにおいて、用紙に画像を印刷するジョブ（以下、「プリントジョブ」と記載する。）を一元的に管理しいずれかの画像形成装置へ振り分けるプリントサーバが用いられることも、ある。
【０００４】
画像形成装置およびプリントサーバのＣＰＵの性能は向上しているが、プリントジョブの処理の仕方を工夫しプリントジョブのスループットを改善することによって、全体の処理時間を短縮することができる。特許文献１に記載される方法によると、印刷データの処理モード毎に複数の処理スレッドを立ち上げ、これら複数の処理スレッドを並行して２つのＰＤＬプロセッサで処理して印刷データファイルを生成し、印刷データファイルができ次第、その印刷データファイルに含まれている印刷データをプリンタに出力する。
【０００５】
特許文献２に記載される方法は、クライアント装置と選択された画像形成装置との間で、並列関係にあるＮ個の異なる複数の画像形成ジョブを監視およびパイプラインする方法である。各ジョブは、Ｎ個の連続的な処理状態により特徴付けることができる。画像形成装置は、Ｎ個の異なる状態のうちの互いに異なるジョブを同時に実施することができる。この方法は、メインスレッドを作る工程と、異なるジョブに関連する合計Ｎ個までの子スレッドを起動することができる工程と、起動された子スレッドを利用して、合計Ｎ個までの複数のジョブを並行して処理する工程とを含み、各子スレッドは、ある任意の時点で、関連するジョブの異なるＮ個の処理状態とそれぞれ関連している。
【０００６】
特許文献３に記載される方法によると、スレッドとして実行されるアプリケーションがメモリ上に確保しているデータの管理を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−７９８５４号公報
【特許文献２】特開２００６−６７５８７号公報
【特許文献３】特開２００５−２６９４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、プリントサーバが画像形成装置へプリントジョブを割り振るシステムにおいては、画像形成装置からのプリントジョブの要求が同時期にプリントサーバへ集中することがある。
【０００９】
複数のスレッドを並行して実行する場合は、スレッドの数が多くなると、実行中のプリントジョブの完了が全体的に遅くなる。よって、各プリントジョブを要求した各ユーザを待たせてしまう。そこで、スレッドの数を制限することが考えられるが、個数を一律に制限すると、装置のリソースを十分効率的に活用することができない。
【００１０】
本発明は、このような問題点に鑑み、実行を完了していない先のジョブへの影響を抑えつつ装置のリソースが従来よりも効率的に用いられるように、後のジョブのスレッドを設定することを、目的とする。
【課題を解決するための手段】
【００１１】
本発明の一形態に係るジョブ処理装置は、複数のジョブを、当該複数のジョブそれぞれのスレッドを切り換えながら実行するジョブ処理装置であって、前記複数のジョブのそれぞれを受け付けるごとに、当該受け付けたジョブを実行するのに掛かる第一の所要時間を推測する推測手段と、前記複数のジョブのそれぞれを実行するごとに、当該実行したジョブの開始の時から終了の時までの時間である第二の所要時間を計測する計測手段と、前記複数のジョブのうちのスレッドの設定がなされているが未だ実行し終わっていない未完了ジョブを、スレッドの設定が未だなされていない未設定ジョブを含む他のジョブと並行して実行した場合に掛かる第三の所要時間を、当該未完了ジョブの前記第一の所要時間と、当該未設定ジョブの前記第一の所要時間と、前記複数のジョブのうちの既に実行し終わった実行済ジョブの前記第一の所要時間および前記第二の所要時間と、に基づいて推測する、再推測手段と、前記未完了ジョブの前記第三の所要時間と前記第一の所要時間との差が所定の時間未満である場合に、前記未設定ジョブのスレッドの設定を行う、スレッド制御手段と、を有する。
【００１２】
好ましくは、前記再推測手段は、前記未完了ジョブの前記第三の所要時間を、前記未設定ジョブの前記第一の所要時間の長さに応じた係数と前記実行済ジョブの前記第一の所要時間に対する前記第二の所要時間の比率とを当該未完了ジョブの前記第一の所要時間に乗算することによって推測する。
【００１３】
さらに好ましくは、前記推測手段は、前記受け付けたジョブの前記第一の所要時間を、当該ジョブのスレッドの個数に基づいて推測する。または、前記受け付けたジョブの前記第一の所要時間を、前記実行済ジョブの前記第二の所要時間に基づいて推測してもよい。または、前記受け付けたジョブの前記第一の所要時間を、当該ジョブの内容に基づいて推測してもよい。
【００１４】
または、前記差が所定の時間を超える場合に、前記未設定ジョブを未だ開始することができない旨のメッセージを通知する、通知手段、を有する。
【００１５】
または、前記再推測手段は、前記差が所定の時間未満である場合に、他のジョブの全部または一部のスレッドが終了したら、前記第三の所要時間を推測し直し、前記スレッド制御手段は、算出し直された前記第三の所要時間と、前記第一の所要時間との差が、前記所定の時間未満である場合にも、前記未設定ジョブのスレッドの設定を行う。
【００１６】
または、前記複数のジョブそれぞれは、画像を印刷するプリントジョブである。または、画像を印刷するためのデータを印刷装置へ付与する印刷データ付与ジョブである。
【発明の効果】
【００１７】
本発明によると、実行を完了していない先のジョブへの影響を抑えつつ装置のリソースが従来よりも効率的に用いられるように、後のジョブのスレッドを設定することができる。
【図面の簡単な説明】
【００１８】
【図１】イントラネットの全体的な構成の例を示す図である。
【図２】画像形成装置のハードウェア構成の例を示す図である。
【図３】画像形成装置およびプリントサーバそれぞれの機能的構成の例を示す図である。
【図４】プリントサーバのハードウェア構成の例を示す図である。
【図５】メッセージ画面の例を示す図である。
【図６】プリントジョブごとの所要時間および実処理時間の関係の例を示す図である。
【図７】スレッド設定可否判別処理の流れの例を説明するフローチャートである。
【図８】補正所要時間、所要時間、および差分の関係の例を示す図である。
【図９】プリントサーバの全体的な処理の流れの例を説明するフローチャートである。
【図１０】プリントジョブ振分処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
図１は、イントラネット５の全体的な構成の例を示す図である。図２は、画像形成装置１のハードウェア構成の例を示す図である。図３は、画像形成装置１およびプリントサーバ２それぞれの機能的構成の例を示す図である。図４は、プリントサーバ２のハードウェア構成の例を示す図である。図５は、メッセージ画面ＷＮ１の例を示す図である。
【００２０】
図１に示すように、イントラネット５は、複数台の画像形成装置１、プリントサーバ２、複数台の端末装置３、および通信回線４などによって構成される。各画像形成装置１、プリントサーバ２、および各端末装置３は、通信回線４を介して通信を行うことができる。通信回線４として、公衆回線、専用線、インターネット、またはいわゆるＬＡＮ（Local Area Network）回線などが用いられる。
【００２１】
イントラネット５は、役所、企業、または学校などの組織の施設に設けられ、組織のメンバによって使用される。したがって、組織のメンバがユーザである。各ユーザには、ユニークな識別子（以下、「ユーザ識別子」と記載する。）が与えられている。
【００２２】
画像処理装置１は、一般に複合機またはＭＦＰ（Multi Function Peripherals）などと呼ばれる装置であって、コピー、ネットワークプリンティング、スキャン、およびファックスなどの機能を集約した装置である。
【００２３】
「ネットワークプリンティング機能」は、端末装置３から送信された画像データを受信し、この画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリント」または「ＰＣプリント」と呼ばれることもある。
【００２４】
画像形成装置１には、さらに、プルプリント機能が備わっている。「プルプリント機能は」、端末装置３から送信されたプリントデータを直ちに受信するのではなく、プリントサーバ２に蓄積し、その後、ユーザが所定の操作を行ったらプリントサーバ２からプリントデータをダウンロードして画像を印刷する、という機能である。
【００２５】
以下、各画像形成装置１を「画像形成装置１Ａ」、「画像形成装置１Ｂ」、…と区別して記載することがある。また、すべての画像形成装置１が同一のスペックを有する場合を例に説明する。
【００２６】
プリントサーバ２は、端末装置３からプリントデータを受信し、一元的に管理する。その後、ユーザが任意の画像形成装置１のところへ行き所定の操作を行ったら、プリントサーバ２は、その画像形成装置１へ、そのユーザのプリントデータを送信する。
【００２７】
端末装置３は、画像形成装置１およびプリントサーバ２が提供する、印刷に関連するサービスを、ユーザが受けるためのクライアントである。端末装置３として、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、またはスマートフォンなどが用いられる。
【００２８】
画像処理装置１は、図２に示すように、ＣＰＵ（Central Processing Unit）１０ａ、ＲＡＭ（Random Access Memory）１０ｂ、ＲＯＭ（Read Only Memory）１０ｃ、大容量記憶装置１０ｄ、ＮＩＣ（Network Interface Card）１０ｅ、モデム１０ｆ、操作パネル１０ｇ、タッチパネルディスプレイ１０ｈ、スキャンユニット１０ｉ、プリントユニット１０ｊなどによって構成される。
【００２９】
ＮＩＣ１０ｅは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルによってプリントサーバ２または端末装置３と通信を行うための装置である。
【００３０】
モデム１０ｆは、Ｇ３などのプロトコルでファックス端末と画像データをやり取りするための装置である。
【００３１】
操作パネル１０ｇは、テンキー、スタートキー、およびストップキーなど、操作用のキーによって構成される。
【００３２】
タッチパネルディスプレイ１０ｈは、ユーザに対するメッセージを与えるための画面、処理の結果を示す画面、またはユーザが画像処理装置１に対して指示を入力するための画面などを表示する。また、タッチパネルディスプレイ１０ｈは、タッチされた位置を検知し、ＣＰＵ１０ａへその位置を通知する。
【００３３】
ユーザは、操作パネル１０ｇまたはタッチパネルディスプレイ１０ｈを操作することによって、画像処理装置１に対してコマンドを与えたりデータを入力したりすることができる。
【００３４】
スキャンユニット１０ｉは、用紙に記されている文書、写真、絵、図表などの画像を読み取って画像データを生成する。
【００３５】
プリントユニット１０ｊは、スキャンユニット１０ｉによって読み取られた画像のほか、端末装置２またはファックス端末から送信されてきた画像データに示される画像を用紙に印刷する。
【００３６】
ＲＯＭ１０ｃまたは大容量記憶装置１０ｄには、上述の機能を実現するためのオペレーティングシステム、ミドルウェア、およびアプリケーションなどのソフトウェアが記憶されている。特に、プルプリント機能のためのソフトウェアとして、図３に示すプリントジョブ取得部１０１、プリントジョブ実行制御部１０２、プリントジョブ完了通知部１０３、およびメッセージ表示制御部１０４などを実現するためのソフトウェアが記憶されている。
【００３７】
これらのソフトウェアを構成するモジュールは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。
【００３８】
大容量記憶装置１０ｄとして、ハードディスクまたはＳＳＤ（Solid State Drive）などが用いられる。
【００３９】
プリントサーバ２は、図４に示すようにＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、大容量記憶装置２０ｄ、およびＮＩＣ２０ｅなどによって構成される。
【００４０】
ＮＩＣ２０ｅは、ＴＣＰ／ＩＰなどのプロトコルによって画像形成装置１または端末装置３と通信を行うための装置である。
【００４１】
ＲＯＭ２０ｃまたは大容量記憶装置２０ｄには、オペレーティングシステムのほか種々のソフトウェアが記憶されている。特に、プルプリント機能のためのソフトウェアとして、図４に示すプリントジョブ受付部２０１、ジョブ関連データ記憶部２０２、処理時間予測部２０３、プリントジョブ要求受付部２０４、ジョブ付与可否判別部２０５、スレッド制御部２０６、ジョブ実行時間計測部２０７、プリントジョブ送信部２０８、メッセージ送信部２０９、および計時データ記憶部２１０などを実現するためのソフトウェアが記憶されている。これらの機能の一部または全部をオペレーティングシステムによって実現してもよい。
【００４２】
これらのソフトウェアを構成するモジュールは、必要に応じてＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。大容量記憶装置２０ｄとして、ハードディスクまたはＳＳＤなどが用いられる。
【００４３】
プリントサーバ２は、ジョブを１つまたは複数のスレッドの単位で実行する。また、マルチスレッドに対応しており、複数のスレッドを切り換えながら複数のジョブを並列に実行することができる。
【００４４】
次に、図３に示す画像形成装置１およびプリントサーバ２の各部の処理のほか、プルプリント機能によるプリントジョブをユーザが実行させる際の操作を、順次説明する。
【００４５】
ユーザは、端末装置３を使用して原稿のデータを用意する。例えば、ワープロソフトまたは描画ソフトなどのアプリケーションで原稿を作成する。または、インターネット上のサーバなどから原稿のデータをダウンロードする。そして、プリントジョブのコマンドを端末装置３に入力する。この際に、出力先としてプリントサーバ２を指定する。
【００４６】
すると、端末装置３は、原稿のデータを、このユーザのユーザ識別子と対応付けてプリントデータ６０としてプリントサーバ２へ送信する。
【００４７】
プリントサーバ２において、プリントジョブ受付部２０１は、端末装置３からのプリントデータ６０がＮＩＣ２０ｅによって受信されると、このプリントデータ６０をジョブ関連データ記憶部２０２に記憶させることによって、プリントジョブを受け付ける。この際にプリントデータ６０に、ユーザ識別子だけでなく、このプリントジョブの識別子（以下、「ジョブ識別子」と記載する。）をも対応付けておく。
【００４８】
処理時間予測部２０３は、プリントジョブ受付部２０１によってプリントジョブが受け付けられると、このプリントジョブを画像形成装置１から要求されてから実行し終えるまでに要する時間（以下、「所要時間ＴＰ」と記載する。）を予測（推測）する。所要時間ＴＰには、前処理時間Ｔ１、ジョブ通信時間Ｔ２、ジョブ実行時間Ｔ３、完了通知時間Ｔ４、および後処理時間Ｔ５が含まれる。
【００４９】
前処理時間Ｔ１は、画像形成装置１へプリントジョブのデータを与えるための準備の処理に掛かる時間である。準備の処理として、ユーザのプリントデータ６０をジョブ関連データ記憶部２０２から読み出す処理が挙げられる。このプリントデータ６０が、画像形成装置１に応じたページ記述言語に未だ変換されていない場合は、このプリントデータ６０をこのページ記述言語に変換する処理も、含まれる。
【００５０】
ジョブ通信時間Ｔ２は、ジョブ関連データ記憶部２０２から読み出されて必要に応じてページ記述言語に変換されたプリントデータ６０を画像形成装置１へ送信するのに掛かる時間である。
【００５１】
ジョブ実行時間Ｔ３は、画像形成装置１がこのプリントデータ６０を受信してから画像を印刷するまでに掛かる時間である。
【００５２】
完了通知時間Ｔ４は、画像形成装置１が画像を印刷してからプリントジョブが成功した旨の通知をプリントサーバ２へ届けるまでに掛かる時間である。
【００５３】
後処理時間Ｔ５は、プリントジョブの後処理に掛かる時間である。後処理として、完了したプリントジョブのデータ（プリントデータ６０および後述する所要時間データ６２）をジョブ関連データ記憶部２０２から削除する処理のほか、後述する実処理時間ＴＪを算出し記録する処理が含まれる。
【００５４】
前処理時間Ｔ１、ジョブ通信時間Ｔ２、およびジョブ実行時間Ｔ３は、一般に、プリントジョブごとに、印刷する画像の属性（カラー／モノクロ、ページ数など）および部数などに応じて決まる。そこで、処理時間予測部２０３は、これらの時間をプリントジョブの属性の内容に基づいて公知の方法によって算出すればよい。または、必要なスレッドの個数に応じて算出してもよい。例えば、所定の時間に必要なスレッドの個数を乗算することによって算出すればよい。または、対象のプリントジョブに類似する、既に実行し終わった他のプリントジョブに実際に掛かった時間（後述する実処理時間ＴＪ）を、所要時間ＴＰとして用いてもよい。
【００５５】
一方、完了通知時間Ｔ４、および後処理時間Ｔ５は、どのプリントジョブのものであっても、内容に関わらずほぼ一定である。そこで、処理時間予測部２０３は、これらの時間として、それぞれに予め設定された時間を用いればよい。
【００５６】
つまり、処理時間予測部２０３は、プリントジョブ受付部２０１によってプリントジョブが受け付けられると、このプリントジョブの前処理時間Ｔ１、ジョブ通信時間Ｔ２、およびジョブ実行時間Ｔ３を算出する。そして、これらの時間に、予め設定された完了通知時間Ｔ４および後処理時間Ｔ５を加算することによって、このプリントジョブの所要時間ＴＰを算出（予測）する。
【００５７】
所要時間ＴＰが算出されると、この所要時間ＴＰのほか、この所要時間ＴＰに含まれる前処理時間Ｔ１、ジョブ通信時間Ｔ２、ジョブ実行時間Ｔ３、完了通知時間Ｔ４、および後処理時間Ｔ５を示す所要時間データ６２が、このプリントジョブのプリントデータ６０の送信元のユーザのユーザ識別子に対応付けられてジョブ関連データ記憶部２０２に記憶される。
【００５８】
ユーザは、プリントジョブをプリントサーバ２に受け付けさせた後、任意の画像形成装置１のところへ移動する。そして、自分のユーザ識別子とともにプルプリントの指令をこの画像形成装置１に入力する。以下、あるユーザＵ１がユーザ識別子およびプルプリントの指令を画像形成装置１Ａに入力した場合を例に説明する。
【００５９】
画像形成装置１Ａにおいて、プリントジョブ取得部１０１は、ユーザＵ１のユーザ識別子を示すプリントジョブ要求データ６３をプリントサーバ２へ送信することによって、プリントジョブを実行するために必要なデータを要求し取得する。
【００６０】
プリントサーバ２において、プリントジョブ要求受付部２０４は、ＮＩＣ２０ｅによってプリントジョブ要求データ６３が受信されると、プリントジョブ要求データ６３に示されるユーザ識別子に基づいてユーザ認証を行うなどして、要求を受け付ける処理を行う。
【００６１】
ジョブ付与可否判別部２０５は、要求がプリントジョブ要求受付部２０４によって受け付けられると、ユーザＵ１のプリントジョブのデータを画像形成装置１へ送信する処理（以下、「ジョブ付与処理」と記載する。）を行ってもよいか否かを判別する。判別の方法は、後述する。
【００６２】
ジョブ付与処理を実行してもよいとジョブ付与可否判別部２０５によって判別された場合に、スレッド制御部２０６、ジョブ実行時間計測部２０７、およびプリントジョブ送信部２０８は、次の処理を実行する。
【００６３】
スレッド制御部２０６は、ユーザＵ１のプリントジョブのスレッドのためのリソース（いわゆるＣＰＵ時間およびメモリ空間など）を割り当てる処理、つまり、スレッドを立てる処理を、実行する。
【００６４】
ジョブ実行時間計測部２０７は、要求があった時刻（つまり、プリントジョブ要求データ６３をＮＩＣ２０ｅが受信した時刻）からの計時を開始する。
【００６５】
プリントジョブ送信部２０８は、このスレッドの順番が回って来たら、ユーザＵ１のプリントデータ６０（プリントジョブ要求データ６３に示されるユーザ識別子に対応付けられているプリントデータ６０）をジョブ関連データ記憶部２０２から読み出す。そして、必要に応じてページ記述言語への変換処理などを行い、ＮＩＣ２０ｅによってプリントデータ６０を画像形成装置１Ａへ送信する。
【００６６】
一方、ジョブ付与処理を実行しないとジョブ付与可否判別部２０５によって判別されなかった場合に、メッセージ送信部２０９は、プリントジョブのデータを付与できない旨を示す付与不可メッセージデータ６４を画像形成装置１Ａへ送信する。
【００６７】
画像形成装置１Ａにおいて、プリントジョブ実行制御部１０２は、プリントデータ６０がＮＩＣ１０ｅによって受信されると、このプリントデータ６０に基づいてプリントジョブを実行する。つまり、画像を用紙に印刷する。
【００６８】
プリントジョブ完了通知部１０３は、プリントジョブが完了すると、このプリントジョブのジョブ識別子を示すプリントジョブ完了通知データ６５をＮＩＣ１０ｅによってプリントサーバ２へ送信する。
【００６９】
メッセージ表示制御部１０４は、付与不可メッセージデータ６４がＮＩＣ１０ｅによって受信されると、図５のようなメッセージ画面ＷＮ１をタッチパネルディスプレイ１０ｈに表示させる。
【００７０】
プリントサーバ２において、ジョブ実行時間計測部２０７は、プリントジョブ完了通知データ６５がＮＩＣ２０ｅによって受信されると、プリントジョブ完了通知データ６５にジョブ識別子が示されるプリントジョブの計時を終了する。これにより、このプリントジョブの要求があった時点から完了の通知があった時点までの時間が計られる。以下、この時間を「実処理時間ＴＪ」と記載する。
【００７１】
そして、実処理時間ＴＪを示す計時データ６６が、計時データ記憶部２１０に記憶される。
【００７２】
〔ジョブ付与処理の実行の可否の判別〕
図６は、プリントジョブごとの所要時間ＴＰおよび実処理時間ＴＪの関係の例を示す図である。図７は、スレッド設定可否判別処理の流れの例を説明するフローチャートである。図８は、補正所要時間ＴＱ、所要時間ＴＰ、および差分ＴＳの関係の例を示す図である。
【００７３】
ここで、ジョブ付与処理の実行の可否を判別する方法を、図６の状態である場合を例に、ｎ番目のプリントジョブが対象である場合を例に、図７のフローチャートを参照しながら説明する。
【００７４】
図６に示すように、ｉ番目までのプリントジョブが既に完了しており、それぞれの計時データ６６が既に得られている。（ｉ＋１）番目から（ｎ−１）番目までのプリントジョブそれぞれのスレッドが未だ完了していない。つまり、現在実行中でありまたは実行待ちである。
【００７５】
ジョブ付与可否判別部２０５は、計時データ６６が計時データ記憶部２１０に記憶されている場合は（＃７０１でＹｅｓ）、最新の計時データ６６を計時データ記憶部２１０から読み出す（＃７０２）。図６の例では、ｉ番目のプリントジョブのスレッドの計時データ６６を読み出す。さらに、ジョブ付与可否判別部２０５は、完了していないプリントジョブのうち一番最後に実行されるプリントジョブ（つまり、（ｎ−１）番目のプリントジョブ）の所要時間データ６２と、今回の判別の対象のプリントジョブ（つまり、ｎ番目のプリントジョブ）の所要時間データ６２とを、ジョブ関連データ記憶部２０２から読み出す（＃７０３、＃７０４）。
【００７６】
ジョブ付与可否判別部２０５は、次の（１）式より、（ｎ−１）番目のプリントジョブの所要時間データ６２に示される所要時間ＴＰを補正する（＃７０５）。
ＴＱn-1＝ｋ・Ｌ・ＴＰn-1  ……  （１）
ただし、「ＴＱn-1」は、（ｎ−１）番目のプリントジョブの所要時間ＴＰの補正後の時間（補正所要時間ＴＱ）である。「所要時間ＴＰn-1」は、（ｎ−１）番目のプリントジョブの所要時間ＴＰである。「ｋ」は、スレッド影響定数であって、ｋ＝α・ＴＰn／ＴＯ  である。「Ｌ」は、ｉ番目のプリントジョブの実処理時間ＴＪと所要時間ＴＰとの比率であって、Ｌ＝ＴＪi／ＴＰi  である。
【００７７】
そして、ジョブ付与可否判別部２０５は、図８のように補正所要時間ＴＱn-1と所要時間ＴＰn-1との差分ＴＳを算出し（＃７０６）、差分ＴＳが閾値β未満であれば（＃７０７でＹｅｓ）、ｎ番目のプリントジョブのジョブ付与処理を実行してもよいと判別する（＃７０８）。ｎ番目のプリントジョブのスレッドによる、先の実行中または実行待ちのプリントジョブのスレッドに対する影響が比較的小さいからである。閾値β以上であれば（＃７０７でＮｏ）、影響が大きいので、実行しないと判別する（＃７０９）。
【００７８】
一方、計時データ６６が計時データ記憶部２１０に記憶されていない場合は（＃７０１でＮｏ）、ジョブ付与可否判別部２０５は、ｎ番目のプリントジョブのジョブ付与処理を実行してもよいと判別する（＃７０８）。
【００７９】
そして、ｎ番目のプリントジョブのジョブ付与処理を実行してもよいと判別された場合は、上述の通り、スレッド制御部２０６、ジョブ実行時間計測部２０７、およびプリントジョブ送信部２０８によって、このプリントジョブについてジョブ付与処理および所要時間ＴＰの計測の処理が行われる。実行しないと判別された場合は、メッセージ送信部２０９によって、このプリントジョブについて付与不可メッセージデータ６４の送信の処理が行われる。
【００８０】
図９は、プリントサーバ２の全体的な処理の流れの例を説明するフローチャートである。図１０は、プリントジョブ振分処理の流れの例を説明するフローチャートである。
【００８１】
次に、プリントサーバ２の全体的な処理の流れを、図９および図１０に示すフローチャートなどを参照しながら説明する。
【００８２】
プリントサーバ２は、画像形成装置１または端末装置３からデータを受信するごとに（図９の＃１１）、そのデータに応じた処理を次の通り実行する。
【００８３】
端末装置３からプリントジョブのプリントデータ６０を受信した場合は（＃１２でＹｅｓ）、プリントサーバ２は、このプリントジョブをスプールするとともに（＃１３）、このプリントジョブの所要時間ＴＰを予測し（＃１４）、このプリントデータ６０およびこの所要時間ＴＰを示す所要時間データ６２を保存しておく（＃１５）。
【００８４】
または、画像形成装置１からプリントジョブ要求データ６３を受信した場合は（＃１６でＹｅｓ）、プリントサーバ２は、要求元のユーザプリントジョブをこの画像形成装置１へ付与してもよいか否かを判別する（＃１７）。判別の手順は、前に図７で説明した通りである。
【００８５】
そして、プリントサーバ２は、付与してもよいと判別した場合は（＃１８でＹｅｓ）、図１０に示す手順で、このプリントジョブをこの画像形成装置１へ付与するための処理を行う（＃１９）。
【００８６】
プリントサーバ２は、実処理時間ＴＪの計測を開始するとともに（図１０の＃７２１）、このプリントジョブのスレッドを立てる（＃７２２）。つまり、このプリントジョブのためにリソースを確保する。
【００８７】
そして、プリントサーバ２は、このスレッドの順番が回ってきたら、このプリントジョブのプリントデータ６０を、必要に応じて変換処理を施してこの画像形成装置１へ送信する（＃７２３）。その後、この画像形成装置１からプリントジョブ完了通知データ６５を受信したら（＃７２４）。計時をストップする（＃７２５）。これにより、実処理時間ＴＪが計測される。プリントサーバ２は、実処理時間ＴＪを示す計時データ６６を保存する（＃７２６）。
【００８８】
一方、プリントサーバ２は、プリントジョブを付与しないと判別した場合は（図９の＃１８でＮｏ）、付与不可メッセージデータ６４をこの画像形成装置１へ送信する（＃２０）。
【００８９】
本実施形態によると、実行を完了していないプリントジョブへの影響を抑えつつプリントサーバ２のリソースが従来よりも効率的に用いられるように、新たなスレッドを設定することができる。
【００９０】
特に、イントラネット５が大規模なネットワークである場合（例えば、プリントサーバ２の台数が２０００台以上であるイントラネットまたは端末装置３の台数が２００００台以上であるイントラネット）において、有効的に用いられる。
【００９１】
本実施形態では、プリントサーバ２は、ジョブ付与処理を実行しないと判別した場合に、プリントジョブが集中していることを知らせるメッセージおよび時間がしばらく経ってから要求し直すようにお願いするメッセージをユーザに与えたが（図５参照）、さらに、待ち時間をユーザに知らせてもよい。例えば、差分ＴＳ（図８参照）を待ち時間としてユーザに知らせてもよい。または、差分ＴＳに所定の長さの時間を加えた時間を待ち時間として知らせてもよい。または、１より大きい所定の係数を差分ＴＳに掛けた時間を待ち時間として知らせてもよい。
【００９２】
また、プリントサーバ２は、あるプリントジョブについてジョブ付与処理を実行しないと判別した後、他のプリントジョブの一部または全部のスレッドが完了したら、判別を再度行ってもよい。その結果、実行してもよいと判別したら、このプリントジョブのスレッドを設定する。
【００９３】
プリントサーバ２は、プリントジョブのスレッドがすべて終了したら、計時データ６６をすべて計時データ記憶部２１０から削除してもよい。
【００９４】
本実施形態では、プリントジョブの完了の時を、画像形成装置１からのプリントジョブ完了通知データ６５がプリントサーバ２によって取得された時にしたが、画像を用紙に印刷し終わった時にしてもよい。この場合は、画像形成装置１は、印刷し終わった時刻を示すデータをプリントジョブ完了通知データ６５として送信することによって、プリントサーバ２への通知を行えばよい。
【００９５】
本実施形態では、すべての画像形成装置１のスペックが同じである場合を例に説明したが、異なる場合は、所要時間ＴＰおよび補正所要時間ＴＱを次のように算出すればよい。所要時間ＴＰは、平均的なスペックの画像形成装置１によって印刷が行われる場合を想定し、算出すればよい。補正所要時間ＴＱは、要求元の画像形成装置１のスペックに応じて算出すればよい。例えば、要求元の画像形成装置１の処理速度が平均的な処理速度よりも速い場合は、（１）式で算出される補正所要時間ＴＱを、処理速度に応じた時間または割合だけ減らし、遅い場合は、増やせばよい。
【００９６】
本実施形態では、プリントサーバ２と画像形成装置１とが協働して実行するジョブを例に説明したが、プリントサーバ２が単独で実行するジョブを取り扱う場合にも、本発明を適用することができる。例えば、プリントジョブを画像形成装置１へ付与するジョブを取り扱う場合にも、本発明を適用することができる。この場合は、所要時間ＴＰとして、前処理時間Ｔ１およびジョブ通信時間Ｔ２を含む時間を用いればよい。また、実処理時間ＴＪとして、前処理を開始してからプリントデータ６０を画像形成装置１へ送信し終わるまでの時間を計測すればよい。
【００９７】
印刷を伴わない他のジョブを取り扱う場合も、所要時間ＴＰの推測の仕方、および、実処理時間ＴＪの開始の時および終了の時は、当該他のジョブに応じて適宜、決めておけばよい。
【００９８】
その他、イントラネット５、画像形成装置１、プリントサーバ２の全体または各部の構成、処理内容、処理順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【００９９】
２  プリントサーバ（ジョブ処理装置）
２０３  処理時間予測部（推測手段）
２０５  ジョブ付与可否判別部（再推測手段）
２０６  スレッド制御部（スレッド制御手段）
２０７  ジョブ実行時間計測部（計測手段）
２０９  メッセージ送信部（通知手段）
ＴＪ  実処理時間（第二の所要時間）
ＴＰ  所要時間（第一の所要時間）
ＴＱ  補正所要時間（第三の所要時間）
【図１】
2014170265.tif 000003
【図２】
2014170265.tif 000004
【図３】
2014170265.tif 000005
【図４】
2014170265.tif 000006
【図５】
2014170265.tif 000007
【図６】
2014170265.tif 000008
【図７】
2014170265.tif 000009
【図８】
2014170265.tif 000010
【図９】
2014170265.tif 000011
【図１０】
2014170265.tif 000012