(57)【要約】【課題】より安全にソフトウェアをダウンロードし、機能をアップデートすることができるようにする。【解決手段】サーバ２から情報処理装置１にファイルをダウンロードするとき、ＣＰＵ２２が、記憶装置２４の中のバンクＡまたはバンクＢにファイルをダウンロードし、バンクＣにもコピーする。ＣＰＵ２２は、各ファイルのチェックサムと全体のチェックサムを計算し、メモリ２１に記憶する。メモリ２１のチェックサムとサーバ２のチェックサムが比較され、誤りのあるファイルは再度ダウンロードされる。また、終了時に正常終了フラグがメモリ２１に記憶され、次回起動時に前回異常終了していた場合、バンクＣを用いて情報処理装置１が起動される。本発明は、パーソナルコンピュータに適用することができる。【選択図】      図１
2004295542.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置であって、
前記第１の記憶領域と前記第２の記憶領域のうち、前記ソフトウェアをダウンロードすべき記憶領域を選択する選択手段と、
前記ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算手段と、
前記第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算手段と、
前記情報処理装置が正常終了されたか否かを判定する判定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
第３の記憶領域をさらに備え、
前記第１の演算手段は、ダウンロードされた前記ソフトウェアを前記第３の記憶領域に複写する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ソフトウェアは、所定のファイル単位にダウンロードされ、
前記第１の演算手段は、前記第１の演算値として前記ファイルに対して誤りの有無を演算し、
前記第２の演算手段は、前記第２の演算値として、所定の数の前記第１の演算値に基づいて、誤りの有無を表す演算値を演算する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記判定手段は、
前記情報処理装置のシャットダウンが終了したか否かを検証する検証手段と、
前記情報処理装置のシャットダウンが正常に終了したことを表す所定の情報を設定する設定手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報処理装置の第２の演算値と、サーバまたはリムーバブルメディアの第２の演算値を比較する第１の比較手段と、
前記第１の比較手段による比較の結果、前記情報処理装置の第２の演算値と、前記サーバまたはリムーバブルメディアの第２の演算値が一致しない場合、前記情報処理装置の第１の演算値と、前記サーバまたはリムーバブルメディアの第１の演算値を比較する第２の比較手段と
をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第２の比較手段は、前記情報処理装置の第１の演算値と、前記サーバまたはリムーバブルメディアの第１の演算値が一致しない場合、その第１の演算値に対応するファイルをダウンロードする
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置を起動させるとき、前記設定手段により設定された所定の情報に基づいて、使用する記憶領域を選択して起動させる起動手段をさらに備える
ことを特徴とする請求項４に記載の情報処理装置。
【請求項８】
前記起動手段は、
前記設定手段により設定された情報を判定する設定情報判定手段（例えば、図１２のステップＳ１３２の処理を実行する図２の起動処理部４２）を備え、
前記設定情報判定手段により、前記情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていると判定された場合、
前記第１の記憶領域または前記第２の記憶領域に記憶されたソフトウェアを用いて前記情報処理装置を起動し、
前記設定情報判定手段により、前記情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていないと判定された場合、
前記第３の記憶領域に記憶されたソフトウェアを用いて前記情報処理装置を起動する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置の情報処理方法であって、
前記第１の記憶領域と前記第２の記憶領域のうち、前記ソフトウェアをダウンロードすべき記憶領域を選択する選択ステップと、
前記ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算ステップと、
前記第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算ステップと、
前記情報処理装置が正常終了されたか否かを判定する判定ステップと
を含むことを特徴とする情報処理方法。
【請求項１０】
第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムであって、
前記第１の記憶領域と前記第２の記憶領域のうち、前記ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップと、
前記ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップと、
前記第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップと、
前記情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムが記録される記録媒体であって、
前記第１の記憶領域と前記第２の記憶領域のうち、前記ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップと、
前記ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップと、
前記第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップと、
前記情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップと
をコンピュータに実行させるプログラムが記録されることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、安全にソフトウェアをダウンロードし、機能をアップデートできるようにする情報処理装置および方法、プログラム、並びに記録媒体に関する。
【０００２】
【従来の技術】
パーソナルコンピュータなどの情報処理装置が、異常終了したときの対策として、予めバックアップデータを格納しておき、異常終了したときは、バックアップデータを用いて起動することが考えられるが、ソフトウェアをアップデート（ダウンロード）したとき、バックアップデータとの間に齟齬が生じる。このため、ソフトウェアをダウンロードするとき、情報処理装置内の記憶領域を切り替えて、ダウンロードした後は、切り替え後の記憶領域を用いて情報処理装置を起動させる技術が開発されている（例えば、特許文献１参照）。また、ダウンロードするソフトウェアを複数のブロックに分割し、チェックサムの計算を送信側でのみ計算するようにして、ダウンロード時間を短縮することが提案されている（例えば、特許文献２参照）。
【０００３】
【特許文献１】
特開平０９−１８０７６号公報
【０００４】
【特許文献２】
特開平０９−１６４０４号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の技術では、ソフトウェアをダウンロード中に情報処理装置が異常終了した場合については、考慮されていなかった。また、ソフトウェアのダウンロードが正常に終了したか否かを迅速かつ正確に確認する方法がないという課題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、より安全にソフトウェアをダウンロードし、機能をアップデートすることができるようにするものである。
【０００７】
【課題を解決するための手段】
本発明の情報処理装置は、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置であって、第１の記憶領域と前記第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域を選択する選択手段と、ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算手段と、第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算手段と、情報処理装置が正常終了されたか否かを判定する判定手段とを備えることを特徴とする。
【０００８】
第３の記憶領域をさらに備え、第１の演算手段は、ダウンロードされたソフトウェアを第３の記憶領域に複写するようにすることができる。
【０００９】
前記ソフトウェアは、所定のファイル単位にダウンロードされ、第１の演算手段は、第１の演算値としてファイルに対して誤りの有無を演算し、第２の演算手段は、第２の演算値として、所定の数の第１の演算値に基づいて、誤りの有無を表す演算値を演算するようにすることができる。
【００１０】
判定手段は、情報処理装置のシャットダウンが終了したか否かを検証する検証手段と、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報を設定する設定手段とを備えるようにすることができる。
【００１１】
情報処理装置の第２の演算値と、サーバまたはリムーバブルメディアの第２の演算値を比較する第１の比較手段と、第１の比較手段による比較の結果、情報処理装置の第２の演算値と、サーバまたはリムーバブルメディアの第２の演算値が一致しない場合、情報処理装置の第１の演算値と、サーバまたはリムーバブルメディアの第１の演算値を比較する第２の比較手段とをさらに備えるようにすることができる。
【００１２】
前記第２の比較手段は、情報処理装置の第１の演算値と、サーバまたはリムーバブルメディアの第１の演算値が一致しない場合、その第１の演算値に対応するファイルをダウンロードするようにすることができる。
【００１３】
前記情報処理装置を起動させるとき、設定手段により設定された所定の情報に基づいて、使用する記憶領域を選択して起動させる起動手段をさらに備えるようにすることができる。
【００１４】
前記起動手段は、設定手段により設定された情報を判定する設定情報判定手段をさらに備え、設定情報判定手段により、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていると判定された場合、第１の記憶領域または前記第２の記憶領域に記憶されたソフトウェアを用いて情報処理装置を起動し、設定情報判定手段により、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていないと判定された場合、第３の記憶領域に記憶されたソフトウェアを用いて前記情報処理装置を起動するようにすることができる。
【００１５】
本発明の情報処理方法は、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置の情報処理方法であって、第１の記憶領域と前記第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域を選択する選択ステップと、ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算ステップと、第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算ステップと、情報処理装置が正常終了されたか否かを判定する判定ステップとを含むことを特徴とする。
【００１６】
本発明のプログラムは、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムであって、第１の記憶領域と第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップと、ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップと、第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップと、情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップとをコンピュータに実行させることを特徴とする。
【００１７】
本発明の記録媒体は、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムが記録される記録媒体であって、第１の記憶領域と前記第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップと、ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップと、第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップと、情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップとをコンピュータに実行させるプログラムが記録されることを特徴とする。
【００１８】
本発明の情報処理装置および方法、並びにプログラムにおいては、第１の記憶領域と前記第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域が選択され、ソフトウェアの誤りの有無を表す第１の演算値が演算される。また、第１の演算値に基づいて、誤りの有無を表す第２の演算値が演算される。さらに、情報処理装置が正常終了されたか否かが判定される。
【００１９】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２０】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２１】
請求項１に記載の情報処理装置は、第１の記憶領域（例えば図１のバンクＡ）、または第２の記憶領域（例えば、図１のバンクＢ）にソフトウェアをダウンロードする情報処理装置であって、第１の記憶領域と第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域を選択する選択手段（例えば、図４のステップＳ１の処理を実行する図２のダウンロード実行部４１）と、ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算手段（例えば、図２のファイルリスト作成部６１）と、第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算手段（例えば、図５のステップＳ１４の処理を実行する図２のダウンロード実行部４１）と、情報処理装置が正常終了されたか否かを判定する判定手段（例えば、図２の終了処理部６２）とを備えることを特徴とする。
【００２２】
請求項２に記載の情報処理装置は、第３の記憶領域（例えば、図１のバンクＣ）をさらに備え、第１の演算手段は、ダウンロードされたソフトウェアを第３の記憶領域に複写することを特徴とする。
【００２３】
請求項４に記載の情報処理装置は、前記判定手段が、情報処理装置のシャットダウンが終了したか否かを検証する検証手段（例えば、図１１のステップＳ１２２の処理を実行する図２の終了処理部６２）と、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報を設定する設定手段（例えば、図１１のステップＳ１２３の処理を実行する図２の終了処理部６２）とを備えることを特徴とする。
【００２４】
請求項５に記載の情報処理装置は、情報処理装置の第２の演算値と、サーバまたはリムーバブルメディアの第２の演算値を比較する第１の比較手段（例えば、図８のステップＳ７３の処理を実行する図２のダウンロード実行部４１）と、第１の比較手段による比較の結果、情報処理装置の第２の演算値と、サーバまたはリムーバブルメディアの第２の演算値が一致しない場合、情報処理装置の第１の演算値と、サーバまたはリムーバブルメディアの第１の演算値を比較する第２の比較手段（例えば、図８のステップＳ７４の処理を実行する図２のダウンロード実行部４１）とをさらに備えることを特徴とする。
【００２５】
請求項７に記載の情報処理装置は、情報処理装置を起動させるとき、設定手段により設定された所定の情報に基づいて、使用する記憶領域を選択して起動させる起動手段（例えば、図２の起動処理部４２）をさらに備えることを特徴とする。
【００２６】
請求項８に記載の情報処理装置は、起動手段が、設定手段により設定された情報を判定する設定情報判定手段（例えば、図１２のステップＳ１３２の処理を実行する図２の起動処理部４２）を備え、設定情報判定手段により、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていると判定された場合、第１の記憶領域または第２の記憶領域に記憶されたソフトウェアを用いて情報処理装置を起動し、設定情報判定手段により、情報処理装置のシャットダウンが正常に終了したことを表す所定の情報が設定されていないと判定された場合、第３の記憶領域に記憶されたソフトウェアを用いて情報処理装置を起動することを特徴とする。
【００２７】
請求項９に記載の情報処理方法は、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置の情報処理方法であって、第１の記憶領域と前記第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域を選択する選択ステップ（例えば、図４のステップＳ１）と、ソフトウェアの誤りの有無を表す第１の演算値を演算する第１の演算ステップ（例えば、図４のステップＳ６、Ｓ１２）と、第１の演算値に基づいて、誤りの有無を表す第２の演算値を演算する第２の演算ステップ（例えば、図５のステップＳ１４）と、情報処理装置が正常終了されたか否かを判定する判定ステップ（例えば、図１２のステップＳ１１２）とを含むことを特徴とする。
【００２８】
請求項１０に記載のプログラムは、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムであって、第１の記憶領域と第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップ（例えば、図４のステップＳ１）と、ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップ（例えば、図４のステップＳ６、Ｓ１２）と、第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップ（例えば、図５のステップＳ１４）と、情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップ（例えば、図１２のステップＳ１１２）とをコンピュータに実行させることを特徴とする。
【００２９】
請求項１１に記載の記録媒体は、第１の記憶領域、または第２の記憶領域にソフトウェアをダウンロードする情報処理装置のプログラムが記録される記録媒体であって、第１の記憶領域と第２の記憶領域のうち、ソフトウェアをダウンロードすべき記憶領域の選択を制御する選択制御ステップ（例えば、図４のステップＳ１）と、ソフトウェアの誤りの有無を表す第１の演算値の演算を制御する第１の演算制御ステップ（例えば、図４のステップＳ６、Ｓ１２）と、第１の演算値に基づいて、誤りの有無を表す第２の演算値の演算を制御する第２の演算制御ステップ（例えば、図５のステップＳ１４）と、情報処理装置が正常終了されたか否かの判定を制御する判定制御ステップ（例えば、図１２のステップＳ１１２）とをコンピュータに実行させるプログラムが記録されることを特徴とする。
【００３０】
図１は、本発明を適用した情報処理装置の構成例を表すブロック図である。この構成例においては、情報処理装置１がインターネット３に接続されている。インターネット３には、サーバ２が接続されている。
【００３１】
例えば、パーソナルコンピュータにより構成される情報処理装置１においては、インターネット３を経由してサーバ２にアクセスし、ソフトウェアをダウンロードするネットワークインタフェース部２８が設けられている。ＣＰＵ２２は、ダウンロードしたソフトウェアについて、チェックサムを演算し、メモリ２１に記憶する。メモリ２１は、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）により構成される。
【００３２】
ダウンロードしたソフトウェアは記憶装置２４に記憶される。記憶装置２４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）により構成されるが、ＨＤＤ以外の記憶装置（例えば、フラッシュメモリなど）により構成することも可能である。ＨＤＤはＡ，Ｂ，およびＣの３つの記憶領域（バンク）に分割されており、情報処理装置１を起動するために必要な、プログラムやパラメータなどを、それぞれの領域に独立して記憶させることができる。情報処理装置１を起動するとき、通常バンクＡまたはバンクＢのいずれか１つがＣＰＵ２２により選択され、そのバンクに記憶されたプログラムやパラメータなどに基づいて、情報処理装置１が起動される。
【００３３】
また、ＣＰＵ２２は、記憶部２４からＲＡＭ２３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ２３には、ＣＰＵ２２が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００３４】
メモリ２１、ＣＰＵ２２、およびＲＡＭ２３は、バス２９を介して相互に接続されている。このバス２９にはまた、入出力インタフェース３０も接続されている。
【００３５】
入出力インタフェース３０には、上述した記憶装置２４、ネットワークインタフェース部２８とともに、入力部２６、出力部２５が接続されている。入力部２６は、例えば、キーボード、マウスなどにより構成され、出力部２５は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）などよりなるディスプレイ（表示部）、並びにスピーカなどにより構成される。
【００３６】
また、入出力インタフェース３０には、必要に応じてドライブ２７が接続され、ドライブ２７には、光ディスク２９、光磁気ディスク３０などにより構成される記録媒体が装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶装置２４にインストールされる。
【００３７】
例えば、サーバ２から情報処理装置１のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をアップデートするために必要なソフトウェアをダウンロードする場合、現在情報処理装置１が、記憶装置２４のバンクＡに記憶されたプログラムやパラメータなどに基づいて、動作しているとき、バンクＢにソフトウェアがダウンロードされる。そして、情報処理装置１が再起動されるとき、ＣＰＵ２２によりバンクＢが選択され、今度は、情報処理装置１は、記憶装置２４のバンクＢに記憶されたプログラムやパラメータなどに基づいて動作する。
【００３８】
図２は、図１のＣＰＵ２２の機能的構成例を表すブロック図である。この例では、ソフトウェアのダウンロードを実行するダウンロード実行部４１、情報処理装置１の起動処理を実行する起動処理部４２、およびその他の処理を行う処理部４３が、バス４４を介して相互に接続されている。
【００３９】
ダウンロード実行部４１には、ダウンロードしたソフトウェアのファイルについてそのチェックサムを演算し、ファイルリストを作成するファイルリスト作成部６１、情報処理装置の終了処理を実行する終了処理部６２が設けられている。
【００４０】
図３は、サーバ２に記憶されているソフトウェアの構成例を示す図である。この例では、情報処理装置１のＯＳをアップデートするために必要なプログラム、パラメータなどにより構成されるＮ個のファイルからなるファイルブロック８１−３、ファイルブロック８１−３を構成する各ファイル名とそのファイルのチェックサムにより構成されるファイルリスト８１−２、およびファイルリスト８１−２のチェックサムを用いて演算された、サムトータル８１−１によりデータ８１が構成されている。
【００４１】
ファイルリスト８１−２には、ファイルブロック８１−３のファイル１に対応するファイル名ｆｉｌｅ＿ｎａｍｅ１とファイル１のチェックサムｓｕｍ１ｓが記述されており、同様にファイル２，・・・，ファイルＫ，・・・，ファイルＮに対応するファイル名ｆｉｌｅ＿ｎａｍｅ２，・・・，ｆｉｌｅ＿ｎａｍｅＫ，・・・，ｆｉｌｅ＿ｎａｍｅＮと、それらのファイルのチェックサムｓｕｍ２ｓ，・・・，ｓｕｍＫｓ，・・・，ｓｕｍＮｓが記述されている。
【００４２】
データは、例えば、ＯＳのバージョン単位に作成され、データ８１の１世代前のバージョンのデータ８２、データ８２の１世代前のバージョンのデータ８３などが、サーバ２に記憶されている。
【００４３】
次に、図４と図５のフローチャートを参照して、ダウンロード処理について説明する。この処理は、例えば、ユーザが情報処理装置１の入力部２６のキーボードを操作して、ＯＳをアップデートするためデータのダウンロードを指令したとき、実行される。
【００４４】
ステップＳ１において、ダウンロード実行部４１は、現在使用中の記憶装置２４のバンクは、バンクＡか否かを判定し、バンクＡではないと判定された場合、すなわち、現在使用中のバンクは、バンクＢであると判定された場合、ステップＳ２に進み、ダウンロード先のバンクをバンクＡに指定する。ステップＳ３において、ダウンロード実行部４１は、変数ｎに値１をセットする。ステップＳ４においてダウンロード実行部４１は、ｎ番目のファイルがあるか否かを判定し、ｎ番目のファイルがあると判定された場合、ｎ番目のファイルをバンクＡにダウンロードする。
【００４５】
ステップＳ６において、ダウンロード実行部４１のファイルリスト作成部６１は、図６を参照して後述するファイルリスト作成処理を実行する。これにより、図７を参照して後述するファイルリストが作成される。
【００４６】
ステップＳ７において、ダウンロード実行部４１は、ｎの値を１だけインクリメントして、ステップＳ４にもどり、それ以降の処理を繰り返し実行する。この結果、サーバ２から、図３のファイルブロック８１−３に示されるファイル１，ファイル２，・・・，ファイルＫ，・・・，ファイルＮが、順次情報処理装置１のバンクＡに記憶される。
【００４７】
一方、ステップＳ１において、現在使用中のバンクがバンクＡであると判定された場合、ステップＳ８において、ダウンロード実行部４１は、ダウンロード先のバンクをバンクＢに指定し、ステップＳ９乃至ステップＳ１３において、ステップＳ４乃至ステップＳ７と同様の処理を実行する。この結果、サーバ２から、図３のファイルブロック８１−３に示されるファイル１，ファイル２，・・・，ファイルＫ，・・・，ファイルＮが、順次情報処理装置１のバンクＢに記憶される。
【００４８】
ステップＳ４、またはステップＳ１０においてｎ番目のファイルがないと判定された場合、すなわち、図３のファイルブロック８１−３に示されるファイル１，ファイル２，・・・，ファイルＫ，・・・，ファイルＮをすべてダウンロードしたと判定された場合、ステップＳ１４に進み、ダウンロード実行部４１は、サムトータルを演算する。
【００４９】
ここで、サムトータルは、ファイル１のチェックサムｓｕｍ１ｃ，ファイル２のチェックサムｓｕｍ２ｃ，・・・，ファイルＫのチェックサムｓｕｍＫｃ，・・・，ファイルＮのチェックサムｓｕｍＮｃに基づいて、演算されたデータ全体（トータル）のチェックサムを表す。
【００５０】
ステップＳ１５において、ダウンロード実行部４１は、ステップＳ６またはステップＳ１２の処理により作成されたファイルリストと、ステップＳ１５の処理により演算されたサムトータルをメモリ２１に記憶する。
【００５１】
ステップＳ１６において、ダウンロード実行部４１は、図８を参照して後述するファイルチェック処理を実行する。これにより、サーバ２のチェックサムと情報処理装置１のメモリ２１のチェックサムが比較され、全てのファイルが誤りなくダウンロードされたか否かがチェックされる。
【００５２】
このようにして、サーバ２からデータ８１のＮ個のファイル８１−３がダウンロードされ、ダウンロードされたファイルに対応するファイルリストとサムトータル１０１（後述する図７）が作成される。
【００５３】
次に図６を参照して、図４のステップＳ６またはステップＳ１２のファイルリスト作成処理について説明する。
【００５４】
ステップＳ３１において、ファイルリスト作成部６１は、ダウンロードしたファイルのチェックサムを演算し、ファイルリスト作成部６１の中の図示せぬ一時記憶装置内に記憶する。このとき、チェックサムの演算には、ＭＤ５などが用いられる。
【００５５】
ステップＳ３２において、ファイルリスト作成部６１は、ステップＳ３１において演算したチェックサムを、そのファイル名と対応付けて、記憶する。
【００５６】
ステップＳ３３において、ファイルリスト作成部６１は、ダウンロードしたファイルをバンクＣにコピーする。このようにすることで、ファイルをダウンロードした後、停電などにより情報処理装置１が異常終了し、ファイルをダウンロードしたバンク（バンクＡまたはバンクＢ）に記憶されたデータが正常に読み出せない状態になった場合でも、バンクＣを用いて、情報処理装置を起動することが可能となる。
【００５７】
このようにして、ダウンロードしたファイル名とそのファイルのチェックサムが記憶され、ファイルリストが作成される。この結果、Ｎ個のファイルのダウンロードが完了すると、情報処理装置１のメモリ２１には、図７に示されるような情報が記憶されている。
【００５８】
なお、以上においては、情報処理装置１がサーバ２からソフトウェアをダウンロードするときに、チェックサムを演算し、ファイルリストを作成する例について説明したが、チェックサムの計算は、情報処理装置１を起動するときに行うようにしてもよいし、情報処理装置１を終了するときに行うようにしてもよい。また、情報処理装置１のＣＰＵ２２の負荷が少ない時間帯にチェックサムの計算を行うようにしてもよいし、一定の時間毎にチェックサムの計算を行うようにしてもよい。
【００５９】
図７のファイルリスト１０２は、サーバ２からダウンロードされたＮ個のファイルに対応するファイルリストであり、サーバ２からダウンロードされたファイル１のファイル名として、ｆｉｌｅ＿ｎａｍｅ１が記述され、そのチェックサムとしてｓｕｍ１ｃが記述されている。同様に、ファイル２，・・・，ファイルＫ，・・・，ファイルＮのファイル名としてｆｉｌｅ＿ｎａｍｅ２，・・・，ｆｉｌｅ＿ｎａｍｅＫ，・・・，ｆｉｌｅ＿ｎａｍｅＮが記述され、そのチェックサムとしてｓｕｍ２ｃ，・・・ｓｕｍＫｃ，・・・，ｓｕｍＮｃが記述されている。そして上述したように、ｓｕｍ１ｃ乃至ｓｕｍＮｃに基づいて、図５のステップＳ１４でサムトータルが演算され、その値サムトータル１０１が、ファイルリスト１０２とともに、ステップＳ１５で、メモリ２１に記憶される。
【００６０】
次に、図８を参照して、図５のステップＳ１６のファイルチェック処理について説明する。ステップＳ７１において、ダウンロード実行部４１は、サーバ２のサムトータル８１−１（図３）を値ＳＴＳとして取得し、メモリ２１のサムトータル１０１（図７）を値ＳＴＭとして取得する。ステップＳ７３において、ダウンロード実行部４１は、値ＳＴＭと値ＳＴＳが等しいか否かを判定する。
【００６１】
サーバ２のサムトータル８１−１は、サーバ２のファイルリスト８１−２に記述されたチェックサムｓｕｍ１ｓ乃至ｓｕｍＮｓに基づいて、演算されたチェックサムであり、メモリ２１のサムトータル１０１は、メモリ２１のファイルリスト１０２に記述されたチェックサムｓｕｍ１ｃ乃至ｓｕｍＮｃに基づいて、演算されたチェックサムであり、両者の値が一致すれば、チェックサムｓｕｍ１ｓ乃至ｓｕｍＮｓの値とチェックサムｓｕｍ１ｃ乃至ｓｕｍＮｃの値は、それぞれ一致している、すなわち、Ｎ個のファイルは、全て誤りなくダウンロードされたと考えられる。
【００６２】
ステップＳ７３において、値ＳＴＭと値ＳＴＳが等しいと判定された場合、ダウンロード実行部４１は、全てのファイルが誤りなくダウンロードされたものと判定し、ファイルチェック処理を終了する。このようにすることで、全てのファイルのチェックサムを比較することなく、ダウンロードされたファイルの誤りの有無を確認することができ、迅速にファイルチェック処理を終了することができる。
【００６３】
一方、ステップＳ７３において、値ＳＴＭと値ＳＴＳが等しくないと判定された場合、ダウンロード実行部４１は、ステップＳ７４に進み、図９を参照して後述するチェックサム比較処理を実行する。これにより、各ファイルのチェックサムが比較され、誤ってダウンロードされたファイルが再度ダウンロードされる。
【００６４】
次に、図９を参照して、図８のステップＳ７４のチェックサム比較処理について説明する。
【００６５】
ステップＳ９１において、ダウンロード実行部４１は、変数ｎの値を１にセットする。ステップＳ９２において、ダウンロード実行部４１は、サーバ２のファイルリスト８１−２に記述されたチェックサムｓｕｍ（ｎ）ｓとメモリ２１のファイルリスト１０２に記述されたチェックサムｓｕｍ（ｎ）ｃが比較される。ｎが１のとき、ファイルリスト８１−２のチェックサムｓｕｍ１ｓとファイルリスト１０２のチェックサムｓｕｍ１ｃが比較される。ステップＳ９３において、ダウンロード実行部４１は、両者の値が一致したか否かを判定し、一致したと判定された場合、ステップＳ９６に進み、全てのファイルについてチェックしたか否かを判定する。まだ全てのファイルをチェックしていない場合、ステップＳ９７に進み、ｎの値を１だけインクリメントしてステップＳ９２に戻る。このようにチェックサムｓｕｍ１ｓとｓｕｍ１ｃ、ｓｕｍ２ｓとｓｕｍ２ｃ、・・・において両者の値が一致していることが確認される。
【００６６】
ステップＳ９３において、ｓｕｍ（ｎ）ｓとｓｕｍ（ｎ）ｃの値が一致しないと判定された場合、ダウンロード実行部４１は、ステップＳ９４に進み、ｎ番目のファイルをダウンロードする。例えば、ステップＳ９３において、チェックサムｓｕｍＫｓの値とチェックサムｓｕｍＫｃの値が一致しないと判定された場合、ダウンロードされたファイルＫの内容に誤りがあると考えられる。そこで、ステップＳ９４においてファイルＫがサーバ２から情報処理装置１に再びダウンロードされる。
【００６７】
ステップＳ９５において、ダウンロード実行部４１は、ファイルリスト作成部６１にファイルリスト作成処理を実行させる。ステップＳ９５のファイルリスト作成処理は、図６を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、これによりファイルＫのチェックサムｓｕｍＫｃが再び演算される。
【００６８】
ステップＳ９６において、ダウンロード実行部４１は、全てのファイルについてチェックしたか否かを判定し、全てのファイルについてまだチェックしていないと判定された場合、ステップＳ９７に進み、ｎの値を１だけインクリメントして、ステップＳ９２に戻り、それ以降の処理を繰り返し実行する。
【００６９】
ステップＳ９６において全てのファイルについてチェックしたと判定された場合（ｎの値がＮのとき）ステップＳ９８に進み、ダウンロード実行部４１は、サムトータルを演算し、ステップＳ９９において、ファイルリストとサムトータルをメモリ２１に記憶する。いまの例の場合、メモリ２１のファイルリスト１０２のｓｕｍＫｃが新たに演算され、それに対応して、サムトータル１０１の値が新たに演算され、メモリ２１に記憶された情報が更新される。
【００７０】
なお、以上においては、情報処理装置１がサーバ２からファイルをダウンロードする場合について説明したが、ファイルは、サーバ２からダウンロードされるものに限らず、例えば、情報処理装置１のドライブ部２７に装着された記録媒体からダウンロードすることも可能である。
【００７１】
次に、図１０を参照して、情報処理装置１の終了処理について説明する。ステップＳ１１１において、ＣＰＵ２２の終了処理部６２は、情報処理装置１のシャットダウンが指令されたか否かを判定し、指令されたと判定されるまで待機する。シャットダウンの指令は、例えば、ユーザが情報処理装置１の入力部２６のキーボードを操作して、シャットダウンコマンドを投入することなどにより行われる。
【００７２】
ステップＳ１１１においてシャットダウンが指令されたと判定された場合、終了処理部６２は、ステップＳ１１２に進み、図１１を参照して後述するフラグ設定処理を実行する。これにより、情報処理装置１が正常終了したことを表すフラグが設定される。
【００７３】
次に、図１１を参照して、図１０のステップＳ１１２のフラグ設定処理について説明する。ステップＳ１２１において、終了処理部６２は、処理部４３に実行中のタスクを終了させる。ステップＳ１２２において、終了処理部６２は、全てのタスクが終了したか否かを判定し、まだ全てのタスクが終了していないと判定された場合、ステップＳ１２１に戻り、次のタスクを終了させる。ステップＳ１２２において、全てのタスクが終了されたと判定された場合、終了処理部６２は、ステップＳ１２３に進み、メモリ２１の所定の領域に記憶される正常終了フラグ（初期値０）を１にセットする。このようにすることで、情報処理装置１が正常終了したこと表す情報が記憶される。換言すれば、メモリ２１の正常終了フラグが１でない場合（０である場合）、情報処理装置１は、前回、停電などにより異常終了したと判断できる。
【００７４】
ステップＳ１２４において、終了処理部６２は、情報処理装置１の電源をｏｆｆする。
【００７５】
このようにして、正常終了フラグの値が設定される。
【００７６】
次に、図１２を参照して、起動処理について説明する。
【００７７】
ステップＳ１３１において、起動処理部４２は、電源ｏｎが指令されたか否かを判定し、電源ｏｎが指令されたと判定されるまで待機する。電源ｏｎの指令は、例えば、ユーザが情報処理装置１の電源ｏｎボタン（図示せず）を押下することにより行われる。
【００７８】
ステップＳ１３１において、電源ｏｎが指令されたと判定された場合、起動処理部４２は、ステップＳ１３２に進み、メモリ２１の正常終了フラグの値が１と等しいか否かを判定する。ステップＳ１３２において、正常終了フラグの値が１ではないと判定された場合、上述したように、情報処理装置１は、前回異常終了しているので、図４のダウンロード処理によりダウンロードしたファイルが、バンクＡまたはバンクＢから正常に読み出せない可能性がある。しかし、上述したように、情報処理装置１にダウンロードされたファイルは、ファイルリスト作成処理（図６）において、バンクＣにコピーされている。そこで、起動処理部４２は、ステップＳ１３４において、バンクＣを用いてブートする。
【００７９】
一方、ステップＳ１３２において、正常終了フラグの値が１と等しいと判定された場合、起動処理部４２は、ステップＳ１３３に進み、バンクＡまたはバンクＢを用いてブートする。
【００８０】
このようにして、情報処理装置１が起動される都度、前回の終了状態（正常終了または異常終了）が判定され、前回の終了状態に対応して、ブートに用いられるバンクが選択される。
【００８１】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
【００８２】
なお、上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、汎用のパーソナルコンピュータなどに、例えば、図１のドライブ部２７に装着される記録媒体からインストールされる。
【００８３】
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００８４】
【発明の効果】
以上の如く、本発明によれば、より安全にソフトウェアをダウンロードし、機能をアップデートすることができる。
【図面の簡単な説明】
【図１】本発明を適用した情報処理装置の構成例を示すブロック図である。
【図２】図１のＣＰＵの機能的構成例を示すブロック図である。
【図３】サーバに記憶されるデータの構成例を示す図である。
【図４】ダウンロード処理を説明するフローチャートである。
【図５】ダウンロード処理を説明するフローチャートである。
【図６】ファイルリスト作成処理を説明するフローチャートである。
【図７】図１のメモリに記憶される情報の例を示す図である。
【図８】ファイルチェック処理を説明するフローチャートである。
【図９】チェックサム比較処理を説明するフローチャートである。
【図１０】終了処理を説明するフローチャートである。
【図１１】フラグ設定処理を説明するフローチャートである。
【図１２】起動処理を説明するフローチャートである。
【符号の説明】
１  情報処理装置，  ２  サーバ，  ２１  メモリ，  ２２  ＣＰＵ，  ２４記憶装置  ２７  ドライブ，  ２８  ネットワークインタフェース部，  ４１ダウンロード実行部，  ４２  起動処理部，  ６１  ファイルリスト作成部，６２  終了処理部
【図１】
2004295542.tif 000003
【図２】
2004295542.tif 000004
【図３】
2004295542.tif 000005
【図４】
2004295542.tif 000006
【図５】
2004295542.tif 000007
【図６】
2004295542.tif 000008
【図７】
2004295542.tif 000009
【図８】
2004295542.tif 000010
【図９】
2004295542.tif 000011
【図１０】
2004295542.tif 000012
【図１１】
2004295542.tif 000013
【図１２】
2004295542.tif 000014