(57)【要約】【課題】外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測する。【解決手段】状態予測装置は、稼働中の情報処理装置をシミュレートするシミュレート部２５１と、シミュレート部２５１が情報処理装置をシミュレートする仮想装置に、情報処理装置が外部装置から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷を情報処理装置の負荷よりも増大させる負荷増大部２６７と、負荷増大部２５７により負荷が増大された仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定部２６３と、を備える。【選択図】図７
2018206245.tif 000002
【特許請求の範囲】
【請求項１】
稼働中の情報処理装置をシミュレートするシミュレート手段と、
前記シミュレート手段が前記情報処理装置をシミュレートする仮想装置に、前記情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより前記仮想装置の負荷を前記情報処理装置の負荷よりも増大させる負荷増大手段と、
前記負荷増大手段により負荷が増大された前記仮想装置の動作状態が前記情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定手段と、を備えた状態予測装置。
【請求項２】
前記情報処理装置が外部から受信するデータのうちから前記情報処理装置の負荷の増大が予測される対象データを特定するデータ特定手段を、さらに備え、
前記負荷増大手段は、前記対象データのデータ量を増大したデータを前記仮想装置に処理させる、請求項１に記載の状態予測装置。
【請求項３】
前記情報処理装置は、自装置が実行する１以上の処理ごとに前記情報処理装置の負荷を示す実パラメータを取得する実パラメータ取得手段と、
前記実パラメータ取得手段により取得される前記実パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部から受信されたデータを前記対象データに特定する対象データ特定手段と、を備えた、請求項２に記載の状態予測装置。
【請求項４】
前記シミュレート手段は、前記対象データが特定されることに応じて、前記情報処理装置をシミュレートする、請求項３に記載の状態予測装置。
【請求項５】
前記実パラメータは、前記情報処理装置が備える中央演算装置の使用率である、請求項３または４に記載の状態予測装置。
【請求項６】
前記仮想装置が実行する１以上の処理ごとに前記仮想装置の負荷を示す仮想パラメータを取得する仮想パラメータ取得手段をさらに備え、
前記データ特定手段は、前記シミュレート手段が、前記情報処理装置が実行中の複数の処理のすべてを実行する前記情報処理装置をシミュレートする状態で、前記仮想パラメータ取得手段により取得される前記仮想パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部から受信されたデータを前記対象データに特定する、請求項２に記載の状態予測装置。
【請求項７】
前記仮想パラメータは、前記仮想装置が備える中央演算装置の使用率である、請求項６に記載の状態予測装置。
【請求項８】
前記シミュレート手段は、前記負荷増大手段により前記対象データのデータ量が増大される場合、データ量が増大された前記対象データに対する処理のみを実行する前記情報処理装置をシミュレートする、請求項２〜７のいずれかに記載の状態予測装置。
【請求項９】
前記シミュレート手段は、前記負荷増大手段により前記対象データのデータ量が増大される場合、前記情報処理装置が実行中の複数の処理のすべてを実行する前記情報処理装置をシミュレートする、請求項２〜７のいずれかに記載の状態予測装置。
【請求項１０】
前記情報処理装置は複数であり、
前記負荷増大手段は、前記データ特定手段によって前記複数の情報処理装置の２以上それぞれで対象データが特定される場合、２以上の前記対象データで共通する部分のデータ量を増大した共通データを前記仮想装置に処理させる、請求項２〜９のいずれかに記載の状態予測装置。
【請求項１１】
前記許容条件は、前記情報処理装置が備える中央演算装置の使用率が前記情報処理装置に対して定められた値以下である条件、または、前記情報処理装置が備える中央演算装置が予め定められた処理を開始してから終了するまでの処理時間が前記情報処理装置に対して定められた値以下である条件である、請求項１〜１０のいずれかに記載の状態予測装置。
【請求項１２】
前記条件判定手段により前記仮想装置の動作状態が前記情報処理装置に予め設定された前記許容条件から外れる場合に、前記仮想装置に設定されている設定値を変更することによって、前記仮想装置の動作状態が前記許容条件を満たす設定値を決定する設定値決定手段と、
前記決定された設定値を前記情報処理装置に設定する設定手段と、をさらに備えた請求項１〜１１のいずれかに記載の状態予測装置。
【請求項１３】
前記情報処理装置は複数であり、
前記設定手段は、前記シミュレート手段が前記複数の情報処理装置のいずれかをシミュレートする仮想装置に対して、前記設定値決定手段により設定値が決定される場合、前記複数の情報処理装置それぞれに前記決定された設定値を設定する、請求項１２に記載の状態予測装置。
【請求項１４】
稼働中の情報処理装置をシミュレートするシミュレートステップと、
前記シミュレートステップにおいて前記情報処理装置をシミュレートする仮想装置に、前記情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより前記仮想装置の負荷を前記情報処理装置の負荷よりも増大させる負荷増大ステップと、
前記負荷増大ステップにおいて負荷が増大された前記仮想装置の動作状態が前記情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定ステップと、を状態予測装置に実行させる状態予測方法。
【請求項１５】
稼働中の情報処理装置をシミュレートするシミュレートステップと、
前記シミュレートステップにおいて前記情報処理装置をシミュレートする仮想装置に、前記情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより前記仮想装置の負荷を前記情報処理装置の負荷よりも増大させる負荷増大ステップと、
前記負荷増大ステップにおいて負荷が増大された前記仮想装置の動作状態が前記情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定ステップと、を状態予測装置を制御するコンピューターに実行させる状態予測プログラム。
【請求項１６】
前記情報処理装置が外部から受信するデータのうちから前記情報処理装置の負荷の増大が予測される対象データを特定するデータ特定ステップを、さらに前記コンピューターに実行させ、
前記負荷増大ステップは、前記対象データのデータ量を増大したデータを前記仮想装置に処理させるステッップを含む、請求項１５に記載の状態予測プログラム。
【請求項１７】
前記情報処理装置は複数であり、
前記負荷増大ステップは、前記データ特定ステップによって前記複数の情報処理装置の２以上それぞれで対象データが特定される場合、２以上の前記対象データで共通する部分のデータ量を増大した共通データを前記複数の情報処理装置のいずれかをシミュレートする仮想装置に処理させるステップを含む、請求項１６に記載の状態予測プログラム。
【請求項１８】
前記条件判定ステップにおいて前記仮想装置の動作状態が前記情報処理装置に予め設定された前記許容条件から外れる場合に、前記仮想装置に設定されている設定値を変更することによって、前記仮想装置の動作状態が前記許容条件を満たす設定値を決定する設定値決定ステップと、
前記決定された設定値を前記情報処理装置に設定する設定ステップと、をさらに前記コンピューターに実行させる、請求項１５〜１７のいずれかに記載の状態予測プログラム。
【請求項１９】
前記情報処理装置は複数であり、
前記設定ステップは、前記シミュレートステップにおいて前記複数の情報処理装置のいずれかをシミュレートする仮想装置に対して、前記設定値決定ステップにおいて設定値が決定される場合、前記複数の情報処理装置それぞれに前記決定された設定値を設定する、請求項１８に記載の状態予測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、状態予測装置、状態予測方法および状態予測プログラムに関し、特に、通信可能な情報処理装置をシミュレートすることにより情報処理装置の動作状態を予測する状態予測装置、その状態予測装置で実行される状態予測方法および状態予測プログラムに関する。
【背景技術】
【０００２】
例えば、特開平７−５８７６０号公報には、稼働状態にあるネットワークシステムに新たな応用手段を追加する際に、ネットワークシステムの動作を模擬するネットワークシミュレータを用いて、当該ネットワークシステムへの影響を事前に予測する方法において、稼働状態における伝送路でやりとりされている伝送フレーム列を受信時刻と共に取り込み、当該取り込んだ伝送フレーム列からネットワークシステムで使用されている通信手順により定まるコマンド・レスポンスフレームの対応関係を示す情報を基にコマンドフレームを抜き出すと共に、当該コマンドフレームに対応するレスポンスフレームを探し出し、両者の受信時刻の差を応答時間として、各ノード間でのコマンド・レスポンス応答特性情報を更新することにより、稼働状態における各ノード間でのコマンド・レスポンス応答特性のばらつきを含んだコマンド・レスポンス応答特性情報を作成し、ネットワークシミュレータにより事前予測を行なう場合に、入力する実稼働状態における伝送路の負荷データとしてコマンド・レスポンス応答特性情報を用いることを特徴とするネットワークシステムの性能予測方法が記載されている。特開平７−５８７６０号公報に記載のネットワークシミュレータによる事前予測は、コマンド・レスポンス応答特性情報を用いるため、実際に送受信されるデータに基づいて、応用手段を追加した後のネットワークシステムの性能を予測することができる。
【０００３】
一般的に、装置が処理対象とするデータが予め定められており、装置にインストールされているプログラムは、そのデータを処理できるように設計されている。一方、装置がネットワークに接続される場合は、他の装置から受信するデータが、装置にインストールされたプログラムとの互換性が保証されていないデータの場合がある。装置は、プログラムとの互換性が保証されていないデータを処理する場合、そのデータを正常に処理することができない場合がある。この場合には、プログラムを実行する中央演算装置（ＣＰＵ）の負荷が増大し、最悪の場合は駆動を停止してしまう場合があるといった問題がある。
【特許文献１】特開平７−５８７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測装置を提供することである。
【０００５】
この発明の他の目的は、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測方法を提供することである。
【０００６】
この発明のさらに他の目的は、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測プログラムを提供することである。
【課題を解決するための手段】
【０００７】
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、状態予測装置は、稼働中の情報処理装置をシミュレートするシミュレート手段と、シミュレート手段が情報処理装置をシミュレートする仮想装置に、情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷を情報処理装置の負荷よりも増大させる負荷増大手段と、負荷増大手段により負荷が増大された仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定手段と、を備える。
【０００８】
この局面に従えば、稼働中の情報処理装置をシミュレートする仮想装置に、情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷を増大させ、仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れるか否かを判定する。このため、情報処理装置の動作状態が許容条件から外れる前に情報処理装置の動作状態が許容条件から外れることを予測することができる。その結果、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測装置を提供することができる。
【０００９】
好ましくは、情報処理装置が外部から受信するデータのうちから情報処理装置の負荷の増大が予測される対象データを特定するデータ特定手段を、さらに備え、負荷増大手段は、対象データのデータ量を増大したデータを仮想装置に処理させる。
【００１０】
この局面に従えば、情報処理装置が外部から受信するデータのうちから対象データが特定され、対象データのデータ量を増大したデータを仮想装置に処理させるので、外部から受信されるすべてのデータのデータ量を増大させる必要がなく、シミュレーションによる負荷をできるだけ少なくすることができる。
【００１１】
好ましくは、情報処理装置は、自装置が実行する１以上の処理ごとに情報処理装置の負荷を示す実パラメータを取得する実パラメータ取得手段と、実パラメータ取得手段により取得される実パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部から受信されたデータを対象データに特定する対象データ特定手段と、を備える。
【００１２】
この局面に従えば、情報処理装置が、自装置の負荷を示す実パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部から受信されたデータを対象データに特定する。このため、情報処理装置で対象データが特定されるので、対象データを特定するために情報処理装置をシミュレートする必要がない。このため、状態予測装置の負荷をできるだけ少なくすることができる。
【００１３】
好ましくは、シミュレート手段は、対象データが特定されることに応じて、情報処理装置をシミュレートする。
【００１４】
この局面に従えば、情報処理装置で対象データが特定されるまで、情報処理装置をシミュレートしないので、状態予測装置の負荷をできるだけ少なくすることができる。
【００１５】
好ましくは、実パラメータは、情報処理装置が備える中央演算装置の使用率である。
【００１６】
この局面に従えば、対象データを容易に特定することができる。
【００１７】
好ましくは、仮想装置が実行する１以上の処理ごとに仮想装置の負荷を示す仮想パラメータを取得する仮想パラメータ取得手段をさらに備え、データ特定手段は、シミュレート手段が、情報処理装置が実行中の複数の処理のすべてを実行する情報処理装置をシミュレートする状態で、仮想パラメータ取得手段により取得される仮想パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部から受信されたデータを対象データに特定する。
【００１８】
この局面に従えば、仮想装置に情報処理装置が実行中の複数の処理のすべてを実行させ、状態予測装置で対象データを特定するので、情報処理装置の負荷をできるだけ少なくすることができる。
【００１９】
好ましくは、仮想パラメータは、仮想装置が備える中央演算装置の使用率である。
【００２０】
この局面に従えば、対象データを容易に特定することができる。
【００２１】
好ましくは、シミュレート手段は、負荷増大手段により対象データのデータ量が増大される場合、データ量が増大された対象データに対する処理のみを実行する情報処理装置をシミュレートする。
【００２２】
この局面に従えば、データ量が増大された対象データに対する処理のみを実行する情報処理装置をシミュレートするので、情報処理装置の動作状態が許容条件から外れるか否かの予測が容易となる。
【００２３】
好ましくは、シミュレート手段は、負荷増大手段により対象データのデータ量が増大される場合、情報処理装置が実行中の複数の処理のすべてを実行する情報処理装置をシミュレートする。
【００２４】
この局面に従えば、情報処理装置が実行中の複数の処理のすべてを実行する情報処理装置をシミュレートするので、情報処理装置の動作状態が許容条件から外れるか否かを正確に予測することができる。
【００２５】
好ましくは、情報処理装置は複数であり、負荷増大手段は、データ特定手段によって複数の情報処理装置の２以上それぞれで対象データが特定される場合、２以上の対象データで共通する部分のデータ量を増大した共通データを仮想装置に処理させる。
【００２６】
この局面に従えば、２以上の対象データで共通する部分のデータのデータ量を増大した共通データを仮想装置に処理させるので、情報処理装置の動作状態が許容条件から外れることをより正確に予測することができる。
【００２７】
好ましくは、許容条件は、情報処理装置が備える中央演算装置の使用率が情報処理装置に対して定められた値以下である条件、または、情報処理装置が備える中央演算装置が予め定められた処理を開始してから終了するまでの処理時間が情報処理装置に対して定められた値以下である条件である。
【００２８】
この局面に従えば、情報処理装置の動作状態が許容条件から外れるか否かを容易に予測することができる。
【００２９】
好ましくは、条件判定手段により仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れる場合に、仮想装置に設定されている設定値を変更することによって、仮想装置の動作状態が許容条件を満たす設定値を決定する設定値決定手段と、決定された設定値を情報処理装置に設定する設定手段と、をさらに備える。
【００３０】
この局面に従えば、仮想装置の動作状態が許容条件から外れる場合に、仮想装置の動作状態が許容条件を満たす設定値が決定され、情報処理装置に設定されるので、情報処理装置の動作状態が許容条件から外れないようにすることができる。
【００３１】
好ましくは、情報処理装置は複数であり、設定手段は、シミュレート手段が複数の情報処理装置のいずれかをシミュレートする仮想装置に対して、設定値決定手段により設定値が決定される場合、複数の情報処理装置それぞれに決定された設定値を設定する。
【００３２】
この局面に従えば、複数の情報処理装置をそれぞれシミュレートする複数の仮想装置のいずれかで設定値が決定される場合、複数の情報処理装置それぞれに設定値を設定するので、複数の情報処理装置それぞれの動作状態が許容条件から外れないようにすることができる。
【００３３】
この発明の他の局面によれば、状態予測方法は、稼働中の情報処理装置をシミュレートするシミュレートステップと、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷を情報処理装置の負荷よりも増大させる負荷増大ステップと、負荷増大ステップにおいて負荷が増大された仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定ステップと、を状態予測装置に実行させる。
【００３４】
この局面に従えば、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測方法を提供することができる。
【００３５】
この発明の他の局面によれば、状態予測プログラムは、稼働中の情報処理装置をシミュレートするシミュレートステップと、シミュレートステップにおいて情報処理装置をシミュレートする仮想装置に、情報処理装置が外部から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷を情報処理装置の負荷よりも増大させる負荷増大ステップと、負荷増大ステップにおいて負荷が増大された仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れるか否かを判定する条件判定ステップと、を状態予測装置を制御するコンピューターに実行させる。
【００３６】
この局面に従えば、外部から受信するデータを処理する情報処理装置の動作状態が許容条件から外れることを予測することが可能な状態予測プログラムを提供することができる。
【００３７】
好ましくは、情報処理装置が外部から受信するデータのうちから情報処理装置の負荷の増大が予測される対象データを特定するデータ特定ステップを、さらにコンピューターに実行させ、負荷増大ステップは、対象データのデータ量を増大したデータを仮想装置に処理させるステッップを含む。
【００３８】
好ましくは、情報処理装置は複数であり、負荷増大ステップは、データ特定ステップによって複数の情報処理装置の２以上それぞれで対象データが特定される場合、２以上の対象データで共通する部分のデータ量を増大した共通データを複数の情報処理装置のいずれかをシミュレートする仮想装置に処理させるステップを含む。
【００３９】
好ましくは、条件判定ステップにおいて仮想装置の動作状態が情報処理装置に予め設定された許容条件から外れる場合に、仮想装置に設定されている設定値を変更することによって、仮想装置の動作状態が許容条件を満たす設定値を決定する設定値決定ステップと、決定された設定値を情報処理装置に設定する設定ステップと、をさらにコンピューターに実行させる。
【００４０】
好ましくは、情報処理装置は複数であり、設定ステップは、シミュレートステップにおいて複数の情報処理装置のいずれかをシミュレートする仮想装置に対して、設定値決定ステップにおいて設定値が決定される場合、複数の情報処理装置それぞれに決定された設定値を設定する。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。
【図２】本実施の形態におけるサーバーのハードウェア構成の概要の一例を示すブロック図である。
【図３】本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。
【図５】サーバーが備えるシミュレータの概要の一例を示す図である。
【図６】第１の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図７】第１の実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図８】第１の実施の形態における状態通知処理の流れの一例を示すフローチャートである。
【図９】第１の実施の形態における状態予測処理の流れの一例を示すフローチャートである。
【図１０】第２の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図１１】第２の実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図１２】第２の実施の形態における操作支援処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００４２】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
【００４３】
図１は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図１を参照して、情報処理システム１は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００，１００Ａ，１００Ｂと、サーバー２００と、を含む。
【００４４】
ＭＦＰ１００，１００Ａ，１００Ｂは、画像形成装置の一例であり、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。ＭＦＰ１００，１００Ａ，１００Ｂは、画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。サーバー２００は、一般的なコンピューターである。
【００４５】
サーバー２００およびＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、ネットワーク３に接続される。ネットワーク３は、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。ネットワーク３は、さらに、インターネットに接続されてもよい。この場合、サーバー２００およびＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、ネットワーク３を介してインターネットに接続されたコンピューターと互いに通信可能である。また、ネットワーク３は、ＬＡＮに限らず、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワークであってもよい。さらに、ネットワーク３は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）であってもよい。
【００４６】
図２は、本実施の形態におけるサーバーのハードウェア構成の概要の一例を示すブロック図である。図２を参照して、サーバー２００は、サーバー２００の全体を制御するための中央演算装置（ＣＰＵ）２０１と、ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、ＣＰＵ２０１をネットワーク３に接続する通信部２０５と、情報を表示する表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０８と、を含む。
【００４７】
表示部２０６は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置である。操作部２０７は、キーボードなどのハードキーである。また、操作部２０７は、タッチパネルであってもよい。タッチパネルは、表示部２０６の上面または下面に表示部２０６に重畳して設けられる。タッチパネルは、表示部２０６の表示面中でユーザーにより指示された位置を検出する。
【００４８】
通信部２０５は、ＣＰＵ２０１をネットワーク３に接続するためのインターフェースである。通信部２０５は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワークに接続されたＭＦＰ１００，１００Ａ，１００Ｂと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。サーバー２００に、ＭＦＰ１００，１００Ａ，１００ＢそれぞれのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを登録しておくことにより、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれと通信することができ、データの送受信が可能となる。
【００４９】
ＨＤＤ２０４は、ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＣＰＵ２０１は、ＨＤＤ２０４に記録されたプログラムを、ＲＡＭ２０３にロードして実行する。
【００５０】
外部記憶装置２０８は、プログラムを記憶したＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）２０９が装着される。ＣＰＵ２０１は、外部記憶装置２０８を介してＣＤ−ＲＯＭ２０９にアクセス可能である。ＣＰＵ２０１は、外部記憶装置２０８に装着されたＣＤ−ＲＯＭ２０９に記録されたプログラムをＲＡＭ２０３にロードして実行する。なお、ＣＰＵ２０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０９に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭまたはＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリであってもよい。
【００５１】
また、ＣＰＵ２０１が実行するプログラムは、ＣＤ−ＲＯＭ２０９に記録されたプログラムに限られず、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ネットワーク３に接続された他のコンピューターが、ＨＤＤ２０４に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、サーバー２００が、ネットワーク３またはインターネットに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５２】
ＭＦＰ１００，１００Ａ，１００Ｂのハードウェア構成および機能は同じなので、ここでは、ＭＦＰ１００を例に説明する。図３は、本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン基板１１１と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、通信インターフェース（Ｉ／Ｆ）部１６０と、ファクシミリ部１７０と、外部記憶装置１８０と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１３と、ユーザーインターフェースとしての操作パネル１１５とを含む。
【００５３】
メイン基板１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０および給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３、および操作パネル１１５と接続され、ＭＦＰ１００の全体を制御する。
【００５４】
自動原稿搬送装置１２０は、原稿トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。
【００５５】
給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【００５６】
通信Ｉ／Ｆ部１６０は、ネットワーク３にＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１６０は、ＴＣＰまたはＵＤＰ等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。
【００５７】
通信Ｉ／Ｆ部１６０は、ネットワーク３から受信されるデータをメイン基板１１１に出力し、メイン基板１１１から入力されるデータをネットワーク３に出力する。通信Ｉ／Ｆ部１６０は、ネットワーク３から受信されるデータのうちＭＦＰ１００宛てのデータのみを、メイン基板１１１に出力し、ネットワーク３から受信されるデータのうちＭＦＰ１００とは異なる装置宛てのデータを廃棄する。
【００５８】
ファクシミリ部１７０は、公衆交換電話網（ＰＳＴＮ）に接続され、ファクシミリデータを送受信する。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１、または半導体メモリが装着される。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１または半導体メモリに記憶されたデータを読み出す。外部記憶装置１８０は、ＣＤ−ＲＯＭ１８１または半導体メモリにデータを記憶する。
【００５９】
操作パネル１１５は、ＭＦＰ１００の上面に設けられ、表示部１１８と操作部１１９とを含む。表示部１１８は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ等の表示装置であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１１９は、複数のハードキーと、タッチパネルと、を含む。タッチパネルは、表示部１１８の上面または下面に表示部に重畳して設けられたマルチタッチ対応のタッチパネルであり、表示部１１８の表示面中でユーザーにより指示された位置を検出する。
【００６０】
図４は、本実施の形態におけるメイン基板の詳細な構成の一例を示すブロック図である。図４を参照して、メイン基板１１１は、ＣＰＵ１７１と、ＲＯＭ１７３と、ＲＡＭ１７５と、画像制御ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１７７と、を含む。
【００６１】
ＣＰＵ１７１、ＲＯＭ１７３、ＲＡＭ１７５および画像制御ＡＳＩＣ１７７それぞれは、バス１７９に接続されており、データの転送が可能である。ＣＰＵ１７１は、ＭＦＰ１００の全体を制御する。ＲＯＭ１７３は、ＣＰＵ１７１が実行するプログラムを記憶する。ＲＡＭ１７５は、ＣＰＵ１７１の作業領域として用いられる揮発性の半導体メモリである。
【００６２】
ＣＰＵ１７１は、ＨＤＤ１１３に記憶されたプログラムをＲＡＭ１７５にロードして実行する。ＣＰＵ１７１が実行するプログラムは、ハードウェア資源を制御するための制御プログラム、およびアプリケーションプログラムを含む。ハードウェア資源は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、の通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、ＨＤＤ１１３および操作パネル１１５を含む。アプリケーションプログラムは、例えば、ファクシミリ部１７０を制御してファクシミリデータを送信するファクシミリ送信プログラム、ファクシミリ部１７０を制御してファクシミリデータを受信するファクシミリ受信プログラム、通信Ｉ／Ｆ部１６０を制御してプリントジョブを受信し、画像形成部１４０および給紙部１５０を制御してプリントジョブに基づいて画像を形成するプリントプログラム、原稿読取部１３０を制御して原稿を読み取る原稿読取プログラムを含む。また、アプリケーションプログラムは、ＭＦＰ１００が備える消耗品を管理するメンテナンスプログラム、エラー状態を通知するエラー状態通知プログラムを、含んでもよい。なお、ＣＰＵ１７１が実行するアプリケーションプログラムを、これらに限定するものではない。
【００６３】
画像制御ＡＳＩＣ１７７は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、および給紙部１５０と接続され、それらを制御する。また、画像制御ＡＳＩＣ１７７は、原稿読取部１３０が原稿を読み取って出力する画像データに所定の画像処理を実行する機能、画像データを画像形成部１４０がプリントするためのラスターデータに変換する機能を有する。
【００６４】
本実施の形態におけるサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂをシミュレートするシミュレータを備えている。サーバー２００によるＭＦＰ１００，１００Ａ，１００Ｂそれぞれのシミュレートは同じなので、ここでは、サーバー２００がＭＦＰ１００をシミュレートする場合を例に説明する。
【００６５】
図５は、サーバーが備えるシミュレータの概要の一例を示す図である。このシミュレータは、ＣＰＵ２０１がシミュレートプログラムを実行することにより、ＣＰＵ２０１に形成される。図５を参照して、シミュレータは、ＣＰＵ周辺シミュレータ３００と、ハードウェア（ＨＷ）シミュレータ３２０と、を含む。ＣＰＵ周辺シミュレータ３００は、ＭＦＰ１００が備えるＣＰＵ１７１をシミュレートする仮想ＣＰＵ３０１と、ＲＯＭ１７３およびＲＡＭ１７５をエミュレートする仮想メモリ３０３と、周辺モデル３０５と、同期設定モデル３０７と、割込制御部３０９と、を含む。仮想ＣＰＵ３０１、仮想メモリ３０３、周辺モデル３０５および同期設定モデル３０７は、バス（Ｂｕｓ）３１１に接続されている。
【００６６】
周辺モデル３０５は、ＭＦＰ１００が備えるＨＤＤ１１３、操作パネル１１５、通信Ｉ／Ｆ部１６０および外部記憶装置１８０をそれぞれエミュレートするＨＤＤ１１３Ａ、操作パネル１１５Ａ、通信Ｉ／Ｆ部１６０Ａおよび外部記憶装置１８０Ａを含む。
【００６７】
同期設定モデル３０７は、仮想ＣＰＵ３０１が、仮想メモリ３０３および周辺モデル３０５と同期するための設定をする。割込制御部３０９は、仮想ＣＰＵ３０１が仮想メモリ３０３および周辺モデル３０５と同期するための設定時に、仮想ＣＰＵ３０１に割り込みを発生させる。
【００６８】
ＨＷシミュレータ３２０は、ＰＣＩ−ＥｘｐｒｅｓｓＢｕｓモデル３２１と、画像制御ＡＳＩＣモデル３２３と、ハードウェア資源モデル３２５と、を含む。ＰＣＩ−ＥｘｐｒｅｓｓＢｕｓモデル３２１は、バス３１１に接続され、ＰＣＩ−Ｅｘｐｒｅｓｓ規格に従った接続をエミュレートする。画像制御ＡＳＩＣモデル３２３は、ＭＦＰ１００が備える画像制御ＡＳＩＣ１７７をエミュレートする。ハードウェア資源モデル３２５は、ＭＦＰ１００が備えるハードウェア資源をエミュレートする。具体的には、ハードウェア資源モデル３２５は、ＭＦＰ１００が備える自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０およびファクシミリ部１７０をそれぞれエミュレートする自動原稿搬送装置１２０Ａ、原稿読取部１３０Ａ、画像形成部１４０Ａ、給紙部１５０Ａおよびファクシミリ部１７０Ａを含む。
【００６９】
図６は、第１の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図６に示す機能は、ＭＦＰ１００が備えるＣＰＵ１７１が、ＲＯＭ１７３、ＨＤＤ１１３またはＣＤ−ＲＯＭ１８１に記憶された状態通知プログラムを実行することにより、ＣＰＵ１７１により実現される機能である。状態通知プログラムは、状態予測プログラムの一部である。図６を参照して、ＣＰＵ１７１は、実パラメータ取得部５１と、対象データ特定部５３と、装置情報送信部５５と、を含む。
【００７０】
実パラメータ取得部５１は、ＣＰＵ１７１が実行するジョブごとのＣＰＵ１７１の負荷を示す実パラメータを取得する。実パラメータは、ジョブごとに定められる値である。具体的には、実パラメータは、ＣＰＵ１７１がジョブで定められた処理を、ジョブが処理対象とするデータを処理する場合におけるＣＰＵ１１の負荷を示す。このため、実パラメータは、ジョブが処理対象とするデータに対応する値である。ここでは、実パラメータを、ＣＰＵ１７１の使用率としている。ＣＰＵ１７１の使用率は、ＣＰＵ１７１がジョブを実行するタスクを実行する時間が占める割合である。なお、実パラメータは、ＣＰＵ１７１の使用率に限定されることなく、ジョブが処理対象とするデータに対して定まる値であればよい。例えば、実パラメータとして、ＲＡＭ１７５の使用率、ＲＡＭ１７５とＨＤＤ１１３のスワップ領域との間でデータ転送するスワップの回数等を用いるようにしてもよい。実パラメータ取得部５１は、ジョブごとに取得された実パラメータを、対象データ特定部５３に出力する。
【００７１】
対象データ特定部５３は、ＣＰＵ１７１の負荷を増大が予測されるデータを対象データとして特定する。具体的には、対象データ特定部５３は、実パラメータが予め定められた予測状態となる処理の対象となるデータを対象データとして特定する。ここでは、対象データ特定部５３は、実パラメータを予め定められたしきい値と比較し、実パラメータがしきい値以上となるジョブが存在する場合、そのジョブが処理対象とするデータを、ＣＰＵ１７１の負荷の増大が予測されるデータに特定する。さらに、対象データ特定部５３は、ＣＰＵ１７１の負荷の増大が予測されるデータが、外部の装置から受信されたデータであることを条件に、そのデータを対象データに特定する。対象データ特定部５３は、特定されたジョブおよび対象データを装置情報送信部５５に出力する。
【００７２】
しきい値は、ＣＰＵ１７１の負荷に対して予め定められた値である。しきい値は、ＣＰＵ１７１が実行するすべてのタスクそれぞれにおいてエラーが発生しない状態における値とするのが好ましい。例えば、あるタスクで同じ処理を不要に繰り返して実行してしまう場合にＣＰＵ１７１の使用率が上昇する場合があり、しきい値は、ＣＰＵ１７１が同じ処理を不要に繰り返して実行してしまう状態を検出することが可能な値とすればよい。この場合は、しきい値は、ジョブを実行するタスク自体によって定まる。なお、しきい値は、ＣＰＵ１７１の使用率の上昇率としてもよい。また、第１のタスクのＣＰＵ１７１の使用率が上昇することにより、第２のタスクのＣＰＵ１７１の使用率が相対的に低下する。この場合に、第２のタスクの処理に遅延が生じる場合があり、タイムアウトエラーなどが発生する場合がある。しきい値は、第２のタスクの処理でタイムアウトエラーが発生する前に、第１のタスクのＣＰＵ１７１の状態を検出することが可能な値とすればよい。この場合は、しきい値は、他のジョブを実行する他のタスクとの相対関係によって定まる。ＣＰＵ１７１に対して１つのタスクに許容される使用率の上限をしきい値として予め定めておけばよい。このしきい値は、実験によって求めることができる。
【００７３】
対象データ特定部５３が特定する対象データは、外部装置から受信されたデータであり、ＣＰＵ１７１が処理を継続するとエラーが発生する恐れのあるデータである。外部装置から受信されるデータは、外部装置から受信されてＨＤＤ１１３に記憶されたデータを含む。例えば、原稿読取部１３０が原稿を読み取って出力するデータ等、ＭＦＰ１００が生成するデータに関しては、ＣＰＵ１７１が実行するプログラムは確実に処理することができるように設計されている。原稿読取部１３０を制御するプログラムと、原稿読取部１３０が出力するデータを処理するプログラムとが整合するように設計されているからである。一方、外部の装置から受信されるデータは、ＣＰＵ１７１が実行するプログラムの設計段階で対応できていないデータが存在する可能性がある。例えば、外部から受信されるデータのフォーマットに、プログラムが対応していない場合などである。
【００７４】
装置情報送信部５５は、対象データ特定部５３から入力されるジョブおよび対象データを含む装置情報を生成し、生成された装置情報を、通信Ｉ／Ｆ部１６０を制御してサーバー２００に送信する。装置情報は、ＭＦＰ１００に搭載されているＣＰＵ１７１の機種名、ＭＦＰ１００にインストールされたハードウェア資源に関するハード情報と、ＭＦＰ１００にインストールされたソフトウェア資源に関するソフト情報と、ＭＦＰ１００に設定されている設定値と、対象データ特定部５３から入力されるジョブおよび対象データを含む装置情報と、を含む。
【００７５】
図７は、第１の実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。図７に示す機能は、サーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２１０Ａに記憶された状態予測プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。
【００７６】
図７を参照して、サーバー２００が備えるＣＰＵ２０１は、シミュレート部２５１と、装置情報取得部２５３と、データ特定部２５５と、負荷増大部２５７と、動作状態取得部２６１と、条件判定部２６３と、設定値決定部２６５と、設定値変更部２６７と、設定部２６９と、を含む。
【００７７】
装置情報取得部２５３は、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかから装置情報を取得する。上述したように、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかは、ＣＰＵ１１の負荷を増大させるジョブが発生する場合に、そのジョブと対象データとを含む装置情報を送信する。装置情報取得部２５３は、通信部２０５がＭＦＰ１００，１００Ａ，１００Ｂのいずれかから装置情報を受信すると、通信部２０５が受信した装置情報を取得する。ここでは、ＭＦＰ１００から装置情報を取得する場合を例に説明する。装置情報取得部２５３がＭＦＰ１００から装置情報を取得する場合、ＭＦＰ１００は監視対象に設定される。装置情報は、装置に搭載されている中央演算装置の機種名、装置にインストールされたハードウェア資源に関するハード情報と、装置にインストールされたソフトウェア資源に関するソフト情報と、設定値と、装置で処理中のジョブと、対象データと、を含む。設定値は、監視対象であるＭＦＰ１００が備えるＣＰＵ１７１が実行するタスクの負荷に影響する設定値である。例えば、設定値は、複数のタスクを実行する優先度を定める設定値である。装置情報取得部２５３は、装置情報を取得する場合、装置情報をシミュレート部２５１およびデータ特定部２５５に出力する。
【００７８】
シミュレート部２５１は、装置情報取得部２５３から入力される装置情報に基づいて、監視対象であるＭＦＰ１００をシミュレートする。シミュレート部２５１は、監視対象であるＭＦＰ１００に装着されたハードウェア資源を設定し、ＭＦＰ１００のＣＰＵ１７１が実行するソフトウェア資源を仮想ＣＰＵ３０１に実行させ、設定値を設定し、ＭＦＰ１００のＣＰＵ１７１で実行されているジョブを仮想ＣＰＵ３０１に実行させる。
【００７９】
ＭＦＰ１００は、ハードウェア資源として、画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５を含む。このため、装置情報に含まれるハード情報は、画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５をハードウェア資源として定める。シミュレート部２５１は、装置情報に含まれるハード情報で定められた画像制御ＡＳＩＣ１７７、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０、通信Ｉ／Ｆ部１６０、ファクシミリ部１７０、外部記憶装置１８０、ＨＤＤ１１３および操作パネル１１５それぞれをエミュレートするエミュレータを設定する。さらに、シミュレート部２５１は、エミュレートするハードウェア資源との同期を設定する。例えば、図６に示したＣＰＵ周辺シミュレータ３００の同期設定モデル３０７に、仮想ＣＰＵ３０１が、ハードウェア資源のエミュレータと同期するように仮想ＣＰＵ３０１のレジスタ値を設定させるとともに、仮想メモリ３０３のメモリマップを書き換える。
【００８０】
また、シミュレート部２５１は、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想ＣＰＵが実行する状態に設定し、装置情報に含まれる設定値を設定する。具体的には、シミュレート部２５１は、装置情報に含まれるソフト情報で定められたソフトウェア資源をインストールし、装置情報に含まれる設定値を設定する。これにより、シミュレート部２５１において、ＭＦＰ１００をシミュレートした仮想装置が完成する。なお、ＭＦＰ１００のＲＡＭ１７５に記憶されたデータをスナップショットとして取得し、仮想メモリ３０３に記憶するようにしてもよい。
【００８１】
データ特定部２５５は、装置情報取得部２５３から装置情報が入力されることに応じて、装置情報に含まれるジョブおよび対象データを特定し、ジョブおよび対象データを負荷増大部２５７に出力する。
【００８２】
負荷増大部２５７は、データ特定部２５５からジョブおよび対象データが入力されることに応じて、シミュレート部２５１が監視対象であるＭＦＰ１００をシミュレートする仮想装置の仮想ＣＰＵ３０１が対象データを処理する負荷を、ＭＦＰ１００のＣＰＵ１７１が対象データを処理する負荷より大きくした状態で、仮想ＣＰＵ３０１に対象データを処理させる。具体的には、ジョブに対応する対象データのデータ量を増加させることより、仮想ＣＰＵ３０１がジョブを実行するタスクの負荷を増加する。負荷増大部２５７は、対象データのデータ量を予め定められた増加率で定まる分だけ増加させる。対象データの増加率で定まるデータ量に相当する部分を、対象データに追加することによって、対象データのデータ量を増加させるようにすればよい。監視対象であるＭＦＰ１００が対象データの処理を継続してエラーが発生する前に仮想ＣＰＵ３０１でエラーを発生させる必要がある。このため、データ量と、仮想ＣＰＵ３０１の負荷の増加量との関係を実験で求めておき、後述する許容条件との関係で対象データの増加率とを定めるようにすればよい。ここでは、増加率を２００％としており、対象データのデータ量を２倍に増加させる。
【００８３】
負荷増大部２５７によって対象データのデータ量が増加される場合、シミュレート部２５１は、データ特定部２５５から入力されるジョブを仮想ＣＰＵ３０１に実行させる。具体的には、シミュレート部２５１は、負荷増大部２５７によってデータ量が増加された対象データに対してジョブで定められた処理を、仮想装置の仮想ＣＰＵ３０１に実行させる。シミュレート部２５１は、対象データに対応するジョブのみを実行する。対象データに対応するジョブの仮想ＣＰＵ３０１の負荷の変動を観察することができるので、対象データが原因で仮想ＣＰＵ３０１の負荷が増大したか否かを早期に検出することができる。
【００８４】
シミュレート部２５１は、装置情報取得部２５３がＭＦＰ１００，１００Ａ，１００Ｂのいずれか、例えばＭＦＰ１００から装置情報を受信することに応じて、ＭＦＰ１００をシミュレートするので、装置情報取得部２５３がＭＦＰ１００から装置情報を受信するまで、ＭＦＰ１００をシミュレートしない。このため、サーバー２００のＣＰＵ２０１の負荷をできるだけ低くすることができる。
【００８５】
なお、ＭＦＰ１００がＭＦＰ１００で実行されるすべてのジョブを含む装置情報を送信するようにして、シミュレート部２５１が、ＭＦＰ１００で実行されるすべてのジョブを仮想装置に実行させるようにしてもよい。この場合には、対象データに対応するジョブに対する仮想ＣＰＵ３０１の負荷の増大が、対象データに対応するジョブと、対象データに対応するジョブ以外のジョブとの相対的な関係に起因する場合に対応することができる場合がある。
【００８６】
データ特定部２５５から入力されるジョブおよび対象データは、通信Ｉ／Ｆ部１６０で受信される。このため、シミュレート部２５１は、そのジョブを通信Ｉ／Ｆ部１６０をエミュレートするエミュレータに受信させる。また、シミュレート部２５１は、通信Ｉ／Ｆ部１６０をエミュレートするエミュレータがジョブおよび対象データを受信させる際に、そのエミュレータに単位時間当たりに受信するデータ量を増加させて受信される。これにより、対象データを受信する時間を短くすることができる。
【００８７】
動作状態取得部２６１は、データ量が増加された対象データに対してジョブで定められた処理を実行するシミュレート部２５１から仮想装置の動作状態を取得する。仮想装置の動作状態は、仮想ＣＰＵ３０１全体の負荷である。ここでは、仮想装置の動作状態を、仮想ＣＰＵ３０１の使用率としている。なお、仮想装置の動作状態は、仮想ＣＰＵ３０１の使用率に限定されることなく、仮想メモリ３０３の使用率、仮想メモリ３０３とＨＤＤ１１３Ａのスワップ領域との間でデータ転送するスワップの回数を用いるようにしてもよい。また、動作状態取得部２６１は、ある処理の実行を開始してから終了するまでのレスポンスタイムを動作状態として取得するようにしてもよい。例えば、動作状態取得部２６１は、予め定められたユーザーにより入力される操作をシミュレート部２５１に与え、操作パネル１１５Ａでユーザーにより入力される操作を受け付けてから画面が表示されるまでの時間をレスポンスタイムとして計測する。動作状態取得部２６１は、取得された動作状態を、条件判定部２６３に出力する。
【００８８】
条件判定部２６３は、動作状態取得部２６１から入力される仮想装置の動作状態が監視対象であるＭＦＰ１００に予め設定された許容条件から外れるか否かを判定する。条件判定部２６３は、仮想装置の動作状態が許容条件を満たさない場合、設定値決定部２６５にエラー信号を出力し、仮想装置の動作状態が許容条件を満たす場合は、設定値決定部２６５に正常信号を出力する。監視対象であるＭＦＰ１００に予め設定された許容条件は、ＭＦＰ１００が備えるＣＰＵ１７１の使用率が上限値以下となる条件とすることができる。また、許容条件は、ＭＦＰ１００が備えるＣＰＵ１７１の使用率が上限値を超える場合であっても、所定時間継続して上限値を越えなければ許容条件が満たされる条件としてもよい。この場合、条件判定部２６３は、ＣＰＵ１７１の使用率が上限値を超える状態が所定時間以上継続する場合に、仮想装置の動作状態が許容条件を満たさないと判断し、設定値決定部２６５にエラー信号を出力し、ＣＰＵ１７１の使用率が上限値を超える状態が所定時間以上継続しなければ、仮想装置の動作状態が許容条件を満たすと判断し、設定値決定部２６５に正常信号を出力する。
【００８９】
設定値決定部２６５は、条件判定部２６３からエラー信号が入力されることに応じて、設定値変更部２６７に変更指示を出力する。設定値決定部２６５は、条件判定部２６３からエラー信号が入力された後に正常信号が入力されることに応じて、その時点で設定されている設定値を決定し、決定された設定値を設定部２６９に出力する。
【００９０】
設定値変更部２６７は、シミュレート部２５１に設定されている設定値を変更する。ここでの設定値は、仮想ＣＰＵ３０１が実行するタスクの負荷に影響する設定値である。例えば、複数のタスクを実行する優先度を定める設定値である。また、ハードウェア資源を制御するために設定されたタイムアウト時間などの設定値であってもよい。また、設定値は、仮想メモリ３０３の作業領域のサイズであってもよい。さらに、仮想メモリ３０３とＨＤＤ１１３Ａのスワップ領域のサイズであってもよい。
【００９１】
設定値変更部２６７によって設定値が変更される場合、シミュレート部２５１は、変更された設定値に従って、仮想装置にデータ量が増加された対象データに対してジョブで定められた処理を実行する。これにより、動作状態取得部２６１が、シミュレート部２５１から仮想装置の動作状態を取得し、条件判定部２６３が仮想装置の動作状態が許容条件を満たすか否かを判定する。設定値変更部２６７は、条件判定部２６３によって仮想装置の動作状態が許容条件を満たすと判定されるまで、設定値を種々の値に変更し、シミュレート部２５１に変更後の設定値で仮想装置に処理を実行させる。
【００９２】
条件判定部２６３によって仮想装置の動作状態が許容条件を満たさないと判定された後に、許容条件を満たすと判定される場合、設定値決定部２６５が設定値を決定し、決定された設定値を設定部２６９に出力する。
【００９３】
設定部２６９は、設定値決定部２６５から設定値が入力されることに応じて、設定値を監視対象のＭＦＰ１００に設定させる。具体的には、通信部２０５を制御して、設定値決定部２６５から入力される設定値を設定するコマンドをＭＦＰ１００に送信する。設定値決定部２６５によって決定される設定値は、シミュレート部２５１によるシミュレートによって、仮想ＣＰＵ３０１の動作状態が許容条件を満たすことが確認された設定値なので、ＭＦＰ１００において許容条件を満たした状態で、ジョブを継続して実行することができる。設定部２６９は、ＭＦＰ１００が搭載するハードウェア資源およびソフトウェア資源と、ＭＦＰ１００Ａ，１００Ｂが搭載するハードウェア資源およびソフトウェア資源が同じ場合、ＭＦＰ１００の設定値と同じ設定値にＭＦＰ１００Ａ，１００Ｂを設定する。これにより、ＭＦＰ１００Ａ，１００Ｂにおいて、ＭＦＰ１００と同種のデータが受信される場合に許容条件を満たした動作状態で処理を実行させることができる。同様に、サーバー２００は、ＭＦＰ１００Ａにおいて受信されたデータに基づいて、ＭＦＰ１００Ａをシミュレートして設定値を変更する場合、ＭＦＰ１００，１００ＢにＭＦＰ１００Ａに設定した設定値と同じ設定値を設定する。さらに、サーバー２００は、ＭＦＰ１００Ｂにおいて受信されたデータに基づいて、ＭＦＰ１００Ｂをシミュレートして設定値を変更する場合、ＭＦＰ１００，１００ＡにＭＦＰ１００Ｂに設定した設定値と同じ設定値を設定する。
【００９４】
なお、設定部２６９は、ＭＦＰ１００が搭載するハードウェア資源およびソフトウェア資源と、ＭＦＰ１００Ａ，１００Ｂが搭載するハードウェア資源およびソフトウェア資源が異なる場合、ＭＦＰ１００の設定値と同じ設定値にＭＦＰ１００Ａ，１００Ｂを設定しない。
【００９５】
図８は、第１の実施の形態における状態通知処理の流れの一例を示すフローチャートである。状態通知処理は、ＭＦＰ１００が備えるＣＰＵ１７１が、ＲＯＭ１７３、ＨＤＤ１１３またはＣＤ−ＲＯＭ１８１に記憶された状態通知プログラムを実行することにより、ＣＰＵ２０１により実現される機能である。状態通知プログラムは、状態予測プログラムの一部である。図６を参照して、ＣＰＵ１７１は、ジョブを受け付けたか否かを判断する（ステップＳ５１）。ジョブを受け付けたならば処理をステップＳ５２に進めるが、そうでなければ処理をステップＳ５３に進める。ＣＰＵ１７１は、通信Ｉ／Ｆ部１６０が外部のＰＣなどからジョブを受信したならばジョブを受け付ける。また、ＣＰＵ１７１は、操作部１１９がユーザーによるジョブを入力する操作を受け付ける場合に、ジョブを受け付ける。ステップＳ５２においては、ジョブを開始し、処理をステップＳ５３に進める。
【００９６】
ステップＳ５３においては、実パラメータを取得し、処理をステップＳ５４に進める。ジョブを実行するタスクのＣＰＵ１７１の使用率を実パラメータとして取得する。ＣＰＵ１７１が複数のジョブを実行している場合には、複数のジョブそれぞれについて、ＣＰＵ１７１の使用率を実パラメータとして取得する。
【００９７】
ステップＳ５４においては、実パラメータがしきい値ＴＨ以上か否かを判断する。複数のジョブを実行している場合には、複数のジョブそれぞれについて、実パラメータがしきい値ＴＨ以上か否かを判断する。複数のジョブの少なくとも１つにおいて、実パラメータがしきい値ＴＨ以上ならば処理をステップＳ５５に進めるが、そうでなければ処理をＳ５１に戻す。ステップＳ５５においては、実パラメータがしきい値ＴＨ以上となるジョブが処理対象とするデータを処理データに特定する。
【００９８】
次のステップＳ５６においては、処理データが外部から受信したデータか否かを判断する。処理データが外部から受信されたデータならば処理をステップＳ５７に進めるが、そうでなければ処理をステップＳ５１に戻す。ステップＳ５７においては、処理データを対象データに決定し、処理をステップＳ５８に進める。
【００９９】
ステップＳ５８においては、装置情報を生成し、サーバー２００に装置情報を送信する。ステップＳ５４において実パラメータがしきい値ＴＨ以上となると判断されたジョブと、ステップＳ５７において決定された対象データと、ハード情報と、ソフト情報と、設定値と、を含む装置情報を生成する。そして、通信Ｉ／Ｆ部１６０を制御して、サーバー２００に装置情報を送信する。
【０１００】
次のステップＳ５９においては、サーバー２００から設定指示を受信したか否かを判断する。設定指示は設定値を設定するためのコマンドである。設定指示を受信したならば処理をステップＳ６０に進めるが、そうでなければ処理をステップＳ５１に戻す。ステップＳ６０においては、設定指示に従って設定値を設定し、処理をステップＳ５１に戻す。
【０１０１】
図９は、第１の実施の形態における状態予測処理の流れの一例を示すフローチャートである。状態予測処理は、第１の実施の形態におけるサーバー２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２１０Ａに記憶された状態予測プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。図９を参照して、サーバー２００が備えるＣＰＵ２０１は、装置情報を受信したか否かを判断する。通信部２０５がＭＦＰ１００，１００Ａ，１００Ｂのいずれかから装置情報を受信すると、装置情報を受信したと判断する。装置情報を受信するまで待機状態となり（ステップＳ０１でＮＯ）、装置情報を受信したならば（ステップＳ０１でＹＥＳ）、処理をステップＳ０２に進める。通信部２０５が受信した装置情報を取得する。
【０１０２】
ステップＳ０２においては、装置情報を送信してきた装置を監視対象に決定し、処理をステップＳ０３に進める。ここでは、ＭＦＰ１００から装置情報を受信する場合を例に説明する。この場合、ＭＦＰ１００を監視対象に決定する。ステップＳ０３においては、仮想装置を設定する。ステップＳ０１において受信された装置情報に基づいて、監視対象であるＭＦＰ１００をシミュレートする。具体的には、装置情報に含まれるハード情報で定められたハードウェア資源をエミュレートするエミュレータを設定し、装置情報に含まれるソフト情報で定められたソフトウェア資源を仮想ＣＰＵ３０１が実行する状態に設定し、装置情報に含まれる設定値を設定する。
【０１０３】
次のステップＳ０４においては、対象データのデータ量を増加させ、処理をステップＳ０５に進める。具体的には、対象データのデータ量を予め定められた増加率で定まる分だけ増加させる。対象データの増加率で定まるデータ量に相当する部分を、対象データに追加することによって、対象データのデータ量を増加させるようにすればよい。
【０１０４】
ステップＳ０５においては、ステップＳ０３において設定された仮想装置に、ステップＳ０１において受信された装置情報に含まれるジョブを実行させる。ジョブの処理対象とするデータは、ステップＳ０４においてデータ量が増加された対象データである。
【０１０５】
次のステップＳ０６においては、仮想装置の動作状態を取得し、処理をステップＳ０７に進める。具体的には、仮想装置の仮想ＣＰＵ３０１の使用率を動作状態として取得する。そして、取得された動作状態が監視対象であるＭＦＰ１００に対して予め定められた許容条件を満たすか否かを判断する。ここでは、許容条件を、ＭＦＰ１００が備えるＣＰＵ１７１の使用率が上限値以下となる条件としている。このため、仮想ＣＰＵ３０１の使用率が上限値を超えたならば処理をステップＳ０８に進めるが、そうでなければ処理をステップＳ１４に進める。ステップＳ１４においては、ステップＳ０５において開始したジョブが終了したか否かを判断する。ジョブが終了したならば処理を終了するが、そうでなければ処理をステップＳ０６に戻す。データ量が増加された対象データに処理を実行する仮想ＣＰＵ３０１の動作状態が許容条件を満たしたままジョブを終了する場合には、ＭＦＰ１００においても許容条件を満たした状態が維持されることが予想されるからである。
【０１０６】
ステップＳ０８においては、設定値を変更する。仮想ＣＰＵ３０１が実行するタスクの負荷に影響する設定値を変更する。例えば、複数のタスクを実行する優先度を定める設定値である。また、設定値は、ハードウェア資源を制御するために設定されたタイムアウト時間などの設定値であってもよい。また、設定値は、仮想メモリ３０３の作業領域のサイズであってもよい。さらに、設定値は、仮想メモリ３０３とＨＤＤ１１３Ａのスワップ領域のサイズであってもよい。
【０１０７】
次のステップＳ０９においては、ステップＳ０６と同様に仮想ＣＰＵ３０１の動作状態を取得し、処理をステップＳ１０に進める。ステップＳ１０においては、ステップＳ０７と同様に仮想ＣＰＵ３０１の動作状態が許容条件を満たすか否かを判断する。動作状態が許容条件を満たすならば処理をステップＳ１１に進めるが、そうでなければ処理をステップＳ０８に戻す。
【０１０８】
ステップＳ１１においては、その時点で設定されている設定値を決定し、処理をステップＳ１２に進める。ステップＳ１２においては、ステップＳ０５において実行されたジョブが終了したか否かを判断する。ジョブが終了したならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ１０に戻す。
【０１０９】
ステップＳ１３においては、監視対象であるＭＦＰ１００に、ステップＳ１１において決定された設定値を設定し、処理を終了する。具体的には、通信部２０５を制御して、ＭＦＰ１００に設定値を設定するコマンドを送信する。また、ＭＦＰ１００が搭載するハードウェア資源およびソフトウェア資源と、ＭＦＰ１００Ａ，１００Ｂが搭載するハードウェア資源およびソフトウェア資源が同じ場合、ステップＳ１１において決定された設定値をＭＦＰ１００Ａ，１００Ｂに設定する。具体的には、通信部２０５を制御して、ＭＦＰ１００Ａ，１００Ｂに設定値を設定するコマンドを送信する。
【０１１０】
＜第１の変形例＞
上述した第１の実施の形態におけるサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂのいずれかで受信されたデータに基づいて、設定値を変更するようにした。第１の変形例におけるサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂの２以上で実パラメータがしきい値を超えるデータを受信する場合、２以上のデータを解析して、２以上のデータで共通する部分を決定し、決定された部分のデータを増加した共通データにジョブで定められる処理を実行させる。例えば、ＭＦＰ１００ＡでジョブＡと対象データＡが特定され、ＭＦＰ１００ＢでジョブＢと対象データＢが特定される場合、対象データＡと対象データＢとで共通する共通部分を決定し、決定された共通部分のデータ量を増加した共通データを決定し、仮想装置に共通データを処理対象としてジョブを実行させる。例えば、ＭＦＰ１００Ａをシミュレートする仮想装置に、共通データを処理対象としてジョブＡを実行させる。なお、ＭＦＰ１００Ｂをシミュレートする仮想装置に、共通データを処理対象としてジョブＢを実行させるようにしてもよい。
【０１１１】
以上説明したように第１の実施の形態におけるサーバー２００は、状態予測装置として機能し、稼働中のＭＦＰ１００をシミュレートし、ＭＦＰ１００をシミュレートする仮想装置に、ＭＦＰ１００が外部装置から受信したデータのデータ量を増大したデータを処理させることにより仮想装置の負荷をＭＦＰ１００の負荷よりも増大させ、負荷が増大された仮想装置の動作状態がＭＦＰ１００に予め設定された許容条件から外れるか否かを判定する。このため、ＭＦＰ１００の動作状態が許容条件から外れる前にＭＦＰ１００の動作状態が許容条件から外れることを予測することができる。
【０１１２】
また、ＭＦＰ１００は、外部装置から受信するデータのうちからＭＦＰ１００の負荷の増大が予測されるデータを対象データに特定し、サーバー２００は、ＭＦＰ１００で特定された対象データのデータ量を増大したデータを仮想装置に処理させる。このため、サーバー２００は、ＭＦＰ１００が外部装置から受信されるデータのすべてのデータ量を増大させる必要がなく、シミュレーションによる負荷をできるだけ少なくすることができる。
【０１１３】
また、ＭＦＰ１００は、自装置が実行する１以上の処理ごとにＭＦＰ１００が備えるＣＰＵ１７１の負荷を示す実パラメータを取得し、実パラメータが予め定められた予測状態となる処理の対象となるデータであって、外部装置から受信するデータを対象データに特定する。このため、ＭＦＰ１００で対象データが特定されるので、サーバー２００は、対象データを特定するためにＭＦＰ１００をシミュレートする必要がない。このため、サーバー２００が備えるＣＰＵ２０１の負荷をできるだけ少なくすることができる。
【０１１４】
また、サーバー２００は、ＭＦＰ１００において対象データが特定されることに応じて、ＭＦＰ１００をシミュレートするので、ＭＦＰ１００で対象データが特定されるまで、ＭＦＰ１００をシミュレートしないので、サーバー２００が備えるＣＰＵ２０１の負荷をできるだけ少なくすることができる。
【０１１５】
また、ＭＦＰ１００は、ＣＰＵ１７１の使用率を実パラメータとして取得するので、対象データを容易に特定することができる。
【０１１６】
また、サーバー２００は、対象データのデータ量が増大する場合、データ量が増大された対象データに対する処理のみを実行するＭＦＰ１００をシミュレートする。このため、ＭＦＰ１００の動作状態が許容条件から外れるか否かの予測が容易となる。
【０１１７】
また、サーバー２００は、対象データのデータ量が増大する場合、ＭＦＰ１００が実行中の複数の処理のすべてを実行するＭＦＰ１００をシミュレートするようにしてもよい。この場合、ＭＦＰ１００の動作状態が許容条件から外れるか否かを正確に予測することができる。例えば、対象データを処理するタスク以外のタクスとの相対的な関係で許容条件から外れる事象をシミュレートすることができる。
【０１１８】
また、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂの２以上それぞれで対象データが特定される場合、例えば、ＭＦＰ１００，１００Ａそれぞれで対象データＡおよび対象データＢが特定される場合、対象データＡおよび対象データＢで共通する部分のデータ量を増大した共通データを生成し、ＭＦＰ１００またはＭＦＰ１００Ａをシミュレートする仮想装置に共通データを処理させる。このため、ＭＦＰ１００，１００Ａいずれかの動作状態が許容条件から外れることをより正確に予測することができる。
【０１１９】
また、サーバー２００は、許容条件を、ＭＦＰ１００が備えるＣＰＵ１７１の使用率がＭＦＰ１００に対して定められた値以下である条件、または、ＭＦＰ１００が備えるＣＰＵ１７１が予め定められた処理を開始してから終了するまでの処理時間がＭＦＰ１００に対して定められた値以下である条件とする。このため、ＭＦＰ１００の動作状態が許容条件から外れるか否かを容易に予測することができる。
【０１２０】
また、サーバー２００は、ＭＦＰ１００をシミュレートする仮想装置の動作状態が許容条件から外れる場合に、仮想装置に設定されている設定値を変更することによって、仮想装置の動作状態が許容条件を満たす設定値を決定し、決定された設定値をＭＦＰ１００に設定する。このため、ＭＦＰ１００の動作状態が許容条件から外れないようにすることができる。
【０１２１】
また、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂをそれぞれシミュレートする複数の仮想装置のいずれかで設定値が決定される場合、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれに決定された設定値を設定する。このため、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれの動作状態が許容条件から外れないようにすることができる。
【０１２２】
＜第２の実施の形態＞
第１の実施の形態における情報処理システムは、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれが対象データを決定するようにした。第２の実施の形態における情報処理システムは、サーバー２００がＭＦＰ１００，１００Ａ，１００Ｂそれぞれを監視対象に設定し、それらをシミュレートすることによって、サーバー２００がＭＦＰ１００，１００Ａ，１００Ｂそれぞれに対する対象データを決定するようにしたものである。
【０１２３】
図１０は、第２の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図１０に示す機能が図６に示した機能と異なる点は、実パラメータ取得部５１および対象データ特定部５３が削除された点、装置情報送信部５５が装置情報送信部５５Ａに変更された点、ジョブ情報送信部５７が追加された点である。
【０１２４】
図１０を参照して、装置情報送信部５５Ａは、サーバー２００からの要求に応じて、装置情報をサーバー２００に送信する。ここでの装置情報は、ＭＦＰ１００に搭載されている中央演算装置の機種名と、装置にインストールされたハードウェア資源に関するハード情報と、ＭＦＰ１００にインストールされたソフトウェア資源に関するソフト情報と、設定値と、を含む。ジョブ情報送信部５７は、ＭＦＰ１００にジョブが入力されることに応じて、ジョブとそのジョブが処理対象とするデータとをサーバー２００に送信する。
【０１２５】
図１１は、第２の実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。図１１を参照して、図７に示した機能と異なる点は、装置情報取得部２５３およびデータ特定部２５５が装置情報取得部２５３Ａおよびデータ特定部２５５Ａにそれぞれ変更された点、仮想パラメータ取得部２５９が追加された点である。その他の機能は、図７に示した機能と同じなので、ここでは説明を繰り返さない。
【０１２６】
装置情報取得部２５３Ａは、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれから装置情報を取得する。ここでは、ＭＦＰ１００から装置情報を取得する場合を例に説明する。具体的には、装置情報取得部２５３は、通信部２０５を制御して、監視対象であるＭＦＰ１００に装置情報の送信を要求し、ＭＦＰ１００が送信する装置情報を受信する。装置情報は、装置に搭載されている中央演算装置の機種名、装置にインストールされたハードウェア資源に関するハード情報と、装置にインストールされたソフトウェア資源に関するソフト情報と、設定値と、を含む。設定値は、監視対象であるＭＦＰ１００が備えるＣＰＵ１７１が実行するタスクの負荷に影響する設定値である。例えば、設定値は、複数のタスクを実行する優先度を定める設定値である。装置情報取得部２５３は、装置情報を取得する場合、装置情報をシミュレート部２５１に出力する。シミュレート部２５１は、装置情報に基づいてＭＦＰ１００をシミュレートする仮想装置を設定する。
【０１２７】
監視対象であるＭＦＰ１００は、ジョブの実行を開始すると、ジョブとそのジョブが処理対象とするデータとを送信してくるので、装置情報取得部２５３Ａは、通信部２０５がＭＦＰ１００の送信するジョブとデータを受信すると、受信されたジョブとデータとを取得する。装置情報取得部２５３は、ジョブとデータとを取得する場合、ジョブとデータとをシミュレート部２５１に出力する。シミュレート部２５１は、ＭＦＰ１００をシミュレートする仮想装置に、データにジョブで定められた処理を実行させる。
【０１２８】
仮想パラメータ取得部２５９は、シミュレート部２５１が監視対象であるＭＦＰ１００をシミュレートする仮想装置のジョブごとの負荷を示す仮想パラメータを取得する。仮想装置の負荷を示す仮想パラメータは、ジョブごとに定められる値である。具体的には、仮想パラメータは、仮想ＣＰＵ３０１がジョブで定められた処理を、ジョブが処理対象とするデータに対して実行する場合における仮想ＣＰＵ３０１の負荷を示す。このため、仮想パラメータは、ジョブが処理対象とするデータに対応する値である。ここでは、仮想パラメータを、仮想ＣＰＵ３０１が実行するタスクごとの仮想ＣＰＵ３０１の使用率としている。仮想ＣＰＵの使用率は、ジョブを実行するタスクを仮想ＣＰＵ３０１が実行する時間が占める割合である。なお、仮想パラメータは、仮想ＣＰＵ３０１の使用率に限定されることなく、ジョブが処理対象とするデータに対して定まる値であればよい。例えば、仮想パラメータとして、仮想メモリ３０３の使用率、仮想メモリ３０３とＨＤＤ１１３Ａのスワップ領域との間でデータ転送するスワップの回数等を用いるようにしてもよい。仮想パラメータ取得部２５９は、ジョブごとに取得された仮想パラメータを、データ特定部２５５Ａに出力する。
【０１２９】
データ特定部２５５Ａは、仮想ＣＰＵ３０１の負荷の増大が予測されるデータを対象データとして特定する。具体的には、データ特定部２５５Ａは、仮想パラメータが予め定められた予測状態となる処理の対象となるデータを対象データとして特定する。ここでは、データ特定部２５５Ａは、仮想パラメータを予め定められたしきい値と比較し、仮想パラメータがしきい値以上となるジョブが存在する場合、そのジョブが処理対象とするデータを、仮想ＣＰＵ３０１の負荷の増大が予測されるデータに特定する。さらに、データ特定部２５５Ａは、仮想ＣＰＵ３０１の負荷の増大が予測されるデータが、外部装置から受信されたデータであることを条件に、そのデータを対象データに特定する。
【０１３０】
しきい値は、監視対象であるＭＦＰ１００が備えるＣＰＵ１７１の負荷に対して予め定められた値である。しきい値は、ＣＰＵ１７１が実行するすべてのタスクそれぞれにおいてエラーが発生しない状態における値とするのが好ましい。例えば、あるタスクで同じ処理を不要に繰り返して実行してしまう場合にＣＰＵ１７１の使用率が上昇する場合があり、しきい値は、ＣＰＵ１７１が同じ処理を不要に繰り返して実行してしまう状態を検出することが可能な値とすればよい。この場合は、しきい値は、ジョブを実行するタスク自体によって定まる。なお、しきい値は、ＣＰＵ１７１の使用率の上昇率としてもよい。また、第１のタスクのＣＰＵ１７１の使用率が上昇することにより、第２のタスクのＣＰＵ１７１の使用率が相対的に低下する。この場合に、第２のタスクの処理に遅延が生じる場合があり、タイムアウトエラーなどが発生する場合がある。しきい値は、第２のタスクの処理でタイムアウトエラーが発生する前に、第１のタスクのＣＰＵ１７１の状態を検出することが可能な値とすればよい。この場合は、しきい値は、他のジョブを実行する他のタスクとの相対関係によって定まる。ＣＰＵ１７１に対して１つのタスクに許容される使用率の上限をしきい値として予め定めておけばよい。このしきい値は、実験によって求めることができる。なお、しきい値は、ＣＰＵ１７１の使用率の上昇率としてもよい。
【０１３１】
データ特定部２５５Ａが特定する対象データは、ＭＦＰ１００の外部から受信されたデータである。また、対象データは、ＭＦＰ１００においてＣＰＵ１７１が処理を継続するとエラーが発生する恐れのあるデータである。ＭＦＰ１００の外部から受信されるデータは、外部から受信されてＨＤＤ１１３に記憶されたデータを含む。
【０１３２】
負荷増大部２５７は、対象データのデータ量を増加させるので、シミュレート部２５１は、仮想装置にデータ量が増加された対象データにジョブで定められた処理を実行させる。第２の実施の形態におけるサーバー２００において、ＣＰＵ２０１は、仮想装置にＭＦＰ１００が実行しているジョブのすべてを実行させる。このため、ＭＦＰ１００が２以上のジョブを並列で実行している場合には、仮想装置にも同様に２以上のジョブを並列で実行させる。この際に、対象データについてのみデータ量を増加して対応するジョブを実行させる。
【０１３３】
図１２は、第２の実施の形態における操作支援処理の流れの一例を示すフローチャートである。図１２を参照して、図９に示した第１の実施の形態における操作支援処理と異なる点は、ステップＳ０１〜ステップＳ０５に代えて、ステップＳ２１〜ステップＳ３１が実行される点である。その他の処理は、図９に示した処理と同じなので、ここでは説明を繰り返さない。
【０１３４】
サーバー２００が備えるＣＰＵ２０１は、ステップＳ２１において、監視対象を決定する。予め定められた装置を監視対象に決定する。ここでは、ＭＦＰ１００，１００Ａ，１００Ｂを監視対象に決定する場合を例に説明する。次のステップＳ２２においては、監視対象であるＭＦＰ１００，１００Ａ，１００Ｂそれぞれから装置情報を取得する。そして、ステップＳ２３においては、監視対象であるＭＦＰ１００，１００Ａ，１００Ｂそれぞれから取得された装置情報に基づいて、ＭＦＰ１００，１００Ａ，１００Ｂをそれぞれシミュレートする仮想装置を設定する。
【０１３５】
ステップＳ２４以降の処理については、監視対象であるＭＦＰ１００，１００Ａ，１００Ｂそれぞれに対して実行される。ここでは、ステップＳ２４以降の処理について、監視対象であるＭＦＰ１００に対して実行される処理を例に説明する。ステップＳ２４においては、ＭＦＰ１００からジョブとデータとを受信したか否かを判断する。ジョブとデータとを受信したならば処理をステップＳ２５に進めるが、そうでなければ処理をステップＳ２６に進める。ステップＳ２５においては、ＭＦＰ１００をシミュレートする仮想装置にステップＳ２４において受信されたデータに対して、ステップＳ２４において受信されたジョブを実行させ、処理をステップＳ２６に進める。
【０１３６】
ステップＳ２６においては、仮想パラメータを取得し、処理をステップＳ２７に進める。ＭＦＰ１００をシミュレートする仮想装置の仮想ＣＰＵ３０１の使用率を仮想パラメータとして取得する。仮想ＣＰＵ３０１が複数のジョブを実行している場合には、複数のジョブそれぞれについて、仮想ＣＰＵ３０１の使用率を実パラメータとして取得する。
【０１３７】
ステップＳ２７においては、仮想パラメータがしきい値ＴＨ以上か否かを判断する。複数のジョブを実行している場合には、複数のジョブそれぞれについて、仮想パラメータがしきい値ＴＨ以上か否かを判断する。複数のジョブの少なくとも１つにおいて、仮想パラメータがしきい値ＴＨ以上ならば処理をステップＳ２８に進めるが、そうでなければ処理をＳ２４に戻す。ステップＳ２８においては、仮想パラメータがしきい値ＴＨ以上となるジョブが処理対象とするデータを処理データに特定する。
【０１３８】
次のステップＳ２９においては、処理データが、監視対象であるＭＦＰ１００が外部から受信したデータか否かを判断する。処理データが外部から受信されたデータならば処理をステップＳ３０に進めるが、そうでなければ処理をステップＳ２４に戻す。ステップＳ３０においては、処理データを対象データに決定し、処理をステップＳ３１に進める。
【０１３９】
ステップＳ３１においては、対象データのデータ量を増加し、処理をステップＳ０６に進める。ＭＦＰ１００をシミュレートする仮想装置が実行している対象データのデータ量を増加させて、ジョブを実行させる。
【０１４０】
＜第２の変形例＞
上述した第２の実施の形態におけるサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれをシミュレートする仮想装置のいずれかで受信されたデータに基づいて、設定値を変更するようにした。第２の変形例におけるサーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれをシミュレートする仮想装置の２以上で仮想パラメータがしきい値を超えるデータを受信する場合、２以上のデータを解析して、２以上のデータで共通する部分を決定し、決定された部分のデータを増加した共通データを生成し、共通データに対してジョブで定められる処理を実行させる。例えば、ＭＦＰ１００Ａをシミュレートする仮想装置でジョブＡと対象データＡが特定され、ＭＦＰ１００Ｂをシミュレートする仮想装置でジョブＢと対象データＢが特定される場合、対象データＡと対象データＢとで共通する共通部分を決定し、決定された共通部分のデータ量を増加した共通データを処理対象として、仮想装置にジョブを実行させる。例えば、ＭＦＰ１００Ａをシミュレートする仮想装置に、共通分部のデータ量を増加した共通データにジョブＡを実行させる。なお、ＭＦＰ１００Ｂをシミュレートする仮想装置に、共通分部のデータ量を増加した共通データにジョブＢを実行させるようにしてもよい。
【０１４１】
第２の実施の形態におけるサーバー２００は、ＭＦＰ１００が実行中の複数の処理のすべてを仮想装置に実行させ、仮想装置が実行する１以上の処理ごとに仮想装置の負荷を示す仮想パラメータを取得し、仮想パラメータが予め定められた予測状態となる処理の対象となるデータを対象データに特定する。このため、第２の実施の形態におけるサーバー２００は、第１の実施の形態におけるサーバー２００が有する効果に加えて、ＭＦＰ１００が備えるＣＰＵ１７１の負荷をできるだけ少なくすることができる。
【０１４２】
また、仮想装置の仮想ＣＰＵ３０１の使用率を仮想パラメータとして取得するので、対象データを容易に特定することができる。
【０１４３】
なお、上述した実施の形態においては、状態予測装置の一例としてサーバー２００を示したが、図９または図１２に示した状態予測処理を、サーバー２００に実行させる状態予測方法、また、その状態予測方法をサーバー２００のＣＰＵ２０１に実行させる状態予測プログラムとして発明を捉えることができるのは言うまでもない。
【０１４４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１４５】
＜付記＞
（１）  負荷増大手段は、仮想装置に対象データを、情報処理装置が受信データを受信した第１の受信速度よりも高い第２の受信速度で受信させるようにシミュレート手段を制御する、請求項２に記載の状態予測装置。この局面に従えば、仮想装置に対象データを情報処理装置が受信データを受信した第１の受信速度よりも高い第２の受信速度で受信させるので、仮想装置が対象データを受信する時間を短くすることができる。
【符号の説明】
【０１４６】
１  情報処理システム、３  ネットワーク、１００，１００Ａ，１００Ｂ  ＭＦＰ、２００  サーバー、１１１  メイン基板、１１５  操作パネル、１１５Ａ  操作パネル、１１８  表示部、１１９  操作部、１２０，１２０Ａ  自動原稿搬送装置、１３０，１３０Ａ  原稿読取部、１４０，１４０Ａ  画像形成部、１５０，１５０Ａ  給紙部、１６０，１６０Ａ  通信Ｉ／Ｆ部、１７０，１７０Ａ  ファクシミリ部、１７１  ＣＰＵ、１７３  ＲＯＭ、１７５  ＲＡＭ、１７７  画像制御ＡＳＩＣ、１７９  バス、１８０，１８０Ａ  外部記憶装置、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  通信部、２０６  表示部、２０７  操作部、２０９  外部記憶装置、５１  実パラメータ取得部、５３  対象データ特定部、５５，５５Ａ  装置情報送信部、５７  ジョブ情報送信部、２５１  シミュレート部、２５３，２５３Ａ  装置情報取得部、２５５，２５５Ａ  データ特定部、２５７  負荷増大部、２５９  仮想パラメータ取得部、２６１  動作状態取得部、２６３  条件判定部、２６５  設定値決定部、２６７  設定値変更部、２６９  設定部、３００  ＣＰＵ周辺シミュレータ、３０１  仮想ＣＰＵ、３０３  仮想メモリ、３０５  周辺モデル、３０７  同期設定モデル、３０９  割込制御部、３１１  バス、３２０  ＨＷシミュレータ、３２１  ＰＣＩ−ＥｘｐｒｅｓｓＢｕｓモデル、３２３  画像制御ＡＳＩＣモデル、３２５  ハードウェア資源モデル。
【図１】
2018206245.tif 000003
【図２】
2018206245.tif 000004
【図３】
2018206245.tif 000005
【図４】
2018206245.tif 000006
【図５】
2018206245.tif 000007
【図６】
2018206245.tif 000008
【図７】
2018206245.tif 000009
【図８】
2018206245.tif 000010
【図９】
2018206245.tif 000011
【図１０】
2018206245.tif 000012
【図１１】
2018206245.tif 000013
【図１２】
2018206245.tif 000014