(57)【要約】【課題】  プリンタの印刷待機状態の発生を削減可能な技術を提供する。【解決手段】  印刷装置に対するポーリングのタイミングと関連したタイミングで、前記印刷装置内のジョブ数を取得し、前記取得したジョブ数が所定の値でない場合は、前記印刷装置に溜めておくべきジョブ数に関連する送信制御値を算出し、前記算出された送信制御値から決定したジョブ数のジョブを前記印刷装置に送信する。【選択図】  図６
2015212865.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に対するポーリングのタイミングと関連したタイミングで、前記印刷装置内のジョブ数を取得する取得手段と、
前記取得したジョブ数が所定の値でない場合は、前記印刷装置に溜めておくべきジョブ数に関連する送信制御値を算出する算出手段と、
前記算出された送信制御値から決定したジョブ数のジョブを前記印刷装置に送信する送信手段を有することを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記取得したジョブ数を用いて、前記送信制御値を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出手段は、前記ポーリングの間隔中に前記印刷装置が処理したジョブの完了時間と、前記印刷装置の待機状態時間を用いて、前記送信制御値を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
情報処理装置の制御方法であって、
取得手段が、印刷装置に対するポーリングのタイミングと関連したタイミングで、前記印刷装置内のジョブ数を取得する取得工程と、
算出手段が、前記取得したジョブ数が所定の値でない場合は、前記印刷装置に溜めておくべきジョブ数に関連する送信制御値を算出する算出工程と、
送信手段が、前記算出された送信制御値から決定したジョブ数のジョブを前記印刷装置に送信する送信工程を有することを特徴とする情報処理装置の制御方法。
【請求項５】
前記算出工程は、前記取得したジョブ数を用いて、前記送信制御値を算出することを特徴とする請求項４に記載の情報処理装置の制御方法。
【請求項６】
前記算出工程は、前記ポーリングの間隔中に前記印刷装置が処理したジョブの完了時間と、前記印刷装置の待機状態時間を用いて、前記送信制御値を算出することを特徴とする請求項４に記載の情報処理装置の制御方法。
【請求項７】
コンピュータを、請求項１乃至３の何れか１項に記載の情報処理装置が有する各手段と
して機能させるためのコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷のための印刷ジョブを処理する技術に関する。
【背景技術】
【０００２】
近年、オフセット印刷で行われていた商業印刷分野に、印刷現場での効率の良さと、電子写真方式の印刷装置（プリンタ）の印刷スピードなどの機能向上により、印刷方式の置き換えが発生している。商業印刷分野では、プリンタに大量部数のジョブが送信される事がある。しかし、一度にプリンタに大量のジョブを送信すると受け付けきれないジョブが消えてしまうことやプリンタで管理するジョブ数が多くなりすぎて印刷パフォーマンスが低下してしまうことが知られている。
【０００３】
特許文献１は、プリンタに対し定期的に情報取得（ポーリング）を行い、送信済みのジョブ数が予め定められた閾値以上である場合には、印刷ジョブの送信を停止することで、プリンタの印刷パフォーマンスを低下させないようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１２８９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１は、プリンタへのポーリング間に、送信したジョブが終了してしまった場合、プリンタが印刷の待機状態になってしまうという課題があった。
本発明は、上述の問題点に鑑みなされたものであり、プリンタの印刷待機状態の発生を削減可能とする技術を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上述の問題点を解決するため、本発明の情報処理装置は以下の構成を備える。すなわち、印刷装置に対するポーリングのタイミングと関連したタイミングで、前記印刷装置内のジョブ数を取得する取得手段と、前記取得したジョブ数が所定の値でない場合は、前記印刷装置に溜めておくべきジョブ数に関連する送信制御値を算出する算出手段と、前記算出された送信制御値から決定したジョブ数のジョブを前記印刷装置に送信する送信手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、プリンタの印刷待機状態の発生を削減可能という効果がある。
【図面の簡単な説明】
【０００８】
【図１】本発明における情報処理システムのシステム構成図。
【図２】情報処理装置１０１の構成を示すブロック図。
【図３】ＲＡＭのメモリマップの一例。
【図４】本発明における情報処理システムの機能ブロック図。
【図５】第１の実施形態を適用した場合のプリンタ内のジョブ数の推移の一例。
【図６】第１の実施形態における送信制御処理を示すフローチャート。
【図７】第１の実施形態におけるステップ６０６の詳細フローチャート。
【図８】第２、第３の実施形態を適用した場合のプリンタ内のジョブ数の推移の一例。
【図９】第２の実施形態における初期値の算出処理のフローチャート。
【図１０】ユーザーインターフェースの一例。
【図１１】第３の実施形態におけるステップ６０６の詳細フローチャート。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１０】
［第１の実施形態］
まず、本実施形態で使用している語彙について説明する。
【００１１】
＜ポーリング処理＞  ポーリング処理は、印刷装置（プリンタ）に対して一定の間隔で情報の取得を行う処理を示す。例えば、１０秒ポーリングでは、１０秒間隔でプリンタに情報の取得を行う。ポーリング間隔を狭めると、プリンタ側でポーリング処理に対応した処理の回数が増え、印刷パフォーマンスの低下を招くため、ポーリング間隔は、可能な範囲で広めにとることが望まれる。
【００１２】
＜プリンタ待機状態＞  プリンタ待機状態は、プリンタに残っている未印刷なジョブ数が０の状態で、プリンタの印刷処理が止まっていることを示す。この間は、印刷が行われないため生産性を上げるためには、ポーリング間隔をなるべく小さくせずに、この時間を減らすことが望まれる。
【００１３】
＜送信制御値＞  本実施形態で用いる送信制御値について説明する。プリンタに対してポーリング処理などを行い、プリンタのジョブ情報を取得した時に、プリンタ内のジョブ数があらかじめ決められたジョブ数（閾値）になるようにする。これは、プリンタ待機状態の発生を削減あるいは抑えるためである。このために、ポーリング処理後にプリンタに送信されるジョブによりプリンタに溜め置いておくべきジョブの目標値を、本実施形態では、送信制御値として定義している。
【００１４】
具体的例をあげて説明する。最初の送信制御値を１０とし、ポーリングのタイミングで取得したプリンタ内のジョブ数が２の場合、ポーリング間隔中に処理されるジョブ数は８になる。閾値が５の場合、ポーリングタイミングでプリンタ内のジョブ数が、閾値の５になるようにするため、次回の送信制御値は１３とする（８＋５＝１３）。なお、本実施形態では、送信制御値を、ポーリングタイミングでのプリンタ滞留ジョブ数（プリンタのＱｕｅｕｅに残っているジョブ数）の目標値とする。
【００１５】
ポーリング処理直後のタイミングで送信するジョブ数は、（式１）で求める。
ポーリング処理直後のタイミングで送信するジョブ数＝
送信制御値―ポーリングのタイミングで取得したジョブ数    （式１）
送信制御値が１３であり、ポーリングのタイミングで取得したプリンタ内のジョブ数が２であるときは、１１ジョブをポーリング処理後に送信することとなる。
【００１６】
＜プリンタＱｕｅｕｅフル＞  プリンタが持つ、ジョブを受けつけるバッファ数の上限に対して、受けつけたジョブ数がオーバした状態を示す。本実施形態ではプリンタで未印刷なジョブは、このＱｕｅｕｅに溜め置かれているジョブ数（プリンタ滞留ジョブ数）を取得することで判定しているが、他の方法により取得してもよい。Ｑｕｅｕｅフルの状態で送信されたジョブは、プリンタでは受けつけられない。また、Ｑｕｅｕｅフルの状態が発生するとプリンタ内のメモリ空きサイズなどのリソースが減り、印刷パフォーマンスが低下してしまうなどの問題が発生することがある。プリンタＱｕｅｕｅのサイズについてはプリンタの搭載しているメモリやＣＰＵ能力に依存する。
【００１７】
以下で、本発明を実施するための最良の形態について図面を用いて説明する。
【００１８】
図１は、本発明にかかわる情報処理システムの全体構成を示す図である。なお、以下の説明における情報処理システム全体の環境は本発明の説明を理解し易くするためのものであり、本発明はこれらの環境に限定されるものではない。
【００１９】
図１において、１０１、１０２、１０３は、ネットワーク１０６に接続され、相互に通信可能なネットワークコンピュータ（以下、情報処理装置という）である。典型的にはパーソナルコンピュータであり、それぞれ、ネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能である。
【００２０】
情報処理装置１０１、１０２、１０３は、情報処理装置１０１、１０２、１０３において生成した印刷ジョブデータ（以下、ジョブデータという）をプリンタ１０４、１０５に転送する機能を有する。また、情報処理装置１０１、１０２、１０３はプリンタ１０４、１０５が受信して処理または保存しているジョブデータの情報を、ネットワーク１０６を介して取得して表示、編集することが可能である。
【００２１】
１０４、１０５は、印刷装置としてのネットワークプリンタ（以下、プリンタという）である。プリンタ１０４、１０５は、不図示のネットワークインタフェースを介してネットワーク１０６と接続されており、情報処理装置１０１〜１０３から送信されてくる印字データを含むジョブデータを解析し、１ページずつドットイメージに変換して印刷する。
【００２２】
また、情報処理装置１０１〜１０３から受信したジョブデータをプリンタ１０４、１０５のユーザーインターフェースに表示したり、情報処理装置１０１、１０２、１０３へメールなどによって送信したり、図示しないファクシミリ装置などにＦＡＸ送信したりする。
【００２３】
以下、プリンタ１０４、１０５を区別する必要がある場合にはそれぞれプリンタＡ、プリンタＢと記す。なお、各プリンタの機能は相違するものであってもよい。
【００２４】
また、１０６はネットワークであり、情報処理装置１０１、１０２、１０３やプリンタ１０４、１０５等と接続している。
【００２５】
図２は、情報処理装置１０１の構成を説明するブロック図である。尚、情報処理装置１０２、１０３の構成も、情報処理装置１０１の構成と同様である。図２において、２００は装置全体の制御を行うＣＰＵである。ＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施例の情報処理プログラム等を実行する。また、ＣＰＵ２００は、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御も行う。
【００２６】
２０１は記憶部としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶部としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２７】
２０３は記憶媒体読み込み部としてのフレキシブルディスクドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を情報処理装置１０１にロードすることができる。２０４は記憶媒体であるフレキシブルディスク（ＦＤ）であり、情報処理装置１０１が読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２８】
２０５は外部記憶部の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、情報処理プログラム、関連プログラム等を格納している。
【００２９】
２０６は指示入力部であるキーボードであり、ユーザが情報処理装置１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示部であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００３０】
２０８はシステムバスであり、情報処理装置１０１内のデータの流れを司るものである。
【００３１】
２０９は外部との入出力部であるインタフェースであり、インタフェース２０９を介して情報処理装置１０１は外部装置とのデータのやり取りを行う。
【００３２】
なお、上記情報処理装置１０１の構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００３３】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる本発明の情報処理システムを制御する情報処理プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３４】
なお、本実施例では、情報処理プログラムおよび関連データをＦＤ２０４から直接、ＲＡＭ２０２にロードして実行させる例を示す。しかしながら、これ以外にも、情報処理プログラムを動作させる度に、既に情報処理プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。
【００３５】
なお、本実施例では、情報処理プログラムおよび関連データをＦＤ２０４から直接、ＲＡＭ２０２にロードして実行させる例を示す。しかしながら、これ以外にも、情報処理プログラムを動作させる度に、既に情報処理プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。
【００３６】
３０１は基本Ｉ／Ｏプログラムであり、情報処理装置１０１の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムである。３０２はオペレーティングシステム（ＯＳ）であり、３０３は情報処理プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本情報処理プログラムを実行する領域が確保されている。
【００３７】
図４は、情報処理システムの情報処理装置１０１の機能ブロック図である。
【００３８】
４０１は、アプリケーションから印刷データと出力設定情報を受け付けるジョブ受付部である。４０２は、ジョブ受付部４０１が受け付けた印刷データと出力設定情報から出力先プリンタで処理可能なジョブデータを生成するジョブ生成部である。４０３は、送信制御を行うにあたって必要なデータの初期値をユーザーインターフェースや記憶部４０６に保持されている設定ファイルから取得する送信制御用データの設定部である。
【００３９】
４０４は、ジョブ生成部４０２から受け取ったジョブデータを一時的に溜め込み、送信制御部４０５に順次出力するスプーラである。４０５は、ジョブの送信数を調整する送信制御部である。４０６は、設定部４０３で設定された情報や、送信制御部４０５で決定した、送信ジョブ数などのシステム情報などを記憶する記憶部である。
【００４０】
４０８は、ネットワーク１０６を介してプリンタ１０４、１０５へジョブデータを送信したり、プリンタ１０４、１０５から情報を受信したりする送受信部である。なお、プリンタ内のジョブ情報の取得は、あらかじめ決められた間隔でプリンタに情報取得を行う（ポーリング処理）ようにしても、プリンタからの定期的なイベント通知で実現しても良い。プリンタジョブ情報管理部４０７は、送受信部４０８で取得したプリンタの情報からプリンタ内に保持されているジョブ数（印刷待ちのジョブ数）を読み出すプリンジョブ管理部である。
【００４１】
また、４０９は、データ送受信部４０５で取得したプリンタ情報から印刷したジョブの完了時刻を読み取る、ジョブ完了検出部である。この処理は、プリンタから取得したデータにジョブの完了時刻が存在する時のみ有効である。たえば、ＪＤＦによって印刷したジョブに対してプリンタがそのステータス情報としてＪＭＦでＲｅｔｕｒｎＱｕｅｕｅＥｎｔｒｙを通知し、そのデータ内に完了時刻が記述されている場合に有効となる。
【００４２】
図６は、情報処理装置１０１、１０２、１０３からプリンタ１０４、１０５に対して、データの送信制御処理のフローチャートである。各フローに係るプログラムは、情報処理装置１０１、１０２、１０３のハードディスク（ＨＤ）２０５に格納されており、ＲＡＭ２０２に読み出され、ＣＰＵ２００により実行される。なお、本シーケンスでは、図１に示す情報処理装置１０１からプリンタＡ（プリンタ１０４）へのジョブ送信制御を例として説明する。
【００４３】
ステップ６０１は、設定部４０３が、記憶部４０６から送信制御値の初期値を取得する。送信制御値の初期値の例として、プリンタパネルに表示可能なジョブ数や、プリンタの持つバッファ（Ｑｕｅｕｅ）をフルにしないように余裕を持たせたジョブ数（例えば、Ｑｕｅｕｅフル数が発生する値の３０％に相当する値）とする。ステップ６０２は、送信制御部４０５が、ジョブの送信処理を停止させるかどうか判定する。印刷終了時や、印刷アプリシステムのＳｈｕｔｄｏｗｎ等が行われた場合には、印刷終了のフラグなどが立ちその指示に従い処理を終了させ、ステップ６１０へ進む。それ以外ではステップ６０３に進む。ステップ６０３は、送信制御部４０５が、送受信部４０８で行われるプリンタ情報の取得を行うタイミング（ポーリングのタイミング）であるかを判定する。なお、本実施形態においては、特定の時間間隔で情報取得を行うポーリングを使用するが、プリンタＡからの定期的にイベント通知を受けジョブデータ情報の取得を行うようにしてもよい。
【００４４】
ステップ６０３でポーリングのタイミングであったと判定された場合、ステップ６０４は、送受信部４０８は、プリンタ情報として、プリンタのＱｕｅｕｅの情報を受信する。プリンタのＱｕｅｕｅの情報には、プリンタのＱｕｅｕｅに残っているジョブ数（プリンタ滞留ジョブ数）の情報も含まれる。ステップ６０５は、送信制御部４０５が、プリンタＱｕｅｕｅの情報からプリンタのＱｕｅｕｅに残っているジョブ数（プリンタ滞留ジョブ数）を取得し、このジョブ数が、あらかじめ決められた閾値と同じを判定する。閾値と同じと判定された場合にはステップ６０９に進み、それ以外であればステップ６０６に進む。
【００４５】
ステップ６０６は、送信制御部４０５が、送信制御値の値を変更する。図７は、ステップ６０６の詳細フローチャートである。
【００４６】
ステップ７０１は、送信制御部４０５が、プリンタ滞留ジョブ数が、閾値より小さいか判定する。閾値より小さい場合、ステップ７０２で、送信制御部４０５が、送信制御値の値を、１つ、インクリメントする。また、それ以外の場合には、送信制御部４０５が、ステップ７０３で、送信制御値の値を、１つ、デクリメントする。
【００４７】
ステップ６０７は、送信制御部４０５が、ステップ６０６で変更された送信制御値の値が、限界値（Ｑｕｅｕｅフルとなるジョブ数）を超えていないか判定する。ここで、限界値を超えていると判定された場合には、ステップ６０８へ進む。ステップ６０８は、ステップ６０６で変更された送信制御値の値を、限界値に置き換える。
【００４８】
ステップ６０９は、送受信部４０８が、送信制御値から、プリンタ滞留ジョブ数を引いたジョブ数で、プリンタにジョブ送信する。以上のステップを経由して、ステップ６０２で、処理が終了と判定されると、ステップ６１０へ進み、送信制御値及びポーリング間隔などのシステムデータを、次回の再印刷時に使用可能なように記憶部４０６へ保存する。
【００４９】
尚、ステップ６１０で保存した送信制御値は、次回、印刷時の、送信制御値の初期値としてもよい。
【００５０】
図５は、本実施形態の効果を説明するための図である。図５（ａ）は、本実施例を適用していない、従来法でのプリンタ内のジョブ数の推移を表した図である。図５（ａ）のグラフの縦軸は、プリンタ内のジョブ数を表し、横軸は、時間を表す。尚、ポーリング間隔とは、プリンタへの定期的なポーリング間隔である。図５（ａ）の折れ線は、プリンタ内の未印刷なジョブ数の遷移を表している。ここでは、送信制御値を５としている。５ジョブをプリンタに送信した後、ポーリング間隔中に送信したジョブが全て印刷終了してしまい、印刷終了したタイミングと次のポーリングタイミングまで、プリンタ内のジョブ数が０（プリンタ待機状態）となる状態が発生している。
【００５１】
図５（ｂ）は、本実施形態を適用した場合のプリンタ内のジョブ数の推移の一例を表した図である。ここでは、送信制御値の初期値が、５でジョブ送信が行われる。１つ目のポーリング間隔と２つ目のポーリング間隔ではプリンタの待機状態が発生している。が、本実施形態で説明したように、送信制御値を調整することで、３つ目以降のポーリング間隔では、プリンタ待機状態が解消されるようになる。
【００５２】
尚、上記実施形態では、ステップ７０２、７０３では、インクリメント、デクリメントする値は、１としたが、インクリメント、デクリメントする値は、閾値とプリンタ滞留ジョブ数の差分を算出して行うようにしてもよい。例えば、閾値が３の場合で、プリンタ滞留ジョブ数が０の場合には、次のポーリングタイミングでプリンタ滞留ジョブ数が閾値の３になるようにするため、インクリメントする値を、３とする。また、閾値が３の場合で、プリンタ滞留ジョブ数が７の場合には、次のポーリングタイミングでプリンタ滞留ジョブ数が閾値の３になるようにするため、デクリメントする値を、４とする。このように、インクリメント、あるいは、デクリメントの値を、プリンタ滞留ジョブ数を用いて算出することで、プリンタ待機時間が解消されるまでの時間を短縮することができる。
【００５３】
上記実施形態では、ステップ６０８で、送受信部４０８が、送信制御値から、プリンタ滞留ジョブ数を引いたジョブ数で、プリンタにジョブ送信するとしたが、さらに、ポーリング間隔を狭める処理を行ってもよい。具体的には、送受信部４０８で行われるポーリング間隔の所定の単位（たとえば１秒）ずつ間隔を狭める。ポーリング間隔を狭めることで、プリンタ待機状態の時間を減らすことができる。
【００５４】
上記実施形態では、閾値を、所定の数値としてが、上限値と下限値をもつものとしてもよい。具体的には、図６のステップ６０５で、閾値の上限値と下限値の範囲内であれば、ステップ６０９に進み、閾値の上限値と下限値の範囲外であれば、ステップ６０９に進むようにする。また、インクリメントやデクリメントの値を、閾値とプリンタ滞留ジョブ数の差分を算出する場合は、閾値の上限値と下限値の範囲内の値を用いればよい。
【００５５】
以上説明したように、ポーリングタイミングで、プリンタ内のジョブ数が閾値内に収まるまで、送信制御値のインクリメント、あるいは、デクリメントを行うことで、プリンタ待機状態が解消されるようになる。
【００５６】
［第２の実施形態］
第１の実施形態では、送信制御値の初期値を、記憶部４０６に記憶されている初期値を用いる例を説明した。本実施形態では、記憶部４０６に記憶されている初期値を用いるのではなく、理論値が算出できるときは、理論値としての初期値を算出するようにして、結果、プリンタ待機時間が解消されるまでの時間を短縮する。
【００５７】
本実施形態では、図６のステップ６０１の代わりに、図９のフローを置き換えることで実施する。図６のステップ６０１を、図９のフローに置き換えること以外は、第１の実施形態と同様であるので、説明を省略する。
【００５８】
図９は、送信制御値の初期値を算出するフローチャートである。
【００５９】
ステップ９０１は、設定部４０３が、印刷ジョブ情報を取得できるか判定する。例えば、これから印刷するジョブの平均ページ数などのジョブ情報が取得可能であるか判定する。尚、納期が決められているような生産現場では、あらかじめ生産計画が立てられており、ジョブに対するページ数等が事前に決まっていることが多く、その場合は、印刷ジョブ情報を取得できる。ステップ９０１で、印刷ジョブ情報が取得可能であればステップ９０２へ進み、取得不可であればステップ９０７へ進む。ステップ９０７は、設定部４０３が、記憶部４０６から送信制御値の初期値（第１の初期値）を取得する。
【００６０】
ステップ９０２は、設定部４０３が、印刷ジョブ情報を取得する。ここでは、１ジョブ中の平均ページ数が取得できた例を説明する。具体的には、これから印刷するジョブのページ数の平均が２５ページという情報が取得できた場合、ステップ９０２では、１ジョブの平均ページ数を２５として取得する。ステップ９０３は、設定部４０３が、プリンタの能力情報を取得（もしくはユーザが設定する）できるか判定する。プリンタ能力情報としては、プリンタから取得するようにしてもよいし、ユーザーインターフェースを介して取得してもよい。ステップ９０３でプリンタの能力情報が取得可能と判定された場合は、ステップ９０４へ進む。ステップ９０４は、設定部４０３が、プリンタの能力情報を取得する。プリンタ能力情報としては、印刷エンジンスピード、給紙可能枚数などがある。ここでは、プリンタのエンジンスピード（一般的にはＰＰＭで示される）を用いる場合、ターゲットプリンタのエンジンスピードが最高１５００ｐｐｍであれば、１分間に印刷可能用紙枚数を１５００とする。
【００６１】
ステップ９０５は、設定部４０３が、印刷システムの設定情報を取得する。印刷システムの設定情報は、例えば、印刷システムのポーリング間隔である。
【００６２】
ステップ９０６は、設定部４０３が、印刷ジョブ情報、プリンタの能力情報、印刷システムの設定情報とから、送信制御値の初期値（第２の初期値）を算出して設定する。ここで算出する初期値は、ポーリング間隔中に処理可能な理論的なジョブ数であり、計算から求めた理論値に相当する。以下の計算式は算出方法の一例であり、ポーリング間隔中に処理可能なページ数を、プリンタのエンジンスピードとポーリング間隔から算出する。そして、ポーリング中に処理可能なページ数（前記算出された値）を１ジョブの平均ページ数で除算することにより、初期値を算出する。
ポーリング中に処理可能なページ数＝エンジンスピード（ＰＰＭ）／ポーリング間隔  （式２）
初期値＝ポーリング中に処理可能なページ数／１ジョブの平均ページ数  （式３）
図１０は、ユーザーインターフェースの一例を示す図である。ターゲットプリンタを選択して、印刷ジョブ情報、プリンタエンジンスピード情報、ポーリング間隔をプリンタ及びシステムから読み込むことで、初期値（第２の初期値）が自動的に算出されている。ここで、“設定する”ボタンが押下されると、第２の初期値が適用される。なお、ユーザーインターフェースの設定項目はシステムやプリンタから自動的に取得するだけでなく、ユーザがＵＩ上で打ち込むようにしてもよい。
【００６３】
本実施形態によれば、理論値としての初期値を算出して、その初期値を用いることで、プリンタの待機時間が解消されるまでの時間が短くなる効果がある。図８（ａ）は、本実施形態における、プリンタ内のジョブ数の推移の一例を表した図である。この例では、理論値としての初期値を用いることで、プリンタの待機状態が発生しない。
【００６４】
尚、本実施形態によれば、理論値が算出できるときは、理論値としての初期値を算出して、その初期値を用いるようにした。が、印刷ジョブ情報、プリンタの能力情報、印刷システムの設定情報のいずれかの情報が大きく変化したときに、理論値としての初期値を算出するようにしてもよい。
【００６５】
［第３の実施形態］
第２の実施形態では、送信制御に使用する初期値として、送信制御の理論値を用いることでプリンタ待機時間が解消されるまでの時間を短縮した。第３の実施形態では、プリンタから通知されるジョブ情報（ジョブの完了時間）からポーリング間隔中に処理可能なジョブ数を算出し、その値を送信制御値として用いることによりプリンタ待機時間が解消されるまでの時間を短縮する。
【００６６】
本実施形態では、図６のステップ６０６の詳細フローチャートとして、図７のフローの代わりに、図１１のフローを置き換えることで実施する。図７のフローの代わりに、図１１のフローを置き換えること以外は、第１の実施形態と同様であるので、説明を省略する。
【００６７】
図１１は、本実施形態におけるステップ６０６の詳細フローチャートである。
【００６８】
ステップ１１０１は、送信制御部４０５が、印刷システムからプリンタ情報取得のためのポーリング間隔を取得する。ステップ１１０２は、送信制御部４０５が、ポーリング間隔中に処理したジョブの完了時間を取得する。プリンタ情報の中から各ジョブの終了時間情報を取得する。
【００６９】
ステップ１１０３は、送信制御部４０５が、ジョブＱｕｅｕｅに残っているジョブ数が０かを判定する。ステップ１１０３で、ジョブＱｕｅｕｅに残っているジョブ数が０だった場合、ステップ１１０４に進む。ステップ１１０４は、送信制御部４０５が、ポーリング中のどのタイミングで最終ジョブが終了したのか読み出し、ポーリング間隔からその時間を差し引く。この時間がプリンタの待機状態時間となる。
【００７０】
ステップ１１０５は、送信制御部４０５が、送信制御値の計算を行う。この計算の一例を以下に示す。ポーリング間隔をＰｏｌｌｉｎｇＴｉｍｅとし、ポーリング中に終了した最後のジョブの完了時間をＪｏｂＣｏｍｐｌｅｔｅＴｉｍｅとし、プリンタの待機状態時間をＰｒｉｎｔｅｒＷａｉｔＴｉｍｅとする。プリンタの待機状態時間は
ＰｒｉｎｔｅｒＷａｉｔＴｉｍｅ＝ＰｏｌｌｉｎｇＴｉｍｅ−ＪｏｂＣｏｍｐｌｅｔｅＴｉｍｅ    （式４）
となる。また、送信制御値をＭａｘＳｅｎｄｉｎｇＪｏｂＣｏｕｎｔとすると、計算される送信制御値は
ＮｅｘｔＭａｘＳｅｎｄｉｎｇＪｏｂＣｏｕｎｔ＝
（ＰｒｉｎｔＷａｉｔＴｉｍｅ＊ＭａｘＳｅｎｄｉｎｇＪｏｂＣｏｕｎｔ）／ＪｏｂＣｏｍｐｌｅｔｅＴｉｍｅ＋閾値  （式５）
により算出される。（なお、閾値に範囲があれば、たとえば、閾値の上限値を使用してもよい。）
ステップ１１０３で、ジョブＱｕｅｕｅに残っているジョブ数が０でないと判定され場合、ステップ１１０６に進む。ステップ１１０６は、送信制御値をインクリメントする。インクリメントする値は、第１の実施形態と同様、１としてもよいし、プリンタ滞留ジョブ数を用いて求めてもよい。
【００７１】
本実施形態によれば、プリンタから通知されるジョブ情報（ジョブの完了時間）からポーリング間隔中に処理可能なジョブ数を算出し、その値を送信制御値として用いることにより、プリンタの待機時間が解消されるまでの時間が短くなる効果がある。図８（ｂ）は、本実施形態における、プリンタ内のジョブ数の推移の一例を表した図である。この例では、最初のポーリングでプリンタ待機時間が発生したため、待機時間の発生時間（時刻）を用いて、送信制御値を計算し、その値をベースにジョブを送信したことで、次のポーリングではプリンタ待機時間が解消されている。
【００７２】
尚、本実施形態の変形例として、ジョブの完了時間がプリンタから取得可能であるときは、図１１のフローを用いて、取得できないときは、図７のフローを用いるようにしてもよい。ジョブの完了時間がプリンタから取得可能かを判定する方法として、設定部４０３からデバイス能力を問い合わせるようにして判定してもよい。例えば、ＪＤＦ対応デバイスでは“ＫｎｏｗｎＭｅｓｓａｇｅｓ”（プリンタがサポートしている能力を問い合わせる）コマンドを発行して、その戻り値として“ＲｅｔｕｒｎＱｕｅｕｅＥｎｔｒｙ”（印刷結果を通知する）コマンドが通知されてくるか判定する。また、ユーザがデバイスの能力を設定ファイルに定義し、設定部４０３で読み込むようにしてもよい。
【００７３】
＜その他の変形例＞
以上本発明にかかる実施形態を説明したが、先に説明したように、情報処理装置は、通常のパーソナルコンピュータ等の汎用情報処理装置であって、それ上で動作するコンピュータプログラムで実現できるものである。よって、本発明はコンピュータプログラムをその範疇とすることは明らかである。また、通常、コンピュータプログラムは、ＣＤＲＯＭ等のコンピュータ読み取り可能な記憶媒体に格納されており、それをコンピュータの対応するドライブにセットしてシステムにコピーやインストール処理することで実行可能となる。よって、本発明は当然にそのようなコンピュータ可読記憶媒体をもその範疇とすることも明らかである。
【図１】
2015212865.tif 000003
【図２】
2015212865.tif 000004
【図３】
2015212865.tif 000005
【図４】
2015212865.tif 000006
【図５】
2015212865.tif 000007
【図６】
2015212865.tif 000008
【図７】
2015212865.tif 000009
【図８】
2015212865.tif 000010
【図９】
2015212865.tif 000011
【図１０】
2015212865.tif 000012
【図１１】
2015212865.tif 000013