(57)【要約】【課題】画像形成システムにおいて、画像形成装置間のゲストＯＳの移動を適切なタイミングで実行すること。【解決手段】状態１では、ゲストＯＳ１００Ｘは、ＭＦＰ１００Ｂにおいて実行される。ゲストＯＳ１００Ｘの一例は、認証サーバー機能を実現するためのＯＳである。ＭＦＰ１００Ｂは、当該ＭＦＰ１００Ｂにおいて、ＨＤＤ１６Ｂに退避させたデータのサイズが予め定められた基準値を超え、さらに、当該ＭＦＰ１００Ｂの画像形成部の画像形成動作が予測され得る条件が成立すると、画像形成システム１内の他のＭＦＰ（すなわち、ＭＦＰ１００ＡまたはＭＦＰ１００Ｃ）にゲストＯＳ１００Ｘを移動させる。【選択図】図１
2018032310.tif 000002
【特許請求の範囲】
【請求項１】
画像形成手段と、
前記画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）、および、サーバープログラムを実行するためのゲストＯＳを実行するように構成された制御手段と、
ネットワークを介して他の画像形成装置と通信するように構成された通信手段と、
補助記憶装置とを備え、
前記制御手段は、
前記画像形成手段によって出力するデータを前記補助記憶装置に退避させ、
前記補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、前記画像形成手段による前記補助記憶装置に退避させたデータの画像形成動作が予測され得る条件が満たされたことに応じて、前記ゲストＯＳを他の画像形成装置へ移動させるように構成されている、画像形成装置。
【請求項２】
前記画像形成手段による画像形成動作が予測され得る条件は、画像形成装置の状態に関する条件であり、
前記制御手段は、前記画像形成装置の状態について、前記条件が満たされたか否かを判断するように構成されている、請求項１に記載の画像形成装置。
【請求項３】
前記画像形成装置の状態は、前記画像形成装置を構成する部材の位置の変更に従って変更され、
前記制御手段は、前記部材の位置の変更を検出することにより、前記条件が満たされたか否かを判断するように構成されている、請求項２に記載の画像形成装置。
【請求項４】
前記部材は、消耗品を収納するドアであり、
前記制御手段は、前記消耗品が消耗している場合であって前記ドアが開閉されたことを検出した場合に、前記条件が満たされたと判断するように構成されている、請求項３に記載の画像形成装置。
【請求項５】
前記部材は、画像形成手段によって搬送される用紙のジャムを解消するために開閉されるドアであり、
前記制御手段は、前記ドアが開閉されたことを検出した場合に、前記条件が満たされたと判断するように構成されている、請求項３に記載の画像形成装置。
【請求項６】
前記画像形成装置の状態に関する条件は、前記画像形成手段による画像形成のモードに関する条件を含む、請求項２に記載の画像形成装置。
【請求項７】
前記制御手段は、ユーザーのログインを条件として画像を形成するモードに利用されるデータが前記補助記憶装置に格納され、かつ、当該ユーザーがログインした場合に、前記条件が満たされたと判断するように構成されている、請求項６に記載の画像形成装置。
【請求項８】
前記制御手段は、前記モードが小冊子印刷であって当該モードにおいて所定枚数以上の原稿の画像が読み込まれた場合に、前記条件が満たされていると判断するように構成されている、請求項６に記載の画像形成装置。
【請求項９】
前記通信手段は、複数の他の画像形成装置と通信可能であり、
前記制御手段は、前記条件が満たされたことに応じて、
前記複数の他の画像形成装置のそれぞれについて、高負荷状態が予測される時間の長さである高負荷時間を算出し、
前記高負荷時間が最も短い前記他の画像形成装置に前記ゲストＯＳを移動させるように構成されている、請求項１〜請求項８のいずれか１項に記載の画像形成装置。
【請求項１０】
前記制御手段は、前記条件が満たされたことに応じて、
前記補助記憶装置に退避されたデータの量に基づいて、前記補助記憶装置に退避させたデータの画像形成動作によって前記制御手段が高負荷状態になることが予測される時間の長さを算出し、
算出された前記時間の長さが、全ての前記複数の他の画像形成装置の前記高負荷時間よりも短い場合には、前記ゲストＯＳの移動を回避するように構成されている、請求項９に記載の画像形成装置。
【請求項１１】
前記制御手段は、前記ゲストＯＳの種類に基づいて前記基準値を設定するように構成されている、請求項１〜請求項１０のいずれか１項に記載の画像形成装置。
【請求項１２】
前記ゲストＯＳの前記移動は、仮想マシンのレジスターおよびメモリーのデータの転送ならびに前記補助記憶装置に退避された仮想メモリーデータの転送を含む、請求項１〜請求項１１のいずれか１項に記載の画像形成装置。
【請求項１３】
第１および第２の画像形成装置を含む画像形成システムであって、
前記第１の画像形成装置は、
画像形成手段と、
前記画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）、および、サーバープログラムを実行するためのゲストＯＳを実行するように構成された制御手段と、
ネットワークを介して前記第２の画像形成装置と通信するように構成された通信手段と、
補助記憶装置とを含み、
前記制御手段は、
前記画像形成手段によって出力するデータを前記補助記憶装置に退避するように構成されており、
前記補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、前記画像形成手段による前記補助記憶装置に退避させたデータの画像形成動作が予測され得る条件が満たされたことに応じて、前記ゲストＯＳを前記第２の画像形成装置へ移動させるように構成されている、画像形成システム。
【請求項１４】
画像形成手段および補助記憶装置を備えた画像形成装置を制御する方法であって、
前記画像形成手段によって出力するデータを前記補助記憶装置に退避するステップと、
前記補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、前記画像形成手段による前記補助記憶装置に退避させたデータの画像形成動作の開始が予測され得る条件が満たされたことに応じて、前記ゲストＯＳを他の画像形成装置へ移動させるステップとを備える、画像形成装置の制御方法。
【請求項１５】
画像形成手段および補助記憶装置を備えた画像形成装置のコンピューターによって実行されるプログラムであって、
前記プログラムは、前記コンピューターに、
前記画像形成手段によって出力するデータを前記補助記憶装置に退避するステップと、
前記補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、前記画像形成手段による前記補助記憶装置に退避させたデータの画像形成動作の開始が予測され得る条件が満たされたことに応じて、前記ゲストＯＳを他の画像形成装置へ移動させるステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像形成装置、画像形成システム、画像形成装置の制御方法、および、プログラムに関し、特に、画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）とサーバープログラムを実行するためのゲストＯＳとを実行するように構成された制御手段を備える画像形成装置、そのような画像形成装置を２台以上含む画像形成システム、そのような画像形成装置の制御方法、および、そのような画像形成装置のコンピューターによって実行されるプログラムに関する。
【背景技術】
【０００２】
従来、ＭＦＰ（Multi-Functional  Peripheral）等の画像形成装置において、画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）だけでなく、サーバープログラムを実行するためのゲストＯＳを実行することが提案されている。また、そのような画像形成装置を複数台含む画像形成システムについても提案されている。
【０００３】
一方、サーバー装置を複数含むネットワークについて、種々検討がなされている。たとえば、特開２００９−２２３５１７号公報（特許文献１）は、サーバー装置間でのゲストＯＳの移動に関する技術を開示している。当該技術では、ゲストＯＳが稼動するサーバー装置の負荷が所定値以上（たとえば、ＣＰＵ（Central  Processing  Unit））使用率が９０％以上、メモリ使用率が９０％以上、等）となった場合に、ゲストＯＳが他のサーバーへと移動される。
【０００４】
特開２００７−３２３４９９号公報（特許文献２）は、複数のシステムの間での負荷分散を開示している。各システムは、１台または複数台のサーバー装置を含む。あるシステムの負荷（たとえば、ＣＰＵ使用率、メモリ使用率、ディスク使用率）が所定値を超えた場合に、当該システムの処理の一部が他のシステムで実行される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２２３５１７号公報
【特許文献２】特開２００７−３２３４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ゲストＯＳの移動のような負荷の分散は、ＣＰＵの使用率の上昇等の事象が実際に生じた後にしか実行されない。このことから、負荷分散によって負荷を軽減されるべき装置やシステムでは、負荷分散が開始される時点では、既に負荷が高くなっている。特に、当該装置やシステムがサーバーとして機能している場合、負荷が高くなっていることによって、サーバー機能の移動自体に時間を要し、これにより、クライアントにおける処理の遅延等の二次的な影響も生じてしまう。
【０００７】
本開示は、係る実情に鑑み考え出されたものであり、その目的は、画像形成システムにおいて、画像形成装置間でのゲストＯＳの移動を適切なタイミングで実行することである。
【課題を解決するための手段】
【０００８】
本開示のある局面に従うと、画像形成手段と、画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）、および、サーバープログラムを実行するためのゲストＯＳを実行するように構成された制御手段と、ネットワークを介して他の画像形成装置と通信するように構成された通信手段と、補助記憶装置とを備えた画像形成装置が提供される。制御手段は、画像形成手段によって出力するデータを補助記憶装置に退避させ、補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、画像形成手段による補助記憶装置に退避させたデータの画像形成動作が予測され得る条件が満たされたことに応じて、ゲストＯＳを他の画像形成装置へ移動させるように構成されている。
【０００９】
好ましくは、画像形成手段による画像形成動作が予測され得る条件は、画像形成装置の状態に関する条件であり、制御手段は、画像形成装置の状態について、条件が満たされたか否かを判断するように構成されている。
【００１０】
好ましくは、画像形成装置の状態は、画像形成装置を構成する部材の位置の変更に従って変更され、制御手段は、部材の位置の変更を検出することにより、条件が満たされたか否かを判断するように構成されている。
【００１１】
好ましくは、部材は、消耗品を収納するドアであり、制御手段は、消耗品が消耗している場合であってドアが開閉されたことを検出した場合に、条件が満たされたと判断するように構成されている。
【００１２】
好ましくは、部材は、画像形成手段によって搬送される用紙のジャムを解消するために開閉されるドアであり、制御手段は、ドアが開閉されたことを検出した場合に、条件が満たされたと判断するように構成されている。画像形成装置の状態に関する条件は、画像形成手段による画像形成のモードに関する条件を含む。
【００１３】
好ましくは、制御手段は、ユーザーのログインを条件として画像を形成するモードに利用されるデータが補助記憶装置に格納され、かつ、当該ユーザーがログインした場合に、条件が満たされたと判断するように構成されている。
【００１４】
好ましくは、制御手段は、モードが小冊子印刷であって当該モードにおいて所定枚数以上の原稿の画像が読み込まれた場合に、条件が満たされていると判断するように構成されている。
【００１５】
好ましくは、通信手段は、複数の他の画像形成装置と通信可能であり、制御手段は、条件が満たされたことに応じて、複数の他の画像形成装置のそれぞれについて、高負荷状態が予測される時間の長さである高負荷時間を算出し、高負荷時間が最も短い他の画像形成装置にゲストＯＳを移動させるように構成されている。
【００１６】
好ましくは、制御手段は、条件が満たされたことに応じて、補助記憶装置に退避されたデータの量に基づいて、補助記憶装置に退避させたデータの画像形成動作によって制御手段が高負荷状態になることが予測される時間の長さを算出し、算出された時間の長さが、全ての複数の他の画像形成装置の高負荷時間よりも短い場合には、ゲストＯＳの移動を回避するように構成されている。
【００１７】
好ましくは、制御手段は、ゲストＯＳの種類に基づいて基準値を設定するように構成されている。
【００１８】
好ましくは、ゲストＯＳの移動は、仮想マシンのレジスターおよびメモリーのデータの転送ならびに補助記憶装置に退避された仮想メモリーデータの転送を含む。
【００１９】
本開示の他の局面に従うと、第１および第２の画像形成装置を含む画像形成システムが提供される。画像形成システムは、第１の画像形成装置は、画像形成手段と、画像形成手段を制御するためのホストＯＳ（オペレーティングシステム）、および、サーバープログラムを実行するためのゲストＯＳを実行するように構成された制御手段と、ネットワークを介して第２の画像形成装置と通信するように構成された通信手段と、補助記憶装置とを含む。制御手段は、画像形成手段によって出力するデータを補助記憶装置に退避するように構成されており、補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、画像形成手段による補助記憶装置に退避させたデータの画像形成動作が予測され得る条件が満たされたことに応じて、ゲストＯＳを第２の画像形成装置へ移動させるように構成されている。
【００２０】
本開示のさらに他の局面に従うと、画像形成手段および補助記憶装置を備えた画像形成装置を制御する方法が提供される。制御方法は、画像形成手段によって出力するデータを補助記憶装置に退避するステップと、補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、画像形成手段による補助記憶装置に退避させたデータの画像形成動作の開始が予測され得る条件が満たされたことに応じて、ゲストＯＳを他の画像形成装置へ移動させるステップとを備える。
【００２１】
画像形成手段および補助記憶装置を備えた画像形成装置のコンピューターによって実行されるプログラムが提供される。プログラムは、コンピューターに、画像形成手段によって出力するデータを補助記憶装置に退避するステップと、補助記憶装置に退避させたデータのサイズが予め定められた基準値を超え、かつ、画像形成手段による補助記憶装置に退避させたデータの画像形成動作の開始が予測され得る条件が満たされたことに応じて、ゲストＯＳを他の画像形成装置へ移動させるステップとを実行させる。
【発明の効果】
【００２２】
本開示によれば、画像形成装置の制御手段は、補助記憶装置に退避させたデータのサイズが予め定められた値を超え、かつ、画像形成手段による画像形成動作が予測され得る条件が満たされたことに応じて、ホストＯＳを他の画像形成装置へ移動させる。これにより、制御手段は、ホストＯＳの実行に差支えない状態では極力ホストＯＳを実行しつつ、画像形成動作の実行による高負荷が発生する前に他の画像形成装置へホストＯＳを移動させる。
【図面の簡単な説明】
【００２３】
【図１】画像形成システムの構成の一例を示す図である。
【図２】ＭＦＰの外観の具体例を示す図である。
【図３】ＭＦＰのハードウェア構成の具体例を示す図である。
【図４】ＭＦＰにおける画像データ入出力処理を説明するための図である。
【図５】ＭＦＰのソフトウェア構成を示す図である。
【図６】ＭＦＰＢの画像形成部の画像形成動作が予測され得る条件を設定するための情報（条件リスト）の一例である。
【図７】ゲストＯＳを実行しているＣＰＵ１０が、当該ゲストＯＳの移動のために実行する処理のフローチャートである。
【図８】条件リストの他の例を示す図である。
【図９】図８の条件リストを利用するゲストＯＳの移動の処理のフローチャートである。
【図１０】ゲストＯＳの始動時にＣＰＵ１０が実行する処理の一例のフローチャートである。
【図１１】基準値設定用テーブルの一例を示す図である。
【図１２】図７の処理の変形例の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下に、図面を参照しつつ、画像形成システムの実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２５】
［１．システムの概要］
図１は、画像形成システムの構成の一例を示す図である。図１には、画像形成システム１の３つの状態（状態１〜状態３）が示されている。本開示の画像形成システム１は、３台のＭＦＰ１００Ａ，１００Ｂ，１００Ｃを含む。ＭＦＰ１００Ａ〜１００Ｃのそれぞれは、画像形成装置の一例である。
【００２６】
ＭＦＰ１００Ａ〜１００Ｃのそれぞれには、コピー動作等を実行する画像形成部を制御するためのホストＯＳ１０１Ａ〜１００Ｃのそれぞれがインストールされており、補助記憶装置の一例であるＨＤＤ（ハードディスクドライブ）１６Ａ〜１６Ｃが備えられている。
【００２７】
ＭＦＰ１００Ａ〜１００Ｃのいずれかは、ゲストＯＳ１００Ｘを実行する。ゲストＯＳ１００Ｘは、画像形成システム１において、ＭＦＰ１００Ａ〜１００Ｃの間で移動する。図１の状態１では、ゲストＯＳ１００Ｘは、ＭＦＰ１００Ｂにおいて実行される。ゲストＯＳ１００Ｘの一例は、認証サーバー機能を実現するためのＯＳである。
【００２８】
状態１では、ユーザーＵは、ＭＦＰ１００Ａに対してログインのための操作を実行する。これに応じて、ＭＦＰ１００Ａは、ＭＦＰ１００ＢにユーザーＵの認証を要求する。ＭＦＰ１００Ｂは、ＭＦＰ１００Ａに、当該要求に対して応答を送信する。ＭＦＰ１００Ｂは、ユーザーＵのユーザー情報をユーザーＤＢにおいて照合する。照合が成功すれば、ユーザーＵは、ＭＦＰ１００Ａを使用できる。
【００２９】
ＭＦＰ１００Ｂは、当該ＭＦＰ１００Ｂにおいて、ＨＤＤ１６Ｂに退避させたデータのサイズが予め定められた基準値を超え、さらに、当該ＭＦＰ１００Ｂの画像形成部の画像形成動作が予測され得る条件が成立すると、画像形成システム１内の他のＭＦＰ（すなわち、ＭＦＰ１００ＡまたはＭＦＰ１００Ｃ）にゲストＯＳ１００Ｘを移動させる。当該条件の一例は、ユーザーが給紙トレイを開けたことである。当該給紙トレイが閉じられると、画像形成部による画像形成動作が開始される可能性が高い。すなわち、上記条件が成立することは、一例では、ＭＦＰ１００ＢがＨＤＤ１６Ｂに退避されているデータの画像形成動作を開始する一歩手前の状態にあることを意味すると言える。
【００３０】
図１の状態２は、ゲストＯＳ１００ＸのＭＦＰ１００ＢからＭＦＰ１００Ｃへの移動を示す。画像形成システム１では、ＭＦＰ１００Ａ，１００Ｂ，１００Ｃにおいて、種々の情報が共有される。共有される情報は、どのＭＦＰがゲストＯＳ１００Ｘを実行しているかを特定する情報を含む。共有される情報は、ユーザーＤＢ（データベース）を含む。ＭＦＰ１００Ａ，１００Ｂ，１００Ｃは、ユーザーＤＢ等の情報を同期処理によって逐次共有する。これにより、ユーザーＤＢにおけるユーザーの追加および削除は、ＭＦＰ１００Ａ，１００Ｂ，１００Ｃの間で、逐次的に共有される。
【００３１】
ＭＦＰ１００Ａ，１００Ｂ，１００Ｃの間では、さらに、どのＭＦＰ１００がゲストＯＳ１００Ｘを実行しているかを示す情報も共有される。図１の状態３として示されるように、ゲストＯＳ１００ＸがＭＦＰ１００Ｃへと移動すると、ＭＦＰ１００Ａは、ユーザーＵからのログイン操作に応じて、ＭＦＰ１００Ｃに対してユーザーの認証を要求する。これに応じて、ＭＦＰ１００Ｃは、ＭＦＰ１００Ａに対して、当該要求に対する応答を送信する。
【００３２】
［２．ハードウェア構成］
以下、ＭＦＰ１００Ａ、ＭＦＰ１００Ｂ、および、ＭＦＰ１００Ｃにおいて共通する部分の説明においては、ＭＦＰ１００Ａ、ＭＦＰ１００Ｂ、および、ＭＦＰ１００Ｃを「ＭＦＰ１００」として記述する。
【００３３】
図２は、ＭＦＰ１００の外観の具体例を示す図である。図２に示されるように、ＭＦＰ１００は、操作パネル１５を含む。ＭＦＰ１００は、さらに、プリンター、ファクシミリ送受信機、または、コピー機の機能を実現するための要素（後述するプリンター１４等）を備え、さらに、当該要素に供給される用紙を収容するための１つまたは２つ以上の用紙トレイを含む。
【００３４】
図３は、ＭＦＰ１００のハードウェア構成の具体例を示す図である。図３に示されるように、ＭＦＰ１００は、全体を制御するための演算装置の一例であるＣＰＵ（Central  Processing  Unit）１０を含む。
【００３５】
ＭＦＰ１００は、さらに、ＣＰＵ１０で実行されるプログラムなどを記憶するためのＲＯＭ（Read  Only  Memory）１１、ＣＰＵ１０でプログラムを実行する際の作業領域として機能するためのＲＡＭ（Random  Access  Memory）１２、図示しない原稿台に載置された原稿を光学的に読み取って画像データを得るためのスキャナー１３と、画像データを印刷用紙上に固定するためのプリンター１４と、情報を表示したり当該ＭＦＰ１００に対する操作入力を受け付けたりするためのタッチパネルを含んだ操作パネル１５と、画像データなどを保存するためのＨＤ（ハードディスク）を含むＨＤＤ１６と、ネットワークを介した通信の制御するためのネットワークコントローラー１７とを含む。ネットワークコントローラー１７は、たとえばネットワークインターフェースカード（ＮＩＣ）によって実現される。
【００３６】
ＣＰＵ１０によって実行されるプログラムは、ＲＯＭ１１に格納されている以外に、ネットワーク上の記憶装置に格納されている場合もあり得、また、ネットワーク上からダウンロードされてＨＤＤ１６にインストールされる場合もあり得、さらに、ＭＦＰ１００に対して着脱可能な記録媒体に格納されている場合もあり得る。
【００３７】
プリンター１４は、画像形成部の一例である。
さらに、プリンター１４は、複数の用紙トレイのそれぞれを開閉するためのドアについて、当該ドアが開けられたことを検出するためのセンサーを含む。上記ドアは、画像形成装置を構成する部材の一例である。用紙は、画像形成装置の画像形成動作に利用される消耗品の一例である。各センサーは、上記部材（ドア）の位置の変更を検出することができ、それぞれの検出出力をＣＰＵ１０へ出力する。これにより、ＣＰＵ１０は、各ドアが開けられたことを検出する。
【００３８】
また、プリンター１４は、用紙の搬送経路を開閉するための単数または複数のドアのそれぞれについて、当該ドアが開けられたことを検出するためのセンサーを含む。上記の単数または複数のドアは、画像形成装置を構成する部材の他の例である。各センサーは、上記部材（ドア）の位置の変更を検出することができ、それぞれの検出出力をＣＰＵ１０へ出力する。これにより、ＣＰＵ１０は、各ドアが開けられたことを検出する。上記の単数または複数のドアは、画像形成装置におけるジャムを解消するために開閉されるためのドアの一例である。
【００３９】
また、プリンター１４は、トナーを収納するためのスペースを開閉するためのドアについて、当該ドアが開けられたことを検出するためのセンサーを含む。上記ドアは、画像形成装置を構成する部材のさらに他の例である。トナーは、画像形成装置の画像形成動作に利用される消耗品のさらに他の例である。各センサーは、上記部材（ドア）の位置の変更を検出することができ、それぞれの検出出力をＣＰＵ１０へ出力する。これにより、ＣＰＵ１０は、各ドアが開けられたことを検出する。
【００４０】
［３．画像データの入出力処理］
図４は、ＭＦＰ１００における画像データ入出力処理を説明するための図である。図４には、ＭＦＰ１００のファイルメモリー１２０が示される。ファイルメモリー１２０は、たとえば、ＲＡＭ１２（図３参照）において論理的に設定される。
【００４１】
ＣＰＵ１０（図３参照）は、コピーのとき、スキャンされた原稿のデータを、入力画像としてファイルメモリー１２０に格納する。そして、ＣＰＵ１０は、ファイルメモリー１２０に格納されたデータを、印刷のための出力画像として出力する。
【００４２】
画像の出力の際に用紙切れおよび／またはジャムが発生することによって、ＭＦＰ１００の出力停止状態が発生したことを想定する。このような場合、ＣＰＵ１０は、ファイルメモリー１２０に格納された入力画像をＨＤＤ１６（図３参照）に退避させることにより、ファイルメモリー１２０を解放する。これにより、次の原稿のデータが、入力画像としてファイルメモリー１２０に格納され得る。こうすることで、用紙切れやジャムが解消する前に、原稿の読み取り動作だけは完了し得る。読み取りが完了したデータが、用紙切れおよび／またはジャムが発生していないトレイを用いて出力できる場合には、当該データの印刷ジョブが、用紙切れやジャムの発生のために中断しているジョブに先行して実行され得る。
【００４３】
ＨＤＤ１６に退避されたデータの印刷は、停止要因（用紙切れおよび／またはジャム）が解除され次第実行される。ＨＤＤ１６に大量のデータが退避されている場合、停止要因の解除によりＣＰＵ１０が当該大量のデータを処理することになる。したがって、ＣＰＵ１０の負荷が高くなる状態が想定される。
【００４４】
本実施の形態では、ゲストＯＳが実行されているＭＦＰ１００において、ＨＤＤ１６に大量のデータが退避され、さらに、上記停止要因の解除の前段階を示す条件（給紙トレイが開けられた）が満たされると、ＣＰＵ１０は、他のＭＦＰ１００へとゲストＯＳを移動させる。これにより、ＣＰＵ１０は、当該ＣＰＵ１０の負荷が高くなる前に、他のＭＦＰ１００へとゲストＯＳを移動させることができる。
【００４５】
［４．ソフトウェア構成］
図５は、ＭＦＰ１００のソフトウェア構成を示す図である。図５では、図３に示されたハードウェア要素（ＣＰＵ１０、スキャナー１３、プリンター１４、ＨＤＤ１６、等）が、ハードウェア１１０として示されている。ホストＯＳ１０１、ＭＦＰ制御プログラム１０２、仮想マシンプログラム１０３、および、ゲストＯＳ１００Ｘは、ＣＰＵ１０によって実行される。
【００４６】
図５に示されるように、ＭＦＰ１００では、ホストＯＳ１０１上に、ＭＦＰ１００を制御するためのプログラム（ＭＦＰ制御プログラム１０２）と、仮想マシンとして動作するためのプログラム（仮想マシンプログラム１０３）とが動作する。
【００４７】
ＭＦＰ１００は、仮想マシンプログラム１０３上でゲストＯＳ１００Ｘが動作し、さらにゲストＯＳに各種のサーバープログラムがインストールされることによって、サーバーとして動作する。
【００４８】
［５．条件リスト］
図６は、ＭＦＰ１００Ｂの画像形成部の画像形成動作が予測され得る条件を設定するための情報（条件リスト）の一例である。図６では、ＭＦＰ１００の各状態に出力開始予測動作が関連付けられている。たとえば、「用紙切れ：トレイ１」は、「トレイ１」として特定される用紙トレイにおいて用紙切れが発生している状態を示す。「トレイ１オープン」は、「トレイ１」として特定される用紙トレイを開閉するためのドアがオープンするという動作を示す。すなわち、状態「用紙切れ：トレイ１」が発生しているときに、「トレイ１」のドアがオープンされるという動作が発生すると、ＣＰＵ１０は、上記条件が満たされたと判断する。
【００４９】
たとえば、「用紙切れ：トレイ２」は、「トレイ２」として特定される用紙トレイにおいて用紙切れが発生している状態を示す。「トレイ２オープン」は、「トレイ２」として特定される用紙トレイを開閉するためのドアがオープンするという動作を示す。すなわち、状態「用紙切れ：トレイ２」が発生しているときに、「トレイ２」のドアがオープンされるという動作が発生すると、ＣＰＵ１０は、上記条件が満たされたと判断する。
【００５０】
たとえば、「ジャム発生：Ｎｏ．１」は、プリンター１４の用紙搬送経路においてＮｏ．１のドアに対応する部分でジャムが発生している状態を示す。「前ドアオープン」は、上記Ｎｏ．１のドアがオープンするという動作を示す。すなわち、状態「ジャム発生：Ｎｏ．１」が発生しているときに、上記Ｎｏ．１のドアがオープンされるという動作が発生すると、ＣＰＵ１０は、上記条件が満たされたと判断する。
【００５１】
たとえば、「トナー切れ」は、プリンター１４においてトナーが切れた状態を示す。「トナードアオープン」は、トナーを収容するスペースを開閉するためのドア（トナードア）がオープンするという動作を示す。すなわち、状態「トナー切れ」が発生しているときに、トナードアがオープンされるという動作が発生すると、ＣＰＵ１０は、上記条件が満たされたと判断する。
【００５２】
たとえば、「認証＆プリント保持：ユーザーＡ」は、ユーザーＡについてのメニュー「認証＆プリント」のためのデータがＨＤＤ１６に退避している状態を示す。「ユーザーＡログイン開始」は、画像形成システム１上のいずれかのＭＦＰ１００（ＭＦＰ１００Ａ、ＭＦＰ１００Ｂ、または、ＭＦＰ１００Ｃ）が、上記ユーザーＡからログインの要求を受け付けたという動作を示す。すなわち、状態「認証＆プリント保持：ユーザーＡ」が発生しているときに、いずれかのＭＦＰ１００においてユーザーＡのログインの要求が受け付けられると、ＣＰＵ１０は、上記条件が満たされたと判断する。
【００５３】
メニュー「認証＆プリント」は、原稿のデータをユーザーと関連付けてＭＦＰ１００に登録した後、上記データが関連付けられたユーザーが当該ＭＦＰ１００にログインしたことを条件として上記データの画像をプリントする、メニューである。当該メニューは、ユーザーのログインを条件として画像を形成するモードの一例である。
【００５４】
［６．処理の流れ］
図７は、ゲストＯＳ１００Ｘを実行しているＣＰＵ１０が、ゲストＯＳ１００Ｘの移動のために実行する処理のフローチャートである。図７の処理は、たとえばホストＯＳ１０１の一部として実行されてもよいし、ゲストＯＳの一部として実行されてもよい。
【００５５】
図７に示されるように、ステップＳ１００で、ＣＰＵ１０は、ＭＦＰ１００の状態変化を検出したか否かを判定する。状態変化の有無の検出は、たとえば、定期的にＭＦＰ１００の状態を監視することによって、または、ユーザー操作やネットワークなど外部からのアクションの有無を検出することによって、実現される。ＣＰＵ１０は、ＭＦＰ１００の状態の変化を検出するまで、ステップＳ１００に制御を留める。ＣＰＵ１０は、ＭＦＰ１００の状態の変化を検出すると、ステップＳ１１０へ制御を進める。
【００５６】
ステップＳ１１０で、ＣＰＵ１０は、条件リスト（図６参照）を参照することにより、出力開始予測条件を設定する。より具体的には、ＣＰＵ１０は、ステップＳ１１０で、ステップＳ１１０で検出された変化後の状態に対して条件リストにおいて関連付けられた「出力開始予測動作」を、出力開始予測条件として設定する。たとえば、ステップＳ１００で検出された変化後の状態が「用紙切れ：トレイ１」である場合、ＣＰＵ１０は、ステップＳ１１０で、「トレイ１オープン」を出力開始予測条件として設定する。その後、制御はステップＳ１２０へ進む。
【００５７】
ステップＳ１２０で、ＣＰＵ１０は、ＨＤＤ１６に退避されている画像データのサイズが基準値を超えているか否かを判断する。ＨＤＤ１６への画像データの退避は、たとえば、図４を参照して説明された態様で実現される。基準値は、たとえば、予め定められ、ＨＤＤ１６に格納される。ＣＰＵ１０は、当該データのサイズが基準値以下であると判断すると、ステップＳ１００へ制御を戻す。ＣＰＵ１０は、当該データのサイズが基準値を超えていると判断すると、ステップＳ１３０へ制御を進める。
【００５８】
ステップＳ１３０で、ＣＰＵ１０は、出力開始予測条件が成立したか否かを判断する。ＣＰＵ１０は、ステップＳ１１０で出力開始予測条件として設定された出力開始予測動作が発生すれば、出力開始予測条件が成立したと判断する。ＣＰＵ１０は、当該動作が発生していなければ、出力開始予測条件が成立していないと判断する。ＣＰＵ１０は、出力開始予測条件が成立していないと判断するとステップＳ１２０へ制御を戻し、出力開始予測条件が成立したと判断するとステップＳ１４０へ制御を進める。
【００５９】
ステップＳ１４０で、ＣＰＵ１０は、画像形成システム１内の他のＭＦＰ１００のそれぞれについて「高負荷時間」を算出する。高負荷時間は、たとえば、各ＭＦＰ１００における、ＨＤＤ１６に退避されたデータ量を処理するのに予測される時間である。ＣＰＵ１０は、たとえば、他のＭＦＰ１００のそれぞれからＨＤＤ１６に退避されたデータの量（サイズ）を取得し、当該データの量と単位時間当たりのデータ処理量についての設定値とに基づいて、各ＭＦＰ１００の「高負荷時間」を算出する。すなわち、一例では、「高負荷時間」は、各ＭＦＰ１００がそれぞれのＨＤＤ１６に退避されているデータを処理するのに必要とすることが予測される時間である。
【００６０】
ＣＰＵ１０は、他のＭＦＰ１００のそれぞれに、それぞれのＭＦＰ１００の「高負荷時間」の算出を要求することによって、各ＭＦＰ１００から「高負荷時間」を取得してもよい。
【００６１】
ＣＰＵ１０は、画像形成システム１内の他のＭＦＰ１００のうち最も「高負荷時間」が短いものを特定し、特定されたＭＦＰ１００をゲストＯＳ１００Ｘの移動先として選択する。その後、制御はステップＳ１５０へ進む。
【００６２】
ステップＳ１５０で、ＣＰＵ１０は、ステップＳ１４０で選択されたＭＦＰ１００へのゲストＯＳ１００Ｘの移動を実行する。より具体的には、ＣＰＵ１０は、ゲストＯＳ１００Ｘの動作状態データを保持し、当該動作状態データを、移動先のＭＦＰ１００に転送する。その後、図７の処理は終了する。動作状態データは、仮想マシンのレジスターおよびメモリーのデータ、ならびに、ＨＤＤ１６に退避された仮想メモリーデータを含む。
【００６３】
画像形成システム１では、ステップＳ１５０として説明されたような動作状態データのデータ転送の完了後、転送先のＭＦＰ１００において仮想マシンへの動作状態データの読み込みが完了されると、当該転送先のＭＦＰ１００においてゲストＯＳ１００Ｘが再稼動される。
【００６４】
図７の処理において、ステップＳ１４０の制御により、他の画像形成装置のそれぞれについて、高負荷状態が予測される時間の長さである高負荷時間が算出される。さらに、ステップＳ１５０の制御により、他に画像形成装置のうち高負荷時間が最も短いものへとゲストＯＳ１００Ｘが移動される。
【００６５】
図７の処理では、ステップＳ１５０でゲストＯＳ１００Ｘが移動される。ゲストＯＳ１００Ｘの移動は、上記動作状態データの転送を含む。動作状態データは、一時的にＨＤＤ１６に保持された後で転送されてもよい。なお、画像形成システム１におけるゲストＯＳ１００Ｘの移動態様は、上記のように説明された態様に限定されず、公知のゲストＯＳの移動方法に置換されてもよい。
【００６６】
［７．処理のまとめ］
以上説明された図７の処理では、ＣＰＵ１０の負荷が所定値を超える状況が予測され、当該状況の発生に対して前もってゲストＯＳ１００Ｘが移動される。
【００６７】
すなわち、ＭＦＰ１００は、たとえば用紙切れやジャム発生により画像形成動作が停止されている状況下で、スキャナー１３による原稿の読み取りを実施される場合がある。このような場合、読み取られた画像のデータは、ＨＤＤ１６に蓄積（退避）される。用紙補給および／またはジャムの解消により画像形成動作の停止状態が解除されると、ＨＤＤ１６にたまっていた画像が一気にＨＤＤ１６から復帰し、これにより、ＨＤＤ１６へのアクセスが集中する。ＨＤＤ１６に大量の画像データが蓄積されている場合、長時間、ＨＤＤ１６へのアクセスが続く。これにより、ＣＰＵ１０の負荷が所定値を超える状況が予測される。
【００６８】
ＣＰＵ１０は、ゲストＯＳ１００Ｘの認証サーバーとして機能している場合、上記の画像データの復帰に加えて、認証リクエストに応じたＨＤＤ１６上のＤＢ（データベース）の検索、および、ユーザー情報の照合を実行する。このとき、ホストＯＳ１０１がＨＤＤ１６を占有することによって、ゲストＯＳ１００ＸがＨＤＤ１６にアクセスできない。したがって、認証リクエストに対するリプライが遅くなってしまう。その結果、認証リクエストを出力したユーザーを待たせてしまい、画像形成システム１の利便性が低下してしまう。
【００６９】
画像形成システム１では、出力開始予測条件が成立した場合、ゲストＯＳ１００Ｘが移動される。これにより、ＣＰＵ１０の負荷が所定値を超える状況の発生に対して前もってゲストＯＳ１００Ｘが移動される。
【００７０】
ゲストＯＳ１００Ｘの停止時間を短くする必要がある。この点、ＭＦＰ１００における画像形成動作の停止状態では、出力動作が実施されないため、ホストＯＳ１０１によるＨＤＤ１６へのアクセスが低減する（入力画像のＨＤＤ１６への退避は発生し得るが、一時的なものであり、長時間のＨＤＤ１６へのアクセスを要しない）。これによって、ゲストＯＳ１００ＸのＨＤＤ１６の使用がホストＯＳ１０１によって邪魔されることがない。これにより、ゲストＯＳ１００Ｘのパフォーマンスが向上する。すなわち、ＭＦＰ１００における画像形成動作の停止状態は、ゲストＯＳ１００Ｘのサービス提供としては好ましい状態である。このため、停止状態が解除されるまでは、ＣＰＵ１０は、最大限、ゲストＯＳ１００Ｘを動作することが望ましい。
【００７１】
本開示の画像形成システム１では、ＭＦＰ１００の画像形成動作の停止状態において、ＨＤＤ１６に退避された画像データのサイズが基準値を超え、かつ、出力開始予測条件の成立を条件として、ゲストＯＳ１００Ｘを移動する。これにより、移動実行時のゲストＯＳ１００Ｘの停止時間を短くするとともに、ゲストＯＳ１００Ｘによるリソースの使用が最適化される。したがって、ゲストＯＳ１００Ｘによるサービスを向上させることができる。
【００７２】
さらに、画像形成システム１において、ＣＰＵ１０は、認証＆プリントの動作モードにおいて読み込まれた画像データがＨＤＤ１６に退避され、退避されたデータのサイズが基準値を超え（ステップＳ１２０でＹＥＳ）、さらに、認証＆プリントのデータに関連付けられているユーザーのログイン要求が検出された場合（ステップＳ１３０でＹＥＳ）、ゲストＯＳ１００Ｘを他のＭＦＰ１００に移動させることがあり得る。
【００７３】
図８は、条件リストの他の例を示す図である。図８に示された条件リストは、動作モードと出力開始予測動作とを関連付ける。動作モードの一例は、「小冊子印刷」である。動作モード「小冊子印刷」は、複数ページの画像を小冊子として印刷するためのモードであり、たとえば、用紙片面につき２ページを割り当てて両面印刷するためのモードである。出力開始予測動作の一例は、「所定枚数読み込み」である。「所定枚数」は、予め定められた原稿の枚数であり、たとえば「１０枚」である。図９は、図８の条件リストを利用するゲストＯＳの移動の処理のフローチャートである。
【００７４】
図９の処理は、図７の処理のステップＳ１００の代わりに、ステップＳ１０１の制御を含む。ステップＳ１０１で、ＣＰＵ１０は、ＭＦＰ１００の動作モードが条件リストに登録されている「動作モード」のいずれかであるか否かを判断する。ＣＰＵ１０は、ＭＦＰ１００の動作モードが条件リストに登録されている「動作モード」のいずれかであると判断すると、ステップＳ１１０へ制御を進める。ＣＰＵ１０は、ＭＦＰ１００の動作モードが条件リストに登録されている「動作モード」のいずれにでもない場合には、制御をステップＳ１０１に留める。
【００７５】
ステップＳ１１０で、ＣＰＵ１０は、条件リストにおいてＭＦＰ１００の動作モードと関連付けられている「出力開始予測動作」を出力開始予測条件として設定する。その後、制御はステップＳ１２０へ進む。ＣＰＵ１０は、ステップＳ１２０以降の制御を図７を参照して説明されたのと同様に実行する。
【００７６】
図８および図９を参照して説明された例において、たとえば、ＭＦＰ１００が「小冊子印刷」モードで動作し、ＨＤＤ１６に退避されたデータの量が上記基準値を超え、さらに、小冊子印刷モードにおいて読み込まれた原稿の枚数が条件リストに登録されている「所定枚数」に到達した場合には、ＣＰＵ１０は、ゲストＯＳを他のＭＦＰ１００へと移動させる。図８および図９を参照して説明された例によれば、ゲストＯＳ１００Ｘは、ＭＦＰ１００において小冊子印刷モードによる出力動作の開始前に、移動される。これにより、ゲストＯＳの移動に要する時間が短縮され得る。
【００７７】
［８．ゲストＯＳの種類に従った基準値の設定］
画像形成システム１において、図７のステップＳ１２０等において利用される「基準値」は、予め定められていてもよいし、ゲストＯＳの種類に従った値に設定されてもよい。図１０は、ゲストＯＳの始動時にＣＰＵ１０が実行する処理の一例のフローチャートである。
【００７８】
図１０を参照して、ステップＳ１０で、ＣＰＵ１０は、ゲストＯＳの種類を特定した後、基準値設定用テーブルから当該ゲストＯＳの種類に対応する基準値を読み出す。基準値設定用テーブルについて説明する。図１１は、基準値設定用テーブルの一例を示す図である。基準値設定用テーブルは、たとえばＨＤＤ１６に格納される。
【００７９】
図１１に示された例では、基準値設定用テーブルは、２種類のゲストＯＳ（サーバープログラム）の種類のそれぞれについて、許容時間および基準値を関連付ける。
【００８０】
ゲストＯＳの種類の一例は、「認証」である。他の例は、「ファイル共有」である。
許容時間とは、たとえば、クライアントへのリプライに要するのに許容される時間である。図１１の例では、ゲストＯＳが認証サーバー用のＯＳである場合、許容時間は１０秒である。ゲストＯＳがファイル共有サーバー用のＯＳである場合、許容時間は２０秒である。すなわち、図１１の例は、ゲストＯＳを実行するＭＦＰ１００が、認証サーバーとして機能する場合には、ファイル共有サーバーとして機能する場合よりも、速くリプライすることが要求されることを示している。
【００８１】
基準値は、許容時間に基づいて設定される。たとえば、基準値は、ＨＤＤ１６の予め定められたデータ転送速度の設定値（図１１の例では、１００ＭＢ／ｓ）で上記許容時間内に転送され得るデータの量である。許容時間が１０秒間に設定されている場合、基準値は、１００ＭＢ／ｓの転送速度で１０秒間に転送され得るデータ量「１０００ＭＢ」である。データ転送速度の設定値は、ＭＦＰ１００ごとに変更され得る。たとえば、Ａ４原稿１ページあたりのデータサイズは２０ＭＢ程度であるため、認証サーバーについての基準値（１，０００ＭＢ）は、５０ページ分のデータが退避された状態を示す。
【００８２】
基準値設定用テーブルは、ゲストＯＳの種類と基準値とを関連付ける情報の一例である。これらを関連付ける情報の形式は、図１１に示されたテーブル形式に限定されない。
【００８３】
図１０に戻って、ステップＳ１０でゲストＯＳの種類に対応する基準値を読み出した後、ＣＰＵ１０は、ステップＳ２０へ制御を進める。
【００８４】
ステップＳ２０で、ＣＰＵ１０は、ステップＳ１０で読み出した基準値を、図７等の処理に利用される基準値として設定する。その後、図１０の処理は終了する。
【００８５】
以上、図１０および図１１を参照して説明された処理によれば、図７等の処理に利用される基準値が、ゲストＯＳの種類に従って設定される。これにより、ＭＦＰ１００のゲストＯＳとしての機能に応じたタイミングでのリプライを確保しつつ、適切なタイミングで、ゲストＯＳが移動され得る。ゲストＯＳを実行するＭＦＰ１００がファイル共有サーバーとして機能する場合、認証サーバーとして機能する場合よりほど短時間で処理（リプライ）が完了しなくともユーザーの利便性が損なわれないと考えられる。このため、図１１に示される例では、認証サーバーについての許容時間が１０秒と設定されているのに対し、ファイル共有サーバーについての許容時間は２０秒と設定されている。
【００８６】
ゲストＯＳを実行しているＣＰＵ１０は、特定の状況では、ＨＤＤ１６に退避されているデータが基準値を超え、予め定められた条件が成立した場合であっても、他のＭＦＰ１００にゲストＯＳを移動させない場合もあり得る。図１２は、図７の処理の変形例の処理の一例を示すフローチャートである。
【００８７】
図１２の処理は、図７の処理と比較して、さらにステップＳ１４２の制御を含む。
図１２を参照して、ＣＰＵ１０は、ステップＳ１４０で、画像形成システム１内の他のＭＦＰ１００のそれぞれについて「高負荷時間」を算出（取得）した後、ステップＳ１４２へ制御を進める。
【００８８】
ステップＳ１４２で、ＣＰＵ１０は、当該ＣＰＵ１０が搭載されているＭＦＰ１００の高負荷時間と、他のＭＦＰ１００のそれぞれの「高負荷時間」とを比較することにより、ゲストＯＳ１００Ｘの移動が可能であるか否かを判断する。より具体的には、ＣＰＵ１０は、他のＭＦＰ１００の「高負荷時間」のうち少なくとも１つが当該ＣＰＵ１０が搭載されているＭＦＰ１００の「高負荷時間」より短い場合には、ゲストＯＳ１００Ｘの移動が可能であると判断して、ステップＳ１２０へ制御を戻す。ＣＰＵ１０は、すべての他のＭＦＰ１００の「高負荷時間」が当該ＣＰＵ１０が搭載されているＭＦＰ１００の「高負荷時間」以上である場合には、ゲストＯＳ１００Ｘの移動ができないと判断して、ステップＳ１５０へ制御を進める。
【００８９】
図１２の処理によれば、ゲストＯＳ１００Ｘが実行されているＭＦＰ１００においてＣＰＵ１０の負荷が高くなる事態の発生が予測される場合であっても、画像形成システム１内の他のＭＦＰ１００において同様の事態の発生が予測される場合には、ゲストＯＳ１００Ｘの移動は回避される。
【００９０】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【００９１】
１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  スキャナー、１４  プリンター、１５  操作パネル、１７  ネットワークコントローラー、１００  ＭＦＰ、１００Ｘ  ゲストＯＳ、１０１，１０１Ａ〜１０１Ｃ  ホストＯＳ、１０２  制御プログラム、１０３  仮想マシンプログラム、１１０  ハードウェア、１２０  ファイルメモリー。
【図１】
2018032310.tif 000003
【図２】
2018032310.tif 000004
【図３】
2018032310.tif 000005
【図４】
2018032310.tif 000006
【図５】
2018032310.tif 000007
【図６】
2018032310.tif 000008
【図７】
2018032310.tif 000009
【図８】
2018032310.tif 000010
【図９】
2018032310.tif 000011
【図１０】
2018032310.tif 000012
【図１１】
2018032310.tif 000013
【図１２】
2018032310.tif 000014