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