(57)【要約】【課題】ファームウェアのバージョンに起因する不具合が生じ、利用者がサポートセンタに連絡する等して不具合を解消する場合に比べて、装置が不具合により動作不能となる時間を短縮化し得る技術を提供する。【解決手段】画像処理装置１２のＲＯＭ１２１に、第１ファームウェア及び第２ファームウェアを記憶する。第１ファームウェアは最新バージョンであり、第２ファームウェアは古いバージョンでの動作が保証されている。制御部１２０は、受け付けたジョブを第１ファームウェアで処理する場合であって、ジョブのバージョンと第１ファームウェアのバージョンの相違により不具合が生じたときに、当該不具合が予想された不具合であれば、第２ファームウェアに切り替えてジョブを処理する。【選択図】図１
2019057186.tif 000002
【特許請求の範囲】
【請求項１】
第１ファームウェア及び第２ファームウェアを記憶する記憶部と、
受け付けたジョブを前記第１ファームウェアで処理する場合であって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じたときに、前記ジョブのバージョンで不具合が生じない前記第２ファームウェアに切り替えて前記ジョブを処理する制御部と、
を備える情報処理装置。
【請求項２】
前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により生じると予想される不具合リストを記憶する第２記憶部
を備え、
前記制御部は、前記不具合が生じたときに、前記不具合リストを用いて前記第２ファームウェアに切り替える
請求項１に記載の情報処理装置。
【請求項３】
第１ファームウェア及び第２ファームウェアを記憶する記憶部と、
受け付けたジョブを前記第１ファームウェアで処理するに先だって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じる可能性がある場合に、前記ジョブのバージョンで不具合が生じない前記第２ファームウェアに切り替えて前記ジョブを処理する制御部と、
を備える情報処理装置。
【請求項４】
前記制御部は、受け付けたジョブを発行したアプリケーションのバージョン情報を用いて前記第２ファームウェアに切り替える
請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、受け付けたジョブに特定データパターンが含まれる場合に前記第２ファームウェアに切り替える
請求項３に記載の情報処理装置。
【請求項６】
前記制御部は、前記第１ファームウェアでの処理を中止し、再起動して前記第２ファームウェアを前記記憶部から読み出して前記ジョブを処理する
請求項１，３のいずれかに記載の情報処理装置。
【請求項７】
前記制御部は、前記第１ファームウェアを実行しつつ、前記第２ファームウェアを別に起動して前記ジョブを処理する
請求項１，３のいずれかに記載の情報処理装置。
【請求項８】
前記制御部は、前記第１ファームウェアから前記第２ファームウェアに切り替える際に、利用者に通知する
請求項１，３のいずれかに記載の情報処理装置。
【請求項９】
前記制御部は、受け付けたジョブ毎に切替を行う
請求項１，３のいずれかに記載の情報処理装置。
【請求項１０】
前記第２ファームウェアは、前記第１ファームウェアへの更新時に前記記憶部に記憶される
請求項１，３のいずれかに記載の情報処理装置。
【請求項１１】
前記第２ファームウェアは、外部サーバから供給されて前記記憶部に記憶される
請求項１，３のいずれかに記載の情報処理装置。
【請求項１２】
前記第１ファームウェアは更新後のバージョンであり、前記第２ファームウェアは更新前のバージョンである
請求項１〜１１のいずれかに記載の情報処理装置。
【請求項１３】
前記情報処理装置は画像処理装置であり、
前記制御部は、前記ジョブとしてプリントジョブを処理する
請求項１〜１２のいずれかに記載の情報処理装置。
【請求項１４】
コンピュータに、
ジョブを受け付けるステップと、
受け付けたジョブを記憶部に記憶された第１ファームウェアで処理する場合であって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じたときに、前記記憶部に記憶された、前記ジョブのバージョンで不具合が生じない第２ファームウェアに切り替えて前記ジョブを処理するステップと、
を実行させるプログラム。
【請求項１５】
コンピュータに、
ジョブを受け付けるステップと、
受け付けたジョブを記憶部に記憶された第１ファームウェアで処理するに先だって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じる可能性がある場合に、前記記憶部に記憶された、前記ジョブのバージョンで不具合が生じない第２ファームウェアに切り替えて前記ジョブを処理するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、周辺機器の不具合状況に応じた適切なファームウェアを自動的に選択し周辺機器の不具合を解消させることを課題とした保守管理システムが記載されている。 周辺機器は、処理実行中に不具合が検出された場合に各部の状態を収集しログを生成し、ログをＤＢサーバへ送信し不具合を解決可能なファームウェアの有無を問い合わせる。ＤＢサーバは、それに対応し、ファームウェアのバージョン情報とそのバージョンで改修された不具合を示す不具合改修情報とを関連づけて有するデータベースを参照して、不具合を解決可能なファームウェアの有無および不具合を解決可能なファームウェアがある場合にはそのファームウェアのバージョンを特定する。周辺機器は、そのファームウェアを取得しファームウェアを更新する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−４３０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
機器のファームウェアの更新には、廃れたアプリケーションの機能を削除してスリム化する修正を含む場合がある。このような更新の場合には、ファームウェアの更新により不具合が新たに生じ得る。
【０００５】
例えば、ＰＣ（パーソナルコンピュータ）上のアプリケーションが古いバージョンであり、ＰＣに接続されたプリンタがこの古いバージョンにおいて正常に動作している場合を想定する。
【０００６】
ＰＣ上の古いアプリケーションの当該古いバージョンのサポート期間が終了し、新しいバージョンへの移行が推奨されたため、プリンタの動作も新しいバージョンに向けて最適化すべくプリンタのファームウェアも新しいバージョンに更新する必要がある。
【０００７】
但し、新しいバージョンのファームウェアでは、ＰＣ上の古いバージョンのアプリケーションからの出力に対してメモリ不足や出力遅延等の不具合が生じ得ることが分かっている場合に、ＰＣ上の古いバージョンのアプリケーションを使用し続けている利用者が、プリンタのファームウェアを更新すると、不具合が新たに生じるおそれがある。
【０００８】
この場合、利用者がファームウェア製造元やサポートセンタに電話等で不具合状況を説明し、これに応じてサービスマンが訪問し、あるいは遠隔からファームウェアのチェックを行う等するため、機器が正常に動作するまで時間を要してしまう。
【０００９】
本発明の目的は、ファームウェアのバージョンに起因する不具合が生じ、利用者がサポートセンタに連絡する等して不具合を解消する場合に比べて、装置が不具合により動作不能となる時間を短縮化し得る技術を提供することにある。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、第１ファームウェア及び第２ファームウェアを記憶する記憶部と、受け付けたジョブを前記第１ファームウェアで処理する場合であって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じたときに、前記ジョブのバージョンで不具合が生じない前記第２ファームウェアに切り替えて前記ジョブを処理する制御部とを備える情報処理装置である。
【００１１】
請求項２に記載の発明は、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により生じると予想される不具合リストを記憶する第２記憶部を備え、前記制御部は、前記不具合が生じたときに、前記不具合リストを用いて前記第２ファームウェアに切り替える請求項１に記載の情報処理装置である。
【００１２】
請求項３に記載の発明は、第１ファームウェア及び第２ファームウェアを記憶する記憶部と、受け付けたジョブを前記第１ファームウェアで処理するに先だって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じる可能性がある場合に、前記ジョブのバージョンで不具合が生じない前記第２ファームウェアに切り替えて前記ジョブを処理する制御部とを備える情報処理装置である。
【００１３】
請求項４に記載の発明は、前記制御部は、受け付けたジョブを発行したアプリケーションのバージョン情報を用いて前記第２ファームウェアに切り替える請求項３に記載の情報処理装置である。
【００１４】
請求項５に記載の発明は、前記制御部は、受け付けたジョブに特定データパターンが含まれる場合に前記第２ファームウェアに切り替える請求項３に記載の情報処理装置である。
【００１５】
請求項６に記載の発明は、前記制御部は、前記第１ファームウェアでの処理を中止し、再起動して前記第２ファームウェアを前記記憶部から読み出して前記ジョブを処理する請求項１，３のいずれかに記載の情報処理装置である。
【００１６】
請求項７に記載の発明は、前記制御部は、前記第１ファームウェアを実行しつつ、前記第２ファームウェアを別に起動して前記ジョブを処理する請求項１，３のいずれかに記載の情報処理装置である。
【００１７】
請求項８に記載の発明は、前記制御部は、前記第１ファームウェアから前記第２ファームウェアに切り替える際に、利用者に通知する請求項１，３のいずれかに記載の情報処理装置である。
【００１８】
請求項９に記載の発明は、前記制御部は、受け付けたジョブ毎に切替を行う請求項１，３のいずれかに記載の情報処理装置である。
【００１９】
請求項１０に記載の発明は、前記第２ファームウェアは、前記第１ファームウェアへの更新時に前記記憶部に記憶される請求項１，３のいずれかに記載の情報処理装置である。
【００２０】
請求項１１に記載の発明は、前記第２ファームウェアは、外部サーバから供給されて前記記憶部に記憶される請求項１，３のいずれかに記載の情報処理装置である。
【００２１】
請求項１２に記載の発明は、前記第１ファームウェアは更新後のバージョンであり、前記第２ファームウェアは更新前のバージョンである請求項１〜１１のいずれかに記載の情報処理装置である。
【００２２】
請求項１３に記載の発明は、前記情報処理装置は画像処理装置であり、前記制御部は、前記ジョブとしてプリントジョブを処理する請求項１〜１２のいずれかに記載の情報処理装置である。
【００２３】
請求項１４に記載の発明は、コンピュータに、ジョブを受け付けるステップと、受け付けたジョブを記憶部に記憶された第１ファームウェアで処理する場合であって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じたときに、前記記憶部に記憶された、前記ジョブのバージョンで不具合が生じない第２ファームウェアに切り替えて前記ジョブを処理するステップとを実行させるプログラムである。
【００２４】
請求項１５に記載の発明は、コンピュータに、ジョブを受け付けるステップと、受け付けたジョブを記憶部に記憶された第１ファームウェアで処理するに先だって、前記ジョブのバージョンと前記第１ファームウェアのバージョンの相違により不具合が生じる可能性がある場合に、前記記憶部に記憶された、前記ジョブのバージョンで不具合が生じない第２ファームウェアに切り替えて前記ジョブを処理するステップとを実行させるプログラムである。
【発明の効果】
【００２５】
請求項１〜６、１４、１５に記載の発明によれば、ファームウェアのバージョンに起因する不具合が生じ、利用者がサポートセンタに連絡する等して不具合を解消する場合に比べて、装置が不具合により動作不能となる時間が短縮化される。
【００２６】
請求項７に記載の発明によれば、さらに、第１ファームウェアを実行しつつ第２ファームウェアを起動してジョブが処理される。
【００２７】
請求項８に記載の発明によれば、さらに、切替時に利用者に通知される。
【００２８】
請求項９に記載の発明によれば、さらに、ジョブ毎に切替が行われる。
【００２９】
請求項１０に記載の発明によれば、さらに、第２ファームウェアは、第１ファームウェアへの更新時に記憶される。
【００３０】
請求項１１に記載の発明によれば、さらに、第２ファームウェアは、外部サーバから供給されて記憶される。
【００３１】
請求項１２に記載の発明によれば、さらに、更新時の不具合が更新前のバージョンで解消され得る。
【００３２】
請求項１３に記載の発明によれば、さらに、画像処理装置のファームウェアの不具合により動作不能となる時間が短縮化される。
【図面の簡単な説明】
【００３３】
【図１】実施形態のシステム構成図である。
【図２】実施形態のファームウェア切替説明図である。
【図３】実施形態の処理フローチャートである。
【図４】他の実施形態の処理フローチャートである。
【図５】さらに他の実施形態の処理フローチャートである。
【図６】変形例のシステム構成図である。
【図７】変形例の処理フローチャートである。
【発明を実施するための形態】
【００３４】
以下、図面に基づき本発明の実施形態について、情報処理装置としてコピーやプリント、スキャン、ＦＡＸ等の複数機能を実行する画像処理装置（あるいは複合機）を例にとり説明する。
【００３５】
＜実施形態１＞
１．構成
図１は、本実施形態における画像処理装置を含むシステムの構成ブロック図である。システムは、端末装置１０及び画像処理装置１２を備える。端末装置１０と画像処理装置１２は、通信回線１４を介して接続される。通信回線１４は、例えばＬＡＮ（ローカルエリアネットワーク）等のデータ通信ネットワークである。通信回線１４は、有線、無線のいずれでもよい。
【００３６】
端末装置１０は、ＰＣやスマートフォン等であり、利用者の指示に従い、文書のプリント命令を含むプリントジョブ等を送信する。
【００３７】
画像処理装置１２は、１つ又は複数のＣＰＵで構成される制御部１２０、ＲＯＭ１２１、ＲＡＭ１２２、ＨＤＤ１２３、入出力インターフェイス１２４、操作部１２５、及び画像処理部１２６を備える。
【００３８】
１又は複数のＣＰＵで構成される制御部１２０は、ＲＯＭ１２１やＨＤＤ１２３に記憶された処理プログラムに従い、通信回線１４を介して端末装置１０からプリントジョブ命令等を受け付け、ＰＤＬデータを解釈して中間データを生成し、生成した中間データからさらに描画データ（ラスターデータ）を生成する。また、制御部１２０は、操作部１２５から受け付けたコピー、スキャン、ＦＡＸ、メール等の各種アプリケーションの命令を実行する。
【００３９】
画像処理部１２６は、プリントモジュール、スキャナモジュール、ファックスモジュール、メールモジュール、用紙給紙モジュール、原稿給紙モジュール、及び画像処理アクセラレータを備える。
【００４０】
プリントモジュールは、画像を用紙に出力する機能を有するモジュールである。例えば、公知のインクジェット方式の構成を備え、描画データを用紙に印刷する。ノズル等から液体あるいは溶融固体インクを吐出し、紙、フィルム等に記録を行う。インクを吐出する方法には、静電誘引力を利用してインクを吐出させるドロップオンデマンド方式（圧力パルス方式）、高熱により気泡を形成・成長させることで生じる圧力を利用してインクを吐出させる熱インクジェット方式等がある。
【００４１】
スキャナモジュールは、用紙から画像を読み取って電子データに変換するモジュールである。
【００４２】
ファックスモジュールは、モデムやファックス用画像処理モジュールを備え、ファックス機能を実行するモジュールである。
【００４３】
メールモジュールは、電子メール機能を実行するモジュールである。
【００４４】
用紙給紙モジュールは、用紙トレイからプリントモジュールに用紙を搬送するモジュールである。
【００４５】
原稿給紙モジュールは、原稿トレイからファックスモジュールに用紙を搬送するモジュールである。
【００４６】
画像処理アクセラレータは、スキャナモジュール等と連動して圧縮／伸長処理を行うモジュールである。この画像処理アクセラレータは必須ではなく、付加的モジュールとしてもよい。
【００４７】
入出力インターフェイス（Ｉ／Ｆ）１２４は、通信回線１４を介して端末装置１０とデータを送受信する。
【００４８】
操作部１２５は、タッチパネルを含み、制御部１２０からの制御指令に応じて画像処理装置１２が備える各種基本機能（コピー、スキャン、ファックス、メール等）に対応するアプリケーションアイコンを表示する。例えば、コピー機能に対応するコピーアイコン、ファックスに対応するファックスアイコン、文書をスキャンしてメール送信する機能に対応するスキャンｔｏメールアイコン等である。
【００４９】
画像処理装置１２は、これら以外にも、用紙のパンチやソート等を行うフィニッシャ、ＵＳＢ、ＩＣカードリーダ等から構成され利用者の認証を行う認証部及び課金部を備えてもよい。また、画像処理装置１２は、通信回線１４を介してインターネット及び外部サーバ（ネットワークサーバ）に接続されてもよく、イーサネット（登録商標）やＷｉＦｉ（登録商標）を備えてもよい。
【００５０】
制御部１２０は、ＲＯＭ１２１に記憶されたファームウェアを読み出して実行することで端末装置１０からのプリントジョブ等を処理するが、ファームウェアを最新のバージョンに更新した場合に不具合が生じるおそれがある。
【００５１】
すなわち、既述したように、端末装置１０上の古いアプリケーションの古いバージョンのサポート期間が終了し、新しいバージョンへの移行が推奨されたため、画像処理装置１２の動作も新しいバージョンに向けて最適化すべく画像処理装置１２のファームウェアも新しいバージョンに更新する必要がある。但し、新しいバージョンのファームウェアでは、端末装置１０上の古いバージョンのアプリケーションからの出力に対してメモリ不足や出力遅延等の不具合が生じ得ることが分かっている場合に、端末装置１０上の古いバージョンのアプリケーションを使用し続けている利用者が、画像処理装置１２のファームウェアを更新すると、不具合が新たに生じるおそれがある。
【００５２】
そこで、制御部１２０は、ファームウェアのバージョンに起因する不具合の発生が予想される場合に、端末装置１０上の古いバージョンのアプリケーションでの動作が保証できる回避バージョンのファームウェアに切り替えてこれを一時的に動作させることで、仮に不具合が生じたとしても回避バージョンのファームウェアにより迅速に画像処理装置１２を正常な動作状態に復帰させる。
【００５３】
ここで、実施形態における「ファームウェア」は、電子機器に組み込まれたコンピュータシステム（ハードウェア）を制御するためのソフトウェアを意味し、特に、実施形態ではフラッシュメモリ等の不揮発性でプログラム可能なメモリに記憶され、必要に応じて更新可能なソフトウェアを意味する。
【００５４】
図２は、制御部１２０におけるファームウェアの切替を模式的に示す。例えばＥＥＰＲＯＭ等のプログラム可能なＲＯＭ１２１は記憶部として機能し、ファームウェアの各種バージョンが記憶されている。例えば、図に示すように第１ファームウェアとしてのファームウェアバージョン１、及び第２ファームウェアとしてのファームウェアバージョン２である。ファームウェアバージョン１は、現時点における更新後の最新バージョンである。また、ファームウェアバージョン２は、端末装置１０の古いバージョンのアプリケーションでの動作が保証されたバージョンであり、不具合を回避し得る回避バージョンである。ファームウェアバージョン２は、ファームウェアバージョン１と異なるタイミングでＲＯＭ１２１に記憶される他、ファームウェアバージョン１と同じタイミングでＲＯＭ１２１に記憶され得る。具体的には、ＲＯＭ１２１のファームウェアをファームウェアバージョン１に更新（アップデート）する際に、同時にファームウェアバージョン２もファームウェアバージョン１とセットでＲＯＭ１２１に記憶する。
【００５５】
制御部１２０は、端末装置１０からのプリントジョブを受け付けて、ＲＯＭ１２１に記憶されたファームウェアを読み出して実行することで当該プリントジョブを処理するが、最新のファームウェアバージョン１でプリントジョブを処理する際に不具合が生じた場合、起動選択情報ファイル１２７を参照し、当該不具合がファームウェアバージョン１において予想された不具合であるか否かを判定する。起動選択情報ファイル１２７は、ファームウェアバージョン１，ファームウェアバージョン２と同様にＲＯＭ１２１に記憶されてもよく、あるいはＨＤＤ１２３に記憶されてもよい。起動選択情報ファイル１２７を記憶するＲＯＭ１２１あるいはＨＤＤ１２３は、第２記憶部として機能する。
【００５６】
起動選択情報ファイル１２７には、ファームウェアバージョン１において生じると予想される不具合リストと、その不具合が生じた場合の回避バージョンの情報が含まれており、制御部１２０は、実際に生じた不具合が起動選択情報ファイル１２７に含まれている場合に、その不具合の回避バージョン情報を読み出し、ファームウェアを対応する回避バージョンに切り替えて使用する。
【００５７】
例えば、起動選択情報に、
ファームウェアバージョン１の不具合：メモリ不足
回避バージョン：ファームウェアバージョン２
と記述されている場合において、ファームウェアバージョン１を用いてプリントジョブを処理した結果、メモリ不足の不具合が生じた場合に、制御部１２０は、起動選択情報ファイル１２７を参照することでファームウェアバージョン２を不具合回避用のファームウェアと認識し、ＲＯＭ１２１からファームウェアバージョン２を読み出してプリントジョブを処理する。ファームウェアバージョン２は古いバージョンでの動作が保証されているから、当該プリントジョブを正常に処理できるはずであり、利用者は、たとえファームウェアバージョン１で不具合が生じたとしても、迅速に不具合が解消される。
【００５８】
ファームウェアバージョン１は、例えば最新バージョンのファームウェアであり、ファームウェアバージョン２は、例えばそれよりも一つ前の古いバージョンのファームウェアとし得る。この場合、ＲＯＭ１２１には最新バージョンと一つ前の古いバージョンのファームウェアが並存して記憶されることになる。このことは、ファームウェアを更新する場合に、その前の古いバージョンのファームウェアもＲＯＭ１２１に残して更新することを意味する。
【００５９】
画像処理装置１２が起動される場合、制御部１２０は最新バージョンのファームウェアを読み込んで起動するが、プリントジョブの処理中に不具合が生じた場合に、それが予想された不具合であるときに、制御部１２０は、一つ前の古いバージョンのファームウェアに切り替えてプリントジョブを処理する。
【００６０】
２．処理
図３は、実施形態の処理フローチャートを示す。
【００６１】
画像処理装置１２は、電源がオンされると、現在の指定バージョンのファームウェアを読み込んで起動する（Ｓ１０１）。通常、指定バージョンは更新後の最新のバージョンである。
【００６２】
次に、端末装置１０からプリントジョブを受け付けると、当該プリントジョブをメモリに保持してスプールする（Ｓ１０２）。
【００６３】
次に、Ｓ１０１で読み込んだバージョンのファームウェアによりプリントジョブを処理する（Ｓ１０３）。
【００６４】
プリントジョブを処理中に不具合が生じない場合（Ｓ１０４でＮＯ）にはそのまま処理を完了する。
【００６５】
他方、プリントジョブの処理中に何らかの不具合が生じた場合（Ｓ１０４でＹＥＳ）、制御部１２０は、ＲＯＭ１２１やＨＤＤ１２３に記憶されている起動選択情報ファイル１２７を参照し、現在生じている不具合が起動選択情報に記述されている不具合に一致するか否かを判定する（Ｓ１０５）。
【００６６】
起動選択情報ファイル１２７には、現在指定されているバージョンのファームウェアで予想される不具合リストが記述されており、現在生じている不具合がこのリストに含まれている場合には、更新により予想された不具合であると判定し（Ｓ１０５でＹＥＳ）、制御部１２０は、起動選択情報ファイル１２７に記述された回避バージョンに切り替えて再起動する（Ｓ１０６）。回避バージョンのファームウェアにより再起動した後、制御部１２０は、スプールされているプリントジョブを再度処理する（Ｓ１０７）。
【００６７】
なお、回避バージョンに切り替えて再起動する際には、表示部に、
「回避バージョンに一時的に切り替えて再起動します。よろしいですか？  Ｙ／Ｎ」
等とメッセージを表示してもよく、利用者からの肯定的な指示を受け付けた場合に再起動してもよい。
【００６８】
また、回避バージョンでプリントジョブを処理した後は、利用者は必要に応じて端末装置１０のアプリケーションを最新バージョンに更新した上でプリントジョブを画像処理装置１２に送信する。このとき、画像処理装置１２は、Ｓ１０１で現在の指定バージョン、すなわち最新のファームウェアのバージョン（回避バージョンでない）で当該プリントジョブを処理する。
【００６９】
現在生じている不具合がリストに含まれていない場合、制御部１２０は、更新により予想された不具合ではないと判定し（Ｓ１０５でＮＯ）、この場合には回避バージョンに切り替えることなく、不具合発生の通知を表示部に表示して利用者に通知する（Ｓ１０８）。この場合、利用者はファームウェア製造元やサポートセンタに電話等で不具合状況を説明する。
【００７０】
このように、生じた不具合が予想された不具合である場合には、制御部１２０は回避バージョンのファームウェアに切り替えて再起動した上でプリントジョブを処理するので、画像処理装置１２における動作不能時間が削減される。
【００７１】
＜実施形態２＞
図４は、本実施形態の処理フローチャートを示す。本実施形態では、仮想マシン（ＶＭ）を使用した仮想化アプローチの下でジョブが実行される。仮想化アプローチでは、複数の仮想マシンが物理的なハードウェアリソース上で稼働するように構成され、それぞれの仮想マシンは、自分自身のＣＰＵ割り当て、及びメモリ割り当てを含んでいる。仮想化マシンを用いた仮想化に加えて、仮想化コンテナを用いたコンテナベースの仮想化も実施され得る。メインのファームウェアに加えて、回避バージョンのファームウェアが仮想化コンテナに含まれ、制御部１２０は、不具合が生じた場合に、当該不具合が予想された不具合であれば、メインのファームウェアとは別に回避バージョンのファームウェアを起動してプリントジョブを処理する。
【００７２】
図４において、画像処理装置１２は、電源がオンされると、現在の指定バージョンのファームウェアを読み込んで起動する（Ｓ２０１）。通常、指定バージョンは更新後の最新のバージョンである。
【００７３】
次に、端末装置１０からプリントジョブを受け付けると、当該プリントジョブをメモリに保持してスプールする（Ｓ２０２）。
【００７４】
次に、Ｓ２０１で読み込んだバージョンのファームウェアによりプリントジョブを処理する（Ｓ２０３）。
【００７５】
プリントジョブを処理中に不具合が生じない場合（Ｓ２０４でＮＯ）にはそのまま処理を完了する。
【００７６】
他方、プリントジョブの処理中に何らかの不具合が生じた場合（Ｓ２０４でＹＥＳ）、制御部１２０は、ＲＯＭ１２１やＨＤＤ１２３に記憶されている起動選択情報ファイル１２７を参照し、現在生じている不具合が起動選択情報に記述されている不具合に一致するか否かを判定する（Ｓ２０５）。
【００７７】
起動選択情報ファイル１２７には、現在指定されているバージョンのファームウェアで予想される不具合リストが記述されており、現在生じている不具合がこのリストに含まれている場合には、更新により予想された不具合であると判定し（Ｓ２０５でＹＥＳ）、制御部１２０は、起動選択情報ファイル１２７に記述された回避バージョンを別に起動する（Ｓ２０６）。コンテナベースの仮想化では、メインプログラムが起動された状態で別のプログラムが起動される。回避バージョンのファームウェアを起動した後、制御部１２０は、スプールされているプリントジョブを回避バージョンのファームウェアで再度処理する（Ｓ２０７）。
【００７８】
なお、回避バージョンを別に起動する際には、表示部に、
「回避バージョンを一時的に起動します。よろしいですか？  Ｙ／Ｎ」
等とメッセージを表示してもよく、利用者からの肯定的な指示を受け付けた場合に起動してもよい。
【００７９】
また、回避バージョンでプリントジョブを処理した後は、利用者は必要に応じて端末装置１０のアプリケーションを最新バージョンに更新した上でプリントジョブを画像処理装置１２に送信する。このとき、画像処理装置１２は、Ｓ２０１で現在の指定バージョン、すなわち最新のファームウェアのバージョン（回避バージョンでない）で当該プリントジョブを処理する。
【００８０】
現在生じている不具合がリストに含まれていない場合、制御部１２０は、更新により予想された不具合ではないと判定し（Ｓ２０５でＮＯ）、この場合には回避バージョンを別に起動することなく、不具合発生の通知を表示部に表示して利用者に通知する（Ｓ２０８）。この場合、利用者はファームウェア製造元やサポートセンタに電話等で不具合状況を説明する。
【００８１】
＜実施形態３＞
実施形態１及び実施形態２では、不具合が実際に生じた場合に当該不具合が予想された不具合であれば回避バージョンのファームウェアを起動してプリントジョブを処理しているが、実際に不具合が生じる前であっても不具合が生じる可能性がある場合に、予め回避バージョンのファームウェアを起動してプリントジョブを処理してもよい。
【００８２】
図５は、本実施形態の処理フローチャートを示す。
【００８３】
画像処理装置１２は、電源がオンされると、現在の指定バージョンのファームウェアを読み込んで起動する（Ｓ３０１）。通常、指定バージョンは更新後の最新のバージョンである。
【００８４】
次に、端末装置１０からプリントジョブを受け付けると、当該プリントジョブをメモリに保持してスプールする（Ｓ３０２）。
【００８５】
次に、スプールしたプリントジョブを処理するに先立って、制御部１２０は、プリントジョブの属性を用いて当該プリントジョブが端末装置１０の特定アプリケーションの特定バージョンにより発行されたものであるか否かを判定する（Ｓ３０３）。既述したように、画像処理装置１２の新しいバージョンのファームウェアでは、端末装置１０上の古いバージョンのアプリケーションからの出力に対してメモリ不足や出力遅延等の不具合が生じ得ることが分かっている場合には、このままプリントジョブを処理しても不具合が生じる可能性が高い。
【００８６】
そこで、プリントジョブが特定アプリケーションの特定バージョンにより発行されたものである場合（Ｓ３０３でＹＥＳ）、制御部１２０は、回避バージョンを別に起動し（Ｓ３０８）、スプールされたプリントジョブを回避バージョンのファームウェアで処理する（Ｓ３０９）。この場合には、事前に回避バージョンのファームウェアが起動されて処理されるので、不具合が生じる可能性は低い。
【００８７】
他方、特定アプリケーションの特定バージョンでない場合（Ｓ３０３でＮＯ）、スプールされたプリントジョブを処理するが（Ｓ３０４）、プリントジョブに特定データパターンが検出されたか否かを判定する（Ｓ３０５）。これは、プリントジョブに含まれるデータが特定データパターンであるときに不具合が生じることが分かっている場合に対応するものである。
【００８８】
そして、特定データパターンが検出された場合（Ｓ３０５でＹＥＳ）、制御部１２０は、回避バージョンを別に起動し（Ｓ３０８）、スプールされたプリントジョブを回避バージョンのファームウェアで処理する（Ｓ３０９）。この場合にも、実際に不具合が生じる前に回避バージョンのファームウェアが起動されて処理されるので、不具合の可能性が低下する。
【００８９】
特定データパターンが検出されない場合（Ｓ３０５でＮＯ）、そのままプリントジョブの処理を続行する。そして、仮に不具合が生じた場合には（Ｓ３０６でＹＥＳ）、その不具合が予想された不具合であれば（Ｓ３０７でＹＥＳ）、実施形態２と同様に回避バージョンのファームウェアを起動して（Ｓ３０８）、プリントジョブを処理する（Ｓ３０９）。また、予想された不具合でなければ（Ｓ３０７でＮＯ）、不具合発生のメッセージを表示部に表示して利用者に通知する（Ｓ３１０）。
【００９０】
このように、本実施形態では、不具合が生じる可能性がある場合に、実際に不具合が生じる前にファームウェアを回避バージョンのファームウェアに切り替えて処理するので、画像処理装置１２の動作不能時間がさらに削減される。
【００９１】
以上、本発明の実施形態について説明したが、本発明はこれらに限定されるものではなく、種々の変形が可能である。以下、変形例について説明する。
【００９２】
＜変形例１＞
実施形態では、不具合が生じた場合、あるいは不具合が生じる前にファームウェアを回避バージョンのファームウェアに切り替えてプリントジョブを処理しているが、回避バージョンのファームウェアがＲＯＭ１２１に記憶されていない場合に、通信回線１４に接続された管理サーバから回避バージョンのファームウェアを取得してもよい。
【００９３】
図６は、変形例１におけるシステム構成図である。端末装置１０、画像処理装置１２に加え、管理サーバ１６が通信回線１４に接続される。
【００９４】
プリントジョブの処理中に不具合が生じた場合、制御部１２０は、起動選択情報ファイル１２７を参照して回避バージョンのファームウェアに切り替えようとするが、ＲＯＭ１２１に当該回避バージョンのファームウェアが記憶されていない場合、管理サーバ１６に対して回避バージョンのファームウェアを要求する。管理サーバ１６は、制御部１２０からの要求に応じて回避バージョンのファームウェアを画像処理装置１２に送信する。
【００９５】
図７は、変形例の処理フローチャートを示す。図３の処理フローチャートに対応するものである。
【００９６】
Ｓ４０１〜Ｓ４０５の処理はＳ１０１〜Ｓ１０５の処理と同一である。Ｓ４０５でＹＥＳ、すなわち更新により予想された不具合と判定された場合、制御部１２０は、当該不具合の回避バージョンのファームウェアがＲＯＭ１２１に記憶されているか否かを判定する（Ｓ４０６）。ＲＯＭ１２１に記憶されていれば回避バージョンに切り替えて再起動し（Ｓ４０８）、スプールされたプリントジョブを処理する（Ｓ４０９）。
【００９７】
他方で、Ｓ４０６でＮＯ、すなわち回避バージョンがＲＯＭ１２１に記憶されていない場合には、制御部１２０は管理サーバ１６に回避バージョンを要求し（Ｓ４０７）、管理サーバ１６から供給された回避バージョンをＲＯＭ１２１に記憶する。以後、Ｓ４０８及びＳ４０９の処理に移行する。
【００９８】
プリントジョブの処理に先立って、プリントジョブが特定アプリケーションの特定バージョンにより発行された場合、あるいはプリントジョブに特定データパターンが存在する場合において、これらに対応するための回避バージョンのファームウェアがＲＯＭ１２１に記憶されていないときも同様であり、制御部１２０は、管理サーバ１６に対して回避バージョンのファームウェアを要求してＲＯＭ１２１に記憶する。
【００９９】
＜変形例２＞
実施形態では、１台の端末装置１０を例示したが、複数の端末装置１０が通信回線１４に接続されていてもよく、この場合、複数の端末装置１０毎にアプリケーションのバージョンが異なり得る。制御部１２０は、端末装置１０毎のプリントジョブの属性を用いてジョブ毎に図３〜図５の処理を実行し、ジョブ毎にファームウェアのバージョンを切り替えてもよい。
【０１００】
例えば、端末装置１０として端末装置Ａ及び端末装置Ｂが接続されており、端末装置Ａのアプリケーションは最新バージョンであり、端末装置Ｂのアプリケーションのバージョンは古いバージョンであるとする。端末装置ＡからのプリントジョブＡについては不具合は生じないが、端末装置ＢからのプリントジョブＢについては不具合が生じ、図３のＳ１０５により予想された不具合であるとして回避バージョンに切り替えて処理する。
【０１０１】
＜変形例３＞
実施形態において、第２ファームウェアとしてのファームウェアバージョン２、あるいは回避バージョンは、１つではなく複数がＲＯＭ１２１に記憶されていてもよく、ジョブ毎に複数の回避バージョンを切り替えて用いてもよい。
【０１０２】
例えば、図２において第２ファームウェアとしてファームウェアバージョン２及びファームウェアバージョン３を記憶し、端末装置１０から発行されたプリントジョブａ、プリントジョブｂに対し、プリントジョブａについてはファームウェアバージョン１からファームウェアバージョン２に切り替え、プリントジョブｂについてはファームウェア１からファームウェア３に切り替える等である。どの回避バージョンに切り替えるかは、プリントジョブのバージョンとファームウェアバージョン１の組合せに応じて決定される。
【０１０３】
＜変形例４＞
実施形態では、情報処理装置として画像処理装置を例示したが、これ以外にもプリンタ単体でもよく、あるいはジョブを受け付けて当該ジョブを更新可能なファームウェアで処理する任意の情報処理装置に適用され得る。
【符号の説明】
【０１０４】
１０  端末装置、１２  画像処理装置、１４  通信回線、１６  管理サーバ、１２０  制御部、１２１  ＲＯＭ、１２７  起動選択情報ファイル。
【図１】
2019057186.tif 000003
【図２】
2019057186.tif 000004
【図３】
2019057186.tif 000005
【図４】
2019057186.tif 000006
【図５】
2019057186.tif 000007
【図６】
2019057186.tif 000008
【図７】
2019057186.tif 000009