(57)【要約】【課題】新バージョンのファームウェアをできるだけ早くインストールする。【解決手段】情報処理装置は、インストールされた第１のバージョンのファームウェアを実行する制御部６１と、サーバーから第２のバージョンのファームウェアと、第２のバージョンのファームウェアの検証状態情報との組を取得するダウンロード部５５と、第２のバージョンのファームウェアで更新する更新部５７と、検証状態情報は、複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、エラーが発生しないことの検証が終了した終了状態と、終了状態以外の未検証状態とを含み、検証状態情報に基づいて、複数の処理のうち検証状態情報が未検証状態を示す未検証処理の設定可否状態を、未検証処理を制御手段に実行させるユーザーによる設定が不可能な無効状態に設定する制限部７３と、を備える。【選択図】図４
2019057217.tif 000002
【特許請求の範囲】
【請求項１】
インストールされた第１のバージョンのファームウェアを実行する制御手段と、
サーバーから前記第１のバージョンよりも新しい第２のバージョンのファームウェアと、前記第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロード手段と、
前記第１のバージョンのファームウェアを前記第２のバージョンのファームウェアで更新する更新手段と、
前記検証状態情報は、前記複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、エラーが発生しないことの検証が終了した終了状態と、前記終了状態以外の未検証状態とを含み、
前記検証状態情報に基づいて、前記複数の処理のうち前記検証状態情報が前記未検証状態を示す未検証処理の設定可否状態を、前記未検証処理を前記制御手段に実行させるユーザーによる設定が不可能な無効状態に設定する制限手段と、を備えた情報処理装置。
【請求項２】
前記未検証状態は、エラーが発生することが確認されているエラー状態を含み、
前記制御手段が実行した実行処理の履歴を記憶する履歴記憶手段と、
前記履歴で特定される実行処理に対して、前記第２のバージョンのファームウェアと組になる前記検証状態情報が前記エラー状態を示す場合、前記更新手段による前記第２のバージョンのファームウェアのインストールを禁止する禁止手段と、をさらに備えた、請求項１に記載の情報処理装置。
【請求項３】
インストールされた第１のバージョンのファームウェアを実行する制御手段と、
前記制御手段が実行した実行処理の履歴を記憶する履歴記憶手段と、
サーバーから前記第１のバージョンよりも新しい第２のバージョンのファームウェアと、前記第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロード手段と、
前記第１のバージョンのファームウェアを取得された前記第２のバージョンのファームウェアで更新するために、前記第２のバージョンのファームウェアをインストールする更新手段と、
前記検証状態情報は、前記複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、検証が終了した終了状態と、前記終了状態以外の未検証状態と、を含み、
前記未検証状態は、エラーが発生することが確認されているエラー状態を含み、
前記履歴で特定される実行処理に対して、前記第２のバージョンのファームウェアと組になる前記検証状態情報が前記エラー状態を示す場合、前記更新手段による前記第２のバージョンのファームウェアのインストールを禁止する禁止手段と、を備えた情報処理装置。
【請求項４】
前記未検証状態は、エラーが発生することが確認されていない未確認状態を含み、
前記更新手段により前記第２のバージョンのファームウェアがインストールされた後、前記検証状態情報に基づいて、前記複数の処理のうち前記検証状態情報が前記未確認状態を示す未検証処理の設定可否状態を、前記未検証処理を前記制御手段に実行させるユーザーによる設定が不可能な無効状態に設定する制限手段を、さらに備えた請求項３に記載の情報処理装置。
【請求項５】
前記制限手段により設定可否状態が無効状態に設定された前記未検証処理の設定可否状態を、ユーザーによる前記制御手段に実行させる設定が可能な有効状態に設定する解除手段を、さらに備えた請求項１、２および４のいずれかに記載の情報処理装置。
【請求項６】
前記解除手段により前記未検証処理の前記設定可否状態が前記有効状態に設定される場合に、検証が終了していないことを示す警告メッセージをユーザーに通知する解除時警告手段を、さらに備えた請求項５に記載の情報処理装置。
【請求項７】
ユーザーにより入力される操作に従って、前記解除手段により前記設定可否状態が有効状態に設定された前記未検証処理を前記制御手段に実行させる設定がされることに応じて、検証が終了していないことを示す警告メッセージをユーザーに通知する設定時警告手段を、さらに備えた請求項５または６に記載の情報処理装置。
【請求項８】
前記解除手段により前記設定可否状態が有効状態に設定された前記未検証処理を前記制御手段に実行させるユーザーによる操作が入力されることに応じて、前記第１のバージョンのファームウェアをインストールし、前記制御手段により前記未検証処理が実行された後に、前記第２のバージョンのファームウェアをインストールする一時更新手段を、さらに備えた請求項５に記載の情報処理装置。
【請求項９】
前記解除手段は、前記第２のバージョンのファームウェアをインストールした後の前記未検証処理に対して、前記第１のバージョンのファームウェアがインストールされた状態における設定可否状態が前記制御手段に実行させるユーザーによる設定が可能な有効状態に設定されている場合、前記未検証処理の設定可否状態を有効状態に設定する、請求項５〜８のいずれかに記載の情報処理装置。
【請求項１０】
それに対応する検証状態情報が未検証状態を含まないファームウェアがインストールされた状態における前記制御手段が実行可能な複数の処理それぞれの設定可否状態を更新前状態として取得する更新前状態取得手段と、
前記第２のバージョンのファームウェアで定められる複数の処理のうち終了状態が設定された検証完了処理に対して、前記更新前状態で定められた設定可否状態を設定する設定手段と、をさらに備えた請求項１〜９のいずれかに記載の情報処理装置。
【請求項１１】
前記更新手段により前記第２のバージョンのファームウェアがインストールされることに応じて、他の情報処理装置に前記第２のバージョンのファームウェアをインストールさせるとともに、前記制御手段が実行可能な複数の処理のうち前記検証状態情報が前記未検証状態を示す未検証処理の前記設定可否状態を、前記他の情報処理装置に設定させるグループ設定手段を、さらに備えた請求項１〜１０のいずれかに記載の情報処理装置。
【請求項１２】
外部のサーバーにより提供されるサービスが検証された状態を示す外部検証状態情報を取得する外部検証状態情報取得手段と、
前記外部検証状態情報は、エラーが発生しないことを検証する作業状態を示し、検証が終了した終了状態と、前記終了状態以外の未検証状態とを含み、
前記制限手段は、前記外部検証状態情報に基づいて、前記外部検証状態情報が前記未検証状態を示す未検証サービスを前記外部のサーバーに実行させる設定を不可能な無効状態に設定する、請求項１〜１１のいずれかに記載の情報処理装置。
【請求項１３】
前記更新手段により前記第１のバージョンのファームウェアが前記第２のバージョンのファームウェアで更新されることに応じて、前記第２のバージョンのファームウェアを、他の情報処理装置にインストールさせるために、前記第２のバージョンのファームウェアと前記設定可否状態とを送信するインストール指示手段を、さらに備えた請求項１〜１２のいずれかに記載の情報処理装置。
【請求項１４】
前記第２のバージョンのファームウェアで定められる複数の処理のうち検証状態情報によって未検証状態に設定されている未検証処理に対して、検証のための作業の優先順位を決定する優先順位決定手段を、さらに備えた、請求項１〜１３のいずれかに記載の情報処理装置。
【請求項１５】
前記優先順位決定手段は、前記制御手段が実行した実行処理ほど優先順位を高くする、請求項１４に記載の情報処理装置。
【請求項１６】
前記優先順位決定手段は、前記設定可否状態が有効状態に設定されている未検証処理ほど、優先順位を高くする、請求項１４または１５に記載の情報処理装置。
【請求項１７】
インストールされた第１のバージョンのファームウェアを実行する制御ステップと、
サーバーから前記第１のバージョンよりも新しい第２のバージョンのファームウェアと、前記第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロードステップと、
前記第１のバージョンのファームウェアを前記第２のバージョンのファームウェアで更新する更新ステップと、
前記検証状態情報は、前記複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、エラーが発生しないことの検証が終了した終了状態と、前記終了状態以外の未検証状態とを含み、
前記検証状態情報に基づいて、前記複数の処理のうち前記検証状態情報が前記未検証状態を示す未検証処理の設定可否状態を、前記未検証処理を実行させるユーザーによる設定が不可能な無効状態に設定する制限ステップと、を情報処理装置を制御するコンピューターに実行させるファームウェア更新プログラム。
【請求項１８】
インストールされた第１のバージョンのファームウェアを実行する制御ステップと、
前記制御ステップにおいて実行された実行処理の履歴を記憶する履歴記憶ステップと、
サーバーから前記第１のバージョンよりも新しい第２のバージョンのファームウェアと、前記第２のバージョンのファームウェアで定められる複数の処理ごとに検証された状態を示す検証状態情報との組を取得するダウンロードステップと、
前記第１のバージョンのファームウェアを取得された前記第２のバージョンのファームウェアで更新するために、前記第２のバージョンのファームウェアをインストールする更新ステップと、
前記検証状態情報は、前記複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、検証が終了した終了状態と、前記終了状態以外の未検証状態とを含み、
前記未検証状態は、エラーが発生することが確認されているエラー状態を含み、
前記履歴で特定される実行処理に対して、前記第２のバージョンのファームウェアと組になる前記検証状態情報が前記エラー状態を示す場合、前記更新ステップにおいて前記第２のバージョンのファームウェアがインストールされるのを禁止する禁止ステップと、を情報処理装置を制御するコンピューターに実行させるファームウェア更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、およびファームウェア更新プログラムに関し、特に、エラーが発生しないことの検証が未完了のファームウェアで更新する情報処理装置、その情報処理装置で実行されるファームウェア更新プログラムに関する。
【背景技術】
【０００２】
従来の複合機で代表される画像形成装置は、ファームウェアがインストールされており、中央演算装置がそのファームウェアを実行することにより動作する。このため、ファームウェアがバージョンアップする場合には、画像形成装置は、新たなバージョンのファームウェアをダウンロードして、インストールする必要がある。
【０００３】
例えば、特開２００９−１８７３７７号公報には、複数のソフトウェアファイルを記憶する記憶手段と、前記記憶手段に記憶されたソフトウェアファイルを用いて、前記画像形成装置が提供する機能を実行する実行手段と、前記記憶手段に記憶された複数のソフトウェアファイルのうちの少なくとも１つのソフトウェアファイルを更新するための更新用ソフトウェアファイルを、情報処理装置から受信する受信手段と、前記受信手段で受信した更新用ソフトウェアファイルに基づいてソフトウェアファイルが更新された後、当該更新されたソフトウェアファイルを用いた機能が実行される場合、当該実行される機能の動作確認を行うように制御する制御手段と、を有することを特徴とする画像形成装置が記載されている。
【０００４】
一方、新たなバージョンのファームウェアが開発される場合、通常は、新たなバージョンのファームウェアで定められる複数の処理のすべてにおいて、エラーが発生することなく正常に動作することを検証する作業が完了した後に、新たなファームウェアが配布される。この検証作業には所定の期間が必要とされるため、一部の処理について検証が終了していない場合には、他の処理について検証する作業が完了しているにも拘らず、配布することができない。このため、ユーザーが画像形成装置を使用する態様が、検証が完了した処理を使用するが、検証が完了していない処理を使用しない態様の場合であっても、新たなバージョンのファームウェアで定められる複数の処理のすべてにおいて検証作業が完了した後でなければ、新たなファームウェアをインストールすることができないといった問題があった。
【特許文献１】特開２００９−１８７３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、新バージョンのファームウェアをできるだけ早くインストールすることが可能な情報処理装置を提供することである。
【０００６】
この発明の他の目的は、ユーザーによる使用実績に応じて新たなバージョンのファームウェアをインストールすることが可能な情報処理装置を提供することである。
【０００７】
この発明のさらに他の目的は、新バージョンのファームウェアを情報処理装置にできるだけ早くインストールすることが可能なファームウェア更新プログラムを提供することである。
【０００８】
この発明のさらに他の目的は、ユーザーによる使用実績に応じて新たなバージョンのファームウェアを情報処理装置にインストールすることが可能なファームウェア更新プログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明は上述した問題点を解決するためになされたもので、この発明のある局面によれば、情報処理装置は、インストールされた第１のバージョンのファームウェアを実行する制御手段と、サーバーから第１のバージョンよりも新しい第２のバージョンのファームウェアと、第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロード手段と、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新する更新手段と、検証状態情報は、複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、エラーが発生しないことの検証が終了した終了状態と、終了状態以外の未検証状態とを含み、検証状態情報に基づいて、複数の処理のうち検証状態情報が未検証状態を示す未検証処理の設定可否状態を、未検証処理を制御手段に実行させるユーザーによる設定が不可能な無効状態に設定する制限手段と、を備える。
【００１０】
この局面に従えば、第２のバージョンのファームウェアと検証状態情報との組が取得され、第１のバージョンのファームウェアが第２のバージョンのファームウェアで更新され、第２のバージョンのファームウェアで定められる複数の処理のうち未検証処理の設定可否状態を無効状態に設定するので、エラーが発生しないことの検証が終了していない処理がユーザーによる指示により実行されないようにして、エラーが発生しないことの検証が終了した処理がユーザーによる指示により実行されるようにすることができる。その結果、新バージョンのファームウェアをできるだけ早くインストールすることが可能な情報処理装置を提供することができる。
【００１１】
好ましくは、未検証状態は、エラーが発生することが確認されているエラー状態を含み、制御手段が実行した実行処理の履歴を記憶する履歴記憶手段と、履歴で特定される実行処理に対して、第２のバージョンのファームウェアと組になる検証状態情報がエラー状態を示す場合、更新手段による第２のバージョンのファームウェアのインストールを禁止する禁止手段と、をさらに備える。
【００１２】
この局面に従えば、設定される確率の高い実行処理がエラー状態の場合には、第２のバージョンのファームウェアをインストールしないので、ユーザーによる使用実績に応じて第２のバージョンのファームウェアをインストールすることができる。
【００１３】
この発明の他の局面によれば、情報処理装置は、インストールされた第１のバージョンのファームウェアを実行する制御手段と、制御手段が実行した実行処理の履歴を記憶する履歴記憶手段と、サーバーから第１のバージョンよりも新しい第２のバージョンのファームウェアと、第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロード手段と、第１のバージョンのファームウェアを取得された第２のバージョンのファームウェアで更新するために、第２のバージョンのファームウェアをインストールする更新手段と、検証状態情報は、複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、検証が終了した終了状態と、終了状態以外の未検証状態と、を含み、未検証状態は、エラーが発生することが確認されているエラー状態を含み、履歴で特定される実行処理に対して、第２のバージョンのファームウェアと組になる検証状態情報がエラー状態を示す場合、更新手段による第２のバージョンのファームウェアのインストールを禁止する禁止手段と、を備える。
【００１４】
この局面に従えば、第２のバージョンのファームウェアと検証状態情報との組が取得され、実行した処理の履歴が記憶され、履歴で特定される実行処理に対して検証状態情報がエラー状態を示す場合、第２のバージョンのファームウェアのインストールを禁止する。このため、過去に実行された実行処理に対して検証状態情報がエラー状態を示す場合には、第２のバージョンのファームウェアをインストールすることなく、過去に実行された実行処理に対して検証状態情報がエラー状態を示さない場合に第２のバージョンのファームウェアをインストールする。その結果、ユーザーによる使用実績に応じて新たなバージョンのファームウェアをインストールすることが可能な情報処理装置を提供することができる。
【００１５】
好ましくは、未検証状態は、エラーが発生することが確認されていない未確認状態を含み、更新手段により第２のバージョンのファームウェアがインストールされた後、検証状態情報に基づいて、複数の処理のうち検証状態情報が未確認状態を示す未検証処理の設定可否状態を、未検証処理を制御手段に実行させるユーザーによる設定が不可能な無効状態に設定する制限手段を、さらに備える。
【００１６】
この局面に従えば、エラーが発生しないことの検証が終了していない処理がユーザーによる指示により実行されないようにして、エラーが発生しないことの検証が終了した処理がユーザーによる指示により実行されるようにすることができる。
【００１７】
好ましくは、制限手段により設定可否状態が無効状態に設定された未検証処理の設定可否状態を、ユーザーによる制御手段に実行させる設定が可能な有効状態に設定する解除手段を、さらに備える。
【００１８】
この局面に従えば、ユーザーにより入力される操作に従って、未検証処理の設定可否状態を、ユーザーによる設定が可能な有効状態に設定するので、ユーザーは、エラーが発生しないことの検証が終了していない処理を実行させる設定が可能となる。未検証処理であってもエラーが発生しない場合があるので、ユーザーが未検証処理を実行させることができるようにして、利便性を向上させることができる。
【００１９】
好ましくは、解除手段により未検証処理の設定可否状態が有効状態に設定される場合に、検証が終了していないことを示す警告メッセージをユーザーに通知する解除時警告手段を、さらに備える。
【００２０】
この局面に従えば、未検証処理が有効状態に設定される場合に、検証が終了していないことを通知するので、ユーザーにエラーが発生する危険性があることを知らせることができる。
【００２１】
好ましくは、ユーザーにより入力される操作に従って、解除手段により設定可否状態が有効状態に設定された未検証処理を制御手段に実行させる設定がされることに応じて、検証が終了していないことを示す警告メッセージをユーザーに通知する設定時警告手段を、さらに備える。
【００２２】
この局面に従えば、ユーザーが未検証処理を実行する設定する操作を入力した段階で、検証が終了していないことを知らせるので、未検証処理の実行を指示したユーザーに、エラーが発生する危険性があることを知らせることができる。
【００２３】
好ましくは、解除手段により設定可否状態が有効状態に設定された未検証処理を制御手段に実行させるユーザーによる操作が入力されることに応じて、第１のバージョンのファームウェアをインストールし、制御手段により未検証処理が実行された後に、第２のバージョンのファームウェアをインストールする一時更新手段を、さらに備える。
【００２４】
この局面に従えば、設定可否状態が有効状態に設定された未検証処理を実行させるユーザーによる操作が入力されることに応じて、第１のバージョンのファームウェアをインストールするので、第１のバージョンのファームウェアを実行する制御手段によって未検証処理に対応する処理が実行される。このため、未検証処理を確実に実行することができる。また、未検証処理が実行された後に第２のバーションのファームウェアをインストールするので、未検証処理以外の処理を実行させるユーザーによる操作が入力される場合には、最新のバージョンのファームウェアが実行されるので、できるだけ最新のバージョンのファームウェアを利用することが可能となる。
【００２５】
好ましくは、解除手段は、第２のバージョンのファームウェアをインストールした後の未検証処理に対して、第１のバージョンのファームウェアがインストールされた状態における設定可否状態が制御手段に実行させるユーザーによる設定が可能な有効状態に設定されている場合、未検証処理の設定可否状態を有効状態に設定する。
【００２６】
この局面に従えば、第２のバージョンのファームウェアをインストールする前の第１のバージョンのファームウェアがインストールされた状態における設定可否状態が有効状態に設定されている場合、未検証処理の設定可否状態を、有効状態に設定するので、ファームウェアの更新前後で、ユーザーが設定可能な処理をできるだけ同じにすることがきる。
【００２７】
好ましくは、それに対応する検証状態情報が未検証状態を含まないファームウェアがインストールされた状態における制御手段が実行可能な複数の処理それぞれの設定可否状態を更新前状態として取得する更新前状態取得手段と、第２のバージョンのファームウェアで定められる複数の処理のうち終了状態が設定された検証完了処理に対して、更新前状態で定められた設定可否状態を設定する設定手段と、をさらに備える。
【００２８】
この局面に従えば、検証が終了した検証完了処理に対しては、第１のバージョンのファームウェアがインストールされた状態における設定可否状態が設定されるので、ユーザーは、ファームウェアの更新前後で、ユーザーが設定可能な処理をできるだけ同じにすることがきる。
【００２９】
好ましくは、更新手段により第２のバージョンのファームウェアがインストールされることに応じて、他の情報処理装置に第２のバージョンのファームウェアをインストールさせるとともに、制御手段が実行可能な複数の処理のうち検証状態情報が未検証状態を示す未検証処理の設定可否状態を、他の情報処理装置に設定させるグループ設定手段を、さらに備える。
【００３０】
この局面に従えば、他の情報処理装置に新たなファームウェアをインストールさせるとともに、未検証処理それぞれに対する設定可否状態を設定させるので、他の情報処理装置におけるファームウェアをバージョンアップさせる操作と、そのファームウェアに対して設定する操作とを簡略にすることができる。
【００３１】
好ましくは、外部のサーバーにより提供されるサービスが検証された状態を示す外部検証状態情報を取得する外部検証状態情報取得手段と、外部検証状態情報は、エラーが発生しないことを検証する作業状態を示し、検証が終了した終了状態と、終了状態以外の未検証状態とを含み、制限手段は、外部検証状態情報に基づいて、外部検証状態情報が未検証状態を示す未検証サービスを外部のサーバーに実行させる設定を不可能な無効状態に設定する。
【００３２】
この局面に従えば、外部検証状態情報が取得され、外部のサーバーにより提供されるサービスが検証の終了していない未検証状態を示す未終了サービスを、無効状態に設定するので、エラーが発生しないことの検証が終了していないサービスの提供を受ける処理が実行されるのを制限できる。その結果、サーバーにインストールされた新バージョンのサービスの提供をできるだけ早く受けることができる。
【００３３】
好ましくは、更新手段により第１のバージョンのファームウェアが第２のバージョンのファームウェアで更新されることに応じて、第２のバージョンのファームウェアを、他の情報処理装置にインストールさせるために、第２のバージョンのファームウェアと設定可否状態とを送信するインストール指示手段を、さらに備える。
【００３４】
この局面に従えば、他の情報処理装置に第２のバージョンのファームウェアをインストールし、情報処理装置で設定された設定可否情報と同じ設定可否状態が設定されるので、他の情報処理装置の負荷を低減することができる。
【００３５】
好ましくは、第２のバージョンのファームウェアで定められる複数の処理のうち検証状態情報によって未検証状態に設定されている未検証処理に対して、検証のための作業の優先順位を決定する優先順位決定手段を、さらに備える。
【００３６】
この局面に従えば、未検証処理に対して優先順位が決定されるので、ファームウェアで定められている複数の処理を検証する作業の順序を通知することができる。
【００３７】
好ましくは、優先順位決定手段は、制御手段が実行した実行処理ほど優先順位を高くする。
【００３８】
この局面に従えば、情報処理装置で実行された実績のある処理ほど優先順位が高くなるので、情報処理装置の使用実績に応じてファームウェアが検証されるようにすることができる。
【００３９】
好ましくは、優先順位決定手段は、設定可否状態が有効状態に設定されている未検証処理ほど、優先順位を高くする。
【００４０】
この局面に従えば、設定可否状態が有効状態に設定されている未検証処理ほど優先順位が高くなるので、ユーザーにより使用される可能性のある処理を優先してファームウェアが検証されるようにすることができる。
【００４１】
この発明の他の局面によれば、ファームウェア更新プログラムは、インストールされた第１のバージョンのファームウェアを実行する制御ステップと、サーバーから第１のバージョンよりも新しい第２のバージョンのファームウェアと、第２のバージョンのファームウェアで定められる複数の処理ごとに検証されるまでの状態を示す検証状態情報との組を取得するダウンロードステップと、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新する更新ステップと、検証状態情報は、複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、エラーが発生しないことの検証が終了した終了状態と、終了状態以外の未検証状態とを含み、検証状態情報に基づいて、複数の処理のうち検証状態情報が未検証状態を示す未検証処理の設定可否状態を、未検証処理を実行させるユーザーによる設定が不可能な無効状態に設定する制限ステップと、を情報処理装置を制御するコンピューターに実行させる。
【００４２】
この局面に従えば、新バージョンのファームウェアを情報処理装置にできるだけ早くインストールすることが可能なファームウェア更新プログラムを提供することができる。
【００４３】
この発明のさらに他の局面によれば、ファームウェア更新プログラムは、インストールされた第１のバージョンのファームウェアを実行する制御ステップと、制御ステップにおいて実行された実行処理の履歴を記憶する履歴記憶ステップと、サーバーから第１のバージョンよりも新しい第２のバージョンのファームウェアと、第２のバージョンのファームウェアで定められる複数の処理ごとに検証された状態を示す検証状態情報との組を取得するダウンロードステップと、第１のバージョンのファームウェアを取得された第２のバージョンのファームウェアで更新するために、第２のバージョンのファームウェアをインストールする更新ステップと、検証状態情報は、複数の処理ごとにエラーが発生しないことが検証されるまでの作業の進捗状態を示し、検証が終了した終了状態と、終了状態以外の未検証状態とを含み、未検証状態は、エラーが発生することが確認されているエラー状態を含み、履歴で特定される実行処理に対して、第２のバージョンのファームウェアと組になる検証状態情報がエラー状態を示す場合、更新ステップにおいて第２のバージョンのファームウェアがインストールされるのを禁止する禁止ステップと、を情報処理装置を制御するコンピューターに実行させる。
【００４４】
この局面に従えば、ユーザーによる使用実績に応じて新たなバージョンのファームウェアを情報処理装置にインストールすることが可能なファームウェア更新プログラムを提供することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。
【図２】本実施の形態におけるサーバーのハードウェア構成の概要の一例を示すブロック図である。
【図３】本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図４】第１の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図５】第１の実施の形態におけるファームウェア更新処理の流れの一例を示すフローチャートである。
【図６】グループ設定処理の流れの一例を示すフローチャートである。
【図７】第１の実施の形態における操作受付処理の流れの一例を示すフローチャートである。
【図８】第２のバージョンのファームウェアに対する検証状態情報の一例を示す図である。
【図９】設定可否状態の一例を示す図である。
【図１０】第１のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す図である。
【図１１】第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第１の図である。
【図１２】第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第２の図である。
【図１３】第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第３の図である。
【図１４】設定画面の一例を示す図である。
【図１５】第３のバージョンのファームウェアに対する検証状態情報の一例を示す図である。
【図１６】履歴情報の一例を示す図である。
【図１７】優先順位の一例を示す図である。
【図１８】第１の実施の形態の変形例におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。
【図１９】第１の変形例におけるファームウェア更新処理の流れの一例を示すフローチャートである。
【図２０】第１の変形例における操作受付処理の流れの一例を示すフローチャートである。
【図２１】第２の実施の形態におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。
【図２２】第２の実施の形態におけるファームウェア更新処理の流れの一例を示すフローチャートである。
【図２３】更新判断処理の流れの一例を示すフローチャートである。
【図２４】第３の変形例におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。
【発明を実施するための形態】
【００４６】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従ってそれらについての詳細な説明は繰り返さない。
【００４７】
＜第１の実施の形態＞
図１は、本発明の実施の形態の一つにおける情報処理システムの全体概要の一例を示す図である。図１を参照して、情報処理システム１は、複合機であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００，１００Ａ，１００Ｂと、サーバー２００と、を含む。
【００４８】
ＭＦＰ１００，１００Ａ，１００Ｂは、情報処理装置の一例であり、画像データに基づいて用紙などの記録媒体に画像を形成するための画像形成機能を少なくとも備えている。ＭＦＰ１００，１００Ａ，１００Ｂは、画像形成機能に加えて、原稿を読み取るための原稿読取機能、およびファクシミリデータを送受信するファクシミリ送受信機能を備えてもよい。サーバー２００は、一般的なコンピューターである。
【００４９】
サーバー２００およびＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、ネットワーク３に接続される。ネットワーク３は、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。ネットワーク３は、さらに、インターネットに接続されてもよい。この場合、サーバー２００およびＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、ネットワーク３を介してインターネットに接続されたコンピューターと互いに通信可能である。また、ネットワーク３は、ＬＡＮに限らず、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワークであってもよい。さらに、ネットワーク３は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）であってもよい。
【００５０】
本実施の形態において、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂにインストールされるファームウェアを管理する。具体的には、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂにインストールされるファームウェアを記憶しており、ＭＦＰ１００，１００Ａ，１００Ｂからの要求に応じて、要求されたバージョンのファームウェアを送信する。ＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、自装置にインストールされているファームウェアのバージョンを管理する。例えば、ＭＦＰ１００は、サーバー２００にファームウェアの最新のバージョンを問い合わせることにより、自装置にインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアがサーバー２００により配布されているか否かを判断する。例えば、ＭＦＰ１００に第１のバージョンのファームウェアがインストールされている状態で、サーバー２００が第１のバージョンよりも新しい第２のバージョンのファームウェアを配布する場合、ＭＦＰ１００は、サーバー２００に第２のバージョンのファームウェアの送信を要求する。サーバー２００は、ＭＦＰ１００からの要求に応じて、第２のバージョンのファームウェアをＭＦＰ１００に送信するので、ＭＦＰ１００は、サーバー２００から送信されてくる第２のバージョンのファームウェアをインストールする。
【００５１】
また、サーバー２００に記憶される第２のバージョンのファームウェアは、検証状態情報と関連付けられる場合がある。検証状態情報は、第２のバージョンのファームウェアで定められる複数の処理それぞれについて、エラーが発生しないことを検証する作業の進捗を示す検証状態を示す情報である。検証状態は、検証が完了している終了状態と、検証が終了していない未検証状態とを含む。また、未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。サーバー２００は、ＭＦＰ１００からの第２のバージョンのファームウェアが要求される場合、第２のバージョンのファームウェアに検証状態情報が関連付けられている場合、第２のバージョンのファームウェアとともに検証状態情報を、ＭＦＰ１００に送信する。
【００５２】
また、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれに所定のサービスを提供する。サーバー２００は、サービスを提供するためのアプリケーションプログラムを実行することにより、ＭＦＰ１００，１００Ａ，１００Ｂからの要求に応じてサービスを提供する。サーバー２００が提供するサービスは、限定するものではないが、画像データに基づいて画像から文字を抽出する文字認識処理、文字データの言語を別の言語に変換する翻訳処理、データのフォーマットを変換するフォーマット変換処理である。ここで、サーバー２００がサービスを提供するために実行するアプリケーションプログラムをサービス提供プログラムという。サービス提供プログラムが、新たな機能が追加されるなどしてバージョンアップされる場合、そのバージョンアップ後のサービス提供プログラムで定められる複数の処理それぞれにおいて、エラーが発生しないことが検証されている場合と、エラーが発生しないことが検証されていない場合とがある。この場合、サーバー２００は、サーバー用検証状態情報を提供する。サーバー用検証状態情報は、サービス提供プログラムで定められる複数の処理それぞれに対して、検証が完了している終了状態と、検証が終了していない未検証状態とを含むサーバー用検証状態を示す情報である。また、未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。
【００５３】
ＭＦＰ１００，１００Ａ，１００Ｂそれぞれにおいては、サーバー２００によるサービスの提供を受けるためのアプリケーションプログラムがインストールされている。ここでは、サーバー２００によるサービスの提供を受けるためのアプリケーションプログラムをサービス指示プログラムという。ＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、サービス指示プログラムを実行することにより、サーバー２００にサービスを提供させ、サーバー２００からサービスの提供を受ける。
【００５４】
図２は、本実施の形態におけるサーバーのハードウェア構成の概要の一例を示すブロック図である。図２を参照して、サーバー２００は、サーバー２００の全体を制御するための中央演算装置（ＣＰＵ）２０１と、ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、ＣＰＵ２０１をネットワーク３に接続する通信部２０５と、情報を表示する表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０８と、を含む。
【００５５】
表示部２０６は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置である。操作部２０７は、キーボードなどのハードキーである。また、操作部２０７は、タッチパネルであってもよい。タッチパネルは、表示部２０６の上面または下面に表示部２０６に重畳して設けられる。タッチパネルは、表示部２０６の表示面中でユーザーにより指示された位置を検出する。
【００５６】
通信部２０５は、ＣＰＵ２０１をネットワーク３に接続するためのインターフェースである。通信部２０５は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワークに接続されたＭＦＰ１００，１００Ａ，１００Ｂと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。サーバー２００に、ＭＦＰ１００，１００Ａ，１００ＢそれぞれのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを登録しておくことにより、サーバー２００は、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれと通信することができ、データの送受信が可能となる。
【００５７】
ＨＤＤ２０４は、ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＣＰＵ２０１は、ＨＤＤ２０４に記録されたプログラムを、ＲＡＭ２０３にロードして実行する。
【００５８】
外部記憶装置２０８は、プログラムを記憶したＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ）２０９が装着される。ＣＰＵ２０１は、外部記憶装置２０８を介してＣＤ−ＲＯＭ２０９にアクセス可能である。ＣＰＵ２０１は、外部記憶装置２０８に装着されたＣＤ−ＲＯＭ２０９に記録されたプログラムをＲＡＭ２０３にロードして実行する。なお、ＣＰＵ２０１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０９に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭまたはＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリであってもよい。
【００５９】
また、ＣＰＵ２０１が実行するプログラムは、ＣＤ−ＲＯＭ２０９に記録されたプログラムに限られず、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ネットワーク３に接続された他のコンピューターが、ＨＤＤ２０４に記憶されたプログラムを書き換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、サーバー２００が、ネットワーク３またはインターネットに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０４に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００６０】
ＭＦＰ１００，１００Ａ，１００Ｂのハードウェア構成および機能は同じなので、ここでは、ＭＦＰ１００を例に説明する。図３は、本実施の形態におけるＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、メイン回路１１０と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００６１】
自動原稿搬送装置１２０は、原稿トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿に形成された画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１３０は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。
【００６２】
画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【００６３】
メイン回路１１０は、ＭＦＰ１００の全体を制御するＣＰＵ（中央演算処理装置）１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ１１３と、ＲＡＭ１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、ファクシミリ部１１６と、外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００６４】
ファクシミリ部１１６は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１６は、受信したファクシミリデータを、ＨＤＤ１１５に記憶するとともに、画像形成部１４０で印刷可能な印刷データに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１１６により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部１１６は、ＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００６５】
通信Ｉ／Ｆ部１１２は、ネットワーク３にＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワーク３に接続されたサーバー２００または他のＭＦＰ１００Ａ，１００Ｂと通信する。
【００６６】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取画像を一時的に記憶する。
【００６７】
操作パネル１６０は、ＭＦＰ１００の上面に設けられる。操作パネル１６０は、表示部１６１と操作部１６３とを含む。表示部１６１は、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、ＬＣＤに代えて、画像を表示する装置であれば、例えば、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイを用いることができる。
【００６８】
操作部１６３は、タッチパネル１６５と、ハードキー部１６７とを含む。タッチパネル１６５は、静電容量方式である。なお、タッチパネル１６５は、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。
【００６９】
タッチパネル１６５は、その検出面が表示部１６１の上面または下面に表示部１６１に重畳して設けられる。ここでは、タッチパネル１６５の検出面のサイズと、表示部１６１の表示面のサイズとを同じにしている。このため、表示面の座標系と検出面の座標系は同じである。タッチパネル１６５は、ユーザーが、表示部１６１の表示面を指示する位置を検出面で検出し、検出した位置の座標をＣＰＵ１１１に出力する。表示面の座標系と検出面の座標系は同じなので、タッチパネル１６５が出力する座標を、表示面の座標に置き換えることができる。
【００７０】
ハードキー部１６７は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。タッチパネル１６５は、表示部１６１の表示面中でユーザーにより指示された位置を検出する。ユーザーがＭＦＰ１００を操作する場合は直立した姿勢となる場合が多いので、表示部１６１の表示面、タッチパネル１６５の操作面およびハードキー部１６７は、上方を向いて配置される。ユーザーが表示部１６１の表示面を容易に視認することができ、ユーザーが指で操作部１６３を容易に指示することができるようにするためである。
【００７１】
外部記憶装置１１７は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ１１８、または半導体メモリが装着される。本実施の形態においては、ＣＰＵ１１１は、ＲＯＭ１１３に記憶されたプログラムを実行する例を説明するが、ＣＰＵ１１１は、外部記憶装置１１７を制御して、ＣＤ−ＲＯＭ１１８からＣＰＵ１１１が実行するためのプログラムを読出し、読み出したプログラムをＲＡＭ１１４に記憶し、実行するようにしてもよい。
【００７２】
なお、ＣＰＵ１１１が実行するためのプログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ１１８に限られず、フレキシブルディスク、カセットテープ、光ディスク、ＩＣカード、光カード、半導体メモリ等の媒体でもよい。さらに、ＣＰＵ１１１がネットワーク３に接続されたコンピューターからプログラムをダウンロードしてＨＤＤ１１５に記憶する、または、ネットワーク３に接続されたコンピューターがプログラムをＨＤＤ１１５に書き込みするようにして、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードしてＣＰＵ１１１で実行するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００７３】
図４は、第１の実施の形態におけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図４に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたファームウェア更新プログラムを実行することにより、ＣＰＵ１１１により実現される機能である。図４を参照して、ＣＰＵ１１１は、更新前状態取得部５１と、外部検証状態取得部５３と、ダウンロード部５５と、更新部５７と、設定可否情報管理部５９と、制御部６１と、警告部６３と、設定値設定部６５と、グループ設定部６７と、優先順位決定部６９と、を含む。
【００７４】
ダウンロード部５５は、ＭＦＰ１００にインストールされているファームウェアのバージョンを管理し、現在インストールされているファームウェアよりも新しいファームウェアが存在する場合に、新しいファームウェアを、サーバー２００からダウンロードする。具体的には、ダウンロード部５５は、通信Ｉ／Ｆ部１１２を制御して、サーバー２００に最新のファームウェアのバージョン番号を問合せ、サーバー２００から返信されてくるバージョン番号と、現在インストールされているファームウェアのバージョン番号とを比較することにより、現在インストールされているファームウェアよりも新しいファームウェアが存在すると判断する。
【００７５】
ここで、現在インストールされているファームウェアを第１のバージョンとし、第１のバージョンのファームウェアよりも新しい第２のバージョンのファームウェアが、サーバー２００に記憶されている場合を例に説明する。この場合、ダウンロード部５５は、通信Ｉ／Ｆ部１１２を制御して、サーバー２００に第２のバージョンのファームウェアを要求し、サーバー２００が送信する第２のバージョンのファームウェアを受信する。ダウンロード部５５は、サーバー２００から受信された第２のバージョンのファームウェアを、更新部５７に出力し、検証状態情報を設定可否情報管理部５９に出力する。
【００７６】
また、サーバー２００は、第２のバージョンのファームウェアに検証状態情報が関連付けられている場合、ＭＦＰ１００からの第２のバージョンのファームウェアが要求される場合、第２のバージョンのファームウェアとともに検証状態情報を、ＭＦＰ１００に送信する。このため、ダウンロード部５５は、通信Ｉ／Ｆ部１１２が、第２のバージョンのファームウェアとともに検証状態情報を受信する場合、検証状態情報を設定可否情報管理部５９に出力する。
【００７７】
更新部５７は、ダウンロード部５５から第２のバージョンのファームウェアが入力されることに応じて、第２のバージョンのファームウェアをインストールすることにより、第１のバージョンのファームウェアを第２のバージョンのファームウェアに更新する。
【００７８】
更新前状態取得部５１は、それに対応する検証状態情報が未検証状態を含まないファームウェアがインストールされた状態における設定可否状態を更新前状態として取得する。設定可否状態は、ファームウェアで定められる複数の処理ごとに、その処理をユーザーが実行させる設定が可能か否かを示す状態である。設定可否状態は、その処理を実行させるユーザーによる設定が可能な有効状態と、その処理を実行させるユーザーによる設定が不可能な無効状態とを含む。更新前状態取得部５１は、取得された更新前状態を示す更新前状態情報を設定可否情報管理部５９に出力する。ここでは、第１のバージョンのファームウェアがインストールに対応する検証状態情報が未検証状態を含まない場合を例に説明する。この場合、更新前状態取得部５１は、第１のバージョンのファームウェアがインストールされた状態における設定可否状態を更新前状態として取得し、更新前状態を示す更新前状態情報を設定可否情報管理部５９に出力する。
【００７９】
外部検証状態取得部５３は、サーバー２００において、サーバー２００にインストールされているサービス提供プログラムが新たなバージョンに更新される場合、新たなバージョンのサービス提供プログラムに対応するサーバー用検証状態情報をサーバー２００から取得する。具体的には、通信Ｉ／Ｆ部１１２を制御して、サーバー２００に最新バージョンのサービス提供プログラムに対応するサーバー用検証状態を要求し、サーバー２００が送信するサーバー用検証状態情報を受信する。外部検証状態取得部５３は、サーバー用検証状態情報を設定可否情報管理部５９に出力する。
【００８０】
設定可否情報管理部５９は、更新前状態取得部５１から更新前状態情報が入力され、外部検証状態取得部５３からサーバー用検証状態情報が入力され、ダウンロード部５５から検証状態情報が入力される。設定可否情報管理部５９は、更新部５７により第２のバージョンのファームウェアがインストールされることに応じて、検証状態情報と更新前状態情報とに基づいて、第２のバーションのファームウェアで定められる複数の処理ごとに設定可否状態を設定する。設定可否情報管理部５９は、第２のバージョンのファームウェアに対して設定された設定可否状態を、設定値設定部６５およびグループ設定部６７に出力する。
【００８１】
設定可否情報管理部５９は、サーバー用検証状態情報に基づいて、サーバー用検証状態情報が未検証状態を示す未検証サービスを外部のサーバーに実行させる設定を不可能な無効状態に設定する。これにより、ＣＰＵ１１１がサービス指示プログラムを実行するタスクである制御部６１において、未検証サービスを外部のサーバーに実行させる処理が実行されないので、サーバー２００においてエラーが発生しないことの検証が終了していないサービスの提供を受ける処理が実行されるのを制限できる。したがって、サーバー２００にインストールされた新バージョンのサービス提供プログラムで定められるサービスの提供をできるだけ早く受けることができる。
【００８２】
検証状態情報は、ダウンロード部５５によりダウンロードされた第２のバージョンのフォームウェアで定められる複数の処理ごとに検証状態を定める。検証状態は、検証が終了した終了状態と、終了状態以外の未検証状態とを含む。設定可否状態は、複数の処理ごとにその処理を実行させるユーザーによる設定の可否を示し、その処理を実行させるユーザーによる設定が可能な有効状態と、その処理を実行させるユーザーによる設定が不可能な無効状態と、を含む。
【００８３】
設定可否情報管理部５９は、設定部７１と、制限部７３と、解除部７５と、を含む。設定部７１は、第２のバージョンのフォームウェアで定められる複数の処理のうち検証状態情報によって終了状態に設定されている検証完了処理それぞれについて、設定可否状態を設定する。設定部７１は、第２のバージョンのフォームウェアで定められる複数の処理のうち検証完了処理それぞれの設定可否状態を更新前状態情報と同じ状態に設定する。具体的には、設定部７１は、検証完了処理に対して更新前状態情報によって有効状態に設定されていれば設定可否状態を有効状態に設定し、更新前状態情報によって無効状態に設定されていれば設定可否状態を無効状態に設定する。
【００８４】
制限部７３は、第２のバージョンのフォームウェアで定められる複数の処理のうち検証状態情報によって未検証状態に設定されている未検証処理それぞれについて、設定可否状態を、無効状態に設定する。これにより、未検証処理の設定可否状態が無効状態に設定されるので、ユーザーは未検証処理を実行させる設定が不可能となる。制限部７３は、設定可否状態を無効状態に設定した未検証処理を識別するための処理識別情報を解除部７５に出力する。
【００８５】
解除部７５は、制限部７３によって設定可否状態が無効状態に設定された未検証処理の処理識別情報が入力される。未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。解除部７５は、制限部７３から入力される処理識別情報で特定される未検証処理のうち検証状態情報によって未確認状態が設定されている未確認処理について、ユーザーが操作部１６３に入力する操作に従って、設定可否状態を有効状態に設定する。未確認処理は、エラーが発生することが確認されていないので、エラーが発生しない可能性がある。このため、ユーザーによる使用を可能にすることで、ユーザーの利便性を向上させることができる。
【００８６】
また、解除部７５は、制限部７３から入力される処理識別情報で特定される未検証処理のうち検証状態情報によってエラー状態が設定されているエラー処理については、ユーザーが操作部１６３に入力する操作を受け付けても、設定可否状態を有効状態に設定することなく、警告部６３に警告指示を出力する。警告指示は、エラー処理の処理識別情報を含む。エラー処理は、エラーが発生することが確認されているので、エラー処理を実行させるユーザーによる設定を不可能にして、エラーが発生しないようにすることができる。解除部７５は、設定可否状態を有効状態に設定した未確認処理の処理識別情報を、警告部６３に出力する。
【００８７】
なお、解除部７５は、制限部７３から入力される処理識別情報で特定される未確認処理について、更新前状態情報によって有効状態に設定されている場合に、設定可否状態を有効状態に設定するようにしてもよい。ユーザーによる操作が不要なので、ユーザーの作業を簡易にすることができる。この場合においても解除部７５は、設定可否状態を有効状態に設定した未確認処理の処理識別情報を警告部６３に出力する。
【００８８】
警告部６３は、解除時警告部８１と、設定時警告部８３と、を含む。解除時警告部８１は、解除部７５から設定可否状態が有効状態に設定された未確認処理の処理識別情報が入力される場合、表示部１６１に第１警告メッセージを表示する。第１警告メッセージは、設定可否状態が有効状態に設定された未検証処理の検証が終了していないことを示す。第１警告メッセージは、設定可否状態が有効状態に設定された未確認処理の処理識別情報を少なくとも含むようにしてもよい。また、第１警告メッセージは、未確認処理を実行する場合にエラーが発生する場合があることを示すメッセージであってもよい。
【００８９】
なお、検証状態として、未確認状態が、特定の場合にエラーが発生することが確認されている特定未確認状態を含むようにしてもよい。特定の場合は、例えば、他の処理と組み合わせて実行される場合である。この場合、解除時警告部８１は、解除部７５から入力される処理識別情報で特定される未確認処理の検証状態が特定未確認状態の場合、表示部１６１に、エラーが発生する条件を示す第１警告メッセージを表示する。例えば、第１警告メッセージは、組み合わせできない他の処理を通知するメッセージである。このため、ユーザーは、設定可否状態を変更する段階で、エラーが発生する条件を知ることができる。
【００９０】
また、解除時警告部８１は、解除部７５から警告指示が入力されることに応じて、表示部１６１に第２警告メッセージを表示する。第２警告メッセージは、エラーが発生するために、警告指示に含まれる処理識別情報で特定されるエラー処理を実行する設定が不可であることをユーザーに通知するメッセージである。
【００９１】
制御部６１は、インストールされたファームウェアを実行し、ファームウェアで定められた処理を設定値に従って実行する。第１のバージョンのファームウェアがインストールされている状態においては、制御部６１は、第１のバージョンのファームウェアで定められた処理を設定値に従って実行する。制御部６１は、更新部５７によって第２のバージョンのファームウェアがインストールされた後は、第２のバージョンのファームウェアで定められた処理を設定値に従って実行する。
【００９２】
設定値設定部６５は、設定可否情報管理部５９から第２のバーションのファームウェアで定められる複数の処理ごとに設定可否状態が入力される。設定値設定部６５は、ユーザーが操作部１６３に入力する操作に従って、第２のバーションのファームウェアで定められる複数の処理のうち、設定可否状態が有効状態に設定されている処理それぞれに設定値を設定する。設定値設定部６５は、ユーザーが操作部１６３に入力する操作の対象となる処理の設定可否状態が有効状態に設定されている場合は、設定値を設定し、ユーザーが操作部１６３に入力する操作の対象となる処理の設定可否状態が無効状態に設定されている場合は、設定値を設定することなく、警告部６３に警告指示を出力する。警告指示は、ユーザーが操作部１６３に入力する操作の対象となる処理の処理識別情報を含む。設定値設定部６５は、第２のバーションのファームウェアで定められる複数の処理それぞれに対して設定された設定値を、制御部６１に出力する。
【００９３】
設定値設定部６５は、ユーザーにより入力される操作の対象となる処理の検証状態が未検証状態の場合、ユーザーにより入力される操作の対象となる処理の処理識別情報を、警告部６３に出力する。
【００９４】
設定時警告部８３は、設定値設定部６５から入力される処理識別情報で特定される処理の検証状態が未確認状態の場合、表示部１６１に第１警告メッセージを表示する。第１警告メッセージは、設定値設定部６５から入力される処理識別情で特定される未確認処理の検証が終了していないことを示す。これにより、ユーザーが処理を実行させるための設定値を設定する操作をしている最中に、第１警告メッセージを表示するので、設定値を設定しているユーザーに、その設定値を設定した処理の検証が終了していないことを通知することができる。このため、ユーザーは、未確認処理を実行させるか否かを、設定値を設定する段階で選択することができる。
【００９５】
さらに、設定時警告部８３は、設定値設定部６５から入力される処理識別情報で特定される処理の検証状態が特定未確認状態の場合、表示部１６１にエラーが発生する条件を示す第１警告メッセージを表示する。例えば、第１警告メッセージは、組み合わせできない他の処理を示すメッセージである。このため、ユーザーは、設定値を設定する段階で、エラーが発生しないように処理を組み合わせた設定をすることができる。
【００９６】
また、設定時警告部８３は、設定値設定部６５から警告指示が入力される場合、表示部１６１に第２警告メッセージを表示する。第２警告メッセージは、エラーが発生するために、警告指示に含まれる処理識別情報で特定されるエラー処理を実行する設定が不可であることをユーザーに通知するメッセージである。
【００９７】
グループ設定部６７は、設定可否情報管理部５９から第２のバージョンのファームウェアに対応する設定可否状態が入力される。グループ設定部６７は、ＭＦＰ１００の設定が変更されることに応じて、ＭＦＰ１００と同一のグループに属する他の装置に第２のバージョンのファームウェアをインストールさせるとともに、ＭＦＰ１００の設定可否状態と同じ設定可状態に設定させる。グループは、それぞれにインストールされるファームウェアが同一の装置を含む。ここでは、ＭＦＰ１００，１００Ａ，１００Ｂが同一のグループに属する場合を例に説明する。
【００９８】
グループ設定部６７は、設定可否情報管理部５９から第２のバージョンのファームウェアに対応する設定可否状態が入力されることに応じて、同一グループに属する他の装置、例えばＭＦＰ１００Ａに第２のバージョンのフォームウェアをインストールさせ、ＭＦＰ１００と同じ設定可否状態に設定させるために、インストール指示を送信する。インストール指示は、第２のバージョンのフォームウェアと、ＭＦＰ１００に設定されている設定可否状態とを含む。ＭＦＰ１００Ａにおいては、インストール指示に従って、第２のバージョンのファームウェアをインストールするとともに、インストール指示に含まれる設定可否状態を設定する。同一グループは、同一の種類のファームウェアがインストールされる装置の集合である。
【００９９】
優先順位決定部６９は、ダウンロードされた第２のバージョンのファームウェアで定められる複数の処理のうち検証状態情報によって未検証状態に設定されている未検証処理に対して、検証のための作業の優先順位を決定する。優先順位決定部６９は、決定した優先順位をサーバー２００に通知する。このため、未検証処理に対して優先順位が決定されるので、第２のバージョンのファームウェアで定められている複数の処理を検証する作業の順序を検証作業の担当者に通知することができる。
【０１００】
具体的には、優先順位決定部６９は、制御部６１により過去に実行された頻度の高い実行処理程高い優先順位を決定する。このため、ＭＦＰ１００で実行された実績のある実行処理ほど優先順位が高くなるので、ＭＦＰ１００の使用実績に応じて第２のバージョンのファームウェアが検証されるようにすることができる。
【０１０１】
また、優先順位決定部６９は、ＭＦＰ１００において設定可否状態が有効状態に設定されている未検証処理ほど、高い優先順位を決定するようにしてもよい。これによれば、ユーザーにより使用される可能性のある処理を優先して検証されるようにすることができる。
【０１０２】
なお、優先順位決定部６９は、履歴のみから優先順位を決定するようにしてもよいし、設定可否状態のみから優先順位を決定するようにしてもよいし、履歴および設定可否状態を組み合わせて優先順位を決定するようにしてもよい。
【０１０３】
なお、優先順位の決定は、サーバー２００において実行するのが好ましい。このため、ＭＦＰ１００，１００Ａ，１００Ｂそれぞれは、サーバー２００が優先順位を決定するために必要な状態である履歴および設定可否状態をサーバー２００に送信し、サーバー２００がＭＦＰ１００，１００Ａ，１００Ｂそれぞれから受信される情報に基づいて検証作業を実行する処理の優先順位を決定する。
【０１０４】
図５は、第１の実施の形態におけるファームウェア更新処理の流れの一例を示すフローチャートである。ファームウェア更新処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたファームウェア更新プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図５を参照して、実現される機能である。図４を参照して、ＣＰＵ１１１は、更新ファームウェアが存在するか否かを判断する。現在インストールされているファームウェアよりもバージョンの新しいファームウェアが存在するならば更新ファームウェアが存在すると判断する。サーバー２００に問い合わせることにより、更新ファームウェアが存在するか否かを判断する。更新ファームウェアが存在するならば（ステップＳ０１でＹＥＳ）処理をステップＳ０２に進めるが、更新ファームウェアが存在しなければ処理をステップＳ１４に進める。
【０１０５】
ステップＳ０２においては、新しいバージョンのファームウェアをダウンロードする。具体的には、サーバー２００にダウンロード要求を送信し、ダウンロード要求を受信するサーバー２００が送信するファームウェアを受信する。ここで、現在インストールされているファームウェアを第１のバージョンのファームウェアといい、サーバー２００からダウンロードするファーウェアを第２のバージョンのファームウェアという。
【０１０６】
ステップＳ０３においては、サーバー２００から検証状態情報を取得する。サーバー２００が第２のバージョンのファームウェアとともに送信する検証状態情報を受信する。次のステップＳ０４においては、現在設定されている設定可否状態を取得する。設定可否状態は、現在インストールされている第１のバージョンのファームウェアに対して設定されている設定可否状態である。そして、ダウンロードした第２のバージョンのファームウェアをインストールすることにより、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新する（ステップＳ０５）。
【０１０７】
次のステップＳ０６においては、第２のバージョンのファームウェアにより定められた複数の処理のうちから１つを処理対象となる処理として選択する。次のステップＳ０７においては、更新前状態において、選択された処理に対して設定可否状態が有効状態に設定されているか否かを判断する。設定可否状態が有効状態に設定されているならば処理をステップＳ０８に進めるが、そうでなければ処理をステップＳ１２に進める。ステップＳ１２においては、第２のバージョンのファームウェアで定められる複数の処理のうち選択された処理に対する設定可否状態を無効状態に設定し、処理をステップＳ１３に進める。第１のバージョンのファームウェアにおいて無効状態に設定されている場合に、第２のバージョンのファームウェアにおいて無効状態に設定するので、更新前後で設定可否状態を同じ値に設定することができる。
【０１０８】
ステップＳ０８においては、選択された処理に対する検証状態によって処理を分岐させる。検証状態はステップＳ０３において取得された検証状態情報によって定められている。検証状態が終了状態ならば処理をステップＳ０９に進め、検証状態がエラー状態ならば処理をステップＳ１０に進め、検証状態が未確認状態ならば処理をステップＳ１１に進める。ステップＳ０９においては、第２のバージョンのファームウェアで定められる複数の処理のうち選択された処理に対する設定可否状態を有効状態に設定し、処理をステップＳ１３に進める。第１のバージョンのファームウェアにおいて有効状態に設定されている場合に、第２のバージョンのファームウェアにおいて有効状態に設定するので、更新前後で設定可否状態を同じ値に設定することができる。また、検証状態が終了状態なので、第２のバージョンのファームウェアにおいてエラーが発生しないことが確認されているので、有効に設定しても第２のバージョンのファームウェアを正常に実行させることができる。
【０１０９】
ステップＳ１０においては、第２のバージョンのファームウェアで定められる複数の処理のうち選択された処理に対する設定可否状態を無効状態に設定し、処理をステップＳ１３に進める。第１のバージョンのファームウェアにおいて有効状態に設定されている場合であっても、第２のバージョンのファームウェアにおいて無効状態に設定する。検証状態がエラー状態の場合、第２のバージョンのファームウェアにおいてエラーが発生することが確認されているので、設定可否状態を無効状態に設定して、処理が実行されないようにして、第２のバージョンのファームウェアを正常に実行させることができる。
【０１１０】
ステップＳ１１においては、第２のバージョンのファームウェアで定められる複数の処理のうち選択された処理に対する設定可否状態を無効状態に設定し、処理をステップＳ１３に進める。第１のバージョンのファームウェアにおいて有効状態に設定されている場合であっても、第２のバージョンのファームウェアにおいて無効状態に設定する。検証状態が未確認状態の場合、第２のバージョンのファームウェアにおいてエラーが発生しないことが確認されていないので、設定可否状態を無効状態に設定して、処理が実行されないようにして、第２のバージョンのファームウェアを正常に実行させることができる。
【０１１１】
ステップＳ１３においては、第２のバージョンのファームウェアにより定められた複数の処理のうちステップＳ０６において処理対象に選択されていない処理が存在するか否かを判断する。未選択の処理が存在するならば処理をステップＳ０６に戻すが、存在しなければ処理をステップＳ１４に進める。
【０１１２】
ステップＳ１４においては、設定可否状態を有効状態切り換える切換操作を受け付けたか否かを判断する。ユーザーが操作部１６３に入力する切換操作を受け付けたならば処理をステップＳ１５に進めるが、そうでなければ処理をステップＳ０６に戻す。ステップＳ１５においては、切換操作の対象となる処理を特定し、処理をステップＳ１６に進める。ステップＳ１６においては、特定された処理の検証状態によって処理を分岐する。現在インストールされているファームウェアで定められる複数の処理のうちステップＳ１５において特定された処理に対応する検証状態を判断する。検証状態は、ステップＳ０３において、最後に取得された検証状態情報を参照して、決定する。検証状態が終了状態ならば処理をステップＳ１７に進め、検証状態が未確認状態ならば処理をステップＳ１８に進め、検証状態がエラー状態ならば処理をステップＳ１９に進める。ステップＳ１７においては、設定可否状態を有効状態に設定し、処理をステップＳ２０に進める。
【０１１３】
ステップＳ１８においては、第１警告メッセージを表示部１６１に表示し、処理をステップＳ１７に進める。ステップＳ１７においては、設定可否状態を有効状態に設定し、処理をステップＳ２０に進める。第１警告メッセージは、設定可否状態が有効に設定される処理が、エラーが発生しないことが確認されていない処理であることを通知するメッセージである。設定可否状態が有効に設定されるので、設定可否状態を設定する時点で、ユーザーは、その処理を実行させる設定をすることができるが、その処理が実行された場合にエラーが発生する場合があることを知ることができる。また、未確認処理の検証状態が特定未確認状態の場合、エラーが発生する条件を示す第１警告メッセージを表示する。例えば、第１警告メッセージは、組み合わせできない他の処理を通知するメッセージである。このため、ユーザーは、設定可否状態を変更する段階で、ユーザーは、その処理を実行させる設定をすることができるが、エラーが発生する条件を知ることができる。
【０１１４】
ステップＳ１９においては、第２警告メッセージを表示部１６１に表示し、処理をステップＳ０６に戻す。第２警告メッセージは、処理を実行させるとエラーが発生することを通知するためのメッセージである。このため、ユーザーは、設定可否状態を設定する時点で、処理を実行させるとエラーが発生するために、設定可否状態を有効に設定することができないことを知ることができる。また、処理がステップＳ１９に進む場合、設定可否状態が無効状態に設定された状態が維持されるので、ユーザーがその処理を実行させる設定をすることができないようにして、エラーが発生するのを防止することができる。ステップＳ２０においては、グループ設定処理を実行し、処理をステップＳ０１に戻す。
【０１１５】
図６は、グループ設定処理の流れの一例を示すフローチャートである。図６を参照して、ＭＦＰ１００と同じグループに属するＭＦＰを選択する（ステップＳ３１）。ここでは、ＭＦＰ１００Ａ、１００ＢがＭＦＰ１００と同じグループに属し、ＭＦＰ１００Ａを選択する場合を例に説明する。
【０１１６】
そして、選択されたＭＦＰ１００ＡからＭＦＰ１００Ａに設定されている設定可否状態を取得する（ステップＳ３２）。通信Ｉ／Ｆ部１１２を制御して、ＭＦＰ１００Ａにインストール指示を送信する。インストール指示は、第２のバージョンのフォームウェアと、ＭＦＰ１００に設定されている設定可否状態とを含む。インストール指示を受信するＭＦＰ１００Ａにおいては、インストール指示に従って、第２のバージョンのファームウェアをインストールするとともに、インストール指示に含まれる設定可否状態を設定する。
【０１１７】
ステップＳ３４においては、ステップＳ３１において選択されていないＭＦＰが存在するか否かを判断する。未選択のＭＦＰが存在するならば処理をステップＳ３１に戻すが、そうでなければ処理をファームウェア更新処理に戻す。ここでは、ＭＦＰ１００Ｂが未選択なので、処理をステップＳ３１に戻し、ＭＦＰ１００Ｂにインストール指示を送信する（ステップＳ３３）。
【０１１８】
図７は、第１の実施の形態における操作受付処理の流れの一例を示すフローチャートである。操作受付処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶された操作受付プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。操作受付プログラムは、ファームウェア更新プログラムの一部である。図７を参照して、ＭＦＰ１００が備えるＣＰＵ１１１は、ユーザーが操作部１６３に入力する設定操作を受け付けたか否かを判断する（ステップＳ４１）。設定操作は、ＭＦＰ１００に処理を実行させるための設定値を設定する操作である。設定操作は、ＭＦＰ１００にインストールされているファームウェアにより定められる複数の処理のいずれかに設定値を設定する操作である。設定値は、その処理を実行するか否かを示す値を含む。処理に対して設定可否状態が有効状態に設定されている処理に対して設定操作を受け付けるが、処理に対して設定可否状態が無効状態に設定されている処理に対しては設定操作を受け付けない。無効状態に設定されている処理に対しては、設定操作が入力することができないからである。設定操作を受け付けたならば処理をステップＳ４２に進めるが、そうでなければ処理をステップＳ４８に進める。
【０１１９】
ステップＳ４２においては、設定操作に対応する処理を特定し、処理をステップＳ４３に進める。設定操作がＭＦＰ１００にインストールされているファームウェアにより定められて複数の処理のいずれであるかを特定する。そして、特定された処理に対する検証状態によって処理を分岐させる（ステップＳ４３）。ステップＳ４３においては、検証状態が終了状態ならば処理をステップＳ４６に進め、未確認状態ならば処理をステップＳ４４に進め、エラー状態ならば処理をステップＳ４５に進める。
【０１２０】
ステップＳ４４においては、第１警告メッセージを表示部１６１に表示し、処理をステップＳ４６に進める。第１警告メッセージは、設定可否状態が有効に設定される処理が、エラーが発生しないことが確認されていない処理であることを通知するメッセージである。このため、ユーザーは、設定可否状態を変更する段階で、エラーが発生する危険性があることを知ることができる。また、検証状態が特定未確認状態の場合、エラーが発生する条件を示す第１警告メッセージを表示部１６１に表示する。ここでの第１警告メッセージは、例えば、組み合わせできない他の処理を通知するメッセージである。このため、ユーザーは、設定可否状態を変更する段階で、エラーが発生する条件を知ることができる。
【０１２１】
ステップＳ４５においては、第２警告メッセージを表示部１６１に表示し、処理をステップＳ４６に進める。第２警告メッセージは、処理を実行させるとエラーが発生するために、警告指示に含まれる処理識別情報で特定されるエラー処理を実行する設定が不可であることをユーザーに通知するメッセージである。このため、ユーザーは、設定値を設定する時点で、その設定値で処理を実行させるとエラーが発生するために、設定値を設定することができないことを知ることができる。
【０１２２】
ステップＳ４６においては、ステップＳ４１において受け付けられた設定操作に従って、ステップＳ４２において特定された処理に対する設定値を設定し、処理をステップＳ４７に進める。処理がステップＳ４４から進む場合、設定値が設定されるので、ユーザーは、その処理を実行させるための設定をすることができるが、ステップＳ４４において第１警告メッセージが表示されるので、設定値を設定する時点でその処理が実行された場合にエラーが発生する場合があることを知ることができる。
【０１２３】
ステップＳ４７においては、ユーザーが操作部１６３に入力する実行指示操作を受け付けたか否かを判断する。実行指示操作は、ＭＦＰ１００に処理を実行させるための操作である。実行指示操作は、ＭＦＰ１００にインストールされているファームウェアにより定められて複数の処理の１以上を実行させる操作である。実行指示操作を受け付けたならば処理をステップＳ４８に進めるが、そうでなければ処理をステップＳ４１に戻す。ステップＳ４８においては、ステップＳ４６において設定された設定値に従って、ＭＦＰ１００にインストールされているファームウェアにより定められて複数の処理の１以上を実行し、処理を終了する。
【０１２４】
＜具体例＞
図８は、第２のバージョンのファームウェアに対する検証状態情報の一例を示す図である。図８を参照して、第１のバージョンをバージョン１．１．１とし、第１のバージョンのファームウェアで定められるプリント機能に含まれる４つの処理それぞれの検証状態を示している。検証状態情報は、処理ごとの検証状態を示す。ここでは、プリント機能が、プリントデータを受信する通信プロトコルが異なるＲＡＷ、ＬＰＤ（Ｌｉｎｅ  Ｐｒｉｎｔｅｒ  Ｄａｅｍｏｎ  Ｐｒｏｔｏｃｏｌ）、ＩＰＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）の４つの処理を含む場合を示している。
【０１２５】
処理ＲＡＷに対して、検証状態に終了状態が設定され、処理ＬＰＤに対して、検証状態に終了状態が設定され、処理ＩＰＰに対して、検証状態にエラー状態が設定され、処理ＳＭＢに対して、検証状態に未確認状態が設定されている。
【０１２６】
図９は、設定可否状態の一例を示す図である。ここでは、第１のバージョン１．１．０のファームウェアに対して設定される設定可否状態と、第２のバージョン１．１．１のファームウェアに対して設定される設定可否状態と、を示している。ここでは、第２のバージョンのファームウェアに対する設定可否状態は、図８に示した第２のバージョンのファームウェアに対する検証状態情報が取得される場合に設定される値を示している。
【０１２７】
図９を参照して、処理ＲＡＷに対して、第１のバージョン１．１．０のファームウェアに対して設定可否状態が有効状態を示す設定値「有効」に設定され、処理ＲＡＷに対して検証状態に終了状態が設定されているので、第２のバージョン１．１．１のファームウェアに対して設定可否状態が第１のバージョン１．１．１のファームウェアに対して設定されている設定可否状態と同じ有効状態を示す設定値「有効」に設定される。
【０１２８】
処理ＬＰＤに対して、第１のバージョン１．１．０のファームウェアに対して設定可否状態が無効状態を示す設定値「無効」に設定され、処理ＬＰＤに対して検証状態に終了状態が設定されているので、第２のバージョン１．１．１のファームウェアに対して設定可否状態が第１のバージョン１．１．１のファームウェアに対して設定されている設定可否状態と同じ無効状態を示す設定値「無効」に設定される。
【０１２９】
処理ＩＰＰに対して、第１のバージョン１．１．０のファームウェアに対して設定可否状態が有効状態を示す設定値「有効」に設定され、処理ＩＰＰに対して検証状態にエラー状態が設定されているので、第２のバージョン１．１．１のファームウェアに対して設定可否状態が無効状態を示す設定値「不可」に設定される。ここで、設定値「不可」は、その処理に対する設定可否状態が無効状態であって検証状態がエラー状態であることを示す設定値である。
【０１３０】
処理ＳＭＢに対して、第１のバージョン１．１．０のファームウェアに対して設定可否状態が有効状態を示す設定値「有効」に設定され、処理ＳＭＢに対して検証状態に未確認状態が設定されているので、第２のバージョン１．１．１のファームウェアに対して設定可否状態が無効状態を示す設定値「無効」に設定される。ここで、設定値「無効」は、その処理に対する設定可否状態が無効状態であって検証状態が未確認状態であることを示す設定値である。
【０１３１】
図１０は、第１のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す図である。図１０を参照して、プリント機能に対して、処理ＲＡＷが有効状態に設定されていることを示す設定値「有効」が設定されており、処理ＬＰＤが無効状態に設定されていることを示す設定値「無効」が設定されており、処理ＩＰＰが有効状態に設定されていることを示す設定値「有効」が設定されており、処理ＳＭＢが有効状態に設定されていることを示す設定値「有効」が設定されている。
【０１３２】
図１１は、第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第１の図である。図１１を参照して、プリント機能に対して、処理ＲＡＷが有効状態に設定されていることを示す設定値「有効」が設定されており、処理ＬＰＤが無効状態に設定されていることを示す設定値「無効」が設定されている。処理ＩＰＰが無効状態に設定されていることを示す設定値「不可」が設定されており、処理ＳＭＢが無効状態に設定されていることを示す設定値「無効」が設定されている。
【０１３３】
図１２は、第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第２の図である。図１１に示した設定可否状態設定画面が表示されている状態で、処理ＳＭＢに対する設定可否状態を設定する領域３０１が有効状態を示す設定値「有効」に変更される状態を示している。この場合、「ＳＭＢ印刷は、動作検証中のため、正常に動作しない可能性があります。」の文字列を含むメッセージ３０３が第１警告メッセージとして表示される。これにより、ユーザーにＳＭＢ印刷を実行させる設定をすることができるが、エラーが発生する場合があることを通知することができる。
【０１３４】
図１３は、第２のバージョンのファームウェアがインストールされている状態における設定可否状態設定画面の一例を示す第３の図である。図１１に示した設定可否状態設定画面が表示されている状態で、処理ＩＰＰに対する設定可否状態を設定する領域３１１が設定値「有効」に変更される状態を示している。ここでは、処理ＳＭＢの検証状態が、複数部数を印刷する複数部数印刷処理と組み合わせて実行される場合にエラーが発生することが確認されている特定未確認状態である場合を例に示している。
【０１３５】
この場合、「ＩＰＰ印刷は、複数部印刷に失敗する場合があります。」の文字列を含むメッセージ３１３が第１警告メッセージとして表示される。これにより、ユーザーにＩＰＰ印刷を実行させる設定をすることができるが、特定の処理として複数部印刷の処理と組み合わせて実行させる設定をする場合にエラーが発生することを通知することができる。
【０１３６】
図１４は、設定画面の一例を示す図である。図１４に示す設定画面は、図１２に示した設定可否状態設定画面で、処理ＳＭＢの設定可否状態が有効状態に設定された後に、表示される設定画面を示す。図１４を参照して、設定画面は、処理ＲＡＷ、処理ＬＰＤ、処理ＩＰＰおよび処理ＳＭＢそれぞれを使用するための設定値を設定するためのラジオボタン３２１〜３２４を含む。ラジオボタン３２１〜３２４は、排他的に選択可能であり、いずれか１つを選択することが可能である。図１４においては、処理ＳＭＢに対応するラジオボタン３２４が選択され、処理ＳＭＢを使用するための設定値が設定されていることを示している。また、処理ＩＰＰの設定可否状態は無効状態を示す「不可」が設定されているので、ラジオボタン３２３を選択することができないことが示される。図では、ラジオボタン３２３を選択することができないことを点線で示している。なお、ラジオボタン３２３を選択する指示を受け付ける場合に、「ＩＰＰ印刷は、複数部印刷に失敗する場合があります。」の文字列を含むメッセージを第１警告メッセージとして表示するようにしてもよい。
【０１３７】
処理ＳＭＢの検証状態は、未確認状態なので、処理ＳＭＢに対応するラジオボタン３２４が選択された段階で、「ＳＭＢ印刷は、動作検証中のため、正常に動作しない可能性があります。」の文字列を含むメッセージ３２５が表示される。これにより、ユーザーが処理を実行させるための設定値を設定する段階で、エラーが発生しないことが確認されていないことを通知することができる。
【０１３８】
図１５は、第３のバージョンのファームウェアに対する検証状態情報の一例を示す図である。図１５を参照して、第３のバージョンをバージョン１．１．３とし、第３のバージョンのファームウェアで定められるプリント機能に含まれる４つの処理それぞれの検証状態を示している。検証状態情報は、処理ごとの検証状態を示す。
【０１３９】
処理ＲＡＷに対して、検証状態に終了状態が設定され、処理ＬＰＤ、処理ＩＰＰおよび処理ＳＭＢに対して、検証状態にそれぞれ未確認状態が設定されている。
【０１４０】
図１６は、履歴情報の一例を示す図である。図１６を参照して、履歴情報は、処理ごとの、ユーザー名、ファイル名、処理を実行した結果、処理が実行された完了日を定める。ここでは、処理ＲＡＷがユーザー「ＡＡＡ」により、ファイル名「ｔｅｓｔ．ｔｘｔ」のデータを対象に、２０１７年３月２０日の１８時００分に正常に実行された履歴と、処理ＳＭＢがユーザー「ＣＣＣ」により、ファイル名「ｈｏｇｅｈｏｇｅ．ｔｘｔ」のデータを対象に、２０１７年３月２２日の１１時００分に正常に実行された履歴と、を含む。
【０１４１】
図１７は、優先順位の一例を示す図である。図１７を参照して、優先順位は、検証が完了していない処理ごとに定められる。処理ＲＡＷの検証状態は終了状態で検証が終了しているので、優先順位は付されない。図１６に示した履歴情報において、処理ＲＡＷと処理ＩＰＰが実行された実績があるので、処理ＩＰＰの優先順位が最も高い値である「１」に設定される。これにより、過去に使用された実績のある処理ほど優先して検証が実行されるので、できるだけ早くユーザーが正常な状態で使用することができるファームウェアを提供することができる。処理ＬＰＤの優先順位が「３」、処理ＳＭＢの優先順位が「２」に設定されている。これは、図１２に示した設定可否状態設定画面において、処理ＳＭＢの設定可否状態が有効状態に設定されており、処理ＬＰＤの設定可否状態が無効状態に設定されていることによる。換言すれば、設定可否状態が有効状態に設定されている処理を、設定可否状態が無効状態に設定されている処理よりも優先順位を高くする。これにより、使用される可能性の高い処理ほど優先して検証が実行されるので、できるだけ早くユーザーが正常な状態で使用することができるファームウェアを提供することができる。
【０１４２】
以上説明したように第１の実施の形態におけるＭＦＰ１００は、情報処理装置として機能し、第２のバージョンのファームウェアと検証状態情報との組をサーバー２００からダウンロードし、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新し、第２のバージョンのファームウェアで定められる複数の処理のうち未検証処理の設定可否状態を無効状態に設定し、設定可否状態が無効状態に設定された未検証処理の設定可否状態を、ユーザーによる実行させる設定が可能な有効状態に設定する。このため、ユーザーは、エラーが発生しないことの検証が終了していない処理を実行させる設定が可能となる。未検証処理であってもエラーが発生しない場合があるので、ユーザーが未検証処理を実行させることができるようにして、利便性を向上させることができる。
【０１４３】
また、未検証処理の設定可否状態が有効状態に設定される場合に、検証が終了していないことを示す第１警告メッセージをユーザーに通知するので、ユーザーにエラーが発生する危険性があることを知らせることができる。
【０１４４】
また、ユーザーにより入力される操作に従って、設定可否状態が有効状態に設定された未検証処理を実行させる設定がされることに応じて、検証が終了していないことを示す第１警告メッセージをユーザーに通知するので、未検証処理の実行を指示したユーザーに、エラーが発生する危険性があることを知らせることができる。
【０１４５】
また、第２のバージョンのファームウェアで定められる未検証処理の設定可否状態を、第２のバージョンのファームウェアをインストールする前の第１のバージョンのファームウェアがインストールされた状態における設定可否状態が有効状態に設定されている場合、有効状態に設定するので、ファームウェアの更新前後で、ユーザーが設定可能な処理をできるだけ同じにすることができる。
【０１４６】
また、検証が終了した検証完了処理に対しては、第１のバージョンのファームウェアがインストールされた状態における設定可否状態が設定されるので、ユーザーは、ファームウェアの更新前後で、ユーザーが設定可能な処理をできるだけ同じにすることができる。
【０１４７】
また、ＭＦＰ１００と同一グループに属する他のＭＦＰ１００Ａ，１００Ｂに第２のバージョンのファームウェアをインストールさせるとともに、ＭＦＰ１００に設定された設定可否状態を設定させるので、ＭＦＰ１００Ａ，１００Ｂそれぞれにおけるファームウェアをバージョンアップさせる操作と、そのファームウェアに対して設定する操作とを簡略にすることができる。
【０１４８】
また、サーバー２００からサーバー用検証状態情報を取得し、サーバー２００により提供されるサービスが検証の終了していない未検証状態を示す未終了サービスを、無効状態に設定するので、エラーが発生しないことの検証が終了していないサービスの提供を受ける処理が実行されるのを制限できる。したがって、サーバーにインストールされた新バージョンのサービスの提供をできるだけ早く受けることができる。
【０１４９】
＜第１の変形例＞
第１の実施の形態におけるＭＦＰ１００は、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に、ユーザーが設定可否状態を有効状態に設定することができるが、検証状態がエラー状態の場合に、ユーザーが設定可否状態を有効状態に設定することができないようにした。第１の変形例においては、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に加えてエラー状態の場合にも、ユーザーが未検証状態の未検証処理を実行するための設定ができるようにしたものである。
【０１５０】
図１８は、第１の実施の形態の変形例におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。図１８を参照して、図４に示した機能と異なる点は、更新部５７、解除部７５、設定値設定部６５、解除時警告部８１および設定時警告部８３が、更新部５７Ａ、解除部７５Ａ、設定値設定部６５Ａ、解除時警告部８１Ａおよび設定時警告部８３Ａに変更された点である。その他の機能は、図４に示した機能と同じなので、ここでは説明を繰り返さない。更新部５７Ａは、一時更新部７７を含む。
【０１５１】
解除部７５Ａは、制限部７３によって設定可否状態が無効状態に設定された未検証処理の処理識別情報が入力される。未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。解除部７５Ａは、制限部７３から入力される処理識別情報で特定される未検証処理について、ユーザーが操作部１６３に入力する操作に従って、設定可否状態を有効状態に設定する。解除部７５Ａは、設定可否状態を有効状態に設定した未検証処理の処理識別情報を警告部６３に出力する。
【０１５２】
なお、解除部７５Ａは、制限部７３から入力される処理識別情報で特定される未検証処理について、更新前状態情報によって設定可否状態が有効状態に設定されている場合に、設定可否状態を有効状態に設定するようにしてもよい。ユーザーによる操作が不要なので、ユーザーの作業を簡易にすることができる。この場合においても解除部７５Ａは、設定可否状態を有効状態に設定した未検証処理の処理識別情報を警告部６３に出力する。
【０１５３】
解除時警告部８１Ａは、解除部７５Ａから未検証処理の処理識別情報が入力され、未検証処理の検証状態が未確認状態の場合、表示部１６１に第１警告メッセージを表示する。第１警告メッセージは、未検証処理の検証状態が未確認状態の場合、設定可否状態が有効状態に設定された未検証処理の検証が終了していないことを示す。第１警告メッセージは、未確認処理を実行する場合にエラーが発生する場合があることを示すメッセージであってもよい。また、第１警告メッセージは、未検証処理の検証状態が特定未確認状態の場合、エラーが発生する条件を示す。例えば、第１警告メッセージは、組み合わせできない他の処理を通知するメッセージである。
【０１５４】
また、解除時警告部８１Ａは、解除部７５から未検証処理の処理識別情報が入力され、未検証処理の検証状態がエラー状態の場合、表示部１６１に第３警告メッセージを表示する。第３警告メッセージは、未検証処理の実行が指示される場合には、旧バージョンのファームウェアに更新されることを通知するためのメッセージである。
【０１５５】
設定値設定部６５Ａは、設定可否情報管理部５９から第２のバーションのファームウェアで定められる複数の処理ごとに設定可否状態が入力される。設定値設定部６５Ａは、ユーザーが操作部１６３に入力する操作に従って、第２のバーションのファームウェアで定められる複数の処理のうち、設定可否状態が有効状態に設定されている処理それぞれに設定値を設定する。設定値設定部６５Ａは、設定可否状態が無効状態に設定されている処理については、設定値を設定しない。設定値設定部６５Ａは、第２のバーションのファームウェアで定められる複数の処理それぞれに対して設定された設定値を、制御部６１に出力する。
【０１５６】
設定値設定部６５Ａは、ユーザーにより入力される操作の対象となる処理の検証状態が未検証状態の場合、操作の対象となる未検証処理の処理識別情報を設定時警告部８３Ａに出力する。未検証状態は、未確認状態とエラー状態とを含む。また、設定値設定部６５は、ユーザーにより入力される操作の対象となる処理の検証状態がエラー状態の場合、一時更新部７７に更新指示を出力する。
【０１５７】
設定時警告部８３Ａは、設定値設定部６５から未検証処理の処理識別情報が入力され、未検証処理の検証状態が未確認状態の場合、表示部１６１に第１警告メッセージを表示する。第１警告メッセージは、未検証処理の検証状態が未確認状態の場合、設定可否状態が有効状態に設定された未検証処理の検証が終了していないことを示す。第１警告メッセージは、未確認処理を実行する場合にエラーが発生する場合があることを示すメッセージであってもよい。また、第１警告メッセージは、未検証処理の検証状態が特定未確認状態の場合、エラーが発生する条件を示す。例えば、第１警告メッセージは、組み合わせできない他の処理を通知するメッセージである。このため、ユーザーは、未確認処理を実行させるか否かを、設定値を設定する段階で選択することができる。
【０１５８】
また、設定時警告部８３Ａは、設定値設定部６５から未検証処理の処理識別情報が入力され、未検証処理の検証状態がエラー状態の場合、表示部１６１に第３警告メッセージを表示する。第３警告メッセージは、旧バージョンのファームウェアに更新されることを通知するためのメッセージである。このため、ユーザーは、設定値を設定する段階で、エラーが発生しないように処理を組み合わせた設定をすることができる。このため、ユーザーは、未確認処理を実行させるか否かを、設定値を設定する段階で選択することができる。
【０１５９】
一時更新部７７は、第２のバージョンのファームウェアがインストールされている状態で、設定値設定部６５Ａから更新指示が入力されることに応じて、第１のバージョンのファームウェアをインストールすることによりファームウェアを更新する。一時更新部７７は、第２のバージョンのファームウェアをインストールした後に、設定値設定部６５Ａにより設定された設定値に従った処理が制御部６１により実行され、その処理が終了すると、第２のバージョンのファームウェアをインストールすることによりファームウェアを更新する。
【０１６０】
制御部６１は、インストールされたファームウェアを実行し、ファームウェアで定められた処理を設定値に従って実行する。第１のバージョンのファームウェアがインストールされている状態においては、制御部６１は、第１のバージョンのファームウェアで定められた処理を設定値に従って実行する。制御部６１は、更新部５７によって第２のバージョンのファームウェアがインストールされた後は、第２のバージョンのファームウェアで定められた処理を設定値に従って実行する。
【０１６１】
未確認処理は、エラーが発生することが確認されていないので、エラーが発生しない可能性がある。このため、ユーザーによる使用を可能にすることで、ユーザーの利便性を向上させることができる。また、エラー処理は、エラーが発生することが確認されているので、第２のバージョンのファームウェアでエラーが発生することが事前にわかっている。このため、ユーザーによりエラー処理を実行させる設定がされる場合には、第１のバージョンのファームウェアをインストールするので、エラーが発生しないようにすることができる。また、処理を実行した後に第２のバージョンのファームウェアがインストールされた状態となるので、最新のバージョンのファームウェアがインストールされた状態にすることができる。
【０１６２】
図１９は、第１の変形例におけるファームウェア更新処理の流れの一例を示すフローチャートである。図５に示した処理と異なる点は、ステップＳ１９がステップＳ１９Ａに変更された点である。その他の処理は、図５に示した処理と同じなので、ここでは説明を繰り返さない。
【０１６３】
ステップＳ１９Ａにおいては、第３警告メッセージを表示部１６１に表示し、処理をステップＳ１７に進める。第３警告メッセージは、ステップＳ１５において特定される処理が実行される場合には、旧バージョンのファームウェアに更新することを通知するためのメッセージである。ユーザーは、設定可否状態を設定する時点で、処理を実行させるとエラーが発生するために、旧バージョンのファームウェアをインストールした後に処理が実行されることを知ることができる。また、処理がステップＳ１９Ａに進む場合、次のステップＳ１７において設定可否状態が有効状態に設定される。
【０１６４】
図２０は、第１の変形例における操作受付処理の流れの一例を示すフローチャートである。第１の変形例における操作受付処理が、図７に示した操作受付処理と異なる点は、ステップＳ４３およびステップＳ４５がステップＳ４３ＡおよびステップＳ４５Ａに変更された点、ステップＳ４８に代えて、ステップＳ５１〜ステップＳ５５が追加された点である。その他の処理は、図７に示した処理と同じなのでここでは説明を繰り返さない。
【０１６５】
ステップＳ４３Ａにおいては、ステップＳ４２において特定された処理に対する検証状態によって処理を分岐させる。図１９に示したファームウェア更新処理において、検証状態が未確認状態またはエラー状態いずれかの処理がユーザーにより有効状態に設定される場合がある。このため、ステップＳ４１において受け付けられる設定操作は、検証状態が終了状態、未確認状態およびエラー状態のいずれかの処理に対する設定操作が受け付けられる。このため、ステップＳ４３Ａにおいては、検証状態が終了状態ならば処理をステップＳ４６に進め、未確認状態ならば処理をステップＳ４４に進め、エラー状態ならば処理をステップＳ４５Ａに進める。
【０１６６】
ステップＳ４４においては、第１警告メッセージを表示部１６１に表示し、処理をステップＳ４６に進める。第１警告メッセージは、設定可否状態が有効に設定される処理が、エラーが発生しないことが確認されていない処理であることを通知するメッセージである。
【０１６７】
ステップＳ４５Ａにおいては、第３警告メッセージを表示部１６１に表示し、処理をステップＳ４６に進める。第３警告メッセージは、ステップＳ１５において特定される処理が実行される場合には、旧バージョンのファームウェアに更新することを通知するためのメッセージである。
【０１６８】
ステップＳ４６においては、ステップＳ４１において受け付けられた設定操作に従って、ステップＳ４２において特定された処理に対する設定値を設定し、処理をステップＳ４７に進める。処理がステップＳ４４から進む場合、設定値が設定されるので、ユーザーは、その処理を実行させるための設定をすることができるが、ステップＳ４４において第１警告メッセージが表示されるので、設定値を設定する時点でその処理が実行された場合にエラーが発生する場合があることを知ることができる。また、処理がステップＳ４５Ａから進む場合、設定値が設定されるので、ユーザーは、その処理を実行させるための設定をすることができるが、ステップＳ４５Ａにおいて第３警告メッセージが表示されるので、設定値を設定する時点で、旧バージョンのファームウェアで処理が実行されることを知ることができる。
【０１６９】
ステップＳ４７においては、ユーザーが操作部１６３に入力する実行指示操作を受け付けたか否かを判断する。実行指示操作を受け付けたならば処理をステップＳ５１に進めるが、そうでなければ処理をステップＳ４１に戻す。
【０１７０】
ステップＳ５１においては、ＭＦＰ１００にインストールされている第２のバージョンのファームウェアにより定められて複数の処理のうち、ステップＳ４６において設定された設定値に従って実行される１以上の処理のうちに検証状態がエラー状態の処理が存在するか否かを判断する。エラー状態の処理が１つでも存在すれば処理をステップＳ５２に進めるが、そうでなければ処理をステップＳ５５に進める。ステップＳ５５においては、ステップＳ４６において設定された設定値に従って、ＭＦＰ１００にインストールされている第２のファームウェアにより定められた複数の処理の１以上を実行し、処理を終了する。
【０１７１】
ステップＳ５２においては、旧バージョンのファームウェアをインストールし、処理をステップＳ５３に進める。ここでは、第２のバージョンのファームウェアがンストールされているので、第２のバージョンのファームウェアより前にインストールされていた第１のバージョンのファームウェアをインストールする。
【０１７２】
そして、ステップＳ４６において設定された設定値に従って、ＭＦＰ１００にインストールされている第１のファームウェアにより定められた複数の処理の１以上を実行し（ステップＳ５３）、処理をステップＳ５４に進める。ステップＳ５４においては、新バージョンのファームウェアをインストールし、処理を終了する。ここでは、ステップＳ５２において第１のバージョンのファームウェアがンストールされているので、第１のバージョンのファームウェアより新しい第２のバージョンのファームウェアをインストールし、処理を終了する。
【０１７３】
なお、第１の変形例においては、検証状態がエラー状態のエラー処理が実行される場合に、旧バージョンのファームウェアをインストールして、処理を実行するようにしたが、検証状態が未確認状態の未確認処理が実行される場合にも、旧バージョンのファームウェアをインストールして、処理を実行するようにしてもよい。
【０１７４】
第１の変形例におけるＭＦＰ１００は、設定可否状態が有効状態に設定された未検証処理を実行させるユーザーによる操作が入力されることに応じて、第１のバージョンのファームウェアをインストールし、未検証処理が実行された後に、第２のバージョンのファームウェアをインストールする。このため、未検証処理を確実に実行することができる。また、未検証処理が実行された後に第２のバーションのファームウェアをインストールするので、未検証処理以外の処理を実行させるユーザーによる操作が入力される場合には、最新のバージョンのファームウェアが実行されるので、できるだけ最新のバージョンのファームウェアを利用することが可能となる。
【０１７５】
＜第２の変形例＞
第１の実施の形態におけるＭＦＰ１００は、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に、ユーザーが設定可否状態を有効状態に設定することができるが、検証状態がエラー状態の場合に、ユーザーが設定可否状態を有効状態に設定することができないようにした。また、第１の変形例においては、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に加えてエラー状態の場合にも、ユーザーが設定可否状態を有効状態に設定することができるようにしたものである。
【０１７６】
第２の変形例におけるＭＦＰ１００は、検証状態が未検証状態の処理に対して、検証状態が未確認状態およびエラー状態のいずれの場合であっても、ユーザーが設定可否状態を有効状態に設定することができないようにしたものである。この場合、図４に示した機能において、解除部７５、警告部６３は不要である。
【０１７７】
また、図５に示したファームウェア更新処理において、ステップＳ１６において、検証状態が未確認状態およびエラー状態の場合に、処理をステップＳ０１に戻すようにすればよい。
【０１７８】
以上説明したように、第２の変形例におけるＭＦＰ１００は、情報処理装置として機能し、第２のバージョンのファームウェアと検証状態情報との組をサーバー２００からダウンロードし、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新し、第２のバージョンのファームウェアで定められる複数の処理のうち未検証処理の設定可否状態を無効状態に設定する。このため、エラーが発生しないことの検証が終了していない処理がユーザーによる指示により実行されないようにして、エラーが発生しないことの検証が終了した処理がユーザーによる指示により実行されるようにすることができる。このため、新バージョンのファームウェアで定められて複数の処理のすべてにおいて検証が完了していない状態でもファームウェアをインストールすることができるので、新バージョンのファームウェアをできるだけ早くインストールすることができる。
【０１７９】
＜第２の実施の形態＞
第１の実施の形態におけるＭＦＰ１００は、第２のバージョンのファームウェアに対応する検証状態情報に係わらず、第２のバージョンのファームウェアをインストールする。第２の実施の形態におけるＭＦＰ１００は、第２のバージョンのファームウェアで定められる複数の処理のうち第１のバージョンのファームウェアで定められた複数の処理であって過去に実行したことのある処理の検証状態がエラー状態の場合、第２のバージョンのファームウェアをインストールしないようにしたものである。
【０１８０】
図２１は、第２の実施の形態におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。図２１を参照して、図４に示した機能と異なる点は、更新部５７、設定値設定部６５、設定部７１、制限部７３、解除部７５、解除時警告部８１および設定時警告部８３が、更新部５７Ｂ、設定値設定部６５Ｂ、設定部７１Ｂ、制限部７３Ｂ、解除部７５Ｂ、解除時警告部８１Ａおよび設定時警告部８３Ａに変更された点、履歴記憶部９１および禁止部９３が追加された点である。その他の機能は、図４に示した機能と同じであり、解除時警告部８１Ａおよび設定時警告部８３Ａは、図１８に示したそれらと同じなので、ここでは説明を繰り返さない。
【０１８１】
履歴記憶部９１は、制御部６１が実行した処理の履歴をＨＤＤ１１５に記憶する。履歴記憶部９１は、ＨＤＤ１１５に記憶された処理の履歴を禁止部９３に出力する。
【０１８２】
禁止部９３は、ダウンロード部５５から第２のバージョンのファームウェアの検証状態情報が入力され、履歴記憶部９１から処理の履歴が入力される。禁止部９３は、処理の履歴で特定される実行処理に対して、その実行処理が検証状態情報によってエラー状態を示す場合、第２のバージョンのファームウェアのインストールを禁止する。具体的には、禁止部９３は、第２のバージョンのファームウェアのインストールを禁止する場合、更新部５７Ｂに禁止信号を出力する。
【０１８３】
更新部５７Ｂは、禁止部９３から禁止信号が入力されない場合、ダウンロード部５５から第２のバージョンのファームウェアをインストールすることにより、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新する。更新部５７Ｂは、禁止部９３から禁止信号が入力される場合、ダウンロード部５５から第２のバージョンのファームウェアをインストールすることなく、第１のバージョンのファームウェアを第２のバージョンのファームウェアで更新しない。
【０１８４】
ここでは、第１のバージョンのファームウェアで定められる複数の処理それぞれの検証状態情報が終了状態である場合を例に説明する。
【０１８５】
更新部５７Ｂによって第２のファームウェアがインストールされていない場合、第１のバージョンのファームウェアがインストールされている。この場合、設定部７１Ｂは、検証完了処理に対して更新前状態情報によって有効状態に設定されていれば設定可否状態を有効状態に設定し、更新前状態情報によって無効状態に設定されていれば設定可否状態を無効状態に設定する。
【０１８６】
また、設定部７１Ｂは、更新部５７Ｂによって第２のファームウェアがインストールされている場合、第２のバージョンのフォームウェアで定められる複数の処理のうち検証完了処理それぞれの設定可否状態を更新前状態情報と同じ状態に設定する。具体的には、設定部７１Ｂは、検証完了処理に対して更新前状態情報によって有効状態に設定されていれば設定可否状態を有効状態に設定し、更新前状態情報によって無効状態に設定されていれば設定可否状態を無効状態に設定する。
【０１８７】
制限部７３Ｂは、更新部５７Ｂによって第２のファームウェアがインストールされている場合、第２のバージョンのフォームウェアで定められる複数の処理のうち検証状態情報によって未検証状態に設定されている未検証処理それぞれについて、設定可否状態を、無効状態に設定する。これにより、未検証処理の設定可否状態が無効状態に設定されるので、ユーザーは未検証処理を実行させる設定が不可能となる。制限部７３Ｂは、設定可否状態を無効状態に設定した未検証処理を識別するための処理識別情報を解除部７５Ｂに出力する。
【０１８８】
解除部７５Ｂは、制限部７３Ｂによって設定可否状態が無効状態に設定された未検証処理の処理識別情報が入力される。未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。解除部７５Ｂは、制限部７３Ｂから入力される処理識別情報で特定される未検証処理のうち検証状態情報によって未確認状態が設定されている未確認処理について、ユーザーが操作部１６３に入力する操作に従って、設定可否状態を有効状態に設定する。未確認処理は、エラーが発生することが確認されていないので、エラーが発生しない可能性がある。このため、ユーザーによる使用を可能にすることで、ユーザーの利便性を向上させることができる。また、解除部７５Ｂは、制限部７３Ｂから入力される処理識別情報で特定される未検証処理のうち検証状態情報によってエラー状態が設定されているエラー処理については、ユーザーが操作部１６３に入力する操作を受け付けても、設定可否状態を有効状態に設定しない。エラー処理は、エラーが発生することが確認されているので、エラー処理を実行させるユーザーによる設定を不可能にして、エラーが発生しないようにすることができる。解除部７５Ｂは、設定可否状態を有効状態に設定した未確認処理の処理識別情報を警告部６３に出力する。
【０１８９】
なお、解除部７５Ｂは、制限部７３Ｂから入力される処理識別情報で特定される未検証処理のうち検証状態情報によって未確認状態が設定されている未確認処理について、更新前状態情報によって有効状態に設定されている場合に、設定可否状態を有効状態に設定するようにしてもよい。ユーザーによる操作が不要なので、ユーザーの作業を簡易にすることができる。この場合においても解除部７５Ｂは、設定可否状態を有効状態に設定した未確認処理の処理識別情報を警告部６３に出力する。
【０１９０】
設定値設定部６５Ｂは、更新部５７Ｂによって第２のバージョンのファームウェアがインストールされておらず、第１のバージョンのファームウェアがインストールされている場合、設定可否情報管理部５９から第１のバーションのファームウェアで定められる複数の処理ごとに設定可否状態が入力される。設定値設定部６５Ｂは、ユーザーが操作部１６３に入力する操作に従って、第１のバーションのファームウェアで定められる複数の処理のうち、設定可否状態が有効状態に設定されている処理それぞれに設定値を設定する。設定値設定部６５Ｂは、設定可否状態が無効状態に設定されている処理については、設定値を設定しない。設定値設定部６５Ｂは、第１のバーションのファームウェアで定められる複数の処理それぞれに対して設定された設定値を、制御部６１に出力する。
【０１９１】
設定値設定部６５Ｂは、更新部５７Ｂによって第２のバージョンのファームウェアがインストールされている場合、設定可否情報管理部５９から第２のバーションのファームウェアで定められる複数の処理ごとに設定可否状態が入力される。設定値設定部６５Ｂは、ユーザーが操作部１６３に入力する操作に従って、第２のバーションのファームウェアで定められる複数の処理のうち、設定可否状態が有効状態に設定されている処理それぞれに設定値を設定する。設定値設定部６５Ｂは、設定可否状態が無効状態に設定されている処理については、設定値を設定しない。設定値設定部６５Ｂは、第２のバーションのファームウェアで定められる複数の処理それぞれに対して設定された設定値を、制御部６１に出力する。
【０１９２】
設定値設定部６５Ｂは、ユーザーにより入力される操作の対象となる処理の検証状態が未検証状態の場合、ユーザーにより入力される操作の対象となる処理の処理識別情報を、警告部６３に出力する。
【０１９３】
図２２は、第２の実施の形態におけるファームウェア更新処理の流れの一例を示すフローチャートである。図２２を参照して、図５に示した第１の実施の形態におけるファームウェア更新処理と異なる点は、ステップＳ０３とステップＳ０４との間にステップＳ５１およびステップＳ５２が追加された点である。その他の処理は、図５に示した処理と同じなのでここでは説明を繰り返さない。
【０１９４】
ステップＳ５１においては、更新判断処理を実行し、処理をステップＳ５２に進める。ステップＳ５２においては、更新判断処理を実行した結果、更新禁止と判断されたか否かを判断する。更新禁止と判断されたならば処理をステップＳ０１に戻すが、更新禁止と判断されなければ処理をステップＳ０４に進める。
【０１９５】
図２３は、更新判断処理の流れの一例を示すフローチャートである。更新判断処理は、図２２のステップＳ５１において実行される処理である。図２３を参照して、ＨＤＤ１１５に記憶されている履歴を読み出す（ステップＳ６１）。履歴は、ＭＦＰ１００が過去に実行した処理を示し、過去に実行された処理を識別するための処理識別情報を含む。そして、読み出した履歴のうちから１つの履歴を選択する（ステップＳ６２）。次のステップＳ６３においては、選択された履歴に含まれる処理識別情報で特定される処理に対応する検証状態がエラー状態を示すか否かを判断する。エラー状態を示すならば処理をステップＳ６４に進めるが、そうでなければ処理をステップＳ６５に進める。ステップＳ６４においては、更新禁止に設定し、処理をステップＳ６５に進める。
【０１９６】
ステップＳ６５においては、ステップＳ６１において読み出された履歴のうちにステップＳ６２において選択されていない履歴が存在するか否かを判断する。未選択の履歴が存在するならば処理をステップＳ６２に戻すが、存在しなければ処理をファームウェア更新処理に戻す。
【０１９７】
過去に実行したことのある処理の少なくとも１つにおいて、検証状態がエラー状態の場合に、更新禁止に設定するので、ＭＦＰ１００で実行される可能性の高い処理でエラーが発生することが確認されているファームウェアをインストールしないようにして、利便性が損なわれないようにすることができる。
【０１９８】
第２の実施の形態におけるＭＦＰ１００が備えるＣＰＵ１１１においては、図７に示した操作受付処理と同じ処理が実行される。
【０１９９】
第２の実施の形態におけるＭＦＰ１００は、第２のバージョンのファームウェアと検証状態情報との組をサーバー２００からダウンロードし、第２のバージョンのファームウェアで定められた複数の処理のうちに、過去に実行した処理の履歴で特定される実行処理に対して検証状態情報がエラー状態を示す処理が存在する場合、第２のバージョンのファームウェアのインストールを禁止する。このため、過去に実行された実行処理に対して検証状態情報がエラー状態を示す場合には、第２のバージョンのファームウェアをインストールすることなく、過去に実行された実行処理に対して検証状態情報がエラー状態を示さない場合に第２のバージョンのファームウェアをインストールする。このため、ユーザーによる使用実績に応じて新たなバージョンのファームウェアをインストールすることができる。
【０２００】
＜第３の変形例＞
第２の実施の形態におけるＭＦＰ１００においては、第２のバージョンのファームウェアで定められた複数の処理のうちに、第１のバージョンのファームウェアで定められた複数の処理であって過去に実行したことのない処理の検証状態がエラー状態の場合がある。このため、第２の実施の形態におけるＭＦＰ１００においては、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に、ユーザーが設定可否状態を有効状態に設定することができるが、検証状態がエラー状態の場合に、ユーザーが設定可否状態を有効状態に設定することができない。第３の変形例においては、検証状態が未検証状態の処理に対して、検証状態が未確認状態の場合に加えてエラー状態の場合にも、ユーザーが設定可否状態を有効状態に設定することができるようにしたものである。
【０２０１】
図２４は、第３の変形例におけるＭＦＰが有するＣＰＵの機能の概要の一例を示すブロック図である。図２４を参照して、図２１に示した機能と異なる点は、更新部５７Ｂ、解除部７５Ｂおよび設定値設定部６５Ｂが、更新部５７Ｃ、解除部７５Ｃおよび設定値設定部６５Ｃに変更された点である。その他の機能は、図２１に示した機能と同じなので、ここでは説明を繰り返さない。更新部５７Ｃは、一時更新部７７を含む。
【０２０２】
解除部７５Ｃは、制限部７３Ｂによって設定可否状態が無効状態に設定された未検証処理の処理識別情報が入力される。未検証状態は、エラーが発生することが確認されているエラー状態と、エラーが発生することが確認されていない未確認状態と、を含む。解除部７５Ｃは、制限部７３Ｂから入力される処理識別情報で特定される未検証処理について、ユーザーが操作部１６３に入力する操作に従って、設定可否状態を有効状態に設定する。解除部７５Ｃは、設定可否状態を有効状態に設定した未検証処理が、検証状態が未確認状態の未確認処理の場合は未確認処理の処理識別情報を警告部６３に出力する。
【０２０３】
なお、解除部７５Ｃは、制限部７３Ｂから入力される処理識別情報で特定される未検証処理について、更新前状態情報によって設定可否状態が有効状態に設定されている場合に、設定可否状態を有効状態に設定するようにしてもよい。ユーザーによる操作が不要なので、ユーザーの作業を簡易にすることができる。この場合においても解除部７５Ｃは、設定可否状態を有効状態に設定した未検証処理が、検証状態が未確認状態の未確認処理の場合は未確認処理の処理識別情報を警告部６３に出力する。
【０２０４】
設定値設定部６５Ｃは、設定可否情報管理部５９から第２のバーションのファームウェアで定められる複数の処理ごとに設定可否状態が入力される。設定値設定部６５Ｃは、ユーザーが操作部１６３に入力する操作に従って、第２のバーションのファームウェアで定められる複数の処理のうち、設定可否状態が有効状態に設定されている処理それぞれに設定値を設定する。設定値設定部６５Ｃは、設定可否状態が無効状態に設定されている処理については、設定値を設定しない。設定値設定部６５Ｃは、第２のバーションのファームウェアで定められる複数の処理それぞれに対して設定された設定値を、制御部６１に出力する。
【０２０５】
設定値設定部６５Ｃは、ユーザーにより入力される操作の対象となる処理の検証状態が未検証状態の場合、操作の対象となる未検証処理の処理識別情報を設定時警告部８３Ａに出力する。未検証状態は、未確認状態とエラー状態とを含む。また、設定値設定部６５Ｃは、ユーザーにより入力される操作の対象となる処理の検証状態がエラー状態の場合、一時更新部７７に更新指示を出力する。
【０２０６】
一時更新部７７は、第２のバージョンのファームウェアがインストールされている状態で、設定値設定部６５Ｃから更新指示が入力されることに応じて、第１のバージョンのファームウェアをインストールすることによりファームウェアを更新する。一時更新部７７は、第２のバージョンのファームウェアをインストールした後に、設定値設定部６５Ｃにより設定された設定値に従った処理が制御部６１により実行され、その処理が終了すると、第２のバージョンのファームウェアをインストールすることによりファームウェアを更新する。
【０２０７】
未確認処理は、エラーが発生することが確認されていないので、エラーが発生しない可能性がある。このため、ユーザーによる使用を可能にすることで、ユーザーの利便性を向上させることができる。また、エラー処理は、エラーが発生することが確認されているので、第２のバージョンのファームウェアでエラーが発生することが事前にわかっている。このため、ユーザーによりエラー処理を実行させる設定がされる場合には、第１のバージョンのファームウェアをインストールするので、エラーが発生しないようにすることができる。また、処理を実行した後に第２のバージョンのファームウェアがインストールされた状態となるので、最新のバージョンのファームウェアがインストールされた状態にすることができる。
【０２０８】
第３の変形例におけるＭＦＰ１００が備えるＣＰＵ１１１においては、図２２に示したファームウェア更新処理と同じ処理が実行されるとともに、図２０に示した操作受付処理と同じ処理が実行される。
【０２０９】
なお、上述した実施の形態においては、ファームウェアがインストールされる情報処理装置の一例としてＭＦＰ１００を例に説明したが、図５、図１９または図２２に示したファームウェア更新処理、および図７または図２０に示した操作受付処理を、ＭＦＰ１００に実行させるファームウェア更新方法、また、そのファームウェア更新方法をＭＦＰ１００のＣＰＵ１１１に実行させるファームウェア更新プログラムとして発明を捉えることができるのは言うまでもない。
【０２１０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１１】
１  情報処理システム、３  ネットワーク、１００，１００Ａ，１００Ｂ  ＭＦＰ、２００  サーバー、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  ファクシミリ部、１１７  外部記憶装置、１２０  自動原稿搬送装置、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６１  表示部、１６３  操作部、１６５  タッチパネル、１６７  ハードキー部、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  通信部、２０６  表示部、２０７  操作部、２０９  外部記憶装置、５１  更新前状態取得部、５３  外部検証状態取得部、５５  ダウンロード部、５７，５７Ａ，５７Ｂ，５７Ｃ  更新部、５９，５９Ｂ  設定可否情報管理部、６１  制御部、６３  警告部、６５，６５Ａ，６５Ｂ，６５Ｃ  設定値設定部、６７  グループ設定部、６９  優先順位決定部、７１，７１Ｂ  設定部、７３，７３Ｂ  制限部、７５，７５Ａ，７５Ｂ，７５Ｃ  解除部、７７  一時更新部、８１  解除時警告部、８３  設定時警告部、９１  履歴記憶部、９３  禁止部。
【図１】
2019057217.tif 000003
【図２】
2019057217.tif 000004
【図３】
2019057217.tif 000005
【図４】
2019057217.tif 000006
【図５】
2019057217.tif 000007
【図６】
2019057217.tif 000008
【図７】
2019057217.tif 000009
【図８】
2019057217.tif 000010
【図９】
2019057217.tif 000011
【図１０】
2019057217.tif 000012
【図１１】
2019057217.tif 000013
【図１２】
2019057217.tif 000014
【図１３】
2019057217.tif 000015
【図１４】
2019057217.tif 000016
【図１５】
2019057217.tif 000017
【図１６】
2019057217.tif 000018
【図１７】
2019057217.tif 000019
【図１８】
2019057217.tif 000020
【図１９】
2019057217.tif 000021
【図２０】
2019057217.tif 000022
【図２１】
2019057217.tif 000023
【図２２】
2019057217.tif 000024
【図２３】
2019057217.tif 000025
【図２４】
2019057217.tif 000026