(57)【特許請求の範囲】
【請求項１】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得手段と、
前記取得手段によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開手段と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開手段によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基づいた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御手段とを備え、
前記展開手段による展開中に、前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記展開手段は前記更新ファームウェアの展開を終了し、前記制御手段は、前記情報処理装置を通常モードからファームウェアを更新するためのモードに移行させた後、前記ファームウェアを更新することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記展開手段による展開が終了した後に前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記情報処理装置を再起動することにより、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を起動することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記展開手段による展開が終了した後に前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記ファームウェアに含まれるプログラムパーツと、当該プログラムパーツを更新するためのプログラムパーツとの対応情報を用いて、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得手段と、
前記取得手段によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開手段と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開手段によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基づいた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御手段とを備え、
前記展開手段による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開手段は前記更新ファームウェアの展開を中断し、前記制御手段は、前記展開済み更新ファームウェアを破棄して、前記情報処理装置を通常モードから前記ファームウェアを更新するためのモードに移行させた後、前記更新ファームウェアを前記所定の記憶領域に展開することなく前記ファームウェアを更新することを特徴とする情報処理装置。
【請求項５】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得手段と、
前記取得手段によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開手段と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開手段によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基づいた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御手段とを備え、
前記展開手段による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開手段は展開を継続し、前記制御手段は、前記展開手段による前記更新ファームウェアの展開が完了した後に、前記展開された前記展開済み更新ファームウェアを前記記憶部とは異なる他の記憶部に記憶することを特徴とする情報処理装置。
【請求項６】
前記展開手段による展開が継続されることを示す警告画面を表示することを特徴とする請求項５記載の情報処理装置。
【請求項７】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得手段と、
前記取得手段によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開手段と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開手段によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基づいた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御手段とを備え、
前記展開手段による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開手段は前記更新ファームウェアの展開を中断し、前記制御手段は、前記展開手段による展開を中断する前に展開された前記展開済み更新ファームウェアを前記記憶部とは異なる他の記憶部に記憶し、前記他の記憶部に記憶された前記展開済み更新ファームウェアを実行するためのリンク情報を差し替え、前記展開手段により展開されなかった前記更新ファームウェアを前記所定の記憶領域に展開することなく前記情報処理装置を制御していたファームウェアを更新することを特徴とする情報処理装置。
【請求項８】
前記展開手段による展開は、符号化された前記更新ファームウェアを復号化する処理であることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置の制御方法であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得工程と、
前記取得工程によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開工程と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開工程によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基いた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御工程とを備え、
前記展開工程による展開中に、前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記更新ファームウェアの展開を終了し、前記制御工程は、前記情報処理装置を通常モードからファームウェアを更新するためのモードに移行させた後、前記ファームウェアを更新することを特徴とする制御方法。
【請求項１０】
前記展開工程による展開が終了した後に前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記制御工程において、前記情報処理装置を再起動することにより、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を起動することを特徴とする請求項９に記載の制御方法。
【請求項１１】
前記展開工程による展開が終了した後に前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記制御工程において、前記ファームウェアに含まれるプログラムパーツと、当該プログラムパーツを更新するためのプログラムパーツとの対応情報を用いて、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御することを特徴とする請求項９に記載の制御方法。
【請求項１２】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置の制御方法であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得工程と、
前記取得工程によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開工程と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開工程によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基いた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御工程とを備え、
前記展開工程による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開工程は前記更新ファームウェアの展開を中断し、前記制御工程は、前記展開済み更新ファームウェアを破棄して、前記情報処理装置を通常モードから前記ファームウェアを更新するためのモードに移行させた後、前記更新ファームウェアを前記所定の記憶領域に展開することなく前記ファームウェアを更新することを特徴とする制御方法。
【請求項１３】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置の制御方法であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得工程と、
前記取得工程によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開工程と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開工程によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基いた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御工程とを備え、
前記展開工程による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開工程は展開を継続し、前記制御工程は、前記展開工程による前記更新ファームウェアの展開が完了した後に、前記展開された前記展開済み更新ファームウェアを前記記憶部とは異なる他の記憶部に記憶することを特徴とする制御方法。
【請求項１４】
前記展開工程による展開が継続されることを示す警告画面を表示することを特徴とする請求項１３記載の制御方法。
【請求項１５】
ファームウェアを有し、当該ファームウェアにより制御される情報処理装置の制御方法であって、
前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得工程と、
前記取得工程によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開工程と、
少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開工程によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基いた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御工程とを備え、
前記展開工程による展開中に、前記ファームウェアの更新の指示を受けた場合、前記展開工程は前記更新ファームウェアの展開を中断し、前記制御工程は、前記展開工程による展開を中断する前に展開された前記展開済み更新ファームウェアを前記記憶部とは異なる他の記憶部に記憶し、前記他の記憶部に記憶された前記展開済み更新ファームウェアを実行するためのリンク情報を差し替え、前記展開工程により展開されなかった前記更新ファームウェアを前記所定の記憶領域に展開することなく前記情報処理装置を制御していたファームウェアを更新することを特徴とする制御方法。
【請求項１６】
前記展開工程による展開は、符号化された前記更新ファームウェアを復号化する処理であることを特徴とする請求項９乃至１５のいずれか１項に記載の制御方法。
【請求項１７】
請求項９乃至１６のいずれか１項に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
ソフトウェアを更新可能な情報処理装置において、情報処理装置のソフトウェアを常に最新のソフトウェアとするために、定期的に自動更新する定期更新機能が一般的に知られている。
【０００３】
この定期更新機能には、新たなソフトウェアをダウンロードする時刻をユーザが指定できるものもある。
【０００４】
さらに、ソフトウェアを手動で更新する機能や、ソフトウェアを更新する時刻を指定できる機能も知られている。また、ユーザーからの入力なしにノークリックでコンピュータにプログラムをダウンロードしてインストールまで行う技術も開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８２２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１には、ユーザが使用できない時間であるダウンタイムについての記載がなく、最適なソフトウェア更新方法を提供しているとは言えない。また、ダウンロードしたソフトウェアをどのように処理するかの詳細な記述がなく明確ではない。
【０００７】
さらに、定期更新機能に関しても、ダウンロードしたあとに更新という手順となっており、更新処理時間をユーザが使用できない時間とすることが一般的になっている。
【０００８】
本発明の目的は、ソフトウェアを更新するために生じるダウンタイムを短縮可能な情報処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１の情報処理装置は、ファームウェアを有し、当該ファームウェアにより制御される情報処理装置であって、前記ファームウェアを更新するための更新ファームウェアをネットワークを介して取得する取得手段と、前記取得手段によって取得された前記更新ファームウェアを、前記ファームウェアが記憶されている領域とは異なる所定の記憶領域に展開する展開手段と、少なくとも前記ファームウェアの更新の指示を受け付けるまで、前記展開手段によって展開された展開済み更新ファームウェアを記憶部に保持し、前記ファームウェアの更新の指示に基づいた更新後は、前記ファームウェアに代えて、前記展開済み更新ファームウェアを用いて前記情報処理装置を制御する制御手段とを備え、前記展開手段による展開中に、前記ファームウェアの更新を開始する所定の更新時刻に達した場合、前記展開手段は前記更新ファームウェアの展開を終了し、前記制御手段は、前記情報処理装置を通常モードからファームウェアを更新するためのモードに移行させた後、前記ファームウェアを更新することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、更新ソフトウェアを第１記憶領域にバックグラウンド処理でダウンロードし、ダウンロードが終了すると、直ちに第２記憶領域に更新ソフトウェアをバックグラウンド処理で展開するので、ソフトウェアを更新するために生じるダウンタイムを短縮可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る情報処理装置としての画像形成装置の概略構成を示す図である。
【図２】図１におけるフラッシュメモリ及びＨＤＤにおいて画像形成装置に搭載されたファームをアップデートする様子を説明するための図である。
【図３】図１における操作部に表示される各画面を示す図である。
【図４】アップデートする際に必要となるファームのパーツの構成例を示す図である。
【図５】図２におけるリンク情報の差し替えを行うために管理される各情報を示す図である。
【図６】アップデート処理の流れを示すタイミングチャートである。
【図７】図１におけるＣＰＵにより実行されるアップデート制御処理の手順を示すフローチャートである。
【図８】各展開中処理の手順を示すタイミングチャートである。
【図９】展開状態を管理する管理情報を示す図である。
【図１０】図１０（Ａ）は、図７のアップデート制御処理での展開中処理Ａの手順を示すフローチャートであり、（Ｂ）は、図７のアップデート制御処理での展開中処理Ｂの手順を示すフローチャートである。
【図１１】図７のアップデート制御処理での展開中処理Ｃの手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００１３】
図１は、本発明の実施の形態に係る情報処理装置としての画像形成装置１００の概略構成を示す図である。
【００１４】
図１において、画像形成装置１００は、制御部２００、操作部２２０、プリンタエンジン２２１、スキャナエンジン２２２、及び電源２４０を有し、ＰＣ２６０と外部サーバ２５０にＬＡＮ１１０で接続されている。
【００１５】
制御部２００は、画像形成装置１００全体を制御する。操作部２２０は、ユーザに各種情報を表示したり、ユーザの操作入力を受け付ける。プリンタエンジン２２１は、不図示の不揮発性記憶装置に記憶されたプリンタエンジンファーム２３１に従って、制御部２００から出力された画像データを紙などの記録媒体に画像を印刷する。
【００１６】
スキャナエンジン２２２は、不図示の不揮発性記憶装置に記憶されたスキャナエンジンファーム２３２に従って、原稿を読み取り原稿画像を示す画像データを制御部２００に出力する。
【００１７】
また、制御部２００は、ＣＰＵ２１０、チップセット２１１、ＲＡＭ２１２、ＳＲＡＭ２１３、ＮＩＣ２１４、操作部インタフェース２１５、プリンタインタフェース２１６、スキャナインタフェース２１７、ＨＤＤ２１８、及びフラッシュメモリ２１９で構成される。
【００１８】
ＣＰＵ２１０は、制御部２００を制御することで画像形成装置１００全体を制御する。後述するフローチャートは、ＨＤＤ２１８またはフラッシュメモリ２１９からＲＡＭ２１２に展開されたプログラムをＣＰＵ２１０が実行する処理を示している。
【００１９】
ＲＡＭ２１２は、ＣＰＵ２１０のワークエリアとして用いられたり、各種データや各種プログラムを記憶する。ＳＲＡＭ２１３は、画像形成装置１００で必要となる設定値や画像調整値などを記憶しており、バックアップ電源により画像形成装置１００の電源をオフにしても記憶内容は保持される。
【００２０】
チップセット２１１は、計時専用のチップであるＲＴＣ（リアルタイムクロック）２７０を含む複数の集積回路である。ＲＴＣ２７０には、電源２４０から電力が供給されていなくとも、不図示の内蔵電池から電源が供給されるため、画像形成装置１００がスリープ状態であっても動作することができる。
【００２１】
これにより、チップセット２１１に対して電源供給が行われる状態においては、スリープ状態からの復帰が実現できる。一方、チップセット２１１に電源供給が全く行われないシャットダウン状態の場合には、ＲＴＣ２７０は動作することができない。
【００２２】
ＮＩＣ２１４は、ＬＡＮ１１０と接続して、ＰＣ２６０や外部サーバ２５０と通信するためのインタフェースである。本実施の形態では、ＮＩＣ２１４によって外部装置である外部サーバ２５０からソフトウェアをダウンロード可能となっている。
【００２３】
なお、以下の説明では、ソフトウェアをファームウェア、またはファームと表現する。さらに、画像形成装置１００に搭載されたファームを更新（以下、「アップデート」という）するための更新ソフトウェアを更新ファームと表現することがある。
【００２４】
操作部インタフェース２１５は、操作部２２０と制御部２００とのインタフェースである。プリンタインタフェース２１６は、プリンタエンジン２２１と制御部２００とのインタフェースである。スキャナインタフェース２１７は、スキャナエンジン２２２と制御部２００とのインタフェースである。
【００２５】
ＨＤＤ２１８は、各種プログラムや各種データを記憶する。フラッシュメモリ２１９は、画像形成装置１００で用いられる設定値などの各種データや各種プログラムを記憶する。また、ＨＤＤ２１８とフラッシュメモリ２１９は、ファームを更新するために用いられる各種ファイルが記憶される。
【００２６】
図２は、図１におけるフラッシュメモリ２１９及びＨＤＤ２１８において画像形成装置１００に搭載されたファームをアップデートする様子を説明するための図である。
【００２７】
図２において、ファームウェア３１０は、インストール済みのファームである。また、フラッシュメモリ２１９には、アップデートプログラム３２０が記憶されている。
【００２８】
更新ファームが外部サーバ２５０にからダウンロード可能となると、ＣＰＵ２１０からのファームウェアダウンロード指示に従い、アップデートプログラム３２０は、外部サーバ２５０からＮＩＣ２１４を介してフラッシュメモリ２１９に設けられた第１記憶領域である更新ファーム記憶領域３２１に更新ファームを一旦記憶する。
【００２９】
次いで、アップデートプログラム３２０は、ＣＰＵ２１０からのファームウェア展開指示に従い、更新ファーム記憶領域３２１に記憶された更新ファームを、ＨＤＤ２１８に設けられた第２記憶領域であるファーム展開領域３３０に展開する。この展開は、符号化されている更新ファームを復号化する処理である。この符号化として、圧縮または暗号化による符号化がある。圧縮の場合には、展開は解凍することである。
【００３０】
次いで、ＣＰＵ２１０からのアップデート指示に従い、アップデートプログラム３２０は、ファーム展開領域３３０に展開された更新ファームをフラッシュメモリ２１９に設けられ、ファームを実行するための第３記憶領域であるファームウェアコピー領域３１１に記憶する。
【００３１】
最後に、ファームウェアコピー領域３１１に記憶された更新ファームは、ＣＰＵ２１０の指示によって、搭載されたファームに代えて、ファームウェアコピー領域３１１に記憶された更新ファームを実行するためのリンク情報の差し替えが通常起動時に行われることで、ファームウェア３１０のアップデートが終了する。このリンク情報の差し替えについては後述する。
【００３２】
図３は、図１における操作部２２０に表示される各画面を示す図である。
【００３３】
図３（Ａ）は、メニュー画面４０７を示す図であり、図３（Ｂ）は、設定画面４０８を示す図である。
【００３４】
図３（Ａ）のメニュー画面４０７において、ファームウェアのアップデートキー４０１は、図３（Ｂ）の設定画面４０８を表示するためのキーとなる。また、定期アップデートの管理欄４０２は、定期アップデートが有効か否かを示す欄である。
【００３５】
図３（Ｂ）の設定画面４０８において、ユーザが定期アップデートを設定する場合には、Ｏｎキー４０３を選択する。
【００３６】
ダウンロード時刻４０４は、更新ファームをダウンロードする時刻を設定するためのフィールドである。アップデート時刻４０５は、ダウンロードした更新ファームでファームをアップデートする時刻を設定するためのフィールドである。この設定画面４０８で設定された内容は、フラッシュメモリ２１９に記憶される。
【００３７】
図３（Ｂ）の設定画面４０８では、一例として毎週金曜日の１９時にダウンロードして、毎週金曜日の２０時にファームをアップデートする場合の設定内容を示している。
【００３８】
図３（Ｃ）は、更新ファームのダウンロード中に表示されるダウンロード画面４１０を示す図である。
【００３９】
設定画面４０８のダウンロード時刻４０４で設定された時刻が到来すると、ダウンロードが開始されるが、そのときダウンロード画面４１０が表示される。
【００４０】
図３（Ｄ）は、ダウンロードされた更新ファームがファーム展開領域３３０に展開されいるときに表示されるアップデート画面４０９を示す図である。
【００４１】
このアップデート画面４０９が表示されるときは、既にダウンロードが終了しているので、同図に示されるように、ファームウェアのアップデートボタン４０６やファームウェアの削除ボタン４１１が表示される。
【００４２】
図４は、アップデートする際に必要となるファームのパーツの構成例を示す図である。
【００４３】
図４（Ａ）は、systemのパーツ例を示す図である。
【００４４】
図４（Ａ）において、systemのパーツは、バイナリファイル（system.bin）、ライブラリ（libsystem.so）、及びコンフィグレーションファイル（system.conf）で構成されていることを示している。
【００４５】
図４（Ｂ）は、systemのパーツの構成物の記憶場所及び属性を示す図である。
【００４６】
図４（Ｂ）において、バイナリファイル（system.bin）は/binディレクトリの下に記憶され、属性は実行ファイルとなっている。また、ライブラリ（libsystem.so）は/libディレクトの下に記憶され、属性は読み出し専用ファイルとなっている。さらに、コンフィグレーションファイル（system.conf）は/etcディレクトリの下に記憶され、属性は読み出し専用ファイルとなっている。また、システムのパーツのバージョンは、３．１．１であることが示されている。
【００４７】
図４（Ｃ）は、新たなsystemのパーツの構成物の記憶場所及び属性を示す図である。
【００４８】
図４（Ｃ）において、新たなシステムのパーツのバージョンは４．０．０であることが示されている。なお、新旧のパーツの構成物の記憶場所及び属性では、バージョンが異なるだけでなく、パーツの構成が異なることもある。構成が異なる例として、バイナリファイルが別のものになったり、コンフィグレーションファイルが複数になるなどが挙げられる。このように更新ファームは各パーツで構成されている。
【００４９】
図５は、図２におけるリンク情報の差し替えを行うために管理される各情報を示す図である。
【００５０】
図５において、まず旧パーツを示すoldpkgs５０１、新パーツを示すnewpkgs５０２とが示されている。oldpkgs５０１とnewpkgs５０２では、systemのパーツがバージョン３．１．１からバージョン４．０．０に置き換わることを示している。
【００５１】
また、oldpkgs５０１とnewpkgs５０２では、systemuiとcopy-appのパーツがそれぞれ新しいバージョンに置き換わることを示している。なお、新たなパーツがバージョンダウンされたパーツとなることもある。
【００５２】
次のoldbinarys５０３とnewbinarys５０４では、systemのパーツにおいて、新旧で同じ名称になるため、旧パーツはそのままの名称system.binであり、新パーツに".new"という接尾辞を付けることで新旧を判別することを示している。
【００５３】
そして、oldlibs５０５とnewlibs５０６では、libsystem.soとlibsystemui.soのパーツがそれぞれ新しいバージョンに置き換わることを示している。
【００５４】
また、oldconfs５０７とnewconfs５０８では、上述した".new"を付けることで新旧を判別することを示している。
【００５５】
図６は、アップデート処理の流れを示すタイミングチャートである。
【００５６】
図６（Ａ）は、従来技術におけるアップデート処理の手順を示すタイミングチャートである。
【００５７】
図６（Ａ）において、コピーや印刷などを実行可能な通常動作状態時にダウンロード時刻が到来すると、ダウンロードが行われる。ダウンロード終了後は、再び通常起動動作状態に戻る。その後、アップデート時刻が到来することで、アップデートを指示されると、再起動して、アップデート起動状態となる。
【００５８】
図６（Ａ）に示される従来のアップデート起動状態では、符号化されているパーツが復号化される展開が行われ、その後ファームがアップデートされた後、再び再起動することとなる。このように、従来の技術では、アップデートを指示された後に、ダウンロードされたパーツが展開されていたため、アップデート処理のための長めのダウンタイムが発生していた。
【００５９】
なお、以下の説明では上述した従来技術で行われている圧縮または暗号化されているパーツを解凍または復号化し、その後ファームをアップデートする一連の処理を通常のアップデート処理と表現する。
【００６０】
図６（Ｂ）は、本実施の形態に係るアップデート制御処理の手順を示すタイミングチャートである。
【００６１】
図６（Ｂ）において、通常動作状態時にダウンロード時刻が到来すると、ダウンロードが行われる。ダウンロード終了後は、更新ファーム記憶領域３２１に記憶されたパーツが、ファーム展開領域３３０に展開され、再び通常起動動作状態に戻る。同図に示されるように、ダウンロードと展開は、バックグラウンド処理として行われる。
【００６２】
その後、アップデート時刻が到来するか、またはアップデート画面４０９のファームウェアのアップデートボタン４０６がユーザにより選択されると、ＣＰＵ２１０によりアップデートが指示される。このアップデート指示により再起動して、アップデート起動状態に遷移する。そして、ファーム展開領域３３０に展開されたパーツがファームウェアコピー領域３１１に記憶される。
【００６３】
その後、再起動され、通常起動状態に遷移し、リンク情報の差し替えが行われることでアップデート処理が終了する。このように、本実施の形態ではリンク情報をバックグラウンド処理で差し替えるようになっている。
【００６４】
このように、本実施の形態では、ダウンロードされたパーツは直ちに展開されているため、従来技術と比較してアップデート処理のためのダウンタイムを短縮できる。
【００６５】
なお、図６（Ｂ）のアップデート制御処理では、展開が終了した後にアップデートが指示されているが、展開中にアップデートが指示されることがある。この場合、後述する展開中処理が行われるが、まずは展開が終了した後にアップデート指示がされる場合の処理の手順を示すフローチャートを説明する。
【００６６】
図７は、図１におけるＣＰＵ２１０により実行されるアップデート制御処理の手順を示すフローチャートである。
【００６７】
図７において、ダウンロード時刻が到来すると（ステップＳ１０１でＹＥＳ）、アップデートプログラム３２０は、パーツをダウンロードして、更新ファーム記憶領域３２１に記憶する（ステップＳ１０２）。さらにこのとき、ダウンロード画面４１０を操作部２２０に表示する（ステップＳ１０３）。上記ステップＳ１０２は、ダウンロード手段に対応する。
【００６８】
次いで、アップデートプログラム３２０は、ダウンロードが終了すると、更新ファーム記憶領域３２１に記憶されたパーツをファーム展開領域３３０に直ちに展開する（ステップＳ１０４）。このステップＳ１０４は、展開手段に対応する。
【００６９】
そして、アップデートプログラム３２０は、ＣＰＵ２１０からのアップデートが指示されると（ステップＳ１０５でＹＥＳ）、パーツをファーム展開領域に展開中か否か判別する（ステップＳ１０６）。
【００７０】
ステップＳ１０６の判別の結果、パーツをファーム展開領域に展開中と判別された場合には（ステップＳ１０６でＹＥＳ）、後述する展開中処理を行い（ステップＳ１１６）、本処理を終了する。
【００７１】
一方、ステップＳ１０６の判別の結果、パーツをファーム展開領域に展開中ではないと判別された場合には（ステップＳ１０６でＮＯ）、再起動してアップデート起動状態に遷移する（ステップＳ１１１）。
【００７２】
そして、アップデートプログラム３２０は、ファーム展開領域３３０に展開されたパーツをファームウェアコピー領域３１１に記憶し（ステップＳ１１２）、再起動して通常動作状態に遷移する（ステップＳ１１３）。上記ステップＳ１１２は、記憶手段に対応する。
【００７３】
次いで、上述したリンク情報の差し替えを行い（ステップＳ１１４）、本処理を終了する。このステップＳ１１４は差し替え手段に対応する。
【００７４】
以下、上述したアップデート制御処理において、展開をしている状態でＣＰＵ２１０によりアップデートが指示された場合の処理である３種類の展開中処理について説明していく。
【００７５】
図８は、各展開中処理の手順を示すタイミングチャートである。
【００７６】
図８（Ａ）は、展開中処理Ａの手順を示すタイミングチャートである。
【００７７】
図８（Ａ）において、通常動作状態時にダウンロード時刻が到来すると、ダウンロードが行われる。ダウンロード終了後は、更新ファーム記憶領域３２１に記憶されたパーツが、ファーム展開領域３３０に展開されるが、その展開中に、アップデート時刻が到来するか、またはアップデート画面４０９のファームウェアのアップデートボタン４０６がユーザにより選択されることにより、ＣＰＵ２１０によりアップデートが指示されたとする。
【００７８】
アップデートが指示されると、展開を途中で終了し、展開されたパーツを破棄し、再起動して、アップデート起動状態に遷移する。その後、通常のアップデート処理を行うこととなる。
【００７９】
なお、展開をしている状態で、アップデート時刻が到来するか、またはアップデート画面４０９のファームウェアのアップデートボタン４０６がユーザにより選択された場合には、展開を中止することを示す警告画面を操作部２２０に表示したり、展開に要する残り時間を操作部２２０に表示するようにしてもよい。
【００８０】
図８（Ｂ）は、展開中処理Ｂの手順を示すタイミングチャートである。
【００８１】
図８（Ｂ）において、通常動作状態時にダウンロード時刻が到来し、ファーム展開領域３３０に展開中にアップデートが指示されることは展開中処理Ａと同じであるが、展開中処理Ｂでは、そのまま展開を継続して、全てのパーツを展開する。
【００８２】
全てのパーツが展開されると、結果的に展開が終了した後にアップデートが指示されたことと同じ状態となる。そこで、展開中処理Ｂでは、展開が終了した後にアップデートが指示された場合と同様に、再起動してアップデート起動状態に遷移し、ファーム展開領域３３０に展開されたパーツをファームウェアコピー領域３１１に記憶する。
【００８３】
その後、通常起動状態に遷移した後に、再起動し、通常起動に遷移した後にリンク情報の差し替えが行われることでアップデート処理が終了する。
【００８４】
図８（Ｃ）は、展開中処理Ｃの手順を示すタイミングチャートである。
【００８５】
図８（Ｃ）において、通常動作状態時にダウンロード時刻が到来し、ファーム展開領域３３０に展開を開始することは展開中処理Ａと同じであるが、展開中処理Ｃでは展開の開始とともに、展開状態を管理する。この展開状態の管理について説明する。
【００８６】
図９は、展開状態を管理する管理情報７００を示す図である。
【００８７】
図９において、管理情報７００は、Updatepkgs７０１、Executing７０２、及びWaiting７０３で構成される。
【００８８】
Updatepkgs７０１は、展開済みのパーツを示す。Executing７０２は、展開中のパーツを示す。Waiting７０３は、展開待ちのパーツを示す。この管理情報により、いずれのパーツが展開済みのパーツ、展開中のパーツ、及び展開待ちのパーツか判別することができる。なお、この管理情報はＲＡＭ２１２に記憶される。
【００８９】
図８（Ｃ）に戻り、展開中にＣＰＵ２１０によりアップデートが指示されると、展開を途中で終了するが、管理情報でExecuting７０２となっているパーツは展開を継続し、展開待ちのパーツは展開を行わずに再起動して、アップデート起動状態に遷移する。
【００９０】
そして、ファーム展開領域３３０に展開されたパーツはファームウェアコピー領域３１１に記憶される。一方、展開待ちのパーツに対しては、通常のアップデート処理が行われる。
【００９１】
その後、再起動して通常状態に遷移すると、ファームウェアコピー領域３１１に記憶されたパーツに対してのみリンク情報の差し替えが行われることでアップデート処理が終了する。
【００９２】
この展開中処理Ｃでは、展開されたパーツを利用するので、展開されたパーツを破棄する展開中処理Ａと比較して、ダウンタイムは短縮されることとなる。
【００９３】
以下、各展開中処理の手順をフローチャートを用いて説明する。
【００９４】
図１０（Ａ）は、図７のアップデート制御処理での展開中処理Ａの手順を示すフローチャートである。
【００９５】
図１０（Ａ）において、図７のアップデート制御処理におけるステップＳ１０６で、パーツをファーム展開領域に展開中と判別された場合には（ステップＳ１０６でＹＥＳ）、展開を終了し、展開されたパーツを破棄する（ステップＳ２０１）。
【００９６】
次いで、再起動してアップデート起動状態に遷移し（ステップＳ２０２）、通常のアップデート処理を行う（ステップＳ２０３）。そして、再び再起動して通常起動状態に遷移して（ステップＳ２０４）、本処理を終了する。
【００９７】
このように、本実施の形態では、更新ファームの展開中にアップデートが指示された場合には、更新ファームの展開を終了し、展開された更新ファームを破棄して更新ファームをファーム展開領域３３０に展開することなく搭載されたファームを更新する。
【００９８】
図１０（Ｂ）は、図７のアップデート制御処理での展開中処理Ｂの手順を示すフローチャートである。
【００９９】
図１０（Ｂ）において、図７のアップデート制御処理におけるステップＳ１０６で、パーツをファーム展開領域に展開中と判別された場合には（ステップＳ１０６でＹＥＳ）、展開を継続することを示す警告画面を操作部２２０に表示する（ステップＳ３０１）。
【０１００】
次いで、全てのパーツが展開されると（ステップＳ３０２でＹＥＳ）、図７のアップデート制御処理におけるステップＳ１１１〜ステップＳ１１５を行い（ステップＳ３０３）、本処理を終了する。
【０１０１】
このように、本実施の形態では、更新ファームをの展開中にアップデートが指示された場合には、展開を継続し、更新ファームの展開が終了した後にファームウェアコピー領域３１１にファーム展開領域３３０に展開された更新ファームを記憶する。
【０１０２】
図１１は、図７のアップデート制御処理での展開中処理Ｃの手順を示すフローチャートである。
【０１０３】
上述したように、展開中処理Ｃでは、展開状態を管理する処理を行うため、図７のアップデート制御処理にその処理が挿入される。
【０１０４】
図１１（Ａ）は、図７のアップデート制御処理に挿入される処理の手順を示すフローチャートである。
【０１０５】
図７のステップＳ１０４では、パーツをファーム展開領域３３０に展開するが、それとともに展開状態を管理して（ステップＳ４００）、ステップＳ１０５に移る。
【０１０６】
図１１（Ｂ）は、図７のアップデート制御処理での展開中処理Ｂの手順を示すフローチャートである。
【０１０７】
図１１（Ｂ）において、図７のアップデート制御処理におけるステップＳ１０６で、パーツをファーム展開領域に展開中と判別された場合には（ステップＳ１０６でＹＥＳ）、展開を終了する（ステップＳ４０１）。上述したように、展開を途中で終了するが、管理情報でExecuting７０２となっているパーツは展開が継続される。
【０１０８】
その後、再起動してアップデート起動状態に遷移する（ステップＳ４０２）。そして、ファーム展開領域３３０に展開されたパーツをファームウェアコピー領域３１１に記憶する（ステップＳ４０２）。
【０１０９】
次いで、展開されていないパーツに対して通常のアップデート処理を行う（ステップＳ４０３）。そして、再び再起動して通常起動状態に遷移して（ステップＳ３０４）、リンク情報の差し替えを行い（ステップＳ４０５）、本処理を終了する。
【０１１０】
このように、本実施の形態では、更新ファームをの展開中にアップデートが指示された場合には、更新ファームの展開を終了し、展開を終了する前に展開された更新ファームをファームウェアコピー領域３１１に記憶する。
【０１１１】
そして、ファームウェアコピー領域３１１に記憶された更新ファームを実行するためのリンク情報を差し替え、ファーム展開領域３３０に展開されたなかった更新ファームをファーム展開領域３３０に展開することなく搭載されたファームを更新する。
【０１１２】
以上説明したように、本実施の形態によれば、更新ファームを更新ファーム記憶領域３２１にバックグラウンド処理でダウンロードし（ステップＳ１０２）、ダウンロードが終了すると、直ちにファーム展開領域３３０に更新ファームをバックグラウンド処理で展開する（ステップＳ１０５）。
【０１１３】
そして、搭載されたソフトウェアの更新が指示された場合に、ファームウェアコピー領域３１１にファーム展開領域３３０に展開された更新ファームを記憶して（ステップＳ１１２）、搭載されたソフトウェアに代えて、ファームウェアコピー領域３１１に記憶された更新ファームを実行するためのリンク情報をバックグラウンド処理で差し替えるので（ステップＳ１１４）、ソフトウェアを更新するために生じるダウンタイムを短縮可能となる。
【０１１４】
（他の実施の形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１１５】
１００  画像形成装置
２００  制御部
２１０  ＣＰＵ
２１２  ＲＡＭ
２１８  ＨＤＤ
２１９  フラッシュメモリ
２２０  操作部
３１０  ファームウェア
３１１  ファームウェアコピー領域
３２０  アップデートプログラム
３２１  更新ファーム記憶領域
３３０  ファーム展開領域
【図１】
0006776220.tif 000002
【図２】
0006776220.tif 000003
【図３】
0006776220.tif 000004
【図４】
0006776220.tif 000005
【図５】
0006776220.tif 000006
【図６】
0006776220.tif 000007
【図７】
0006776220.tif 000008
【図８】
0006776220.tif 000009
【図９】
0006776220.tif 000010
【図１０】
0006776220.tif 000011
【図１１】
0006776220.tif 000012