(57)【特許請求の範囲】
【請求項１】
ネットワークを介して１または２以上のプリンタに接続されるとともにプリンタ・ドライバ手段から受信した印刷ジョブを保持する印刷処理装置において、前記プリンタ・ドライバ手段から受信した印刷ジョブの内容を必要に応じて該印刷ジョブの内容を解釈して得られた統計情報が設定される印刷ジョブ状態及び該印刷ジョブの内容を変換処理する実行モジュールである印刷処理資源とともに格納する印刷ジョブ記憶手段と、前記印刷ジョブ記憶手段に格納された印刷ジョブの印刷ジョブ状態を管理する印刷ジョブ状態管理手段と、少なくとも印刷ジョブの前記印刷ジョブ状態を参照して前記プリンタにおける当該印刷ジョブの印刷処理時間を予測する印刷処理時間予測手段と、印刷待ち時間を予測するとともに該印刷待ち時間と前記印刷処理時間予測手段で予測された前記印刷処理時間の長短を比較して印刷ジョブの内容の変換が可能か否かを判断する印刷ジョブ内容変換判断手段と、前記印刷ジョブ内容変換判断手段で印刷ジョブの内容の変換が可能と判断された場合に当該印刷ジョブとともに前記印刷ジョブ記憶手段に保持されている前記印刷処理資源を用いて印刷ジョブの内容の変換を行う印刷ジョブ処理手段を有し、前記印刷ジョブ処理手段による変換後の印刷ジョブの内容を前記印刷ジョブ状態に反映させることを特徴とする印刷処理装置。
【請求項２】
前記印刷処理時間予測手段は、前記印刷ジョブ状態管理手段で管理されている印刷ジョブ状態に基づいて前記印刷処理装置に前記ネットワークを介して接続された他の印刷処理装置における前記印刷ジョブの印刷処理時間も予測して該印刷ジョブの管理のための情報とともに印刷ジョブ管理情報として保持し、前記印刷ジョブ内容変換判断手段は、他の印刷処理装置で印刷ジョブの内容の変換が可能か否かについても判断することにより前記印刷ジョブ処理手段によって変換するか、前記他の印刷処理装置によって変換するかを判断し、前記他の印刷処理装置によって変換すると判断された場合に当該印刷ジョブを他の印刷処理装置へ転送することを特徴とする請求項１に記載の印刷処理装置。
【請求項３】
さらに、前記印刷ジョブ記憶手段に格納されている印刷ジョブを前記プリンタもしくは前記他の印刷処理装置へ送信しまたは前記プリンタ・ドライバ手段もしくは前記他の印刷処理装置から印刷ジョブを受信して前記印刷ジョブ記憶手段へ転送する印刷ジョブ送受信手段を有することを特徴とする請求項２に記載の印刷処理装置。
【請求項４】
さらに、前記印刷処理時間予測手段に保持されている印刷ジョブ管理情報を前記プリンタ・ドライバ手段もしくは前記プリンタまたは前記他の印刷処理装置に対して公開する印刷ジョブ管理情報公開手段を有することを特徴とする請求項２または請求項３に記載の印刷処理装置。
【請求項５】
さらに、前記他の印刷処理装置が公開している印刷ジョブ管理情報を参照し、参照した該印刷ジョブ管理情報に基づいて前記印刷処理時間予測手段によって管理されている前記印刷ジョブ管理情報を更新する印刷ジョブ管理情報参照手段を有することを特徴とする請求項２ないし請求項４のいずれか１項に記載の印刷処理装置。
【請求項６】
さらに、前記印刷ジョブ記憶手段に格納されている印刷ジョブに対して該印刷ジョブの内容を変換処理するのに必要な印刷処理資源を設定する印刷処理資源設定手段を有することを特徴とする請求項２ないし請求項５のいずれか１項に記載の印刷処理装置。
【請求項７】
さらに、前記印刷ジョブ記憶手段に格納された印刷ジョブから前記プリンタ・ドライバ手段または前記他の印刷処理装置が設定した印刷処理資源を取得する印刷処理資源取得手段を有することを特徴とする請求項２ないし請求項６のいずれか１項に記載の印刷処理装置。
【請求項８】
さらに、前記印刷処理資源取得手段から印刷処理資源を受け取り該印刷処理資源を用いて前記印刷ジョブ記憶手段に格納されている印刷ジョブに対して変換処理を行う印刷処理資源利用手段を有することを特徴とする請求項７に記載の印刷処理装置。
【請求項９】
さらに、前記印刷ジョブ状態管理手段を参照して前記印刷ジョブ記憶手段に格納されている印刷ジョブに設定された印刷処理資源を削除する印刷処理資源削除手段を有することを特徴とする請求項１ないし請求項８のいずれか１項に記載の印刷処理装置。
【請求項１０】
ネットワークを介して受信した印刷ジョブを保持して印刷ジョブを管理する印刷処理方法において、印刷ジョブの内容とともに必要に応じて該印刷ジョブの内容を解釈して得られた統計情報が設定される印刷ジョブ状態及び該印刷ジョブの内容を変換処理する実行モジュールである印刷処理資源を印刷ジョブ記憶手段に格納し、該印刷ジョブの印刷ジョブ状態を印刷ジョブ状態管理手段により管理しており、少なくとも印刷ジョブの前記印刷ジョブ状態を参照して前記プリンタにおける当該印刷ジョブの印刷処理時間を印刷処理時間予測手段で予測し、印刷待ち時間を予測するとともに該印刷待ち時間と予測された前記印刷処理時間の長短を比較して印刷ジョブの内容の変換が可能か否かを印刷ジョブ内容変換判断手段で判断し、印刷ジョブの内容の変換が可能と判断された場合に当該印刷ジョブとともに前記印刷ジョブ記憶手段に保持されている前記印刷処理資源を用いて印刷ジョブの内容の変換を印刷ジョブ処理手段で行い、前記印刷ジョブ処理手段による変換後の印刷ジョブの内容を前記印刷ジョブ状態に反映させることを特徴とする印刷処理方法。
【請求項１１】
前記印刷ジョブを前記ネットワークに接続された他の装置において変換処理する場合の印刷処理時間についても前記印刷ジョブ状態に基づいて予測し、他の印刷処理装置で印刷ジョブの内容の変換が可能か否かについても判断することにより、前記印刷ジョブ処理手段によって変換するか、前記他の印刷処理装置によって変換するかを判断し、前記他の印刷処理装置によって変換すると判断された場合に当該印刷ジョブを他の印刷処理装置へ転送することを特徴とする請求項１０に記載の印刷処理方法。
【請求項１２】
前記印刷ジョブ状態及び予測した前記印刷処理時間を含む前記印刷ジョブを管理するための印刷ジョブ管理情報を前記他の装置に対して公開することを特徴とする請求項１１に記載の印刷処理方法。
【請求項１３】
前記他の装置が公開している印刷ジョブ管理情報を参照し、参照した該印刷ジョブ管理情報に基づいて前記印刷ジョブ管理情報を更新することを特徴とする請求項１２に記載の印刷処理方法。
【請求項１４】
前記他の装置が前記印刷ジョブの内容を変換処理する印刷処理資源を該印刷ジョブに対して設定し、前記印刷ジョブを前記他の装置へ送信することを特徴とする請求項１１ないし請求項１３のいずれか１項に記載の印刷処理方法。
【請求項１５】
前記他の装置が保持している印刷ジョブを受信し、該印刷ジョブから該印刷ジョブを変換処理するための印刷処理資源を取得することを特徴とする請求項１１ないし請求項１４のいずれか１項に記載の印刷処理方法。
【請求項１６】
取得した印刷処理資源を用いて前記印刷ジョブを変換処理することを特徴とする請求項１５に記載の印刷処理方法。
【請求項１７】
前記印刷ジョブに設定されている印刷処理資源が不要になったときに、該印刷処理資源を削除することを特徴とする請求項１４ないし請求項１６のいずれか１項に記載の印刷処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して接続された印刷処理装置および印刷処理方法に関するものである。
【０００２】
【従来の技術】
プリンタを接続したネットワークにおいて、印刷ジョブの効率的な処理を行うために、ネットワークを介して印刷を行うデータ処理装置や、プリンタ・ドライバ、スプーラ、プリンタなどに対して様々な発明がなされている。例えば、プリンタにおける印刷処理時間を予測し、その予測結果に基づいて印刷処理を行うものとして、例えば特開平６−３２４８２３号公報に「プリンタ管理方式」に関する技術（以下、「第１の従来技術」と言う）が記載されている。この第１の従来技術では、ネットワークに接続された各プリンタにプリンタエージェントを配置し、このエージェントによってプリンタの状態の管理や印刷ジョブの転送時刻の算定などを行う。そして、各プリンタの中から各印刷ジョブに適切なプリンタを臨機応変に選択することを可能にしている。
【０００３】
また、例えば特開平１０−３４０１６６号公報には、「印刷データ生成装置、印刷データ生成方法、印刷装置および印刷システム」に関する技術（以下、「第２の従来技術」と言う）が記載されている。この第２の従来技術においては、印刷を行う前にホストコンピュータ等から印刷装置に仮印刷要求を行うと、印刷装置から受付情報が返される。さらに、返された受付情報を示して印刷情報の取得を要求すると、未処理ジョブの総数や合計印刷ページ数などの情報を含む印刷処理情報が返されてくる。ホストコンピュータは、この印刷処理情報に基づいて印刷処理待ち時間が所定値以下の印刷装置を選択する。これによって、ページ数に基づいた印刷待ち時間予測が可能になる。
【０００４】
ところで、ページ記述言語などで記述された印刷ジョブの場合には、プリンタにおいて印刷ジョブをイメージデータに展開する必要があり、そのために要する時間も印刷待ち時間予測の対象とする必要がある。しかし、第１及び第２の従来技術においては、ページ記述言語で記述された印刷ジョブをイメージデータに展開する処理に対応する特段の構成を有していない。したがって、このイメージデータの展開時間が印刷待ち時間の予測を狂わせる原因になる。
【０００５】
そこで、このような印刷ジョブについても対応可能としたものとして、例えば特開平１０−２４０４５９号公報に記載の印刷制御装置」に関する技術（以下、「第３の従来技術」と言う）が挙げられる。この第３の従来技術では、イメージデータを構成する写真や図形、文字などのオブジェクト毎に処理速度を算出し、予め処理速度統計情報として蓄積しておく。そして、このような情報を元に画像形成処理終了時間や印刷処理終了時間を正確に予測し、納期に基づく印刷ジョブの品質管理、構成作業要素を用いた印刷ジョブの管理と印刷ジョブの転送速度予測、プリンタの選択および印刷ジョブの順序制御を可能としている。
【０００６】
さらに、印刷ジョブ処理の効率化を図るために、プリンタ等の状況に応じて印刷ジョブの内容に対して変換処理等を行うものもある。例えば、特開平１１−１１０１４８号公報には、「印刷制御システム及び印刷制御方法並びに印刷制御プログラムが記録された記録媒体」に関する技術（以下、「第４の従来技術」と言う）が記載されている。これは、プリンタ装置においてインターネット上のサーバから受信する画像データの受信速度から受信時間を予測し、予測受信時間が所定のしきい値に達しているか否かを判断する。そして、予測受信時間がこのしきい値に達していない場合には、低解像度のイメージデータを受信し直すなどの処理を行うものである。
【０００７】
しかし、プリンタ装置における印刷ジョブ処理の効率化だけでは限界があるので、以下に述べる５つの従来技術のように、プリンタ・ドライバやスプーラ等において印刷ジョブに対して変換処理等を行い、印刷ジョブ処理の効率化を図るものもある。まず、特開平９−２４４８２２号公報には、「データ処理装置」に関する技術（以下、「第５の従来技術」と言う）が記載されている。この第５の従来技術では、ネットワーク上に設けたフロントエンドプロセッサ（ＦＥＰ）において、印刷ジョブに対応するジョブノードをキュー管理し、各ジョブノードに対応する印刷ジョブが転送されて印刷されるまでの待ち時間を利用して、印刷ジョブのページ・データをまとめてファイル化する処理およびエラー処理を行う。これによって、データ転送の効率化を可能にしている。
【０００８】
また、特開平１０−２９３６５９号公報には、「データ処理装置および印刷制御装置およびデータ処理装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体」に関する技術（以下、「第６の従来技術」と言う）が記載されている。この第６の従来技術では、ホストにおけるデータ処理負担に応じて、プリンタ・ドライバがデータ圧縮方法を切り替える。例えばホストにおけるデータ処理負担が重い場合には、ホストの処理負担の軽い方の圧縮方法を選択する。これによって、負荷変動に対応したプリンタ・ドライバにおける印刷データの圧縮処理を可能にしている。
【０００９】
さらに、特開平１１−１３４１２１号公報には、「印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体」に関する技術（以下、「第７の従来技術」と言う）が記載されている。この第７の従来技術では、印刷装置においてページ記述言語で記述された印刷ジョブを第２の印刷データへの展開処理、つまりイメージデータへの展開処理を行うとともに、それ並行して、データ処理装置のスプーラにおいても第２のデータへの展開処理を必ず行う。そして、印刷装置でジャムが発生した場合などでは、データ処理装置側における第２の印刷データを用いて印刷処理を行う。これによって、印刷装置の処理負担を軽減し、印刷処理を向上させることができる。
【００１０】
さらに、特開平１１−１４３６５６号公報には、「印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体」に関する技術（以下、「第８の従来技術」と言う）が記載されている。この第８の従来技術では、アプリケーションからの印刷要求に伴って生成される所定のページ記述言語データを、ＪＡＶＡなどのデバイスに依存しないプログラミング言語で記述される変換資源によってデバイスに依存する中間コードまたは印刷装置が印刷可能なビットマップイメージデータに変換する。これによって、最大スループットを維持し、印刷処理を向上させることができる。
【００１１】
さらに、特開平１１−２０３０６４号公報には、「画像処理装置および方法およびプログラム記憶媒体」に関する技術（以下、「第９の従来技術」と言う）が記載されている。この第９の従来技術では、画像データが外部装置へ転送される際に、画像データの転送速度を検出し、この検出結果に基づいてホスト側でプリレンダリングを行う。これによって、転送レートに応じた動的なレンダリング処理が可能となる。
【００１２】
上述のように、プリンタを接続したネットワークにおいて、印刷ジョブ処理の効率化を図るための様々な従来技術がある。そこで、第３の従来技術として説明した印刷処理時間の予測技術を採用した上で、その印刷待ち時間に第５ないし第９の従来技術として説明した印刷ジョブの内容に対する変換処理等の技術をいずれか１つまたは２つ以上を組み合わせて採用すれば、印刷待ち時間を正確に予測した上でプリンタ・ドライバやスプーラ等において印刷ジョブの内容に対して変換処理等を行うことも可能となり、印刷処理をさらに効率化することが可能になるようにも思われる。
【００１３】
ところが、以下に示すような問題が発生する。例えば、第３の従来技術と第７の従来技術を組み合わせて採用し、プリンタにおける印刷処理時間を予測して、その予想に基づいてスプーラ等で印刷ジョブの内容に変換処理を行うとする。この場合、印刷ジョブの内容の変換処理はプリンタの印刷処理負担を軽減させるなどのメリットを持つ反面、プリンタにおける印刷処理時間を変動させるので、この変換処理の前になされた印刷処理時間の予測を狂わせる要因になる。印刷待ち時間の予測が正しくないということは、印刷ジョブの内容の変換処理を行うか否かを判断するための基準が正しくないことになってしまう。
【００１４】
また、第６の従来技術と第９の従来技術を組み合わせて採用し、プリンタ・ドライバが印刷ジョブを圧縮処理した後に、スプーラがプリンタの印刷処理負担に応じてその印刷ジョブを展開してレンダリング処理を施し、生成されたビットマップデータを圧縮処理してプリンタへ送信したとする。この場合、プリンタ・ドライバで圧縮された印刷ジョブに対してスプーラで再度圧縮処理を行うので、２重に圧縮処理が行われている。したがって、１つの印刷ジョブに対して施される処理の整合性がとれておらず、また無駄な処理を行っていることになる。さらに、印刷ジョブに対して変換処理を行うためにインストールされているモジュールも無駄になってしまう。
【００１５】
したがって、上述の従来技術をそのまま組み合わせて利用しても、相乗効果が得られないばかりか、逆に有害な結果をもたらす場合すらあると言える。さらに、上述のようなネットワークに複数のスプーラが存在した場合、第１から第９までの従来技術では複数のスプーラが連携して印刷ジョブを管理する構成を全く有さないので、印刷処理の効率化が図れないという問題がある。
【００１６】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、プリンタを接続したネットワークにおいて、印刷ジョブの内容に変換処理を加えても、印刷ジョブの印刷待ち時間を正確に予測し、印刷ジョブに対して整合性のとれた処理を行うことが可能な印刷処理装置及び印刷処理方法を提供することを目的とするものである。また、複数の印刷処理装置が存在するネットワークにおいても、印刷の効率化を図ることが可能な印刷処理装置及び印刷処理方法を提供することを目的とするものである。
【００１７】
【課題を解決するための手段】
本発明は、印刷処理装置及び印刷処理方法として、印刷ジョブの内容とともに必要に応じて該印刷ジョブの内容に対する変換処理内容を示す印刷ジョブ状態及び該印刷ジョブの内容を変換処理する印刷処理資源を格納しておき、その印刷ジョブの内容に対する変換処理内容を印刷ジョブ状態として管理するように構成している。これによって、印刷ジョブごとに印刷ジョブの内容の変換処理の状態を管理でき、各印刷ジョブに施された変換処理内容を踏まえて次段の処理を行うことが可能になる。
【００１８】
また、プリンタにおける印刷処理時間を印刷ジョブ状態に基づいて予測し、その予測結果に基づいて印刷ジョブ内容変換判断手段で印刷ジョブの内容を変換すべきか否かを判断するようにしている。これによって、印刷ジョブの内容に対して施された変換処理を予測材料として利用できるので、変換処理を施した印刷ジョブの印刷処理待ち時間を正確に予測することが可能になる。
【００１９】
さらに、印刷ジョブ管理情報をプリンタ・ドライバ手段もしくはプリンタまたは他の印刷処理装置に対して公開し、逆に他の印刷処理装置に保持された印刷ジョブ管理情報を参照するように構成し、また他の印刷処理装置に印刷ジョブを送信可能に構成することができる。これによって、２以上の印刷処理装置を設けたネットワークにおいて、印刷ジョブ管理情報をプリンタ・ドライバ手段、プリンタおよび印刷処理装置同士で共有し、印刷ジョブの処理負担を印刷処理装置間で適切に配分することが可能になる。
【００２０】
また、上述のように印刷ジョブの内容とその印刷ジョブの内容を変換処理する印刷処理資源を一体に管理するので、例えば印刷処理装置やプリンタなどがそれぞれすべての印刷処理資源を予め備えておく必要がなく、不足している印刷処理資源や最新の印刷処理資源が存在すれば、印刷ジョブや他の印刷処理装置等から取得することができ、また取得した印刷処理資源を印刷ジョブに設定することが可能である。また、各印刷ジョブの印刷ジョブ状態に応じた印刷処理資源を設定し、設定された印刷処理資源を利用して変換処理を進めてゆくことができる。もちろん、印刷処理資源が不要になれば削除することもできる。
【００２１】
【発明の実施の形態】
図１は、本発明の印刷処理装置の第１の実施の形態を含むスプーラの一例を示すブロック図、図２は、本発明の印刷処理装置の第１の実施の形態を含むスプーラを接続したネットワーク構成の一例を示すブロック図である。図中、１１はスプーラ、１２は制御部、１３は印刷ジョブ送受信部、１４は印刷ジョブ記憶部、１５は印刷ジョブ状態管理部、１６は印刷処理時間予測部、１７は印刷ジョブ内容変換判断部、１８は印刷ジョブ処理部、１９は印刷ジョブ管理情報公開部、２０は印刷ジョブ管理情報参照部、２１は印刷処理資源設定部、２２は印刷処理資源取得部、２３は印刷処理資源利用部、２４は印刷処理資源削除部、２５は内部バス、２６はネットワーク、２７はスプーラ、２８，２９はプリンタ・ドライバ、３０，３１はプリンタ、３２はプリント・サーバ、３３，３４はクライアントである。
【００２２】
まず、図２に示すスプーラ１１を含むネットワークの構成について説明する。本発明の印刷処理装置の第１の実施の形態を含むスプーラ１１は、ネットワーク２６に接続されたプリント・サーバ３２に設けられている。また、ネットワーク２６には、プリンタ・ドライバ２８を設けたクライアント３３、スプーラ２７及びプリンタドライバ２９を設けたクライアント３４、さらにプリンタ３０，３１などが接続されている。このような構成において、印刷ジョブは、矢印Ａ，Ｂで示すように、プリンタ・ドライバ２８，２９からスプーラ１１へ送信され、スプーラ１１でスプーリングされる。また、スプーラ１１でスプーリングされた印刷ジョブは、矢印Ｃ，Ｄで示すように、適宜プリンタ３０，３１へ送信され、プリンタ３０，３１で印刷処理される。さらに、矢印Ｅで示すように、印刷ジョブがスプーラ１１からスプーラ２７へ送信される場合もある。もちろん、スプーラ２７においても同様の処理が行われる。なお、スプーラ１１は、プリント・サーバ以外のサーバに設けてもよく、クライアントに設けてもよい。また、ネットワーク２６に接続するサーバの設置台数は１台数に限られるものではなく、２台以上設けることもでき、さらにクライアントにスプーラを構成した場合、サーバは全く設けなくてもよい。さらに、プリント・サーバの他に、例えばファイルサーバなどの各種サーバや、クライアントを１台または３台以上接続することもできる。くわえて、同一サーバ内にスプーラとプリンタ・ドライバとを同時に設けてもよい。
【００２３】
スプーラ１１は、制御部１２、印刷ジョブ送受信部１３、印刷ジョブ記憶部１４、印刷ジョブ状態管理部１５、印刷処理時間予測部１６、印刷ジョブ内容変換判断部１７、印刷ジョブ処理部１８、印刷ジョブ管理情報公開部１９、印刷ジョブ管理情報参照部２０、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３、印刷処理資源削除部２４および内部バス２５から構成されており、印刷ジョブ送受信部１３、印刷ジョブ管理情報公開部１９および印刷ジョブ管理情報参照部２０を介してネットワーク２６に接続されている。
【００２４】
制御部１２は、ＣＰＵおよびキャッシュメモリなどから構成される。印刷ジョブ送受信部１３、印刷ジョブ記憶部１４、印刷ジョブ状態管理部１５、印刷処理時間予測部１６、印刷ジョブ内容変換判断部１７、印刷ジョブ処理部１８、印刷ジョブ管理情報公開部１９、印刷ジョブ管理情報参照部２０、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３および印刷処理資源削除部２４の各部を制御し、印刷ジョブのスプーリング処理などを実現する。
【００２５】
印刷ジョブ送受信部１３は、ネットワーク２６に接続され、ネットワーク２６に接続された他の装置との間において印刷ジョブの送受信などを行う。図３は、印刷ジョブ送受信部の構成例を示すブロック図である。図中、３５はネットワーク制御部、３６はタイマ、３７は受信バッファ、３８は送信バッファ、３９は記憶部である。印刷ジョブ送受信部１３は、ネットワーク制御部３５、タイマ３６、受信バッファ３７、送信バッファ３８及び記憶部３９などから構成される。印刷ジョブ送受信部１３は、プリンタ・ドライバ２８，２９や他のスプーラ２７を監視し、プリンタ・ドライバ２８，２９やスプーラ２７から送信された印刷ジョブを受信し、受信バッファ３７を介して印刷ジョブ記憶部１４に転送する。プリンタ・ドライバ２８，２９およびスプーラ２７の監視は、例えばタイマ３６によって測定される所定の時間間隔ごとに行うことができる。また、印刷ジョブ記憶部１４から印刷ジョブを受け取ると、受け取った印刷ジョブを送信バッファ３８を介してスプーラ２７やプリンタ３０，３１へ送信する。さらに、印刷ジョブの送受信の履歴データを記憶部３９に格納しておくことにより、印刷ジョブの送受信の履歴データを管理することができる。なお、印刷ジョブの送受信の履歴データとしては、印刷ジョブの受信元データあるいは送信先データ、および印刷ジョブに対する識別番号などのデータを含めておくことができる。
【００２６】
印刷ジョブ記憶部１４は、一般的な記憶装置から構成され、印刷ジョブ送受信部１３によって受信された印刷ジョブを格納する。図４は、印刷ジョブ記憶部に格納された印刷ジョブのデータ構造の一例を示す説明図である。図中、４１は印刷ジョブ内容、５１〜５ｍは印刷ジョブ状態、６１〜６ｎは印刷処理資源である。図４に示すように、印刷ジョブ記憶部１４に格納された印刷ジョブは、印刷ジョブ記憶部１４において、印刷ジョブ内容４１、印刷ジョブ状態５１〜５ｍ、および印刷処理資源６１〜６ｎのデータ構造を持つ。なお、印刷ジョブ状態５１〜５ｍおよび印刷処理資源６１〜６ｎの個数は、印刷ジョブにこれらが存在してない場合もあるので、０個以上となる。印刷ジョブ内容４１は、図形の描画命令や描画命令に対して変換処理を施した結果のデータなどの印刷ジョブの内容が含まれる。印刷ジョブ状態５１〜５ｍは、印刷ジョブの内容の統計情報などが設定される。印刷処理資源６１〜６ｎは、ページ記述言語を解析する実行モジュールとしてのページ記述言語解析処理モジュールや、パス構築、直線描画、円描画など行う実行モジュールとしてのグラフィックス処理モジュールである。さらに、ＪＰＥＧ方式による画像データの圧縮展開やＪＢＩＧ方式による画像データの圧縮展開などを行う実行モジュールとしての画像圧縮展開モジュール、ビットマップ・フォント、あるいはアウトライン・フォントのデータを処理する実行モジュールとしてのフォント処理モジュールなども含む。このように本発明では、印刷ジョブとして、印刷ジョブ内容４１とともに、必要に応じて印刷ジョブ状態５１〜５ｍおよび印刷処理資源６１〜６ｎを対応づけて印刷ジョブ記憶部１４に格納している。
【００２７】
印刷ジョブ状態管理部１５は、印刷ジョブ記憶部１４に保持されている印刷ジョブ状態５１〜５ｍを管理する。図５は、印刷ジョブ状態管理部の構成の一例を示す説明図である。図中、７１は印刷ジョブ状態制御部、８１〜８ｐは印刷ジョブ状態レジスタである。図５に示すように、印刷ジョブ状態管理部１５は、印刷ジョブ状態制御部７１、および印刷ジョブ状態を保持する複数の印刷ジョブ状態レジスタ８１〜８ｐで構成されている。印刷ジョブ状態制御部７１は、印刷ジョブ記憶部１４の印刷ジョブを参照し、印刷ジョブに印刷ジョブ状態５１〜５ｍが設定されている場合には、印刷ジョブ状態５１〜５ｍの設定内容を取得して印刷ジョブ状態レジスタ８１〜８ｐに所定の値を設定する。また、印刷ジョブに印刷ジョブ状態５１〜５ｍが設定されてない場合には、印刷ジョブの内容を解釈し、印刷ジョブ状態を印刷ジョブ状態レジスタ８１〜８ｐに設定する。具体的には、例えば印刷ジョブ状態制御部７１が印刷ジョブ内容４１を解釈して、印刷ジョブ内容４１がページ記述言語である場合、パス構築命令や塗りつぶし命令など各命令の種類ごとの出現回数などの値を印刷ジョブ状態レジスタ８１〜８ｐに設定する。さらに、印刷ジョブ状態制御部７１は、印刷ジョブ状態レジスタ８１〜８ｐの値を印刷ジョブ記憶部１４の対応する印刷ジョブの印刷ジョブ状態５１〜５ｍに設定する。また、印刷ジョブから印刷ジョブ状態の値を削除することもできる。さらに、印刷ジョブ処理部１８から、印刷ジョブの内容に対するレンダリング処理や圧縮処理などの変換処理を行った旨の通知を受けた場合には、この変換処理内容を印刷ジョブ状態レジスタ８１〜８ｐに設定する。
【００２８】
印刷処理時間予測部１６は、各印刷ジョブに対して、それぞれのスプーラやプリンタなどにおける印刷処理時間の予測を行う。図６は、印刷処理時間予測部の構成の一例を示す説明図である。図中、９１は印刷処理時間予測制御部、９２はスプーラ属性情報テーブル、９３はプリンタ属性情報テーブル、９４は予測印刷処理時間テーブル、９５は記憶部である。図６に示すように、印刷処理時間予測部１６は、一般的なＣＰＵとキャッシュメモリからなる印刷処理時間予測制御部９１と、一般的な記憶装置からなる記憶部９５で構成される。印刷処理時間予測制御部９１は、各印刷ジョブに対して、印刷ジョブ状態管理部１５における印刷ジョブ状態レジスタ８１〜８ｐの値、スプーラ属性情報テーブル９２およびプリンタ属性情報テーブル９３を参照して、スプーラ２７あるいはプリンタ３０，３１を利用した場合における印刷処理時間の予測値をそれぞれ算出し、その予測された印刷処理時間を予測印刷処理時間テーブル９４に記録する。なお、各印刷ジョブに対する印刷処理時間の具体的な予測方法については後述する。
【００２９】
記憶部９５には、スプーラ属性情報テーブル９２、プリンタ属性情報テーブル９３および予測印刷処理時間テーブル９４が設けられている。スプーラ属性情報テーブル９２は、他のスプーラ２７の処理能力などを保持する。図７は、スプーラ属性情報テーブルのデータ構造の一例を示す説明図である。図中、１０１はスプーラ識別番号、１０２はスプーラ名、１０３はスプーラＩＰアドレス、１０４はＣＰＵ処理速度、１０５はスプーラ負荷状態、１０６は印刷処理資源フラグ、１０７は利用可能なデータ型、１０８はクライアント情報、１０９はプリンタ情報、１１０は入力ポート状態、１１１は出力ポート状態である。図７に示すように、スプーラ属性情報テーブル９２は、スプーラ識別番号１０１、スプーラ名１０２、スプーラＩＰアドレス１０３、ＣＰＵ処理速度１０４、スプーラ負荷状態１０５、印刷処理資源フラグ１０６、利用可能なデータ型１０７、クライアント情報１０８、プリンタ情報１０９、入力ポート状態１１０、出力ポート状態１１１を表現するデータから構成される。スプーラ識別番号１０１は、ネットワークに接続されたスプーラを識別するための番号である。スプーラ名１０２は、スプーラに対する名称である。スプーラＩＰアドレス１０３は、スプーラに割り当てられたインターネット・プロトコルに対応したアドレスである。ＣＰＵ処理速度１０４は、スプーラの処理が実行されるハードウェアのＣＰＵ処理速度である。スプーラ負荷状態１０５は、スプーラの負荷状態を示す。印刷処理資源フラグ１０６は、スプーラにおいて利用可能な印刷処理資源に関する情報を示す。利用可能なデータ型１０７は、印刷ジョブの内容に対するデータ型である。クライアント情報１０８は、印刷ジョブの送信元に対する情報である。プリンタ情報１０９は、スプーラに接続されているプリンタの情報である。入力ポート状態１１０は、主に印刷ジョブ送受信部１３の受信バッファ３７に対する状態を保持する。出力ポート状態１１１は、主に印刷ジョブ送受信部３の送信バッファ３８に対する状態を保持する。
【００３０】
プリンタ属性情報テーブル９３は、プリンタ３０，３１の利用可能な用紙などの各プリンタに固有な情報を保持する。図８は、プリンタ属性情報テーブルのデータ構造の一例を示す説明図である。図中、１２１はプリンタ識別番号、１２２はプリンタ名、１２３はプリンタＩＰアドレス、１２４はＡＳＩＣ処理速度、１２５は受信バッファ容量、１２６は印刷処理資源フラグ、１２７は利用可能なデータ型、１２８は受信モード、１２９は印刷処理エンジン情報、１３０はポート情報、１３１はプリンタ状態である。図８に示すように、プリンタ属性情報テーブル９３は、プリンタ識別番号１２１、プリンタ名１２２、プリンタＩＰアドレス１２３、ＡＳＩＣ処理速度１２４、受信バッファ容量１２５、印刷処理資源フラグ１２６、利用可能なデータ型１２７、受信モード１２８、印刷処理エンジン情報１２９、ポート状態１３０、プリンタ状態１３１を表現するデータから構成される。プリンタ識別番号１２１は、ネットワークに接続されたプリンタを識別するための番号である。プリンタ名１２２は、プリンタに対する名称である。プリンタＩＰアドレス１２３は、プリンタに割り当てられたインターネット・プロトコルに対応したアドレスである。ＡＳＩＣ処理速度１２４は、プリンタ３０，３１において印刷処理に利用されるＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｅｄ  ＩＣ）の処理速度である。受信バッファ容量１２５は、プリンタの受信バッファの容量である。印刷処理資源フラグ１２６は、プリンタ３０，３１において利用可能な印刷処理資源に関する情報を示す。利用可能なデータ型１２７は、印刷ジョブの内容に対するデータ型である。受信モード１２８は、プリンタの受信モードに関する情報である。印刷処理エンジン情報１２９は、いわゆる印刷処理エンジンの解像度や処理速度などのデータである。ポート状態１３０は、プリンタ３０，３１を接続したネットワーク２６の状態を示す。プリンタ状態１３１は、プリンタのエラーなどの状態を示す。
【００３１】
予測印刷処理時間テーブル９４は、予測した印刷処理時間を記録する。図９は、予測印刷処理時間テーブルのデータ構造の一例を示す説明図である。図中、１４１はテーブル識別番号、１４２は印刷ジョブ識別番号、１４３はスプーラ識別番号、１４４はプリンタ識別番号、１４５はデータ型、１４６は印刷ジョブ状態、１４７は適用印刷処理資源情報、１４８は予測印刷処理時間、１４９は予測印刷待ち時間、１５０は印刷ジョブ内容変換判断結果である。図９に示すように、予測印刷処理時間テーブル９４は、テーブル識別番号１４１、印刷ジョブ識別番号１４２、スプーラ識別番号１４３、プリンタ識別番号１４４、データ型１４５、印刷ジョブ状態１４６、適用印刷処理資源情報１４７、予測印刷処理時間１４８、予測印刷待ち時間１４９、印刷ジョブ内容変換判断結果１５０を表現するデータから構成される。テーブル識別番号１４１は、各予測印刷処理時間テーブル９４に対する識別番号である。そして、印刷ジョブ識別番号１４２で示されている印刷ジョブを、スプーラ識別番号１４３で示されるスプーラあるいはプリンタ識別番号１４４で示されるプリンタにおいて、適用印刷処理資源情報１４７で示された印刷処理資源による変換処理を行う場合の予測された印刷処理時間を予測印刷処理時間１４８として記録する。すなわち、１つの印刷ジョブについて、変換処理を実行可能なそれぞれのスプーラやプリンタごとに印刷処理時間を予測して、この予測印刷処理時間テーブル９４が作成される。なお、適用印刷処理資源情報１４７は、印刷処理時間の予測に際して仮定された印刷処理資源についてのデータを示す。また、予測印刷待ち時間１４９および印刷ジョブ内容変換判断結果１５０のデータは、印刷ジョブ内容変換判断部１７によって利用される。この予測印刷処理時間テーブル９４中のスプーラ１１におけるデータは、印刷ジョブ管理情報として、例えば印刷ジョブ管理情報公開部１９で公開するなどして利用される。
【００３２】
図１に戻って、印刷ジョブ内容変換判断部１７は、一般的なＣＰＵから構成され、印刷処理時間予測部１６で予測された印刷処理時間に基づいて、印刷ジョブの待ち時間を予測し、その予測された待ち時間を印刷処理時間予測部１６中の予測印刷処理時間テーブル９４に予測印刷待ち時間１４９として記録する。また、印刷ジョブ内容変換判断部１７は、この印刷待ち時間が自己または他のスプーラまたはプリンタで印刷ジョブの変換をする時間より長いか否かの判断を行い、その判断結果を当該予測印刷処理時間テーブル９４に印刷ジョブ内容変換判断結果１５０として記録する。なお、各印刷ジョブに対する待ち時間の予測方法および印刷ジョブ内容変換判断方法については後述する。
【００３３】
印刷ジョブ処理部１８は、一般的なＣＰＵと一般的な記憶装置で構成され、印刷ジョブ内容変換判断部１７の判断結果に基づいて印刷処理を行う。自己のスプーラにおいて印刷ジョブの内容を変換する場合には、印刷処理資源利用部２３、あるいは印刷ジョブ自体に設定されている印刷処理資源を用いて、印刷ジョブの展開などの変換処理を行う。印刷処理資源利用部２３、あるいは印刷ジョブ自体に印刷処理資源が設定されていない印刷処理モジュールが必要であれば、スプーラ１１において事前に保持していた印刷処理モジュールを用いて印刷ジョブの内容の変換処理を行うことができる。さらに、印刷ジョブの変換内容を印刷ジョブ状態管理部１５に通知する。
【００３４】
印刷ジョブ管理情報公開部１９は、一般的なＣＰＵ、一般的な記憶装置およびネットワーク制御装置で構成され、ネットワーク２６に接続されている。また、印刷処理時間予測部１６の予測印刷処理時間テーブル９４のデータを参照してスプーラ１１における印刷ジョブ管理情報、すなわちスプーラ１１における印刷ジョブの総数、各印刷ジョブ状態、各印刷ジョブの印刷処理予測時間などのデータを複製し、複製したデータをスプーラ２７あるいはプリンタ・ドライバ２８，２９に対して公開する。
【００３５】
印刷ジョブ管理情報参照部２０は、一般的なＣＰＵ、一般的な記憶装置およびネットワーク制御装置で構成される。また、スプーラ２７における印刷ジョブ管理情報を取得して保持する。また、スプーラ２７の負荷状態のデータに基づいて印刷処理時間予測部１６のスプーラ属性情報テーブル９２におけるスプール負荷状態１０５の値を更新する。
【００３６】
印刷処理資源設定部２１は、一般的なＣＰＵと一般的な記憶装置で構成され、スプーラ２７あるいはプリンタ３０，３１が印刷処理資源を必要とする場合、印刷ジョブ状態に基づいて、印刷ジョブに印刷処理資源を設定することができる。
【００３７】
印刷処理資源取得部２２は、一般的なＣＰＵと一般的な記憶装置で構成され、スプーラ２７あるいはプリンタ・ドライバ２８，２９の印刷処理資源設定部によって印刷ジョブに設定された印刷処理資源を印刷ジョブから取り出し、印刷処理資源利用部２３に引き渡す。
【００３８】
印刷処理資源利用部２３は、一般的なＣＰＵと一般的な記憶装置で構成され、印刷処理資源取得部２２から印刷処理資源を受け取り、印刷ジョブ状態から得られた情報に基づいてレンダリング等の変換処理を印刷ジョブの内容に対して行う。
【００３９】
印刷処理資源削除部２４は、一般的なＣＰＵと一般的な記憶装置で構成され、印刷ジョブ状態レジスタ８１〜８ｐの値を参照して、当該印刷ジョブの印刷処理資源が不要である場合には、その印刷ジョブから印刷処理資源設定部２１によって設定された印刷処理資源を削除する。例えば印刷ジョブ処理部１８において印刷ジョブの内容に対して構文解析処理を行ったことによって、当該印刷ジョブに設定されたページ記述言語の構文解析モジュールが不要となった場合などが挙げられる。この場合には、印刷処理資源削除部２４は、印刷ジョブに設定されているページ記述言語の構文解析モジュールの印刷処理資源を削除する。
【００４０】
上述の印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３、印刷処理資源削除部２４などによって、例えばスプーラ１１に存在しない印刷処理資源についても利用可能になり、システム全体で印刷処理資源を共有することができるようになる。そのため、スプーラ１１はすべての印刷処理資源を常に保持している必要がなくなる。また、印刷処理資源は印刷ジョブの一部としても供給され、例えばアップデートされた印刷処理資源をすぐに利用可能であるなどの利点を有している。
【００４１】
内部バス２５は、制御バスおよびデータバスから構成され、制御部１２、印刷ジョブ送受信部１３、印刷ジョブ記憶部１４、印刷ジョブ状態管理部１５、印刷処理時間予測部１６、印刷ジョブ内容変換判断部１７、印刷ジョブ処理部１８、印刷ジョブ管理情報公開部１９、印刷ジョブ管理情報参照部２０、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３、印刷処理資源削除部２４を相互に接続し、制御信号あるいはデータを伝送する。
【００４２】
次に、印刷処理時間予測部１６における各印刷ジョブに対する印刷処理時間の予測方法について、具体例を用いながら説明する。なお、プリンタ・ドライバ２８，２９、スプーラ１１，２７およびプリンタ３０の仕様及び印刷処理状況については、以下の通りとする。すなわち、プリンタ・ドライバ２８，２９は、ページ記述言語により記述されたファイル（以下、ＰＤＬファイルと言う）を出力する。また、スプーラ１１は、ＰＤＬファイルをディスプレイ・リストで表現されたファイル（以下、中間ファイルと言う）に変換する印刷処理資源、ＰＤＬファイルをビットマップの画像形式で表現されたファイル（以下、ビットマップ・ファイルと言う）に変換する印刷処理資源、中間ファイルをビットマップ・ファイルに変換する印刷処理資源などを有する。ハードウェアとして、スプーラ１１は、５００ＭＨｚのＣＰＵを持つハードウェアで動作する。また、スプーラ２７は、１ＧＨｚのＣＰＵを持つハードウェアで動作する。
【００４３】
また、スプーラ１１は３つの印刷ジョブを保持中であり、これに対してスプーラ２７は印刷ジョブを保持してないものとする。なお、スプーラ１１に保持された３つの印刷ジョブは、印刷ジョブＡ、印刷ジョブＢおよび印刷ジョブＣであるものとする。また、プリンタ３０は、ＰＤＬファイル、中間ファイル、ビットマップ・ファイルの３種類のファイルを印刷処理可能であるとする。
【００４４】
さらに、プリンタ３０は、スプーラ１１から印刷ジョブＤを受信した直後であるものとする。また、スプーラ１１は、印刷ジョブＤの印刷ジョブ状態から、プリンタ３０において３５秒の印刷処理時間を要すると予測していたものとする。スプーラ１１の印刷ジョブ状態管理部１５は、印刷ジョブＡ、印刷ジョブＢおよび印刷ジョブＣの内容を解析し、各印刷ジョブに包含される描画命令（例えば、ＰＤＬファイルがＰｏｓｔＳｃｒｉｐｔファイルである場合、ｍｏｖｅｔｏオペレータあるいはｌｉｎｅｔｏオペレータなど）を計数し、描画命令の種類（例えば、ＰＤＬファイルがＰｏｓｔＳｃｒｉｐｔファイルである場合、ｌｉｎｅｔｏオペレータなどいわゆるパス構築命令、ｉｍａｇｅオペレータなど画像処理命令）ごとに統計をとり、そのデータを各印刷ジョブの印刷ジョブ状態として保持しているとする。また、印刷ジョブＡ、印刷ジョブＢ、印刷ジョブＣはそれぞれ１５０億個、２００億個、７５０億個の描画命令で構成されているとする。
【００４５】
以上の前提において、印刷処理時間予測部１６は、まず、各印刷ジョブの印刷ジョブ状態を参照し、各印刷ジョブの描画命令の種類とその命令の種類ごとの個数を特定する。続いて、印刷処理時間予測部１６の印刷処理時間予測制御部９１は、スプーラ属性情報テーブル９２のデータを参照することによって、スプーラ１１とスプーラ２７のＣＰＵ処理速度と利用可能な印刷処理資源の種類を特定する。さらに、印刷処理時間予測部１６は、印刷ジョブの命令の種類と個数および各スプーラにおけるＣＰＵ処理速度から各スプーラにおける各印刷ジョブの印刷処理資源に対する予測印刷処理時間を算出する。なお、特定のＣＰＵ処理速度におけるある印刷処理資源に対する処理時間、例えば５００ＭＨｚのＣＰＵにおける１個のｌｉｎｅｔｏオペレータなどの描画命令の処理時間は、後述するスプーラ１１の初期化処理において測定あるいは計算されており、予め印刷処理時間予測制御部９１で利用可能な状態になっているものとする。
【００４６】
そして、印刷処理時間予測部１６は、例えば
予測印刷処理時間＝Σi（印刷ジョブ状態ｉの個数×１秒あたりの印刷処理資源ｉの処理時間×ＣＰＵ処理速度）    …（１）
によって印刷時間を予測する。なお、印刷ジョブ状態ｉは、ｉ番目の印刷ジョブ状態すなわち描画命令を示し、印刷処理資源ｉは、印刷ジョブ状態ｉに対応する印刷処理資源を示す。
【００４７】
例えば各印刷ジョブの印刷ジョブ状態に対応する印刷処理資源を処理するのにいずれも２ナノ秒を要する場合には、式（１）により、印刷ジョブＡ、印刷ジョブＢ、印刷ジョブＣに対して、スプーラ１１ではそれぞれ３０秒、４０秒、１５０秒の処理時間、スプーラ２７ではそれぞれ１５秒、２０秒、７５秒の処理時間を要すると予測される。なお、これらの値は、それぞれ予測印刷処理時間テーブル９４に記録される。
【００４８】
続いて、印刷ジョブ内容変換判断部１７における各印刷ジョブに対する待ち時間の予測方法および印刷ジョブ内容変換判断方法について、やはり上述の具体例を用いながら説明する。印刷ジョブ記憶部１４において保持されている印刷ジョブが前述の印刷ジョブＡ、印刷ジョブＢおよび印刷ジョブＣである場合、各印刷ジョブのスプーラ１１における印刷待ち時間は、
予測印刷待ち時間＝Σj（先行する印刷ジョブｊの予測印刷処理時間）  …（２）
で予測される。
【００４９】
そこで、印刷ジョブ記憶部１４において印刷ジョブが印刷ジョブＡ、印刷ジョブＢ、印刷ジョブＣの順番で保持されていたとすると、印刷ジョブ内容変換判断部１７は、スプーラ１１における各印刷ジョブの待ち時間をそれぞれ、３５秒、６５秒、１０５秒と予測できる。これらの値は、予測印刷処理時間テーブル９４に格納される。なお、印刷ジョブＡに対する予測印刷待ち時間は、これに先行する印刷ジョブがないので、プリンタ３０における予測印刷処理時間をこれに対応させる。
【００５０】
プリンタ３０における印刷処理時間は、印刷ジョブ送受信部１３における印刷ジョブの送信履歴、印刷処理時間予測部１６におけるプリンタ属性情報テーブル９３および予測印刷処理時間テーブル９４を参照することによって予測することができる。ここでは、説明を簡単にするために、プリンタ３０において各印刷ジョブを処理するために、スプーラ１１における予測印刷処理時間よりも時間を要する、つまり、プリンタ３０は印刷ジョブＤを３５秒で処理するものとする。また、印刷ジョブ内容変換判断部１７は、スプーラ２７における各印刷ジョブの待ち時間をそれぞれ、３５秒、５０秒、７０秒と予測できる。また、これらの値も予測印刷処理時間テーブル９４に格納される。なお、プリンタ３１は印刷処理に長い時間、例えば３００秒以上を要する印刷ジョブＥを処理中であると仮定し、以下の各印刷ジョブに対する待ち時間の予測方法および印刷ジョブ内容変更方法の説明から、プリンタ３１についての説明は省略する
【００５１】
そこで、印刷ジョブ内容変換判断部１７は、予測印刷処理時間テーブル９４の予測印刷処理時間１４８と予測印刷待ち時間１４９を参照する。そして、印刷ジョブＡについては、スプーラ１１における予測印刷処理時間と予測印刷待ち時間がそれぞれ３０秒と３５秒、スプーラ２７における予測印刷処理時間と予測印刷待ち時間がそれぞれ１５秒と３５秒であることを特定する。そこで、これらの値の大小を比較し、予測処理時間がいずれのスプーラにおいても予測印刷待ち時間より短いことから、スプーラ１１および他のスプーラ２７において印刷処理内容変換可能と判断される。この判断結果として、印刷処理内容変換可能であることを示す値を印刷ジョブ内容変換判断結果１５０の値とする。
【００５２】
また、印刷ジョブＢについては、スプーラ１１における予測印刷処理時間と予測印刷待ち時間がそれぞれ４０秒と６５秒、スプーラ２７における予測印刷処理時間と予測印刷待ち時間がそれぞれ２０秒と５０秒であることを特定する。さらに、印刷ジョブＡおよび印刷ジョブＢについてスプーラ１１またはスプーラ２７においてジョブ内容を変換した場合の予測印刷処理時間と予測印刷待ち時間を特定し、印刷処理の内容を変換可能か否かをそれらの値の大小を比較することによって判断する。つまり、スプーラ１１において印刷ジョブＡおよび印刷ジョブＢ共に印刷ジョブの内容を変換する場合には、印刷処理時間は７０秒となり、スプーラ１１において印刷ジョブＡおよび印刷ジョブＢの印刷ジョブの内容を変換しない場合における印刷ジョブＢの予測待ち時間６５秒よりも大きな値となる。したがって、スプーラ１１において印刷ジョブＡおよび印刷ジョブＢの両方を印刷処理することは得策ではない。そこで、これら両方を印刷処理することができない旨を予測印刷処理時間テーブル９４に記録する。
【００５３】
さらに、各スプーラにおいて、各印刷ジョブに対する印刷処理の内容を変換した場合の予測印刷処理時間と予測印刷待ち時間を同じ方法で特定し、それぞれのスプーラにおいて印刷処理内容変換が可能か否か判断して行く。例えば、印刷ジョブＡをスプーラ１１において変換した場合、印刷ジョブＢに対する印刷待ち時間は６５秒となり、くわえて、印刷ジョブＢをスプーラ２７において変換した場合、印刷ジョブＣに対する印刷待ち時間はスプーラ１１においては６５秒、スプーラ２７においては５５秒となる。そして、これらを予測印刷処理時間とその大小を比較して行けばよい。
【００５４】
図１０は、本発明の印刷処理装置の第１の実施の形態を含むスプーラにおける印刷ジョブの処理手順の一例を示すフローチャートである。まずＳ１７１において、制御部１２が印刷ジョブ送受信部１３や印刷ジョブ記憶部１４などのスプーラ１１の各部の内部状態を初期化する。すなわち、この初期化処理において、印刷ジョブ送受信部１３のネットワーク制御部３５が受信バッファ３７、送信バッファ３８および記憶部３９を初期化する。また、制御部１２が印刷ジョブ記憶部１４を初期化する。さらに、印刷ジョブ状態管理部１５の印刷ジョブ状態制御部７１が印刷ジョブ状態レジスタ８１〜８ｐを初期化する。くわえて、印刷処理時間予測部１６の印刷処理時間予測制御部９１がスプーラ属性情報テーブル９２、プリンタ属性情報テーブル９３および予測印刷処理時間テーブル９４を初期化する。ここで、プリンタ属性情報テーブル９３のプリンタ名１２２などのデータは、既定値または利用者によって入力された値あるいはネットワークを介してプリンタ３０，３１から直接もしくは間接的に取得した値をテーブルの初期値として設定する。
【００５５】
さらに、印刷ジョブ管理情報公開部１９が印刷処理時間予測部１６の予測印刷処理時間テーブル９４のデータを参照して印刷ジョブ管理情報を生成し、ネットワーク２６を介してプリンタ・ドライバ２８，２９、スプーラ２７およびプリンタ３０，３１に対して当該印刷ジョブ管理情報を公開する。また、印刷ジョブ管理情報参照部２０がネットワーク２６を介してスプーラ２７の印刷ジョブ管理情報を参照し、印刷処理時間予測部１６の印刷処理時間予測制御部９１に対してスプーラ属性情報テーブル９２のデータを更新すべきことを通知する。このとき、印刷処理時間予測制御部９１は、この通知に対応してスプーラ属性情報テーブル９２のデータを更新する。これらの処理により、スプーラ１１と他のスプーラ２７などが印刷ジョブ管理情報を相互に利用することが可能になる。
【００５６】
次に、Ｓ１７２において、印刷ジョブ送受信部１３はプリンタ・ドライバ２８，２９およびスプーラ２７を監視し、スプーラ１１で印刷ジョブが受信可能な場合には、プリンタ・ドライバ２８，２９およびスプーラ２７から送信された印刷ジョブを受信する。また、印刷ジョブ送受信部１３は、プリンタ３０，３１およびスプーラ２７を監視し、スプーラ１１からこれらへ印刷ジョブが送信可能な場合には、印刷ジョブをスプーラ２７またはプリンタ３０，３１のいずれかへ送信する。
【００５７】
なお、印刷ジョブ送受信部１３は、Ｓ１７２の処理にかかわらず、タイマ３６によって測定される時刻に従って既定の時間間隔ごとに、プリンタ・ドライバ２８，２９およびスプーラ２７を監視している。そして、そのときにスプーラ１１が印刷ジョブを受信可能な状態であれば、プリンタ・ドライバ２８，２９または他のスプーラ２７から送信された印刷ジョブを受信する。また同様に、既定の時間間隔ごとにプリンタ３０，３１およびスプーラ２７を監視し、印刷ジョブを送信可能な場合には、印刷ジョブを他のスプーラ２７またはプリンタ３０，３１へ送信する。また、以上のようないわゆるポーリング方式ではなく、いわゆる非同期方式で印刷ジョブを送受信するように構成することもできる。
【００５８】
次に、Ｓ１７３において印刷ジョブ状態管理部１５が印刷ジョブ記憶部１４において保持されている印刷ジョブを参照して、印刷ジョブに印刷ジョブ状態が設定されているか否かを判断する。印刷ジョブに印刷ジョブ状態が設定されている場合には、Ｓ１７４において、印刷ジョブ状態管理部１５がその内容に応じて印刷ジョブ状態レジスタ８１〜８ｐの値を設定し、印刷ジョブ状態を印刷ジョブに設定してＳ１７５に進む。また、Ｓ１７３で印刷ジョブに印刷ジョブ状態が設定されてない場合には、Ｓ１８１において、印刷ジョブ状態管理部１５が印刷処理資源利用部２３の印刷処理資源を利用して、あるいはスプーラ１１において印刷処理として事前に用意している印刷処理モジュールを利用して、印刷ジョブの内容を解釈する。そして、この解釈によって得られた印刷ジョブ状態を印刷ジョブ状態レジスタ８１〜８ｐに設定してＳ１７５に進む。したがって、Ｓ１７４またはＳ１８１の処理を終えた段階で、各印刷ジョブに印刷ジョブ状態が設定された状態となる。
【００５９】
次に、Ｓ１７５において、印刷処理時間予測部１６が印刷ジョブ状態管理部１５の印刷状態レジスタ８１〜８ｐや、スプーラ２７の印刷ジョブ管理情報、およびスプーラ２７の属性情報であるスプーラ属性情報テーブル９２のデータ、さらにプリンタ３０，３１の属性情報であるプリンタ属性情報テーブル９３のデータ、ならびに印刷ジョブの送信履歴に基づいて、スプーラ１１とスプーラ２７のＣＰＵ処理速度と利用可能な印刷処理資源の種類を特定する。そして、印刷処理時間予測部１６が各印刷ジョブの命令の種類と個数ならびにスプーラ１１およびスプーラ２７のＣＰＵ処理速度から各スプーラにおける各印刷ジョブの印刷処理資源に対する予測印刷処理時間を算出し、その予測印刷処理時間を予測印刷処理時間テーブル９４の予測印刷処理時間１４８に記録する。予測印刷時間の算出については、具体例を用いて上述したようにして行うことができる。なお、印刷ジョブの送信履歴についての情報は、印刷ジョブ送受信部１３から取得する。また、スプーラ２７の印刷ジョブ管理情報は、印刷ジョブ管理情報参照部２０から取得する。
【００６０】
さらにＳ１７６において、印刷ジョブ内容変換判断部１７は、スプーラ１１の印刷ジョブ管理情報およびスプーラ２７の印刷ジョブ管理情報、ならびにスプーラ２７の属性情報あるいはプリンタ３０，３１の属性情報、および印刷ジョブの送信履歴に基づいて各印刷ジョブの待ち時間を予測する。そして、その予測した待ち時間を予測印刷処理時間テーブル９４における予測印刷待ち時間１４９として記録する。この予測印刷待ち時間の算出についても、具体例を用いて上述したようにして行うことができる。
【００６１】
Ｓ１７７において、印刷ジョブ内容変換判断部１７が予測印刷処理時間テーブル９４における予測印刷処理時間１４８の値と予測印刷待ち時間１４９の値とを参照してこれらの長短を比較し、スプーラ１１で印刷ジョブの内容を変換可能か否かを判断する。予測印刷処理時間１４８の方が予測印刷待ち時間１４９より短い場合には、スプーラ１１における印刷ジョブの内容の変換処理が可能である。この場合にはＳ１７８において、印刷ジョブ処理部１８が印刷処理資源取得部２２によって取得される印刷処理資源あるいはスプーラ１１において事前に用意している印刷処理資源など、印刷ジョブに設定されている印刷処理資源を用いて、印刷ジョブの内容の変換を行う。具体的には、ページ記述言語の解釈、いわゆるディスプレイ・リストなどの内部表現への変換、あるいはディスプレイ・リストからのレンダリング処理など、各種の処理を行うことができる。
【００６２】
さらにＳ１７９において、印刷ジョブ処理部１８による印刷ジョブの内容の変換処理内容を印刷ジョブ状態に反映するため、印刷ジョブ状態レジスタ８１〜８ｐの更新、さらに印刷ジョブ記憶部１４において保持されている印刷ジョブにおける印刷ジョブ状態の更新を行う。
【００６３】
さらに、スプーラ１１，２７の印刷ジョブ管理情報において最新の状況を反映させるために、Ｓ１８０において印刷ジョブ管理情報参照部２０は、ネットワーク２６を介してスプーラ２７における印刷ジョブ管理情報を更新する。また、印刷処理時間予測部１６の印刷処理時間予測制御部９１に対してスプーラ属性情報テーブル９２等のデータを更新すべきことを通知する。印刷処理時間予測制御部９１は、この通知を受けてスプーラ属性情報テーブル９２、プリンタ属性情報テーブル９３および予測印刷処理時間テーブル９４の関連項目のデータを更新する。さらに、印刷ジョブ管理情報公開部１９は、印刷処理時間予測部１６の予測印刷処理時間テーブル９４のデータを参照して、スプーラ１１の印刷ジョブ管理情報を更新し、ネットワーク２６を介してプリンタ・ドライバ２８，２９、スプーラ２７およびプリンタ３０，３１に対してスプーラ１１の印刷ジョブ管理情報を公開する。
【００６４】
また、上述のＳ１７７において、予測印刷処理時間１４８の方が予測印刷待ち時間１４９より長かった場合には、スプーラ１１において印刷ジョブの内容を変換処理する時間の方が印刷を待っている時間よりも長いことを示しているので、スプーラ１１で印刷ジョブの内容を変換しないと判断する。この場合には、Ｓ１８２において、さらに予測印刷時間処理テーブル９４から他のスプーラ２７で変換処理を行う場合の予測印刷処理時間１４８の値と予測印刷待ち時間１４９の値とを参照して、これらの長短を比較する。そして、予測印刷処理時間１４８の方が予測印刷待ち時間１４９より短い場合には、他のスプーラ２７において変換処理を行う方が有利であるので、スプーラ２７が変換処理可能な状態にあるか否かを調べる。そして、スプーラ２７において印刷ジョブの内容の変換処理が可能であれば、Ｓ１８３において、印刷ジョブをスプーラ１１からスプーラ２７へ移送し、スプーラ２７で印刷ジョブの内容の変換を行ってもらう。そしてＳ１８０において、上述のようにして印刷ジョブ管理情報を更新する。
【００６５】
また、スプーラ２７においても予測印刷処理時間１４８の方が予測印刷待ち時間１４９より長かった場合には、スプーラ１１，２７において印刷ジョブの内容を変換処理する時間の方が印刷を待つ時間よりも長いことを示している。この場合は、スプーラ１１，２７では印刷ジョブの内容の変換処理を行わず、そのままＳ１８０における印刷ジョブ管理情報の更新を行う。
【００６６】
なお、Ｓ１８２における判断結果は、予測印刷処理時間テーブル９４の印刷ジョブ内容変換判断結果１５０に記録する。また、Ｓ１８０における印刷ジョブ管理情報の更新処理を終えると、Ｓ１７２へ戻ってそれ以降の処理手順が順次繰り返されることになる。
【００６７】
以上の処理手順によれば、スプーラ１１，２７を設けたネットワークにおいて、印刷処理時間および印刷待ち時間の予測を反復して行い、また新たな予測印刷処理時間および予測印刷待ち時間に基づいて、スプーラ１１，２７のいずれにおいて印刷ジョブに対する変換処理を行うか、あるいはプリンタ３０，３１に処理を任せるのかを判断することが可能である。また、このような判断結果は、予測印刷処理時間テーブル９４に反映されるので、この判断結果を印刷処理時間および印刷待ち時間の予測にフィードバックし、正確な印刷処理時間及び印刷待ち時間の予測が可能である。
【００６８】
図１１は、本発明の印刷処理装置の第２の実施の形態を含むネットワークシステムの一例を示すブロック図である。図中、１６１はスプーラ、１６２はプリンタ・ドライバ、１６３はプリンタである。図１１に示したように、本発明の印刷処理装置の第２の実施の形態を含むネットワークシステムは、スプーラ１６１、プリンタ・ドライバ１６２及びプリンタ１６３から構成されている。プリンタ・ドライバ１６２は、第１の実施の形態において説明した印刷ジョブ状態管理部１５、さらに印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３および印刷処理資源削除部２４を有している。プリンタ１６３は、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３および印刷処理資源削除部２４を有している。なお、スプーラ１６１は、図１のスプーラ１１と同じものでもよく、印刷ジョブ状態管理部１５を設けないものとしてもよい。また、スプーラ１６１及びプリンタ・ドライバ１６２は、それぞれクライアントまたはサーバに設けられているものとする。
【００６９】
上記のように、印刷ジョブ状態管理部１５をプリンタ・ドライバ１６２に設けることによって、スプーラ１６１における印刷ジョブの内容の解析と印刷ジョブ状態の設定の手続きを省略することが可能となり、スプーラ１６１における印刷ジョブに対する処理時間を短くすることが可能となる。また、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３および印刷処理資源削除部２４をプリンタ・ドライバ１６２及びプリンタ１６３にも設けることによって、プリンタ・ドライバ１６２及びプリンタ１６３についても印刷処理資源を共有することが可能となる。また、各印刷ジョブに印刷処理資源を設定する処理等の負荷をスプーラ１６１、プリンタ・ドライバ１６２及びプリンタ１６３に分散することが可能になる。なお、印刷処理資源設定部２１、印刷処理資源取得部２２、印刷処理資源利用部２３および印刷処理資源削除部２４は、スプーラ１６１とともに、プリンタ・ドライバ１６２またはプリンタ１６３のいずれか一方に設けるものとしてもよい。
【００７０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、印刷処理装置において各印刷ジョブごとに印刷ジョブ状態を管理できる。また、印刷ジョブの内容に変換が加えられたときには、この変換処理内容により印刷ジョブ状態を更新し、印刷ジョブの管理に反映することが可能なので、印刷ジョブの印刷待ち時間を正確に予測でき、スループットを向上させることができる。このとき、印刷ジョブの内容に対する無駄な処理を行うこともない。さらに、印刷処理装置が２台以上設けられているネットワークにも対応することが可能であり、これらを効率よく利用して印刷処理を行うことができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の印刷処理装置の第１の実施の形態を含むスプーラの一例を示すブロック図である。
【図２】  本発明の印刷処理装置の第１の実施の形態を含むスプーラを接続したネットワーク構成の一例を示すブロック図である。
【図３】  印刷ジョブ送受信部の構成例を示すブロック図である。
【図４】  印刷ジョブ記憶部に格納された印刷ジョブのデータ構造の一例を示す説明図である。
【図５】  印刷ジョブ状態管理部の構成の一例を示す説明図である。
【図６】  印刷処理時間予測部の構成の一例を示す説明図である。
【図７】  スプーラ属性情報テーブルのデータ構造の一例を示す説明図である。
【図８】  プリンタ属性情報テーブルのデータ構造の一例を示す説明図である。
【図９】  予測印刷処理時間テーブルのデータ構造の一例を示す説明図である。
【図１０】  本発明の印刷処理装置の第１の実施の形態を含むスプーラにおける印刷ジョブの処理手順の一例を示すフローチャートである。
【図１１】  本発明の印刷処理装置の第２の実施の形態を含むネットワークシステムの一例を示すブロック図である。
【符号の説明】
１１…スプーラ、１２…制御部、１３…印刷ジョブ送受信部、１４…印刷ジョブ記憶部、１５…印刷ジョブ状態管理部、１６…印刷処理時間予測部、１７…印刷ジョブ内容変換判断部、１８…印刷ジョブ処理部、１９…印刷ジョブ管理情報公開部、２０…印刷ジョブ管理情報参照部、２１…印刷処理資源設定部、２２…印刷処理資源取得部、２３…印刷処理資源利用部、２４…印刷処理資源削除部、２５…内部バス、２６…ネットワーク、２７…スプーラ、２８，２９…プリンタ・ドライバ、３０，３１…プリンタ、３２…プリント・サーバ、３３，３４…クライアント、３５…ネットワーク制御部、３６…タイマ、３７…受信バッファ、３８…送信バッファ、３９…記憶部、４１…印刷ジョブ内容、５１〜５ｍ…印刷ジョブ状態、６１〜６ｎ…印刷処理資源、７１…印刷ジョブ状態制御部、８１〜８ｐ…印刷ジョブ状態レジスタ、９１…印刷処理時間予測制御部、９２…スプーラ属性情報テーブル、９３…プリンタ属性情報テーブル、９４…予測印刷処理時間テーブル、９５…記憶部、１０１…スプーラ識別番号、１０２…スプーラ名、１０３…スプーラＩＰアドレス、１０４…ＣＰＵ処理速度、１０５…スプーラ負荷状態、１０６…印刷処理資源フラグ、１０７…利用可能なデータ型、１０８…クライアント情報、１０９…プリンタ情報、１１０…入力ポート情報、１１１…出力ポート情報、１２１…プリンタ識別番号、１２２…プリンタ名、１２３…プリンタＩＰアドレス、１２４…ＡＳＩＣ処理速度、１２５…受信バッファ容量、１２６…印刷処理資源フラグ、１２７…利用可能なデータ型、１２８…受信モード、１２９…印刷処理エンジン情報、１３０…ポート情報、１３１…プリンタ状態、１４１…テーブル識別番号、１４２…印刷ジョブ識別番号、１４３…スプーラ識別番号、１４４…プリンタ識別番号、１４５…データ型、１４６…印刷ジョブ状態、１４７…適用印刷処理資源情報、１４８…予測印刷処理時間、１４９…予測印刷待ち時間、１５０…印刷ジョブ内容変換判断結果、１６１…スプーラ、１６２…プリンタ・ドライバ、１６３…プリンタ。
【図１】
0003897083.tif 000002
【図２】
0003897083.tif 000003
【図３】
0003897083.tif 000004
【図４】
0003897083.tif 000005
【図５】
0003897083.tif 000006
【図６】
0003897083.tif 000007
【図７】
0003897083.tif 000008
【図８】
0003897083.tif 000009
【図９】
0003897083.tif 000010
【図１０】
0003897083.tif 000011
【図１１】
0003897083.tif 000012