(57)【要約】【課題】ファームウェアのアップデートに要する時間をより短くすることができる。【解決手段】複数のモジュールで構成されたファームウェアに従って動作する情報処理装置であって、ファームウェアの機能に応じて割り当てられる世代バージョンを、更新対象のファームウェアと更新前のファームウェアとについて取得する取得手段と、世代バージョンが更新対象のファームウェアと更新前のファームウェアとで一致しているか否かを判定する判定手段と、判定手段の判定の結果に応じて、更新対象のファームウェアを構成するモジュールのうち更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する実行手段と、を備える。【選択図】図４
2019204152.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールで構成されたファームウェアに従って動作する情報処理装置であって、
ファームウェアの機能に応じて割り当てられる世代バージョンを、更新対象のファームウェアと更新前のファームウェアとについて取得する取得手段と、
前記世代バージョンが前記更新対象のファームウェアと前記更新前のファームウェアとで一致しているか否かを判定する判定手段と、
前記判定手段の判定の結果に応じて、前記更新対象のファームウェアを構成するモジュールのうち前記更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、前記更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する実行手段と、を備える
ことを特徴とする情報処理装置。
【請求項２】
前記実行手段は、
前記判定手段によって前記世代バージョンが一致していると判定された場合には、前記差分アップデートを実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行手段は、
前記判定手段によって前記世代バージョンが一致していないと判定された場合には、前記全アップデートを実行する
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
ファームウェアを構成するモジュールと該ファームウェアの前記世代バージョンとを少なくとも特定可能なファームウェア情報を記憶する記憶手段をさらに備え、
前記取得手段は、
前記記憶手段から前記更新対象のファームウェアと前記更新前のファームウェアの前記ファームウェア情報を読み出して、該読み出したファームウェア情報から各ファームウェアの前記世代バージョンを取得する
ことを特徴とする請求項１から請求項３のうちのいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置は、ファームウェアを配信する外部装置と通信可能であって、
前記実行手段は、
前記差分アップデートを実行する場合には、前記更新対象のファームウェアと前記更新前のファームウェアの前記ファームウェア情報を参照して前記差分があるモジュールを特定し、
前記特定したモジュールを前記外部装置からダウンロードする
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記実行手段は、
前記全アップデートを実行する場合には、前記更新対象のファームウェアを構成するモジュールを一括して前記外部装置からダウンロードする
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
複数のモジュールで構成されたファームウェアに従って動作する情報処理装置であって、
更新対象のファームウェアを外部装置から取得し、前記更新対象のファームウェアを用いて、更新前のファームウェアのアップデートを実行する実行手段を備え、
前記実行手段は、
前記情報処理装置と前記外部装置との間の通信速度に応じて、前記更新対象のファームウェアを構成するモジュールのうち前記更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、前記更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する
ことを特徴とする情報処理装置。
【請求項８】
前記情報処理装置と前記外部装置との間の通信速度と、前記更新対象のファームウェアを構成するモジュールの数と、前記差分アップデートでアップデート対象とされるモジュールの数とに基づいて、前記全アップデートと前記差分アップデートのそれぞれに要する時間を導出する導出手段をさらに備え、
前記実行手段は、
前記全アップデートのアップデート時間が前記差分アップデートのアップデート時間以上である場合には、前記差分アップデートを実行する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記情報処理装置と前記外部装置との間の通信速度と、前記全アップデートでアップデート対象とされるモジュールの総容量と、前記差分アップデートでアップデート対象とされるモジュールの総容量とに基づいて、前記全アップデートと前記差分アップデートとに要する時間をそれぞれ導出する導出手段をさらに備え、
前記実行手段は、
前記全アップデートのアップデート時間が前記差分アップデートのアップデート時間以上である場合には、前記差分アップデートを実行する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記実行手段は、
前記全アップデートのアップデート時間が前記差分アップデートのアップデート時間より短い場合には、前記全アップデートを実行する
ことを特徴とする請求項８または請求項９に記載の情報処理装置。
【請求項１１】
複数のモジュールで構成されたファームウェアに従って動作する情報処理装置のアップデート方法であって、
ファームウェアの機能に応じて割り当てられる世代バージョンを、更新対象のファームウェアと更新前のファームウェアとについて取得する取得ステップと、
前記世代バージョンが前記更新対象のファームウェアと前記更新前のファームウェアとで一致しているか否かを判定する判定ステップと、
前記判定の結果に応じて、前記更新対象のファームウェアを構成するモジュールのうち前記更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、前記更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する実行ステップと、を含む
ことを特徴とするアップデート方法。
【請求項１２】
複数のモジュールで構成されたファームウェアに従って動作する情報処理装置のアップデート方法であって、
更新対象のファームウェアを外部装置から取得し、前記更新対象のファームウェアを用いて、更新前のファームウェアのアップデートを実行する実行ステップを含み、
前記実行ステップにおいて、
前記情報処理装置と前記外部装置との間の通信速度に応じて、前記更新対象のファームウェアを構成するモジュールのうち前記更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、前記更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する
ことを特徴とするアップデート方法。
【請求項１３】
コンピュータを、請求項１から請求項１０のうちのいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、特に画像形成装置を制御する情報処理装置のファームウェアのアップデート処理に関する。
【背景技術】
【０００２】
近年、フラッシュメモリなどの書き換え可能な記憶装置にファームウェアを格納するように情報処理装置を構成し、インターネットを介してファームウェアを転送し、ファームウェアアップデートを行う方法が主流となっている。これにより、逐次新しい機能を追加することが可能となった。また、情報処理装置が使用されない深夜などに、情報処理装置のファームウェアを自動的にアップデートすることが可能となった。
【０００３】
画像形成装置のように複数の機種が存在する装置では、複数機種をまとめて開発できるように、また複数機種に対して一律に機能追加できるように、各機種のファームウェアが可能な限り共通化されることが望まれる。通常、各機種のファームウェアはそれぞれ一意なバージョンで管理される。しかし、上記のようなファームウェアの共通化が行われた場合には、各機種のファームウェアを容易に管理できるように、それらのファームウェアには、一意なバージョンとは別に、統一的な機能の世代を表す情報が割り当てられる。以下、この情報を世代バージョンまたはプラットフォームバージョンと呼ぶ。
【０００４】
画像形成装置のファームウェアは通常、複数のモジュール（ファイル）で構成される。そして、画像形成装置が多機能になると、ファームウェアを構成するモジュールの数が多くなる。それに伴い、ファームウェアのアップデート時に更新が必要となるモジュールの数も多くなり、ファームウェアのアップデート時間が増大する。そこで、ファームウェアのアップデート時間を削減するための方法として、差分となるモジュールのみをダウンロードしてインストールする差分アップデートが提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２２５４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、差分アップデートでは、差分アップデートを行うためのバックアップ領域の計算やファームウェアの構成情報の更新等を行う必要がある。それらの処理には多くの時間を要するため、更新が必要となるモジュールの数がある一定の数を超えると、ファームウェア全体を一度にアップデートする全アップデートよりもアップデート時間が長くなる可能性がある。例えば、世代バージョンが変わるようなアップデートでは、更新が必要となるモジュールの数が多くなるため、差分アップデートの方が全アップデートよりもアップデート時間が長くなる可能性がある。
【０００７】
そこで、本発明は、ファームウェアのアップデートに要する時間をより短くすることができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による情報処理装置は複数のモジュールで構成されたファームウェアに従って動作する情報処理装置であって、ファームウェアの機能に応じて割り当てられる世代バージョンを、更新対象のファームウェアと更新前のファームウェアとについて取得する取得手段と、世代バージョンが更新対象のファームウェアと更新前のファームウェアとで一致しているか否かを判定する判定手段と、判定手段の判定の結果に応じて、更新対象のファームウェアを構成するモジュールのうち更新前のファームウェアと差分があるモジュールをインストールする差分アップデート、または、更新対象のファームウェアを構成するモジュールを一括してインストールする全アップデートを実行する実行手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ファームウェアのアップデートに要する時間をより短くすることができる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置の第１実施形態の構成を示すブロック図である。
【図２】制御部のソフトウェア構成の一例を示すブロック図である。
【図３】画像形成装置が配信サーバから受け取るファームウェア情報の一例を示す図である。
【図４】画像形成装置の第１実施形態におけるアップデート方法選択処理を示すフローチャートである。
【図５】アップデート設定画面の一例を示す図である。
【図６】全アップデートを示すフローチャートである。
【図７】差分アップデートを示すフローチャートである。
【図８】画像形成装置の第２実施形態におけるアップデート方法選択処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を用いて説明する。以下の実施形態に記載されている構成要素は、本発明の例としての形態を示すものであり、本発明の範囲をそれらのみに限定するものではない。
【００１２】
［第１実施形態］
以下、本発明の第１実施形態について図面を用いて説明する。本実施形態では、外部装置（ファームウェア配信サーバ）と通信を行い、該外部装置からファームウェアをダウンロードしてファームウェアのアップデートを実行する画像形成装置を例にする。しかし、ファームウェアの転送方法はこれに限らず、画像形成装置に直接接続された可搬記憶媒体や、画像形成装置とネットワークを経由して通信可能なコンピュータ等の外部装置から、画像形成装置にファームウェアを転送するようにしても良い。以下、ファームウェアをＦＷと記載する場合がある。
【００１３】
図１は、画像形成装置１００の第１実施形態の構成を示すブロック図である。画像形成装置１００は、制御部１１０、操作部１２０、プリンタ部１３０、スキャナ部１４０、及びフィニッシャ部１５０を備える。画像形成装置１００には、ＬＡＮ１０４を介して配信サーバ１０１とコンピュータ１０３とが接続されている。
【００１４】
制御部（情報処理装置とも呼ぶ）１１０は、画像形成装置１００全体を制御する。制御部１１０は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、ハードディスクドライブ（ＨＤＤ）１１４、操作部Ｉ／Ｆ１１５、プリンタ部Ｉ／Ｆ１１６、スキャナ部Ｉ／Ｆ１１７、外部Ｉ／Ｆ１１８、及びネットワークＩ／Ｆ１１９を含む。
【００１５】
ＣＰＵ１１１は、ＲＯＭ１１２に記憶された制御部１１０用のプログラムをＲＡＭ１１３に読み出して実行する。それにより、後述する図４、図６、図７、及び図８等に示す処理が実行される。ＲＯＭ１１２には、ライセンス情報や機器構成情報、ファームウェアバージョンといった、機器情報も記憶されている。ＨＤＤ１１４は、ネットワークＩ／Ｆ１１９を介してコンピュータ１０３から受信される印刷データを記憶する。なお、ＣＰＵ１１１により実行されるプログラムには、プリント用アプリケーションプログラムが含まれる。そして、プリント用アプリケーションプログラムにより、ＨＤＤ１１４に記憶された印刷データがプリンタ部１３０によるプリントが可能な画像データに変換され、該画像データもＨＤＤ１１４に格納される。また、ＣＰＵ１１１により実行されるプログラムには、スキャン用アプリケーションプログラムが含まれる。そして、このスキャン用アプリケーションプログラムにより、スキャナ部１４０による画像データの読み取りが行われ、読み取られた画像データがＨＤＤ１１４に転送される。
【００１６】
操作部Ｉ／Ｆ１１５は、操作部１２０を介してユーザにより入力される指示をＣＰＵ１１１に伝達する。操作部１２０は、タッチパネル機能を有する液晶表示部やキーボードなどを有し、ユーザの指示を受け付けたりユーザインタフェース（ＵＩ）画面を表示したりする。操作部Ｉ／Ｆ１１５は、操作部１２０の表示内容を切替えるための情報をＣＰＵ１１１から受信して、操作部１２０に伝達する。
【００１７】
プリンタ部Ｉ／Ｆ１１６は、制御部１１０とプリンタ部１３０とを接続するためのインターフェースである。プリンタ部１３０は、ＨＤＤ１１４からプリンタ部Ｉ／Ｆ１１６を介して転送される画像データに基づいて、記録媒体上にプリントを行う。フィニッシャ部１５０は、プリンタ部１３０によりプリントが行われた記録媒体に対して各種のフィニッシング処理を行う。フィニッシング処理は、例えば、シートに対するステイプル処理、シートへのパンチ処理（穿孔処理）、中綴じ製本処理等である。
【００１８】
スキャナ部Ｉ／Ｆ１１７は、制御部１１０とスキャナ部１４０とを接続するためのインターフェースである。スキャナ部１４０は、画像データを入力する入力手段であり、原稿上の画像をＣＣＤ（ＣｈａｒｇｅＣｏｕｐｌｅｄＤｅｖｉｃｅ）等により構成されるラインセンサを用いて画像データとして読み取る。スキャナ部１４０は、読み取った画像データをスキャナ部Ｉ／Ｆ１１７を介してＨＤＤ１１４に転送する。ＨＤＤ１１４に転送され記憶された画像データは、前述したプリンタ部１３０によりプリントすることが可能である。スキャナ部１４０が読み取った画像データをプリンタ部１３０によりプリントすることで、複写（コピー）機能が実現される。
【００１９】
外部Ｉ／Ｆ１１８は、制御部１１０と外部デバイス１０２とを接続するためのインターフェースである。外部Ｉ／Ｆ１１８は、例えばＵＳＢＩ／Ｆであり、外部デバイス１０２は、例えばＵＳＢメモリやＵＳＢキーボードなどのＵＳＢデバイスである。制御部１１０は、外部Ｉ／Ｆ１１８を介して接続されたＵＳＢメモリ等に対して、データの読み書きを行うことができる。
【００２０】
ネットワークＩ／Ｆ１１９は、制御部１１０をＬＡＮ１０４に接続する。制御部１１０は、ネットワークＩ／Ｆ１１９を介してＬＡＮ１０４上のコンピュータ１０３と通信可能に接続される。これにより、コンピュータ１０３は、画像形成装置１００に対して印刷データを送信したり、ＷＥＢブラウザ経由で機器を操作したりすることができる。さらに制御部１１０は、ＬＡＮ１０４を介して配信サーバ１０１と接続され、ファームアップデートに必要な更新ファイルをダウンロードすることができる。なお、更新ファイルをダウンロードする際に用いられる通信プロトコルとしては、例えばＨＴＴＰやＦＴＰがあるが、その他のプロトコルが用いられてもよい。配信サーバ１０１は、主にインターネット上に存在するが、社内ネットワーク内に存在しても良い。
【００２１】
次いで、制御部１１０のソフトウェア構成について図２を用いて説明する。メインシステム２００は、画像形成装置１００の各種機能を実現するための複数のプログラム２０１〜２１３を含む。なお、図２に示される各プログラム２０１〜２１３は、図１のＲＯＭ１１２に記憶されているものとする。
【００２２】
操作部制御部２０１は、操作部Ｉ／Ｆ１１５を介して、操作部１２０の制御を行う。同様に、プリンタ制御部２０２は、プリンタ部Ｉ／Ｆ１１６を介して、プリンタ部１３０及びフィニッシャ部１５０の制御を行う。スキャナ制御部２０３は、スキャナ部Ｉ／Ｆ１１７を介して、スキャナ部１４０の制御を行う。外部デバイス制御部２０４は、外部Ｉ／Ｆ１１８を介して、外部デバイス１０２の制御を行う。
【００２３】
アプリケーション制御部２０５は、画像形成装置１００のさまざまな機能を実現するためのプログラム群からなる。アプリケーション制御部２０５には、ｈｔｔｐｄ（ＨｙｐｅｒＴｅｘｔＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌＤｅａｍｏｎ）、ｌｐｄ（ＬｉｎｅＰｒｉｎｔｅｒＤｅａｍｏｎ）、Ｗｅｄブラウザ機能、機器情報配信機能等が含まれる。
【００２４】
起動制御部２０６は、メインシステム２００の起動及び停止の制御を行い、画像形成装置１００に電源が投入された際に最初に動作して、メインシステム２００全体の起動処理の制御を行う。
【００２５】
プログラム更新処理部２０７は、操作部１２０を介してファームウェアアップデートの実行指示を受け付けた際に、あるいは事前に予約されたアップデート時刻になった際に、メインシステム２００内の各部の更新処理を行う。
【００２６】
機器情報取得部２０８は、画像形成装置１００がＲＯＭ１１２内に記憶されている機器情報（ライセンス情報、機器構成情報、ファームウェアバージョン等）の取得を行う。
【００２７】
アップデート条件判定部２０９は、機器情報取得部２０８が取得した機器情報と、後述する通信処理部２１０が配信サーバ１０１から受信したファームウェア情報とを比較する。ファームウェア情報については図３を用いて後述する。そして、アップデート条件判定部２０９は、比較の結果に基づいて、画像形成装置１００のファームウェアのアップデートを実施するか否かを判定する。
【００２８】
通信処理部２１０は、配信サーバ１０１と通信を行い、ファームウェア情報及びアップデート条件判定部２０９の判定結果に従って、アップデート対象のファームウェアのダウンロードなどを行う。なお、ファームウェア情報は、配信サーバ１０１以外の装置に登録されていてもよい。すなわち、ファームウェアとファームウェア情報とが別々の装置に登録されていてもよい。
【００２９】
バックアップデータ保存部２１１は、アップデート条件判定部２０９によりアップデートを実施すると判定された場合に、ファームウェアの展開先の領域に既に保存されているデータのバックアップデータを作成してＨＤＤ１２４に保存する。このように、バックアップデータを作成して保存しておくことでアップデート実行時にエラーが発生した場合でも、アップデートを実行する前の状態に戻すことが可能となる。
【００３０】
ファームウェア情報確認部２１２は、配信サーバ１０１から受信したファームウェア情報を読み込み、該ファームウェア情報を参照して、更新対象のファームウェアの有無及び更新対象のファームウェアの情報を確認する。
【００３１】
アップデートモード判定部２１３は、通信処理部２１０が配信サーバ１０１から受信したファームウェア情報をもとに、差分アップデートを行うか全アップデートを行うかを判定する。
【００３２】
図３は、画像形成装置１００が配信サーバ１０１から受け取るファームウェア情報の一例を示す図である。なお、便宜的にテキスト形式で記載されたファームウェア情報を例示しているが、ファームウェア情報は、ＸＭＬ形式など別の形式で記載されていてもよい。画像形成装置１００は、ファームウェアのアップデートを実施する際に、アップデート対象のファームウェアを配信サーバ１０１からダウンロードする前に、配信サーバ１０１に問い合わせを行って図３（ａ）〜（ｃ）に示すようなファームウェア情報を取得する。ファームウェア情報には、機種名、バージョン、使用目的（一般向け、商談対応等）、仕向地、世代バージョンなどが記載されている。また、ファームウェア情報には、どのようなモジュール（ファイル）で構成されているファームウェアであるかを示す、モジュールの組み合わせ情報が記載されている。図３（ａ）に示す例では、バージョン０．１であるモジュールＸＸＸＸＸと、バージョン１．０であるモジュールＹＹＹＹＹと、バージョン２．１であるモジュールＺＺＺＺＺとでファームウェアが構成されていることを示す組み合わせ情報が記載されている。ファームウェア情報を取得することで、ファームウェアを構成するモジュールやファームウェアの世代バージョンが特定可能となる。図３（ａ）に示すファームウェア情報３０１は、機種名が“ｉＡＣ２２００”である画像形成装置のバージョン１０．００のファームウェアであって世代バージョンが２．０であるファームウェアが、配信サーバに登録されていることを示している。世代バージョンは、ファームウェアの世代を示し、同じ世代バージョンのファームウェアであれば、同様の機能を有することを示す。なお、世代バージョンが各ファームウェアのバージョンから判断可能な場合には、世代バージョンはファームウェア情報に記載されていなくてもよい。同様に、図３（ｂ）に示すファームウェア情報３０２は、同機種の画像形成装置のバージョン４０．２２のファームウェアであって世代バージョンが図３（ａ）に示す例と同じ２．０であるファームウェアが、配信サーバに登録されていることを示している。同様に、図３（ｃ）に示すファームウェア情報３０３は、同機種の画像形成装置のバージョン５０．３３のファームウェアであって世代バージョンが３．０であるファームウェアが、配信サーバに登録されていることを示している。また、図３（ｃ）に示す例では、各プログラム２０１〜２１３の機能を拡張するためのモジュールＡＡＡＡＡが新たに追加されている。
【００３３】
ファームウェア情報３０１で示されるファームウェアがインストールされている画像形成装置１００に対して、ファームウェア情報３０３で示されるファームウェアをアップデートしようとすると、世代バージョンが上がる。世代バージョンが上がるようなアップデートでは、通常、画像形成装置１００に大きな機能追加が行われるため、差分を有するモジュール、すなわち更新が必要となるモジュールの数が多くなる。それに伴い、バックアップ領域の算出や、デバイス（ここでは、画像形成装置１００）を構成しているファームウェアを管理するためのデータベースの更新に時間がかかるため、オーバーヘッドが増加してしまう。これにより、全アップデートに要する時間よりも差分アップデートに要する時間の方が長くなってしまう。
【００３４】
図４及ぶ図５を用いて、第１実施形態の画像形成装置１００が行うファームウェアのアップデート方法選択処理について説明する。図４は、画像形成装置１００の第１実施形態におけるアップデート方法選択処理を示すフローチャートである。なお、図４に示すフローは、図５に示すアップデート設定画面を介してユーザが予め設定したアップデート開始時間に実行される。または、図５に示すアップデート設定画面を介してユーザがアップデートの開始指示を行ったタイミングで実行される。
【００３５】
まず、機器情報取得部２０８が、画像形成装置１００の機器情報をＲＯＭ１１２から取得する（ステップＳ４０１）。以下、ステップＳ４０１を単にＳ４０１と記載する。他のステップについても同様である。通信処理部２１０は、機器情報取得部２０８が取得した機器情報を配信サーバ１０１に通知する（Ｓ４０２）。配信サーバ１０１は、Ｓ４０２で通知された機器情報をもとに、画像形成装置１００に対してアップデート可能な最新のファームウェアのファームウェア情報を、更新対象のファームウェアのファームウェア情報として送信する。通信処理部２１０は、更新対象のファームウェアのファームウェア情報を受信すると、該ファームウェア情報をＨＤＤ１１４に保存する（Ｓ４０３）。なお、本実施形態では、最新のファームウェアを更新対象としているが、その他のロジックで決定されたファームウェアを更新対象としてもよい。
【００３６】
次いで、ファームウェア情報確認部２１２が、Ｓ４０３でＨＤＤ１１４に保存された更新対象のファームウェア情報の内容を確認する（Ｓ４０４）。次いで、アップデートモード判定部２１３が、アップデート設定を確認する（Ｓ４０５）。アップデート設定とは、アップデートに関する設定であり、図５に示すアップデート設定画面を介して編集可能である。アップデート設定の詳細は、図５を用いて後述する。アップデートモード判定部２１３は、アップデート設定において自動アップデートが設定されているかを判定する（Ｓ４０６）。
【００３７】
自動アップデートが設定されている場合は（Ｓ４０６のＹＥＳ）、ファームウェア情報確認部２１２が、現在インストール済みの更新前のファームウェアの世代バージョンと更新対象ファームウェアの世代バージョンを取得する（Ｓ４０８）。このとき、ファームウェア情報確認部２１２は、ＨＤＤ１１４に保存されている各ファームウェアのファームウェア情報から、各ファームウェアの世代バージョンを取得する。次いで、アップデートモード判定部２１３が、現在インストール済みファームウェアと更新対象ファームウェアの世代バージョンとを比較する（Ｓ４０９）。世代バージョンが異なる場合（Ｓ４０９のＹＥＳ）、プログラム更新処理部２０７が、全アップデートを実行する（Ｓ４１０）。世代バージョンが一致する場合は（Ｓ４０９のＮＯ）、プログラム更新処理部２０７が、差分アップデートを実行する（Ｓ４１１）。
【００３８】
自動アップデートが設定されていない場合は（Ｓ４０６のＮＯ）、アップデートモード判定部２１３は、アップデート設定において全アップデートが設定されているかを判定する（Ｓ４０７）。全アップデートが設定されている場合は（Ｓ４０７のＹＥＳ）、処理はＳ４１０に移行し、全アップデートが実行される。差分アップデートが設定されている場合は（Ｓ４０７のＮＯ）、処理はＳ４１１に移行し、差分アップデートが実行される。
【００３９】
次に、アップデート設定を行うためのアップデート設定画面について説明する。図５は、第１実施形態におけるアップデート設定画面の一例を示す図である。本実施形態におけるアップデート設定画面は、操作部１２０を介してアップデート設定画面の表示指示が入力された場合に、操作部制御部２０１によって表示される。
【００４０】
図５に示すように、アップデート設定画面５００は、タイミング選択メニュー５０１と、モード選択メニュー５０２と、アップデート方法選択メニュー５０３と、ＯＫボタン５０４とを有する。タイミング選択メニュー５０１は、アップデートのタイミングを設定するためのメニューである。タイミング選択メニュー５０１では、アップデートを即時開始するか、指定した時間に開始するかを設定可能である。モード選択メニュー５０２は、アップデートを自動で行うか手動で行うかを設定するためのメニューである。アップデート方法選択メニュー５０３は、アップデート方法を設定するためのメニューである。アップデート方法選択メニュー５０３では、差分があるモジュールのみをアップデートする差分アップデートを実行するか、全てのモジュールをアップデートする全アップデートを実行するかを設定可能である。なお、モード選択メニュー５０２で自動アップデートが設定されている場合には、アップデート方法の選択は上述したように、画像形成装置１００によって自動で行われる。したがって、アップデート方法選択メニュー５０３は、モード選択メニュー５０２で手動アップデートが選択されている場合に有効となる。ＯＫボタン５０４が押下されると、メニュー５０１〜５０３で設定された内容がアップデート設定に反映され、アップデート設定画面５００が閉じられる。なお、図５ではアップデートモードをユーザが選択可能な例を示したが、常に自動アップデートが選択されるようにしてもよい。つまり、アップデート設定画面５００はメニュー５０２，５０３を有していなくてもよい。
【００４１】
次に、図６を用いて、全アップデート（Ｓ４１０の処理）について説明する。まず、通信処理部２１０は、Ｓ４０３で受信したファームウェア情報に列挙された全てのモジュールを、配信サーバ１０１から取得する（Ｓ６０１）。次いで、起動制御部２０６が、アップデートを実行するために、画像形成装置１００を再起動させる（Ｓ６０２）。再起動の際、画像形成装置１００は、ファームウェアアップデートを行うための専用のモードで起動する。次いで、エラー発生時にリカバリができるように、バックアップデータ保存部２１１が、ファームウェアの展開先の領域に保存されているデータのバックアップデータを作成する（Ｓ６０３）。バックアップデータ作成後、プログラム更新処理部２０７が、ファームウェアの展開先の領域に保存されているデータを削除する（Ｓ６０４）。次いで、プログラム更新処理部２０７が、Ｓ６０４でデータを削除した領域にＳ６０１で取得した各モジュールをインストールする（Ｓ６０５）。これにより、更新対象のファームウェアを構成するモジュールが一括してインストールされる。
【００４２】
次に、図７を用いて、差分アップデート（Ｓ４１１の処理）について説明する。まず、アップデート条件判定部２０９が、インストール済みファームウェアのファームウェア情報と更新対象ファームウェアのファームウェア情報とをＨＤＤ１１４から取得する。ここでは、インストール済みファームウェアのファームウェア情報として、図３（ａ）に示すファームウェア情報３０１が取得されるものとする。また、更新対象ファームウェアのファームウェア情報として、図３（ｂ）に示すファームウェア情報３０２が取得されるものとする。そして、アップデート条件判定部２０９は、それらのファームウェア情報を比較して、差分があるモジュール（ファイル）を抽出する（Ｓ７０１）。ここでは、バージョンが１．０から１．２に変化しているモジュールＹＹＹＹＹが抽出される。なお、モジュールのバージョン以外の情報に基づいて差分があるモジュールを特定するようにしてもよい。次いで、通信処理部２１０が、差分があるモジュールについて、配信サーバ１０１から最新のモジュールをダウンロードする（Ｓ７０２）。次いで、起動制御部２０６が、Ｓ６０２と同様に、アップデートを実行するために、画像形成装置１００を再起動させる（Ｓ７０３）。再起動の際、画像形成装置１００は、Ｓ６０２と同様に専用のモードで起動する。次いで、プログラム更新処理部２０７が、各差分ファームウェア（差分がある各モジュール）の展開先の領域を特定する（Ｓ７０４）。本実施形態では、ファームウェアのディレクトリ構成を示す情報（以下、ディレクトリ情報と呼ぶ）がファームウェア情報に格納されているものとする。そして、プログラム更新処理部２０７は、Ｓ７０２でダウンロードした各モジュールについて、更新対象ファームウェアのディレクトリ情報から展開先の領域を特定するものとする。次いで、バックアップデータ保存部２１１が、Ｓ７０４で特定した各領域に保存されているデータについて、バックアップデータを作成する（Ｓ７０５）。次いで、プログラム更新処理部２０７が、Ｓ７０５でバックアップデータを作成した各領域のデータを削除する（Ｓ７０６）。最後に、プログラム更新処理部２０７が、Ｓ７０６でデータを削除した各領域のそれぞれに、対応する差分ファームウェアをインストールする（Ｓ７０７）。
【００４３】
以上のように、本実施形態では、現在インストール済みファームウェアと更新対象のファームウェアとの世代バージョンとが一致しない場合には、差分アップデートを実行せずに全アップデートを実行する。それにより、ファームウェアの世代バージョンに応じて、アップデート時間をより短くするようなアップデート方法を選択することが可能となる。よって、本実施形態によれば、ファームウェアのアップデートに要する時間を削減することができる。
【００４４】
［第２実施形態］
第1実施形態では、更新対象ファームウェアのファームウェア情報に記載された世代バージョンに基づいて、全アップデートを行うか差分アップデートを行うかを自動で切り替える画像形成装置を例にした。しかし、通信速度が低速な環境にある場合、配信サーバ１０１からのファームウェアのダウンロードに時間がかかってしまう。したがって、そのような環境では、世代バージョンが異なるファームウェアにアップデートする場合でも、全アップデートよりもダウンロードすべきモジュールの数が少ない差分アップデートを選択したほうが有効な場合がある。以下では、通信速度によってアップデート方法を切り替える画像形成装置について説明する。
【００４５】
図８は、画像形成装置１００の第２実施形態におけるアップデート方法選択処理を示すフローチャートである。図４に示すフローと同様に、図８に示すフローは、図５に示すアップデート設定画面を介してユーザが予め設定したアップデート開始時間に実行される。または、図５に示すアップデート設定画面を介してユーザがアップデートの開始指示を行ったタイミングで実行される。なお、Ｓ８０１〜Ｓ８０７、Ｓ８１２〜Ｓ８１３の処理と、図４のＳ４０１〜Ｓ４０７、Ｓ４１０〜Ｓ４１１の処理と同様であるため、説明を省略する。
【００４６】
Ｓ８０６で自動アップデートが設定されていると判断された場合は（Ｓ８０６のＹＥＳ）、通信処理部２１０は、画像形成装置１００から配信サーバ１０１に対して、通信速度を計測するためのパケットを送信する（Ｓ８０８）。次いで、通信処理部２１０は、Ｓ８０８で送信したパケットに対して配信サーバ１０１から返されるパケットを受信する。プログラム更新処理部２０７は、パケットの送受信にかかった時間から、画像形成装置１００と配信サーバ１０１との間の通信速度を導出する（Ｓ８０９）。プログラム更新処理部２０７は、ステップＳ８０９で得られた時間と、Ｓ８０４で得られた更新対象ファームウェアのファームウェア情報とから、全アップデートと差分アップデートとのそれぞれについてアップデート時間を導出する（Ｓ８１０）。なお、アップデート時間の導出方法については、アップデートが必要になるモジュール数から算出しても良いし、アップデートが必要になるモジュールの総容量から導出しても良い。また、予め用意されたルックアップテーブル、例えば、アップデートが必要になるモジュール数（またはモジュールの容量）とアップデート時間とを対応付けて格納するルックアップテーブルを用いて導出されても良い。本実施形態におけるアップデート時間には、ファームウェアのダウンロード時間Ｔ１と、バックアップ領域の算出やファームウェアのデータベース更新に要する時間Ｔ２と、ファームウェアを展開領域に書き込む時間Ｔ３とが少なくとも含まれる。Ｔ１については、例えば以下のようにして導出可能である。
Ｔ１＝（（ｎ×ａ）÷ｖ）×ｔ
ｎ：アップデートが必要になるモジュール数
ａ：定数（例えば、モジュールの平均的な容量）
ｖ：Ｓ８０１で送信したパケットの容量
ｔ：Ｓ８０２で得られた時間
【００４７】
Ｔ２及びＴ３についても同様にして、アップデートが必要になるモジュール数と１つのモジュールに対する処理時間とから導出可能である。なお、全アップデートの場合には、Ｔ２及びＴ３に定数を設定するようにしてもよい。
【００４８】
次いで、プログラム更新処理部２０７は、ステップＳ８１０で導出された全アップデートと差分アップデートとのアップデート時間を比較し、全アップデートのアップデート時間の方が短いかどうかを判定する（Ｓ８１１）。全アップデートのアップデート時間の方が短い場合は（Ｓ８１１のＹＥＳ）、処理はＳ８１２に移行し、全アップデートが実行される。全アップデートのアップデート時間が差分アップデートのアップデート時間以上である場合は（Ｓ８１１のＮＯ）、処理はＳ８１３に移行し、差分アップデートが実行される（Ｓ８１３）。上述したように、世代バージョンが変わるようなアップデートでは、更新が必要となるモジュールの数が多くなるため、差分アップデートと全アップデート間におけるＴ１及びＴ３の差は小さくなる。したがって、そのようなアップデートでは、Ｔ２が短い全アップデートを選択した方が、アップデート時間が短くなる。しかし、Ｓ８０９で導出した通信速度が低い場合には、該通信速度に依存するＴ１の、全アップデートと差分アップデート間における差が大きくなる。したがって、世代バージョンが変わるようなアップデートであったとしても差分アップデートを選択した方が、アップデート時間が短くなる場合がある。したがって、本実施形態では上記のように、アップデート時間の比較を行って該比較の結果に基づいてアップデート方法を切り替えるようにしている。
【００４９】
以上のように、本実施形態では、ファームウェアをアップデートする環境に応じて、アップデート方法を選択する。それにより、ファームウェアのアップデートに要する時間をより確実に削減することができる。
【００５０】
以上、本発明の実施形態について詳細に述べたが、本発明の実施形態は他にも様々な実施形態が考えられる。例えば、第１実施形態と第２実施形態とを組み合わせるようにしてもよい。より具体的には、第１実施形態のＳ４０９でＹＥＳと判定された後に、Ｓ８０８〜Ｓ８１１の処理を行うようにしてもよい。
【００５１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019204152.tif 000003
【図２】
2019204152.tif 000004
【図３】
2019204152.tif 000005
【図４】
2019204152.tif 000006
【図５】
2019204152.tif 000007
【図６】
2019204152.tif 000008
【図７】
2019204152.tif 000009
【図８】
2019204152.tif 000010