(57)【要約】      （修正有）【課題】最新バージョンのソフトウェアをダウンロード可能な情報処理装置、その制御方法及びプログラムを提供する。【解決手段】画像形成装置は、ファームのダウンロードを中断し、ダウンロードを再開する場合に、ファームの最新バージョンがリリースされたか否かを判別しＳ６０７、最新バージョンがリリースされたと判別された場合に（Ｓ６０７でＹＥＳ）、最新バージョンのソフトウェアをダウンロードするＳ６０１。【選択図】図７
2015212878.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からソフトウェアをダウンロード可能な情報処理装置であって、
前記ソフトウェアのダウンロードを中断し、ダウンロードを再開する場合に、前記ソフトウェアの最新バージョンがリリースされたか否かを判別する判別手段と、
前記判別手段により前記最新バージョンがリリースされたと判別された場合に、前記最新バージョンのソフトウェアをダウンロードするダウンロード手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記外部装置から複数のソフトウェアをダウンロードする場合には、前記判別手段は、前記複数のソフトウェアごとに前記最新バージョンがリリースされたか否かを判別し、
前記ダウンロード手段は、前記判別手段により前記最新バージョンがリリースされたと判別されたソフトウェアの最新バージョンのソフトウェアと、前記中断によりダウンロードされていないソフトウェアのうち、前記最新バージョンがリリースされていないソフトウェアとをダウンロードすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判別手段により前記最新バージョンがリリースされたと判別されたソフトウェアのうち、中断する前にダウンロードされて予め定められた記憶領域に記憶されたソフトウェアは前記記憶領域から削除されることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記ダウンロード手段は、前記最新バージョンのソフトウェアがリリースされた場合であっても、前記最新バージョンのソフトウェアをインストールする前にインストールが必要なバージョンのソフトウェアである踏み台バージョンのソフトウェアが存在するときには、前記最新バージョンのソフトウェアに代えて、前記踏み台バージョンのソフトウェアをダウンロードすることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記外部装置からダウンロードされた前記ソフトウェアで前記情報処理装置のソフトウェアを更新する更新手段をさらに有することを特徴とする請求項１乃至請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
外部装置からソフトウェアをダウンロード可能な情報処理装置の制御方法であって、
前記ソフトウェアのダウンロードを中断し、ダウンロードを再開する場合に、前記ソフトウェアの最新バージョンがリリースされたか否かを判別する判別ステップと、
前記判別ステップにより前記最新バージョンがリリースされたと判別された場合に、前記最新バージョンのソフトウェアをダウンロードするダウンロードステップと
を有することを特徴とする制御方法。
【請求項７】
外部装置からソフトウェアをダウンロード可能な情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記ソフトウェアのダウンロードを中断し、ダウンロードを再開する場合に、前記ソフトウェアの最新バージョンがリリースされたか否かを判別する判別ステップと、
前記判別ステップにより前記最新バージョンがリリースされたと判別された場合に、前記最新バージョンのソフトウェアをダウンロードするダウンロードステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
ソフトウェアを更新可能な情報処理装置において、情報処理装置のソフトウェアを常に最新のソフトウェアとするために、定期的に自動更新する定期更新機能が一般的に知られている。
【０００３】
この定期更新機能には、新たなソフトウェアをダウンロードする時刻をユーザが指定できるものもある。
【０００４】
さらに、ソフトウェアを手動で更新する機能や、ソフトウェアを更新する時刻を指定できる機能も知られている。
【０００５】
こうした技術に関連して、データのダウンロード中でも操作を行うことができ、操作によってデータのダウンロードが一旦中断され、その後再開された場合には、中断前まで受信したデータ位置を保存して、ダウンロードの再開時に保存データ位置に続くデータから受信する技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３３４０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された技術では、ダウンロード中断中に新たなバージョンのソフトウェアがリリースされていたとしても、最新バージョンのソフトウェアをダウンロードすることはできない。
【０００８】
本発明の目的は、最新バージョンのソフトウェアをダウンロード可能な情報処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１の情報処理装置は、外部装置からソフトウェアをダウンロード可能な情報処理装置であって、前記ソフトウェアのダウンロードを中断し、ダウンロードを再開する場合に、前記ソフトウェアの最新バージョンがリリースされたか否かを判別する判別手段と、前記判別手段により前記最新バージョンがリリースされたと判別された場合に、前記最新バージョンのソフトウェアをダウンロードするダウンロード手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアのダウンロードを中断し、ダウンロードを再開する場合に、ソフトウェアの最新バージョンがリリースされたか否かを判別し、最新バージョンがリリースされたと判別された場合に、最新バージョンのソフトウェアをダウンロードするので、最新バージョンのソフトウェアをダウンロード可能な情報処理装置及びその制御方法、並びにプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る情報処理装置としての画像形成装置の概略構成を示す図である。
【図２】図１におけるフラッシュメモリ及びＨＤＤにおいて新ファームに更新する様子を説明するための図である。
【図３】図１における外部サーバで管理されているバージョンリストを示す図である。
【図４】図４（Ａ）〜（Ｄ）は、図１におけるフラッシュメモリに記憶される差分パッケージリストを示す図であり、（Ｅ）はダウンロードしてファーム展開領域に一時展開された不要なパッケージを示す不要パッケージリストを示す図である。
【図５】図１における操作部に表示されるメニュー画面と設定画面を示す図である。
【図６】図１におけるＣＰＵにより実行される更新制御処理の手順を示すフローチャートである。
【図７】図６におけるステップＳ５０３のダウンロード処理の手順を示すフローチャートである。
【図８】図１におけるＣＰＵにより実行される踏み台バージョンが存在する場合の更新制御処理の手順を示すフローチャートである。
【図９】図８におけるステップＳ９０４の踏み台ダウンロード処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００１３】
図１は、本発明の実施の形態に係る情報処理装置としての画像形成装置１００の概略構成を示す図である。
【００１４】
図１において、画像形成装置１００は、制御部２００、操作部２２０、プリンタエンジン２２１、及びスキャナエンジン２２２を有し、ＰＣ２６０と外部サーバ２５０にＬＡＮ１１０で接続されている。
【００１５】
制御部２００は、画像形成装置１００全体を制御する。操作部２２０は、ユーザに各種情報を表示したり、ユーザの操作入力を受け付ける。プリンタエンジン２２１は、不図示の不揮発性記憶装置に記憶されたプリンタエンジンファーム２３１に従って、制御部２００から出力された画像データを紙などの記録媒体に画像を印刷する。
【００１６】
スキャナエンジン２２２は、不図示の不揮発性記憶装置に記憶されたスキャナエンジンファーム２３２に従って、原稿を読み取り原稿画像を示す画像データを制御部２００に出力する。
【００１７】
また、制御部２００は、ＣＰＵ２１０、ＲＡＭ２１２、ＮＩＣ２１４、操作部インタフェース２１５、プリンタインタフェース２１６、スキャナインタフェース２１７、ＨＤＤ２１８、及びフラッシュメモリ２１９で構成される。
【００１８】
ＣＰＵ２１０は、制御部２００を制御することで画像形成装置１００全体を制御する。後述するフローチャートは、ＨＤＤ２１８またはフラッシュメモリ２１９からＲＡＭ２１２に展開されたプログラムをＣＰＵ２１０が実行する処理を示している。ＲＡＭ２１２は、ＣＰＵ２１０のワークエリアとして用いられたり、各種データや各種プログラムを記憶する。
【００１９】
ＮＩＣ２１４は、ＬＡＮ１１０と接続して、ＰＣ２６０や外部サーバ２５０と通信するためのインタフェースである。本実施の形態では、ＮＩＣ２１４によって外部装置である外部サーバ２５０からソフトウェアをダウンロード可能となっている。
【００２０】
なお、以下の説明では、ソフトウェアをファームウェア、またはファームと表現する。また、新たなファームを新ファームと表現することがある。
【００２１】
操作部インタフェース２１５は、操作部２２０と制御部２００とのインタフェースである。プリンタインタフェース２１６は、プリンタエンジン２２１と制御部２００とのインタフェースである。スキャナインタフェース２１７は、スキャナエンジン２２２と制御部２００とのインタフェースである。
【００２２】
ＨＤＤ２１８は、各種プログラムや各種データを記憶する。フラッシュメモリ２１９は、画像形成装置１００で用いられる設定値などの各種データや各種プログラムを記憶する。また、ＨＤＤ２１８とフラッシュメモリ２１９は、ファームをアップデートするために用いられる各種ファイルが記憶される。
【００２３】
図２は、図１におけるフラッシュメモリ２１９及びＨＤＤ２１８において新ファームに更新する様子を説明するための図である。
【００２４】
図２において、ファームウェア３１０は、インストール済みのファームであり、新ファームをダウンロードするダウンロードプログラム３１２を有する。
【００２５】
新ファームが外部サーバ２５０にからダウンロード可能となると、ダウンロードプログラム３１２は、外部サーバ２５０からＮＩＣ２１４を介してフラッシュメモリ２１９に設けられた新ファーム記憶領域３２０に新ファームを一旦記憶する。
【００２６】
次いで、ダウンロードプログラム３１２は、新ファーム記憶領域３２０に記憶された新ファームを、ＨＤＤ２１８に設けられたファーム展開領域３２１に一時展開する。
【００２７】
そして、再起動したのちに、フラッシュメモリ２１９に記憶されたアップデートプログラム３１１は、ファーム展開領域３２１に一時展開された新ファームでファームウェア３１０を更新する。
【００２８】
また、本実施の形態では、ファーム展開領域３２１に一時展開されるが、新ファーム記憶領域３２０から直接にファームウェア３１０を更新するようにしてもよい。
【００２９】
図３は、図１における外部サーバ２５０で管理されているバージョンリストを示す図である。
【００３０】
本実施の形態において、画像形成装置１００のファームは、パッケージという単位で構成されており、本実施の形態では、一例としてpackage-aからpackage-eまでの５つのパッケージで構成されているとする。
【００３１】
そして、画像形成装置１００のファームのバージョンは、パッケージのバージョンの組み合わせで定まる。図３の場合、画像形成装置１００のファームのバージョンはＶ１．００１〜Ｖ１．００３、Ｖ２．０００、Ｖ２．００１となっている。
【００３２】
そして、各バージョンごとに、各パッケージpackage-a〜package-eのバージョンが定められている。例えば、画像形成装置１００のファームのバージョンが、Ｖ１．００１の場合は、package-aからpackage-eの全てがバージョン１．０となっている。
【００３３】
上述したようにバージョンリストは外部サーバ２５０で管理されているが、画像形成装置１００にインストールされたファームのバージョンはフラッシュメモリ２１９に記憶されている。
【００３４】
そして、画像形成装置１００は、インストールされたファームのバージョンを外部サーバ２５０に送信し、外部サーバ２５０は、新ファームがあれば最新バージョンがあることを画像形成装置１００に応答する。画像形成装置１００は、インストールされたファームのバージョンと最新バージョンとの差分を示す差分パッケージリストを作成する。
【００３５】
図４（Ａ）〜（Ｄ）は、図１におけるフラッシュメモリ２１９に記憶される差分パッケージリストを示す図であり、（Ｅ）はダウンロードしてファーム展開領域３２１に一時展開された不要なパッケージを示す不要パッケージリストを示す図である。
【００３６】
図４（Ａ）〜（Ｄ）における差分パッケージリストには、バージョンと一時展開されたか否かを示す「展開」とが含まれる。「展開」が「○」の場合には、一時展開されたことを示しており、「展開」が「×」の場合には、一時展開されていないことを示している。
【００３７】
また、図４（Ｅ）の不要パッケージリストは、後述する割り込み処理により、ダウンロードや一時展開を中断して再開した場合に、既に一時展開されているが、中断中にさらに最新のバージョンがリリースされたために不要となったパッケージを示すためのリストである。図４（Ｅ）の場合、package-cの２．０は一時展開されているが、不要となったパッケージであることが示されている。
【００３８】
以上説明した図３の各バージョンリスト、図４の各差分パッケージリスト、及び不要パッケージリストは、フローチャートの後に説明する例で用いられる。
【００３９】
また、図４（Ａ）〜（Ｄ）に示されるように、本実施の形態では複数のファームウェアであるパッケージをダウンロードする場合には、複数のパッケージごとに最新バージョンがリリースされたか否かを判別している。
【００４０】
さらに、図４（Ａ）〜（Ｄ）に示されるように、本実施の形態では最新バージョンがリリースされたと判別されたパッケージの最新バージョンのパッケージと、中断によりダウンロードされていないパッケージのうち、最新バージョンがリリースされていないパッケージとをダウンロードするようになっている。
【００４１】
図５は、図１における操作部２２０に表示されるメニュー画面４０６と設定画面４０７を示す図である。
【００４２】
図５のメニュー画面４０６において、ソフトウェアの管理設定キー４００は、接続する外部サーバ２５０のＩＰアドレスなどを入力するためのキーである。ファームウェアのアップデートキー４０１は、直ちにファームを更新するためのキーとなる。
【００４３】
定期アップデートの管理キー４０２は、設定画面４０７を表示するためのキーである。設定画面４０７において、ユーザが定期アップデートを設定する場合には、Ｏｎキー４０３を選択する。
【００４４】
配信時刻４０４は、新ファームをダウンロードする時刻を設定するためのフィールドである。更新時刻４０５は、ダウンロードした新ファームでファームを更新する時刻を設定するためのフィールドである。この設定画面４０７で設定された内容は、フラッシュメモリ２１９に記憶される。
【００４５】
図６は、図１におけるＣＰＵ２１０により実行される更新制御処理の手順を示すフローチャートである。
【００４６】
この更新制御処理は、メニュー画面４０６のファームウェアのアップデートキー４０１をユーザが選択するか、設定画面４０７の配信時刻４０４で設定された時刻が到来したときに開始される。
【００４７】
図６において、ファームウェア３１０は、フラッシュメモリ２１９に記憶されているインストールされたファームのバージョンを取得する（ステップＳ５００）。
【００４８】
次いで、ダウンロードプログラム３１２は、取得したバージョンを外部サーバ２５０に送信し、最新バージョンがある場合には、外部サーバ２５０から最新バージョンがあること示す応答を受信する（ステップＳ５０１）。この場合の応答には、最新バージョンが示されている。一方、最新バージョンがない場合には、最新バージョンがないことを示す応答を外部サーバ２５０から受信する。
【００４９】
外部サーバ２５０から受信した応答が最新バージョンがあることを示しているか否か判別する（ステップＳ５０２）。
【００５０】
ステップＳ５０２の判別の結果、受信した応答が最新バージョンがあることを示していない場合には（ステップＳ５０２でＮＯ）、本処理を終了する。
【００５１】
一方、ステップＳ５０２の判別の結果、受信した応答が最新バージョンがあることを示している場合には（ステップＳ５０２でＹＥＳ）、新ファームをダウンロードしてファーム展開領域３２１に一時展開するダウンロード処理を行う（ステップＳ５０３）。
【００５２】
次いで、ファームを更新して（ステップＳ５０４）、本処理を終了する。このステップＳ５０４の更新は、アップデートキー４０１をユーザが選択した場合には直ちに行われる。一方、設定画面４０７での設定内容に従って更新制御処理が行われた場合には、更新時刻４０５で設定された時刻が到来したときにステップＳ５０４の更新が行われる。このステップＳ５０４は、外部サーバ２５０からダウンロードされたファームで画像形成装置１００のファームを更新する更新手段に対応する。
【００５３】
図７は、図６におけるステップＳ５０３のダウンロード処理の手順を示すフローチャートである。
【００５４】
図７において、ダウンロードプログラム３１２は、図４で説明した差分パッケージリストを作成する（ステップＳ６００）。次いで、差分パッケージリストに示されるパッケージをダウンロードし、ファーム展開領域３２１に一時展開する（ステップＳ６０１）。このステップＳ６０１で一時展開されたパッケージに対応する差分パッケージリストの「展開」は「○」となる。
【００５５】
そして、差分パッケージリストに示される全てのパッケージが一時展開されたか否か判別する（ステップＳ６０２）。ステップＳ６０２の判別の結果、全てのパッケージが一時展開された場合には（ステップＳ６０２でＹＥＳ）、本処理を終了する。
【００５６】
一方、ステップＳ６０２の判別の結果、全てのパッケージが一時展開されていない場合には（ステップＳ６０２でＮＯ）、割り込み処理があるか否か判別する（ステップＳ６０３）。この割り込み処理は、例えば操作部２２０でユーザにより印刷指示がされたことによる処理などである。
【００５７】
ステップＳ５０３の判別の結果、割り込み処理がない場合には（ステップＳ６０３でＮＯ）、ステップＳ６０１に戻る。
【００５８】
一方、ステップＳ６０３の判別の結果、割り込み処理がある場合には（ステップＳ６０３でＹＥＳ）、パッケージのダウンロードと一時展開を中断する（ステップＳ６０４）。このように中断することで、割り込み処理を優先して実行させる。
【００５９】
割り込み処理が終了すると、最新バージョンの再確認が必要か否か判別する（ステップＳ６０５）。このステップＳ６０５では、ユーザにより設定されたファームを更新する時刻が既に到来している場合、またはファームウェアのアップデートキー４０１がユーザから選択された場合に、最新バージョンの再確認が必要と判別される。
【００６０】
ステップＳ６０５の判別の結果、最新バージョンの再確認が必要ではないと判別された場合には（ステップＳ６０５でＮＯ）、ステップＳ６０１に戻る。
【００６１】
一方、ステップＳ６０５の判別の結果、最新バージョンの再確認が必要と判別された場合には（ステップＳ６０５でＹＥＳ）、最新バージョンを外部サーバ２５０から受信する（ステップＳ６０６）。
【００６２】
そして、最新バージョンがリリースされたか否か判別する（ステップＳ６０７）。このステップＳ６０７は、ファームウェアのダウンロードを中断し（ステップＳ６０４）、ダウンロードを再開する場合に、ファームウェアの最新バージョンがリリースされたか否かを判別する判別手段に対応する。
【００６３】
ステップＳ６０７の判別の結果、最新バージョンがリリースされていない場合には（ステップＳ６０７でＮＯ）、ステップＳ６０１に戻る。
【００６４】
一方、ステップＳ６０７の判別の結果、最新バージョンがリリースされた場合には（ステップＳ６０７でＹＥＳ）、受信した最新バージョンを用いて、差分パッケージリストを再作成し、図４の不要パッケージリストを作成する（ステップＳ６０８）。
【００６５】
次いで、不要パッケージリストがあるか否か判別する（ステップＳ６０９）。ステップＳ６０９の判別の結果、不要パッケージリストがない場合には（ステップＳ６０９でＮＯ）、ステップＳ６０１に戻る。
【００６６】
一方、ステップＳ６１０の判別の結果、不要パッケージリストがある場合には（ステップＳ６１０でＹＥＳ）、不要となったパッケージをファーム展開領域３２１から削除し、不要パッケージリストを削除して（ステップＳ６１０）、ステップＳ６０１に戻る。
【００６７】
このように、本実施の形態では、最新バージョンがリリースされたと判別されたパッケージのうち、中断する前にダウンロードされて予め定められた記憶領域であるファーム展開領域３２１に記憶されたパッケージはファーム展開領域３２１から削除される。
【００６８】
上記ステップＳ６０９でＮＯ、またはステップＳ６１０の次にステップＳ６０１に戻るが、このステップＳ６０１は、最新バージョンがリリースされたと判別された場合に、最新バージョンのソフトウェアをダウンロードするダウンロード手段に対応する。
【００６９】
以上説明した更新制御処理を、具体例を用いて説明する。一例として、画像形成装置１００にインストールされたファームのバージョンがＶ１．００１とする。一方、外部サーバ２５０は、図３（Ａ）のバージョンリストを管理しているとする。
【００７０】
この場合、ステップＳ５０１で、外部サーバ２５０から最新バージョンがＶ１．００２であることを応答として受信する。
【００７１】
図３（Ａ）のバージョンリストによると、package-a,c,eがバージョン１．０から２．０となっている。従って、図４（Ａ）の差分パッケージリストが作成される。
【００７２】
この作成された差分パッケージリストの順にダウンロードされ、一時展開される。一時展開された場合は、上述したように、差分パッケージリストの「展開」が「○」となる。
【００７３】
ここで割り込み処理があり、中断後に再開するタイミングまでに、図３（Ａ）のバージョンリストから図３（Ｂ）のバージョンリストへ更新されたとする。この場合、Ｖ１．００１からＶ１．００３へ更新することとなるので、ステップＳ６００と同じく差分パッケージリストを作成した場合には、図４（Ｂ）の差分パッケージリストが作成されることとなる。
【００７４】
しかし、中断前に、Ｖ１．００１とＶ１．００２の差分パッケージがいくつかダウンロードされたり、一時展開されている可能性がある。そこで、再開後に作成される差分パッケージリストは、一時展開されたパッケージを加味したリストとする。
【００７５】
例えば、図４（Ａ）の差分パッケージリストのうち、package-aの２．０は、既に一時展開されているものとする。Ｖ１．００３にバージョンアップするためにpackage-aの２．０が必要だが、既に一時展開されているため、再ダウンロードは不要となる。
【００７６】
そこで、図４（Ｂ）の差分パッケージリストに、package-aの２．０が一時展開されていることを加味することで、package-aの「展開」を「○」にした図４（Ｃ）の差分パッケージリストが再作成される。
【００７７】
もう１つの例として、図４（Ａ）の差分パッケージリストのうち、package-aの２．０とpackage-cの２．０が既に一時展開されている場合について説明する。
【００７８】
この場合も、先ほどと同じく、図４（Ｃ）の差分パッケージリストが再作成されるが、一時展開されたpackage-cの２．０は不要となる。そこで、図４（Ｅ）の不要パッケージリストが作成される。
【００７９】
不要となったpackage-cの２．０は、ステップＳ６１０で削除され、その後package-cの３．０がダウンロードされることとなる。
【００８０】
上述したpackage-cのように、バージョン２．０に更新することなくバージョン１．０からバージョン３．０に更新可能なファームがある一方で、バージョン１．０の次は必ずバージョン２．０に更新し、その後バージョン３．０に更新しなければならないファームもある。
【００８１】
このバージョン２．０のように、必ず更新が必要となるバージョンを、本実施の形態では踏み台バージョンと表現する。
【００８２】
例えば、データ領域の管理系の処理を行うためのファームにおいて、バージョン１．０から２．０に更新する際に、データ領域の拡張、縮小、移動、およびデータ値の初期化などが行われるとする。こうしたバージョンを含む場合に、バージョン１．０から３．０へ更新してしまうと、データの整合性に問題が生じることがある。
【００８３】
従って、まずバージョン１．０から２．０に更新する必要があり、バージョン２．０は踏み台バージョンとなる。
【００８４】
この踏み台バージョンが存在する場合の更新制御処理について説明する。
【００８５】
図８は、図１におけるＣＰＵ２１０により実行される踏み台バージョンが存在する場合の更新制御処理の手順を示すフローチャートである。
【００８６】
この図８の更新制御処理も、メニュー画面４０６のファームウェアのアップデートキー４０１をユーザが選択するか、設定画面４０７の配信時刻４０４で設定された時刻が到来したときに開始される。
【００８７】
図８において、ファームウェア３１０は、フラッシュメモリ２１９に記憶されているインストールされたファームのバージョンを取得する（ステップＳ９００）。
【００８８】
次いで、ダウンロードプログラム３１２は、取得したバージョンを外部サーバ２５０に送信し、外部サーバ２５０から新バージョンがあるか否かを示す応答を受信する（ステップＳ９０１）。ステップＳ５０２では「最新バージョン」としたが、このステップＳ９０１では、「新バージョン」としている。これは、上述したように、踏み台バージョンがある場合には、必ずしも最新バージョンが外部サーバ２５０から通知されないためである。
【００８９】
外部サーバ２５０から受信した応答により新バージョンがリリースされたか否か判別する（ステップＳ９０２）。
【００９０】
ステップＳ９０２の判別の結果、新バージョンがリリースされていない場合には（ステップＳ９０２でＮＯ）、本処理を終了する。
【００９１】
一方、ステップＳ９０２の判別の結果、新バージョンがリリースされた場合には（ステップＳ９０２でＹＥＳ）、応答に示される新バージョンが踏み台バージョンか否か判別する（ステップＳ９０３）。
【００９２】
ステップＳ９０３の判別の結果、応答に示される新バージョンが踏み台バージョンではない場合には（ステップＳ９０３でＮＯ）、図７で説明したダウンロード処理を行い（ステップＳ９０５）、ファームを更新して（ステップＳ９０６）、本処理を終了する。
【００９３】
一方、ステップＳ９０３の判別の結果、応答に示される新バージョンが踏み台バージョンの場合には（ステップＳ９０３でＹＥＳ）、踏み台バージョン用のダウンロード処理である踏み台ダウンロード処理を行い（ステップＳ９０４）、ファームを更新して（ステップＳ９０６）、本処理を終了する。
【００９４】
上記ステップＳ９０６の更新は、アップデートキー４０１をユーザが選択した場合には直ちに行われる。一方、設定画面４０７での設定内容に従って更新制御処理が行われた場合には、更新時刻４０５で設定された時刻が到来したときにステップＳ９０６の更新が行われる。
【００９５】
図９は、図８におけるステップＳ９０４の踏み台ダウンロード処理の手順を示すフローチャートである。
【００９６】
図９において、ダウンロードプログラム３１２は、図４で説明した差分パッケージリストを作成する（ステップＳ１０００）。次いで、差分パッケージリストに示されるパッケージをダウンロードし、ファーム展開領域３２１に一時展開する（ステップＳ１００１）。このステップＳ１００１で一時展開されたパッケージに対応する差分パッケージリストの「展開」は「○」となる。
【００９７】
そして、差分パッケージリストに示される全てのパッケージが一時展開されたか否か判別する（ステップＳ１００２）。ステップＳ１００２の判別の結果、全てのパッケージが一時展開された場合には（ステップＳ１００２でＹＥＳ）、本処理を終了する。
【００９８】
一方、ステップＳ１００２の判別の結果、全てのパッケージが一時展開されていない場合には（ステップＳ１００２でＮＯ）、上述した割り込み処理があるか否か判別する（ステップＳ１００３）。
【００９９】
ステップＳ１００３の判別の結果、割り込み処理がない場合には（ステップＳ１００３でＮＯ）、ステップＳ１００１に戻る。
【０１００】
一方、ステップＳ１００３の判別の結果、割り込み処理がある場合には（ステップＳ１００３でＹＥＳ）、パッケージのダウンロードと一時展開を中断し（ステップＳ１００４）、割り込み処理の終了後にステップＳ１００１に戻る。
【０１０１】
以上説明した踏み台バージョンが存在する場合の更新制御処理を、具体例を用いて説明する。
【０１０２】
まず、Ｓ９０１において外部サーバ２５０から受信した応答に踏み台バージョンの２．０００が示されていたとする。この場合、バージョン１．００１とバージョン２．０００の差分パッケージリストとして、図４（Ｄ）の差分パッケージリストが作成される。
【０１０３】
この差分パッケージリストに従ってダウンロードや一時展開されることは図７のダウンロード処理を同じであるが、図９の踏み台ダウンロード処理では、割り込み処理による中断からの再開時に最新バージョンを確認しない。
【０１０４】
これは、踏み台バージョンの場合、必ずこの踏み台バージョンに更新しなければならないためである。
【０１０５】
このように、図９の踏み台ダウンロード処理では、最新バージョンのパッケージがリリースされた場合であっても、最新バージョンのパッケージをインストールする前にインストールが必要なバージョンのパッケージである踏み台バージョンのパッケージが存在するときには、最新バージョンのパッケージに代えて、踏み台バージョンのパッケージをダウンロードする。
【０１０６】
以上説明したように、本実施の形態によれば、ファームのダウンロードを中断し、ダウンロードを再開する場合に、ファームの最新バージョンがリリースされたか否かを判別する（ステップＳ６０７）。
【０１０７】
そして、最新バージョンがリリースされたと判別された場合に（ステップＳ６０７でＹＥＳ）、最新バージョンのソフトウェアをダウンロードするので（ステップＳ６０１）、最新バージョンのソフトウェアをダウンロード可能となる。
【０１０８】
また、本実施の形態によれば、中断した旧バージョンのファームが使用可能な場合は再利用し、使用不可の場合は破棄することで、不要なファームのダウンロードと更新が不要となり、さらに再起動が必要な場合には、不要なファームウェアの更新による再起動も不要となる。
【０１０９】
さらに、従来技術では、ユーザはソフトウェアを最新にしたつもりでも実際には最新にならず、次の更新タイミングまで古いバージョンのソフトウェアを使い続けてしまうという問題があったが、本実施の形態により当該問題を解決できるようになった。
【０１１０】
（他の実施の形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１１１】
１００  画像形成装置
２００  制御部
２１０  ＣＰＵ
２１２  ＲＡＭ
２１４  ＮＩＣ
２１８  ＨＤＤ
２１９  フラッシュメモリ
２２０  操作部
２５０  外部サーバ
３１０  ファームウェア
３１１  アップデートプログラム
３１２  ダウンロードプログラム
３２０  新ファーム記憶領域
３２１  ファーム展開領域
【図１】
2015212878.tif 000003
【図２】
2015212878.tif 000004
【図３】
2015212878.tif 000005
【図４】
2015212878.tif 000006
【図５】
2015212878.tif 000007
【図６】
2015212878.tif 000008
【図７】
2015212878.tif 000009
【図８】
2015212878.tif 000010
【図９】
2015212878.tif 000011