JP4725964B2 - 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム - Google Patents

分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム Download PDF

Info

Publication number
JP4725964B2
JP4725964B2 JP2006020638A JP2006020638A JP4725964B2 JP 4725964 B2 JP4725964 B2 JP 4725964B2 JP 2006020638 A JP2006020638 A JP 2006020638A JP 2006020638 A JP2006020638 A JP 2006020638A JP 4725964 B2 JP4725964 B2 JP 4725964B2
Authority
JP
Japan
Prior art keywords
job
arbiter
divided
processing apparatus
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006020638A
Other languages
English (en)
Other versions
JP2007200204A (ja
Inventor
洋 穂積
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006020638A priority Critical patent/JP4725964B2/ja
Publication of JP2007200204A publication Critical patent/JP2007200204A/ja
Application granted granted Critical
Publication of JP4725964B2 publication Critical patent/JP4725964B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像処理装置を分散処理のクラスタ・ノードとして使用する、分散処理システム、分散処理方法、ジョブ・アービタおよびプログラムに関する。
近年、ネットワーク・インフラ基盤の発展により、膨大な計算をネットワークに接続された情報処理装置に分散させて処理を行う分散処理システム、所謂、グリッド・コンピューティング・システムが注目されている。グリッド・コンピューティング・システムは、単一のサーバまたは汎用大型コンピュータなどでも多大な時間を必要とする計算処理を、計算処理単位(以下、ジョブとして参照する。)に分割し、ネットワークを介して、パーソナル・コンピュータなど、処理能力では劣るクラスタ・ノードに依頼し、最終的に目的とする結果をサーバが取得する。
上述した処理は、通常では、サーバが、目的とする処理を複数のジョブに分割し、ジョブ・リストなどとして登録する。サーバは、ボランティアなどが応募してきた段階で、そのIPアドレスを取得し、パスワード、ユーザIDなどを設定し、ボランティアが管理するパーソナル・コンピュータをクラスタ・ノードとして登録する。その後、サーバは、ボランティアによるリクエストに応答したジョブ、またはサーバがジョブ・リストから選択したジョブをデータと共にクラスタ・ノードに送付する。クラスタ・ノードは、依頼された処理を実行し、その実行結果をレスポンスとして返すことで、サーバに対して実行結果をアップデートさせている。
図23には、従来の分散処理システム140の概略的な構成を示す。図23に示されるように、分散処理システム140は、処理を依頼するサーバ142と、種々のプロトコル変換を実行するGWサーバ144と、インターネットまたは公衆電話網などの通信インフラ基盤に基づいた公共ネットワーク158と、公共ネットワーク158に接続された複数のクラスタ・ノード146〜156とから形成されている。
サーバ142と、GWサーバ144との間は、企業などのバックボーン・ネットワーク160により接続されていて、サーバ142からの分散処理依頼は、バックボーン・ネットワーク160を介して、クラスタ・ノード146〜156へと個別的に配布される。クラスタ・ノード146〜156は、多くの場合、ボランティア的に、また実行結果が得られた場合には懸賞などにより一定のメリットを受けるだけである。このためサーバ142は、ユーザからのアクセスを待機し、ユーザからのアクセスがあった段階でクラスタ・ノード146〜156のユーザからサーバ142へと分散処理を行うべきジョブを、ゲット型伝送により伝送する。この場合、サーバ142では、処理を依頼したい分散可能なジョブがあるにも拘わらず、ジョブを配送できないという処理上のタイムラグが発生する。
また、せっかくクラスタ・ノード146〜156が得られても、クラスタ・ノードの増加と、サーバ142が処理しなければならないトランザクションの数は概ね比例する。この結果、クラスタ・ノード146〜156が増加するにつれ、サーバ142側のバックボーン・ネットワーク160の帯域幅が消費され、特にGWサーバ144よりも公共ネットワーク158側の接続ノードには、バックボーン・ネットワークでのトランザクションが集中する。このため、接続ノードのネットワーク帯域幅がボトルネックとなり、輻輳などの不都合が発生することも想定される。このため、クラスタ・ノードの増加に直接的に対応してトランザクション量を増加させることのない分散処理システムが望ましい。
また、近年、画像処理装置、特に、複合機として参照される画像処理装置は、高画質化・フルカラー化した画像を、画像処理を高速に実行することが必要であるため、その処理能力が向上している。また、近年では多くの場合、画像処理装置は、インターネットなどのネットワークに接続されて、管理センタなどと相互通信する環境とされており、ユーザとの間に保守管理契約に基づいた保守データが収集される場合が多い。管理センタに配置されたサーバは、画像処理装置と相互通信を実行し、その稼働状況、メンテナンス管理などの必要性などを判断して、保守サービスに反映する。
上述した理由から、画像処理装置は、パーソナル・コンピュータやワークステーション程度の処理能力を備えるようになっている。したがって、画像処理装置の中央処理装置(以下、CPUとして参照する。)、メモリなどのハードウェア資源を有効利用することで、サーバなどの処理負担を軽減し、効率的な処理が可能となるものと考えられる。
一方で、画像処理装置は、サーバから依頼された計算処理だけではなく、本来、複写機、ファクシミリなどの本来の用途として使用されていることを想定しなければならない。画像処理装置が、本来の用途に使用されている、または使用可能な期間にクラスタ・ノードとして機能してしまうと、本来の用途の機能を低下させることにもなる。また、サーバ側でも、手当たり次第にジョブを配布するのではクラスタ・ノードからのリターン・タイムが予測できず、グリッド・コンピューティングなどの分散処理におけるスケーラビリティを確保できないという問題が発生する。加えて、画像処理装置を導入しているユーザから見れば、ユーザが知らないうちにボランティア的に画像処理装置の能力を提供することは好ましいことではない。
すなわち、画像処理装置のハードウェア資源を有効に利用して分散処理を行うためには、分散処理のスケーラビリティを確保でき、また画像処理装置の計算能力が余剰となっている期間を有効に利用することが好ましい。また、画像処理装置のユーザが、画像処理装置の能力提供という観点でメリットを享受することができれば、計算機資源のより有効な活用を行うことができると考えられる。
これまで、画像処理装置に対して分散処理を依頼するためのサーバが提案されている。例えば、特開2004−326452号公報(特許文献1)には、コンピュータ資源の余剰部分を効率的に利用するために、サービス要求を行う第1のコンピュータと処理を実行する複数の第2のコンピュータとを含む分散コンピューティング環境を提供するサーバであって、第1のコンピュータからのサービス要求を受付けて、第2のコンピュータの資源に関する情報に基づいて受付けたサービス要求に関する処理を分割した各処理ブロックを割当てる第2のコンピュータを決定する第2の手段と、を備え、決定された第2のコンピュータに、割当てた処理ブロックを配信する第3の手段と、第2のコンピュータからの処理ブロックの処理結果を受信し、その処理結果に基づいてサービス要求に対する処理結果を第1のコンピュータに配信する第4の手段を備える分散処理サービス提供サーバが開示されている。
特許文献1に記載された分散コンピューティング環境も、コンピュータ資源の余剰分を効率的に利用することは可能であるということができる。しかしながら、第1のコンピュータからの要求をサーバが受付け、第2のコンピュータに処理ブロックを渡し、その処理結果をサーバが受信して第1のコンピュータに配信する処理は、すべてのトランザクションが、サーバが使用するバックボーン・ネットワークを通過することになる。このため、サーバの能力は充分にあったとしても、サーバに対して処理を依頼するコンピュータが増加するにつれて、バックボーン・ネットワークの帯域幅がますます消費され、輻輳などの問題が発生し、必ずしも効率的な分散処理を保証することにはならない場合も発生する。また、分散コンピューティング環境の帯域幅を増大させるため、バックボーン・ネットワークのインフラ基盤を整備するのでは、サーバ管理者側におけるコスト負担も無視できず、分散環境全体として必ずしも効率的なものであるとはいえない。
特開2004−326452号公報
すなわち、本発明は、クラスタ・ノードの増加が、直接バックボーン・ネットワークの帯域幅の低下を招くことのない、分散処理システム、分散処理方法、ジョブ・アービタおよびプログラムを提供することを目的とする。
また、本発明の他の目的は、サーバとクラスタ・ノードとの間における多重のトランザクションを、公共ネットワークから高速なローカル・エリア・ネットワーク(LAN)などのプライベート・インフラ基盤でのトランザクションに移行させることにより、公共ネットワークにおける輻輳発生の可能性を低減させ、同時に画像処理装置の余剰のCPU能力を有効に利用する、分散処理システム、分散処理方法、ジョブ・アービタおよびプログラムを提供することを目的とする。
さらに、本発明の他の目的は、画像処理装置のユーザが、画像処理装置能力および画像処理装置の利用期間の提供に応じて、画像処理装置の管理コストの低減を受けることを可能とすることにより、画像処理装置の管理者側およびユーザ側双方における計算機資源の効率的利用を促すことができる、分散処理システム、分散処理方法、ジョブ・アービタおよびプログラムを提供することを目的とする。
本発明は、サーバが実行する処理を代入または参照構造の深度に分解し、深度に対応した分割ジョブとして、クラスタ・ノード間でのジョブの配布を仲介するジョブ・アービタに伝送する。サーバは、ジョブ・アービタが管理する画像処理装置のトータル・パフォーマンスを、保守データを使用して管理しており、トータル・パフォーマンスおよび分割ジョブのために使用できる資源量、結果出力の処理時期などに応答してジョブ・アービタを選定する。ジョブ・アービタは、受取った分割ジョブをさらに分割し、自己が管理するクラスタ・ノードに分配し、クラスタ・ノードにジョブの処理を実行させる。クラスタ・ノードは、処理が終了した後、サーバにではなく、ジョブ・アービタに対して実行結果を送る。ジョブ・アービタは、サーバから依頼された分散ジョブがすべて終了するまでジョブを管理し、すべてのジョブが終了した段階で、サーバ装置に依頼された分割ジョブの結果を返す。
サーバは、受取った結果に関連する処理量に応答して、ユーザの画像処理装置の管理コストについての割引料金を決定し、ユーザに通知するか、または請求に管理コストの請求に反映させる。
すなわち、本発明によれば、画像処理装置にネットワークを介して処理を実行させる分散処理システムであって、前記システムは、
画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録し、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークに送出するサーバと、
前記サーバから前記分割ジョブを前記ネットワークを介して受信し、第2のネットワークに接続され、ジョブを配付できる画像処理装置を監視し、前記画像処理装置に対し、受信した前記分割ジョブの少なくとも一部のジョブを伝送するジョブ・アービタと、
前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行し、実行結果を前記ジョブ・アービタに返信する画像処理装置と
を備え、
前記サーバは、前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録し、同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定するシステムが提供される。
本発明の第2の構成によれば、画像処理装置にネットワークを介して処理を実行させる分散処理システムであって、前記システムは、
画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録し、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出するサーバと、
前記サーバに対して分割ジョブ・リクエストを定期的にポーリングし、前記ポーリングに応答して前記分割ジョブを前記ネットワークを介して受信し、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送するジョブ・アービタと、
前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行し、実行結果を前記ジョブ・アービタに返信する画像処理装置と
を備え、
前記サーバは、前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録し、同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の提供可能資源データについての前記保守データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定する、システムが提供される。
本発明では、前記サーバは、前記分割ジョブを、電子証明書またはSSLによる暗号化されたFTPパケットとして送出する送出手段を備えることができる。本発明では、前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択する選択手段を含むことができる。本発明では、前記選択手段は、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択することができる。本発明では、前記サーバは、前記ジョブ・アービタが提供した提供資源量に応答して前記保守管理契約に対する割引料金を決定する割引料金決定手段を含むことができる。
本発明の第3の構成によれば、画像処理装置に対してネットワークを介して処理を実行させる分散処理方法であって、前記方法は、
サーバが、
ジョブ・アービタに対し分割ジョブ・リクエストを前記サーバに定期的にポーリングさせるステップと、
画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録させ、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出させるステップと、
前記ジョブ・アービタに対し、前記分割ジョブを前記ネットワークを介して受信させ、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送させるステップと、
画像処理装置に対し、前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行させ、実行結果を前記ジョブ・アービタに返信させるステップと
を含み、
前記サーバが、さらに
前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録するステップと、
同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定するステップとを実行する方法が提供される。
本発明の前記送出させるステップは、前記分割ジョブを、電子証明書またはSSLによる暗号化されたFTPパケットとして送出させるステップを含むことができる。本発明では、前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択するステップを実行することができる。本発明の前記選択するステップは、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択するステップを含むことができる。本発明の前記サーバは、前記ジョブ・アービタが提供した提供資源量に応答して前記保守管理契約に対する割引料金を決定するステップを実行することができる。
本発明の第4の構成によれば、画像処理装置に対してネットワークを介して分散処理を実行させるジョブ・アービタであって、前記ジョブ・アービタは、
前記分散処理に対するリクエストを前記ネットワークへと定期的にポーリングする手段と、
前記ポーリングに応答して前記ジョブ・アービタの所定期間についての処理能力以下として生成された分割ジョブを前記ネットワークを介してサーバから受信する手段と、
前記分割ジョブの少なくとも一部を第2のネットワークを介して前記画像処理装置へと送出し、前記画像処理装置の実行結果を受取り、前記実行結果を前記ネットワークを介して前記サーバに送出する送出手段と、
を備え、
前記ジョブ・アービタは、前記サーバが同一の階層に登録された前記分割ジョブのサブツリーの数に応じて前記ジョブ・アービタが管理する画像形成装置の保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して前記分割ジョブを送付する宛先が決定され、前記サーバから前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記階層構造の深度に応じた前記分割ジョブのサブツリーとして受信する、ジョブ・アービタが提供される。
本発明の前記送出手段は、前記実行結果をFTPプロトコルへと変換する手段を含むことができる。本発明では、前記送出手段は、前記ネットワークへの送出プロトコルと、前記第2のネットワークへの送出プロトコルとを変えて送出を行うことができる。本発明の前記送出手段は、前記分割ジョブに対して電子証明書またはSSLを使用して暗号化または復号化されたデータを生成する手段を含むことができる。
本発明の第5の構成によれば、画像処理装置に対してネットワークを介して分散処理を実行させるジョブ・アービタとして情報処理装置を機能させるプログラムであって、前記プログラムは、前記情報処理装置が、
前記分散処理に対するリクエストを前記ネットワークへと定期的にポーリングするステップ、
前記ポーリングに応答して前記ジョブ・アービタの所定期間についての処理能力以下として生成された分割ジョブを前記ネットワークを介してサーバから受信するステップ、
前記分割ジョブの少なくとも一部を第2のネットワークを介して前記画像処理装置へと送出し、前記画像処理装置の実行結果を受取り、前記実行結果を前記ネットワークを介して前記サーバに送出する送出ステップ、
を実行し、
前記ジョブ・アービタは、前記サーバが同一の階層に登録された前記分割ジョブのサブツリーの数に応じて前記ジョブ・アービタが管理する画像形成装置の保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して前記分割ジョブを送付する宛先が決定され、前記サーバから前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記階層構造の深度に応じた前記分割ジョブのサブツリーとして受信する、情報処理装置実行可能なプログラムが提供される。本発明では、前記送出ステップは、前記実行結果をFTPプロトコルへと変換するステップを含むことができる。本発明では、前記送出ステップは、前記ネットワークへの送出プロトコルと、前記第2のネットワークへの送出プロトコルとを変えるステップを含むことができる。本発明では、前記分割ジョブに対して電子証明書またはSSLを使用して暗号化または復号化されたデータを生成するステップを含むことができる
本発明によれば、画像処理装置に対してネットワークを介して処理を実行させるため、情報処理装置をサーバとして機能させるための情報処理装置実行可能なプログラムであって、前記プログラムは、前記情報処置装置を、
ジョブ・アービタに対し、分割ジョブ・リクエストを前記サーバに定期的にポーリングさせる手段、
画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録させ、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出させる手段、
前記ジョブ・アービタに対し、前記分割ジョブを前記ネットワークを介して受信させ、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送させる手段、
画像処理装置に対し、前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行させ、実行結果を前記ジョブ・アービタに返信させる手段
として機能させ、
さらに、前記情報処理装置を、
前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録する手段、
同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定する手段
として機能させる、プログラムが提供される。前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択する選択手段を含むことができる。さらに、前記選択手段は、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択することができる。
以下、本発明を、図面に示した実施の形態をもって説明する。図1は、本発明の分散処理システムの実施の形態を示した図である。本発明の分散処理システム10は、所謂、グリッド・コンピューティング・システムとしても機能し、サーバ12と、サーバ12から処理を依頼される複数の画像処理装置(28、30、32)とを含んで構成されている。なお、本発明では、特に画像処理装置の性能に関連して本発明を説明する以外、画像処理装置とは、複合機、複写機、プリンタ、ファクシミリなどの画像処理装置すべてを含む意味で使用する。
サーバ12は、本発明の実施の形態では、画像処理装置(28、30、32)の状態管理、消耗品管理などを行うための管理センタに設置されている。管理センタでは、画像処理装置を遠隔的にモニタして動作チェック、コピー・カウンタに応じたメンテナンス管理のスケジューリングを行っている。また、サーバ12は、コピー・カウンタに応答した課金処理などを行い、当該ユーザに対しての請求を取りまとめる処理を行っている。また、サーバ12は、本発明にしたがい、分散処理の要求を受付け、分散処理のために必要なソフトウェア資源およびデータを、要求下に配布している。
これらの処理を実行するため、サーバ12は、ワイド・エリア・ネットワーク(WAN)、LANなどのバックボーン・ネットワーク16を介してゲートウェイ・サーバ(GWサーバ)14に接続されている。GWサーバ14は、各種のネットワークを介して送受信される、転送データ、メール、HTTPリクエストなどのプロトコルを相互に変換して、サーバ12や、バックボーン・ネットワーク16に接続されたコンピュータ(図示せず)との間のデータ伝送を管理している。また、GWサーバ14は、図示しないルータおよびファイアウォール18を介してインターネットや、公衆電話網などの公共ネットワーク20に接続されている。
ユーザ側のプライベート・ネットワークは、ファイアウォール22およびルータ24を介して公共ネットワーク20に接続されている。ルータ24は、OSI参照モデルなどにおいて参照されるネットワーク層/トランスポート層レベルでのネットワーク制御を行っている。公共ネットワーク20は、TCP/IP、UDP/IPなどの適切なプロトコルによるISDN、ADSL、光通信などの通信インフラ基盤を使用して構築されており、多くの場合、64kbps〜100Mbps程度の通信ビットレートを提供している。
また、ユーザは、オフィス・フロア内に複数の機能を備えた複合機28、複写機能を備える複写機30、プリンタ32などを使用している。これらの画像処理装置は、本発明の特定の実施の形態では、さらに他のスイッチなどを使用して構成されるLAN/VLANなどの他のネットワーク36を含んで形成することができるWAN/LANなどとして構成され、プライベート・ネットワークである第2のネットワーク38に接続されている。画像処理装置は、画像形成などの画像処理を実行する他、同時に本発明のクラスタ・ノードとして機能する。また、第2のネットワーク38には、本発明のジョブ・アービタ26が、スイッチ34を介して複合機28、複写機30、およびプリンタ32に接続されている。
第2のネットワーク38は、例えば、IEEE802.3uなどに規定される100Base−TX、またはIEEE802.3zに規定される1000Base−EX、1000Base−SX、1000Base−LXなどの規格のイーサネット(登録商標)によるトランザクションを行う。ま本発明におけるユーザは、第2のネットワークをスイッチ34により形成される単位で形成することもできるし、また、プライベートIPアドレスなどを動的に割当てて構築されるIPアドレス・ベースでネットワーク制御を行う単位として構築することができる。
図2は、本発明で使用するサーバ12の詳細な構成を示した図である。サーバ12は、ワークステーションまたは汎用大型コンピュータなどから構成されており、ユーザ・サイトに設置された画像処理装置の保守管理を行うと共に、分散処理の管理を行っている。サーバ12は、画像処理装置の管理、分散処理の管理を行うソフトウェアを含むアプリケーション層40と、ユニックス(登録商標)、リナックス(登録商標)、WINDOWS(登録商標)200XSERVERなどのOSを含むOS層44と、OS層44とアプリケーション層40との間でデータ変換などを実行するAPI(Application Programming Interface)層42とを備えている。サーバ12は、上述した構成のもとで、C、C++、JAVA(登録商標)などのオブジェクト指向プログラムで記述されたアプリケーションを実行する。なお、本発明では、アプリケーションは、上述したプログラミング言語以外にも、例えば、FORTRAN、PASCAL、COBOLなどのプログラミング言語で記述されていても良い。また、OS層44の下層には、IDE、NIC、USB、VGAなどの外部装置との間の入出力を可能とするインタフェースおよびドライバを含む、I/O層46が構成されている。
サーバ12には、I/O層46を介して、それぞれ、ハードディスクといった記憶装置48と、LAN、WANなどのプライベート・ネットワークである第2のネットワーク38と、キーボード52、マウス54、およびディスプレイ装置50とが接続されていて、サーバ12に対するオペレータによる入力操作を可能としている。記憶装置48には、本発明のジョブ・アービタが管理する画像処理装置の能力などをユーザごとに記録したユーザ管理データと、画像処理装置ごとの能力を登録した画像処理装置データと、分散処理のためにクラスタ・ノードに配布されるジョブを登録したジョブ・リストと、ジョブ・アービタからのレスポンス・メッセージを管理して、配布したジョブの状況を登録する、ジョブ管理データとが格納されている。各アプリケーションは、ランタイム処理に必要なデータを、記憶装置48からシステム・メモリまたはRAM(図示せず)に読込ませ、処理を実行する。
図3は、本発明で使用する画像処理装置の例示的構成を示した図である。図3に示した画像処理装置は、図1の複合機28が備える構成に相当する。複合機28は、ADF(オート・ドキュメント・フィーダ)を備え、複写機、ファクシミリ、プリンタ、メーラなどの複合的な機能を備えている。複合機28は、各種機能を提供するためのアプリケーションを登録したアプリケーション層60と、汎用オペレーション・システム(OS)の下で、各種制御を実行する、制御モジュール層62と、白黒プリンタ、カラー・プリンタ、ネットワーク接続機能、ハードディスクなどの記憶装置への書込み・読出しを制御するデバイス層64とから構成されている。また、複合機28は、外部コンピュータからの入力に応答してプリンタやファクシミリとしても機能する。
汎用OSは、例えば、ユニックス(登録商標)、リナックス(登録商標)などとすることができ、汎用OSの下で機能する、C、C++などの手続き型またはオブジェクト指向プログラミング言語による機能制御を可能とする。また、複合機28は、処理のためのシステム・ライブラリやダイナミック・リンク・ライブラリ(DLL)なども必要に応じて備えており、ソース・コードをコンパイルし、ライブラリにリンクさせ、実行ファイルを作成し、必要に応じてDLLを動的リンクして処理を実行する。
また、アプリケーション層60と制御モジュール層62とは、APIによりインタフェースされ、また、制御モジュール層62とデバイス層64との間は、デバイスI/Fによりインタフェースされている。複合機28は、RAM66を備えており、RAM66を使用して、複数のジョブを先入れ・先出し式に管理するジョブ・キューを構成している。複合機28は、さらに図示しないタッチパネル、入力キーなどといった操作パネルまたはディスプレイ装置を含む、UI(ユーザ・インタフェース)装置68を備えている。UI装置68は、それぞれのインタフェース群を介して複合機28へとユーザ要求を入力させ、ファクシミリ、モノクロ・コピー、フルカラー・コピーなどの各種の機能をユーザに対して提供している。
複合機28は、固有の物理アドレス(MACアドレス)が付されたNICを介して、LAN内においてデータリンク層レベルでの通信を行う他、例えば図示しないDHCPサーバ(Dynamic Host Configuration Protocol Server)などにより割当てられたIPアドレスまたは固定的に設定されたIPアドレスを保有しており、TCP/IPまたはUDP/IPなどのネットワーク/トランスポート層プロトコルを使用したトランザクションが可能とされている。また、複合機28は、ITU−U勧告T.4、T.6などの規格で公衆電話網を介し、通信プロトコルT.30、T.38、T.70などを使用してファクシミリ通信を行う。なお、複合機28以外の複写機30、プリンタ32などについては、複合機28対応する機能部分を、コストおよび処理能力に応じて備えた構成とされている。
図4は、本発明において、サーバ12から送付された分散ジョブを仲介し、画像処理装置に配分するジョブ・アービタ26の機能ブロック図を示す。ジョブ・アービタ26は、概ね、パーソナル・コンピュータなどを使用して形成することができる。ジョブ・アービタ26は、例えば、PENTIUM(登録商標)シリーズ、PENTIUM(登録商標)互換CPUなどの復号命令セットコンピュータ、POWERPC、MIPSなどの縮小命令セットコンピュータなどから選択されるCPU、システム・メモリ、RAM、DRAMなどのハードウェアを備えており、Windows(登録商標)2000、Windows(登録商標)XP、MacOSなどのOS上で機能するアプリケーション・プログラムを搭載する。ジョブ・アービタ26は、本発明の処理を実行するため、アプリケーション・プログラムとして、FTPクライアント処理部70と、ジョブ管理部72と、装置モニタ74とが実装されている。
FTPクライアント処理部70は、RFC959に規定されたFTPファイル伝送プロトコルにしたがって、サーバとのデータ伝送を処理する。同時に、FTPクライアント処理部70は、FTPプロトコルと、ジョブ・アービタ26が第2のネットワーク38を介して通信するファイルとの間のフォーマット変換処理を行って、データまたはリクエスト/レスポンスを処理している。さらに、本発明の別の実施の形態では、FTPクライアント処理部70は、電子証明書を使用した認証処理またはSSL暗号化/複合化処理を行う手段を備え、サーバ12から受信した分割ジョブを復号し、以後の処理を実行する。
また、サーバ12に対して実行結果を送信する場合には、FTPクライアント処理部70は、サーバ12に対して送信する実行結果を暗号化して送信する処理を実行する。なお、本発明では、サーバ−ジョブ・アービタ間の暗号化処理としては、これまで知られたいかなる方式でも使用することができ、公開鍵/秘密鍵を使用する暗号化方式、共有鍵方式などを使用することができる。本発明のジョブ・アービタ26は、FTPクライアント処理部70が定期的にサーバ12に対し、ジョブ引受けが可能であることを示すFTPリクエストを定期的にポーリングして、サーバ12からのジョブ依頼を待機する。
ジョブ管理部72は、サーバ12から渡された分割ジョブの画像処理装置による処理の管理を行う。ジョブ管理部72は、サーバ12からジョブを渡されると、第2のネットワーク38に接続された複合機28などの画像処理装置へと処理を依頼して、その処理状態を監視する。ジョブ・アービタ26は、画像処理装置からの実行結果が返されると、実行結果に応答して、さらにジョブを渡したり、サーバに結果を伝送したりする処理を行っている。
また、装置モニタ74は、第2のネットワーク38に接続された画像処理装置の状態を監視して、ジョブを配布できるかどうかを判断する。この際、装置モニタ74による画像処理装置の監視は、例えば、PING/ICMPプロトコルを使用して行うことができる。さらに、ジョブ・アービタ26は、インタフェース76を含んでおり、それぞれのインタフェース/ドライバを介して記憶装置78、第2のネットワーク38、キーボード82、マウス84、ディスプレイ装置80との間で入力および出力を可能としている。
ジョブ・アービタ26と複合機28などの画像処理装置との間の通信は、種々のプロトコルで行うことができ、例えば、ジョブ管理部72と画像処理装置との間は、TCP/IP、UDP/IPなどのプロトコル・スイートにしたがったsocket通信とすることができる。また、本発明では、ジョブ・アービタ26と画像処理装置との間のトランザクションは、LANといったプライベート・ネットワーク内でのローカル・トランザクションなので、コネクションレス型のファイル転送プロトコルであるTFTPを使用し、UDPベースでの簡易ファイル伝送プロトコルを使用することもできる。さらに、本発明では、HDLC、PPPなどのフレーム・ベースでのデータリンク・レベルのプロトコルを使用したデータ伝送を使用することもできる。
図5は、本発明の処理および処理を構成するジョブの構成を示す。なお、本発明で「処理」とは、サーバ側がクラスタ・ノードに対して依頼を行う、サーバで必要とする値を返す処理全体を意味する。「ジョブ」とは、処理を構成するオブジェクト、外部関数など、独立して返り値を生成することができる処理単位を意味する。また、「分割ジョブ」とは、互いに代入・参照関係にある複数のジョブからなる処理単位を意味する。
図5では、本発明によりサーバ12が、クラスタ・ノードに依頼する処理を、複数のジョブ単位として、その階層構造を示す。最終的な結果を得たい処理は、F()であり、処理F()は、ジョブG()、H()、I()〜L()の複数のジョブから構成されている。ジョブI()〜L()は、データA〜Dを使用して結果を生成し、それぞれ上位階層のジョブG()、H()に結果を渡す。また、ジョブG()、H()は、渡された結果を使用して結果X、Yを生成し、ジョブF()へと、結果X、Yを渡して目的とする値Zを生成する。すなわち、図5に示した処理は、代入/値参照構造から見た深度が、3階層となっているということができる。なお、図5では、各ジョブの階層構造は、各ジョブの深度に応答して深度1ジョブ・レベル、深度2ジョブ・レベル、深度3ジョブ・レベルとして降順にランク付けして示している。下記式(1)には、本発明における処理の実施を構成するジョブの形態を示す。
Figure 0004725964
本発明では、上述した処理F()のソース・コードは、例えばC、C++、JAVA(登録商標)などを使用して記述することができる。サーバ12は、ソース・コードが入力された段階で、テキスト・パーサなどを使用して処理F()の構文解析を実行し、コンパイル処理を実行する前にその参照・代入構造を判断し、図5に示した木構造を生成する。なお、この処理のためには、これまで知られたいかなるテキスト・パーサでも使用することができる。テキスト・パーサにより生成された木構造は、例えば、下記式(2)に示すデータ構造として、サーバの適切なメモリ領域に格納される。
Figure 0004725964
上記式(2)中、{}内に含まれるジョブが処理を構成し、1〜3がジョブ階層を示し、()内が同一深度レベルにあるジョブを示し、「|」は、ジョブおよびデータの独立性を示す識別値として使用されている。また、サーバは、これらのジョブがどの単位ででも処理依頼できるような形式とされたソース・コードとして、適切な記憶領域に生成されたジョブ・リストに当該ジョブのジョブ識別値job_idと共に格納している。なお、本発明では、階層構造を記述することができるデータ・フォーマットである限り、木構造を記述するためにいかなるフォーマットでも使用することができる。また、上述したジョブは、サーバ内では、クラスタ・ノードにおいて実行形式の実行ファイルを生成することができる形式として、それぞれ別個の単位のソース・コードとして記述されて、ジョブ・リストに登録することもできるが、それぞれ分割コンパイルされた形式で格納しておくこともできる。この場合には、ジョブ・アービタおよび画像処理装置のコード互換性に応答して、ジョブ・アービタまたは画像処理側で、リンクを実行し、実行形式ファイルを生成し、実行する。
テキスト・パーサは、分割ジョブを決定する場合、上記式(2)の左手側(ファイル先頭に相当するものとする。)から順次、ジョブ識別値を呼出し、木構造のトップ・ノードであることを識別し、記号「(」が見出された段階で第2階層には並列関係にあるジョブが存在し、それらがG、Hであることを判断し、順次同様の関係で木構造を認識して行く。その後、以下に説明するサブツリーのトップ・ノードとして選択されるべき階層のジョブを取得し、サブツリーの木構造に対応するジョブ識別値を順次ファイルに書出して、サブツリー・データ構造を作成する。例えば、本発明の特定の実施の形態において、分割ジョブをG以下およびH以下として定めるべき場合には、サブツリー・データ構造は、下記式(3)として与えられる。
Figure 0004725964
本発明では、サーバ12は、ジョブ・アービタ26からのリクエストに応じて上記式(3)により定義される分割ジョブを決定し、ジョブ・アービタ26へと伝送する。この場合、サーバ12が保有するジョブ・リストには、各ジョブ単位にソース・コードを登録しておき、分割ジョブのレベルが決定された時点で、送信バッファ内に分割ジョブとして蓄積して、ジョブ・アービタに伝送することができる。
また、本発明の熱の実施の形態では、各ジョブのソース・コードとは別に、ジョブ・リスト内には、最終的な処理F()と分割ジョブとをソース・コードのセットとして保持させておくこともできる。
図6には、上述したジョブを登録したジョブ・リストを示す。図6に(a)示す特定の実施の形態では、ジョブ・リスト88は、処理の木構造を、ジョブ単位に識別し、最上層のジョブを基点として上層レベルから下層レベルへと登録が行われている。ジョブ・リストは、ジョブに付されたジョブ識別値job_idと、対応するソース・コード識別値source_idと、分割ジョブを指定する識別値job_set_idをリストしている。ジョブ識別値job_idは、サーバ12がソース・コードなどを送付する際のアドレスなどを識別するために使用され、ソース・コード識別値source_idは、当該ソース・コードが格納されているメモリまたはハードディスクのアドレスを識別するために使用される。また、分割ジョブを指定する識別値job_set_idは、分割ジョブとして識別されたジョブ・セットを同一のジョブ・アービタに伝送するための識別値として機能する。
また、図6(b)に示したジョブ・リスト88は、処理F()と、分割ジョブG()、H()とがjob_idにリストされており、ソース・コード識別値のフィールドには、その中に含まれるソース・コードを識別するための複数のソース・コード識別値のセットが記述されている。図6に示した実施の形態の場合、処理F()と分割ジョブG()、H()とがリストされているだけなので、job_set_idは、特に必要ではない。なお、本発明の他の実施の形態では、上述した処理は、サーバのオペレータがソース・コードを分析してコンピュータに登録することができる。
図6(a)に示した実施の形態では、サーバ12は、ジョブ識別子job_idに対応して登録されたそのソース・コードを格納するアドレス範囲を参照してジョブとそれに対応するソース・コードとを対応づける。また、識別値job_set_idは、分割ジョブを構成するジョブからなるサブツリーのグループを識別する。サーバは、分割ジョブを画像処理装置に送信する場合、サブツリーを構成するジョブおよびデータを選択し、順次送信バッファに伝送して送信パケットを生成し、必要に応じて電子証明書またはSSLによる暗号化処理を施した後、FTPパケットとして画像処理装置へと送出する。
また、図6(b)に示した実施の形態では、配布するべきジョブ・アービタ26が決定された後、当該ジョブ・アービタ26の宛先に宛てて、分割ジョブを構成するソース・コードとジョブ属性とを識別して、まとめて送信バッファに書込み、宛先に宛てて送信する処理を実行する。
図7は、サーバ12が含むジョブ管理データ90の実施の形態を示した図である。サーバ12は、記憶装置48およびジョブの配布処理を実行している間には、RAMなどの実行メモリ内に、配布したジョブの状態を反映させたジョブ管理データ90を読出し、ジョブ・アービタからのレスポンスを管理する。図7に示したジョブ管理データ90は、深度1レベル・ジョブ92、深度2レベル・ジョブ100、深度3レベル・ジョブ102をリストするフィールドを有しており、それぞれ、ジョブF、ジョブG、ジョブH、ジョブI〜Lがエントリされている。また、ジョブ管理データ90は、依頼先ジョブ・アービタに対し分割ジョブがすでに割当てられているか否かを示す資源利用可能識別値96と分割ジョブが割当られる依頼先ジョブ・アービタ識別値98とをリストする。
なお、図7に示した実施の形態では、未だジョブ・アービタへの分割ジョブの割当が行われていない状態を示しているので、ジョブだけが登録された状態とされ、他のエントリは、ブランクとされている。本発明で使用するサーバ12は、以下に説明した処理に基づいて、図7に示したジョブ管理テーブルのエントリに各値を登録する処理を実行する。
図8は、本発明において、サーバ12が配布先を決定する処理を示したフローチャートである。図8に示した処理は、ステップS100から開始し、サーバ12が、各ジョブについてのジョブ属性を登録する。図9には、ジョブ属性110を示す。ジョブ属性110は、当該ジョブが要求する使用資源量、処理のために使用するライブラリなど規定する処理種類、処理納期、納期前にジョブの終了を指令するためのジョブ終了条件、画像処理装置の資源を利用したことに応答した割引率などをリストした要求資源112と、それらの内容を記述したデータ・リスト114とを含んでいる。サーバ12は、これらの登録が終了すると、ステップS101において、ジョブ・アービタの提供可能資源データと使用資源量とを計算し、ジョブを配布できるジョブ・アービタを選択する処理を実行する。
この処理では、サーバ12は、画像処理装置データと、ユーザ管理データとを使用する。図10には、画像処理装置データを示し、図11は、ユーザ管理データの実施の形態を示す。なお、本発明において参照する「使用資源量」とは、対象となるジョブの要求する計算量の見積もり値を意味する。使用資源量は、プログラムの行数、四則演算の数、分岐判断の数、指数・対数演算の数などについてソース・コードをスコアリングし、ジョブについて総和したものを使用することができるし、また、ビックオー記法により与えられるオーダを、使用するデータ量などを考慮してソース・コードごとに割当てた値を使用することができる。
図10を参照すると、画像処理装置データ116は、画像処理装置の識別値118と、処理能力120とを含んで構成されている。識別値118には、画像処理装置の形式などを示す識別値がエントリされ、また、処理能力120には、画像処理装置の識別値に対応した処理能力がエントリされている。処理能力は、例えば、画像処理装置が搭載するCPUのクロックレート、キャッシュ・メモリ容量、RAM容量、インタフェース・グレードなどの値を使用し、処理能力の高い装置に対して高い値を設定することができる限り、いかなる指標を使用して設定することができる。なお、図10に示した処理能力は、上述の値を使用して算出された絶対値を、適切な定数で単位時間あたりに規格化して表した値である。
図11には、ステップS101の処理において使用するユーザ管理データ122の実施の形態を示す。図11に示すようにユーザ管理データ122は、ユーザ識別値124と、ジョブ・アービタ識別値126と、提供可能資源データ128とをエントリしている。本発明の特定の実施の形態では、ユーザAAAは、ジョブ・アービタRC−GATE−01を管理しており、ジョブ・アービタRC−GATE−01が提供できる総資源量を示した提供可能資源データの値は、提供可能資源データ128にエントリされている。
図11に示した提供可能資源データ128の値は、サーバ12がまず、ジョブ・アービタRC−GATE−01が管理する画像処理装置種別フィールドに対応する処理能力を、図10に示す画像処理装置データをルックアップして取得する。さらに、サーバ12は、保守データから当該画像処理装置が画像処理などに使用されていない時間を取得して、1日あたりの装置遊休時間の値を取得し、遊休時間フィールド132にエントリする。さらにサーバ12は、提供可能資源データ128を、画像処理装置データの値と遊休時間フィールドにエントリされた値とを乗算し、画像処理装置について合計した値として生成する。本発明では、装置遊休時間の値は、保守データを使用して、例えば、週間平均、または月平均などに基づき随時更新することができ、ユーザの画像処理装置の使用状況に応答し、特定の配布先が常に固定した配布先として設定されないように、ジョブの配分を設定することができる。下記式(4)に、提供可能資源データの算出式の実施の形態を示す。
Figure 0004725964
上記式(4)中、画像処理装置∈ジョブ・アービタの記号は、ジョブ・アービタが管理する画像処理装置全体について総和することを意味する。なお、本発明では、上記式(4)以外のいかなる尺度を使用して提供可能資源データを算出することができる。図10および図11に示したデータを使用して得られた提供可能資源データ128は、ステップS102において、図9に示したジョブ属性にエントリされた処理納期データと共に、ジョブを当該ジョブ・アービタに配布できるかどうかの判断に使用される。このためには、ジョブ属性として登録した使用資源量が、処理納期といった所定期間内に当該ジョブ・アービタにより提供されるか否か、およびユーザがその提供を認めているか否かを判定することが必要となる。この判定のため、本発明の特定の実施の形態では、下記式(5)を使用して、処理納期内に提供可能な資源量とジョブ属性の使用資源量とを比較する。
Figure 0004725964
上記式(5)による比較により、利用可能なジョブ・アービタが選定される。使用可能なジョブ・アービタが存在する場合(yes)には、ジョブ・アービタの識別値を取得し、適切なメモリに形成したリストにエントリして、ステップS103の処理を実行する。また、使用可能なジョブ・アービタが存在しない場合(no)には、ステップS106で納期の延長などを行うか否かを判断し、納期変更により対応する場合(yes)には、ステップS100に処理を分岐させ、ジョブ属性の処理納期データを延長して再度処理を実行する。また、納期延長では対応できない場合には、ジョブ・アービタの選定・登録処理を終了する。
ステップS103では、サーバは、ジョブ・アービタのユーザごとに、ユーザとの取決めにより設定された提供資源量とそれに対応する割引料金とを登録したルックアップ・テーブルを検索する。図12は、本発明で使用する保守契約に含まれる資源提供データの部分を使用して、ルックアップ・テーブルとして与えられ、割引料金テーブルとしてサーバが管理するデータである。図12に示すように、ルックアップ・テーブル136には、ユーザと、提供資源量と、提供資源量ごとに定めた割引率が登録されている。提供資源量は、分割ジョブのために使用したCPU時間abc、def、ghi、などに対応して割引料金が定められている。サーバ12は、ジョブの使用資源量または実際に提供された提供資源量とユーザとを検索キーとして、ユーザがジョブの要求する提供資源量の契約を行っているか否かの検索を実行する。
ステップS104では、検索結果に応答して、処理対象となるジョブが、処理依頼契約がなされた範囲であるか否かを判断する。処理依頼契約がなされた範囲にある場合(yes)には、一次処理納期をジョブ属性に設定された値とし、ステップS105で当該ジョブ・アービタを、分割ジョブが配布可能であるものとしてリストに登録する。また、処理依頼契約がなされた範囲にない場合(no)には、登録処理を終了し、他のジョブ・アービタについての検索を実行させる。この場合、使用されるルックアップ・テーブルには、処理提供上限量、納期下限時間、割引料金設定範囲などを登録しておくことができる。また、本発明における特定の用途において、これら以外の値が必要な場合には、適宜ルックアップ・テーブルに追加することができる。
この段階で、サーバ12には、ジョブを配布する可能性のあるジョブ・アービタのリストが保有される。その後、サーバ12は、図7に示したジョブ管理テーブルに対して、所定のフィールドにエントリするデータを生成し、各フィールドにてエントリして行く。図13は、ジョブ管理テーブルを更新する更新処理のフローチャートを示す。図13に示した更新処理は、ステップS200から開始し、分割処理する処理と、その深度とを取得し、処理の木構造の分割判定を行う。
ステップS201で図11の処理で生成されたリストをルックアップして、使用可能なジョブ・アービタの台数をカウントし、カウント値が0を超えるか否かを判断する。ステップS201の判断において、使用できるジョブ・アービタの台数が0である場合(no)には、ステップS207へと処理を分岐させて、ジョブ・アービタが利用可能になるまで、処理を中断または待機させる。以下の説明では、説明の便宜上、その時点で使用できるジョブ・アービタの台数は、2台であるものとして説明を行う。
使用できるジョブ・アービタの台数が1以上の場合(yes)には、ステップS202へと進み、処理を構成するジョブの深度が1または2であるかを判断する。深度が2よりも深い場合(no)には、まず、ステップS208へと進み、もっとも深い深度まで下りジョブをカウントアップする。本発明の特定の実施の形態では、式(2)で示されるデータ構造の深度指標=3のジョブをカウントし、使用できるジョブ・アービタの台数と比較し、使用できるジョブ・アービタの数が分割ジョブ数以上か否かを判断する。ステップS209の判断で、待機しているジョブ・アービタの台数が分割ジョブ数よりも少ない場合(no)には、ステップS211で深度を1レベル上げて同一深度のジョブ数をカウントし、再度処理をステップS209の判断に分岐させる。
また、本発明の説明している実施の形態では、深度2レベルは、G、Hの2ジョブとなるのでステップS209の判断が肯定的な値を返し(yes)、ステップS210へと処理を分岐させ、当該レベルのジョブを分割ジョブのサブツリーのうちの、トップ・ノードとして選択する。なお、本発明では、上述した処理を、使用可能なジョブ・アービタの数以下となるまで繰返し、できるだけ多くのジョブ・アービタに処理を依頼できるようにサブツリーを決定する。その後、サブツリーのトップ・ノード以下のジョブを、分割ジョブを構成するジョブであるとして、式(3)のサブツリー・データを生成し、図6(a)の実施の形態では、ジョブ・リスト88のjob_set_idにエントリする。また、図6(b)に示した実施の形態では、ジョブ・リストにエントリするべき分割ジョブを決定する。一方、サブツリーのトップ・ノードよりも高いレベルのジョブについては、サブツリーの返り値が得られない限り実行できないので、ステップS210において、ジョブ管理テーブルの該当するジョブに待機フラグを設定し、処理をステップS203に分岐させる。
ステップS203では、図11の処理で生成したリストから利用可能なジョブ・アービタの値を検索し、分割ジョブの合計資源使用量と、当該ジョブ・アービタの処理納期までに提供できる提供可能な資源量とを比較して、ジョブ・アービタの資源提供能力を超えないジョブ・アービタを選定する。その後、サーバ12は、ジョブ管理データ90の依頼先ジョブ・アービタ識別値に当該選択された識別値をエントリする。さらに、その後、サーバ12は、サブツリー・データにエントリされたソース・コードおよびデータを順次出力バッファに書込み、選定されたジョブ・アービタを宛先としてFTPプロトコルを使用して伝送する。
同時に、サーバ12は、ジョブ管理テーブルの該当するジョブ・アービタの資源利用可能識別値のステータスについて、使用中を示す値「0」に設定する。なお、ステップS203の処理において分割ジョブのサブツリーをジョブ・アービタに割当てる場合には、分割ジョブ全体の使用資源量を計算し、使用資源量の多いサブツリー順に、提供可能な資源量の多いジョブ・アービタへと配布する処理を採用することで、ジョブ・アービタの処理能力に対して均等にジョブを配布することが可能となる。その後、サーバは、ステップS204へと処理を分岐させ、ジョブ・アービタからの実行結果を受取る。
図14は、本発明の上記処理が完了した段階でのジョブ管理テーブルの実施の形態を示す。図14に示した実施の形態では、深度1レベル・ジョブは、深度2レベル・ジョブの返り値がない限り処理ができないので、待機フラグとしては、待機フラグ=1の値が設定されている。また、深度1レベル・ジョブは、その処理をクラスタ・ノードに配布していないので資源利用可能識別値96、依頼先ジョブ・アービタ識別値98、深度2ランク・ジョブ100、深度3ランク・ジョブ102は、blankのままとされる。
一方、深度2ランクのジョブG、Hは、図13に説明した処理によって配布先のジョブ・アービタが選択され、分割ジョブを送信単位として、該当するジョブ・アービタに配布される。資源利用可能識別値96には、配布に対応して、当該ジョブ・アービタが処理引受け中であることを示す識別値である「0」が記入され、同時に、依頼先ジョブ・アービタ識別値98にジョブ・アービタの識別値が記入される。この段階で、サーバ12は、図13のフローチャートにおけるステップS204において配布した分割ジョブの実行結果を待機している。
実行結果が戻されると、サーバは、当該処理の処理結果を判断し、処理成功を示す値が戻された場合には、資源利用可能識別値、依頼先ジョブ・アービタ識別値、深度2ランク・ジョブ深度3ランク・ジョブの値をblankにリセットし、後続する処理を実行する。また、ジョブ属性に指定した処理納期内に処理成功を示す値が戻されない場合には、再度依頼を行うか、または当該ジョブ・アービタに対する処理依頼をキャンセルし、他の遊休ジョブ・アービタを検索し、分割ジョブを依頼する処理を実行する。また、ジョブ・アービタ26は、それまでに画像処理装置の提供した提供資源量を例えばCPU占有時間などの値としてサーバへと返し、割引量を決定することができる。
再度、図13について説明すると、サーバ12は、ステップS205で、待機フラグが設定された待機ジョブがあるか否かを判断する。説明している実施の形態では、深度1ランク・ジョブは、この段階で待機フラグが設定されたままである。このため、サーバ12は、ステップS205で待機ジョブがあると判断し(yes)、ステップS213へと処理を分岐させ、待機解除条件を満足するか否かを判断する。本発明では、待機解除条件とは、待機ジョブの直下のサブツリーのトップ・ノードの返り値がすべて与えられていることを意味する。ステップS213の判断が肯定的な値を返す場合(yes)、ステップS212へと進み待機フラグを非待機状態である値「0」に設定し、ステップS203へと処理を戻し、待機ジョブをジョブ・アービタに配布し、処理を依頼する。また、ステップS205の判断が否定的な値を返す場合(no)には、目的とする処理F()を含めて処理全体の返り値が戻されているので、ステップS206へと進んで、サーバ側の処理を終了する。
図15は、本発明のジョブ・アービタ26の実行する処理のフローチャートを示す。ジョブ・アービタ26は、ステップS300でサーバからの分割ジョブを、分割ジョブを構成するジョブのジョブ属性と共に受取る。分割ジョブは、少なくともジョブGまたはジョブHなどの処理が実行できるジョブ(I、J)、データ(A、B)、またはジョブ(K、L)、データ(C、D)というセットとして、FTPリプライのフォーマットで各ジョブ・アービタ26に送付される。ジョブ・アービタ26は、プロトコル変換、および必要に応じて電子証明書またはSSLによる復号処理を実行して各ジョブのデータを取得する。
その後、ステップS301で、取得したジョブ属性データから処理納期を参照して処理納期が満了していないかどうかを判断し、処理納期が満了した場合(yes)には、ステップS307へと処理を分岐させ、処理中の画像処理装置に対して処理中止指令を発行する。また、処理納期が満了していないと判断された場合(no)には、ステップS302へと処理を進め、当該ジョブ・アービタが管理する画像処理装置にジョブを配布して処理を開始させ、画像処理装置からのリプライを待機する。ステップS303では、ジョブ・アービタ26は、画像処理装置からのジョブの処理結果を受取り、ステップS304でジョブ終了条件を満たすか否かを判断し、ジョブ終了条件を満たす場合(yes)には、処理中の画像処理装置に中止命令を発行し、処理を中断させる。
ステップS304の判断がジョブ終了条件を満たさない場合には、正当な処理結果が返されているので、ステップS305で当該処理結果を使用して処理を進める未処理ジョブが存在するか否かを判断する。未処理ジョブが存在しない場合(no)には、処理は、ステップS308に分岐し、画像処理装置からの処理結果を所定のフォーマットとし、ステップS309で、FTPレスポンスとしてサーバに送信する。納期前であれば、それまでのCPU占有時間の総和などの提供資源量を示す値などと共に実行結果を返す。このとき、本発明の特定の実施の形態では、電子証明書またはSSLによる暗号化処理を行った後にサーバに対して送信を行う。一方、ステップS305の判断で未処理ジョブがあると判断された場合、ステップS301へと処理を分岐させ、処理納期が満了しているか否かを判断し、その判断に応答して未処理ジョブの画像処理装置による処理、またはサーバに対して中間結果を送付する処理を実行させる。
また、ステップS306は、サーバ12が、例えば、中間納期を設定しておき、中間納期までに成功を示す実行結果が得られない場合に、処理を中止させる指令を行う実施の形態である。ステップS306で中止指令を受取ると、ジョブ・アービタは、画像処理装置による処理を強制的に終了させ、その時点までの中間結果を、例えば、サーバがその状態を認識できるように構成した一時ファイルなどの形式として、ステップS308、ステップS309の処理を経てサーバに送信し、その後の処理の実行依頼を待機する。
図16は、図15の処理のステップS302の詳細を示すフローチャートである。ジョブ・アービタは、ステップS400で分割ジョブを最小単位に分割し、ステップS401で分割したジョブの処理ストリームから待機させることが必要なジョブを検索し、待機フラグを設定する。ステップS402では、管理対象である画像処理装置のステータスを、PING/ICMPエコーのRTT(ラウンド・トリップ・タイム)など、または、図3で示したジョブ・キューにエントリされた他のジョブの状態を監視して、画像処理装置のステータス情報を取得する。
ステップS403では、ステップS402で取得したステータス・データを使用してジョブ配布が可能な画像処理装置の数をカウントし、カウンタ>0であるか否かを判断する。ステップS403の判断が否定的な値を返す場合(no)には、ステップS408で配布処理を中止するか、またはカウンタ>0の値となるまで、S402に処理を戻す。
ステップS403の判断が肯定的な値を返す場合(yes)には、処理をステップS404へと分岐させ、画像処理装置に待機ジョブを除くジョブを転送し、ステータスに、「処理中」を示すフラグを設定する。図17には、ジョブ・アービタが管理する管理テーブル138を示す。ジョブ・アービタが管理する管理テーブル138には、画像処理装置に処理を依頼するジョブジョブの識別値と、処理フラグと、待機フラグと、各ジョブの終了を示す終了フラグとがエントリされている。ジョブ・アービタが処理を画像処理装置に依頼すると、処理フラグは、処理中を示す値「1」に設定され、それ以外のジョブについては、処理終了および未依頼のジョブを含め処理中ではないフラグ「0」が設定される。また、すでに処理が終了して返り値が戻されている場合には、例えば、ジョブI()の結果については、終了フラグが「1」として設定されているので処理が終了したものと判断される。また、ジョブJ()については、処理は開始されているものの、実行結果が未だ得られていないことが示されている。さらに、ジョブG()は、まだ処理が開始されておらず、また待機中であると判断される。
ステップS405では、画像処理装置からのジョブの結果を受取り、ステップS406の判断を実行する。ステップS406では、待機ジョブがあるか否かを、待機フラグを検索して判断し、待機ジョブがある場合(yes)には、ステップS410で待機ジョブが使用する返り値があるか否かを判断し、待機ジョブが使用する返り値がすべて揃うまでステップS405、ステップS406の処理を実行する。また、ステップS410で待機ジョブが使用する返り値がすべて揃った(yes)との判断に応答して、ステップS409に処理を分岐させ、待機フラグを解除して、再度、ステップS402〜ステップS406の処理を実行させ、待機ジョブがなくなった時点で、ステップS407において図15のステップS308へと処理を渡す。
図18は、本発明の分散処理システムにおけるサーバ−ジョブ・アービタ間のトランザクションのシーケンスを示した図である。図18では、ジョブ・アービタ1は、画像処理装置α、βを管理しており、ジョブ・アービタ2は、画像処理装置ε、δを管理しているものとして以下、説明を行う。ジョブ・アービタ1およびジョブ・アービタ2は、サーバ12から分割ジョブの依頼を受けていない限り、定期的にサーバに対してFTPリクエストjob_inquiryをポーリングする。サーバ12は、当該ポーリングを受付けると分割ジョブをFTPレスポンスとして伝送する。この際、ジョブ・アービタは、ユーザ識別値およびパスワードなどの識別・認証データを予め伝送し、その正当性をサーバに対して証明する。
サーバ12は、分割ジョブをjob_response {X(), G(), I(), J(), A, B}およびジョブ属性を含むパケットとしてジョブ・アービタ1へと伝送する。本発明の説明している実施の形態では、job_responseを、特に暗号処理を施すことなくそのまま伝送することができる。また、本発明の別の実施の形態では、予めユーザが取得しておいた電子証明書を、サーバ側で登録し、電子証明書の認証ができた場合に、サーバが暗号化処理を施して分割ジョブを伝送することもできる。この場合、ジョブ・アービタ詐称によるデータの不正取得を防止することができる。また、本発明のさらに他の実施の形態では、サーバ側で、RFC2246として規定されているSSL(Server
Socket Layer)プロトコルを使用して暗号化処理を行った後、伝送することができる。本発明では、ジョブ・アービタは、セッション層およびトランスポート層の境界を通過する際に復号処理を実行し、アプリケーション側には負担をかけずにデータ・セキュリティを保証することができる。
ジョブ・アービタ1およびジョブ・アービタ2は、図14〜図17において説明した処理を画像処理装置に実行させた後、その処理結果をFTPリプライ・パケットcomplete_ack:X、complete_ack:Yなどとしてサーバ12に伝送する。サーバ12は、当該FTPリプライ・パケットの内容を判断し、それまで待機していたジョブF()を、取得したそれぞれの返り値X、Yと共に、適切なジョブ・アービタ、例えば、ジョブ・アービタ1に伝送する。その後、ジョブ・アービタ1は、ジョブF()の結果をcomplete_ack:Fなどのパケットとして戻し、サーバ12が最終的な処理Zの値を取得する。
図19は、本発明のジョブ・アービタ1と画像処理装置α、βとの間のトランザクションのシーケンスを示した図である。ジョブ・アービタ1は、図16に示した処理が終了した段階で、画像処理装置αに対してTCP/IPまたはUDP/IPレベルのソケットjob_request: I(), Aを伝送する。同時に、画像処理装置βに対してソケットjob_request: J(), Bを伝送する。画像処理装置αは、当該ソケットを受信して、ジョブI()から実行形式ファイルを作成しオブジェクトを起動して処理を開始する。ジョブI()の処理が終了した段階で、その結果Sをソケットjob_response:Sとしてジョブ・アービタ1に返す。また、本発明では、ジョブ・アービタと画像処理装置との間においては、TFTP等のプロトコルを使用してトランザクションを行うことも可能であるし、パケットではなく、フレームを使用し、PPPなどのデータリンク層レベルでのセッション・プロトコルに基づき、レイヤ2レベル・スイッチ内でローカライズしたトランザクションを確立させることもできる。
また、画像処理装置βは、job_request: J(), Bを受信すると、同様の処理を実行して、オブジェクトJ()を起動し、処理完了後、ソケットjob_response:
Tをジョブ・アービタ1に伝送する。ジョブ・アービタ1は、それぞれの結果の正当性を判断し、待機させていたジョブG()を、その使用する返り値S、T
と共に画像処理装置αに伝送する。画像処理装置αは、オブジェクトG()を起動して処理を実行し、その結果をソケットjob_response:Xとしてジョブ・アービタ1に伝送し、画像処理装置α、βとのトランザクションを終了させる。その後、ジョブ・アービタ1は、FTPリプライ・パケットcomplete_ack:Xを生成してサーバ12に対して伝送する。
図20は、ジョブ・アービタ2と画像処理装置ε、δとの間のトランザクションのシーケンスを示した図である。ジョブ・アービタ2は、サーバ12から、分割ジョブH()、K()、L()が伝送されており、それぞれについて、図17において説明した処理を終了させた後、画像処理装置ε、δにジョブを配布する。画像処理装置ε、δは、それぞれ処理を実行し、それぞれの実行結果をjob_response:W, :Vとして返す。ジョブ・アービタ2は、各画像処理装置からの結果を受取って処理を実行し、complete_ack:Yを作成してサーバ12に伝送する。サーバ12では、complete_ack:Xおよびcomplete_ack:Yの両方のパケットを受信した段階で、ジョブF()の待機フラグを解除し、図16で説明した通りにF()、X、YをFTPレスポンス・パケットとして適切なジョブ・アービタに伝送する。この場合、ジョブ・アービタの選択は、使用資源量およびジョブ・アービタの提供可能な資源量に応答して適切なジョブ・アービタ、説明している実施の形態では、ジョブ・アービタ1を選択して伝送する。
図21は、ジョブ・アービタからの処理を受取った後のサーバ側における処理のフローチャートを示す。サーバ12は、ステップS500でジョブ・アービタからcomplete_ackパケット、またはジョブ・アービタからのジョブ終了条件満了を通知するstopped_ackを受信すると、該当するジョブ・アービタの資源利用可能識別値を使用可能に対応する値「1」に設定し、ステップS501でサーバが管理する未処理のジョブのうち、待機フラグが設定されていないジョブが存在するか否かを判断する。その後、未処理ジョブがある場合(yes)、ステップS502でジョブ終了条件を満たしたことによる終了であるか否かを判断し、例外終了ではない場合(no)には、ステップS503で未処理のジョブを適切なジョブ・アービタに伝送し、処理を開始させる。
また、ステップS502の判断でジョブ終了条件であると判断された場合(yes)、ステップS504へと処理を分岐させ、処理残量を見積もり、新たな処理納期を設定し、新たにジョブ・アービタ(同一でも異なっていても良い)に該当する処理を依頼し、処理が完了するまでステップS500〜ステップS504の処理を繰り返す。
一方、ステップS501の判断で未処理のジョブがないと判断された場合(no)には、ステップS505へと処理を分岐させ、処理結果をメモリに格納し、サーバ側での使用に備えると共に、資源提供に応答した割引料金を決定する。ステップS506では、決定された割引料金を処理登録者に送信し、次回以降の画像処理装置管理/保守費用から割り引くことを通知する。
図22は、本発明の分散処理システムの実施の形態を示した図である。サーバ12は、本発明にしたがい処理を分割ジョブとしてジョブ・アービタ26a、26bへと伝送する。この場合、伝送プロトコルとしては、FTPプロトコルを使用することもできるし、グリッド用に規定が検討されているGridFTPなどを使用することができる。一方、ジョブ・アービタ26a、26bは、それぞれ3台の画像処理装置28などを管理し、合計6台の画像処理装置がクラスタ・ノードとして機能している。
本発明によれば、サーバ12では、ジョブ・アービタ26a、26bに対してだけFTPパケットを伝送し、受信するだけで済むので、GWサーバ14からインターネットまたは公衆電話網などのネットワーク20へのボトルネックとなるバックボーン・ネットワーク16の伝送経路の帯域幅をクラスタ・ノードの増加にともなって増加させることなく、処理することができる。すなわち、他の処理のために使用する帯域幅を最大限に確保しながら、画像処理装置の効率的管理処理およびサーバの負担軽減を行うことができる。また、主要なデータ・トランザクションを、ジョブ・アービタが帰属される高速イーサネット(登録商標)などに分散でき、サーバ側およびネットワーク20で処理せずに済むため、ネットワーク資源の効率的な使用を可能とする。
また、ジョブ・アービタ26a、26bを管理するユーザにおいては、画像処理装置の遊休時間を有効に使用して計算機資源として画像処理装置を提供し、また提供資源量に応答してメンテナンスなどの割引を受けることができるので、計算機資源としての提供がボランティアとなることなく、画像処理装置の効率的な稼働を行うことができる。
本発明の上記機能は、FORTRAN、Cなどの手続き型プログラミング言語、VisualBasic、C++、VisualC++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向ブログラミング言語などで記述された、装置実行可能なプログラムにより実現でき、当該プログラムは、装置可読な記録媒体に格納して頒布することができる。
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
本発明の分散処理システムの実施の形態を示した図。 本発明で使用するサーバの詳細な構成を示した図。 本発明で使用する画像処理装置の例示的構成を示した図。 サーバから送付されたジョブを仲介し、画像処理装置に配分するジョブ・アービタの機能ブロック図。 本発明の処理および処理を構成するジョブ構成を示した図。 本発明でジョブを登録したジョブ・リストを示した図。 サーバが含むジョブ管理データの実施の形態を示した図。 サーバが配布先を決定する処理を示したフローチャート。 ジョブの要求する特性をリストしたジョブ属性を示した図。 画像処理装置データをリストしたルックアップ・テーブル。 ユーザ管理データの実施の形態を示した図。 保守契約に含まれる資源提供データの部分を使用してルックアップ・テーブルとして与えられる、割引料金テーブルを示した図。 ジョブ管理テーブルを更新する更新処理のフローチャートを示した図。 本発明により更新されたジョブ管理テーブルの実施の形態を示した図。 ジョブ・アービタの実行する処理のフローチャートを示した図。 図15のステップS302の処理の詳細を示すフローチャートを示した図。 ジョブ・アービタが管理する画像処理装置のジョブ管理のための管理テーブルを示した図。 本発明の分散処理システムにおけるサーバ−ジョブ・アービタ間のトランザクションのシーケンスを示した図。 本発明のジョブ・アービタ1と画像処理装置α、βとの間のトランザクションのシーケンスを示した図。 本発明のジョブ・アービタ2と画像処理装置ε、δとの間のトランザクションのシーケンスを示した図。 ジョブ・アービタからの処理を受取った後のサーバ側における処理のフローチャートを示した図。 本発明の分散処理システムの実施の形態を示した図。 従来の分散処理システムの実施の形態を示した図。
符号の説明
10…分散処理システム、12…サーバ、14…ゲートウェイ・サーバ、16…バックボーン・ネットワーク、18…ファイアウォール、20…公共ネットワーク(インターネット、公衆電話網)、22…ファイアウォール、24…ルータ、26…ジョブ・アービタ、28…複合機、30…複写機、32…プリンタ、34…スイッチ、36…他のネットワーク、38…第2のネットワーク、40…アプリケーション層、42…API層、44…OS層、46…I/O層、48…記憶装置、50…ディスプレイ装置、52…キーボード、54…マウス、60…アプリケーション層、62…制御モジュール層、64…デバイス層、66…RAM(ジョブ・キュー)、68…UI装置、70…FTPクライアント処理部、72…ジョブ管理部、74…装置モニタ、76…インタフェース、78…記憶装置、80…ディスプレイ装置、82…キーボード、84…マウス

Claims (22)

  1. 画像処理装置にネットワークを介して処理を実行させる分散処理システムであって、前記システムは、
    画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録し、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークに送出するサーバと、
    前記サーバから前記分割ジョブを前記ネットワークを介して受信し、第2のネットワークに接続され、ジョブを配付できる画像処理装置を監視し、前記画像処理装置に対し、受信した前記分割ジョブの少なくとも一部のジョブを伝送するジョブ・アービタと、
    前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行し、実行結果を前記ジョブ・アービタに返信する画像処理装置と
    を備え、
    前記サーバは、前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録し、同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定する、システム。
  2. 画像処理装置にネットワークを介して処理を実行させる分散処理システムであって、前記システムは、
    画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録し、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出するサーバと、
    前記サーバに対して分割ジョブ・リクエストを定期的にポーリングし、前記ポーリングに応答して前記分割ジョブを前記ネットワークを介して受信し、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送するジョブ・アービタと、
    前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行し、実行結果を前記ジョブ・アービタに返信する画像処理装置と
    を備え、
    前記サーバは、前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録し、同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の提供可能資源データについての前記保守データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定する、システム。
  3. 前記サーバは、前記分割ジョブを、電子証明書またはSSLによる暗号化されたFTPパケットとして送出する送出手段を備える、請求項1または2に記載のシステム。
  4. 前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択する選択手段を含む、請求項1〜3のいずれか1項に記載のシステム。
  5. 前記選択手段は、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択する、請求項4に記載のシステム。
  6. 前記サーバは、前記ジョブ・アービタが提供した提供資源量に応答して前記保守管理契約に対する割引料金を決定する割引料金決定手段を含む、請求項1〜5のいずれか1項に記載のシステム。
  7. 画像処理装置に対してネットワークを介して処理を実行させる分散処理方法であって、前記方法は、
    サーバが、
    ジョブ・アービタから分割ジョブ・リクエストを前記サーバに定期的にポーリングを受取るステップと、
    画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録させ、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出するステップと、
    前記ジョブ・アービタに対し、前記分割ジョブを前記ネットワークを介して受信させ、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送させるステップと、
    画像処理装置に対し、前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行させ、実行結果を前記ジョブ・アービタに返信させるステップと
    を含み、
    前記サーバが、さらに
    前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録するステップと、
    同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定するステップとを実行する
    方法。
  8. 前記送出させるステップは、前記分割ジョブを、電子証明書またはSSLによる暗号化されたFTPパケットとして送出させるステップを含む、請求項7に記載の方法。
  9. 前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択するステップを実行する、請求項7または8のいずれか1項に記載の方法。
  10. 前記選択するステップは、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択するステップを含む、請求項7〜9のいずれか1項に記載の方法。
  11. 前記サーバは、前記ジョブ・アービタが提供した提供資源量に応答して前記保守管理契約に対する割引料金を決定するステップを実行する、請求項7〜10のいずれか1項に記載の方法。
  12. 画像処理装置に対してネットワークを介して分散処理を実行させるジョブ・アービタであって、前記ジョブ・アービタは、
    前記分散処理に対するリクエストを前記ネットワークへと定期的にポーリングする手段と、
    前記ポーリングに応答して前記ジョブ・アービタの所定期間についての処理能力以下として生成された分割ジョブを前記ネットワークを介してサーバから受信する手段と、
    前記分割ジョブの少なくとも一部を第2のネットワークを介して前記画像処理装置へと送出し、前記画像処理装置の実行結果を受取り、前記実行結果を前記ネットワークを介して前記サーバに送出する送出手段と、
    を備え、
    前記ジョブ・アービタは、前記サーバが同一の階層に登録された前記分割ジョブのサブツリーの数に応じて前記ジョブ・アービタが管理する画像形成装置の保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して前記分割ジョブを送付する宛先が決定され、前記サーバから前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記階層構造の深度に応じた前記分割ジョブのサブツリーとして受信する、ジョブ・アービタ。
  13. 前記送出手段は、前記実行結果をFTPプロトコルへと変換する手段を備える、請求項12のジョブ・アービタ。
  14. 前記送出手段は、前記ネットワークへの送出プロトコルと、前記第2のネットワークへの送出プロトコルとを変えて送出を行う、請求項12または13に記載のジョブ・アービタ。
  15. 前記送出手段は、前記分割ジョブに対して電子証明書またはSSLを使用して暗号化または復号化されたデータを生成する手段を備える、請求項12〜14のいずれか1項に記載のジョブ・アービタ。
  16. 画像処理装置に対してネットワークを介して分散処理を実行させるジョブ・アービタとして情報処理装置を機能させるプログラムであって、前記プログラムは、前記情報処理装置が、
    前記分散処理に対するリクエストを前記ネットワークへと定期的にポーリングするステップ、
    前記ポーリングに応答して前記ジョブ・アービタの所定期間についての処理能力以下として生成された分割ジョブを前記ネットワークを介してサーバから受信するステップ、
    前記分割ジョブの少なくとも一部を第2のネットワークを介して前記画像処理装置へと送出し、前記画像処理装置の実行結果を受取り、前記実行結果を前記ネットワークを介して前記サーバに送出する送出ステップ、
    を実行し、
    前記ジョブ・アービタは、前記サーバが同一の階層に登録された前記分割ジョブのサブツリーの数に応じて前記ジョブ・アービタが管理する画像形成装置の保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して前記分割ジョブを送付する宛先が決定され、前記サーバから前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記階層構造の深度に応じた前記分割ジョブのサブツリーとして受信する、
    情報処理装置実行可能なプログラム。
  17. 前記送出ステップは、前記処理結果をFTPプロトコルへと変換するステップを含む、請求項16のプログラム。
  18. 前記送出ステップは、前記ネットワークへの送出プロトコルと、前記第2のネットワークへの送出プロトコルとを変えるステップを含む、請求項16または17に記載のプログラム。
  19. 前記分割ジョブに対して電子証明書またはSSLを使用して暗号化または復号化されたデータを生成するステップを含む、請求項16〜18のいずれか1項に記載のプログラム。
  20. 画像処理装置に対してネットワークを介して処理を実行させるため、情報処理装置をサーバとして機能させるための情報処理装置実行可能なプログラムであって、前記プログラムは、前記情報処置装置を、
    ジョブ・アービタから分割ジョブ・リクエストを前記サーバに定期的にポーリングを受信する手段、
    画像処理装置の保守を行うと共に前記処理を複数の分割ジョブとして登録させ、前記画像処理装置の性能データおよび前記画像処理装置の遠隔監視により収集した保守データに応答して決定された宛先に宛てて前記分割ジョブを前記ネットワークにプッシュ型伝送により送出する手段、
    前記ジョブ・アービタに対し、前記分割ジョブを前記ネットワークを介して受信させ、第2のネットワークに前記分割ジョブの少なくとも一部のジョブを伝送させる手段、
    画像処理装置に対し、前記ジョブを前記第2のネットワークを介して受信して前記ジョブを実行させ、実行結果を前記ジョブ・アービタに返信させる手段
    として機能させ、
    さらに、前記情報処理装置を、
    前記処理を、データ・レベルを最下位階層とし、分割ジョブの返り値が渡される順に高階層とした階層構造として前記複数の分割ジョブを登録する手段、
    同一の階層に登録された前記分割ジョブのサブツリーの数と使用できるジョブ・アービタの台数とを比較して前記階層構造の深度に応じて前記分割ジョブを送信するべき前記ジョブ・アービタを、前記ジョブ・アービタが管理する画像形成装置の前記保守データから得た提供可能資源データに基づいて利用可能なジョブ・アービタを登録したリストから選択して決定する手段
    として機能させる、プログラム。
  21. 前記サーバは、前記保守データを使用して前記ジョブ・アービタの提供可能資源データを生成し、前記提供可能資源データに応答して前記分割ジョブの配布先を選択する選択手段を含む、請求項20に記載のプログラム。
  22. 前記選択手段は、前記画像処理装置の資源提供契約の登録ユーザが管理する前記ジョブ・アービタから前記ジョブ・アービタの処理能力に応答して前記ジョブ・アービタを選択する、請求項21に記載のプログラム。
JP2006020638A 2006-01-30 2006-01-30 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム Expired - Fee Related JP4725964B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006020638A JP4725964B2 (ja) 2006-01-30 2006-01-30 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006020638A JP4725964B2 (ja) 2006-01-30 2006-01-30 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム

Publications (2)

Publication Number Publication Date
JP2007200204A JP2007200204A (ja) 2007-08-09
JP4725964B2 true JP4725964B2 (ja) 2011-07-13

Family

ID=38454728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006020638A Expired - Fee Related JP4725964B2 (ja) 2006-01-30 2006-01-30 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム

Country Status (1)

Country Link
JP (1) JP4725964B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020072672A1 (en) * 2018-10-02 2020-04-09 Brainworks Foundry, Inc. Fluid client server partitioning of machines learning, ai software, and applications
US11232857B2 (en) 2018-10-01 2022-01-25 Brainworks Foundry, Inc. Fully automated non-contact remote biometric and health sensing systems, architectures, and methods
US11556390B2 (en) 2018-10-02 2023-01-17 Brainworks Foundry, Inc. Efficient high bandwidth shared memory architectures for parallel machine learning and AI processing of large data sets and streams

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054855A (ja) * 2002-05-28 2004-02-19 Dainippon Printing Co Ltd 並列処理システム、サーバ、処理端末装置、並列処理方法、プログラム、及び、記録媒体
JP2005196561A (ja) * 2004-01-08 2005-07-21 Ricoh Co Ltd 仮想コンピュータシステム、分散/並列演算方法および分散/並列演算プログラム
JP2005352693A (ja) * 2004-06-09 2005-12-22 Canon Inc 画像処理システム及び画像処理システムにおける分散処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054855A (ja) * 2002-05-28 2004-02-19 Dainippon Printing Co Ltd 並列処理システム、サーバ、処理端末装置、並列処理方法、プログラム、及び、記録媒体
JP2005196561A (ja) * 2004-01-08 2005-07-21 Ricoh Co Ltd 仮想コンピュータシステム、分散/並列演算方法および分散/並列演算プログラム
JP2005352693A (ja) * 2004-06-09 2005-12-22 Canon Inc 画像処理システム及び画像処理システムにおける分散処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232857B2 (en) 2018-10-01 2022-01-25 Brainworks Foundry, Inc. Fully automated non-contact remote biometric and health sensing systems, architectures, and methods
WO2020072672A1 (en) * 2018-10-02 2020-04-09 Brainworks Foundry, Inc. Fluid client server partitioning of machines learning, ai software, and applications
US11556390B2 (en) 2018-10-02 2023-01-17 Brainworks Foundry, Inc. Efficient high bandwidth shared memory architectures for parallel machine learning and AI processing of large data sets and streams

Also Published As

Publication number Publication date
JP2007200204A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
US7490139B2 (en) Embedded business apparatus including web server function
US9398084B2 (en) Information processing system
EP1594035A2 (en) Apparatus and method for providing authentication information
JP2004310757A (ja) ネットワークプリンタのためのアドレス帳サービス
EP2434690B1 (en) Network device management with self learning capability to extract information from a device
ES2371378T3 (es) Sistema de gestión de sesiones y método para controlar las mismas.
JP2013097744A (ja) 疑似シングルサインオン装置並びにこれを用いた画像形成装置及び画像形成システム
JP2013182563A (ja) データ処理装置、プログラムおよびデータ処理システム
JP4725964B2 (ja) 分散処理システム、分散処理方法、分散処理に使用されるジョブ・アービタ、およびプログラム
EP1830520B1 (en) Method and system for redirecting of the client
US20080316529A1 (en) Service Supplied by Multifunction Peripheral (MFP)
EP2343639A2 (en) Image forming apparatus and system and method for charging for printing
JP2005031784A (ja) 印刷制限システム及び印刷制限装置、印刷制限プログラム並びに印刷制限方法
JPH08249141A (ja) ネットワーク処理装置
US8055752B1 (en) Application unit monitoring and reporting system and method with usage data logged into a map structure
JP5966368B2 (ja) 情報処理装置、機器管理システム及びプログラム
JP6772860B2 (ja) 通信システム、画像処理装置、および、コンピュータープログラム
JP2006018376A (ja) ネットワーク通信方式
JP2008152648A (ja) データ処理装置
JP2004363934A (ja) 画像入出力装置
JP4430951B2 (ja) コンテンツ配信管理方法、コンテンツ配信装置、コンテンツ配信システム、プログラムおよび記録媒体
JP2000250726A (ja) 印刷システム、その印刷サーバおよびデータベースサーバ
JP2002281481A (ja) ネットワーク書画保管方法およびシステム
JP2009294920A (ja) リモートプリンティングシステム
JP2005169998A (ja) 情報処理装置、及びこれを用いた情報処理システム、並びに情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101027

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110405

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees