(57)【要約】【課題】  省電力モードを有する機器をネットワーク接続して、他の機器から依頼されるジョブを処理する場合、省電力モードに移行する条件に該当せず、多くの機器は、省電力モードで待機する機会を失い、省エネルギの効果が損われる場合がある。【解決手段】  コンピュータネットワークに接続された、省電力モードを有する複数のプリンタ1000〜1005による分散処理を管理するサーバ3001のダイナミックジョブスケジューラ(DJS)は、それらプリンタの機器情報および動作状況を取得し、機器情報および動作状況に基づき、分散処理の対象機器を選択して、分散処理の要求元であるクライアントPC 3000のタスクマネージャ(TM)に通知する。【選択図】    図7
2006343955.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置であって、
前記複数の機器の機器情報および動作状況を取得する取得手段と、
前記機器情報および動作状況に基づき、前記分散処理の対象機器を選択する選択手段とを有することを特徴とする情報処理装置。
【請求項２】
前記機器情報は機器に設定された前記省電力モードに移行するまでの未使用時間情報、並びに、前記機器の未使用時間情報および消費電力情報を含み、前記動作状況は機器が前記省電力モードにあるか否かを示す情報を含むことを特徴とする請求項1に記載された情報処理装置。
【請求項３】
前記選択手段は、前記機器情報および動作状況に基づき、前記省電力モードにある機器、および、前記省電力モードへの移行間際にある機器以外の機器を前記対象機器として選択することを特徴とする請求項2に記載された情報処理装置。
【請求項４】
前記選択手段は、前記省電力モードにある機器であっても、前記消費電力情報が示す電力が他の機器に比べて小さい機器は前記対象機器として選択することを特徴とする請求項3に記載された情報処理装置。
【請求項５】
さらに、前記選択手段が選択した対象機器を示す情報を、前記分散処理の要求元に通知する通知手段を有することを特徴とする請求項1から請求項4の何れかに記載された情報処理装置。
【請求項６】
コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置であって、
前記複数の機器情報および動作状況を取得する取得手段と、
前記機器情報および動作状況に基づき、前記複数の機器に分配する分散処理量を設定する設定手段とを有することを特徴とする情報処理装置。
【請求項７】
前記機器情報は機器の処理能力を示す情報を含み、前記動作状況は機器が前記省電力モードあるか否か、および、前記省電力モードに移行するまでの時間情報を含むことを特徴とする請求項6に記載された情報処理装置。
【請求項８】
前記設定手段は、前記処理能力と前記消費電力情報の積に応じて前記分散処理量を設定することを特徴とする請求項7に記載された情報処理装置。
【請求項９】
さらに、前記設定手段が設定した分散処理量を、前記分散処理の要求元に通知する通知手段を有することを特徴とする請求項6から請求項8の何れかに記載された情報処理装置。
【請求項１０】
コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置の制御方法であって、
前記複数の機器の機器情報および動作状況を取得し、
前記機器情報および動作状況に基づき、前記分散処理の対象機器を選択することを特徴とする制御方法。
【請求項１１】
コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置の制御方法であって、
前記複数の機器情報および動作状況を取得し、
前記機器情報および動作状況に基づき、前記複数の機器に分配する分散処理量を設定することを特徴とする制御方法。
【請求項１２】
情報処理装置を制御して、請求項10または請求項11に記載された制御を実現することを特徴とするプログラム。
【請求項１３】
請求項12に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置およびその制御方法に関し、例えば、コンピュータネットワークに接続されたプリンタや複合機能印刷装置などの情報処理装置にグリッドコンピューティングの負荷分散システムを適用する処理や制御に関する。
【背景技術】
【０００２】
大量の処理を分散して複数の機器で処理し、高速処理を可能とする機構は複数の提案されている（例えばグリッドコンピューティングなど、非特許文献1）。
【０００３】
ネットワーク接続された複数の機器をフル活用し、クライアントからジョブを受け取って膨大な時間のかかる処理を行う場合に、グリッドコンピューティングのフレームワークを使用して、複数の機器の処理能力を有効活用し、より高速な分散処理を実現することが期待される。
【０００４】
一方、近年、省エネルギの意識が高まり、未使用状態の機器を自動的に省電力モードに移行させ、待機させる手段が一般的になった。このような機器をネットワーク接続して、他の機器から依頼されるジョブを処理する場合、省電力モードに移行する条件に該当せず、多くの機器は、省電力モードで待機する機会を失う。その結果、省エネルギの効果が損われる場合がある。
【０００５】
【非特許文献１】IBMプロフェッショナル論文「グリッド・コンピューティングの商用システムへの適用性」http://www-6.ibm.com/jp/provision/no36/pdf/36_ppr1.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、機器の省電力モードおよび省電力モードへの移行を考慮した分散処理を行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかる情報処理装置は、コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置であって、前記複数の機器の機器情報および動作状況を取得する取得手段と、前記機器情報および動作状況に基づき、前記分散処理の対象機器を選択する選択手段とを有することを特徴とする。
【０００８】
また、コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置であって、前記複数の機器情報および動作状況を取得する取得手段と、前記機器情報および動作状況に基づき、前記複数の機器に分配する分散処理量を設定する設定手段とを有することを特徴とする。
【０００９】
本発明にかかる制御方法は、コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置の制御方法であって、前記複数の機器の機器情報および動作状況を取得し、前記機器情報および動作状況に基づき、前記分散処理の対象機器を選択することを特徴とする。
【００１０】
また、コンピュータネットワークに接続された、省電力モードを有する複数の機器による分散処理を管理する情報処理装置の制御方法であって、前記複数の機器情報および動作状況を取得し、前記機器情報および動作状況に基づき、前記複数の機器に分配する分散処理量を設定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、機器の省電力モードおよび省電力モードへの移行を考慮した分散処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明に好適な一実施例を詳細に説明する。
【実施例１】
【００１３】
［プリンタ］
図1は実施例のプリンタ1000の構成例を示す図である。なお、本実施例は、複数の複合機(MFP)、複写機、レーザビームやインクジェットプリンタが接続されるネットワーク環境に適用することができるが、以下では、典型的なプリンタとしてカラーレーザビームプリンタ（以下、単に「プリンタ」と呼ぶ）を例として説明する。また、図1に示すプリンタは、各色成分の画素を8ビットで階調表現した多値データに基づき、600 dpiの記録密度の画像を印刷する。
【００１４】
図1において、プリンタ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に保持されている。これによって、各現像器は、図2に示すように、現像器を選択するために現像器選択機構部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の解像度で画像を出力する。なお、本実施例において印刷装置として使用可能なプリンタは、カラーレーザビームプリンタに限られず、インクジェットプリンタやサーマルプリンタなど他の方式のカラープリンタでもよいし、モノクロプリンタでもよい。
【００２４】
［印刷システム］
図2は実施例の印刷システムの構成例を示すブロック図で、印刷システムは、ホストコンピュータ3000と複数のプリンタ1000、1001、1002、…が通信路2000を介して相互に接続された構成を有する。なお、図2には三台の印刷装置を記載するが、印刷装置の数については問わない。
【００２５】
●フォーマッタ制御部
フォーマッタ制御部110はPDLコントローラなどとも呼ばれ、ホストコンピュータ3000などとの通信を行うネットワークインタフェイス(I/F) 3101、受信データなどを一時的に保持する受信バッファ3103、送信データなどを一時的に保持する送信バッファ3104、印刷データを解析するコマンド解析部3107、印刷制御処理を実行する印刷制御処理部3109、描画処理を実行する描画処理部3105、ページメモリ3106などから構成される。
【００２６】
ネットワークI/F 3101は、ホストコンピュータ3000などと印刷データの送受信を行う。ただし、ホストコンピュータ3000と印刷装置の接続方法は任意で、LANなどのコンピュータネットワークを介して通信プロトコルとして例えばIEEE1284に準拠した通信を可能にする接続でも、USB (Universal Serial Bus)、やIEEE1394などのシリアルバスを介した接続であってもよい。勿論、通信路2000として赤外線や無線を利用することもできる。
【００２７】
ネットワークI/F 3101によって受信された印刷データは受信バッファ3103に逐次蓄積され、必要に応じて、コマンド解析部3107または描画処理部3105によって読み出されて処理される。コマンド解析部3107は、印刷命令体系や印刷ジョブ制御言語に準じた制御プログラムにより構成され、コマンドが文字印刷、図形、イメージなどの描画に関する場合は、その処理を描画処理部3105に指示し、コマンドが給紙選択やリセット命令など描画以外の場合は、その処理を印刷制御処理部3109に指示する。
【００２８】
描画処理部3105は、文字やイメージの各描画オブジェクトをページメモリ3106内のバンドメモリに逐次展開するYMCKレンダラである。図2に示すカラーレーザビームプリンタの場合、MCYKの順にデバイス依存ビットマップデータをプリンタエンジン3110に送る必要があるが、標準状態では、そのために必要なメモリ容量をすべて確保するわけではない。つまり、描画処理部3105は、1プレーン（1、2または4ビット/画素）の数分の一の容量のメモリ領域をバンドメモリとしてページメモリ3106内に確保し、バンドメモリを繰り返し用いて、プリンタエンジン3110の処理に同期した描画処理を実行する。なお、プリンタエンジン3110は、図2に示す光学ユニット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においてはプリントキューと呼ばれるモジュールを用いて実現可能である。
【００３７】
●プリンタドライバの処理
図3はプリンタドライバ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)。
【００４３】
●印刷装置のハードウェア構成
図4は印刷装置のハードウェア構成例を示す図である。
【００４４】
印刷装置の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の値によって、一部のモジュールへ供給するクロックの停止（以下「クロック停止」と呼ぶ）、クロック停止の解除、一部のモジュールへ供給するクロックを通常動作時よりも低い周波数にする（以下「クロックダウン」と呼ぶ）、通常動作時の周波数に戻す（以下「クロックアップ」と呼ぶ）などの制御が可能である。
【００４８】
●分散処理
図5は印刷システムの分散処理を説明する図である。なお、以下の説明では、タスクマネージャ(TM) 3034およびダイナミックジョブスケジューラ(DJS) 3035は、ホストコンピュータ3000のCPUが実行する基本ソフト上に実装されたソフトウェアによって機能するものとする。また、ブローカおよびリソースマネージャ(RM)は、各印刷装置のCPUが実行する基本ソフト上に実装されたソフトウェアによって機能するものとする。
【００４９】
まず、ホストコンピュータ3000はジョブを開始する。なお、本実施例の場合、ジョブとはプリント動作のことである。ジョブを受信したTM 3034は、ジョブリクエストをDJS 3035に送り、その分析を依頼し、DJS 3035からの分析結果（最適なブローカを示す通知を含む）に基づき、ジョブをブローカ1003、1005および/または1007へ投入する（図5はプリンタ1002のブローカ1007へジョブが投入された状態を示している）。なお、DJS 3035は、定期的にブローカへ状況を問い合わせてリソース（印刷装置の空き状況）の状況および印刷システム全体の状況を常に把握し、最適なブローカを選択する。なお、DJS 3035は、ジョブをハードウエアによって処理するのか、ソフトウェアによって処理するのかの判断もで行う。
【００５０】
各印刷装置のブローカ1003、1005、1007は、同じ装置のRM 1004、1006、1008からリソースの空き状態などを吸い上げ、DJS 3035に登録する。また、各ブローカは、TM 3034からジョブを投入されると、最適なリソースを探し、そのリソースにRMを介してジョブを投入し、RMからのジョブ完了通知（および処理結果）をTM 3034に通知する。また、各RMは、リソースに異常があれば、その旨を同じ装置のブローカへ通知する。なお、異常とは、他のクライアントからジョブを投入されて、TM 3034から投入される/されたジョブを継続して処理することができない場合などに当たる。
【００５１】
図6はTM 3034の処理を示すフローチャートである。
【００５２】
TM 3034は、ジョブが投入されるのを待ち(S1101)、ジョブが投入されるとその処理時間を予測する(S1102)。処理時間は、前述した積算データ3024から予測することができる。
【００５３】
次に、処理時間の予測結果から分散処理するか否かを判定し(S1103)、分散処理した方が速いと判断した場合は、予め指定された機器にジョブから分割した処理を投入する(S1105)。なお、処理の分割方法は、バンド単位、頁単位などが可能である。勿論、複数の機器に分割した処理を分散投入してもよいし、ある機器ですべてを処理した方が速ければその機器にジョブを丸ごと投入してもよい。
【００５４】
DJS 3035は、定期的に、ネットワークに接続されたプリンタ1002などに実装されているブローカ1007などへ状況を問い合わせるため、ネットワークに接続されているリソース（印刷装置の空き情報）などの状態を把握し、この把握した情報を内部に保持している。このため、機器を指定する際は、DJS 3035が保持しているネットワーク上のリソース情報を元に、空いている機器を選択し、ジョブを投入することが可能である。
【００５５】
次に、分割した処理を投入した機器から返される処理結果（ここでは、レンダリングされ、ビットマップデータに変換された画像データ）を結合し(S1106)、ジョブに指定されたプリンタに画像を印刷させて(S1107)ジョブを終了する。勿論、一台の機器に丸ごとジョブを投入した場合は処理結果を結合する必要はない。
【００５６】
また、ステップS1103の判定で、ジョブに指定されたプリンタで処理した方が速い、分散処理した方が速くても予め指定された機器のリソースが他のジョブの処理中で処理の高速化が期待できない、あるいは、ジョブが比較的軽く指定されたプリンタの処理速度で充分処理できる場合などは、ジョブに指定されたプリンタに処理（レンダリングおよびビットマップデータへの変換）(S1104)および画像の印刷(S1107)を行わせ、ジョブを終了する。
【００５７】
ここでは、TM 3034によってプリンタ1000に分割処理が投入される場合を想定する。TM 3034による分散処理の開始指示に対して、プリンタ1000のCPU 501上で動作するブローカ1003が応答し、次に、同様にCPU 501上で動作するRM 1004が応答する。そして、ブローカ1003は、分割処理の受信が可能であること、および、プリンタ1000のリソースの状況をTM 3034に返信する。この返信に対して、TM 3034はブローカ1003に分割処理を送信する。
【００５８】
●分散処理を割り当てる機器の選定
次に、省電力モードを踏まえた分散処理の機器選定を例を挙げて説明する。なお、以下に説明するプリンタは、省電力モードに移行するまでの未使用時間を任意に設定することができる。
【００５９】
図7はプリンタ1000〜1005の各状態、および、クライアントPC（ホストコンピュータ）3000からジョブを投入する様子を示す図である。なお、各プリンタに付記する「wake」は当該プリンタが稼働状態を、「sleep」は当該プリンタがスリープ状態（省電力モード）を示している。
【００６０】
プリンタ1000は非動作状態が10分間継続すると省電力モード（スリープ状態）に移行する設定（スリープ設定：10分間）で、現在、未使用状態で八分間経過している。この後二分間、未使用状態が継続するとプリンタ1000は省電力モードに移行する。
【００６１】
プリンタ1001は、スリープ設定が60分間で、現在、未使用状態で15分間経過している。従って、プリンタ1002は、省電力モードに移行するまでに45分間も必要とし、今、ジョブを処理させたとしても、再び、未使用状態が15分間継続すれば、現状と同じ条件になる。
【００６２】
プリンタ1002は、スリープ設定が60分間で、未使用状態が50分間経過している。従って、この後10分間、非動作状態が継続するとプリンタ1002は省電力モードに移行するが、もし、ジョブを処理させると、再び、未使用状態が50分間継続しなければ、現状と同じ条件にはならない。
【００６３】
プリンタ1003および1004は、既に省電力モードに移行している。ただし、プリンタ1005は、通常の稼働状態における消費電力が他のプリンタに比べて充分に小さい、例えば低速機のようなプリンタとする。
【００６４】
また、プリンタ1006は、スリープ設定が30分間で、現在、未使用状態で三分間経過している。従って、プリンタ1006は、省電力モードに移行するまで27分間を必要とし、今、ジョブを処理させたとしても、再び、未使用状態が三分間継続すれば、現状と同じ条件になる。
【００６５】
以上の各プリンタの機器情報は、サーバ3001上で稼働するDJS 3035によって吸い上げられる。
【００６６】
図8は分散処理を割り当てる機器の選定を示すフローチャートで、DJS 3035によって実行される処理である。
【００６７】
まず、DJS 3035は、分散処理を割り当てる機器を一台抽出し(S1201)、当該機器の通常の動作における消費電力が閾値th以下か否かを判定する(S1202)。つまり、消費電力が閾値th以下であれば、当該機器を分散処理に使用しても省電力に対する影響が少ない。図7に示す例では、プリンタ1004の消費電力が閾値th未満である。従って、消費電力が閾値th以下の機器は分散処理の対象に加える(S1203)。
【００６８】
また、消費電力が閾値thを超える機器の場合は、当該機器が、現在、省電力モード状態か否かを判定する(S1204)。省電力モード状態の場合は、省電力モード状態を維持させるために、当該機器を分散処理の対象に加えない(S1205)。図7においては、プリンタ1003が相当する。
【００６９】
また、省電力モード状態ではない機器の場合は、当該機器のスリープ設定時間と未使用状態の継続時間に基づき、分散処理の対象にするか否かを判定する。
【００７０】
まず、省電力モードに移行するまでの時間が五分間以内か否かを判定する(S1206)。例えば、図7に示すプリンタ1000は、あと二分間で省電力モードに移行するので、移行間際の機器と判定し、分散処理の対象に加えない(S1207)。
【００７１】
また、図7に示すプリンタ1001は、省電力モードに移行するまでの時間が45分間あるため、移行間際の機器とは判定せず、続いて、未使用状態の継続時間が30分間以上か否かを判定する(S1208)。プリンタ1001は未使用状態の継続時間は15分間であるから、ジョブを処理させても現状の継続時間に復帰するための時間はそれほど大きくないと判断し、分散処理の対象に加える(S1209)。
【００７２】
また、図7に示すプリンタ1002は、省電力モードに移行するまでの時間が10分間あるため、移行間際の機器とは判定されず、続いて未使用状態の継続時間を判定する(S1208)。プリンタ1002の未使用状態の継続時間は30分間以上の50分間であるから、ジョブを処理させた後、現状の継続時間に復帰するには大きな時間が必要と判断し、分散処理の対象に加えない(S1210)。
【００７３】
また、プリンタ1005は、省電力モードに移行するまでの時間が27分間あり、未使用状態の継続時間が三分間であるから、移行間際の機器ではなく、かつ、ジョブを処理させても現状の継続時間に復帰するための時間はそれほど大きくないと判断し、分散処理の対象に加える(S1209)。
【００７４】
なお、図8に示す処理は、ステップS1211の判定により、分散処理を割り当てる機器をすべて抽出するまで繰り返す。
【００７５】
従って、各プリンタが図7に示す状態にある場合、DJS 3035は、それらプリンタの機器情報を参照して、プリンタ1001、1004、1005の三台を分散処理の対象として、それらプリンタのブローカを示す情報を、分散処理の要求元であるクライアントPC 3000のTM 3034に通知する。この通知に基づき、クライアントPC 3000のTM 3034は、当該ブローカにプリントジョブなどのジョブを投入する。
【００７６】
このように、省電力モードを踏まえた分散処理の機器選定を行うことができる。従って、省電力モードにある機器、および、省電力モードに移行間際の機器を分散処理の対象から外して、省電力モードを効果的に機能させることができる。また、たとえ省電力モードにあっても消費電力が小さい機器や、省電力モードに移行するまでに時間を要する機器（移行間際ではない機器）は、積極的に分散処理の対象として、ジョブの高速処理を実現することができる。
【００７７】
なお、上記および図8に示した時間の閾値は一例であり、図7に示すシステムの構成に応じて適宜設定することが好ましい。同様に、消費電力の閾値thも、システムに備わる各プリンタの消費電力を考慮して、少なくとも消費電力が最小のプリンタが選定されるように設定すればよい。
【実施例２】
【００７８】
以下、本発明にかかる実施例2の処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７９】
図9はプリンタ1201〜1204の各状態、および、クライアントPC（ホストコンピュータ）3000からジョブを投入する様子を示す図である。
【００８０】
プリンタ1201がスリープ状態に移行するまでの時間（スリープ移行時間）は30分間、プリンタ1202のスリープ移行時間は10分間、プリンタ1203はスリープ状態、プリンタ1204のスリープ移行時間は三分間である。サーバ3001のDJS 3035は、これらプリンタの機器情報を吸い上げ、分散処理を割り当てる機器を選定する。
【００８１】
まず、DJS 3035は、クライアントPC 3000が投入するジョブ処理量を見積もり、当該ジョブを処理量の小さなジョブに分割する準備を行う。また、DJS 3035は、プリンタ1201〜1204のジョブ処理能力を吸い上げ、ジョブ処理量に対する処理時間を算出する。そして、DJS3035は、処理時間とスリープ移行時間を考慮して、稼働状態のプリンタ1201、1202および1204が省電力モードに移行するまでの時間内に処理可能なジョブ処理量を算出し、プリンタとジョブ処理量（分割ジョブの処理量）の関係をクライアントPC 3000のTM 30345に通知する。TM 3034は、この通知に基づき、分割ジョブを各プリンタに配分する。
【００８２】
図10は、図9に示す状態にあるプリンタに分割ジョブを配分するためにジョブ処理量を管理するテーブルを示す図で、DJS 3035によって管理されるテーブルである。
【００８３】
プリンタ1201、1202、1204のスリープ移行時間は30分間、10分間、3分間、また、その処理能力は13.3、20、33である。なお、処理能力の単位は、システム固有の処理時間の指標に適したものを用いる。
【００８４】
ジョブ処理量（分割ジョブ数）は、処理能力とスリープ移行時間（処理が可能な時間）を掛け合わせて算出する値である。プリンタ1201、1202、1204のジョブ量はそれぞれ400、200、100になる。
【００８５】
このジョブ処理量に基づき、TM 3034は、プリンタ1201にジョブ処理量の4/7(=400/700)程度の割合の分割ジョブを分配し、プリンタ1202および1204に2/7、1/7程度の割合の分割ジョブを分配する。なお、ジョブの分割単位は、処理の種別に固有のもので構わない。例えば、描画処理のように頁ごとに独立した処理であれば、分割割合に見合った頁数の描画処理ジョブを分配すればよい。
【００８６】
なお、プリンタ1201、1202、1204は、分配された分割ジョブを終了後、スリープ移行時間が経過するとスリープ状態になる。言い換えれば、分割ジョブの処理は、スリープ移行時間に影響しない。また、通常のプリントやコピージョブが投入された場合、プリンタ1201〜1204は稼働状態に戻り、スリープ移行時間がリセットされることは言うまでもない。
【００８７】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８８】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００８９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００９０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９１】
【図１】プリンタの構成例を示す図、
【図２】印刷システムの構成例を示すブロック図、
【図３】プリンタドライバの処理概要を模式的に示す図、
【図４】印刷装置のハードウェア構成例を示す図、
【図５】印刷システムの分散処理を説明する図、
【図６】TMの処理を示すフローチャート、
【図７】プリンタの状態、および、クライアントPCからジョブを投入する様子を示す図、
【図８】分散処理を割り当てる機器の選定を示すフローチャート、
【図９】実施例2におけるプリンタの状態、および、クライアントPCからジョブを投入する様子を示す図、
【図１０】図9に示す状態にあるプリンタに分割ジョブを配分するためにジョブ処理量を管理するテーブルを示す図である。
【図１】
2006343955.tif 000003
【図２】
2006343955.tif 000004
【図３】
2006343955.tif 000005
【図４】
2006343955.tif 000006
【図５】
2006343955.tif 000007
【図６】
2006343955.tif 000008
【図７】
2006343955.tif 000009
【図８】
2006343955.tif 000010
【図９】
2006343955.tif 000011
【図１０】
2006343955.tif 000012