(57)【要約】【課題】  コンピュータネットワークに接続されたプリンタや複合機能印刷装置などにグリッドコンピューティングの負荷分散システムを適用する場合、クライアントから受け取ったジョブを投げる機器が他のジョブを処理中であると、分散処理に時間がかかり、クライアントのユーザは印刷結果をなかなか得られない。【解決手段】  印刷ジョブを入力し(S1101)、コンピュータネットワークに接続されたコンピュータ機器によって印刷ジョブにおけるデータ処理を分散処理する場合の処理時間を予測し(S1102)、その予測の結果に基づき、コンピュータネットワークに接続されたコンピュータ機器に印刷ジョブまたは印刷ジョブから分割したジョブを送信する(S1105)。【選択図】    図8
2005352691.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された情報処理装置であって、
印刷ジョブを入力する入力手段と、
前記ネットワークに接続された情報処理機器によって前記印刷ジョブにおけるデータ処理を分散処理する場合の処理時間を予測する予測手段と、
前記予測の結果に基づき、前記ネットワークに接続された情報処理機器に前記印刷ジョブまたは前記印刷ジョブから分割したジョブを送信する制御手段とを有することを特徴とする情報処理装置。
【請求項２】
さらに、前記ネットワークに接続された情報処理機器の能力情報および動作状況を把握する把握手段を有し、
前記予測手段は、前記能力情報および動作状況を参照して前記処理時間を予測することを特徴とする請求項1に記載された情報処理装置。
【請求項３】
前記予測手段は、さらに、前記印刷ジョブに指定された情報処理機器が当該ジョブにおけるデータ処理を実行する場合の処理時間を予測することを特徴とする請求項1または請求項2に記載された情報処理装置。
【請求項４】
前記制御手段は、予測処理時間が最小になるように、前記印刷ジョブまたは前記分割ジョブの送信を制御することを特徴とする請求項1から請求項3の何れかに記載された情報処理装置。
【請求項５】
さらに、前記印刷ジョブまたは前記分割ジョブの処理結果を受信する受信手段と、
前記分割ジョブの処理結果を結合する結合手段と、
前記印刷ジョブの処理結果または前記結合手段の結合結果を印刷データとして、前記印刷ジョブに指定された情報処理機器に送信する送信手段を有することを特徴とする請求項1から請求項4の何れかに記載された情報処理装置。
【請求項６】
ネットワークに接続された情報処理装置の制御方法であって、
印刷ジョブを入力し、
前記ネットワークに接続された情報処理機器によって前記印刷ジョブにおけるデータ処理を分散処理する場合の処理時間を予測し、
前記予測の結果に基づき、前記ネットワークに接続された情報処理機器に前記印刷ジョブまたは前記印刷ジョブから分割したジョブを送信することを特徴とする制御方法。
【請求項７】
情報処理装置を制御して、請求項6に記載された制御を実現することを特徴とするプログラム。
【請求項８】
請求項7に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置およびその制御方法に関し、例えば、システムの状況に応じた柔軟な分散処理に関する。
【背景技術】
【０００２】
多数の頁や部数を印刷する場合、その出力先を分けることで（分散印刷）高速印刷を可能にするクラスタリング機構については複数の提案があり、ネットワーク上の機器（プリンタや複合機能印刷装置など）がネットワーク接続された別の機器に処理を振り分けて処理を分散することで、処理を高速に終了することが行われる。
【０００３】
クラスタリング機構による分散処理は、印刷する頁や部数を分割して複数の機器に印刷まで行わせるものであり、クライアントが指定した機器がすべての頁および部数の印刷を行うわけではない。従って、大量の印刷物を並列に印刷する目的には適しているが、頁分けなどのフィニュシング処理をするには、複数の機器でばらばらに出力され印刷物を、任意の手段を用いて集めた後、処理・加工する必要がある。
【０００４】
印刷にかかわる分散処理としては、特願平9-204277号公報に、ネットワーク上の複数の装置によりラスタライズ処理された印刷データを効率的に回収してシステム全体の処理速度を改善する技術が開示されている。また、特願平9-218861号公報には、プリンタ記述言語(PDL)データの並列処理のスケジューリングを行う際に、処理の中間生成データを保持したまま他のジョブを待つような遊休時間を短くする技術が開示されている。
【０００５】
また、コンピュータネットワークに接続されたプリンタや複合機能印刷装置などのコンピュータ装置にグリッドコンピューティングの負荷分散システムを適用する場合、クライアントから受け取った大量の頁数のジョブや、処理に時間のかかるジョブを投げる機器が他のジョブ（例えばホストコンピュータから受けた印刷ジョブ）を処理中であると、分散処理に時間がかかり、クライアントのユーザは印刷結果をなかなか得られないことになる。
【０００６】
【特許文献１】特願平9-204277号公報
【特許文献２】特願平9-218861号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上述の問題を個々にまたはまとめて解決するもので、クラスタリングに比べてより利便性が高く、かつ、システムの状況に応じて柔軟に分散処理を行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明は、ネットワークに接続された情報処理装置であって、印刷ジョブを入力する入力手段と、前記ネットワークに接続された情報処理機器によって前記印刷ジョブにおけるデータ処理を分散処理する場合の処理時間を予測する予測手段と、前記予測の結果に基づき、前記ネットワークに接続された情報処理機器に前記印刷ジョブまたは前記印刷ジョブから分割したジョブを送信する制御手段とを有することを特徴とする。
【００１０】
また、ネットワークに接続された情報処理装置の制御方法であって、印刷ジョブを入力し、前記ネットワークに接続された情報処理機器によって前記印刷ジョブにおけるデータ処理を分散処理する場合の処理時間を予測し、前記予測の結果に基づき、前記ネットワークに接続された情報処理機器に前記印刷ジョブまたは前記印刷ジョブから分割したジョブを送信することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、クラスタリングに比べてより利便性が高く、かつ、システムの状況に応じて柔軟に分散処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明に好適な一実施例を詳細に説明する。
【００１３】
［グリッドコンピューティング］
図1はグリッドコンピューティング(grid computing)のアーキテクチャを説明する図である。グリッドには数種類あるが、ここで説明するのはデスクトップグリッドと呼ばれる、デスクトップPCなどのCPUの空き時間を利用してジョブを実行するタイプである。
【００１４】
図1に示すクライアントPCは、ユーザの指示に従い、ジョブを投入し(S1)、その要求（ジョブ）はタスクマネージャ（Task Manager、以下「TM」と略す）に渡され、TMはその内容（ジョブリクエスト）をダイナミックジョブスケジューラ（Dynamic Job Scheduler、以下「DJS」と略す）に伝える(S2)。グリッドコンピューティングシステム全体のリソースを管理するDJSは、最適なリソースのブローカ（Broker）を選択してTMに通知する(S3)。ここで、リソースとはPCのCPUの空き状態のことを言う。
【００１５】
PC内のブローカは、PCのリソースの処理能力を示す能力情報や、同じくPC内のリソースマネージャ（Resource Manager、以下「RM」と略す）が吸い上げた、リソースの空き状況を示す情報を含むリソースの情報をDJSに登録する。そして、TMから要求があるとそれに従い、RMにジョブを投入し(S4)、ジョブの完了（および処理結果）をTMに通知する(S5)。TMは、DSJが選択したブローカにジョブを投入した以後、そのジョブの進行状況のモニタリングを実施し、完了通知（および処理結果）をブローカから受信すると(S6)、クライアントPCに完了通知（および処理結果）を通知する(S7)。
【００１６】
また、RMは、リソースの情報をブローカに通知するとともに、ブローカの指示によりジョブをリソースに投入する。さらに、定期的にリソースの状態を調べて、リソースに変化・異常（例えば故障、他のジョブを受け付けた等）があれば、その旨をブローカに通知する。
【００１７】
このような仕組みにより、最適な（通常は利用されていない）CPUなどのリソースにジョブを配分することで分散処理を可能にするのが、デスクトップグリッドコンピューティングの実現形である。
【００１８】
なお、TMは、DJSが把握するリソースの処理能力を示す能力情報や、リソースの空き状況を示すリソース情報を、DJSにアクセスして取得または参照することが可能である。
【００１９】
図2はデスクトップグリッドコンピューティングの技術をプリンタ記述言語(PDL)処理に適用する場合の構成例を説明する図である。図1の説明では、グリッドを構成する各モジュールを別個のものとして扱ったが、デスクトップグリッドコンピューティングの技術を印刷装置に適用する場合、複数のモジュールが一つの機器の中に存在するのが一般的だと考えられる。
【００２０】
図2のクライアントPC 901は、プリンタ902に印刷を指示（プリントジョブの投入）する。プリンタ902はTMおよびDJSの機能を有し（つまり分散処理のホストマシンである）、PC 903から905はブローカおよびRMの機能をもつ。この構成により、例えばネットワーク905に接続された三台のPCを用いるグリッドコンピューティングによる分散処理が可能になる。
【００２１】
クライアントPC 901から投入されたジョブ（PDL形式のデータの印刷ジョブ）は、ホストマシンであるプリンタ902のTMおよびDJSによって、例えば第一頁はPC 903へ、第二頁はPC 904へ、第三頁はPC 905へといった具合に各リソースに分配され、PDLデータから画像データへの展開処理が実行される。その際、PDLデータのイメージ展開処理用のアプリケーションプログラムも同時にプリンタ902から各リソースへ送信されるようにする。各PCによってPDLデータから展開された画像（つまり、第一から第三頁の各頁の画像の処理結果）は、ホストマシンであるプリンタ902によって収集されて、三頁の画像906が印刷出力され、クライアントPC 901には印刷の終了が通知される。
【００２２】
勿論、この分散処理の対象リソースは四台以上のPCであってもよいし、ジョブ投入元のクライアントPC 901のリソースも利用することができるし、ネットワーク905上の他のプリンタのリソースを対象にしてもよい。
【００２３】
上記のように、コンピュータネットワークに接続されたプリンタや複合機能印刷装置などのコンピュータ装置にグリッドコンピューティングの負荷分散システムを適用する場合、クライアントから受け取った大量の頁数のジョブや、処理に時間のかかるジョブを投げる機器が他のジョブ（例えばホストコンピュータから受けた印刷ジョブ）中であると、分散処理に時間がかかり、クライアントのユーザは印刷結果をなかなか得られないことになる。
【００２４】
以下では、グリッドコンピューティングのフレームワークを使用して、分散処理の対象機器が他のジョブ（例えばホストコンピュータから受けた印刷ジョブ）中であるなど印刷システムの状況に応じてよりより高速な分散処理を行う実施例を詳細に説明する。
【００２５】
［プリンタ］
図3は実施例のプリンタ1000の構成例を示す図である。なお、本実施例は、複数の複合機(MFP)、複写機、レーザビームやインクジェットプリンタが接続されるネットワーク環境に適用することができるが、以下では、典型的なプリンタとしてカラーレーザビームプリンタ（以下、単に「プリンタ」と呼ぶ）を例として説明する。また、図1に示すプリンタは、各色成分の画素を8ビットで階調表現した多値データに基づき、600 dpiの記録密度の画像を印刷する。
【００２６】
図3において、プリンタ1000は、外部に接続されるホストコンピュータ200から供給されるプリントデータ（文字コード、画像データ、PDLデータ等）および制御コードからなる印刷命令を受信して記憶するとともに、受信した印刷命令に従い、文字パターンやイメージなどを形成して、記録紙上にカラー可視像を形成する。フォーマッタ制御部110は、ホストコンピュータから供給される印刷命令を解析して印刷イメージの生成処理を行うとともに、プリンタ1000全体の制御を行う。また、フォーマッタ制御部110は、ユーザの操作・指示を入力し、ユーザへプリンタ1000の状態を通知するための、スイッチおよびLCD表示器などが配され、例えばプリンタ1000の筐体の一部として実装されているオペレーションパネル120と接続されている。
【００２７】
フォーマッタ制御部110において生成された最終的な印刷イメージは、ビデオ信号VDOとして出力制御部130に読み出される。出力制御部130は、プリンタ1000の各部に配置された各種センサ（図示しない）から状態信号を入力するとともに、光学ユニット140および各種駆動系機構部に対し制御信号を出力して印刷処理を制御し実行する。
【００２８】
給紙カセット161から供給される記録紙Pは、その先端をグリッパ154fにより狭持されて転写ドラム154の外周に保持される。光学ユニット140から出力されるレーザビームによって感光ドラム151上には、四色に色分解された画像の静電潜像がイエロー(Y)、マゼンタ(M)、シアン(C)およびブラック(Bk)の順に形成される。各色の静電潜像は、現像選択機構部152内の対応する現像器Dy、Dm、DcまたはDkによってトナー現像され、現像結果のトナー像が転写ドラム154上の記録紙Pに重畳転写され、記録紙P上に多色画像が形成される。
【００２９】
その後、記録紙Pは、転写ドラム154より分離され、定着ユニット155へ搬送される。そして、定着ユニット155によって熱と圧力によりトナー像が定着された記録紙Pは、排紙部159より排紙トレイ部160に排出される。
【００３０】
ここで、各色の現像器Dy、Dm、DcおよびDkは、その両端に回転支軸を有し、それぞれ、その軸を中心に回転可能に現像器選択機構部152に保持されている。これによって、各現像器は、図3に示すように、現像器を選択するために現像器選択機構部152が回転軸152aを中心に回転しても、その姿勢を一定に維持することができる。選択された現像器が現像位置に移動後、支点153bを有する選択機構保持フレーム153がソレノイド153aにより感光ドラム151の方向へ引っ張られ、現像器選択機構部152が感光ドラム151の方向へ移動することで現像処理が行われる。
【００３１】
また、フォーマッタ制御部110は印刷命令をデバイスに依存するビットマップデータに展開し、出力制御部130は、フォーマッタ制御部110からビットマップデータに対応するビデオ信号VDOを読み出す。このビデオ信号は、レーザドライバ141に入力され半導体レーザ素子を駆動する。半導体レーザ素子から出力されるレーザ光Lは、ビデオ信号VDOに応じてオンオフ制御され、さらに、スキャナモータ143によって高速回転するポリゴンミラー142によって反射され、f-θレンズ144および反射鏡145を介して、帯電器156によって所定の極性に均一に帯電された感光ドラム151上を走査露光する。これにより、感光ドラム151上には、ビデオ信号VDOに対応する静電潜像が形成される。
【００３２】
次に、例えばM色の静電潜像がM色の現像器Dmにより現像され、感光体ドラム151上にM色の第一のトナー像が形成される。一方、所定のタイミングで記録紙Pが給紙カセット161から供給され、トナーと反対極性（例えばプラス極性）の転写バイアス電圧が転写ドラム154に印加されることで、記録紙Pが転写ドラム154の表面に静電吸着されるとともに、感光体ドラム151上の第一のトナー像が記録紙Pに転写される。トナー像転写後、感光ドラム151に残留するトナーは、クリーナ157によって除去され、次の色の潜像形成および現像に備える。
【００３３】
以下同様の手順によってC、Y、Bkの順に第二、第三および第四色の静電潜像の走査露光、トナー像の現像および転写が行われる。ただし、第二、第三および第四色の転写時には、前回よりも高いバイアス電圧が転写ドラム154に印加される点で異なる。
【００３４】
四色のトナー像が重畳転写された記録紙Pの先端部が分離位置に近づくと、分離爪158が接近し、分離爪158記録紙Pの先端が転写ドラム154の表面に接触し、記録紙Pを転写ドラム154から分離する。分離された記録紙Pは、上述したように、定着ユニット155に搬送され、記録紙上のトナー像が定着された後、排紙トレイ160上に排出される。
【００３５】
プリンタ1000は、以上のような画像形成過程を経て600 dpiの解像度で画像を出力する。なお、本実施例において印刷装置として使用可能なプリンタは、カラーレーザビームプリンタに限られず、インクジェットプリンタやサーマルプリンタなど他の方式のカラープリンタでもよいし、モノクロプリンタでもよい。
【００３６】
［印刷システム］
図4は実施例の印刷システムの構成例を示すブロック図で、印刷システムは、ホストコンピュータ3000と複数のプリンタ1000、1001、1002、…が通信路2000を介して相互に接続された構成を有する。なお、図2には三台の印刷装置を記載するが、印刷装置の数については問わない。
【００３７】
●フォーマッタ制御部
フォーマッタ制御部110はPDLコントローラなどとも呼ばれ、ホストコンピュータ3000などとの通信を行うネットワークインタフェイス(I/F) 3101、受信データなどを一時的に保持する受信バッファ3103、送信データなどを一時的に保持する送信バッファ3104、印刷データを解析するコマンド解析部3107、印刷制御処理を実行する印刷制御処理部3109、描画処理を実行する描画処理部3105、ページメモリ3106などから構成される。
【００３８】
ネットワークI/F 3101は、ホストコンピュータ3000などと印刷データの送受信を行う。ただし、ホストコンピュータ3000と印刷装置の接続方法は任意で、LANなどのコンピュータネットワークを介した接続でも、USB (Universal Serial Bus)、やIEEE1394などのシリアルバスを介した接続であってもよい。勿論、通信路2000として赤外線や無線を利用することもできる。
【００３９】
ネットワークI/F 3101によって受信された印刷データは受信バッファ3103に逐次蓄積され、必要に応じて、コマンド解析部3107または描画処理部3105によって読み出されて処理される。コマンド解析部3107は、印刷命令体系や印刷ジョブ制御言語に準じた制御プログラムにより構成され、コマンドが文字印刷、図形、イメージなどの描画に関する場合は、その処理を描画処理部3105に指示し、コマンドが給紙選択やリセット命令など描画以外の場合は、その処理を印刷制御処理部3109に指示する。
【００４０】
描画処理部3105は、文字やイメージの各描画オブジェクトをページメモリ3106内のバンドメモリに逐次展開するYMCKレンダラである。図3に示すカラーレーザビームプリンタの場合、MCYKの順にデバイス依存ビットマップデータをプリンタエンジン3110に送る必要があるが、標準状態では、そのために必要なメモリ容量をすべて確保するわけではない。つまり、描画処理部3105は、1プレーン（1、2または4ビット/画素）の数分の一の容量のメモリ領域をバンドメモリとしてページメモリ3106内に確保し、バンドメモリを繰り返し用いて、プリンタエンジン3110の処理に同期した描画処理を実行する。なお、プリンタエンジン3110は、図3に示す光学ユニット140、感光ドラム151、現像選択機構部152、転写ドラム154、定着ユニット155など上述した画像形成過程を実行する構成全体の総称である。
【００４１】
通常は、描画処理部3105による展開処理を、プリンタエンジン3110へのビデオ信号のシッピング処理が追いかけるバンディング制御によってページメモリ3106は管理されるが、充分なメモリ容量がある場合は一頁分のビットマップデータを展開可能なメモリ領域を確保してもよい。
【００４２】
また、一般に、フォーマッタ制御部110は、中央演算処理装置(CPU)、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)などを用いるコンピュータシステムに、フォーマッタ制御部用の制御・処理プログラムを実行させることによって構成される。フォーマッタ制御部110内の各部の処理は、マルチタスクモニタ（リアルタイムOS）の基でタイムシェアリングに処理される構成であってもよいし、各機能ごとに専用のコントローラハードウェアを用意して独立に処理される構成であっても構わない。
【００４３】
オペレーションパネル120は、前述したように、ユーザの操作・指示を入力し、ユーザへプリンタ1000の状態を通知するためのものである。出力制御部3108は、バンドメモリ（ページメモリ）3106に展開されたビットマップデータをビデオ信号に変換処理し、プリンタエンジン3110へ転送する。プリンタエンジン3110は、受信したビデオ信号に基づき、記録紙上に可視像を形成する。
【００４４】
●ホストコンピュータ
ホストコンピュータ3000は、プリントデータおよび制御コードからなる印刷データをプリンタ1000に出力する。ホストコンピュータ3000は、入力装置としてのキーボード310やマウス311、表示装置であるディスプレイモニタ320が接続された一つのコンピュータシステムとして構成されている。なお、ホストコンピュータ3000は、中央演算処理装置(CPU)、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ハードディスクドライブ(HDD)、各種入出力制御部(I/O)などのハードウェアの基で、Windows(R)などの基本ソフト(OS)がその制御を司り、その基本ソフトの基で、それぞれのアプリケーションソフトウェアやサブシステムプロセスが機能モジュールとして動作する。
【００４５】
本実施例に関与する機能のみに注目すると、ホストコンピュータ3000の機能部は、アプリケーションソフトウェア301、グラフィックサブシステム302、スプーラ303および印刷装置と通信を行うネットワークインタフェイス3033に区分される。アプリケーションソフトウェア301は、例えばワープロや表計算などのOS上で動作する、一般的なドキュメントを作成するアプリケーションソフトウェアである。
【００４６】
グラフィックサブシステム302は、OSの機能の一部であるGraphics Device Interface（以後「GDI」と記す）3021、GDI 3021から動的にリンクされるデバイスドライバであるプリンタドライバ3022、バンドスプーラ3023および積算データ3024（例えば、ともにRAMの所定領域に格納される）によって構成される。プリンタドライバ3022は、GDI 3021からDevice Driver Interface（以降「DDI」と記す）3025を介してコールされ、印刷装置に応じた処理を描画オブジェクトごとに行う。本実施例にかかるホストコンピュータ3000は、DDI関数に渡された情報をプリンタが高速に処理可能な印刷命令データ(PDL)形式に変換して直接スプーラ303に送出する場合と、生成した印刷命令データをバンド単位に分割してバンドスプーラ3023に第一のバンドから順に一頁分保持し、頁の最後にまとめてスプーラ303に送出する場合の、二通りの処理が存在する。
【００４７】
スプーラ303は、OSが管理するスプールファイルシステムで、設定により一頁単位またはジョブ単位で印刷データをスプールファイル3031（例えば、HDDに格納領域が割り当てられる）として格納し、I/F 3032およびネットワークI/F 3033を介して印刷装置に送信する。
【００４８】
OSによって、上述した各部の名称や機能的な枠組みが若干異なる場合もあるが、これら名称や枠組みの相違は本実施例の本質には影響しない。例えば、本実施例でスプーラやスプールファイルと呼ぶモジュールは、別のOSにおいてはプリントキューと呼ばれるモジュールを用いて実現可能である。
【００４９】
●プリンタドライバの処理
図5はプリンタドライバ3022の処理概要を模式的に示す図で、一般的なドキュメント作成アプリケーションを使って作成したドキュメント4001は、グラフィクス、文字、イメージを含むものとする。
【００５０】
ドキュメント4001を印刷する際、まず、OSにインストールされているプリンタドライバ3022に対して、OSを介して、描画命令4002、4003が渡される。プリンタドライバ3022は、初期状態は通常のPDLモード系ドライバと同様に、描画命令ごとに印刷命令（PDL）を生成し、スプーラ303に書き込み、コマンド数やコマンドの種類に応じた所定の計算式で計算したデータサイズを積算データ3024として積算する(S4004)。なお、OSを介してプリンタドライバ3022が受け取る描画命令（DDI関数）は、描画オブジェクトの重なりの、下位のレイヤから順に出力される仕様である。スプーラ303は、一頁分のデータすべてが書き込まれると、スプールファイル3031として蓄えた印刷命令（PDL）および積算データ3024を後述するタスクマネージャに送信し、スプールファイル3031をクリアし、積算データ3024のクリアをプリンタドライバ3023に指示する(S4012)。
【００５１】
一方、積算データ3024の値が、予め定めたデータサイズ、コマンド数などを超えた場合は頁単位の処理を、下記のバンド単位の処理に切り替える。なお、図5に示す「矩形描画（イメージの背景）」4021、「イメージ描画」4022および「イメージの実体（画像データ）」4023まではスプーラ303に格納され、「イメージの実体」4023がスプーラ303に出力された時点で積算データ3024が予め定めたデータサイズの閾値を超えたタイミングでバンド単位の処理に切り替えられるものとする。
【００５２】
プリンタドライバ3022は、上記のタイミングでバンド単位の処理に切り替えると、「イメージの実体」4023以降の描画命令4003に対する印刷命令を生成し、印刷装置が処理するバンド領域ごとに、印刷命令を分けて描画順にバンドスプーラ3023に格納し管理する(S4006)。OSから渡される描画命令4003（DDI関数）は、印刷装置の印刷方向とは無関係に出力されるため、本実施例のように頁の途中からバンド単位の処理に切り替わった場合も、第一のバンドから第N番目のバンドまで頁内のすべてのバンドに対する格納処理が行われる。
【００５３】
格納処理はプリンタドライバ3022内のDDI関数がコールされる度に行われる。もし、バンド単位の処理用に確保した格納領域に空きがなくなった場合は、新たにRAMの領域を確保することで対処する。一頁分の残りに相当する、第一のバンドから第N番目のバンドまでの描画データの格納が終了すると、印刷装置に処理させるバンド順にデータをスプーラ303に書き出し、バンドスプーラ3023をクリアする(S4009)。
【００５４】
各バンドデータの先頭には、以降に送出するバンドデータの情報(Band N inf)4011を付加することで、印刷データが頁単位からバンド単位に移行したことを印刷装置に認識させる。スプーラ303は、一頁分の印刷データが書き込まれると、スプーラファイル3031および積算データ3024を後述するタスクマネージャへ送信し、スプールファイル3031をクリアし、積算データ3024のクリアをプリンタドライバ3022に指示する(S4012)。
【００５５】
●印刷装置のハードウェア構成
図6は印刷装置のハードウェア構成例を示す図である。
【００５６】
印刷装置のCPU 501は、ROM 502に格納された制御・処理プログラムに従い、RAM 503をワークメモリに利用して印刷装置全体の制御、画像処理を含む演算処理などを行う。ROM 502は、制御・処理プログラムなどが格納されていて、CPU 501は、ROM 502からプログラムを読み出し実行することによって動作する。RAM 503は、ネットワーク2000との送受信データを一時保存する受信バッファ3103、送信バッファ3104、描画された画像データを一時保存するページメモリ3106、CPU 501が演算に必要なデータを一時保存するワークメモリなどとして利用される。これらCPU 501、ROM 502、RAM 503を組み合わせることによって、フォーマット制御部110などが実現される。
【００５７】
CPU 501、ROM 502、RAM 503はシステムバス504によって相互に接続され、さらにバスブリッジ506を介して、拡張バス505に接続される。バスブリッジ506によって、システムバス504と拡張バス505は独立に動作可能である。プリンタI/F 507は、RAM 503などに格納された画像データをプリンタエンジン3110へ転送する。
【００５８】
ネットワークI/F 3101は、バイセントロインタフェイスであるIEEE1284 I/F 508、および、ネットワークコントローラ509を備える。PHY 511は、ネットワーク2000と接続するための物理トランシーバである。また、MII I/F 512は、PHY 511へLANC 509を接続するためのインタフェイスで、PHY 511との間でハンドシェークのデータ転送を行う。さらに、LANC 509が内蔵する制御部513は、LANC 509内の制御および外部との通信の制御を行う。制御部513は、専用の信号線510によってCPU 501へ割り込みを通知することが可能で、ネットワーク2000とのデータの送受信の終了を通知したりすることが可能である。また、ネットワーク2000上の別の機器からデータパケットを受信し、そのデータパケットから特定のビットパターン検出した場合（以下「特定のパケットを受信」と記す）、CPU 501へその旨を割り込みで通知する。なお、特定のパケットには、マジックパケット(Magic Packet)や、後述する分散処理の開始を示すパケットが含まれ、それらのビットパターンは制御部513に予め保持されている。なお、分散処理の開始を示すパケットのビットパターンは、予めホストコンピュータおよび印刷装置の間で設定されているものとする。なお、本実施例では、この分散処理の開始を示す特定のビットパターンを有するパケットを「Gridパケット」と呼ぶことにする。
【００５９】
クロック制御部514は、図示しないクロック供給線によって上記の各モジュールにクロックを分配する。クロック制御部514は、CPU 501から設定可能なレジスタ514aの値によって、一部のモジュールへ供給するクロックの停止（以下「クロック停止」と呼ぶ）、クロック停止の解除、一部のモジュールへ供給するクロックを通常動作時よりも低い周波数にする（以下「クロックダウン」と呼ぶ）、通常動作時の周波数に戻す（以下「クロックアップ」と呼ぶ）などの制御が可能である。
【００６０】
●分散処理
図7は印刷システムの分散処理を説明する図である。なお、以下の説明では、タスクマネージャ(TM)3034およびダイナミックジョブスケジューラ(DJS)は、ホストコンピュータ3000のCPUが実行する基本ソフト上に実装されたソフトウェアによって機能するものとする。また、ブローカおよびリソースマネージャ(RM)は、各印刷装置のCPUが実行する基本ソフト上に実装されたソフトウェアによって機能するものとする。
【００６１】
まず、ホストコンピュータ3000はジョブを開始する。なお、本実施例の場合、ジョブとはプリント動作のことである。ジョブを受信したTM 3034は、ジョブリクエストをDJS 3035に送り、その分析を依頼し、DJS 3035からの分析結果（最適なブローカを示す通知を含む）に基づき、ジョブをブローカ1003、1005および/または1007へ投入する（図7はプリンタ1002のブローカ1007へジョブが投入された状態を示している）。なお、DJS 3035は、定期的にブローカへ状況を問い合わせてリソース（印刷装置の空き状況）の状況および印刷システム全体の状況を常に把握し、最適なブローカを選択する。
【００６２】
各印刷装置のブローカ1003、1005、1007は、同じ装置のRM 1004、1006、1008からリソースの空き状態などを吸い上げをDJS 3035に登録する。また、各ブローカは、TM 3034からジョブを投入されると、最適なリソースを探し、そのリソースにRMを介してジョブを投入し、RMからのジョブ完了通知（および処理結果）をTM 3034に通知する。また、各RMは、リソースに異常があれば、その旨を同じ装置のブローカへ通知する。なお、異常とは、他のクライアントからジョブを投入されて、TM 3034から投入される/されたジョブを継続して処理することができない場合などに当たる。
【００６３】
図8はTM 3034の処理を示すフローチャートである。
【００６４】
TM 3034は、ジョブが投入されるのを待ち(S1101)、ジョブが投入されると、予め指定された分散処理の対象機器にジョブを投入した場合のデータ処理（レンダリングおよびビットマップデータへの変換）に要する処理時間、および、ジョブに指定されたプリンタでデータ処理した場合の処理時間を予測する(S1102)。機器を予め指定する方法は、TM 3034およびDJS 3035において収集された情報を元にする。すなわち、TM 3034およびDJS 3035は定期的にブローカにRMの状況を問い合わせる。そして、TM 3034およびDJS 3035は、問い合わせの結果から、機器が分散処理を実行できる状態にあるかどうかを判断し、その判断結果を基に、予め登録されている機器から、分散処理を実行できる機器を選択し、機器を指定する。
【００６５】
処理時間は、前述した積算データ3024、DJS 3035から得られる機器（リソース）の能力情報、空き状況を示すリソース情報から式(1)を利用して予測する。また、ジョブに指定されたプリンタの能力情報はDJS 3035またはそのプリンタから取得する。また、プリンタドライバから通知される、頁数、描画命令をPDLの描画命令に変換する際にイメージ系の命令をコールした回数のカウント値などに基づき予測してもよい。また、処理はバンド単位、頁単位などに分割して複数の機器に投入してもよいし、ある機器ですべてを処理した方が速ければその機器にジョブを丸ごと投入してもよい。
Tp = V×d / (C×A)      …(1)
ここで、Tp：予測処理時間
V：処理データの量（例えば、積算データの値）
d：分割率（0＜d≦1）
C：能力情報が示す値（能力が高いほど大）
A：リソース情報が示す値（0＜A＜1）
ただし、ジョブに指定されたプリンタはA=1とする。
後述する、N等分の均等分割の場合はd=1/N、
不均等分割の場合、dは分割比率で決まる。
【００６６】
次に、予測した処理時間に基づき、処理時間が最小になる分散処理方法（分散処理しないを含む）、分割処理方法を決定する(S1103)。なお、通常は分散処理した方が速くても、予め指定された機器のリソースが他のジョブの処理中で処理の高速化が期待できない、あるいは、ジョブが比較的軽く指定されたプリンタの処理速度で充分処理できる場合などは、ジョブに指定されたプリンタに処理を行わせる。なお、予測するデータの処理時間には、分散処理結果を各機器から受け取るために必要な時間、受け取った分散処理結果を結合する時間なども考慮する。
【００６７】
次に、分散処理するか否かを判定し(S1104)、分散処理する場合は分散処理の対象機器にジョブから分割した処理を投入する(S1105)。勿論、複数の機器に分割した処理を分散投入してもよいし、ある機器ですべてを処理した方が速ければその機器にジョブを丸ごと投入してもよい。
【００６８】
次に、分割した処理を投入した機器から返される処理結果（ここでは、レンダリングされ、ビットマップデータに変換された画像データ）を結合し(S1106)、ジョブに指定されたプリンタに画像を印刷させて(S1108)ジョブを終了する。勿論、一台の機器に丸ごとジョブを投入した場合は処理結果を結合する必要はない。
【００６９】
また、分散処理しない（言い換えれば、ジョブに指定されたプリンタで処理する）場合は、ジョブに指定されたプリンタに処理(S1107)および画像の印刷(S1108)を行わせ、ジョブを終了する。
【００７０】
図9は分散処理方法、分割処理方法の決定(S1103)を説明する図である。
【００７１】
図9において、機器Aはジョブに指定されたプリンタ、機器BからDは予め指定された分散処理の対象機器で、機器Aによってジョブのデータ処理を行った場合を基準「1」とする他の機器の処理時間を示している。また、「丸投」列はジョブを丸ごと投入した場合の処理時間を、「頁分割（均等）」列は例えば30頁の印刷ジョブの場合、機器BからDに各10頁分の分割処理を行わせる場合の処理時間を、「頁分割（不均等）」は例えば30頁の印刷ジョブの場合、機器Bに15頁分、機器Cに10頁分、機器Dに5頁分の分割処理を行わせる場合の処理時間をそれぞれ示している。不均等分割の割合は、TM 3034がDJS 3035が保持する機器（リソース）の能力情報に基づき設定する。
【００７２】
図9(a)は、機器BからDのリソースに空きがある場合で、頁分割（均等）の場合は三台の機器の中で最も能力が低い機器Dの処理時間によって分散処理時間が決まり「0.5」と予測されるが、頁分割（不均等）によって分散処理を行えば最小の「0.3」になると予測される。従って、図9(a)の予測結果であれば、TM 3034は、機器BからDにより頁分割（不均等）によって分散処理を行うと決定する。
【００７３】
図9(b)は、機器CおよびDのリソースには空きがあるが、機器Bには負荷がかかりリソースの空きが少ない場合を示している。この場合、頁分割（不均等）では三台の機器の中でリソースの空きが少ない機器Bの処理時間によって分散処理時間が決まり「0.8」と予測されるが、頁分割（均等）によって分散処理を行えば「0.6」になると予測される。従って、図9(b)の予測結果であれば、TM 3034は、機器BからDにより頁分割（均等）によって分散処理を行うと決定する。
【００７４】
図9(C)は、機器Bだけでなく機器Cにも負荷がかかった状態を示している。この場合、分散処理時間はどれも「1」を超えるので、TM 3034は、機器A（ジョブに指定されたプリンタ）にジョブを投げる。言い換えれば、分散処理を行わない。
【００７５】
なお、図には示さないが、分散処理するよりも、機器Bなどにジョブを丸ごと投入した方が処理が速い場合もあり得る。そのような場合、TM 3034は、機器Bにジョブを丸子と投入する。
【００７６】
このように、分散処理の対象機器がジョブを処理する時間を予測し、分散処理時間が最小になると予測される分散処理方法および分割処理方法を設定する。従って、分散処理の対象機器が他のジョブ（例えばホストコンピュータから受けた印刷ジョブ）中であるなど、分散処理に時間がかかるようであれば、分割処理方法を変更する、他の機器にジョブを投げるなどにより、印刷システムの状況に応じてより高速な処理を行うことができ、分散処理に時間がかかり印刷結果がなかなか得られないといった問題を防ぐことができる。
【００７７】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７８】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００８０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００８１】
【図１】グリッドコンピューティング(grid computing)のアーキテクチャを説明する図、
【図２】デスクトップグリッドコンピューティングの技術をプリンタ記述言語(PDL)処理に適用する場合の構成例を説明する図、
【図３】実施例のプリンタの構成例を示す図、
【図４】実施例の印刷システムの構成例を示すブロック図
【図５】プリンタドライバの処理概要を模式的に示す図、
【図６】印刷装置のハードウェア構成例を示す図、
【図７】印刷システムの分散処理を説明する図、
【図８】TMの処理を示すフローチャート、
【図９】分散処理方法、分割処理方法の決定(S1103)を説明する図である。
【図１】
2005352691.tif 000003
【図２】
2005352691.tif 000004
【図３】
2005352691.tif 000005
【図４】
2005352691.tif 000006
【図５】
2005352691.tif 000007
【図６】
2005352691.tif 000008
【図７】
2005352691.tif 000009
【図８】
2005352691.tif 000010
【図９】
2005352691.tif 000011