以下、添付した図面を参照して、本発明の実施形態を説明する。なお、図面の説明において、同一の要素には同一の符号を付し、重複する説明を省略する。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
(第1実施形態)
まず、第1実施形態に係る画像処理システムおよび画像処理装置の構成について説明する。
図1は、サーバー機能を内蔵する画像処理装置を有する画像処理システムの概略構成を示すブロック図である。
画像処理システム10は、画像処理装置100、200および300、ならびにクライアント装置400を有する。画像処理装置100、200および300は、複合機(MFP:Multi−Function Peripheral)やプリンターなどであり、一つ以上のサーバー機能と、一つ以上の内部機能とを有する。各装置は、ネットワーク500を介して相互に通信可能に接続されている。
サーバー機能とは、他の装置に提供される機能であり、Webサーバー機能や認証サーバー機能、ファイルサーバー機能などを含む。画像処理装置100、200および300は、必要に応じて、サーバー機能の有効化および無効化を切り替えできる。内部機能とは、画像処理装置が有する本来の機能であり、プリント機能やコピー機能、スキャナー機能、ファックス機能などを含む。
図1に示す例では、画像処理装置100は、サーバー機能101および102を有効化している。画像処理装置100は、当該サーバー機能101および102を提供しつつ、内部機能103〜105を実行する。一方で、画像処理装置200は、サーバー機能201および202を無効化しており、内部機能203〜205を実行する。画像処理装置300は、サーバー機能301および302を無効化しており、内部機能303〜305を実行する。画像処理装置200もしくは300、またはクライアント装置400は、ネットワーク500を介して、サーバー機能101および102を使用できる。ネットワーク500に接続される装置の台数や種類、画像処理装置の内部機能およびサーバー機能の個数などは、図1に示す例に限定されない。
図2は、画像処理装置の概略構成を示すブロック図である。
画像処理装置100は、CPU(Central Processing Unit)110、メモリー120、ハードディスク130、通信I/F(Interface)部140、画像処理部150および操作パネル部160を有する。各構成は、バス170を介して相互に通信可能に接続されている。
CPU110は、プログラムに従って、上記の各構成を制御し、各種の演算処理を実行する。CPU110は、図1のサーバー機能101および102と、内部機能103〜105とを制御する。
メモリー120は、各種プログラムや各種データを記憶するROM(Read Only Memory)や、作業領域として一時的にプログラムやデータを記憶するRAM(Random Access Memory)などから構成される。
ハードディスク130は、オペレーティングシステムを含む各種プログラムや各種データを記憶する。
通信I/F部140は、図1のネットワーク500を介して、他の機器と通信するためのインターフェースであり、イーサネット(登録商標)やFDDI、Wi−Fiなどの規格を用いる。
画像処理部150は、画像処理装置100の内部機能に対応する、各種の画像処理を実行する。画像処理部150は、たとえば、電子写真式プロセスなどの周知の作像プロセスを用いて、各種の画像データに基づく画像を用紙などに印刷する。また、画像処理部150は、原稿の画像を光学的に読み込み、画像データに変換する。また、画像処理部150は、通信I/F部140を用いて画像データを外部に伝送する。
操作パネル部160は、たとえば、液晶ディスプレイや、テンキー、スタートボタン、ストップボタンなどを有する。操作パネル部160は、タッチセンサーを重畳したタッチパネルを有してもよい。操作パネル部160は、各種情報を表示したり、ユーザーからの各種指示を受け付けたりする。
画像処理装置200および300は、画像処理装置100と同様の構成を有するため、説明を省略する。
次に、画像処理装置の機能構成について説明する。
図3は、画像処理装置のCPUの機能構成を示すブロック図である。
CPU110は、プログラムを読み込んで処理を実行することによって、サーバー機能部111、内部機能部112、エラー通信部113、切替制御部114、委託通信部115および切替通信部116として機能する。CPU110は、必要に応じて、有限なリソース(以下では「資源」とも呼ぶ)を、各構成に割り当てる。つまり、各構成は、共通して割り当て可能な有限な資源を使用して、各種の処理を実行する。
サーバー機能部111は、Webサーバー機能や認証サーバー機能、ファイルサーバー機能などのサーバー機能(図1に示す例では、サーバー機能101および102)を、他の装置からアクセス可能に提供する。サーバー機能部111は、独立した複数のサーバー機能を提供できる。
内部機能部112は、ユーザーの指示に応じて、プリント機能やコピー機能、スキャナー機能、ファックス機能などの内部機能(図1に示す例では、内部機能103〜105)を実行する。内部機能部112は、たとえば、操作パネル部160を介して、ユーザーからプリントの開始指示を受け付けると、必要な設定などを行い、画像処理部150にプリント処理を実行させる。また、内部機能部112は、実行中の内部機能にエラーが発生すると、発生したエラーの種類(以下では、単に「エラー種類」とも呼ぶ)などを確認する。また、内部機能部112は、内部機能の使用頻度も確認できる。サーバー機能部111および内部機能部112は、上述したように、内部機能およびサーバー機能に共通して割り当て可能な資源を使用して、各機能を実行する。
エラー通信部113は、任意の画像処理装置の内部機能にエラーが発生した場合、必要に応じて、エラーが発生した旨を示すエラー通知を送受信する。エラー通信部113は、たとえば、画像処理装置200の内部機能にエラーが発生した旨を示すエラー通知を受信できる。また、エラー通信部113は、画像処理装置100の内部機能にエラーが発生した場合、エラー通知を送信できる。
ここで、エラー通知についてさらに説明する。画像処理装置100の、たとえば内部機能103にエラーが発生した場合を想定する。エラー通信部113が、エラー通知を送信する一方で、内部機能103は、エラーが解除されるまで使用されなくなる。したがって、内部機能103に割り当てていた資源は、一時的に使用されなくなり、画像処理装置100は、資源の余裕が発生した状態となる。エラー通知は、このタイミングで送信される通知であるため、送信元の画像処理装置に資源の余裕が発生した旨を示す通知であるとも言える。以下では、他の画像処理装置の内部機能(以下では「他装置内部機能」とも呼ぶ)にエラーが発生した場合に、当該他の画像処理装置から受信するエラー通知を「他装置エラー通知」とも呼ぶ。また、自装置の内部機能(以下では「自装置内部機能」とも呼ぶ)にエラーが発生した場合に、他の画像処理装置に送信するエラー通知を「自装置エラー通知」とも呼ぶ。なお、ここでいう「自装置」および「他装置」は、処理を実行する画像処理装置を主観とした表現である。たとえば、画像処理装置200の内部機能にエラーが発生した場合、画像処理装置200は、画像処理装置100に、「自装置」エラー通知としてエラー通知を送信する。画像処理装置100は、「他装置」エラー通知としてエラー通知を受信する。本明細書において、「他装置」および「自装置」という表現が枕詞に用いられる場合には、上記と同様に、対象物の主観として解釈される。
切替制御部114は、サーバー機能部111が提供するサーバー機能の有効化および無効化を切り替える。また、切替制御部114は、エラー通信部113が受信したエラー通知に基づいて、当該エラー通知の送信元である他の画像処理装置に、サーバー機能を委託するか否かを判断する。「サーバー機能の委託」とは、たとえば、サーバー機能を提供していた画像処理装置100が、自身のサーバー機能を無効化し、画像処理装置200に、サーバー機能を有効化させることを意味する。つまり、切替制御部114が、サーバー機能を委託すると判断すると、画像処理システム10内で、サーバー機能を提供する画像処理装置が変更される。切替制御部114の判断基準などについては、後述する。
委託通信部115は、必要に応じて、サーバー機能を委託する旨を示す委託通知を送受信する。また、委託通信部115は、必要に応じて、委託されたサーバー機能を有効化した旨を示す有効化完了通知や、委託されたサーバー機能を返還する旨を示す返還通知をさらに送受信する。以下では、他の画像処理装置にサーバー機能を委託する場合に、当該他の画像処理装置に送信する委託通知を「仕向委託通知」とも呼ぶ。また、他の画像処理装置からサーバー機能を委託される場合に、当該他の画像処理装置から受信する委託通知を「被仕向委託通知」とも呼ぶ。なお、ここでいう「仕向」および「被仕向」は、処理を実行する画像処理装置を主観とした表現である。たとえば、画像処理装置100が、画像処理装置200に、「仕向」委託通知として委託通知を送信した場合、画像処理装置200は、「被仕向」委託通知として委託通知を受信する。
切替通信部116は、必要に応じて、サーバー機能を提供する画像処理装置を切り替える旨を示す切替通知を送受信する。切替通知は、たとえば、サーバー機能の委託先の画像処理装置のIPアドレスなど、委託先を示す情報を含む。
CPU210および310は、CPU110と同様の構成を有するため、説明を省略する。たとえば、CPU210は、サーバー機能部211、内部機能部212、エラー通信部213、切替制御部214、委託通信部215および切替通信部216として機能する。
次に、第1実施形態に係る画像処理システム10の処理の手順を説明する。
図4は、画像処理装置がサーバー機能を委託する様子を説明するための図である。
図4は、画像処理装置間における処理の流れを示している。図4の「S101」などの番号が示す処理は、後述する図5および図7における、各ステップ番号が示す処理に対応している。なお、図4では、クライアント装置400を省略する。
画像処理装置100は、初期状態で、サーバー機能を有効化している画像処理装置(以下では「初期サーバー装置」とも呼ぶ)である。画像処理装置200および300は、初期状態で、サーバー機能を無効化している画像処理装置(以下では「二次サーバー装置」とも呼ぶ)である。図4では、画像処理装置100を初期サーバー装置としたが、どの画像処理装置を初期サーバー装置とするかは、ユーザーが事前に適宜設定できる。
初期状態では、初期サーバー装置である画像処理装置100が、サーバー機能を提供している。ここで、二次サーバー装置である画像処理装置200の内部機能に、エラーが発生したとする。この場合、画像処理装置200は、画像処理装置100にエラー通知を送信する。画像処理装置100は、エラー通知を受信すると、当該エラー通知に基づいて、画像処理装置200にサーバー機能を委託するか否かを判断する。画像処理装置100は、サーバー機能を委託すると判断すると、画像処理装置200に委託通知を送信する。画像処理装置200は、委託通知を受信すると、自身のサーバー機能を有効化し、画像処理装置100に有効化完了通知を送信する。画像処理装置100は、有効化完了通知を受信すると、画像処理装置200を含む他の装置に切替通知を送信し、自身のサーバー機能を無効化する。画像処理装置200がサーバー機能を有効化した後に、画像処理装置100がサーバー機能を無効化することによって、サーバー機能の委託が完了する。
そして、二次サーバー装置である画像処理装置200が、サーバー機能を提供する。ここで、画像処理装置200の内部機能のエラーが解除されると、画像処理装置200は、初期サーバー装置である画像処理装置100に返還通知を送信する。画像処理装置100は、返還通知を受信すると、自身のサーバー機能を有効化し、画像処理装置200に有効化完了通知を送信する。画像処理装置200は、有効化完了通知を受信すると、画像処理装置100を含む他の装置に切替通知を送信し、自身のサーバー機能を無効化する。画像処理装置100がサーバー機能を再度有効化した後に、画像処理装置200がサーバー機能を再度無効化することによって、サーバー機能の返還が完了する。このように、画像処理装置100および画像処理装置200は、サーバー機能の委託および返還に際し、サーバー機能の提供に支障が生じないように、相互に状態を通知しながら処理を進める。
続いて、図4の処理を実行する、画像処理装置100および画像処理装置200の処理の詳細な手順について、それぞれ説明する。まず、初期サーバー装置であり、サーバー機能を委託する側の立場で動作する、画像処理装置100の処理から説明する。
図5は、初期サーバー装置である画像処理装置の処理の手順を示すフローチャートである。
図5に示す処理は、画像処理装置100のメモリー120またはハードディスク130にプログラムとして記憶されており、CPU110によって実行される。
まず、CPU110は、サーバー機能部111としてサーバー機能を提供している間に、エラー通信部113として、画像処理装置200から、画像処理装置200の内部機能(他装置内部機能)にエラーが発生した旨を示すエラー通知(他装置エラー通知)を受信したか否かを判断する(ステップS101)。
エラー通知を受信していない場合(ステップS101:NO)、CPU110は、エラー通知を受信するまで待機する。
エラー通知を受信した場合(ステップS101:YES)、CPU110は、当該エラー通知に基づいて、画像処理装置200にサーバー機能を委託するか否かを判断するための、サーバー機能委託判断の処理に進む(ステップS102)。
CPU110は、エラー通知によって、画像処理装置200に資源の余裕が発生したことを通知される。そして、CPU110は、画像処理装置200に、資源の余裕分を活用させるために、サーバー機能を委託するか否かを判断する。サーバー機能委託判断の詳細な処理については、後述する。
続いて、CPU110は、サーバー機能委託判断の処理(ステップS102)で、サーバー機能を委託すると判断したか否かを確認する(ステップS103)。
ステップS102でサーバー機能を委託しないと判断した場合(ステップS103:NO)、CPU110は、ステップS101の処理に戻る。この場合は、CPU110が、画像処理装置200を、サーバー機能の委託先として適切でないと判断した場合である。そして、CPU110は、新しいエラー通知を受信するまで、ステップS101で待機する。
ステップS102でサーバー機能を委託すると判断した場合(ステップS103:YES)、CPU110は、委託通信部115として、画像処理装置200に委託通知(仕向委託通知)を送信する(ステップS104)。
続いて、CPU110は、委託通信部115として、画像処理装置200から有効化完了通知を受信したか否かを判断する(ステップS105)。図4に示すように、画像処理装置200は、委託通知を受信し、自身のサーバー機能の有効化を完了させると、有効化完了通知を送信してくる。有効化完了通知は、サーバー機能の委託先の準備が完了した旨を示す通知であるとも言える。
有効化完了通知を受信していない場合(ステップS105:NO)、CPU110は、有効化完了通知を受信するまで待機する。
有効化完了通知を受信した場合(ステップS105:YES)、CPU110は、切替通信部116として、ネットワーク500を介して接続された、画像処理装置200を含む他の装置に、委託先を示す情報を含む切替通知を送信する(ステップS106)。ここでの他の装置には、クライアント装置400も含まれる。CPU110は、他の装置が、無効化する直前のサーバー機能を新たに使用することを防止するために、切替通知を送信する。
続いて、CPU110は、サーバー機能部111として、サーバー機能の使用が終了されているか否かを判断する(ステップS107)。任意の他の装置は、CPU110がステップS106で切替通知を送信した際に、まさにサーバー機能を使用している最中であった場合、実行中のタスクの処理を即座に中断できない可能性もある。そのため、CPU110は、サーバー機能を無効化する前に、全ての他の装置の使用が終了されていることを確認する。
サーバー機能の使用が終了されていない場合(ステップS107:NO)、CPU110は、他の装置による当該使用が終了されるまで、待機する。
サーバー機能の使用が終了されている場合(ステップS107:YES)、CPU110は、切替制御部114として、サーバー機能部111が提供するサーバー機能を無効化する(ステップS108)。ステップS101〜S108の処理によって、初期サーバー装置である画像処理装置100側の、サーバー機能の委託の処理が完了する。
その後、CPU110は、委託したサーバー機能が返還されるまでは、委託したサーバー機能による負荷なく、内部機能などの他の機能を実行する。そして、CPU110は、委託通信部115として、二次サーバー装置である画像処理装置200から、返還通知を受信したか否かを判断する(ステップS109)。
返還通知を受信していない場合(ステップS109:NO)、CPU110は、返還通知を受信するまで待機する。
返還通知を受信した場合(ステップS109:YES)、CPU110は、切替制御部114として、サーバー機能部111が提供するサーバー機能を有効化する(ステップS110)。そして、CPU110は、委託通信部115として、画像処理装置200に有効化完了通知を送信する(ステップS111)。ステップS109〜S111の処理によって、初期サーバー装置である画像処理装置100側の、サーバー機能の返還の処理が完了する。そして、CPU110は、処理を終了する。
ここで、ステップS102のサーバー機能委託判断の詳細な処理について説明する。
図6は、第1実施形態のサーバー機能委託判断の手順の一例を示すサブルーチンフローチャートである。
第1実施形態では、エラー通知は、内部機能に発生したエラーの種類の情報を含む。以下では、他の画像処理装置の内部機能(他装置内部機能)に発生したエラーの種類を、特に「他装置エラー種類」とも呼ぶ。
サーバー機能委託判断では、まず、CPU110は、切替制御部114として、エラー通知に含まれるエラー種類(他装置エラー種類)が、所定の種類に含まれるか否かを判断する(ステップS201)。
CPU110は、所定の種類を、メモリー120またはハードディスク130に予め記憶する。所定の種類は、ユーザーによって任意に設定可能であってもよい。また、CPU110は、画像処理装置200に、発生しうるエラー種類の候補を予め問い合わせ、当該候補の中から、所定の種類を選択してもよい。
エラー種類が所定の種類に含まれる場合(ステップS201:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS202)。そして、CPU110は、図5の処理に戻る。
エラー種類が所定の種類に含まれない場合(ステップS201:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS203)。そして、CPU110は、図5の処理に戻る。
エラー種類は、サーバー機能を委託できる時間を判断する上で、重要な因子である。たとえば、エラー種類が単なる用紙切れなどである場合には、用紙を設置するだけで、簡単にエラーが解除される。一方で、エラー種類がトナー切れや紙詰まりなどである場合には、エラーが解除されるまでに、比較的時間がかかる。つまり、エラー種類によって、エラーを解除するために必要な時間が異なる。
所定の種類は、簡単に解除されるエラー種類を除外し、解除されるまでに時間がかかるエラー種類のみを含むように設定されることが好ましい。なぜなら、サーバー機能が委託された後、エラーが短時間で解除されると、当該サーバー機能は、画像処理装置200でほとんど使用されないまま返還されてしまう。そうすると、サーバー機能の委託および返還の処理は、単に負荷を増加させてしまうからである。
次に、図7では、二次サーバー装置であり、サーバー機能を委託される側の立場で動作する、画像処理装置200の処理について説明する。
図7は、二次サーバー装置である画像処理装置の処理の手順を示すフローチャートである。
図7に示す処理は、画像処理装置200のメモリー220またはハードディスク230にプログラムとして記憶されており、CPU210によって実行される。
まず、CPU210は、画像処理装置100がサーバー機能を提供している間に、内部機能部212として、自装置の内部機能(自装置内部機能)にエラーが発生したか否かを判断する(ステップS301)。
内部機能にエラーが発生していない場合(ステップS301:NO)、CPU210は、通常通り、内部機能などを実行する。
内部機能にエラーが発生した場合(ステップS301:YES)、CPU210は、エラー通信部213として、サーバー機能を提供している画像処理装置100に、エラー通知(自装置エラー通知)を送信する(ステップS302)。CPU210は、エラー通知によって、画像処理装置200に資源の余裕が発生したことを通知する。第1実施形態では、エラー通知は、エラー種類の情報を含みうる。
続いて、CPU210は、委託通信部215として、画像処理装置100から委託通知(被仕向委託通知)を受信したか否かを判断する(ステップS303)。
委託通知を受信していない場合(ステップS303:NO)、CPU210は、内部機能部212として、内部機能のエラーが解除されたか否かを判断する(ステップS304)。
委託通知を受信しておらず、内部機能のエラーが解除されていない場合(ステップS304:NO)、CPU210は、ステップS303の処理に戻る。そして、CPU210は、委託通知を受信するまで、あるいは、内部機能のエラーが解除されるまで、ステップS303およびS304の処理を繰り返す。
委託通知を受信しないまま、内部機能のエラーが解除された場合(ステップS304:YES)、CPU210は、ステップS301の処理に戻る。そして、CPU210は、通常通り、内部機能などを実行する。
なお、CPU210が委託通知を受信しない場合とは、画像処理装置100が、画像処理装置200を、サーバー機能の委託先として適切でないと判断した場合である。この場合、CPU210は、委託通知を受信しないため、内部機能のエラーが解除された時点で、ステップS301の処理に戻り、新たに発生する内部機能のエラーを監視する。
一方で、委託通知を受信した場合(ステップS303:YES)、CPU210は、切替制御部214として、サーバー機能部211が提供するサーバー機能を有効化する(ステップS305)。そして、CPU210は、委託通信部215として、画像処理装置100に有効化完了通知を送信する(ステップS306)。ステップS301〜S306の処理によって、二次サーバー装置である画像処理装置200側の、サーバー機能の委託の処理が完了する。
CPU210は、サーバー機能部211として、サーバー機能の提供を開始する。しかし、内部機能のエラーは、いずれ解除される。内部機能のエラーが解除されると、CPU210は、エラーが解除された内部機能に、資源の割り当てを再開する。したがって、画像処理装置200に発生していた資源の余裕はなくなるため、CPU210は、初期サーバー装置である画像処理装置100に、サーバー機能を返還する。
このため、CPU210は、内部機能部212として、内部機能のエラーが解除されたか否かを判断する(ステップS307)。
内部機能のエラーが解除されていない場合(ステップS307:NO)、CPU210は、内部機能のエラーが解除されるまで待機する。
内部機能のエラーが解除された場合(ステップS307:YES)、CPU210は、委託通信部215として、画像処理装置100に返還通知を送信する(ステップS308)。
続いて、CPU210は、委託通信部215として、画像処理装置100から有効化完了通知を受信したか否かを判断する(ステップS309)。
有効化完了通知を受信していない場合(ステップS309:NO)、CPU210は、有効化完了通知を受信するまで待機する。
有効化完了通知を受信した場合(ステップS309:YES)、CPU210は、切替通信部216として、ネットワーク500を介して接続された、画像処理装置100を含む他の装置に、切替通知を送信する(ステップS310)。ここでの他の装置には、クライアント装置400も含まれる。
続いて、CPU210は、サーバー機能部211として、サーバー機能の使用が終了されているか否かを判断する(ステップS311)。
サーバー機能の使用が終了されていない場合(ステップS311:NO)、CPU210は、他の装置による当該使用が終了されるまで、待機する。
サーバー機能の使用が終了されている場合(ステップS311:YES)、CPU210は、切替制御部214として、サーバー機能部211が提供するサーバー機能を無効化する(ステップS312)。ステップS307〜S312の処理によって、二次サーバー装置である画像処理装置200側の、サーバー機能の返還の処理が完了する。そして、CPU210は、処理を終了する。
以上のように、本実施形態の画像処理システム10によれば、サーバー機能を提供していない画像処理装置200の内部機能にエラーが発生した場合、サーバー機能を、画像処理装置100から画像処理装置200に委託させる。画像処理システム10は、画像処理装置200の内部機能のエラーの発生によって使用されなくなった資源の余裕分を、サーバー機能に活用できる。結果として、画像処理システム10は、全体の資源の活用を最適化できる。
特に、サーバー機能を提供していない他の画像処理装置200は、自装置内部機能にエラーが発生した場合、サーバー機能を提供している画像処理装置100に、自発的にエラー通知を送信する。したがって、画像処理装置100は、他の画像処理装置200の資源の余裕の状態を、繰り返し確認することなく把握でき、確認による負荷を低減できる。また、他の画像処理装置200は、資源の余裕が発生した場合、サーバー機能の委託を自発的に希望でき、資源の余裕分を迅速に提供できる。
また、画像処理装置100は、他の画像処理装置200に委託通知を送信した後、サーバー機能を無効化する前に、他の画像処理装置200を含む他の装置に、切替通知を送信する。したがって、画像処理装置100は、クライアント装置などのサーバー機能を使用する装置が、サーバー機能を新たに使用することを防止できる。さらに、切替通知は、委託先を示す情報を含む。したがって、クライアント装置などの他の装置は、サーバー機能を新たに使用する場合、委託先を示す情報を参照して、委託先の他の画像処理装置200に適切にアクセスできる。
また、画像処理装置100は、サーバー機能を無効化する際に、当該サーバー機能の使用が終了されているか否か(サーバー機能で実行中のタスクの処理が残っているか否か)を確認し、当該使用が終了されるまで待機してから、サーバー機能を無効化する。したがって、画像処理装置100は、サーバー機能の使用が継続されている場合に、当該使用を突然無効にすることがない。
また、画像処理装置100は、他装置エラー通知に基づいて、サーバー機能を委託するか否かを判断する。したがって、画像処理装置100は、他の画像処理装置200が委託先として適切でないと判断した場合には、他の画像処理装置200にサーバー機能を委託することがない。結果として、画像処理装置100は、資源の活用を最適化しながらも、サーバー機能の無駄な委託を回避できる。
特に、他装置エラー通知は、他装置エラー種類の情報を含む。画像処理装置100は、他の画像処理装置200の他装置エラー種類が所定の種類に含まれる場合に、サーバー機能を委託する。したがって、画像処理装置100は、他の画像処理装置200のエラーが短時間で解除される場合には、他の画像処理装置200にサーバー機能を委託することがない。
また、サーバー機能を提供していない他の画像処理装置200は、自装置内部機能のエラーが解消された場合、サーバー機能を返還する。したがって、他の画像処理装置200は、自装置内部機能のエラーが解消され、当該自装置内部機能に資源の割り当てを再開し、資源の余裕がなくなった状態で、サーバー機能の提供を継続することがない。そして、本来サーバー機能を提供していた画像処理装置100が、サーバー機能の提供を再開できる。
なお、上記実施形態では、画像処理装置100および画像処理装置200の処理の手順の一例を説明した。しかし、本実施形態はこれに限定されない。以下のような、種々の変更や改良などが可能である。
第1実施形態では、画像処理装置100が、初期サーバー装置である。しかし、上述したように、どの画像処理装置を初期サーバー装置とするかは、ユーザーが事前に適宜設定できる。したがって、画像処理装置100と同様の構成を有する画像処理装置200または300が、初期サーバー装置であってもよい。この場合、画像処理装置100は、二次サーバー装置となりうる。結果として、画像処理装置100、200および300は、初期サーバー装置としても二次サーバー装置としても動作でき、図5および図7のフローチャートの両方の処理を実行できる。
また、第1実施形態では、画像処理装置100は、他装置エラー通知に基づいて、サーバー機能を委託するか否かを判断する。この判断により、第1実施形態では、画像処理装置100は、他の画像処理装置200のエラーが短時間で解除され、サーバー機能がほとんど使用されないまま返還されることを回避していた。しかし、使用頻度が高いサーバー機能の委託は、短時間でも有用となる。この場合、画像処理装置100は、ステップS102およびS103の処理を省略してもよい。ステップS102およびS103の処理の省略により、画像処理装置100は、他装置エラー通知を受信すると即座に、他の画像処理装置200にサーバー機能を委託する。したがって、画像処理装置100は、サーバー機能の委託を迅速に完了できる。
また、第1実施形態では、初期サーバー装置である画像処理装置100が、ステップS102のサーバー機能委託判断の処理を実行する。しかし、本実施形態はこれに限定されない。内部機能にエラーが発生した他の画像処理装置200側で、サーバー機能委託判断の処理を実行してもよい。この場合、他の画像処理装置200は、エラー種類が所定の種類に含まれるか否かを判断する。そして、他の画像処理装置200は、エラー種類が所定の種類に含まれる場合にのみ、画像処理装置100にエラー通知を送信する。このようにすれば、画像処理装置100は、ステップS102およびS103の処理による負荷を低減できる。
また、第1実施形態では、画像処理装置100は、委託通知を送信するが、さらに、サーバー機能を委託しないと判断した場合には、委託しない旨を示す通知を送信してもよい。この場合、当該通知を受信する他の画像処理装置200は、ステップS303およびS304で、委託通知を受信するまで、あるいは、自装置内部機能のエラーが解除されるまで待機することなく、ステップS301の処理に戻ることができる。
(第1実施形態の変形例1)
以下、図面を参照して、第1実施形態の変形例を説明する。
第1実施形態の変形例1では、画像処理装置100が、サーバー機能委託判断の処理に対して、自装置の状態を考慮する追加の処理を実行する。
図8は、第1実施形態のサーバー機能委託判断の手順の他の例を示すサブルーチンフローチャートである。図9は、エラー種類およびエラー難易度を対応付けるテーブルを示す図である。
本変形例のサーバー機能委託判断では、まず、CPU110は、切替制御部114として、エラー通知に含まれるエラー種類(他装置エラー種類)が、所定の種類に含まれるか否かを判断する(ステップS201)。なお、図8のステップS201〜S203の処理は、図6の同ステップ番号の処理に対応する。
他装置エラー種類が所定の種類に含まれない場合(ステップS201:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS203)。この場合、第1実施形態と同様の処理になる。
他装置エラー種類が所定の種類に含まれる場合(ステップS201:YES)、CPU110は、切替制御部114として、内部機能部112に、自装置の内部機能(自装置内部機能)にエラーが発生しているか否かを確認させる(ステップS211)。
自装置内部機能にエラーが発生していない場合(ステップS211:NO)、CPU110は、ステップS202の処理に進む。この場合、第1実施形態と同様の処理になる。
自装置内部機能にエラーが発生している場合(ステップS211:YES)、CPU110は、ステップS212の処理に進む。
続いて、CPU110は、切替制御部114として、内部機能部112から自装置内部機能に発生しているエラーの種類の情報を取得する(ステップS212)。以下では、自装置内部機能に発生しているエラーの種類を、特に「自装置エラー種類」とも呼ぶ。
さらに、CPU110は、切替制御部114として、自装置エラー種類および他装置エラー種類の各々に対応付けられた、エラーを解除するための難易度(以下では「エラー難易度」と呼ぶ)を確認する(ステップS213)。CPU110は、たとえば、図9に例示するテーブルT1を参照して、エラー難易度を確認する。「エラー難易度」は、エラーを解除するために必要な時間に対応する。すなわち、「エラー難易度」は、資源の余裕が発生した状態を継続できる時間に対応するとも言える。
図9のテーブルT1は、画像処理装置100のメモリー120またはハードディスク130に予め記憶されている。また、テーブルT1は、ユーザーによって任意に設定可能であってもよい。また、テーブルT1は、CPU110が実測した値に基づいて作成されてもよく、CPU110は、エラーを解除するためにかかる時間を実測し、テーブルT1に反映させてもよい。以下では、自装置エラー種類に対応付けられたエラー難易度を「自装置エラー難易度」、他装置エラー種類に対応付けられたエラー難易度を「他装置エラー難易度」とも呼ぶ。
ここで、自装置エラー種類がA(たとえばトナー切れ)であり、他装置エラー種類がB(たとえば紙詰まり)であると仮定する。この場合、ステップS213では、CPU110は、自装置エラー難易度を「90」、他装置エラー難易度を「80」と確認する。
続いて、CPU110は、切替制御部114として、他装置エラー難易度が自装置エラー難易度より高いか否かを判断する(ステップS214)。
他装置エラー難易度が自装置エラー難易度より高い場合(ステップS214:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS202)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
他装置エラー難易度が自装置エラー難易度以下である場合(ステップS214:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS203)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
図9に示す例では、自装置エラー種類のAは、他装置エラー種類のBよりエラー難易度が高い。したがって、CPU110は、画像処理装置100の資源の余裕分をより長い時間活用できるため、画像処理装置200にはサーバー機能を委託しないと判断する。
以上のように、第1実施形態の変形例1によれば、画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合には、エラー難易度がより高い方に、サーバー機能を提供させる。より長く資源の余裕が発生している画像処理装置100または200がサーバー機能を提供するため、画像処理システム10全体として、資源の活用が最適化される。特に、上記の判断によって、画像処理装置100が継続してサーバー機能を提供することが決定された場合、画像処理装置100は、サーバー機能の切換に伴う処理の停滞や遅延を発生させることなく、資源を活用できる。
なお、サーバー機能の委託および返還の処理だけでも、負荷は増加する。そのため、画像処理装置100および200のエラー難易度が等しい場合には、サーバー機能を委託しない方が好ましい。したがって、本変形例では、ステップS214の判断基準を、他装置エラー難易度が自装置エラー難易度「以上」とせずに、「より高い」とした。
(第1実施形態の変形例2)
上記第1実施形態では、画像処理装置100がサーバー機能をまとめて他の画像処理装置200に委託する場合について説明した。第1実施形態の変形例2では、独立した複数のサーバー機能を提供する画像処理装置100は、第1実施形態のサーバー機能委託判断の処理において、一部のサーバー機能のみを委託する。
図10は、第1実施形態のサーバー機能委託判断の手順のさらに別の例を示すサブルーチンフローチャートである。図11は、各サーバー機能の提供に必要なエラー難易度を示す図である。
図10のステップS201〜S203の処理は、図6の同ステップ番号の処理に対応する。そのため、エラー種類(他装置エラー種類)が所定の種類に含まれる場合(ステップS201:YES)の処理については、説明を省略する。
エラー種類が所定の種類に含まれない場合(ステップS201:NO)、CPU110は、切替制御部114として、独立した複数のサーバー機能をサーバー機能部111として提供しているか否かを確認する(ステップS221)。
複数のサーバー機能を提供していない場合(ステップS221:NO)、CPU110は、ステップS203の処理に進む。この場合、第1実施形態と同様の処理になる。
複数のサーバー機能を提供している場合(ステップS221:YES)、CPU110は、切替制御部114として、画像処理装置200のエラー種類に対応付けられた、エラー難易度(他装置エラー難易度)を確認する(ステップS222)。エラー難易度の確認の処理については、変形例1で説明した図8のステップS213の処理と同様であるため、説明を省略する。
続いて、CPU110は、切替制御部114として、各サーバー機能の提供に必要なエラー難易度を確認する(ステップS223)。CPU110は、たとえば、図11に例示するテーブルT2に基づいて確認する。そして、CPU110は、切替制御部114として、画像処理装置200のエラー難易度と、各サーバー機能の提供に必要なエラー難易度とを比較して、一部のサーバー機能を委託できるか否かを判断する(ステップS224)。
テーブルT2は、画像処理装置100のメモリー120またはハードディスク130に予め記憶されている。また、テーブルT2は、ユーザーによって任意に設定可能であってもよい。テーブルT2では、画像処理装置100で提供されている各サーバー機能が、各サーバー機能の提供に必要なエラー難易度と対応付けられている。
図11を参照して、具体的な数値例によって説明する。ここで、ステップS222で確認された、画像処理装置200のエラー難易度が、80であると仮定する。当該エラー難易度は、サーバー機能101の提供に必要なエラー難易度未満であるが、サーバー機能102の提供に必要なエラー難易度以上である。この場合、CPU110は、一部のサーバー機能102を委託できると判断する。
ステップS224で、一部のサーバー機能を委託できる場合(ステップS224:YES)、CPU110は、当該一部のサーバー機能を選択して委託すると判断する(ステップS225)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
一部のサーバー機能を委託できない場合(ステップS224:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS203)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
画像処理装置100が提供する複数のサーバー機能には、使用頻度が高いサーバー機能と使用頻度が低いサーバー機能とが混在している場合がある。使用頻度が高いサーバー機能の委託は、短時間でも有用となる。しかし、実際には、所定の種類は、使用頻度が低いサーバー機能の委託にも有用となるように、当該サーバー機能に合わせて、解除されるまでに長く時間がかかるエラー種類のみを含むように、設定されることが好ましい。そうすると、画像処理装置100は、使用頻度が高いサーバー機能も適切に委託できなくなってしまう。そこで、本変形例では、CPU110が、各サーバー機能の提供に必要なエラー種類を考慮して、複数のサーバー機能の委託を最適化できるようにした。
なお、本変形例は、画像処理装置100が3つ以上のサーバー機能を提供する場合にも適用されうる。CPU110は、画像処理装置200のエラー難易度が、各サーバー機能に必要なエラー難易度以上となるように、サーバー機能を選択して委託すればよい。このとき、条件を満たすサーバー機能が2つ以上ある場合には、CPU110は、図11に例示する、サーバー機能を委託する優先度を示す委託優先度に従って、サーバー機能を選択して委託すればよい。あるいは、CPU110は、委託優先度について考慮せず、条件を満たす全てのサーバー機能を委託してもよい。
以上のように、第1実施形態の変形例2によれば、複数のサーバー機能を提供する画像処理装置100は、エラー種類が所定の種類に含まれない場合でも、例外的に、複数のサーバー機能のうち一部のサーバー機能を選択して委託する。したがって、画像処理装置100は、各サーバー機能の提供に必要なエラー難易度に応じて、画像処理装置200で無理なく処理できる範囲で、サーバー機能を適切に委託できる。
なお、第1実施形態の変形例1および変形例2は、組み合わせられてもよい。つまり、画像処理装置100は、画像処理装置200にサーバー機能の全部または一部を委託する前に、自装置内部機能にエラーが発生しているか否かを確認してもよい。そして、画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合には、エラー難易度がより高い方に、サーバー機能の一部または全部を提供させてもよい。
(第2実施形態)
以下、図面を参照して、第2実施形態を説明する。
第1実施形態では、画像処理装置100は、エラー種類に基づいてサーバー機能委託判断の処理を実行する。第2実施形態では、画像処理装置100は、エラー種類とは異なる判断基準を用いて、サーバー機能委託判断の処理を実行する。
図12は、第2実施形態のサーバー機能委託判断の手順の一例を示すサブルーチンフローチャートである。
第2実施形態では、エラー通知は、エラーが発生した画像処理装置の性能に関する数値(以下では「装置能力」と呼ぶ)の情報を含む。第2実施形態では、画像処理装置100は、装置能力に基づいて、サーバー機能委託判断の処理を実行する。以下では、他の画像処理装置の性能に関する装置能力を、特に「他装置能力」とも呼ぶ。
装置能力は、各々の画像処理装置が備える、演算処理能力などのCPU能力を意味する。装置能力は、たとえば、CPUクロックの周波数などを含むが、これに限定されない。装置能力は、ベンチマークによって算出される数値であってもよく、複数の画像処理装置間で比較可能な数値であればよい。
第2実施形態のサーバー機能委託判断では、まず、CPU110は、切替制御部114として、エラー通知に含まれる装置能力(他装置能力)が、所定の第1閾値以上であるか否かを判断する(ステップS401)。
CPU110は、所定の第1閾値を、メモリー120またはハードディスク130に予め記憶する。所定の第1閾値は、ユーザーによって任意に設定可能であってもよい。
装置能力が所定の第1閾値以上である場合(ステップS401:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS402)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
装置能力が所定の第1閾値未満である場合(ステップS401:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS403)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
所定の第1閾値は、サーバー機能の提供に必要な、装置能力の最小値として設定される。画像処理装置200は、ある程度高い装置能力を有しないと、サーバー機能を委託されたとしても、自装置内部機能およびサーバー機能の両方の性能を担保できず、処理速度などを低下させてしまう可能性があるからである。
以上のように、第2実施形態によれば、画像処理装置100は、他の画像処理装置200の装置能力が所定の第1閾値以上である場合、サーバー機能を委託する。したがって、画像処理装置100は、サーバー機能の委託先が性能を担保できない場合には、サーバー機能を委託することがない。
なお、第2実施形態では、エラー通知が装置能力の情報を含むが、本実施形態はこれに限定されない。CPU110は、ネットワーク500を介して接続される画像処理装置200および300の装置能力の情報を、予め取得し、メモリー120またはハードディスク130に記憶してもよい。この場合、画像処理装置100は、画像処理装置200からエラー通知を受信した場合、予め記憶した画像処理装置200の装置能力の情報を読み出して、ステップS401の処理を開始すればよい。
なお、第2実施形態は、第1実施形態と組み合わせられてもよい。つまり、画像処理装置100は、他装置エラー種類が所定の種類に含まれ、かつ、他装置能力が所定の第1閾値以上である場合にのみ、画像処理装置200にサーバー機能を委託してもよい。
(第2実施形態の変形例1)
以下、図面を参照して、第2実施形態の変形例を説明する。
第2実施形態の変形例1では、画像処理装置100が、第2実施形態のサーバー機能委託判断の処理に対して、自装置の状態を考慮する追加の処理を実行する。
本変形例では、CPU110は、自装置の性能に関する装置能力(以下では「自装置能力」とも呼ぶ)の情報を管理する装置能力管理部(図示なし)をさらに有する。装置能力管理部は、画像処理装置100の装置能力を、メモリー120またはハードディスク130に記憶したり、必要に応じて、記憶した装置能力を読み出したりする。
図13は、第2実施形態のサーバー機能委託判断の手順の他の例を示すサブルーチンフローチャートである。
第2実施形態の変形例1は、第1実施形態の変形例1と同様に、画像処理装置100がエラー通知を受信した際に、自装置内部機能にもエラーが発生している場合を考慮する。図13のステップS401〜S403の処理は、図12の同ステップ番号の処理に対応する。また、図13のステップS411の処理は、図8のステップS211の処理に対応する。そのため、これらの説明を省略し、ステップS412以降の処理について説明する。
ステップS412では、CPU110は、切替制御部114として、自装置の装置能力の情報を管理する装置能力管理部から、自装置能力の情報を取得する(ステップS412)。
続いて、CPU110は、切替制御部114として、他装置能力が自装置能力より高いか否かを判断する(ステップS413)。
他装置能力が自装置能力より高い場合(ステップS413:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS402)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
他装置能力が自装置能力以下である場合(ステップS413:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS403)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
以上のように、第2実施形態の変形例1によれば、画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合には、装置能力がより高い方に、サーバー機能を提供させる。したがって、画像処理装置100は、できるだけ高い装置能力を用いて、資源の余裕分を活用するように制御できる。
なお、第2実施形態の変形例1は、第1実施形態の変形例1と組み合わせられてもよい。画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合、他装置エラー難易度が自装置エラー難易度より高く、かつ、他装置能力が自装置能力より高い場合にのみ、画像処理装置200にサーバー機能を委託してもよい。
(第2実施形態の変形例2)
第2実施形態の変形例2では、独立した複数のサーバー機能を提供する画像処理装置100は、第2実施形態のサーバー機能委託判断の処理において、一部のサーバー機能のみを委託する。
図14は、第2実施形態のサーバー機能委託判断の手順のさらに別の例を示すサブルーチンフローチャートである。図15は、各サーバー機能の提供に必要な装置能力を示す図である。
図14のステップS401〜S403の処理は、図12の同ステップ番号の処理に対応する。また、図14のステップS421、S423およびS424の処理は、図10のステップS221、S224およびS225の処理にそれぞれ対応する。そのため、これらの説明を省略し、ステップS422の処理について主に説明する。
ステップS422では、CPU110は、切替制御部114として、各サーバー機能の提供に必要な装置能力を確認する(ステップS422)。CPU110は、たとえば、図15に例示するテーブルT3に基づいて、画像処理装置200の装置能力に対して、一部のサーバー機能を委託できるか否かを判断する(ステップS423)。
テーブルT3は、画像処理装置100のメモリー120またはハードディスク130に予め記憶されている。また、テーブルT3は、ユーザーによって任意に設定可能であってもよい。テーブルT3では、画像処理装置100で提供されている各サーバー機能が、各サーバー機能の提供に必要な装置能力と対応付けられている。
図15を参照して、具体的な数値例によって説明する。ここで、画像処理装置200の装置能力が500であり、ステップS401で適用された第1閾値が700であると仮定する。当該装置能力は、所定の第1閾値未満であり、サーバー機能101の提供に必要な装置能力未満であるが、サーバー機能102の提供に必要な装置能力以上である。この場合、CPU110は、一部のサーバー機能102を委託できると判断する。
第1閾値は、上述したように、サーバー機能の提供に必要な、装置能力の最小値として設定される。複数のサーバー機能が提供される場合には、第1閾値は、最も高い装置能力を必要とするサーバー機能に合わせて設定されることが好ましい。そこで、本変形例では、CPU110が、各サーバー機能の提供に必要な装置能力を考慮して、複数のサーバー機能の委託を最適化できるようにした。なお、本変形例は、第1実施形態の変形例2と同様に、画像処理装置100が3つ以上のサーバー機能を提供する場合にも適用されうる。
以上のように、第2実施形態の変形例2によれば、複数のサーバー機能を提供する画像処理装置100は、装置能力が所定の第1閾値未満である場合でも、例外的に、複数のサーバー機能のうち一部のサーバー機能を選択して委託する。したがって、画像処理装置100は、各サーバー機能の提供に必要な装置能力に応じて、画像処理装置200で無理なく処理できる範囲で、サーバー機能を適切に委託できる。
なお、第2実施形態の変形例1および変形例2は、組み合わせられてもよい。つまり、画像処理装置100は、画像処理装置200にサーバー機能の全部または一部を委託する前に、自装置内部機能にエラーが発生しているか否かを確認してもよい。そして、画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合には、装置能力がより高い方に、サーバー機能の一部または全部を提供させてもよい。
(第3実施形態)
以下、図面を参照して、第3実施形態を説明する。
第3実施形態では、画像処理装置100は、エラー種類または装置能力とはさらに異なる判断基準を用いて、サーバー機能委託判断の処理を実行する。
図16は、第3実施形態のサーバー機能委託判断の手順の一例を示すサブルーチンフローチャートである。
第3実施形態では、エラー通知は、画像処理装置200が受け入れ可能な負荷量(以下では「受入可能負荷量」と呼ぶ)の情報を含む。第3実施形態では、画像処理装置100は、受入可能負荷量に基づいて、サーバー機能委託判断の処理を実行する。
受入可能負荷量は、第2実施形態で説明した画像処理装置200の装置能力(他装置能力)と、画像処理装置200に発生した資源の余裕分(たとえば、割り当て可能なメモリ容量など)とに基づいて算出される。画像処理装置200は、自装置内部機能にエラーが発生すると、受入可能負荷量を算出して、当該受入可能負荷量の情報を含むエラー通知を送信する。
第3実施形態のサーバー機能委託判断では、まず、CPU110は、切替制御部114として、サーバー負荷量を算出する(ステップS501)。サーバー負荷量とは、サーバー機能の実行によって発生する、サーバー機能の負荷量を意味する。サーバー負荷量は、第2実施形態で説明した画像処理装置100の装置能力(自装置能力)と、サーバー機能に対して割り当てられている資源の量とに基づいて算出される。
続いて、CPU110は、切替制御部114として、エラー通知に含まれる受入可能負荷量が、サーバー負荷量より大きいか否かを判断する(ステップS502)。
受入可能負荷量がサーバー負荷量より大きい場合(ステップS502:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS503)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
受入可能負荷量がサーバー負荷量以下である場合(ステップS502:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS504)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
以下では、受入可能負荷量およびサーバー負荷量の具体的な数値例によって説明する。
図17は、第3実施形態の受入可能負荷量およびサーバー負荷量の関係性を説明するための図である。
第3実施形態では、負荷量は、装置能力および資源の量の乗算として定義される。図17に示す例では、画像処理装置100は、1000(たとえば、ベンチマーク値)の装置能力を有し、20(たとえば、割り当て可能なメモリ容量)の資源をサーバー機能に割り当てている。この場合、画像処理装置100のサーバー機能の負荷量は、20000である。なお、装置能力および負荷量は相対値であり、ここでは具体的な単位は省略する。
一方で、画像処理装置200は、750の装置能力を有し、40の資源をエラーが発生した内部機能に割り当てていた。つまり、画像処理装置200に発生した資源の余裕分は、40であり、受入可能負荷量は、30000である。図17の例では、受入可能負荷量がサーバー負荷量より大きいため、画像処理装置100は、サーバー機能を委託する。逆に、たとえば、画像処理装置200の受入可能負荷量が20000以下である場合には、画像処理装置100は、サーバー機能を委託しない。なお、第3実施形態の負荷量は、装置能力および資源を考慮できればよく、当該負荷量の算出には、任意の他の算出方法が用いられてもよい。
以上のように、第3実施形態によれば、画像処理装置100は、他の画像処理装置200の受入可能負荷量がサーバー負荷量以上である場合、サーバー機能を委託する。したがって、画像処理装置100は、発生した資源の余裕分まで考慮した負荷量の指標を用いてサーバー機能委託判断の処理を実行でき、判断の精度を向上できる。
なお、第3実施形態は、第1実施形態と組み合わせられてもよい。つまり、画像処理装置100は、他装置エラー種類が所定の種類に含まれ、かつ、受入可能負荷量がサーバー負荷量より大きい場合にのみ、画像処理装置200にサーバー機能を委託してもよい。
また、第3実施形態では、受入可能負荷量は、内部機能の一定期間内の使用頻度に応じて、増減するものであってもよい。たとえば、画像処理装置200は、各内部機能の使用頻度を監視し、内部機能に割り当てる資源を増減することにより、当該内部機能の負荷量を増減する。使用頻度が高い内部機能(たとえばプリント機能など)にエラーが発生した場合、当該内部機能の負荷量が大きいため、画像処理装置100のサーバー機能を受け入れるための受入可能負荷量も大きくなる。つまり、使用頻度が高い内部機能にエラーが発生した場合、画像処理装置200は、幅広くサーバー機能を受け入れられる。一方で、使用頻度が非常に低い内部機能(たとえばファックス機能など)にエラーが発生した場合、当該内部機能の負荷量が非常に小さいため、受入可能負荷量も非常に小さく、画像処理装置200は、サーバー機能を受け入れ難い。このように、使用頻度に応じて変動する負荷量を、エラー発生時の受入可能負荷量とすることで、画像処理装置200は、リアルタイムで無理なく十分なサーバー機能を受け入れられる。
(第3実施形態の変形例1)
以下、図面を参照して、第3実施形態の変形例を説明する。
第3実施形態の変形例1では、画像処理装置100が、第3実施形態のサーバー機能委託判断の処理に対して、自装置の状態を考慮する追加の処理を実行する。
図18は、第3実施形態のサーバー機能委託判断の手順の他の例を示すサブルーチンフローチャートである。
第3実施形態の変形例1は、第1実施形態の変形例1と同様に、画像処理装置100がエラー通知を受信した際に、自装置内部機能にもエラーが発生している場合を考慮する。図18のステップS501〜S504の処理は、図16の同ステップ番号の処理に対応する。また、図18のステップS511の処理は、図8のステップS211の処理に対応する。そのため、これらの説明を省略し、ステップS512以降の処理について説明する。
ステップS512では、CPU110は、切替制御部114として、エラーの発生によって自装置が新たに受入可能になった負荷量を算出し、当該負荷量とサーバー負荷量との合計である合計負荷量を算出する(ステップS512)。CPU110は、画像処理装置100の装置能力(自装置能力)と、画像処理装置100に発生した資源の余裕分とに基づいて、自装置が新たに受入可能になった負荷量を算出し、サーバー負荷量と合計する。
続いて、CPU110は、切替制御部114として、画像処理装置200の受入可能負荷量が、画像処理装置100の合計負荷量より大きいか否かを判断する(ステップS513)。
受入可能負荷量が合計負荷量より大きい場合(ステップS513:YES)、CPU110は、切替制御部114として、サーバー機能を委託すると判断する(ステップS503)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
受入可能負荷量が合計負荷量以下である場合(ステップS513:NO)、CPU110は、切替制御部114として、サーバー機能を委託しないと判断する(ステップS504)。そして、CPU110は、サーバー機能委託判断の処理を終了する。
図17を参照して、具体的な数値例によって説明する。画像処理装置100では、内部機能のエラーの発生によって、内部機能に割り当てていた80の資源のうち、さらに20の資源が解放されたと仮定する。この場合、自装置が新たに受入可能になった負荷量は、20000であり、サーバー負荷量との合計負荷量は、40000である。画像処理装置200の受入可能負荷量は30000であるため、受入可能負荷量が合計負荷量以下である。この場合、画像処理装置100は、サーバー機能を委託しない。
以上のように、第3実施形態の変形例1によれば、画像処理装置100は、画像処理装置100および200の両方が、サーバー負荷量より大きい負荷量の余裕を有している場合には、より大きい負荷量の余裕を有している方に、サーバー機能を提供させる。したがって、画像処理装置100は、できるだけ大きい負荷量の余裕の下で、サーバー機能を安定的に提供させられる。
なお、第3実施形態の変形例1は、第1実施形態の変形例1と組み合わせられてもよい。画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合、他装置エラー難易度が自装置エラー難易度より高く、かつ、受入可能負荷量が合計負荷量より高い場合にのみ、画像処理装置200にサーバー機能を委託してもよい。
(第3実施形態の変形例2)
第3実施形態の変形例2では、独立した複数のサーバー機能を提供する画像処理装置100は、第3実施形態のサーバー機能委託判断の処理において、一部のサーバー機能のみを委託する。
図19は、第3実施形態のサーバー機能委託判断の手順をさらに別の例を示すサブルーチンフローチャートである。図20は、各サーバー機能のサーバー負荷量を示す図である。
図19のステップS501〜S504の処理は、図16の同ステップ番号の処理に対応する。また、図19のステップS521、S523およびS524の処理は、図10のステップS221、S224およびS225の処理にそれぞれ対応する。そのため、これらの説明を省略し、ステップS522の処理について主に説明する。
ステップS522では、CPU110は、切替制御部114として、各サーバー機能のサーバー負荷量を確認する(ステップS522)。CPU110は、たとえば、図20に例示するテーブルT4に基づいて、画像処理装置200の受入可能負荷量に対して、一部のサーバー機能を委託できるか否かを判断する(ステップS523)。
テーブルT4は、画像処理装置100のメモリー120またはハードディスク130に予め記憶されている。また、テーブルT4は、ユーザーによって任意に設定可能であってもよい。テーブルT4では、画像処理装置100で提供されている各サーバー機能が、当該サーバー機能についてステップS501で算出された、サーバー負荷量と対応付けられている。
図20を参照して、具体的な数値例によって説明する。ここで、画像処理装置200の受入可能負荷量が、たとえば9000であると仮定する。CPU110は、ステップS502の時点で、受入可能負荷量と、複数のサーバー機能101および102によるサーバー負荷量の合計(10000)とを比較して、全てのサーバー機能101および102を同時には委託できないと判断している。この場合、ステップS523で、CPU110は、委託優先度の高いサーバー機能101のみを委託する。
また、画像処理装置200の受入可能負荷量が、たとえば6000であると仮定する。この場合、委託優先度の高いサーバー機能101のサーバー負荷量は、受入可能負荷量より大きいため、CPU110は、委託優先度の高いサーバー機能101を委託できない。CPU110は、代わりに、サーバー機能102を委託する。
また、画像処理装置200の受入可能負荷量が、たとえば1000であると仮定する。この場合、サーバー機能101および102の各々のサーバー負荷量が、受入可能負荷量より大きいため、CPU110は、全てのサーバー機能を委託できない。
以上のように、第3実施形態の変形例2によれば、複数のサーバー機能を提供する画像処理装置100は、サーバー機能によるサーバー負荷量が、受入可能負荷量以下となる範囲で、一部のサーバー機能を選択して委託する。したがって、画像処理装置100は、受入可能負荷量を基準にして、一つ以上のサーバー機能を適切に委託できる。
なお、第3実施形態の変形例1および変形例2は、組み合わせられてもよい。つまり、画像処理装置100は、画像処理装置200にサーバー機能の全部または一部を委託する前に、自装置内部機能にエラーが発生しているか否かを確認してもよい。そして、画像処理装置100は、画像処理装置100および200の両方にエラーが発生している場合には、より大きい負荷量の余裕を有している方に、サーバー機能の一部または全部を提供させてもよい。
(第4実施形態)
以下、第4実施形態を説明する。
第1実施形態では、二次サーバー装置である画像処理装置200は、内部機能(自装置内部機能)にエラーが発生すると、エラー通知を即座に送信する。第4実施形態では、画像処理装置200は、所定の条件を満たす場合にのみ、エラー通知を送信する。
第4実施形態では、画像処理装置200のCPU210の切替制御部214は、エラー通信部213に、エラー通知(自装置エラー通知)を送信させるか否かを判断する。より具体的には、切替制御部214は、エラーが発生した自装置内部機能の一定期間内の使用頻度に基づいて、エラー通知を送信させるか否かを判断する。以下では、切替制御部214の処理の詳細について説明する。
まず、CPU210は、図7のステップS301で、内部機能にエラーが発生した場合ステップS302に進む前に、内部機能部212として、エラーが発生した内部機能の一定期間内の使用頻度を確認する。そして、CPU210は、切替制御部214として、内部機能部212が確認した使用頻度が、所定の第2閾値以上であるか否かを判断する。ここで、使用頻度が所定の第2閾値以上である場合、CPU210は、切替制御部214として、ステップS302でエラー通知を送信させると判断する。一方で、使用頻度が所定の第2閾値未満である場合、CPU210は、エラー通知を送信させないと判断する。CPU210は、たとえば、後述する図21に例示するテーブルを参照して、第2閾値を確認する。CPU210は、エラー通知を送信する前に、内部機能の一定期間内の使用頻度を確認する以外は、第1実施形態と同様の処理を実行する。
図21は、内部機能および第2閾値を対応付けるテーブルを示す図である。
図21のテーブルT5は、画像処理装置200のメモリー220またはハードディスク230に予め記憶されている。
第3実施形態で説明したように、画像処理装置200の内部機能の負荷量は、使用頻度に応じて増減する可能性がある。そのため、第4実施形態では、画像処理装置200は、エラーが発生した内部機能の使用頻度に対して、第2閾値を設定する。そして、使用頻度が第2閾値未満である場合、画像処理装置200は、エラーが発生した内部機能の負荷量が非常に小さいため、発生した資源の余裕分も非常に小さく、サーバー機能を受け入れ難いと判断する。そのため、画像処理装置200は、画像処理装置100にエラー通知を送信しない。ただし、内部機能の種類によって、使用頻度による負荷量の増減の状況は異なると考えられる。そのため、テーブルT5に示すように、各々の内部機能には、異なる第2閾値を設定可能とした。
以上のように、第4実施形態によれば、画像処理装置200は、内部機能の一定期間内の使用頻度が所定の第2閾値以上である場合にのみ、画像処理装置100にエラー通知を送信する。したがって、画像処理装置200は、内部機能にエラーが発生する一方で、資源の余裕がほとんど発生していない状況が予測される場合には、エラー通知を送信しない。結果として、画像処理装置100は、サーバー機能委託判断の処理などを省略できる。
なお、第4実施形態は、画像処理装置100のサーバー機能委託判断の処理が、エラー種類に基づく場合(第1実施形態)にも、装置能力に基づく場合(第2実施形態)にも、サーバー負荷量に基づく場合(第3実施形態)にも、適用できる。
また、第4実施形態では、画像処理装置200が、エラーが発生した内部機能の使用頻度を確認する。しかし、本実施形態はこれに限定されない。画像処理装置100が、図5のステップS101で画像処理装置200からエラー通知を受信した場合、ステップS102のサーバー処理委託判断の処理に進む前に、エラーが発生した画像処理装置200の内部機能の一定期間内の使用頻度を確認してもよい。
(第5実施形態)
以下、図面を参照して、第5実施形態を説明する。
第1〜第4実施形態では、画像処理装置100および画像処理装置200間で実行される、サーバー機能の委託および返還の処理について説明した。第5実施形態では、3台以上の画像処理装置間で実行される、サーバー機能の委託および返還の処理について説明する。第5実施形態でも、各画像処理装置のCPUは、他の実施形態と同様に、エラー通信部としてエラー通知を送受信したり、切替制御部としてサーバー機能委託判断の処理を実行したり、委託通信部として委託通知を送受信したりする。
図22は、画像処理装置がサーバー機能を委託および返還する様子を説明するための図である。図23は、委託通知に含まれる履歴情報テーブルの一例を示す。
図22では、委託の際に実行される、サーバー機能委託判断の処理、サーバー機能の有効化および無効化、ならびに有効化完了通知などの一部の通知の表示を省略する。また、第5実施形態では、委託通知は、サーバー機能を過去に提供した画像処理装置を示す情報(以下では「履歴情報」と呼ぶ)を含む。履歴情報は、たとえば図23に例示するテーブルT6の状態で管理されてもよい。履歴情報は、テーブルT6に示すように、サーバー機能を過去に提供した画像処理装置と、当該画像処理装置の内部機能のエラーが解除されたか否かを示す情報(以下では、「エラー状況」とも呼ぶ)とを、履歴として対応付けて記憶する。履歴情報は、サーバー機能の委託が実行される度に、画像処理装置の情報を追加していく。
図22では、初期状態では、初期サーバー装置である画像処理装置100が、サーバー機能を提供している。ここで、二次サーバー装置である画像処理装置200の内部機能203にエラーが発生すると、画像処理装置200は、画像処理装置100にエラー通知を送信する。画像処理装置100は、エラー通知を受信すると、第1〜第3実施形態による一つ以上のサーバー機能委託判断の処理を実行する。そして、画像処理装置100は、サーバー機能を委託すると判断すると、画像処理装置200に委託通知を送信する。たとえば、画像処理装置100は、第3実施形態のサーバー機能委託判断の処理を実行し、画像処理装置200の受入可能負荷量がサーバー負荷量より大きい場合、サーバー機能を委託する。
続いて、二次サーバー装置である画像処理装置200が、サーバー機能を提供する。ここで、画像処理装置300の内部機能303にエラーが発生すると、画像処理装置300は、画像処理装置200にエラー通知を送信する。このように、エラー通知は、内部機能にエラーが発生した画像処理装置から、サーバー機能を提供している画像処理装置に対して送信される。画像処理装置200は、エラー通知を受信すると、第1〜第3実施形態の各々の変形例1による、一つ以上のサーバー機能委託判断の処理を実行する。そして、画像処理装置200は、サーバー機能を委託すると判断すると、画像処理装置300に委託通知を送信する。たとえば、画像処理装置200は、第3実施形態の変形例1のサーバー機能委託判断の処理を実行し、画像処理装置300の受入可能負荷量が、画像処理装置200の合計負荷量より大きい場合、サーバー機能を委託する。このように、3台以上の画像処理装置間で委託の処理が実行される場合でも、第1〜第3実施形態およびその変形例と、同様の委託の処理が適用されうる。
続いて、二次サーバー装置である画像処理装置300が、サーバー機能を提供する。ここで、画像処理装置200の内部機能203のエラーが解除されると、画像処理装置200は、サーバー機能を提供している画像処理装置300に、エラー解除通知を送信する。画像処理装置300は、エラー解除通知を受信すると、履歴情報における、画像処理装置200の内部機能203のエラー状況を、エラーが解除された旨を示す内容(エラー解除済)に変更する。ここまでの履歴情報をまとめると、図23に示すテーブルT6になる。
続いて、画像処理装置300の内部機能303のエラーが解除されると、画像処理装置300は、委託通知に含まれる履歴情報に基づいて、履歴情報に記憶された全ての他の画像処理装置の内部機能(他装置内部機能)のエラーが、解除されたか否かを判断する。この判断は、画像処理装置300のCPUの切替判断部によって実行されてもよい。ここで、全ての他装置内部機能のエラーが解除された場合、画像処理装置300は、初期サーバー装置にサーバー機能を返還すると判断する。一方で、全ての他装置内部機能のエラーが解除されていない場合、画像処理装置300は、当該エラーが解除されていない他の画像処理装置に、サーバー機能を返還すると判断する。そして、画像処理装置300は、サーバー機能を返還すると判断した返還先に、返還通知を送信する。返還通知は、委託通信部によって送信されてもよい。
テーブルT6では、画像処理装置100は、初期サーバー装置であるため履歴情報に記憶されているが、そもそも内部機能にエラーは発生していない。そして、画像処理装置200の内部機能203のエラーは、既に解除されている。したがって、この場合、画像処理装置300は、履歴情報に記憶された全ての画像処理装置の内部機能のエラーが、解除されたと判断し、初期サーバー装置である画像処理装置100に、返還通知を送信する。
一方で、図22に示す例とは異なり、画像処理装置200の内部機能203のエラーが解除される前に、画像処理装置300の内部機能303のエラーが解除されたとする。この場合、画像処理装置300は、画像処理装置200の内部機能203のエラーが解除されていないと判断し、画像処理装置200に返還通知を送信する。
画像処理装置200は、返還通知を受信すると、サーバー機能を再度提供する。ここで、画像処理装置200の内部機能203のエラーが解除されると、画像処理装置200は、履歴情報に記憶された全ての画像処理装置の内部機能のエラーが、解除されたと判断し、初期サーバー装置である画像処理装置100に、返還通知を送信する。このように、3台以上の画像処理装置間で返還の処理が実行される場合、サーバー機能は、内部機能のエラーが未だ解除されていない画像処理装置に一旦返還され、最終的には初期サーバー装置に返還される。
第5実施形態では、さらに、サーバーの返還に際し、履歴情報に記憶された二つ以上の画像処理装置の内部機能のエラーが解除されていない場合を想定する。
図24は、委託通知に含まれる履歴情報テーブルの他の例を示す。
画像処理装置300は、サーバー機能を提供しており、図24に示すテーブルT7の履歴情報を有していると仮定する。ここで、画像処理装置300の内部機能303のエラーが解除されると、画像処理装置300は、画像処理装置100の内部機能103と、画像処理装置200の内部機能203との、二つのエラーが解除されていないと判断する。この場合、画像処理装置300は、どちらの画像処理装置にサーバー機能を返還すべきか、さらに判断する必要がある。この判断も、切替判断部によって実行されてもよい。
画像処理装置300は、たとえば、第2実施形態で説明した装置能力の指標に基づいて、装置能力が最も高い画像処理装置に、サーバー機能を返還すると判断する。この場合、履歴情報は、テーブルT7に示すように、サーバー機能を過去に提供した画像処理装置と、エラー状況とに加えて、当該画像処理装置の装置能力を記憶してもよい。図24に示す例では、画像処理装置300は、装置能力がより高い画像処理装置200に、サーバー機能を返還すると判断する。そして、当該サーバー機能は、全ての内部機能のエラーが解除されると、最終的には初期サーバー装置に返還される。
以上のように、第5実施形態によれば、サーバー機能は、内部機能のエラーが解除されていない画像処理装置が残っている間は、当該画像処理装置に返還され、最終的には初期サーバー装置に返還される。したがって、サーバー機能は、各画像処理装置の資源の余裕分を活用して提供されながら、資源の余裕がなくなると、自動的に初期サーバー装置に返還される。
上記実施形態では、画像処理装置100等を一つの装置として説明した。しかし、本発明はこれに限定されない。サーバー機能委託判断の処理などを実行する情報処理装置と、画像処理を実行する装置とが、別々に構成されてもよい。この場合、情報処理装置と、画像処理を実行する装置とは、バスを介して接続される。
本発明による画像処理装置100等による処理は、上記各手順を実行するための専用のハードウエア回路によっても、また、上記各手順を記述したプログラムをCPUが実行することによっても実現できる。後者により本発明を実現する場合、画像処理装置100等を動作させる上記プログラムは、USBメモリ、フロッピー(登録商標)ディスクやCD−ROMなどのコンピューター読み取り可能な記録媒体によって提供されてもよいし、インターネットなどのネットワークを介してオンラインで提供されてもよい。この場合、コンピューター読み取り可能な記録媒体に記録されたプログラムは、通常、メモリやハードディスクなどに転送され記憶される。また、このプログラムは、たとえば、単独のアプリケーションソフトとして提供されてもよいし、画像処理装置100等の一機能としてその装置のソフトウエアに組み込んでもよい。