(57)【特許請求の範囲】
【請求項１】
印刷データの出力先を振り分けるデータ処理装置であって、前記データ処理装置は、
印刷するべき印刷データを受領して呼出され、前記印刷データから印刷設定を規定するジョブ情報データを抽出するとともに、前記印刷データからラスタイメージを作成する仮想プリンタドライバ手段と、
前記印刷データごとのインスタンスとして生成され、前記印刷データごとに発送先として決定された前記発送先のプリンタに対応する出力データを作成させるため、前記ジョブ情報データで指定される印刷設定に基づいて前記ラスタイメージの印刷を指示する発送処理手段と
を含み、
前記発送処理手段は、前記データ処理装置が消費するハードウェア資源の容量を制限するための資源管理情報および前記発送処理手段が現在使用しているハードウェア資源の容量を記録する発送処理情報とを管理し、前記ラスタイメージがカラー情報を含む可能性に応答して前記発送処理手段が読み出すべき前記ラスタイメージのデータ量を制限する資源管理手段を含む、
データ処理装置。
【請求項２】
前記資源管理情報は、前記ラスタイメージのデータ量を制限する第１資源管理情報および前記発送処理手段が消費するハードウェア資源の総量を制限する第２資源管理情報を含む、請求項１に記載のデータ処理装置。
【請求項３】
前記発送先のプリンタに対応するプリンタドライバは、前記発送先のプリンタが少なくともカラー出力対応するか否かを設定するドライバ情報を保持し、前記発送処理手段は、前記ドライバ情報を参照して、前記資源管理情報に設定された前記第１資源管理情報および前記第２資源管理情報の設定を行う、請求項１または２に記載のデータ処理装置。
【請求項４】
前記発送処理手段は、前記発送先のプリンタドライバ毎に起動時の前記資源管理情報を設定する、請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
印刷データの出力先を振り分けるデータ処理方法であって、前記データ処理方法は、データ処理装置が
印刷するべき印刷データを受領して呼出され、前記印刷データから印刷設定を規定するジョブ情報データを抽出するとともに、前記印刷データからラスタイメージを作成するステップと、
前記印刷データごとのインスタンスとして生成され、前記印刷データごとに発送先として決定された発送先のプリンタドライバに対応する出力データを作成させるため、前記ジョブ情報データで指定される印刷設定に基づいて前記ラスタイメージに対する印刷を指示するステップと
を含み、
前記印刷指示するステップは、前記データ処理装置が消費するハードウェア資源の容量を制限するための資源管理情報および前記印刷データの処理に現在使用しているハードウェア資源の容量を記録する発送処理情報を参照して、前記ラスタイメージがカラー情報を含む可能性を判断するステップと、
前記ラスタイメージがカラー情報を含む可能性がある場合に読み出すべき前記ラスタイメージのデータ量を制限するステップと
を含む、
データ処理方法。
【請求項６】
前記資源管理情報は、前記ラスタイメージのデータ量を制限する第１資源管理情報およびラスタイメージを処理するために消費するハードウェア資源の総量を制限する第２資源管理情報を含み、前記印刷を指示するステップは、
前記ラスタイメージがカラー情報を含む可能性がある場合に、前記印刷データの処理に現在使用しているハードウェア資源の容量を登録する前記発送処理情報を参照するステップと、
更新された前記発送処理情報が設定上限を超えるか否かを判断し、前記設定上限を超える場合、前記資源管理情報として前記第２資源管理情報に変更し、先に印刷指示したジョブが終了するまで後続ジョブの前記ラスタイメージの読み出しを待機させるステップと、
前記設定上限を超えない場合、前記発送処理情報を、前記ジョブの開始に際して追加される資源量を前記発送処理情報に追加して更新し、前記第１資源管理情報にしたがって前記ラスタイメージを読み出すステップと
を含む、請求項５に記載のデータ処理方法。
【請求項７】
前記印刷指示するステップは、前記発送先のプリンタが少なくともカラー出力対応するか否かを設定するドライバ情報を参照して、前記資源管理情報に設定された前記第１資源管理情報および前記第２資源管理情報の設定を行った後に新たな印刷データの処理のためのハードウェア資源を設定する、請求項５または６に記載のデータ処理方法。
【請求項８】
前記印刷指示するステップは、前記発送先のプリンタドライバ毎に起動時の前記資源管理情報を設定するステップを含む、請求項５〜７のいずれか１項に記載のデータ処理方法。
【請求項９】
情報処理装置を印刷データの出力先を振り分けるデータ処理装置として機能させるための装置実行可能なプログラムであって、前記プログラムは、前記情報処理装置を、
印刷するべき印刷データを受領して呼出され、前記印刷データから印刷設定を規定するジョブ情報データを抽出するとともに、前記印刷データからラスタイメージを作成する手段、
前記印刷データごとのインスタンスとして生成され、前記印刷データごとに発送先として決定された発送先のプリンタドライバに対応する出力データを作成させるため、前記ジョブ情報データで指定される印刷設定に基づいて前記ラスタイメージに対して印刷指示する手段、
として機能させ、前記印刷指示する手段は、
前記データ処理装置が消費するハードウェア資源の容量を制限するための資源管理情報および前記印刷データの処理に現在使用しているハードウェア資源の容量を記録する発送処理情報を参照して、前記ラスタイメージがカラー情報を含む可能性を判断する手段と、
前記ラスタイメージがカラー情報を含む可能性がある場合に前記印刷指示する手段が読み出すべき前記ラスタイメージのデータ量を制限する手段と
を含む、プログラム。
【請求項１０】
前記資源管理情報は、前記ラスタイメージのデータ量を制限する第１資源管理情報およびラスタイメージを処理するために消費するハードウェア資源の総量を制限する第２資源管理情報を含み、前記印刷指示する手段は、
前記ラスタイメージがカラー情報を含む可能性がある場合に、前記印刷データの処理に現在使用しているハードウェア資源の容量を登録する前記発送処理情報を参照する手段と、
更新された前記発送処理情報が設定上限を超えるか否かを判断し、前記設定上限を超える場合、前記資源管理情報として前記第２資源管理情報に変更し、先に印刷指示したジョブが終了するまで後続ジョブの前記ラスタイメージの読み出しを待機させる手段と、
前記設定上限を超えない場合、前記発送処理情報を、前記ジョブの開始に際して追加される資源量を前記発送処理情報に追加して更新し、前記第１資源管理情報にしたがって前記ラスタイメージを読み出す手段と
を含む、請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークプリント技術に関し、より詳細には、ネットワークプリント技術におけるハードウェア資源の消費を抑制するデータ処理に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータおよびネットワーク環境が普及し、パーソナルコンピュータから複数のプリンタが選択できる環境において、目的のプリンタを選択することが難しい場合もある。ネットワーク上に同じ名前のプリンタがプリントサーバーに複数登録されている場合、必ずしもプリンタが同一の業務セクションに設置されているとは限らないので間違ったプリンタへの出力は情報漏えいなどの問題に直結する場合も想定される。このような問題に対応するために、これまで出力先を振り分けるネットワークプリントシステムが知られている。
【０００３】
従来知られている出力先を振り分けることが可能なシステムは、帳票印刷における出力先振り分けを目的とするものである。しかしながら、ネットワークプリンタは、カラープリンタの普及化もあり、カラー画像画出力できる性能を有することも多い。この結果として印刷データはフルカラー印刷を行うため、ＣＭＫＹの階調を含むカラー情報を含んでプリンタサーバに送付される場合も想定される。
【０００４】
既存のシステムでカラー印刷させる場合、イメージを保存するフォーマットのサイズを小さくし、また、描画オブジェクトの属性を保存した高次フォーマットを使わなければならないという問題があった。一方、高次フォーマットを使用する場合、省容量化を行うことができるものの、ファイルフォーマットの編集やオブジェクト情報の加工に習熟する必要があった。
【０００５】
さらに、既存の出力先を振り分けるシステムは、サーバ上で動作することを前提に作られており、複数ユーザ、複数ホストからの印刷ジョブの生成依頼ごとにジョブ振り分けモジュールを並列に動作させるよう作られている。このため、カラー画像にそのまま既存のソフトウェア資源を流用しようとしても、カラーイメージを読み込むためのサーバ資源が枯渇する場合があるという問題があった。
【０００６】
特開２００８−０９２５５０号公報（特許文献１）には、通常時は生産性を向上させるとともに、所定の入出力時条件が速度低下条件を満たす特殊時には効率的な入出力動作をする画像形成装置および入出力制御方法を得る目的で、画像形成装置は、入力先機器および出力先機器が接続され当該機器に対して画像データを入出力する画像入出力処理実行部と、画像データの入出力時条件に応じて、当該入出力時条件が速度低下条件を満たさないとき、画像入出力処理実行部の行う画像データ入出力処理を通常動作にて行い、出力時条件が速度低下条件を満たすとき、画像入出力処理実行部の行う画像データ入出力処理を通常動作より処理速度の遅い速度低下動作にて行うように切り換える実行条件判定部を有している構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された技術は、所定の条件の下でデータを区切ってイメージデータを読み出すことで、ハードウェア資源の消費を制限することができる。しかしながら、特許文献１に記載された技術は、複数ユーザ、複数ホストからの印刷ジョブの依頼に応答してジョブ振り分けモジュールを並列に動作させる場合の資源管理を行うものではない。
【０００８】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、本発明は、出力先を振り分けしながら、振り分け処理を行うサーバ装置のハードウェア資源の枯渇を改善する、データ処理装置、データ処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記従来技術の問題点を解決するための印刷データの出力先を振り分けるデータ処理装置に対し、
印刷するべき印刷データを受領して呼出され、前記印刷データから印刷設定を規定するジョブ情報データを抽出するとともに、前記印刷データからラスタイメージを作成する仮想プリンタドライバ手段と、
前記印刷データごとのインスタンスとして生成され、前記印刷データごとに発送先として決定された発送先のプリンタに対応する出力データを作成させるため、前記ジョブ情報データで指定される印刷設定に基づいて前記ラスタイメージの印刷を指示する発送処理手段とを構成する。
【００１０】
前記発送処理手段は、前記データ処理装置が消費するハードウェア資源の容量を制限するための資源管理情報および前記発送処理手段が現在使用しているハードウェア資源の容量を記録する発送処理情報とを管理し、前記ラスタイメージがカラー情報を含む可能性に応答して前記発送処理手段が読み出すべき前記ラスタイメージのデータ量を制限する資源管理手段を含む。
【００１１】
前記資源管理情報は、前記ラスタイメージのデータ量を制限する第１資源管理情報および前記発送処理手段が消費するハードウェア資源の総量を制限する第２資源管理情報を含んでいて、ラスタイメージがカラー情報を含む可能性がある場合に、ジョブのために消費されるメモリ資源などの予測できない消費を防止する。
【００１２】
また、前記発送先のプリンタに対応するプリンタドライバは、前記発送先のプリンタが少なくともカラー出力対応するか否かを設定するドライバ情報を保持し、前記発送処理手段は、前記ドライバ情報を参照して、前記資源管理情報に設定された前記第１資源管理情報および前記第２資源管理情報の設定を行うことができる。
【００１３】
さらに、前記発送処理手段は、前記発送先のプリンタドライバ毎に起動時の前記資源管理情報を設定することができる。
【００１４】
本発明によれば、出力先を振り分けながら印刷指示を行うデータ処理装置の予測できないオーバーフローやシステムダウンに伴う高付加価値の印刷データの喪失を防止しながら、複数のクライアントからの印刷要求を処理することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明のデータ処理装置１１０を含むプリンタネットワーク１００の実施形態を示す図。
【図２】本実施形態のデータ処理装置１１０の機能ブロック２００を示す図。
【図３】本実施形態のデータ処理部２１０が実行するデータ処理方法のフローチャート。
【図４】本実施形態に採用することができる資源管理情報を設定する実施形態を示す図。
【図５】本実施形態で生成される発送処理部情報５００の実施形態を示す図。
【発明を実施するための形態】
【００１６】
以下、本発明を実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本発明のデータ処理装置１１０を含むプリンタネットワーク１００の実施形態を示す。プリンタネットワーク１００は、オフィスなどに配置される複数のクライアント１１２、１１４、１１６、１１８が、ネットワーク１３０に接続されて構成されている。ネットワーク１３０には、データ処理装置１１０の他、プリンタサーバ（図示せず）が接続され、各クライアント１１２、１１４、１１６、１１８からの印刷要求をプリンタサーバが管理してもよい。
【００１７】
図１に示す例示的な実施形態では、ＭＦＰ１２２、ページプリンタ１２４、１２６、インクジェットプリンタ１２８などがリモートプリンタとして接続されている。本実施形態では、上述したＭＦＰ１２２、各ページプリンタ１２４〜１２８を、以下、リモートプリンタ１２２〜１２８として総称する。
【００１８】
データ処理装置１１０は、図１に示す実施形態では、クライアント１１２〜１１８からの印刷要求および印刷要求に対応する印刷データを取得し、クライアント１１２〜１１８に割当てられたリモートプリンタを判断し、リモートプリンタに対応するドライバ２５０Ａ〜２５０Ｃをそれぞれ起動する。その後、データ処理部２１０は、印刷データに対応するＲＡＷデータを、当該クライアントに割当てられたリモートプリンタに宛てて送付する。なお、作成されたＲＡＷデータは、例えばＰＤＬ(Page Description Language)コマンドの追加処理などが行われて出力データとされ、指定されたリモートプリンタ１２２〜１２８に送付される。リモートプリンタ１２２〜１２８は、クライアント１１２〜１１８に対応し、リモートプリンタが設置されたロケーションで印刷処理を実行する。
【００１９】
なお、本実施形態ではクライアント１１２〜１１８に対してリモートプリンタを割当てる際には、クライアントのハードウェア上の識別値、例えばＩＰアドレス、ＭＡＣアドレス(Media Access Control Address)、クライアントに付されたコンピュータ名、またはユーザのログイン名などを使用することができ、本実施形態では、これらの値を総じて、出力要求元識別値として参照する。また、本発明の好ましい実施形態では、クライアント１１２、１１４、１１６は、ＩＣカードリーダを備え、クライアント１１２、１１４、１１６の利用者を識別して利用者ごとに割当てたリモートプリンタに文書の印刷を可能としている。
【００２０】
データ処理装置１１０は、好ましい実施形態では、サーバ装置として実装され、シングルコア、マルチコアのＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置などを含み、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘサーバ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）などのオペレーティングシステム（ＯＳ）による制御の下、印刷データの出力先を制御する。また、データ処理装置１１０と、クライアント１１２〜１１８の間は、ＲＤＰなどの適切な遠隔接続プロトコルを使用してトランザクションが可能とされている。また、データ処理装置１１０の機能は、クライアント１１２がファットクライアントとして実装される場合、クライアントの機能として実装することもできる。
【００２１】
クライアント１１２〜１１８と、リモートプリンタ１２２〜１２８の割当てについては種々の態様が考えられる。例えば、特定の実施形態では、クライアントまたはユーザを固有に識別する出力要求元識別値ごとに出力先にリモートプリンタを割当てることができる。また、他の実施形態では、クライアントグループまたはユーザグループを設定し、これらのグループ単位で特定のリモートプリンタを割当てる態様も採用することができる。図１に示した実施形態では、クライアント１１２−リモートプリンタ１２２とがロケーション１４０を構成し、各クライアントとプリンタとが対応付けられてロケーション１５０、１６０を構成する。クライアントはロケーション１４０〜１６０に複数存在することもでき、リモートプリンタについても各ロケーションに複数存在していてもよい。
【００２２】
本実施形態で、プリンタネットワーク１００にプリンタサーバを接続する場合、プリンタサーバがクライアント１１２〜１１８からの印刷要求を受領して、各クライアント１１２〜１１８に割当てられたリモートプリンタ１２２〜１２８に対して印刷データを送付し、印刷ジョブを実行させる構成とすることができる。プリンタサーバを利用する場合、プリンタサーバは、ハードウェア構成およびＯＳ構成についてデータ処理装置１１０と同様の構成とすることができる。なお、プリンタサーバは、必ずしもサーバ装置上に実装される必要はなく、パーソナルコンピュータに、プリンタサーバアプリケーションを実装して構成することもできる。
【００２３】
クライアント１１２〜１１８は、それぞれ同様の構成を有しており、ファットクライアント装置、例えば、それぞれがアプリケーションプログラムを実装し、各種処理を完結する、パーソナルコンピュータまたはワークステーションなどから構成することができる。ファットクライアントとしてクライアント１１２〜１１８を実装する場合、各クライアント１１２〜１１８は、シングルコア、マルチコアのＣＰＵを搭載し、ＲＡＭ、ＲＯＭ、ハードディスク装置、ネットワークインタフェースカード（ＮＩＣ）を含み、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）などの適切なＯＳの下で、各リモートプリンタ１２２〜１２８へと印刷処理を依頼している。
【００２４】
ファットクライアントとして実装されるクライアント１１２〜１１８は、ハードディスク装置などからアプリケーションプログラムおよびデータをＲＡＭに読込んで、ＣＰＵがアプリケーションプログラムを実行させることにより、文書、イメージ、マルチメディアまたはこれらが複合的に組合わされた電子的データとして印刷対象とする文書ファイルを生成する。
【００２５】
また、他の実施形態では、クライアント１１２〜１１８は、いわゆるシンクライアントとして実装することができる。シンクライアントは、ネットワーク接続モジュール、ユーザ認証機能、セッション生成モジュールなど、専らデータ処理装置１１０に対してサービス要求を発行し、処理結果を受領して印刷出力を依頼する機能のみを実装する。クライアント１１２〜１１８がシンクライアントとして実装される場合では、クライアント１１２〜１１８は、アプリケーションにより処理を終了した後、データ処理装置１１０に対して印刷要求を発行する。
【００２６】
データ処理装置１１０は、シンクライアントの要求に対応して作成したデータを、仮想プリンタドライバに渡し、ジョブごとに出力先、ステータス管理および画像変換処理を可能とする。作成された出力データは、クライアント１１２〜１１８に対応するリモートプリンタに送付され、印刷処理が実行される。なお、仮想プリンタドライバについてより詳細に後述する。本実施形態では、仮想プリンタドライバは、多数のクライアントからの印刷要求が発行された場合に、データ処理装置１１０の仮想プリンタドライバが複数のクライアントからの印刷要求をジョブ単位の並列処理を可能とすることで、印刷効率を向上させつつ、ステータス管理を効率化する。さらに、本実施形態の仮想プリンタドライバは、ビットマップなどの低位イメージデータの他、ＥＭＦ(Enhanced Metafile)、ＰＤＦ、ＸＰＳなど描画情報を伴う上位フォーマットで記述された印刷要求であっても効率的な処理を可能としている。
【００２７】
ネットワーク１３０は、１０００Ｂａｓｅ−ＴＸなどのイーサネット（登録商標）、光ネットワーク、ＩＥＥＥ８０２．１１などの規格の無線ネットワークを含んで構成することができ、フレームまたはＴＰＣ／ＩＰプロトコルに基づくパケット通信によって、相互通信を行う。また、ネットワーク１３０は、ＬＡＮの他、ＶＰＮ(Virtual Private Network)などによるセキュア環境下で構築されたインターネットなどの広域ネットワークを含んで構成されていてもよい。
【００２８】
図２は、本実施形態のデータ処理装置１１０の機能ブロック２００である。なお、図２に示すように、データ処理装置１１０は、複数の機能手段を含んで構成され、これらの機能手段は、ＲＡＭなどにプログラムを読込んで、ＣＰＵがプログラムを実行することによりコンピュータ上に実現されている。
【００２９】
図２に示すように、データ処理装置１１０は、データ処理部２１０と、アプリケーション実行部２１２とを含んで構成される。データ処理装置１１０のデータ処理部２１０と、アプリケーション実行部２１２とは、図２に示すように一体として構成することができる、また特定の実装形態では、図２に示す破線をネットワーク境界として、左手側の機能部をターミナルサーバとして実装し、破線の右手側の機能部分を、本実施形態のデータ処理装置１１０として分離して実装することもできる。アプリケーション実行部２１２は、ネットワーク１３０を介してクライアント１１２〜１１８の処理要求および印刷要求を受領してプリンタサーバとしての処理を実行し、データ処理部２１０に対して印刷するべきデータを送付する。また、アプリケーション実行部２１２と、データ処理部２１０とが一体としてサーバ装置を構成する場合、アプリケーション実行部２１２は、データ処理部２１０を呼び出して処理を開始させ、プリントジョブ（以下、単にジョブとして参照する。）として、ジョブＩＤなどを割り当てて識別される。
【００３０】
他の実施形態では、図２に示した機能モジュールは、図２の通りに実装される必要は無く、例えば、クライアント１１２〜１１８がそれぞれ、アプリケーション実行部２１２およびデータ処理部２１０の機能を保有するか、またはクライアント１１２〜１１８がそれぞれアプリケーション実行部２１２を実装する、いわゆるファットクライアントとして実装することができる。さらに他の実装形態としては、シンクライアントからの要求を処理するターミナルサーバが、アプリケーション実行部２１２およびデータ処理部２１０の機能を保有している実施形態として実装することもできる。さらに、クライアント１１２〜１１８がシンクライアントであり、ターミナルサーバが、アプリケーション実行部２１２を実装し、データ処理部２１０がプリンタサーバとして実装される実装形式も採用することができる。これらの特定の実装形式は、プリンタネットワーク１００が設置される環境やユーザの特定の用途に応じて適宜変更することができる。
【００３１】
データ処理部２１０は、仮想プリンタドライバ２１８と、仮想プリンタドライバ２１８が呼出された段階で、アプリケーション２１４から送付されたジョブデータをイメージデータおよびジョブ情報データに分離して一旦格納するジョブ格納部２２６と、出力先のリモートプリンタの発送先を制御しながら印刷出力するべきデータをリモートプリンタを制御するためのドライバに送付する発送処理部２３０とを含んでいる。仮想プリンタドライバ２１８は、アプリケーション実行部２１２のプリント指令モジュールとして実装されるプリント指令部２１６からの呼出しに対応して起動され、アプリケーション２１４から送付されるジョブデータを受領して処理を開始する。
【００３２】
本実施形態では、ジョブデータは、イメージデータおよびジョブ情報データを含んで構成される。イメージデータは、ビットマップ、ＪＰＥＧ、ＧＩＦなどの低次イメージデータを含むことができるし、また描画コードを含むＥＭＦ、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＰＤＦなどの高次イメージデータを含むこともできるし、さらに他の実施形態では低次イメージデータおよび高次イメージデータの両方を含むことができる。また、ジョブ情報データは、印刷要求の発行元を固有に識別する識別値、イメージデータの面付け情報、マージン、サイズ設定などの印刷設定に関連するデータである。
【００３３】
プリント指令部２１６は、説明する実施形態ではクライアント１１２〜１１８からの印刷要求を受領すると、仮想プリンタドライバ２１８に、現在開始したジョブを固有に識別するためのプロセスＩＤを生成し、新たなジョブが開始したことをプロセスＩＤを送付することによって通知する。仮想プリンタドライバ２１８は、プロセスＩＤを生成すると、当該ジョブのため発送処理部２３０のプライベートインスタンスを生成し、それぞれのプライベートインスタンスごとに発送先を決定する処理を実行させる。ジョブごとに起動されたプライベートインスタンスは、それぞれに割り当てられた記憶領域のイメージデータを取得し、それぞれ面付け、印刷設定の割付を実行する。
【００３４】
この間に、発送処理部２３０は、ジョブ情報データが含むユーザ名、ＩＰアドレスなどを参照して出力先とするべきリモートプリンタを、対応付けテーブルを参照して決定する。対応付けテーブルは、ユーザ名やクライアントのＩＰアドレスなどの値と、出力するべきリモートプリンタの割当てを登録するテーブルであり、発送先制御部２４２が管理することができる。発送先制御部２４２が発送先とするべきリモートプリンタを決定した段階で、印刷指示部２４４は、発送処理部２３０が管理するメモリ領域に生成されたラスタイメージを取得し、決定されたドライバ２５０Ａに送信する。
【００３５】
以下、仮想プリンタドライバ２１８の構成を詳細に説明する。仮想プリンタドライバ２１８は、仮想プリント管理部２２０と、データ抽出部２２２と、仮想描画部２２４とを含んで実装されている。仮想プリンタドライバ２１８は、ジョブデータを受領すると、仮想プリント管理部２２０を呼出し、ジョブデータをジョブ格納部２２６に格納する。一方、仮想プリント管理部２２０は、仮想描画部２２４を呼出して、ジョブ格納部２２６に格納されたジョブデータのうち、イメージデータをジョブに対応付けて処理するための記憶空間を確保させる。発送処理部２３０は、データ処理部２１０が管理するＲＡＭなどの記憶空間の適切な容量を割当てて記憶空間を割り当てて、例えば仮想スプーラとして機能させる。データ抽出部２２２は、一旦ジョブ格納部２２６に格納したジョブデータからジョブ情報データを抽出し、発送処理部２３０の発送先制御部２４２に渡す。
【００３６】
仮想描画部２２４は、現在、ジョブ格納部２２６に格納されているイメージデータを、ジョブ格納部２２６から適切な記憶領域に移動させ、イメージデータをプリンタプロセッサおよびスプーラといった循環処理を使用してラスタデータとして生成し、発送処理部２３０に渡す。ジョブ格納部２２６は、データ処理部２１０の実施形態に応じて、プリンタバッファまたはスプールファイルを格納する記憶領域として実装することができ、特定ＯＳの実装形式に限定されるものではない
【００３７】
発送処理部２３０は、本実施形態では、資源管理情報２３２と、発送処理部情報２３４とを含んでいる。資源管理情報２３２は、アプリケーション２１４などからユーザにより設定され、カラーラスタデータを処理する際の発送処理部２３０によるカラーラスタデータ読み取り条件および発送処理部２３０のハードウェア資源消費の上限設定を行うためのファイルである。また、発送処理部情報２３４は、発送処理部２３０が現在どの程度の容量を消費しているかの値を登録するファイルである。
【００３８】
発送処理部２３０に対してカラーラスタイメージが大量に送付された場合、発送処理部２３０が無制限にカラーラスタイメージを処理すると、発送処理部２３０の処理のためにデータ処理部２１０のメモリ資源社ＣＰＵ容量が大量に消費され、オーバーフローなどが発生すると、高付加価値の印刷データの損失につながる。このため、本実施形態では、発送処理部２３０が仮想描画部２２４から取得するカラーラスタイメージのサイズを、バンド区切り単位に制限する処理を追加する。
【００３９】
なお、本実施形態で、用語「バンド区切り」とは、カラーラスタイメージの処理可能なデータ区切りを意味し、例えば、ＣＭＹＫのカラーバンド毎に読み取りを行う場合や、さらに処理可能な細分化されたデータ単位をカラーラスタデータに割り当て、発送処理部２３０が処理可能な単位である。
【００４０】
発送処理部２３０は、発送先制御部２４２と、印刷指示部２４４と、対応付けテーブル２４６とを含んでいる。発送先制御部２４２は、データ抽出部２２２がジョブデータから分離・抽出したジョブ情報データから、対応付けテーブル２４６を参照して、印刷要求の発行元に関連付けて出力データの発送先を取得する。その後、発送先制御部２４２は、取得した発送先を印刷指示部２４４に通知する。印刷指示部２４４は、発送先制御部２４２からの通知に応じて出力データの送付先とするべきドライバ２５０Ａなどを呼出す。
【００４１】
印刷指示部２４４は、発送先制御部２４２から発送先の通知を受けると、発送先を、プロセスＩＤ、ジョブＩＤおよびデータＩＤに割り当てて登録するジョブ管理リスト２４０の対応するジョブＩＤのレコードにプロセスＩＤごとに発送先を設定する。印刷指示部２４４は、出力データを受領すると、ポートモニタなどへと出力データを送付し、リモートプリンタ１２２〜１２８からの印刷出力を可能とする。図２には、ジョブ管理リスト２４０の例示的実施形態を示す。
【００４２】
また、発送処理部２３０は、現時点で発送処理部２３０が消費しているハードウェア資源の容量をモニタしている。発送処理部２３０は、発送処理部２３０がジョブを開始すると、当該ジョブに割り当てるべきメモリ量やＣＰＵ能力を発送処理部情報２３４に追加し、現在の発送処理部２３０のハードウェア消費量の指示値とする。また、発送処理部２３０は、現在処理しているジョブが終了すると、当該ジョブに割り当てたハードウェア資源の値を減算することで、発送処理部２３０の処理負荷の値を与える。
【００４３】
発送処理部２３０は、さらに資源管理部２４８を含んでいて、資源管理部２４８は、発送処理部２３０の処理がハードウェア資源を設定された上限値以上に消費しないように制御する。資源管理部２４８の資源制御ポリシーは、説明する本実施形態では、２つ設定することができる。資源制御ポリシーは、資源管理条件１および資源管理条件１として参照でき、資源管理条件１は、設定フラグ＝０で参照され、発送処理部２３０の上限設定との関係でラスタイメージを制限なく読み込むか、バンド区分単位で読み込むかする資源管理ポリシーである。
【００４４】
また、資源管理条件２として参照される資源制御ポリシーは、設定フラグ＝１で参照され、発送処理部２３０の全ハードウェア資源消費量の上限を設定するものであり、この場合には、発送処理部２３０は、現在処理中の印刷ジョブが終了し、余裕が生じるまで。仮想描画部２２４が出力するデータを画像ＲＡＭ、ハードディスクなどの適切な持続性記憶領域にバッファリングする。
【００４５】
上述した処理を採用することにより、発送処理部２３０が、多数のカラーラスタイメージを処理する場合に発送処理部２３０のハードウェア資源消費の増大により、データ処理部２１０がオーバーフローしたり、システムダウンすることによる出力データの損失を防止することができる。
【００４６】
図３は、本実施形態のデータ処理部２１０が実行するデータ処理方法のフローチャートを示す。図３の処理は、ステップＳ３００から開始し、ステップＳ３０１で資源管理情報とドライバ設定を参照する。ドライバ情報は、ドライバの能力やカラー出力対応などに応じてどの資源情報を利用するかが、プリンタドライバ情報として記述されている。このため、ステップＳ３０１では、新たに開始するべきジョブについて、どの資源管理条件を設定して呼び出すか判断する技術的意味を有する。
【００４７】
ステップＳ３０２では、直後に発送処理部２３０が消費するハードウェア資源量が、資源管理条件１の範囲に該当するか否かを判断し、資源管理条件１に該当する範囲であれば、資源管理条件１の設定で、ラスタデータを読み込んで処理を実行する。
【００４８】
なお、資源管理条件１とは、上述したようにラスタイメージを、バンド区切り単位で読み込む処理を実行する。ステップＳ３０２で、資源管理条件１に該当しない場合（ｎｏ）処理をステップＳ３０４に渡し、ステップＳ３０４では、発送処理部情報を参照して、現在使用中のハードウェア資源の値を、計算する。計算に際しては、プロセス管理部などがモニタするプロセス毎のハードウェア消費量を取得して総和する処理を使用することができる。ステップＳ３０２で、資源管理条件１に該当する場合（ｙｅｓ）、ステップＳ３０３で、資源管理条件を、資源管理条件１に設定する。
【００４９】
ステップＳ３０５では、計算されたハードウェア資源が上限値を超えるか否かを判断し、設定条件を超える場合（ｙｅｓ）、ステップＳ３０６で、資源管理条件を２に設定変更し、発送処理部２３０のハードウェア資源消費量の上限制限ポリシーを適用し、ステップＳ３０７で発送処理部情報に当該情報を記述し、以後のジョブを、資源管理情報２の下で管理させる。
【００５０】
一方、ステップＳ３０５で、使用中のハードウェア資源が設定上限以下である場合（ｎｏ）、処理をステップＳ３０７に渡し、発送処理部情報に当該情報を記述する。
【００５１】
ステップＳ３０８では、更新された発送処理部情報が資源管理情報２に該当するか否かを判断し、該当する場合（ｙｅｓ）には、ステップＳ３０９で時間的に先にディスパッチした先発ジョブが終了するまで、ラスタデータの読み取り処理をwait()などのコマンドにより待機させる。一方、ステップＳ３０８が否定的な結果を返す場合（ｎｏ）、またはステップＳ３０９の判断が肯定的な結果を返す場合（ｙｅｓ）、処理をステップＳ３１０に渡し、発送処理部情報の値が、資源管理情報１に該当するか否かを判断する。ステップＳ３１０の判断で資源管理情報１に該当する場合（ｙｅｓ）、ステップＳ３１２で、バンド区切りでラスタデータを読み出して出力処理を完了させ、ステップＳ３１３で発送処理部情報から終了した処理のハードウェア資源量を減じ、ステップＳ３１４で、後続するジョブの待機に制御を渡し、データ処理方法のプロセスを終了する。
【００５２】
一方、ステップＳ３１０で、資源管理情報１に該当しないと判断された場合（ｎｏ）、資源管理条件２に該当せず、資源管理条件１にも該当しないことになるので、Ｓ３１１で一度にページ単位でラスタデータを読み出し、処理をステップＳ３１３に渡して印刷データの処理を完結させ、処理をステップＳ３１４で終了する。
【００５３】
図４は、本実施形態に採用することができる資源管理情報を設定する実施形態を示す。なお、コマンド＝ServerResourceControlは、仮想プリンタドライバ２１８に対する条件設定コマンドであり、コマンド＝JobResourceControlは、個々のドライバに割り当てられる条件設定コマンドである。本実施形態の資源管理設定情報４００は、例えば、仮想プリンタドライバ自体や個々のドライバのプリンタ情報、例えば、PrinterInfoなどに記述することができ、ドライバが呼び出される場合に、データ処理部２１０の能力やドライバ能力に対応して設定することができる。より具体的には、資源管理設定情報４１０は、データ処理部２１０により、全ジョブの資源消費を、資源管理条件１で設定する場合の実施形態であり、上述したコマンド設定は、データ処理部２１０のドライバ管理ウィザードから設定可能とすることができる。なお、コマンド＝ServerResourceControl=0の設定は、発送処理部２３０の利用可能なハードウェア資源の上限設定だけで資源管理を実行する条件を指定することができる。
【００５４】
また、資源管理設定情報４２０は、データ処理部２１０の能力は充分余裕があるので、制限を行っておらず、リモートプリンタ１に対しては、印刷データの読み取りを強制的にバンド区分単位で実行させるように資源管理条件１に指定する実施形態である。また、資源管理設定情報４３０は、他のリモートプリンタ２についても、資源管理条件１に指定されている。
【００５５】
図４に示すように、本実施形態では、データ処理部２１０の能力および個々のドライバの能力に応じてオーバーフローやシステムダウンなどによる印刷データの消失を最小限とすることができる。
【００５６】
図５は、本実施形態で生成される発送処理部情報５００の実施形態を示す。発送処理部情報５００は、共有メモリまたはグローバルでデータとしてメモリ上に展開され、それぞれの発送処理部２３０のインスタンスに共有されてもよいし、他の実施形態では、仮想プリンタドライバ２１８のレジストリやファイルなどに保存することができる。
【００５７】
発送処理部情報５００は、それぞれの行が発送処理部２３０のインスタンスが管理するプロセスおよびジョブの情報で、例えば、プロセスＩＤ、処理中のジョブＩＤ、処理中のラスタデータサイズ(カラム：Data Size)、処理中のラスタデータがカラービットマップかどうか(カラム：Color)、当該インスタンスが資源管理条件１または２に該当しているか（カラム：Resource Control 1またはカラム：Resource Control 2)などの情報を保持しており、これらが発送処理部２３０のインスタンスの数だけ登録されている。
【００５８】
発送処理部２３０が呼び出される際、発送処理部情報５００に記録された情報を参照し、自インスタンスが資源管理条件１か資源管理条件２に該当するかを計算する。データ処理部２１０のメモリ容量の上限がわかっている場合、現在起動している発送処理部２３０のインスタンスの数や処理中のラスタデータサイズ、カラービットマップであるかなどから演算子して、データ処理部２１０のメモリ上限を超えてしまう場合は自インスタンスの資源管理条件を、資源管理条件１に設定して起動することができる。また、自インスタンスを呼び出した結果、資源管理条件２としなければならないと判断すれば、起動時に資源管理条件２に設定し、先にディスパッチされたジョブが完了するまで自インスタンスの処理を待機させることが可能となる。
【００５９】
以上の処理について図５を使用して具体的に説明すると、まず初めにモノクロビットマップのラスタデータを処理する発送処理部２３０のインスタンスが起動中に、カラービットマップを処理する発送処理部２３０の別インスタンスが呼び出され、これら２インスタンスが並列して２つ起動している。カラービットマップの場合、多くの場合メモリを膨大に消費するので、図５に示す実施形態では、強制的に発送処理部２３０のインスタンスProc ID=2002とProcID=2003とを、資源管理条件１に設定変更および新規設定する。
【００６０】
また他の実施形態では、出力先のドライバ情報を参照し、カラー設定されている場合は発送処理部２３０のインスタンスの条件を、資源管理条件１に設定することもできる。説明する本実施形態では、カラー設定されているドライバに対して出力する際に、カラービットマップを読み込む時点で大量のメモリを消費させる種類のＯＳの場合、発送処理部２３０自体の設定を資源管理条件１に設定変更することもできる
また、メモリ容量の上限を考慮して３つめの印刷ジョブのためのインスタンスを生成する場合、発送処理部２３０の新規インスタンスについて条件設定を、資源管理条件２に設定し、先発の印刷ジョブが完了するまで待機させる構成とすることができる。さらに他の実施形態では、図５に示した発送処理部情報５００の他、最初に図４の資源管理設定情報４００を参照し、強制的に発送処理部２３０のインスタンスを資源管理条件１に設定して呼び出すこともできる。
【００６１】
本実施形態の上記機能は、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、プログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００６２】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００６３】
１００  プリンタネットワーク
１１０  データ処理装置
１１２〜１１８  クライアント
１２２〜１２８  リモートプリンタ
１３０  ネットワーク
１４０  ロケーション
１５０  ロケーション
１６０  ロケーション
２００  機能ブロック
２１０  データ処理部
２１２  アプリケーション実行部
２１４  アプリケーション
２１６  プリント指令部
２１８  仮想プリンタドライバ
２２０  仮想プリント管理部
２２２  データ抽出部
２２４  仮想描画部
２２６  ジョブ格納部
２３０  発送処理部
２３２  資源管理情報
２３４  発送処理部情報
２３８  ラスタイメージ
２４０  ジョブ管理リスト
２４２  発送先制御部
２４４  印刷指示部
２４６  対応付けテーブル
２４８  資源管理部
２５０Ａ〜Ｃ  ドライバ
４００  資源管理設定情報
４１０  資源管理設定情報
４２０  資源管理設定情報
４３０  資源管理設定情報
５００  発送処理部情報
【先行技術文献】
【特許文献】
【００６４】
【特許文献１】特開２００８−０９２５５０号公報
【図１】
0005458997.tif 000002
【図２】
0005458997.tif 000003
【図３】
0005458997.tif 000004
【図４】
0005458997.tif 000005
【図５】
0005458997.tif 000006