(57)【要約】    【課題】  ソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる情報処理装置及び制御方法並びに制御プログラムを提供する。    【解決手段】  記録成功フラグ２０１が「０」、即ち、新規ソフトウェアの記録に成功しなかったか、又は初実行フラグ２０２が「０」、即ち、新規ソフトウェアを実行したことがあるときは、ソフトウェア指定フラグ２０３が「０」であるか否かを判別し、ソフトウェア指定フラグ２０３が「０」、即ち、フラッシュメモリＡを示しているときは、フラッシュメモリＢに格納されるソフトウェアを実行し、ソフトウェア指定フラグ２０３が「１」、即ち、フラッシュメモリＢを示しているときは、フラッシュメモリＡに格納されるソフトウェアを実行する。【選択図】      図４
2005165557.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置において、前記旧ソフトウェア及び前記新規ソフトウェアの一方を記録する第１の記録手段と、前記旧ソフトウェア及び前記新規ソフトウェアの他方を記録する第２の記録手段と、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶手段と、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記記憶手段は前記新規ソフトウェアが前記第１の記録手段か前記第２の記録手段のどちらに記録されたかを示すソフトウエア指定情報を記憶し、前記決定手段は、前記新規ソフトウェアを実行したことがなく、かつ前記新規ソフトウェアの記録に成功したときは、前記ソフトウェア指定情報が示す記録手段に記録されたソフトウェアを実行することを決定し、前記新規ソフトウェアを実行したことがあるか、又は前記新規ソフトウェアの記録に成功しなかったときは、前記ソフトウェア指定情報が示す記録手段とは逆の記録手段に記録されたソフトウェアを実行すること決定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記新規ソフトウェアの実行に成功した場合において、前記ソフトウェア指定情報が前記第１の記録手段を示すときは前記第２の記録手段を示すように、前記ソフトウェア指定情報が前記第２の記録手段を示すときは前記第１の記録手段を示すように、前記ソフトウェア指定情報を変更する変更手段を備えることを特徴とする請求項２記載の情報処理装置。
【請求項４】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置において、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録手段と、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶手段と、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定手段とを備えることを特徴とする情報処理装置。
【請求項５】
前記第２の決定手段は、前記新規ソフトウェアの記録に成功したときは、前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの記録に成功しなかったときは、前記旧ソフトウェアを実行することを決定することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第２の決定手段は、前記新規ソフトウェアの実行に成功したときは、次に前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの実行に成功しなかったときは、次に前記旧ソフトウェアを実行することを決定することを特徴とする請求項４又は５記載の情報処理装置。
【請求項７】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御方法において、前記旧ソフトウェア及び前記新規ソフトウェアの一方を第１の記録手段に記録する第１の記録ステップと、前記旧ソフトウェア及び前記新規ソフトウェアの他方を第２の記録手段に記録する第２の記録ステップと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶ステップと、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定ステップとを備えることを特徴とする情報処理装置の制御方法。
【請求項８】
前記記憶ステップは前記新規ソフトウェアが前記第１の記録手段か前記第２の記録手段のどちらに記録されたかを示すソフトウエア指定情報を記憶し、前記決定ステップは、前記新規ソフトウェアを実行したことがなく、かつ前記新規ソフトウェアの記録に成功したときは、前記ソフトウェア指定情報が示す記録手段に記録されたソフトウェアを実行することを決定し、前記新規ソフトウェアを実行したことがあるか、又は前記新規ソフトウェアの記録に成功しなかったときは、前記ソフトウェア指定情報が示す記録手段とは逆の記録手段に記録されたソフトウェアを実行すること決定することを特徴とする請求項７記載の情報処理装置の制御方法。
【請求項９】
前記新規ソフトウェアの実行に成功した場合において、前記ソフトウェア指定情報が前記第１の記録手段を示すときは前記第２の記録手段を示すように、前記ソフトウェア指定情報が前記第２の記録手段を示すときは前記第１の記録手段を示すように、前記ソフトウェア指定情報を変更する変更ステップを備えることを特徴とする請求項８記載の情報処理装置の制御方法。
【請求項１０】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御方法において、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録ステップと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶ステップと、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定ステップとを備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
前記第２の決定ステップは、前記前記新規ソフトウェアの記録に成功したときは、前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの記録に成功しなかったときは、前記旧ソフトウェアを実行することを決定することを特徴とする請求項１０記載の情報処理装置の制御方法。
【請求項１２】
前記第２の決定ステップは、前記前記新規ソフトウェアの実行に成功したときは、次に前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの実行に成功しなかったときは、次に前記旧ソフトウェアを実行することを決定することを特徴とする請求項１０又は１１記載の情報処理装置の制御方法。
【請求項１３】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御プログラムにおいて、前記旧ソフトウェア及び前記新規ソフトウェアの一方を第１の記録手段に記録する第１の記録モジュールと、前記旧ソフトウェア及び前記新規ソフトウェアの他方を第２の記録手段に記録する第２の記録モジュールと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶モジュールと、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定モジュールとをコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
【請求項１４】
ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御プログラムにおいて、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録モジュールと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶モジュールと、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定モジュールとをコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び制御方法並びに制御プログラムに関し、特に、ソフトウェアを不揮発性メモリに記録し、記録したソフトウェアを実行する情報処理装置及び制御方法並びに制御プログラムに関する。
【背景技術】
【０００２】
ソフトウェアを不揮発性メモリに記録する情報処理装置は、新規ソフトウェアの記録に失敗した場合や、誤って記録した場合は、新規ソフトウェアを起動することができない。
【０００３】
そのため、電力がバッテリーによって供給されている時にはソフトウェアの記録を禁止してソフトウェアの記録の失敗を防止する技術や、記録に失敗した場合に予備のプログラムを起動する第１の技術が提案されている（例えば、特許文献１）。
【０００４】
また、ソフトウェアの起動に失敗した情報処理装置を復旧させるために、上位装置と下位装置を用意し、上位装置は、下位装置を監視して、下位装置の起動失敗を検知した場合は下位装置に旧ソフトウェアを起動させる第２の技術が提案や（例えば、特許文献２）、タイマーを利用したウォッチドッグを利用してソフトウェアの起動に成功したか否かを検知し、起動に失敗したときは、ソフトウェアをリセットして再起動後に修復アプリケーションによって設定を修復する第３の技術（例えば、特許文献３）が提案されている。
【０００５】
また、誤ってソフトウェアを情報処理装置に記録することを防止するために、ソフトウェアを記録する際にインストーラと呼ばれるアプリケーションが情報処理装置の種別を判別してソフトウェアの記録を許可するかを決定する技術や、情報処理装置がソフトウェアに付随する情報から記録が可能であるかを判断する第４の技術が導入されている。
【特許文献１】特開２００２−１７６５８２号公報
【特許文献２】特開２００１−１３４４２８号公報
【特許文献３】特開２００２−３３３９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記第１の技術では、記録に成功しても、情報処理装置に合わないソフトウェアを記録した場合は、該ソフトウェアを起動することができない。
【０００７】
上記第２の技術では、２つの装置が必要となり、無用なコストが生じてしまう。
【０００８】
上記第３の技術では、起動の失敗をウォッチドッグによって検知できない場合、又は停電やユーザの操作による電源断が生じた場合に対応することができない上に、装置の動作不能が、新規ソフトウェアによるものか、不正アプリケーションのインストールやユーザの操作等別の理由によるものかを認識することができない。また、修復アプリケーションの実行はＯＳ起動後に行われなければならないので、復旧に時間がかかる場合があるのに加え、ウォッチドッグ機能は書き換えてはならないので、ソフトウェアの中で書き換えてはならない部分が肥大化してしまう。
【０００９】
上記第４の技術では、ソフトウェアを開発する際に記録可能な情報処理装置の種別を判断しなければならない上に、ハードウェア構成やソフトウェア構成によって起動できない場合がある。
【００１０】
本発明の目的は、ソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる情報処理装置及び制御方法並びに制御プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上述の目的を達成するために、請求項１記載の情報処理装置は、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置において、前記旧ソフトウェア及び前記新規ソフトウェアの一方を記録する第１の記録手段と、前記旧ソフトウェア及び前記新規ソフトウェアの他方を記録する第２の記録手段と、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶手段と、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定手段とを備えることを特徴とする。
【００１２】
請求項２記載の情報処理装置は、請求項１記載の情報処理装置において、前記記憶手段は前記新規ソフトウェアが前記第１の記録手段か前記第２の記録手段のどちらに記録されたかを示すソフトウエア指定情報を記憶し、前記決定手段は、前記新規ソフトウェアを実行したことがなく、かつ前記新規ソフトウェアの記録に成功したときは、前記ソフトウェア指定情報が示す記録手段に記録されたソフトウェアを実行することを決定し、前記新規ソフトウェアを実行したことがあるか、又は前記新規ソフトウェアの記録に成功しなかったときは、前記ソフトウェア指定情報が示す記録手段とは逆の記録手段に記録されたソフトウェアを実行すること決定することを特徴とする。
【００１３】
請求項３記載の情報処理装置は、請求項２記載の情報処理装置において、前記新規ソフトウェアの実行に成功した場合において、前記ソフトウェア指定情報が前記第１の記録手段を示すときは前記第２の記録手段を示すように、前記ソフトウェア指定情報が前記第２の記録手段を示すときは前記第１の記録手段を示すように、前記ソフトウェア指定情報を変更する変更手段を備えることを特徴とする。
【００１４】
上述の目的を達成するために、請求項４記載の情報処理装置は、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置において、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録手段と、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶手段と、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定手段とを備えることを特徴とする。
【００１５】
請求項５記載の情報処理装置は、請求項４記載の情報処理装置において、前記第２の決定手段は、前記前記新規ソフトウェアの記録に成功したときは、前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの記録に成功しなかったときは、前記旧ソフトウェアを実行することを決定することを特徴とする。
【００１６】
請求項６記載の情報処理装置は、請求項４又は５記載の情報処理装置において、前記第２の決定手段は、前記新規ソフトウェアの実行に成功したときは、次に前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの実行に成功しなかったときは、次に前記旧ソフトウェアを実行することを決定することを特徴とする。
【００１７】
上述の目的を達成するために、請求項７記載の情報処理装置の制御方法は、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御方法において、前記旧ソフトウェア及び前記新規ソフトウェアの一方を第１の記録手段に記録する第１の記録ステップと、前記旧ソフトウェア及び前記新規ソフトウェアの他方を第２の記録手段に記録する第２の記録ステップと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶ステップと、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定ステップとを備えることを特徴とする。
【００１８】
請求項８記載の情報処理装置の制御方法は、請求項７記載の情報処理装置の制御方法において、前記記憶ステップは前記新規ソフトウェアが前記第１の記録手段か前記第２の記録手段のどちらに記録されたかを示すソフトウエア指定情報を記憶し、前記決定ステップは、前記新規ソフトウェアを実行したことがなく、かつ前記新規ソフトウェアの記録に成功したときは、前記ソフトウェア指定情報が示す記録手段に記録されたソフトウェアを実行することを決定し、前記新規ソフトウェアを実行したことがあるか、又は前記新規ソフトウェアの記録に成功しなかったときは、前記ソフトウェア指定情報が示す記録手段とは逆の記録手段に記録されたソフトウェアを実行すること決定することを特徴とする。
【００１９】
請求項９記載の情報処理装置の制御方法は、請求項８記載の情報処理装置の制御方法において、前記新規ソフトウェアの実行に成功した場合において、前記ソフトウェア指定情報が前記第１の記録手段を示すときは前記第２の記録手段を示すように、前記ソフトウェア指定情報が前記第２の記録手段を示すときは前記第１の記録手段を示すように、前記ソフトウェア指定情報を変更する変更ステップを備えることを特徴とする。
【００２０】
上述の目的を達成するために、請求項１０記載の情報処理装置の制御方法は、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御方法において、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録ステップと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶ステップと、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定ステップとを備えることを特徴とする。
【００２１】
請求項１１記載の情報処理装置の制御方法は、請求項１０記載の情報処理装置の制御方法において、前記第２の決定ステップは、前記前記新規ソフトウェアの記録に成功したときは、前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの記録に成功しなかったときは、前記旧ソフトウェアを実行することを決定することを特徴とする。
【００２２】
請求項１２記載の情報処理装置の制御方法は、請求項１０又は１１記載の情報処理装置の制御方法において、前記第２の決定ステップは、前記前記新規ソフトウェアの実行に成功したときは、次に前記新規ソフトウェアを実行することを決定し、前記新規ソフトウェアの実行に成功しなかったときは、次に前記旧ソフトウェアを実行することを決定することを特徴とする。
【００２３】
上述の目的を達成するために、請求項１３記載の情報処理装置の制御プログラムは、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御プログラムにおいて、前記旧ソフトウェア及び前記新規ソフトウェアの一方を第１の記録手段に記録する第１の記録モジュールと、前記旧ソフトウェア及び前記新規ソフトウェアの他方を第２の記録手段に記録する第２の記録モジュールと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する記憶モジュールと、前記識別情報に応じて、前記第１の記録手段か前記第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定する決定モジュールとをコンピュータに実行させることを特徴とする。
【００２４】
上述の目的を達成するために、請求項１４記載の情報処理装置の制御プログラムは、ソフトウェアを旧ソフトウェアから新規ソフトウェアに更新する情報処理装置の制御プログラムにおいて、前記旧ソフトウェア及び前記新規ソフトウェアを記録する記録モジュールと、前記新規ソフトウェアの記録、又は前記新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶する第２の記憶モジュールと、前記識別情報に応じて、前記旧ソフトウェア及び前記新規ソフトウェアのどちらを実行するかを決定する第２の決定モジュールとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００２５】
請求項１記載の情報処理装置、請求項７記載の制御方法、請求項１３記載の制御プログラムによれば、新規ソフトウェアの記録、又は新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶し、識別情報に応じて、第１の記録手段か第２の記録手段のどちらに記録されたソフトウェアを実行するかを決定するので、新規ソフトウェアの記録や起動に失敗したときは旧ソフトウェアを実行することができ、もってソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる。
【００２６】
請求項２記載の情報処理装置、請求項８記載の制御方法によれば、新規ソフトウェアが第１の記録手段か第２の記録手段のどちらに記録されたかを示すソフトウエア指定情報を記憶し、新規ソフトウェアを実行したことがなく、かつ新規ソフトウェアの記録に成功したときは、ソフトウェア指定情報が示す記録手段に記録されたソフトウェアを実行することを決定し、新規ソフトウェアを実行したことがあるか、又は新規ソフトウェアの記録に成功しなかったときは、ソフトウェア指定情報が示す記録手段とは逆の記録手段に記録されたソフトウェアを実行すること決定するので、請求項１の効果を確実に奏することができる。
【００２７】
請求項３記載の情報処理装置、請求項９記載の制御方法によれば、新規ソフトウェアの実行に成功した場合において、ソフトウェア指定情報が第１の記録手段を示すときは第２の記録手段を示すように、ソフトウェア指定情報が第２の記録手段を示すときは第１の記録手段を示すように、ソフトウェア指定情報を変更するので、請求項１の効果を確実に奏することができる。
【００２８】
請求項４記載の情報処理装置、請求項１０記載の制御方法、請求項１４記載の制御プログラムによれば、新規ソフトウェアの記録、又は新規ソフトウェアの実行に関連する少なくとも１つの識別情報を記憶し、識別情報に応じて、旧ソフトウェア及び新規ソフトウェアのどちらを実行するかを決定するので、新規ソフトウェアの記録や起動に失敗したときは旧ソフトウェアを実行することができ、もってソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる。
【００２９】
請求項５記載の情報処理装置、請求項１１記載の制御方法によれば、新規ソフトウェアの記録に成功したときは、新規ソフトウェアを実行することを決定し、新規ソフトウェアの記録に成功しなかったときは、旧ソフトウェアを実行することを決定するので、請求項４の効果を確実に奏することができる。
【００３０】
請求項６記載の情報処理装置、請求項１２記載の制御方法によれば、新規ソフトウェアの実行に成功したときは、次に新規ソフトウェアを実行することを決定し、新規ソフトウェアの実行に成功しなかったときは、次に旧ソフトウェアを実行することを決定するので、請求項４の効果を確実に奏することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態を図面を参照しながら説明する。
【００３２】
図１は、本発明の第１の実施の形態に係る情報処理装置の内部構成を示すブロック図である。
【００３３】
図１において、情報処理装置１００は、ソフトウェアを実行する中央演算装置（ＣＰＵ）１０１と、主電源を落としても記憶内容を保持することができる不揮発性記憶装置（ＳＲＡＭ）１０２（記憶手段）と、ソフトウェアを実行する際に必要な情報を一時的に蓄積する揮発性記憶装置（ＲＡＭ）１０３と、ＣＰＵ１０１が実行するソフトウェアを蓄積するフラッシュメモリ１０４（第１の記録手段），１０５（第２の記録手段），１０６と、フラッシュメモリ１０４又は１０５に蓄積すべきソフトウェア等の情報をＣＤ−ＲＯＭから読み出すためのＣＤ−ＲＯＭドライブ１０７と、各種情報を表示するディスプレイ１０８とを備え、これらはバス１０９を介して互いに接続される。
【００３４】
バス１０９は、ＣＰＵ１０１の設定を変更することなく、ＣＰＵ１０１がフラッシュメモリ１０４，１０５，１０６に格納されるソフトウェアを実行することができるように構成される。
【００３５】
図２は、図１におけるＳＲＡＭ１０２の記憶領域の構成を示す図である。  
【００３６】
図２において、ＳＲＡＭ１０２は、新規ソフトウェアの記録に成功したか否かを示す記録成功フラグ２０１と、新規ソフトウェアを実行したことがあるか否かを示す初実行フラグ２０２と、新規ソフトウェアが記録されるソフトウェアを指定するソフトウェア指定フラグ２０３とを不揮発性情報として格納する。
【００３７】
記録成功フラグ２０１は、新規ソフトウェアの記録に成功したことを「１」で示し、新規ソフトウェアの記録に成功しなかったことを「０」で示す。初実行フラグ２０２は、新規ソフトウェアを実行したことがないことを「１」で示し、新規ソフトウェアを実行したことがあることを「０」で示す。ソフトウェア指定フラグ２０３は、新規ソフトウェアがフラッシュメモリＡに格納されていることを「０」で示し、新規ソフトウェアがフラッシュメモリＢに格納されていることを「１」で示す。
【００３８】
これらのフラグは、夫々１つのバイト情報において１ビットを占有し、ＣＰＵ１０１は２つ又は３つのフラグを同時に書き換えることができる。
【００３９】
図３は、図１の情報処理装置１００によって実行されるソフトウェア記録処理のフローチャートである。
【００４０】
図３において、情報処理装置１００のソフトウェアを書き換えるときは、まず、記録成功フラグ２０１を「０」に設定し（ステップＳ３０１）、ソフトウェア指定フラグ２０３が「０」であるか否かを判別し（ステップＳ３０２）、ソフトウェア指定フラグ２０３が「０」、即ち、フラッシュメモリＡを示しているときは、ＣＤ−ＲＯＭドライブ１０７から読み出したソフトウェアをフラッシュメモリＡに記録し（ステップＳ３０３）、ソフトウェア指定フラグ２０３が「１」、即ち、フラッシュメモリＢを示しているときは、ＣＤ−ＲＯＭドライブ１０７から読み出したソフトウェアをフラッシュメモリＢに記録する（ステップＳ３０４）。
【００４１】
次いで、フラッシュメモリＡ又はＢにソフトウェアが正しく記録されたか否かを判別する（ステップＳ３０５）。ステップＳ３０５の判別は、ファイルサイズの確認やチェックサムの確認等により行われる。
【００４２】
ステップＳ３０５の判別の結果、ソフトウェアが正しく記録されたときは、記録成功フラグ２０１及び初実行フラグ２０２を「１」に設定し（ステップＳ３０６）、ディスプレイ１０８にソフトウェアの記録が成功したことを通知する表示を行い（ステップＳ３０７）、本処理を終了する。
【００４３】
ステップＳ３０５の判別の結果、ソフトウェアが正しく記録されなかったときは、ディスプレイ１０８にソフトウェアの記録が成功しなかったことを通知する表示を行い（ステップＳ３０８）、本処理を終了する。このとき、記録成功フラグ２０１は「０」に設定されている。この場合、ユーザは再度ソフトウェアの記録を試みるか否かの選択を行うことができる。また、正しく記録されなかったソフトウェアは実行されない。
【００４４】
図３の処理によれば、ソフトウェアが正しく記録されたときは（ステップＳ３０５でＹＥＳ）、記録成功フラグ２０１及び初実行フラグ２０２を「１」に設定する（ステップＳ３０６）ので、新規ソフトウェアの記録に成功したときにのみ、新規ソフトウェアを実行することができる。
【００４５】
図４は、図１の情報処理装置１００によって実行されるソフトウェア実行処理のフローチャートである。
【００４６】
本処理は、電源投入時又は図３のソフトウェア記録処理の後に実行される。
【００４７】
図４において、まず、記録成功フラグ２０１が「１」であるか否かを判別し（ステップＳ４０１）、記録成功フラグ２０１が「１」、即ち、新規ソフトウェアの記録に成功したときは、初実行フラグ２０２が「１」であるか否かを判別し（ステップＳ４０２）（決定手段）、初実行フラグ２０２が「１」、即ち、新規ソフトウェアを実行したことがないときは、記録成功フラグ２０１を「０」に設定する（ステップＳ４０３）。
【００４８】
次いで、ソフトウェア指定フラグ２０３が「０」であるか否かを判別し（ステップＳ４０４）、ソフトウェア指定フラグ２０３が「０」、即ち、フラッシュメモリＡを示しているときは、フラッシュメモリＡに格納されるソフトウェアを実行し（ステップＳ４０５）、ソフトウェア指定フラグ２０３が「１」、即ち、フラッシュメモリＢを示しているときは、フラッシュメモリＢに格納されるソフトウェアを実行して（ステップＳ４０６）、本処理を終了する。
【００４９】
ステップＳ４０１の判別の結果、記録成功フラグ２０１が「０」、即ち、新規ソフトウェアの記録に成功しなかったか、又はステップＳ４０２の判別の結果、初実行フラグ２０２が「０」、即ち、新規ソフトウェアを実行したことがあるときは、ソフトウェア指定フラグ２０３が「０」であるか否かを判別し（ステップＳ４０７）、ソフトウェア指定フラグ２０３が「０」、即ち、フラッシュメモリＡを示しているときは、フラッシュメモリＢに格納されるソフトウェアを実行し（ステップＳ４０８）、ソフトウェア指定フラグ２０３が「１」、即ち、フラッシュメモリＢを示しているときは、フラッシュメモリＡに格納されるソフトウェアを実行して（ステップＳ４０９）、本処理を終了する。
【００５０】
ステップＳ４０８，Ｓ４０９の処理によれば、新規ソフトウェアの記録に成功しなかったときは、旧ソフトウェアが実行される。
【００５１】
なお、ステップＳ４０５，Ｓ４０６，Ｓ４０８，Ｓ４０９において、ソフトウェアの実行は、ＣＰＵ１０１がフラッシュメモリＡ又はフラッシュメモリＢに格納されるソフトウェアを実行するようにバス１０９の設定を変更することにより行われる。
【００５２】
図４の処理によれば、記録成功フラグ２０１が「０」であるか（ステップＳ４０１でＮＯ）、又は初実行フラグ２０２が「０」である場合において（ステップＳ４０２でＮＯ）、ソフトウェア指定フラグ２０３が「０」であるときは（ステップＳ４０７でＹＥＳ）、フラッシュメモリＢに格納されるソフトウェアを実行し（ステップＳ４０８）、ソフトウェア指定フラグ２０３が「１」であるときは（ステップＳ４０７でＮＯ）、フラッシュメモリＡに格納されるソフトウェアを実行する（ステップＳ４０９）ので、新規ソフトウェアの記録や起動に失敗したときは旧ソフトウェアを実行することができ、もってソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる。
【００５３】
図５は、図１の情報処理装置１００によって実行される起動成功処理のフローチャートである。
【００５４】
本処理は、図４のソフトウェア実行処理でＯＳ等のプラットフォームの起動に成功した場合に実行され、起動途中に情報処理装置１００がフリーズ（実行停止）した場合や、起動途中に情報処理装置１００の電源が切られた場合には実行されない。
【００５５】
図５において、まず、初実行フラグ２０２が「１」であるか否かを判別し（ステップＳ５０１）、初実行フラグ２０２が「１」であるときは、ソフトウェア指定フラグ２０３を反転して「０」であるときは「１」に設定し、「１」であるときは「０」に設定し（ステップＳ５０２）（変更手段）、初実行フラグ２０２を「０」に設定し（ステップＳ５０３）、本処理を終了する。
【００５６】
ステップＳ５０１の判別の結果、初実行フラグ２０２が「０」であるときは、本処理を終了する。
【００５７】
この設定は、次に図４のソフトウェア実行処理が行われたときの動作に反映される。
【００５８】
図５の処理によれば、初実行フラグ２０２が「１」であるときは、ソフトウェア指定フラグ２０３を反転し（ステップＳ５０２）、初実行フラグ２０２を「０」に設定するので（ステップＳ５０３）、新規ソフトウェアの起動に成功したときには、次に新規ソフトウェアを実行することができると共に、新規ソフトウェアの起動に失敗したときには、次に旧ソフトウェアを実行することができる。
【００５９】
図６は、本発明の第２の実施の形態に係る情報処理装置の内部構成を示すブロック図である。
【００６０】
図６において、情報処理装置６０１は、ソフトウェアを実行する中央演算装置（ＣＰＵ）７０１と、ソフトウェアを実行する際に必要な情報を一時的に蓄積する揮発性記憶装置（ＲＡＭ）７０２と、ＣＰＵ７０１が実行する書き換え可能なソフトウェアを格納するハードディスク７０３（記録手段、第２の記憶手段）と、ＣＰＵ７０１が実行する起動用のソフトウェアを蓄積するフラッシュメモリ７０４と、後述する図７のパーソナルコンピュータ６０３との通信を担うネットワークカード７０５とを備え、これらはバス７０６を介して互いに接続される。
【００６１】
ハードディスク７０３は、ＭＳ−ＤＯＳ等と同じ一般的なディレクトリ構造を有する。また、ハードディスク７０３は、ディレクトリ名を改名する途中で電源断が起きた場合に、次回起動したときに改名されていないか、改名されているかのいずれかの状態になるように構成される。
【００６２】
図７は、図６の情報処理装置６０１が設置される環境を示す図である。
【００６３】
図７において、情報処理装置６０１は、ネットワーク６０２を介して、情報処理装置６０１にソフトウェアを転送することのできるアプリケーションを搭載したパーソナルコンピュータ６０３に接続される。ネットワーク６０２は、イーサネット（登録商標）ケーブル等を媒体とし、各種の情報処理装置が接続される。
【００６４】
図８は、図６におけるハードディスク７０３のディレクトリ構造を示す図である。
【００６５】
図８において、ルートディレクトリ８０１には、３つのディレクトリ名のディレクトリ、即ち、／ＮＥＷディレクトリ８０２ 、／ＣＵＲＲＥＮＴディレクトリ８０３ 、及び／ＯＬＤディレクトリ８０４が用意される。ただし、３つのディレクトリ名のディレクトリが存在するのは、ディレクトリ名を改名するためであり、３つのディレクトリ名のディレクトリが常に存在しているとは限らない。
【００６６】
また、／ＮＥＷディレクトリ８０２ 、／ＣＵＲＲＥＮＴディレクトリ８０３ 、及び／ＯＬＤディレクトリ８０４には、３つのファイル、即ち、ソフトウェアの起動に成功したときに作成されるＢＯＯＴ．ＯＫファイル８０５，８０６，８０７と、ソフトウェアの記録に成功したときに作成されるＤＯＷＮＬＯＡＤ．ＯＫファイル８０８，８０９，８１０と、記録されたソフトウェアを格納するＢＯＯＴＡＢＬＥソフトウェアファイル８１１，８１２，８１３が夫々存在しうる。
【００６７】
図９は、図６の情報処理装置６０１によって実行されるソフトウェア記録処理のフローチャートである。
【００６８】
図９において、情報処理装置６０１のソフトウェアを書き換えるときは、ルートディレクトリ８０１に／ＮＥＷディレクトリ８０２があれば、／ＮＥＷディレクトリ８０２をその内容と共に削除し（ステップＳ９０１）、／ＮＥＷディレクトリ８０２を新たに作成する（ステップＳ９０２）。
【００６９】
次いで、ネットワークカード７０５を介して、パーソナルコンピュータ６０３から転送される新規ソフトウェアを、／ＮＥＷディレクトリ８０２のＢＯＯＴＡＢＬＥソフトウェアファイル８１１に記録し（ステップＳ９０３）、ソフトウェアが正しく記録されたか否かを判別する（ステップＳ９０４）。ステップＳ９０４の判別は、ファイルサイズの確認やチェックサムの確認等により行われる。
【００７０】
ステップＳ９０４の判別の結果、ソフトウェアが正しく記録されたときは、／ＮＥＷディレクトリ８０２にＤＯＷＮＬＯＡＤ．ＯＫファイル８０８を作成し（ステップＳ９０５）、ネットワークカード７０５を介して、ソフトウェアの記録が成功したことをパーソナルコンピュータ６０３に通知し（ステップＳ９０６）、本処理を終了する。
【００７１】
ステップＳ９０４の判別の結果、ソフトウェアが正しく記録されなかったときは、ネットワークカード７０５を介して、ソフトウェアの記録が成功しなかったことをパーソナルコンピュータ６０３に通知し（ステップＳ９０７）、本処理を終了する。この場合、ユーザは再度ソフトウェアの記録を試みるか否かの選択を行うことができる。また、正しく記録されなかったソフトウェアは実行されない。
【００７２】
図９の処理によれば、ソフトウェアが正しく記録されたときは（ステップＳ９０４でＹＥＳ）、／ＮＥＷディレクトリ８０２にＤＯＷＮＬＯＡＤ．ＯＫファイル８０８を作成する（ステップＳ９０５）ので、新規ソフトウェアの記録に成功したときにのみ、新規ソフトウェアを実行することができる。
【００７３】
図１０は、図６の情報処理装置６０１によって実行されるソフトウェア実行処理のフローチャートである。
【００７４】
本処理は、電源投入時又は図９のソフトウェア記録処理の後に実行される。
【００７５】
図１０において、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在せず、かつ／ＯＬＤディレクトリ８０４が存在するか否かを判別し（ステップＳ１００１）、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在するか、又は／ＯＬＤディレクトリ８０４が存在しないときは、／ＮＥＷディレクトリ８０２にＤＯＷＮＬＯＡＤ．ＯＫファイル８０８が存在するか否かを判別し（ステップＳ１００２）（第２の決定手段）、ＤＯＷＮＬＯＡＤ．ＯＫファイル８０８が存在するときは、ルートディレクトリ８０１に／ＯＬＤディレクトリ８０４があれば、／ＯＬＤディレクトリ８０４をその内容と共に削除し（ステップＳ１００３）、／ＣＵＲＲＥＮＴディレクトリ８０３を「／ＯＬＤディレクトリ」に改名し（ステップＳ１００４）、／ＮＥＷディレクトリ８０２を「／ＣＵＲＲＥＮＴディレクトリ」に改名する（ステップＳ１００５）。
【００７６】
次いで、／ＣＵＲＲＥＮＴディレクトリ８０３のＢＯＯＴＡＢＬＥソフトウェアファイル８１３に格納されたソフトウェアをＲＡＭ７０２に読込み（ステップＳ１００６）、読込んだソフトウェアを実行し（ステップＳ１００７）、本処理を終了する。
【００７７】
ステップＳ１００２の判別の結果、／ＮＥＷディレクトリ８０２にＤＯＷＮＬＯＡＤ．ＯＫファイル８０８が存在しないときは、ステップＳ１００３〜ステップＳ１００５の処理を実行することなく、ステップＳ１００６以降の処理を実行する。
【００７８】
ステップＳ１００１の判別の結果、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在せず、かつ／ＯＬＤディレクトリ８０４が存在するときは、／ＣＵＲＲＥＮＴディレクトリ８０３をその内容と共に削除し（ステップＳ１００８）、／ＯＬＤディレクトリ８０４を「／ＣＵＲＲＥＮＴディレクトリ」に改名して（ステップＳ１００９）、ステップＳ１００６以降の処理を実行する。
【００７９】
図１０の処理によれば、／ＮＥＷディレクトリ８０２にＤＯＷＮＬＯＡＤ．ＯＫファイル８０８が存在しないときは（ステップＳ１００２でＮＯ）、／ＣＵＲＲＥＮＴディレクトリ８０３のＢＯＯＴＡＢＬＥソフトウェアファイル８１３に格納されたソフトウェアを実行する（ステップＳ１００７）ので、新規ソフトウェアの記録に成功しなかったときは、旧ソフトウェアを実行することができる。
【００８０】
また、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在せず、かつ／ＯＬＤディレクトリ８０４が存在するときは（ステップＳ１００１でＹＥＳ）、／ＯＬＤディレクトリ８０４を「／ＣＵＲＲＥＮＴディレクトリ」に改名し（ステップＳ１００９）、／ＣＵＲＲＥＮＴディレクトリ８０３のＢＯＯＴＡＢＬＥソフトウェアファイル８１３に格納されたソフトウェアを実行する（ステップＳ１００７）ので、前回ソフトウェアの起動に成功しなかったときは、旧ソフトウェアを実行することができ、もってソフトウェアの記録やソフトウェアの起動に失敗した場合に、小さいシステム構成で、短時間で復旧することができる。
【００８１】
図１１は、図６の情報処理装置６０１によって実行される起動成功処理のフローチャートである。
【００８２】
本処理は、図１０のソフトウェア実行処理でＯＳ等のプラットフォームの起動に成功した場合に実行され、起動途中にフリーズ（実行停止）したり、起動途中に情報処理装置６０１のユーザによって電源が切られたりした場合には、実行されない。
【００８３】
図１１において、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在しないときは、ＢＯＯＴ．ＯＫファイル８０６を作成し（ステップＳ１００１）、本処理を終了する。
【００８４】
この設定は、次に図１０のソフトウェア実行処理が行われたときの動作に反映される。
【００８５】
図１１の処理によれば、／ＣＵＲＲＥＮＴディレクトリ８０３にＢＯＯＴ．ＯＫファイル８０６が存在しないときは、ＢＯＯＴ．ＯＫファイル８０６を作成する（ステップＳ１００１）ので、新規ソフトウェアの起動に成功したときには、次に新規ソフトウェアを実行することができると共に、新規ソフトウェアの起動に失敗したときには、次に旧ソフトウェアを実行することができる。
【図面の簡単な説明】
【００８６】
【図１】本発明の第１の実施の形態に係る情報処理装置の内部構成を示すブロック図である。
【図２】図１におけるＳＲＡＭ１０２の記憶領域の構成を示す図である。
【図３】図１の情報処理装置１００によって実行されるソフトウェア記録処理のフローチャートである。
【図４】図１の情報処理装置１００によって実行されるソフトウェア実行処理のフローチャートである。
【図５】図１の情報処理装置１００によって実行される起動成功処理のフローチャートである。
【図６】本発明の第２の実施の形態に係る情報処理装置の内部構成を示すブロック図である。
【図７】図６の情報処理装置６０１が設置される環境を示す図である。
【図８】図６におけるハードディスク７０３のディレクトリ構造を示す図である。
【図９】図６の情報処理装置６０１によって実行されるソフトウェア記録処理のフローチャートである。
【図１０】図６の情報処理装置６０１によって実行されるソフトウェア実行処理のフローチャートである。
【図１１】図６の情報処理装置６０１によって実行される起動成功処理のフローチャートである。
【符号の説明】
【００８７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＳＲＡＭ
１０４  フラッシュメモリＡ  
１０５  フラッシュメモリＢ
【図１】
2005165557.tif 000003
【図２】
2005165557.tif 000004
【図３】
2005165557.tif 000005
【図４】
2005165557.tif 000006
【図５】
2005165557.tif 000007
【図６】
2005165557.tif 000008
【図７】
2005165557.tif 000009
【図８】
2005165557.tif 000010
【図９】
2005165557.tif 000011
【図１０】
2005165557.tif 000012
【図１１】
2005165557.tif 000013