(57)【要約】【課題】ユーザに負担をかけずに、効率的、かつ確実にファームウェアの更新処理を可能にする。【解決手段】ＵＩ制御部５０１は、ファームウェア更新のためのメニュー画面を表示したり、ファームウェアの更新スケジュール設定画面を表示したりする。更新スケジュール制御部５０２は、ＵＩ制御部５０１で制御されるＵＩの設定に応じてファームウェアの更新スケジュールを設定する。判定部５０３は、ファームウェアの更新スケジュールを設定する際に、ファームウェアのバージョンの更新が可能か否かを判定する。更新工程保持部５０４は、スケジュールされた更新のための情報を保持する。更新処理部５０５は、更新工程保持部５０４に保持された情報をもとにファームウェアの更新を実行する。通信制御部５０６は、ネットワークとの接続を制御し、ファームウェア配信サーバ１０１とのデータの送受信を行う。【選択図】        図５
2010198332.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェア情報を取得するファームウェア情報取得工程と、
前記ファームウェア情報取得工程で取得した情報を元に更新対象のファームウェアのバージョンをユーザに指定させるファームウェアバージョン指定工程と、
現在使用のファームウェアのバージョンから前記ファームウェアバージョン指定工程で指定されたファームウェアのバージョンへの更新が、動作保証された他のバージョン間の更新を介在させることにより可能であるか否かを判定する判定工程と、
前記判定工程によって、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が可能であると判定された場合には、ファームウェアのバージョン更新を行う更新実行工程と、
を含むことを特徴とするファームウェア更新方法。
【請求項２】
前記指定されたファームウェアのバージョンの自動更新を行うことを選択する自動更新選択工程を含み、
前記自動更新選択工程において自動更新が選択された場合には、前記指定されたファームウェアのバージョンをダウンロードして、更新処理を実行すること
を特徴とする請求項１に記載のファームウェア更新方法。
【請求項３】
前記自動更新選択工程によって自動更新が選択されない場合であって、且つ前記判定工程によって、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が不可能であると判定された場合には、指定されたファームウェアのバージョンをダウンロードするのみで、ファームウェアのバージョン更新を実行しないこと
を特徴とする請求項２に記載のファームウェア更新方法。
【請求項４】
前記判定工程で、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が可能であると判定された場合には、前記更新処理工程は、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新を行うか、現在使用のファームウェアのバージョンから直接前記指定されたファームウェアのバージョンへの更新を行うかを選択して実行することを特徴とする請求項３に記載のファームウェア更新方法。
【請求項５】
前記判定工程で、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が可能であると判定された場合であっても、前記自動更新選択工程により自動更新が選択さなかったときには、前記更新処理工程は、現在使用のファームウェアのバージョンから直接前記指定されたファームウェアのバージョンへの更新を行うこと特徴とする請求項１または２に記載のファームウェア更新方法。
【請求項６】
請求項１〜５のいずれかひとつに記載のファームウェア更新方法をコンピュータに実行させることを特徴とするファームウェア更新プログラム。
【請求項７】
ファームウェア配信サーバからファームウェア情報を取得するファームウェア情報取得手段と、
前記ファームウェア情報取得手段が取得した情報を元に更新対象のファームウェアのバージョンをユーザに指定させるファームウェアバージョン指定手段と、
現在使用のファームウェアのバージョンから前記ファームウェアバージョン指定手段により指定されたファームウェアのバージョンへの更新が、動作保証された他のバージョン間の更新を介在させることにより可能であるか否かを判定する判定手段と、
前記判定手段によって、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が可能であると判定された場合には、ファームウェアのバージョン更新を行う更新実行手段と
を備えることを特徴とするファームウェア更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスのファームウェアをネットワーク経由で更新するために有益な、ファームウェア更新装置、ファームウェア更新システム、ファームウェア更新方法、およびファームウェア更新プログラムに関する。
【背景技術】
【０００２】
従来より、ファームウェア配信サーバからネットワークを経由してファームウェア更新装置へファームウェアをダウンロードし、ファームウェア更新装置のファームウェアの更新を行う技術が提案されている。また、この技術では、指定時刻に自動的にファームウェアを更新することが可能になっている（たとえば、特許文献１を参照。）。
上記技術では、ファックス機能を含むデバイス等で何らかの原因により正常な更新処理が行えなかった場合は、重要なファックスを受信し損ねるなど大きな問題が発生することがあるため、動作保証されたバージョン間でのみ自動更新が行えるようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２９３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、例えば動作保証されているのが「バージョン１からバージョン２への更新」または「バージョン２からバージョン３への更新」だけであった場合、バージョン１からバージョン３への自動更新は設定できないという問題がある。
また、近年ファームウェアの肥大化の影響で、バグ修正版をリリースする機会も多くなり、全てバージョン間での組み合わせで更新の可否を評価することが困難になってきた。このためバージョンの更新を行う際に自動更新が行えず、ユーザによる手動更新が要求されることが多くなってきている。これは、ユーザの負担を増加させ、ファームウェアの効率的な運用を阻害する要因となりうる。
【０００５】
本発明は、上述した従来技術による問題点の少なくともひとつを解消するため、ユーザに負担をかけずに、効率的、かつ確実にファームウェアの更新処理を可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題の少なくともひとつを解決するため、本発明にかかるファームウェア更新方法は、ファームウェア情報を取得するファームウェア情報取得工程と、前記ファームウェア情報取得工程で取得した情報を元に更新対象のファームウェアのバージョンをユーザに指定させるファームウェアバージョン指定工程と、現在使用のファームウェアのバージョンから前記ファームウェアバージョン指定工程で指定されたファームウェアのバージョンへの更新が、動作保証された他のバージョン間の更新を介在させることにより可能であるか否かを判定する判定工程と、前記判定工程によって、動作保証された他のバージョン間の更新を介在させることにより、現在使用のファームウェアのバージョンから前記指定されたファームウェアのバージョンへの更新が可能であると判定された場合には、ファームウェアのバージョン更新を行う更新実行工程と、を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ユーザに負担をかけずに、効率的、かつ確実にファームウェアの更新処理が可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態にかかるファームウェア更新システムの構成の一例を示す図である。
【図２】ファームウェア配信サーバ１０１のハードウェア構成を示すブロック図である。
【図３】ファームウェア更新装置１０３，１０４，１０５のハードウェア構成を示すブロック図である。
【図４】ファームウェア配信サーバ１０１の主要部の機能的構成を示すブロック図である。
【図５】ファームウェア更新装置１０３，１０４，１０５の主要部の機能的構成を示すブロック図である。
【図６】ファームウェア更新メニュー画面の一例を示す図である。
【図７】ファームウェア更新情報設定画面の一例を示す図である。
【図８】バージョン表示領域７０１に表示されるファームウェアバージョンと、デバイス内の個々のファームウェアのバージョンとの対応の一例を示す表である。
【図９】ファームウェア登録画面の一例を示す図である。
【図１０】ファームウェアを登録する際に、ファイル指定領域９０１に表示されるファイルの内容の一例を示す図である。
【図１１】ファームウェア配信サーバ１０１におけるファームウェア登録処理の手順を示すフローチャートである。
【図１２】ファームウェア情報テーブルの一例を示す表である。
【図１３】ファームウェア更新装置１０３，１０４，１０５がファームウェア配信サーバ１０１へファームウェア情報リスト配信要求を行う場合の処理手順を示すフローチャートである。
【図１４】ファームウェア配信サーバ１０１がファームウェア更新装置１０３，１０４，１０５からのファームウェア情報リスト配信要求を受信した場合の処理手順を示すフローチャートである。
【図１５】キーコードと特別ファームウェアとの対応テーブルの一例を示す表である。
【図１６】ファームウェア更新装置１０３，１０４，１０５におけるファームウェア情報リスト取得後の処理手順を示すフローチャートである。
【図１７】選択されたバージョンの自動更新の可否を判定する処理（図１６のステップＳ１６０１）の詳細な手順を示すフローチャートである。
【図１８】ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新のスケジュール設定処理の手順を示すフローチャートである。
【図１９】（Ａ）は、更新タイミングが「自動」に設定されているファームウェア更新工程情報ファイルの一例を示す図である。（Ｂ）は、更新タイミングが「手動」に設定されているファームウェア更新工程情報ファイルの一例を示す図である。
【図２０】ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新処理の手順を示すフローチャートである。
【図２１】ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新確認処理の手順を示すフローチャートである。
【図２２】ファームウェア配信要求を受けた際のファームウェア配信サーバ１０１の処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の好適な実施形態を詳細に説明する。
＜ファームウェア更新システム＞
図１は、本発明の実施形態にかかるファームウェア更新システムの構成の一例を示す図である。このファームウェア更新システム１００は、それぞれネットワーク１０２に接続された、ファームウェア配信サーバ１０１と、ファームウェア更新装置１０３，１０４，１０５と、コンピュータ１０６と、を含み構成される。なお、ここに示すファームウェア更新装置１０３，１０４，１０５の一例として、本実施形態では各種画像形成を実行する画像形成装置を想定している。このファームウェア更新システム１００では、例えば、ファームウェア更新装置１０３，１０４はＡ社が所有しており、ファームウェア更新装置１０５はＢ社が所有しているものとする。また、コンピュータ１０６は、ファームウェアの販売会社が所有しているものとする。
【００１０】
ファームウェア配信サーバ１０１は、ファームウェア更新装置１０３，１０４，１０５の要求に応じてファームウェアに関する情報の送信やファームウェア自体の配信を行う。ファームウェア更新装置１０３，１０４，１０５は、コピーやプリントなどの機能をもつデバイスであり、スキャナー制御やプリンタ制御などのための複数のファームウェアが組み込まれている。ファームウェア更新装置１０３，１０４，１０５は、ファームウェア配信サーバ１０１経由で必要なファームウェアを取得して、更新することが可能である。販売会社のコンピュータ１０６は、ファームウェア配信サーバ１０１に対して、配信対象のファームウェアの登録・削除やファームウェア情報の更新など、ファームウェア配信サーバ１０１におけるファームウェアの管理を行う。なお、ファームウェアの種類には、通常のファームウェアの他に、顧客に応じてカスタマイズされた特別なファームウェアも存在する。例えば、Ａ社のファームウェア更新装置１０３とＢ社のファームウェア更新装置１０５に対しては、同じ機種であったとしても機能的に異なる別のファームウェアをダウンロードして運用することもできる。
【００１１】
＜ファームウェア配信サーバのハードウェア構成＞
次に、本実施形態にかかるファームウェア配信サーバのハードウェア構成について説明する。図２は、ファームウェア配信サーバ１０１のハードウェア構成を示すブロック図である。
図２において、第１ＣＰＵ２０１、第２ＣＰＵ２０２は、ファームウェア配信サーバ１０１の各機能部の制御を司る。ＲＯＭ２０３は、ファームウェア配信サーバ１０１の各処理に関わるファームウェア更新プログラムやデータを記憶する。ＲＡＭ２０４は、ファームウェア配信サーバ１０１の各処理に関わる一時的なデータを電気的に記憶する。第１ＨＤＤ２０５、第２ＨＤＤ２０６は、ファームウェア配信サーバ１０１の各処理に関わるプログラムや、各種データ、ファームウェアを配信するファームウェア更新装置に関する情報、配信対象となるファームウェア、当該ファームウェアの情報などを記憶する。
【００１２】
ファームウェア配信サーバ１０１では、本実施形態のファームウェア配信を実行するためのプログラムを第１ＨＤＤ２０５または第２ＨＤＤ２０６に格納している。このプログラムは、ＲＡＭ２０４を一時保存領域として使用し、第１ＣＰＵ２０１もしくは第２ＣＰＵ２０２によって呼び出され実行される。
入力装置２０７は、ファームウェア配信サーバ１０１への指示入力を受け付ける。これは、キーボードやポインティングデバイスなどで構成される。表示部２０８は、ファームウェア配信サーバ１０１の動作状況や、ファームウェア配信サーバ１０１上で動作する各プログラムが出力する情報を表示する。ネットワークＩ／Ｆ（インターフェース）２０９は、ネットワーク経由でＬＡＮおよびインターネットに接続し、外部装置との情報交換を行う。外部機器Ｉ／Ｆ（インターフェース）２１０は、外部記憶機器等との接続を制御する。上記の各機能部は装置内部のデータの流れを司るシステムバス２１１を介して接続される。
【００１３】
＜ファームウェア更新装置のハードウェア構成＞
次に、本実施形態にかかるファームウェア更新装置のハードウェア構成について説明する。図３は、ファームウェア更新装置１０３，１０４，１０５のハードウェア構成を示すブロック図である。本実施形態で用いるファームウェア更新装置としては、プリンタおよびファクシミリ機能が統合的に設けられた複合機が想定される。また、ＰＣなどからデータを受信し印刷するプリンタ（電子写真方式及びインクジェット方式を含む）や、スキャナーや、ファクシミリなどでもよい。なお、図３に示すファームウェア更新装置の構成は、複合機を想定している。
【００１４】
図３において、原稿給送部３０１は、読み取り原稿をイメージリーダ３０２へ送り込む。イメージリーダ３０２は、原稿給送部３０１から送られた原稿を読み込み、印刷画像に変換・印刷出力する。画像形成部３０３は、後述するＨＤＤ（ハードディスク）３０９などの記憶手段に記憶されているデータやネットワーク経由で受信したデータを、印刷画像に変換・印刷出力する。排紙部３０４は、印刷出力した紙を排出し、ソートやステイプルといった処理を行う。ネットワークＩ／Ｆ３０５は、ネットワーク経由でＬＡＮおよびインターネットに接続し、外部装置と情報交換を行う。ＣＰＵ３０６は、コピーや、スキャン、プリントといった処理をはじめとして、ファームウェア更新装置全体の制御を司る。不揮発性記憶手段であるＲＯＭ３０７は、ファームウェア更新装置の各処理に関わるプログラムやデータを記憶する。書換え可能な記憶手段であるＲＡＭ３０８は、ファームウェア更新装置の各処理に関わる一時的なデータを電気的に記憶する。ＨＤＤ３０９は、ファームウェア更新装置の各処理に関わるプログラムや、データ、外部装置から送信されてきたユーザデータなどを記憶する。ファームウェア更新装置は、画像形成を実行するプログラムをＨＤＤ３０９に有している。このプログラムは、ＲＡＭ３０８を一時保存領域として使用し、ＣＰＵ３０６によって呼び出され実行される。操作部３１０は、ファームウェア更新装置への指示入力を受け付ける。表示部３１１は、ファームウェア更新装置の動作状況および操作部３１０に対する操作に関わる情報を表示する。上記の各機能部は装置内部のデータの流れを司るシステムバス３１２を介して接続される。
【００１５】
＜ファームウェア配信サーバの機能的構成＞
次に、本実施形態にかかるファームウェア配信サーバ主要部の機能的構成について説明する。図４は、ファームウェア配信サーバ１０１の主要部の機能的構成を示すブロック図である。このファームウェア配信サーバ１０１は、通信制御部４０１と、Ｗｅｂ  ＵＩ（ユーザインターフェース）制御部４０２と、ファームウェア管理部４０３と、ファームウェア送信制御部４０４と、を備えている。
通信制御部４０１は、ネットワークとの接続を制御し、ファームウェア更新装置１０３，１０４，１０５やコンピュータ１０６とのデータの送受信を行う。この通信制御部４０１は、例えば図２に示した第１ＣＰＵ２０１または第２ＣＰＵ２０２とネットワークＩ／Ｆ２０９などでその機能を実現できる。
【００１６】
Ｗｅｂ  ＵＩ制御部４０２は、外部のコンピュータ１０６の制御に基づき、ファームウェア管理を行うためのＵＩを制御する。この通信制御部４０１は、例えば図２に示した第１ＣＰＵ２０１または第２ＣＰＵ２０２と入力装置２０７と表示部２０８とで構成し、第１ＣＰＵ２０１または第２ＣＰＵ２０２が所定のプログラムを実行することでその機能を実現できる。
ファームウェア管理部４０３は、Ｗｅｂ  ＵＩ制御部４０２経由でファームウェアの登録・削除や、登録されているファームウェアの情報の管理を行う。このファームウェア管理部４０３は、例えば図２に示した第１ＣＰＵ２０１または第２ＣＰＵ２０２が所定のプログラムを実行することでその機能を実現できる。
【００１７】
ファームウェア送信制御部４０４は、ファームウェア更新装置１０３，１０４，１０５などからの要求に応じて、ファームウェア情報やファームウェアの選択・送信を行う。このファームウェア送信制御部４０４は、例えば図２に示した第１ＣＰＵ２０１または第２ＣＰＵ２０２が所定のプログラムを実行することでその機能を実現できる。
【００１８】
＜ファームウェア更新装置の機能的構成＞
次に、本実施形態にかかるファームウェア更新装置主要部の機能的構成について説明する。図５は、ファームウェア更新装置１０３，１０４，１０５の主要部の機能的構成を示すブロック図である。図５に示す各機能部は、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新に関わる処理を司るものである。ファームウェア更新装置１０３，１０４，１０５は、ＵＩ制御部５０１と、更新スケジュール制御部５０２と、判定部５０３と、更新工程保持部５０４と、更新処理部５０５と、通信制御部５０６と、を備えている。
【００１９】
ＵＩ制御部５０１（ファームウェアバージョン指定手段、自動更新選択手段）は、ファームウェア更新のためのメニュー画面を表示したり、ファームウェアの更新スケジュール設定画面を表示したりする。そして、ファームウェア配信サーバ１０１から取得した情報を元に更新対象のファームウェアのバージョンをユーザに指定させる。また、ユーザに自動更新を行うか否かを選択させる。このＵＩ制御部５０１は、例えば図３に示したＣＰＵ３０６と操作部３１０と表示部３１１とにより構成し、ＣＰＵ３０６が所定のプログラムを実行することでその機能を実現できる。
【００２０】
更新スケジュール制御部５０２は、ＵＩ制御部５０１で制御されるＵＩの設定に応じてファームウェアの更新スケジュールを設定する。この更新スケジュール制御部５０２は、例えば図３に示したＣＰＵ３０６が所定のプログラムを実行することでその機能を実現できる。
判定部５０３は、ファームウェアの更新スケジュールを設定する際に、ファームウェアのバージョンの更新が可能か否かを判定する。例えば、現在使用のファームウェアのバージョンから指定されたファームウェアのバージョンへの更新が、動作保証された他のバージョン間の更新を介在させることにより可能であるか否かを判定する。この判定部５０３は、例えば図３に示したＣＰＵ３０６が所定のプログラムを実行することでその機能を実現できる。
【００２１】
更新工程保持部５０４は、スケジュールされた更新のための情報（いつファームウェアをダウンロードするか、ダウンロードしたファームウェアをいつ適用するか、どのような手順でファームウェアを適用するか等の情報）を保持する。この更新工程保持部５０４は、例えば図３に示したＣＰＵ３０６と、ＲＡＭ３０８やＨＤＤ３０９などでその機能を実現できる。
更新処理部５０５は、更新工程保持部５０４に保持された情報を元にファームウェアの更新を実行する。例えば、ＵＩ制御部５０１により自動更新が選択された場合には、ファームウェア配信サーバ１０１から前記指定されたファームウェアのバージョンをダウンロードして更新処理を実行する。また、ＵＩ制御部５０１により自動更新が選択さなかった場合には、ファームウェア配信サーバ１０１から前記指定されたファームウェアのバージョンをダウンロードするのみで更新処理を実行しない。この更新処理部５０５は、例えば図３に示したＣＰＵ３０６が所定のプログラムを実行することでその機能を実現できる。
【００２２】
通信制御部５０６（ファームウェア情報取得手段）は、ネットワークとの接続を制御し、ファームウェア配信サーバ１０１とのデータの送受信を行う。例えば、ファームウェアの更新スケジュールを設定する際にファームウェア配信サーバ１０１からファームウェア情報を受信したり、ファームウェア更新を行う際にファームウェア配信サーバ１０１からファームウェアを受信したりする。この通信制御部５０６は、例えば図３に示したＣＰＵ３０６とネットワークＩ／Ｆ３０５などでその機能を実現できる。
【００２３】
＜ファームウェア更新に関する各処理＞
以下では、本実施形態におけるファームウェア更新に関する各処理について説明する。
【００２４】
図６は、ファームウェア更新メニュー画面の一例を示す図である。このファームウェア更新メニュー画面６００は、ファームウェア更新装置１０３，１０４，１０５の設定メニューからファームウェア更新を選択すると表示部３１１に表示される。このファームウェア更新メニュー画面は、ボタン６０１と、キーコード入力エリア６０２と、ボタン６０３とからなる。
ボタン６０１は、ファームウェア更新の設定を行う画面に遷移するためのボタンである。キーコード入力エリア６０２は、キーコードを入力するためのエリアである。特別なファームウェアに更新する場合に、このキーコード入力エリア６０２に所定のキーコードを入力する。通常のファームウェアを利用する場合は、ここにキーコードを入力する必要はない。また、ボタン６０３は、既にダウンロード済みのファームウェアが存在する場合、当該ファームウェアを適用するためのボタンである。
【００２５】
図７は、ファームウェア更新情報設定画面の一例を示す図である。このファームウェア更新情報設定画面７００は、図６のボタン６０１が押下された後に表示部３１１に表示される。このファームウェア更新情報設定画面７００は、バージョン表示領域７０１と、コンボボックス７０２と、日時入力エリア７０３と、トグルボタン７０４，７０５と、ボタン７０６，７０７と、を含み構成されている。
バージョン表示領域７０１は、現在動作しているファームウェアのバージョンを示す。なお、ここに表示されるバージョンは、デバイス内で動作している個々のファームウェアのバージョンではなく、デバイス内で動作しているファームウェアのバージョンの組みあわせに対して割り振ったバージョンを表示している。図８は、バージョン表示領域７０１に表示されるファームウェアバージョンと、デバイス内の個々のファームウェアのバージョンとの対応の一例を示す表である。
【００２６】
コンボボックス７０２は、更新対象のファームウェアのバージョンを選択するＵＩである。ここで選択可能なバージョンは、ファームウェア配信サーバ１０１から受信した情報に基づいて決定される。現在のバージョンよりも新しいバージョンだけでなく、場合により古いバージョンの選択が可能である。
日時入力エリア７０３は、ファームウェア配信サーバ１０１からファームウェアのダウンロードを行う日時を指定するためのＵＩである。なお、過去の日時が設定された場合は、直ちにダウンロード処理が開始されることになる。
【００２７】
トグルボタン７０４は、ファームウェア配信サーバ１０１からダウンロードしたファームウェアを実際にファームウェア更新装置１０３，１０４，１０５に適用するタイミングを指定するためのＵＩである。「自動」を選択するとダウンロード完了直後に自動的に適用される。また、「手動」を選択すると配信日時にダウンロードだけを行い、図６のボタン６０３が押下されることでダウンロードしたファームウェアを適用することになる。なお、適用タイミングで「自動」が選択できるのは現在のバージョンから指定されたバージョンへの更新が動作保証されている場合、もしくは動作保証されている更新を繰り返すことで指定したバージョンに到達できる場合のみである。この条件を満たさない場合は、「自動」を選択することはできない。
【００２８】
トグルボタン７０５は、動作保証された更新を繰り返すことで指定したバージョンに到達できるが、更新タイミングを手動に設定した場合にのみ設定可能となるボタンである。ここで「いいえ」が選択されると、動作保証された更新を繰り返すことでファームウェアの更新処理を行う。一方、「はい」が選択されると、直接指定されたバージョンに更新する。なお、更新タイミングが「自動」になっている場合は、このボタンは操作できず、「いいえ」が選択された場合と同じ動作になる。
ボタン７０６は、設定項目を決定するためのボタンである。このボタンが押下されると設定内容に基づいてファームウェアの更新がスケジュールされる。
ボタン７０７は、設定を取り消すためのボタンであり、このボタンが押下されると設定された内容が破棄され元の画面に戻る。
【００２９】
図９は、ファームウェア登録画面の一例を示す図である。まず、コンピュータ１０６からファームウェア配信サーバ１０１のファームウェア管理のためのＵＲＬに接続すると、コンピュータ１０６の表示部にファームウェア管理画面が表示される。ここでは、ファームウェアの登録・削除・情報の更新を行うことができる。そして、前記ファームウェア管理画面において、ファームウェアの登録を選択すると、コンピュータ１０６の表示部に、図９に示すファームウェア登録画面９００が表示される。このファームウェア登録画面９００は、ファイル指定領域９０１と、参照ボタン９０２と、チェックボックス９０３，９０４と、ボタン９０５，９０６と、を含み構成されている。
【００３０】
ファイル指定領域９０１は、登録するファームウェアのファイルを設定するためのＵＩである。ファイル指定領域９０１に登録するファームウェアのファイル名を表示させ参照ボタン９０２を押すと、ＯＳのファイルブラウザが開き当該ファイルが選択可能になる。そして、ファイルブラウザでファイルを選択すると、ファイル指定領域９０１に選択したファイルが設定される。チェックボックス９０３，９０４は、動作保証されているバージョンを指定するためのＵＩである。チェックボックス９０３は、どのバージョンから登録ファームウェアへの更新処理が動作保証されているかを設定するものである。チェックボックス９０４は、登録ファームウェアからどのバージョンへの更新処理が動作保証されているかを設定するものである。ボタン９０５はキャンセルボタンであり、設定されている内容を破棄してファームウェア管理画面に戻るためのボタンである。また、ボタン９０６は登録ボタンであり、設定した内容をファームウェア配信サーバ１０１に登録するためのボタンである。
【００３１】
図１０は、ファームウェアを登録する際に、ファイル指定領域９０１に表示されるファイルの内容の一例を示す図である。ファイルは、複数のファイルをまとめたものになっており、情報ファイル１００１、複数のファームウェアファイル１００２，１００３，１００４、署名ファイル１００５から構成されている。
この例では、メインコントローラのファームウェア１００２、プリンタコントローラのファームウェア１００３、スキャナコントローラのファームウェア１００４の３種類のファームウェアを含んでいる。情報ファイル１００１は、中に含んでいる各ファームウェアの種別とファイル名の対応情報やバージョン情報を含む。署名ファイル１００５は、ファイルが改竄されていないことを検証するために利用する。
【００３２】
次に、外部のコンピュータ１０６からの要求により、ファームウェア配信サーバ１０１がファームウェアの登録を行う手順を示す。図１１は、ファームウェア配信サーバ１０１におけるファームウェア登録処理の手順を示すフローチャートである。
図１１に示すフローチャートにおいて、まず、ファームウェア登録要求を受信する（ステップＳ１１０１）。この処理は、例えば図４に示した通信制御部４０１が行う。なお、ファームウェア登録要求には、ファームウェアのファイルも含まれる。
次に、ファイルが正当であるか否かを判定する（ステップＳ１１０２）。具体的には、図４に示したファームウェア管理部４０３が、受信したファームウェアのファイルの署名検証や受信したファイル内の情報ファイルの書式が所定の形式であるか否かを判定する。ここで、ファイルが正当でないと判定された場合（ステップＳ１１０２：Ｎｏ）は、エラー画面を返信する（ステップＳ１１０６）。具体的には、図４に示したＷｅｂ  ＵＩ制御部４０２が通信制御部４０１を介して、コンピュータ１０６にファームウェア登録にエラーが発生した旨を示す画面を送信する。
【００３３】
一方、ステップＳ１１０２においてファイルが正当であると判定された場合（ステップＳ１１０２：Ｙｅｓ）は、ファームウェアファイルを保存する（ステップＳ１１０３）。ここでは、例えば図４に示したファームウェア管理部４０３が、受信したファームウェアファイルを図２に示した第１ＨＤＤ２０５や第２ＨＤＤ２０６などに保存する。
次に、ファームウェア情報テーブルを更新する（ステップＳ１１０４）。具体的には、ファームウェア管理部４０３が、受信した登録要求に含まれる情報をもとにファームウェア情報テーブル（詳細は後述）を更新し、これを第１ＨＤＤ２０５や第２ＨＤＤ２０６などに保存する。
そして、登録完了画面を送信する（ステップＳ１１０５）。具体的には、Ｗｅｂ  ＵＩ制御部４０２が通信制御部４０１を介して、コンピュータ１０６にファームウェア登録が完了した旨を示す画面を送信する。
【００３４】
次に、ファームウェア配信サーバ１０１が保持するファームウェア情報テーブルについて説明する。図１２は、ファームウェア情報テーブルの一例を示す表である。
図１２に示すように、ファームウェア情報テーブル１２００のレコードは、ＩＤ、種別、機種、バージョン、動作保証バージョン、ファイル名の各情報から構成される。ＩＤは、各レコードに割り振られた識別子である。種別は、ファームウェアの種別を示すものである。例えば、通常のファームウェア、ある顧客に特化した特別なファームウェア、市場で発生した問題を解析するための問題解析用ファームウェアなどが存在する。機種は、どの機種に対応するファームウェアであるかを示す情報である。バージョンは、当該ファームウェアのバージョンを示す情報である。動作保証バージョンは、どのバージョンからの更新が動作保証されているかを示すものである。例えば、バージョン１．１．１のファームウェアは、バージョン１．０．１のファームウェアからの更新処理は動作保証されているが、その他のバージョンからの更新処理は動作保証されていないことを示している。また、ファイル名は、ファームウェア配信サーバ１０１の記憶装置（第１ＨＤＤ２０５など）に記憶される際のファイル名である。
【００３５】
次に、ファームウェア更新装置１０３，１０４，１０５がファームウェア配信サーバ１０１へファームウェア情報リスト配信要求を行う場合の処理について説明する。図１３は、ファームウェア更新装置１０３，１０４，１０５がファームウェア配信サーバ１０１へファームウェア情報リスト配信要求を行う場合の処理手順を示すフローチャートである。
図１３に示すフローチャートにおいて、まず、ファームウェア情報リスト取得要求を送信する（ステップＳ１３０１）。なお、画面で６０１のボタンを押すとフローチャートが開始する。
具体的には、例えば図５に示した更新スケジュール制御部５０２が、ＵＩ制御部５０１で制御されるＵＩの設定に応じて、ファームウェア配信サーバ１０１に対してファームウェア情報リスト取得要求を送信する。ファームウェア情報リスト取得要求には、当該ファームウェア更新装置の機種情報、装着されているオプション情報を含む。また、キーコードが入力されていればキーコードの情報も要求に含まれている。
【００３６】
次に、応答を受信する（ステップＳ１３０２）。ここでは、図５に示した通信制御部５０６が、ファームウェア配信サーバ１０１からの応答を受信する。
次に、正常にファームウェア情報リストを取得できたか否かを判定する（ステップＳ１３０３）。この判定は、更新スケジュール制御部５０２が行う。
ステップＳ１３０３において正常にファームウェア情報リストを取得できた場合（ステップＳ１３０３：Ｙｅｓ）は、ファームウェア更新情報設定画面を表示する（ステップＳ１３０４）。具体的には、図５に示したＵＩ制御部５０１が、取得したファームウェア情報を元にファームウェア更新情報設定画面（図７））を構成し、図３に示した表示部３１１に表示する。図７では、ファームウェアバージョンが表示されているが、最初は、７０２にはファームウェアバージョンを選択してくださいという表示にしてもよい。そして、７０２の操作に応答して、プルダウンメニューを表示し、ファームウェア情報リストに基づき選択可能なファームウェアのバージョンを表示するようにしてもよい。
【００３７】
一方、ステップＳ１３０３において正常にファームウェア情報リストを取得できなかった場合（ステップＳ１３０３：Ｎｏ）は、エラー画面を表示する（ステップＳ１３０５）。具体的には、図５に示したＵＩ制御部５０１が、正常にファームウェア情報リストを取得できなかった旨を示すエラー表示画面を構成し、図３に示した表示部３１１に表示する。
次に、ファームウェア配信サーバ１０１がファームウェア更新装置１０３，１０４，１０５からのファームウェア情報リスト配信要求を受信した場合の処理について説明する。図１４は、ファームウェア配信サーバ１０１がファームウェア更新装置１０３，１０４，１０５からのファームウェア情報リスト配信要求を受信した場合の処理手順を示すフローチャートである。
【００３８】
図１４に示すフローチャートにおいて、まず、ファームウェア情報リスト配信要求を受信する（ステップＳ１４０１）。この処理は、例えば図４に示した通信制御部４０１が行う。
次に、キーコードが含まれるか否かを判定する（ステップＳ１４０２）。具体的には、図４に示したファームウェア送信制御部４０４が、ステップＳ１４０１で受信したファームウェア情報リスト配信要求にキーコードが含まれるか否かを判定する。
ステップＳ１４０２においてキーコードが含まれない場合（ステップＳ１４０２：Ｎｏ）は、通常のファームウェア情報を送信する（ステップＳ１４０３）。ここでは、ファームウェア送信制御部４０４が、通信制御部４０１を介して、前記ファームウェア情報配信得要求に含まれる機種情報に基づいて当該機種に対応した通常のファームウェア情報リストを要求元（ファームウェア更新装置１０３など）へ送信する。
【００３９】
一方、ステップＳ１４０２においてキーコードが含まれる場合（ステップＳ１４０２：Ｙｅｓ）は、対応するファームウェアがあるか否かを判定する（ステップＳ１４０４）。ここでは、ファームウェア送信制御部４０４が、例えば図１５に示すようなキーコードと特別ファームウェアとの対応テーブルを参照して、当該キーコードに対応するファームウェアが存在するか否かを判定する。
ステップＳ１４０４において対応するファームウェアが存在する場合（ステップＳ１４０４：Ｙｅｓ）は、キーコードに対応する種類のファームウェア情報を送信する（ステップＳ１４０５）。具体的には、ファームウェア送信制御部４０４が、通信制御部４０１を介し、前記ファームウェア情報リスト配信要求に含まれる機種情報に基づき、キーコードに対応する種類のファームウェア情報リストを要求元（ファームウェア更新装置１０３など）へ送信する。
【００４０】
一方、ステップＳ１４０４において対応するファームウェアが存在しない場合（ステップＳ１４０４：Ｎｏ）は、エラー発生情報を送信する（ステップＳ１４０６）。具体的には、ファームウェア送信制御部４０４が、通信制御部４０１を介して、該当するファームウェア情報リストがない旨を示すエラー発生情報を要求元（ファームウェア更新装置１０３など）へ送信する。
次に、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア情報リスト取得後の処理について説明する。図１６は、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア情報リスト取得後の処理手順を示すフローチャートである。以下の処理は、図１３のステップＳ１３０４において表示された図７の７０２において、ファームウェアバージョンが指示又は入力されるのに応答して実行される処理である。この処理の結果に応じて、図７の画面の表示を変更する。
【００４１】
図１６に示すフローチャートにおいて、まず、選択されたバージョンは自動更新可能か否かを判定する（ステップＳ１６０１）。この処理は、主に図５に示した判定部５０３およびＵＩ制御部５０１が行う。なお、詳細は後述する。ここで、選択されたバージョンが自動更新不可能な場合（ステップＳ１６０１：Ｎｏ）は、自動更新の選択ＵＩを無効化する（ステップＳ１６０２）。この処理は、図５に示したＵＩ制御部５０１が行う。自動更新の選択ＵＩを無効化することで、当該バージョンをＵＩ上でユーザが選択できないようになる。ここで、無効化とは、図７の画面が選択不可能に表示することである。例えば、自動更新が無効化されるときには、自動のラジオボタンをグレーアウトしたり、ラジオボタンを消去したりすることが考えられる。また、「自動」のラジオボタンが選択された後に、選択された設定はエラーである旨を報知することも、「無効化」に含まれる。
【００４２】
一方、ステップＳ１６０１において選択されたバージョンが自動更新可能な場合（ステップＳ１６０１：Ｙｅｓ）は、自動更新の選択ＵＩを有効化する（ステップＳ１６０３）。この処理も、図５に示したＵＩ制御部５０１が行う。自動更新の選択ＵＩを有効化することで、当該バージョンをＵＩ上でユーザが選択できるようになる。
次に、選択されたバージョンの自動更新の可否を判定する処理（図１６のステップＳ１６０１）の詳細を説明する。図１７は、選択されたバージョンの自動更新の可否を判定する処理の詳細な手順を示すフローチャートである。
図１７に示すフローチャートにおいて、まず、指定バージョンへの更新が動作保証されているか否かを判定する（ステップＳ１７０１）。ここでは、判定部５０３が、受信したファームウェア情報リストを参照し、現在のバージョンから指定されたバージョンへのファームウェア更新について動作保証がされているかどうかを判定する。以下特に明示しない限りは、図１７の処理は判定部５０３の処理である。
【００４３】
ステップＳ１７０１において指定バージョンへの更新が動作保証されている場合（ステップＳ１７０１：Ｙｅｓ）は、直接前記指定バージョンへの更新を実行するように設定する（ステップＳ１７０２）。すなわち、ファームウェア更新時の適用タイミングを自動にする場合の更新手順として、ＵＩ制御部５０１が直接指定バージョンに更新されるＵＩ設定が可能になるように設定画面の制御を行う。そして、判定部５０３が、自動更新を可能と判断する（ステップＳ１７０３）。この判断処理の結果、ＵＩ制御部５０１が、ファームウェアの更新タイミングとしてユーザが「自動」を選択可能な状態になるように設定画面を制御する。
【００４４】
一方、ステップＳ１７０１において指定バージョンへの更新が動作保証されていない場合（ステップＳ１７０１：Ｎｏ）は、現在のバージョンからの更新が動作保証されているバージョンがあるか否かを検索する（ステップＳ１７０４）。この処理は、判定部５０３が、前記ファームウェア情報リストを参照し、現在のバージョンからの更新が動作保証されているバージョンがあるか否かを検索する。ここで、現在のバージョンからの更新が動作保証されているバージョンがある場合（ステップＳ１７０４：Ｙｅｓ）は、更新可能なバージョン間の組み合わせを記憶する（ステップＳ１７０５）。この処理は、判定部５０３がたとえば図３に示したらＭ３０８やＨＤＤ３０９に更新可能なバージョン間の組み合わせを記憶する。
【００４５】
次に、さらなる更新が動作保証されているバージョンがあるか否かを検索する（ステップＳ１７０６）。この処理は、判定部５０３が、前記ファームウェア情報リストを参照し、さらなる更新が動作保証されているバージョンがあるか否かを検索する。ここで、さらなる更新が動作保証されているバージョンがある場合（ステップＳ１７０６：Ｙｅｓ）は、更新可能なバージョン間の組み合わせを記憶する（ステップＳ１７０７）。この処理は、判定部５０３が例えば図３に示したＭ３０８やＨＤＤ３０９に更新可能なバージョン間の組み合わせを記憶する。この後、再度ステップＳ１７０６の処理を実行する。
【００４６】
一方、ステップＳ１７０６においてさらなる更新が動作保証されているバージョンがない場合（ステップＳ１７０６：Ｎｏ）は、記憶されたバージョン間の組み合わせの中から指定バージョンへ到達する組み合わせがあるか否かを判定する（ステップＳ１７０８）。具体的には、判定部５０３が、ステップＳ１７０５およびステップＳ１７０７において記憶されている各組み合わせを検索して、現在のバージョンから指定されたバージョンへの更新が可能となる組み合わせがあるか否かを判定する。
【００４７】
ステップＳ１７０８において記憶されたバージョン間の組み合わせの中から指定バージョンへ到達する組み合わせがある場合（ステップＳ１７０８：Ｙｅｓ）は、最短の更新で指定されたバージョンへ到達する組み合わせを選択する（ステップＳ１７０９）。この処理も、判定部５０３が行う。この後、前述したステップＳ１７０３の処理を実行する。
なお、前述のステップＳ１７０４において現在のバージョンからの更新が動作保証されているバージョンがない場合（ステップＳ１７０４：Ｎｏ）は、自動更新を不可能と判定部が判定する（ステップＳ１７１０）。具体的には、ＵＩ制御部５０１が、ファームウェアの更新タイミングとしてユーザが「自動」を選択不可能な状態になるように設定画面を制御する。また、前述のステップＳ１７０８において記憶されたバージョン間の組み合わせの中から指定バージョンへ到達する組み合わせがない場合（ステップＳ１７０８：Ｎｏ）も、同様にステップＳ１７１０の処理を実行する。
【００４８】
次に、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新のスケジュール設定について説明する。図１８は、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新のスケジュール設定処理の手順を示すフローチャートである。以下の処理は、図７のＯＫボタン７０６が押下された後に開始される。
図１８に示すフローチャートにおいて、まず、自動更新が選択されているか否かを判定する（ステップＳ１８０１）。ここでは、図５に示した更新スケジュール制御部５０２が、ＵＩ制御部５０１で制御されるＵＩの設定（例えば図７に示した適用タイミングの設定を示すトグルボタン７０４の状態）を参照し、自動更新が選択されているか否かを判定する。
【００４９】
ステップＳ１８０１において自動更新が選択されている場合（ステップＳ１８０１：Ｙｅｓ）は、動作保証された更新を複数回繰り返すようにスケジュール設定を行う（ステップＳ１８０２）。具体的には、更新スケジュール制御部５０２が、動作保証されたファームウェア更新処理を繰り返すことによりファームウェアの更新実行がされるようにファームウェア更新工程情報ファイルを設定する。そして、図５に示した更新工程保持部５０４が、前記ファームウェア更新工程情報ファイルを格納する。なお、このファームウェア更新工程情報ファイルの詳細は後述する。
一方、ステップＳ１８０１において自動更新が選択されていない場合（ステップＳ１８０１：Ｎｏ）は、直接更新が選択されているか否かを判定する（ステップＳ１８０３）。ここでは、図５に示した更新スケジュール制御部５０２が、ＵＩ制御部５０１で制御されるＵＩの設定（例えば図７に示した直接更新か否かの設定を示すトグルボタン７０５の状態）を参照し、直接更新が選択されているか否かを判定する。ここで、直接更新が選択されていない場合（ステップＳ１８０３：Ｎｏ）は、前述のステップＳ１８０２の処理を行う。
【００５０】
一方、ステップＳ１８０３において直接更新が選択されている場合（ステップＳ１８０３：Ｙｅｓ）は、指定されたバージョンに直接更新するようにスケジュール設定を行う（ステップＳ１８０４）。具体的には、更新スケジュール制御部５０２が、指定されたファームウェアに直接更新するように前記ファームウェア更新工程情報ファイルを設定する。そして、更新工程保持部５０４が、前記ファームウェア更新工程情報ファイルを格納する。
【００５１】
ここで、前記ファームウェア更新工程情報ファイルについて詳細に説明する。以下では、バージョン１．０．１のファームウェアからバージョン３．０．１のファームウェアに更新する場合を例示して説明する。
図１９（Ａ）は、更新タイミングが「自動」に設定されているファームウェア更新工程情報ファイルの一例を示す図である。この例では、更新タイミングが自動である場合、動作保証されている更新を繰り返してバージョン更新を行うようにスケジュールされるため、まずバージョン１．１．１を適用した後にバージョン３．０．１を適用するようになっている。
図１９（Ｂ）は、更新タイミングが「手動」に設定されているファームウェア更新工程情報ファイルの一例を示す図である。この例は、直接更新する設定にした場合の例である。したがって、バージョン１．０．１からバージョン３．０．１への更新の動作保証はされていないが、直接バージョン３．０．１に更新を行うようにスケジュールされている。
【００５２】
次に、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新処理について説明する。図２０は、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新処理の手順を示すフローチャートである。
図２０に示すフローチャートにおいて、まず、更新工程情報を取得する（ステップＳ２１０１）。具体的には、図５に示した更新処理部５０５が、更新工程保持部５０４が保持するファームウェア更新工程情報ファイルから、更新対象のファームウェアバージョン情報を取得する。
次に、更新対象となるバージョンのファームウェアを要求する（ステップＳ２１０２）。ここでは、更新処理部５０５が、通信制御部５０６を介して、ファームウェア配信サーバ１０１に対して更新対象であるバージョンのファームウェアの送信要求を送信する。
【００５３】
次に、更新対象となるバージョンのファームウェアを受信する（ステップＳ２１０３）。ここでは、更新処理部５０５が、ファームウェア配信サーバ１０１から送信された更新対象であるバージョンのファームウェアを通信制御部５０６を介して受信する。なお、受信したファームウェアは、一時的に記憶手段（例えば図３に示したＲＡＭ３０６など）に格納してもよい。
続いて、ファームウェアを正常に受信できたか否かを判定する（ステップＳ２１０４）。この判定は、更新処理部５０５が行う。ここで、ファームウェアを正常に受信できなかった場合（ステップＳ２１０４：Ｎｏ）は、エラー画面を表示する（ステップＳ２１０５）。例えば、ＵＩ制御部５０１が図３の表示武３１１に受信エラーした旨を示す画面を表示する。
【００５４】
一方、ステップＳ２１０４においてファームウェアを正常に受信できた場合（ステップＳ２１０４：Ｙｅｓ）は、ファームウェアの自動更新が有効になっているか否かを判定する（ステップＳ２１０６）。この判定は、更新処理部５０５が、前記ファームウェア更新工程情報ファイルを参照し、自動更新が有効になっているか否を判定する。ここで、ファームウェアの自動更新が有効になっていない場合（ステップＳ２１０６：Ｎｏ）は、直ちに処理を終了する。
一方、ステップＳ２１０６においてファームウェアの自動更新が有効になっている場合（ステップＳ２１０６：Ｙｅｓ）は、ファームウェア更新装置を再起動する（ステップＳ２１０７）。
【００５５】
続いて、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新確認処理について説明する。図２１は、ファームウェア更新装置１０３，１０４，１０５におけるファームウェア更新確認処理の手順を示すフローチャートである。以下の処理は、ファームウェア更新装置１０３，１０４，１０５の再起動（図２０のステップＳ２１０７の処理）後に実行される。
図２１に示すフローチャートにおいて、まず、ダウンロードされたファームウェアファイルが存在するか否かを判定する（ステップＳ２２０１）。この処理は、更新処理部５０５が行う。ここで、ダウンロードされたファームウェアファイルが存在しない場合（ステップＳ２２０１：Ｎｏ）は、直ちに処理を終了する。
【００５６】
一方、ステップＳ２２０１においてダウンロードされたファームウェアファイルが存在する場合（ステップＳ２２０１：Ｙｅｓ）は、更新工程情報を読み込む（ステップＳ２２０２）。具体的には、更新処理部５０５が、前記ファームウェアファイルに対応する更新工程保持部５０４が保持するファームウェア更新工程情報ファイルを読み込む。
次に、対象のファームウェアは自動更新可能か否かを判定する（ステップＳ２２０３）。具体的には、更新処理部５０５が、ステップＳ２２０２で読み込んだファームウェア更新工程情報ファイルを参照し、更新対象のファームウェアが自動更新可能か否かを判定する。ここで、対象のファームウェアが自動更新不可能である場合（ステップＳ２２０３：Ｎｏ）は、直ちに処理を終了する。
【００５７】
一方、ステップＳ２２０３において対象のファームウェアが自動更新可能である場合（ステップＳ２２０３：Ｙｅｓ）は、ファームウェアの展開処理を行う（ステップＳ２２０４）。具体的には、更新処理部５０５が、ステップＳ２２０２で読み込んだファームウェア更新工程情報ファイルの進行状況情報に基づき当該ファームウェアの展開処理を行う。
次に、進行状況情報を更新する（ステップＳ２２０５）。ここでは、更新スケジュール制御部５０２が、ファームウェアの更新処理の進行状況に基づき、前記ファームウェア更新工程情報ファイルの進行状況情報を更新する。
【００５８】
続いて、残工程があるか否かを判定する（ステップＳ２２０６）。具体的には、更新処理部５０５が、さらに更新処理を行うべきファームウェアが存在するか否かを判定する。ここで、残工程がある場合（ステップＳ２２０６：Ｙｅｓ）は、ファームウェア更新装置を再起動する（ステップＳ２２０７）。
一方、ステップＳ２２０６において残工程がない場合（ステップＳ２２０６：Ｎｏ）は、不要ファイルを削除する（ステップＳ２２０８）。この処理は、更新処理部５０５が行う。なお、不要ファイルとは、ファームウェアの更新が終了して不要となった当該ファームウェアに対応するファームウェア更新工程情報ファイルをはじめとする、後の処理に使用することがないファイルのことである。この処理の後、ステップＳ２２０７へ移行する。
【００５９】
最後に、ファームウェア更新装置１０３，１０４，１０５からのファームウェア配信要求を受けた際のファームウェア配信サーバ１０１の処理について説明する。図２２は、ファームウェア配信要求を受けた際のファームウェア配信サーバ１０１の処理手順を示すフローチャートである。
図２２に示すフローチャートにおいて、まず、ファームウェア配信要求を受信する（ステップＳ２３０１）。この処理は、例えば図４に示した通信制御部４０１が行う。
【００６０】
次に、要求されたファームウェアが存在するか否かを検索する（ステップＳ２３０２）。具体的には、図４に示したファームウェア送信制御部４０４が、サーバ内の記憶手段（例えば図２の第１ＨＤＤ２０５など）に要求されたファームウェアがあるか否かを検索する。ここで、要求されたファームウェアが存在する場合（ステップＳ２３０２：Ｙｅｓ）は、要求されたファームウェアを送信する（ステップＳ２３０３）。具体的には、ファームウェア送信制御部４０４が、通信制御部４０１を介して、該当するファームウェアを要求元（ファームウェア更新装置１０３など）へ送信する。
一方、ステップＳ２３０２において要求されたファームウェアが存在しない場合（ステップＳ２３０２：Ｎｏ）は、エラー発生情報を送信する（ステップＳ２３０４）。具体的には、ファームウェア送信制御部４０４が、通信制御部４０１を介して、該当するファームウェアがないことを示すエラー発生情報を要求元（ファームウェア更新装置１０３など）へ送信する。
【００６１】
以上説明したように、本実施形態によれば、ユーザに負担をかけずに、効率的、かつ確実にファームウェアの更新処理が可能になる。例えば、直接動作確認されていないバージョン間のファームウェアの更新であっても、間に動作保証されたバージョン間の更新を介在させることで自動更新を行うことが可能になり、ユーザの利便性を向上させることができる。また、手動でファームウェアの更新を行う場合は、直接指定されたバージョン間の更新が可能であり、ファームウェアの更新に要する時間を短縮することができる。
なお、本実施形態では説明を簡単にするためファームウェアの配信要求に対する認証処理などは示していないが、当然、認証された要求元からの要求のみを処理するようにしてもよい。また、上記実施形態は、本発明を実施するにあたりほんの一例を具体的に示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されるものでないことは明らかである。すなわち、本発明はその主要な特徴から逸脱することなく、さまざまな形で実施することができる。
【符号の説明】
【００６２】
５０３  判定部
５０４  更新工程保持部
５０５  更新処理部
【図１】
2010198332.tif 000003
【図２】
2010198332.tif 000004
【図３】
2010198332.tif 000005
【図４】
2010198332.tif 000006
【図５】
2010198332.tif 000007
【図６】
2010198332.tif 000008
【図７】
2010198332.tif 000009
【図８】
2010198332.tif 000010
【図９】
2010198332.tif 000011
【図１０】
2010198332.tif 000012
【図１１】
2010198332.tif 000013
【図１２】
2010198332.tif 000014
【図１３】
2010198332.tif 000015
【図１４】
2010198332.tif 000016
【図１５】
2010198332.tif 000017
【図１６】
2010198332.tif 000018
【図１７】
2010198332.tif 000019
【図１８】
2010198332.tif 000020
【図１９】
2010198332.tif 000021
【図２０】
2010198332.tif 000022
【図２１】
2010198332.tif 000023
【図２２】
2010198332.tif 000024