(57)【要約】【課題】  分割したジョブを複数のクライアントで分散処理させるときに、全体の処理時間を短縮する。【解決手段】  グリッドコンピューティングによって負荷分散処理が可能な画像形成システムにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、ジョブスケジューラは、同じジョブを複数のクライアント装置に割り当て（Ｓ９０４〜Ｓ９０７）、同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させる（Ｓ９１０）。【選択図】  図９
2005352697.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、ホストコンピュータと、複数のクライアント装置とが互いに接続されたコンピュータシステムであって、
前記クライアント装置それぞれは、該装置のリソースの状態を管理するリソースマネージャと、該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカと、を含み、
前記ホストコンピュータは、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラと、前記ホストコンピュータに対してユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャと、を含み、
前記ジョブスケジューラは、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させる中止手段を備えていることを特徴とするコンピュータシステム。
【請求項２】
前記ジョブスケジューラは、前記複数のクライアント装置を複数のグループに分割し、各グループ毎に分割したジョブを割り当てるクライアント装置を決定することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記中止手段は、各グループで分割したジョブ全体が終了したか否かを検知する検知手段を含み、該検知手段によっていずれかのグループで分割したジョブ全体が終了したことが検知されたときに、他のグループでのジョブの実行を強制的に終了させることを特徴とする請求項２に記載のシステム。
【請求項４】
前記ジョブスケジューラは、前記複数のクライアント装置のうち、ジョブを受付可能なクライアント装置全てに前記分割したジョブを順次割り当てることを特徴とする請求項１に記載のシステム。
【請求項５】
前記ジョブスケジューラは、各クライアント装置に関する情報を格納する格納手段を更に備え、該格納手段に格納された情報に基づいて前記分割したジョブの割り当て順序を決定することを特徴とする請求項１から４のいずれか１項に記載のコンピュータシステム。
【請求項６】
前記情報は、クライアント装置のリソースの性能に関する情報、及びクライアント装置でのジョブの実行結果に関する情報のいずれかを含むことを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
前記ホストコンピュータ又は前記クライアント装置の少なくとも１つが画像形成装置であることを特徴とする請求項１から６のいずれか１項に記載のコンピュータシステム。
【請求項８】
ネットワークを介して、それぞれが、リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置と、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、及びユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャを含むホストコンピュータと、が互いに接続されたコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させることを特徴とするジョブの割り当て方法。
【請求項９】
リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置とネットワークを介して接続された情報処理装置であって、
各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラと、
前記ホストコンピュータに対してユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャと、を含み、
前記ジョブスケジューラは、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させる中止手段を備えていることを特徴とする情報処理装置。
【請求項１０】
入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、前記ジョブスケジューラによって決定されたクライアント装置に分割されたジョブを送信するタスクマネージャを有するコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させることを特徴とするジョブの割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、及び該システムにおけるジョブの割り当て方法に関し、より詳細には、ネットワークを介して、ホストコンピュータと、複数のクライアント装置とが互いに接続されたコンピュータシステムにグリッドコンピューティングを適用した場合のジョブの割り当てに関するものである。
【背景技術】
【０００２】
近年、ネットワークで接続された複数のコンピュータを一つのシステムのように利用可能とする、グリッドコンピューティング（Grid computing：以下、単に「グリッド」とも称する）が注目されており、様々な分野への適用が試みられている。
【０００３】
図１は、グリッドコンピューティングのアーキテクチャを説明する図である。グリッドには数種類あるが、ここで説明するのはデスクトップグリッドと呼ばれる、デスクトップＰＣなどのＣＰＵの空き時間を利用してジョブを実行するタイプのものである。
【０００４】
図１においてクライアント（Client）１０は、ユーザが要求としてジョブを投入する機器であり、投入されたジョブはタスクマネージャ（Task Manager：以下、ＴＭと略す）２０に渡され、ＴＭ２０はダイナミックジョブスケジューラ（Dynamic Job Scheduler：以下、ＤＪＳと略す）３０にその内容を伝える。
【０００５】
ＤＪＳ３０は、それぞれがブローカ（Broker）４１１とリソースマネージャ（Resource Manager：以下、ＲＭと略す）４１２とを含みリソースとして認識される、複数のホスト機器４１〜４３全体のリソース管理をしており、ジョブを分析して最適なリソースのブローカ４１１を選択してＴＭ２０に通知する。なお、ここでリソースとは利用可能なＣＰＵの空き状態のことを言っている。
【０００６】
ブローカ４１１は、ＲＭ４１２が取得したリソースの情報をＤＪＳ３０に登録し、ＴＭ２０からの要求に応じて最適なリソースにジョブを投入し、ジョブが終了したときにＴＭ２０にジョブの完了を通知する。
【０００７】
ＴＭ２０は、ＤＪＳ３０が選択した最適なブローカ４１１にジョブを投入し、以後そのジョブの進行状況をモニタリングし、完了通知をブローカ４１１から受信するとクライアント１０にその結果を通知する。またリソースに変化や異常が発生したとき（例えば、故障や他のジョブを受け付けた等）、ＲＭ４１２はブローカ４１１に通知する。
【０００８】
このような仕組みで、通常は利用されていないＣＰＵなどのリソースにジョブを配分し、ユーザが意識することなしに複数の機器での分散処理を可能にすることで、デスクトップグリッドコンピューティングが実現されている。
【非特許文献１】ＩＢＭプロフェッショナル論文、「グリッド・コンピューティングの商用システムへの適用性」、インターネット、＜ＵＲＬ：http://www-6.ibm.com/jp/provision/no36/pdf/36_ppr1.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のようなグリッドコンピューティングの技術を用いてコンピュータのＣＰＵパワーを集め、高速処理を実現する研究がサイエンス系の研究において盛んであるが、複合機と呼ばれるＭＦＰ（Multi Function Peripheral）やＳＦＰ（Single Function Peripheral）などの組み込み機器への適用は未だ実現されていない。
【００１０】
例えば、この技術をＭＦＰを含む画像形成システムに適用する場合、オフィスのＬＡＮに接続されて使用されている場合、分散処理の対象となるリソースはＬＡＮ上のＰＣやサーバ及びＭＦＰとなる。
【００１１】
このような構成でジョブを分割して分散処理させると、分散された全ての機器での処理が終了するまでジョブは終了することができず、又各クライアントにおいて自端末のユーザから別途ジョブ処理（ローカルのジョブ処理）が依頼された場合、その処理が優先されるため各クライアントの都合で前述した分散したジョブがいつでも停止されてしまうことになり結局は時間がかかってしまうことがある。
【００１２】
本発明は以上のような状況に鑑みてなされたものであり、分割したジョブを複数のクライアントで分散処理させるときに、全体の処理時間を短縮することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成する本発明の一態様としてのコンピュータシステムは、ネットワークを介して、ホストコンピュータと、複数のクライアント装置とが互いに接続されたコンピュータシステムであって、
前記クライアント装置それぞれは、該装置のリソースの状態を管理するリソースマネージャと、該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカと、を含み、
前記ホストコンピュータは、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラと、前記ホストコンピュータに対してユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャと、を含み、
前記ジョブスケジューラは、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させる中止手段を備えている。
【００１４】
すなわち、本発明では、ネットワークを介して、それぞれが、リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信してリソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置と、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、及びユーザが入力した要求をジョブとしてジョブスケジューラに送信し、ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャを含むホストコンピュータと、が互いに接続されたコンピュータシステムにおいて、ジョブスケジューラで、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を強制的に中止させる。
【００１５】
このようにすると、分割したジョブの数よりもクライアント装置の数が多い場合、各分割ジョブについての処理時間は、最も処理が早く終了したクライアント装置での処理時間となる。
【００１６】
従って、ジョブ全体が終了するまでの時間を短縮することができる。
【００１７】
なお、ジョブスケジューラは、複数のクライアント装置を複数のグループに分割し、各グループ毎に分割したジョブを割り当てるクライアント装置を決定してもよい。
【００１８】
この場合、中止手段は、各グループで分割したジョブ全体が終了したか否かを検知する検知手段を含み、該検知手段によっていずれかのグループで分割したジョブ全体が終了したことが検知されたときに、他のグループでのジョブの実行を強制的に終了させてもよい。
【００１９】
あるいは、ジョブスケジューラは、複数のクライアント装置のうち、ジョブを受付可能なクライアント装置全てに分割したジョブを順次割り当ててもよい。
【００２０】
ジョブスケジューラは、各クライアント装置に関する情報を格納する格納手段を更に備え、該格納手段に格納された情報に基づいて分割したジョブの割り当て順序を決定してもよい。
【００２１】
この場合、情報としては、クライアント装置のリソースの性能に関する情報、及びクライアント装置でのジョブの実行結果に関する情報のいずれかを含むのがよい。
【００２２】
本発明は、ホストコンピュータ又はクライアント装置の少なくとも１つが画像形成装置である、画像形成システムに適用することができる。
【００２３】
また、上記の目的は、上記のコンピュータシステムのホストコンピュータとして動作し得る情報処理装置、上記のコンピュータシステムにおけるジョブ割り当て方法、該ジョブ割り当て方法をコンピュータ装置によって実行させるコンピュータプログラム、該プログラムを記憶する記憶媒体によっても達成される。
【発明の効果】
【００２４】
本発明によれば、分割したジョブの数よりもクライアント装置の数が多い場合、各分割ジョブについての処理時間は、最も処理が早く終了したクライアント装置での処理時間となる。
【００２５】
従って、ジョブ全体が終了するまでの時間を短縮することができる。
【発明を実施するための最良の形態】
【００２６】
以下に、添付図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００２７】
（基本的構成）
始めに、以下の実施形態に共通な本発明に係る画像形成システムの基本的構成について説明する。
【００２８】
図２は、本発明に係る画像形成システムの基本的構成を示すブロック図であり、グリッドコンピューティングをプリンタのＰＤＬ処理（ページ記述言語のラスターイメージへの展開処理）に適用する場合の構成である。図１に示した例ではグリッドを構成するそれぞれのモジュールが別個のものとして扱われたが、ＭＦＰやプリンタ等の画像形成装置に適用する場合、複数のモジュールが１つの機器の中に存在する構成が一般的である。
【００２９】
図２の構成では、ユーザは印刷指示等のジョブをクライアントＰＣ１１０から投入し、投入されたジョブはＴＭ及びＤＪＳ機能を有するプリンタ等の画像形成装置１２０によって分析され、それぞれがブローカ及びＲＭを有するＰＣ１（１４１）、ＰＣ２（１４２）、ＰＣ３（１４３）の３台のＰＣのリソースを用いてグリッドコンピューティングによる分散処理が行なわれる。
【００３０】
すなわち、図示した構成では、画像形成装置１２０が、グリッドコンピューティングにおけるホストとしての機能も有している。もちろん、画像形成装置１２０以外の他のＰＣがホストとしての機能を有していてもよい。
【００３１】
クライアントＰＣ１１０からＰＤＬの印刷ジョブが投入されると、ジョブは画像形成装置１２０のＴＭ及びＤＪＳを経由して１４１〜１４３の各ＰＣのリソースに適宜分散される。またこの時、ＰＤＬのイメージ展開処理用のアプリケーションプログラムも同時に画像形成装置１２０から各ＰＣに送信されるようにする。
【００３２】
それぞれのＰＣでＰＤＬを展開して形成されたイメージは、画像形成装置１２０によって収集されまとめた状態で最終的に出力される。
【００３３】
なお、この分散処理の対象となるクライアント（リソース）の数には特に制限はなく３台以上であってもよいし、ジョブが投入されるクライアントＰＣ１１０のリソースや画像形成装置１２０のリソースを分散処理の対象にしても良い。
【００３４】
＜第１の実施形態＞
（画像形成装置のハード構成）
図３は、第１の実施形態の複写機能を有する画像形成装置の外観を示す図である。画像入力デバイスであるスキャナ２０１は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサ（図示せず）を走査することによって、ラスターイメージデータを生成する。
【００３５】
ユーザが、原稿用紙を原稿フィーダ２０４のトレイ２０３にセットして、操作部２０２において読み取り動作の開始を指示すると、画像形成装置のコントローラＣＰＵがスキャナ２０１に指示を与え、フィーダ２０３は原稿用紙を１枚ずつフィードし、スキャナ２０１は原稿画像の読み取り動作を行う。
【００３６】
操作部２０２はコピー動作時の設定指示や状態表示や、各種動作設定の指定をするためのユーザインタフェースである。
【００３７】
画像出力デバイスであるプリンタエンジン１０３は、ラスターイメージデータを用紙上に印刷する部分である。その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。なお、プリント動作は、コントローラＣＰＵからの指示によって起動される。
【００３８】
プリンタエンジン１０３は、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット２０６、２０７、２０８を備えている。また、排紙トレイ２０５は、印字し終わった用紙を受けるものである。
【００３９】
図４は、本実施形態の画像形成装置の制御構成を示すブロック図である。プリンタコントローラ１０２は、画像入力デバイスであるスキャナ２０１や画像出力デバイスであるプリンタエンジン１０３と接続し、一方ではクライアントＩ／Ｆ３０８経由で、クライアントとの間で印刷データや画像情報やデバイス情報の入出力をする。
【００４０】
ＣＰＵ３０１は、システム全体を制御するコントローラである。ＲＡＭ３０２は、ＣＰＵ３０１が動作するために使用するシステムワークメモリである。また、ＲＡＭ３０２は、画像データを一時記憶するための画像メモリでもある。ＲＯＭ３０３は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ３０４は、ハードディスクドライブで、システムソフトウェア、画像データを格納する。
【００４１】
操作部Ｉ／Ｆ３０６は、操作部（ＵＩ）２０２との間のインターフェースを司り、操作部２０２に表示する画像データを操作部２０２に対して出力する。また、使用者が操作部２０２を介して入力した情報を、ＣＰＵ３０１に伝える役割を果たす。また操作部２０２からの入力された動作モードなどの環境設定情報は不揮発性のメモリであるNVRAM３１６に記憶される。
【００４２】
クライアントＩ／Ｆ３０８は、各クライアントに対して情報の入出力を行う。以上のデバイスがシステムバス３０７上に配置される。
【００４３】
イメージバスインターフェース（Image Bus Ｉ／Ｆ）３０５は、システムバス３０７と画像データを高速で転送する画像バス３０９とを接続し、データ構造を変換するバスブリッジである。
【００４４】
画像バス３０９には以下のデバイスが配置される。ラスターイメージプロセッサ（ＲＩＰ）３１０は、ネットワークから送信されて来たＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ部３１１は、画像入出力デバイスであるスキャナ２０１やプリンタエンジン１０３とプリンタコントローラ１０２とを接続し、画像データの同期系／非同期系の変換を行う。
【００４５】
スキャナ画像処理部３１２は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部３１３は、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。画像回転部３１４は画像データの回転を行う。画像圧縮部３１５は、多値画像データに対してはＪＰＥＧ圧縮伸張処理を行い、２値画像データに対してはＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理を行う。
【００４６】
以上のような構成の本実施形態の画像形成装置は、クライアントインターフェース（例えば、Ethernet(登録商標)等の相互通信可能なネットワークインターフェース）３０８を介して各クライアント（ＰＣ）と接続され、グリットコンピューティングによる負荷分散処理を行なうホストとしても動作する。
【００４７】
（ジョブ分散処理）
以下、本実施形態におけるジョブの分散処理について、図５から図８のフローチャートを参照して説明する。
【００４８】
図５は、ＤＪＳにおいてクライアントをグループ分けし、グループごとに分割したジョブの実行をブローカへ指示するジョブ割り当て処理のフローチャートである。図６は、同じくＤＪＳにおける強制終了を指示する処理のフローチャートである。図７は、ＴＭにおけるＤＪＳからの指示をブローカへ通知する処理と、ブローカからの通知をＤＪＳに通知する処理のフローチャートである。図８は、ブローカにおけるＴＭからの指示を実行する処理のフローチャートである。
【００４９】
始めに、図５を参照してＤＪＳにおけるジョブ割り当て処理のフローを説明する。ここでは、グリッドコンピューティングでの分散処理の対象となるクライアントの数が２０、ジョブの分割数が８の場合を例として説明する。
【００５０】
ジョブ割当処理が開始されると、ステップＳ５０２において、予め入手したグリッドのクライアント数と分割ジョブ数を利用して、クライアント数２０を分割ジョブ数８で除算する。次にステップＳ５０３で、商に対応した数のグループを作成する。この例ではグループ数は２となり、各グループ内には８つ以上のクライアントが含まれていればよい。そして、ステップＳ５０４で、２つのグループに対して分割されたジョブを割当てる。
【００５１】
すなわち、この例では、同じ分割ジョブが各グループ内の１つのクライアント、計２つのクライアントに割り当てられる。最後にステップＳ５０５で、各クライアントのブローカと割り当てた分割ジョブとの対応をＴＭに通知して処理を終了する。
【００５２】
なお、この各クライアントのブローカと割り当てた分割ジョブとの対応関係を示す情報は、後述する処理で使用するため、例えば、テーブル形式でＤＪＳ自体でも保持しておく。
【００５３】
次に、分割されたジョブの実行中のＤＪＳ、ＴＭ、ブローカの動作について、図６、７、８を参照して説明する。
【００５４】
ＤＪＳでは、上記ステップＳ５０５の後、ステップＳ６０２に進み、ＴＭからの受信待ち状態となり、ステップＳ６０３でＴＭから受信すると、ジョブ終了通知であるか否かを判定する。ジョブ終了通知でない場合にはステップＳ６０２へ戻り、再度受信待ち状態となる。ＴＭから受信したのが（後述するステップＳ７０７で送信された）ジョブ終了通知である場合、ステップＳ６０４へ進み、同一の分割ジョブを実行している（他方のグループ内にある）他のブローカをＤＪＳ自体が保持している情報から検索し、ステップＳ６０５で、同一のジョブが割り当てられたブローカに対して分割ジョブの強制終了指示を出すようＴＭへ通知し、その後再度受信待ち状態となる。
【００５５】
ＴＭでは、ステップＳ７０２で、ＤＪＳ又はブローカからの受信待ち状態となる。ＴＭが受信する通知としては、上記ステップＳ６０５で送信されるＤＪＳからの通知、後述するステップＳ８０６でブローカから送信される通知、更にはＤＪＳからの通常のジョブ依頼通知がある。
【００５６】
ステップＳ７０３で、受信した通知がＤＪＳからのジョブ依頼か否かを判定する。ジョブ依頼であればステップＳ７０４へ進み、ジョブとブローカの情報を受信し、ステップＳ７０５で、指定されたジョブを指定されたブローカへジョブ依頼として送信し、その後ステップＳ７０２へ戻り、再度受信待ち状態となる。
【００５７】
ステップＳ７０３で、受信した通知がＤＪＳからのジョブ依頼でないと判定された場合、ステップＳ７０６に進み、受信したのがブローカからのジョブ終了通知であるか否かを判定する。ジョブ終了通知であれば、ステップＳ７０７へ進み、ＤＪＳへジョブ終了通知を送信し、その後ステップＳ７０２へ戻り、再度受信待ち状態となる。
【００５８】
また、ステップＳ７０６で、受信したのがジョブ終了通知でもないと判定された場合、ステップＳ７０８へ進み、受信したのがＤＪＳからの分割ジョブ強制終了通知であるか否かを判定する。分割ジョブ強制終了通知であれば、ステップＳ７０９へ進み、対応するブローカへジョブを強制終了させるように通知し、その後ステップＳ７０２へ戻り、再度受信待ち状態となる。
【００５９】
なお、ステップＳ７０８で、受信したのがＤＪＳからの分割ジョブ強制終了通知でもないと判定された場合には、なにもせずにステップＳ７０２へ戻り、再度受信待ち状態となる。
【００６０】
ブローカにおいては、ステップＳ８０２で、ＴＭにおいて上記ステップＳ７０５で送信されるジョブ依頼通知、又はステップＳ７０９で送信されるジョブ強制終了通知の受信待ち状態となり、ＴＭから通知を受信すると、ステップＳ８０３に進み、ジョブ依頼か否かを判定する。
【００６１】
ＴＭから受信したのがジョブ依頼であればステップＳ８０４へ進んで実行すべきジョブの内容（データとプログラム）を受信し、ステップＳ８０５でそのジョブを実行する。そして、ジョブ終了後ステップＳ８０６でジョブ終了通知をＴＭに送信し、ステップＳ８０２へ戻り再度受信待ち状態となる。
【００６２】
ステップＳ８０３で受信したのがジョブ依頼でないと判定された場合、ステップＳ８０７へ進み、ＴＭから受信したのが分割ジョブ強制終了通知であるか否かを判定する。ジョブ強制終了通知であれば、ステップＳ８０８へ進み、現在実行しているジョブを強制終了させて、ステップＳ８０２へ戻り再度受信待ち状態となる。
【００６３】
なお、ステップＳ８０７で、受信したのがジョブ強制終了通知でもないと判定された場合には、なにもせずにステップＳ８０２へ戻り、再度受信待ち状態となる。
【００６４】
以上のようにして、ＤＪＳ、ＴＭ及びブローカそれぞれが動作することにより、いずれかのグループで分割ジョブが終了したときには、他のグループで実行されている同じ分割ジョブは強制終了される。このため、各分割ジョブについての処理時間は、最も処理が早く終了したグループでの処理時間となり、ジョブ全体が終了するまでの時間を短縮することができる。
【００６５】
＜第１の実施形態の変形例＞
上記で説明した第１の実施形態においては、図５に示したフローのステップＳ５０３において、グループを作成する際に、特に基準を設けていないが、例えば、クライアントのリソース（ＣＰＵ）の処理速度やメモリの容量など、ブローカから通知されるリソースの能力に応じてグループ分けを行ってもよい。この場合、処理速度が高速なクライアントでグループを作成すると、ジョブが終了するまでの時間を一層短縮できる可能性が増える。
【００６６】
また、上記の実施形態においては、強制終了させる単位を分割ジョブとしているが、含まれるクライアントの数が大きな大規模なシステムにおいては、分割ジョブ単位ではなくジョブ全体を実行するグループ単位で強制終了させるようにしてもよい。このようにすると、空き状態となるクライアントの数が増えるので、依頼されるジョブの数が多い場合やユーザの操作により各クライアントでジョブが中断されることが多い場合などには有効である。
【００６７】
＜第２の実施形態＞
以下、本発明に係る画像形成システムの第２の実施形態について説明する。第２の実施形態も第１の実施形態と同様な画像形成システムであり、以下の説明では第１の実施形態と同様な部分については説明を省略し、第２の実施形態の特徴的な部分を中心に説明する。
【００６８】
第１の実施形態では、クライアントをグループ分けし、グループごとに分割したジョブの実行を指示するようにしたが、第２の実施形態では、例えば、分散処理の対象となるクライアントの数が少ない場合などでも、ジョブ全体が終了するまでの時間を短縮することができるように、分割ジョブを実行可能なクライアント（ブローカ）に順次割り当てる、いわゆるラウンドロビン型の割り当て処理を行なう。
【００６９】
図９は、本実施形態におけるＤＪＳの処理を示すフローチャートであり、第１の実施形態における、図５に示した分割ジョブをブローカに割り当てる処理と、図６に示した分割ジョブを割り当てた以降の動作とを１つのフローチャートで示している、なお、分割ジョブを割り当てた以降のＴＭ及びブローカの動作は、第１の実施形態に関して説明した図７及び図８のフローチャートに示した動作と同様である。
【００７０】
まず、ステップＳ９０２ではＴＭからの受信待ち状態となる。そして、ＴＭから通知を受信したとき、ステップＳ９０３に進み、受信した通知がジョブのリクエストであるか否かを判定する。ジョブのリクエストであれば、ステップＳ９０４へ進み、そうでなければステップＳ９０８へ進む。
【００７１】
ステップＳ９０４では、受信したジョブの分割ジョブがあるかどうかを判定し、分割ジョブがあればステップＳ９０６へ進み、分割ジョブがなければ、ステップＳ９０５で、処理対象を始めの（第１番目の）分割ジョブへ戻して、ステップＳ９０６へ進む。
【００７２】
ステップＳ９０６では、ジョブを受け付けることが可能なブローカがあるか否かを判定し、受付可能なブローカがある場合には、ステップＳ９０７へ進み、そのブローカにジョブを実行依頼するようにＴＭに通知して、ステップＳ９０４へ戻る。ジョブを受け付けることが可能なブローカがある限り、ステップＳ９０４からＳ９０７の処理を繰り返す。ステップＳ９０６で、ジョブを受付可能なブローカがないと判定された場合には、ステップＳ９０２へ戻る。
【００７３】
一方、ステップＳ９０３で、受信した通知がジョブのリクエストでないと判定された場合には、ステップＳ９０８へ進み、受信した通知がジョブの強制終了通知であるか否かを判定する。ジョブの強制終了通知であれば、ステップＳ９０９へ進み、同一のジョブを実行している他のブローカを検索し、ステップＳ９１０で、同一のジョブが割り当てられたブローカに対して分割ジョブの強制終了指示を出すようＴＭへ通知し、その後ステップＳ９０２へ戻り受信待ち状態となる。ステップＳ９０８で、受信した通知がジョブの終了通知でもないと判定された場合には、なにもせずにステップＳ９０２へ戻り受信待ち状態となる。
【００７４】
ここで、本実施形態による分割ジョブの割り当て例を図１０を参照して説明する。図示した例では、画像形成システム内に含まれる分散処理の対象となるクライアント（ブローカ）の数が１４で、ジョブの分割数は８である。
【００７５】
図中、縦軸に示したａからｎはそれぞれ異なる１４個のブローカを示し、各ブローカの横に広がる枠はブローカでの処理内容を示し、その中の数字は分割ジョブの番号を示しており、ハッチングはユーザの割り込み等で分散処理ができない状態を示している。また、横軸は時間を示している。
【００７６】
分割ジョブの割り当て開始時点ｔ０で、ｇ及びｋで示されるブローカは、グリッドコンピューティングによる分散処理の対象とならない、このため、図示したように１から８の８つの分割ジョブは、１２個のブローカに割り当てられる。
【００７７】
時刻ｔ１において、８つの分割ジョブのうち、ジョブ１とジョブ５が終了し、それらを実行していた３つのブローカａ、ｅ、ｊには、ジョブ５以降でまだ終了していないジョブ６から８がそれぞれ割り当てられる。時刻ｔ２において、ジョブ２が終了し、それを実行していたブローカｂ及びｌには、まだ終了していないジョブ３及び４がそれぞれ割り当てられる。時刻ｔ３でジョブ３が終了すると、それを実行していたブローカｂ及びｍにはジョブ６及び７がそれぞれ割り当てられる。時刻ｔ４でジョブ４及び７が終了すると、それらを実行していたブローカｂ、ｅ、ｈ、ｌ及びｎには、まだ終了していないジョブ６及び８がそれぞれ割り当てられる。そして、時刻ｔ５でジョブ６及び８が終了することで、全ての分割ジョブが終了する。
【００７８】
このように本実施形態によれば、クライアントの数がジョブの分割数と比べてそれほど多くない場合において、実行可能なクライアントを有効に利用することができ、ジョブ全体が終了するまでの時間を短縮することができる。
【００７９】
＜第３の実施形態＞
以下、本発明に係る画像形成システムの第３の実施形態について説明する。第３の実施形態も第１及び第２の実施形態と同様な画像形成システムであり、以下の説明では第１及び第２の実施形態と同様な部分については説明を省略し、第３の実施形態の特徴的な部分を中心に説明する。
【００８０】
第１及び第２の実施形態においては、分割ジョブの割り当ての際に、ブローカに優先順位を設けていない。これに対して第３の実施形態は、各ブローカ毎に所定の基準に基づいた評価情報を設けてこれらの評価情報を例えばテーブル形式でＤＪＳ内の所定領域に保持し、分割ジョブの割り当ての際に、各ブローカの評価情報に応じた順番で割り当てるようにする。
【００８１】
この評価情報としては、例えば、ブローカごとに得点を設け、ＤＪＳがジョブ終了通知を受信したブローカに対してステップＳ６０４で得点を加点し、同一ジョブを実行中でステップＳ６０５やＳ９１０で強制終了指示の対象となるブローカについては得点を減点するようにする。そして分割ジョブをブローカに割り付ける際に、得点の高いブローカから順に割り当てるようにすればよい。
【００８２】
このようにすると、正常にジョブを終了した回数が多いブローカにジョブを優先的に割り当てることとなるので、各ブローカへの分割ジョブの割り当てが適正化され、その結果ジョブ全体が終了するまでの時間を短縮することができる。
【００８３】
＜第３の実施形態の変形例＞
第３の実施形態においては、正常終了したか強制終了したかによって評価情報（得点）を加点又は減点するが、ブローカのリソース（ＣＰＵ、ＯＳ、その他ハードウェアリソース）の能力、時刻、場所、部門、ユーザ設定、正常終了したときに要した処理時間、過去の実績などをベースに評価点を変更してもよい。
【００８４】
また、評価情報の代わりに、各ブローカ（クライアント）でジョブを実行した際の履歴情報を保存し、履歴情報に基づいてジョブを割り当てるブローカを決定するようにしてもよい。
【００８５】
さらに、第３の実施形態では得点の高いブローカから順にジョブを割り当てるようにしたが、これとは逆に、得点が低いブローカにはジョブを割り当てないように制御してもよい。
【００８６】
＜他の実施形態＞
本発明は、複数の機器から構成されるグリッドコンピューティングシステム（グリッド網）に適用しても良いし、また、グリッド網を構成する一つの機器（ホストコンピュータ）に適用しても良い。
【００８７】
また、必要に応じて上記の各実施形態を適宜組み合わせた態様としてもよい。
【００８８】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（本実施形態では図５から図９に示すフローチャートに対応したプログラム）を、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【００８９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の範囲に含まれるものである。
【００９３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９６】
【図１】グリッドコンピューティングの基本的構成を示す図である。
【図２】本発明に係る画像形成システムの基本的構成を示すブロック図である。
【図３】画像形成装置の概観を示す図である。
【図４】画像形成装置の制御構成を示すブロック図である。
【図５】第１の実施形態のＤＪＳにおけるジョブ割り当て処理のフローチャートである。
【図６】第１の実施形態のＤＪＳの処理を示すフローチャートである。
【図７】第１の実施形態のＴＭの処理を示すフローチャートである。
【図８】第１の実施形態のブローカの処理を示すフローチャートである。
【図９】第２の実施形態におけるＤＪＳの処理を示すフローチャートである。
【図１０】第２の実施形態の具体例を説明する図である。
【符号の説明】
【００９７】
１１０  クライアントＰＣ
１２０  画像形成装置
１４１〜１４３  ＰＣ
【図１】
2005352697.tif 000003
【図２】
2005352697.tif 000004
【図３】
2005352697.tif 000005
【図４】
2005352697.tif 000006
【図５】
2005352697.tif 000007
【図６】
2005352697.tif 000008
【図７】
2005352697.tif 000009
【図８】
2005352697.tif 000010
【図９】
2005352697.tif 000011
【図１０】
2005352697.tif 000012
【手続補正書】
【提出日】平成17年6月13日(2005.6.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、前記ジョブスケジューラによって決定されたクライアント装置に分割されたジョブを送信するタスクマネージャを有するコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させることを特徴とするジョブの割り当て方法。
【請求項２】
前記ジョブスケジューラは、前記複数のクライアント装置を複数のグループに分割し、各グループ毎に分割したジョブを割り当てるクライアント装置を決定することを特徴とする請求項１に記載のジョブの割り当て方法。
【請求項３】
前記中止手段は、各グループで分割したジョブ全体が終了したか否かを検知する検知手段を含み、該検知手段によっていずれかのグループで分割したジョブ全体が終了したことが検知されたときに、他のグループでのジョブの実行を強制的に中止させることを特徴とする請求項２に記載のジョブの割り当て方法。
【請求項４】
前記ジョブスケジューラは、前記複数のクライアント装置のうち、ジョブを受付可能なクライアント装置全てに前記分割したジョブを順次割り当てることを特徴とする請求項１に記載のジョブの割り当て方法。
【請求項５】
前記ジョブスケジューラは、各クライアント装置に関する情報を格納する格納手段を更に備え、該格納手段に格納された情報に基づいて前記分割したジョブの割り当て順序を決定することを特徴とする請求項１に記載のジョブの割り当て方法。
【請求項６】
前記情報は、クライアント装置のリソースの性能に関する情報、及びクライアント装置でのジョブの実行結果に関する情報のいずれかを含むことを特徴とする請求項５に記載のジョブの割り当て方法。
【請求項７】
前記ホストコンピュータ又は前記クライアント装置の少なくとも１つが画像形成装置であることを特徴とする請求項１に記載のジョブの割り当て方法。
【請求項８】
ネットワークを介して、それぞれが、リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置と、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、及びユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャを含むホストコンピュータと、が互いに接続されたコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させることを特徴とするジョブの割り当て方法。
【請求項９】
ネットワークを介して、ホストコンピュータと、複数のクライアント装置とが互いに接続されたコンピュータシステムであって、
前記クライアント装置それぞれは、該装置のリソースの状態を管理するリソースマネージャと、該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカと、を含み、
前記ホストコンピュータは、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラと、前記ホストコンピュータに対してユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャと、を含み、
前記ジョブスケジューラは、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させる中止手段を備えていることを特徴とするコンピュータシステム。
【請求項１０】
前記ジョブスケジューラは、前記複数のクライアント装置を複数のグループに分割し、各グループ毎に分割したジョブを割り当てるクライアント装置を決定することを特徴とする請求項９に記載のコンピュータシステム。
【請求項１１】
前記中止手段は、各グループで分割したジョブ全体が終了したか否かを検知する検知手段を含み、該検知手段によっていずれかのグループで分割したジョブ全体が終了したことが検知されたときに、他のグループでのジョブの実行を強制的に中止させることを特徴とする請求項１０に記載のコンピュータシステム。
【請求項１２】
前記ジョブスケジューラは、前記複数のクライアント装置のうち、ジョブを受付可能なクライアント装置全てに前記分割したジョブを順次割り当てることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１３】
前記ジョブスケジューラは、各クライアント装置に関する情報を格納する格納手段を更に備え、該格納手段に格納された情報に基づいて前記分割したジョブの割り当て順序を決定することを特徴とする請求項９に記載のコンピュータシステム。
【請求項１４】
前記情報は、クライアント装置のリソースの性能に関する情報、及びクライアント装置でのジョブの実行結果に関する情報のいずれかを含むことを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
前記ホストコンピュータ又は前記クライアント装置の少なくとも１つが画像形成装置であることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１６】
リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置とネットワークを介して接続された情報処理装置であって、
各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラと、
前記ホストコンピュータに対してユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャと、を含み、
前記ジョブスケジューラは、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させる中止手段を備えていることを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
上記目的を達成する本発明の一態様としてのジョブの割り当て方法は、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、前記ジョブスケジューラによって決定されたクライアント装置に分割されたジョブを送信するタスクマネージャを有するコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
上記目的を達成する本発明の別の態様としてのジョブの割り当て方法は、ネットワークを介して、それぞれが、リソースの状態を管理するリソースマネージャ、及び該リソースマネージャと通信して前記リソースの状態に関する情報を受信すると共に、ジョブを受信してその進行状況をモニタするブローカを含む、複数のクライアント装置と、各ブローカと通信してそれぞれのリソースの状態を管理し、入力されたジョブを分割して、分割したジョブを割り当てるクライアント装置を決定するジョブスケジューラ、及びユーザが入力した要求をジョブとして前記ジョブスケジューラに送信し、前記ジョブスケジューラによって決定されたクライアント装置のブローカに分割されたジョブを送信するタスクマネージャを含むホストコンピュータと、が互いに接続されたコンピュータシステムにおけるジョブの割り当て方法であって、
前記ジョブスケジューラにおいて、分割したジョブの数よりもクライアント装置の数が多い場合、同じジョブを複数のクライアント装置に割り当て、
同じジョブを割り当てられた複数のクライアント装置のうち、いずれかの装置で該ジョブが終了したときに、他のクライアント装置での該ジョブの実行を中止させることを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
また、上記の目的は、上記のジョブの割り当て方法を実行するコンピュータシステム、該コンピュータシステムのホストコンピュータとして動作し得る情報処理装置、上記のジョブジョブの割り当て方法をコンピュータ装置によって実行させるコンピュータプログラム、該プログラムを記憶する記憶媒体によっても達成される。