(57)【要約】【課題】  冗長性を確保したソフトウェアの部分更新技術を提供する。【解決手段】  第１のシステムプログラムが稼動状態、第２のシステムプログラムが非稼動状態にある場合に通信部が更新指示ファイルを受信したとき、起動管理情報で示された起動システムプログラムを、第１のシステムプログラムから第２のシステムプログラムに変更して第２のシステムプログラムを起動システムプログラムとして情報処理装置を再起動し、第２のシステムプログラムが備えるファイルのうち同期状態にないファイルを第１のシステムプログラムが備えるファイルと同期させ、ファイルの同期が完了した後、起動管理情報に示された起動システムプログラムを、第２のシステムプログラムから第１のシステムプログラムに変更する。【選択図】  図２
2014142799.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と情報を送受信する通信部と、
第１のシステムプログラムを格納する第１の領域、および、前記第１のシステムプログラムに対応する第２のシステムプログラムを格納する第２の領域を備える記憶部と、
前記記憶部に格納されたプログラムを実行する制御部と、を備える情報処理装置において、
前記記憶部は、
前記第１のシステムプログラムまたは前記第２のシステムプログラムの何れかを起動システムプログラムとして示す起動管理情報と、
前記第１のシステムプログラムが備える複数のファイルと前記第２のシステムプログラムが備える複数のファイルの同期状態を示す同期管理情報と、を記憶し、
前記制御部は、
前記第１のシステムプログラムが稼動状態、前記第２のシステムプログラムが非稼動状態にある場合に前記通信部が更新指示ファイルを受信したとき、前記起動管理情報で示された起動システムプログラムを、前記第１のシステムプログラムから前記第２のシステムプログラムに変更し、
前記変更された起動管理情報に基いて、前記第２のシステムプログラムを起動システムプログラムとして前記情報処理装置を再起動し、
前記同期管理情報に基いて、前記第１のシステムプログラムが備える複数のファイルと、前記第２のシステムプログラムが備える複数のファイルの同期状態を解析し、前記第２のシステムプログラムが備えるファイルのうち同期状態にないファイルを前記第１のシステムプログラムが備えるファイルと同期させ、
前記ファイルの同期が完了した後、前記起動管理情報に示された起動システムプログラムを、前記第２のシステムプログラムから前記第１のシステムプログラムに変更し、
前記変更された起動管理情報に基いて、前記第１のシステムプログラムを起動システムプログラムとして前記情報処理装置を再起動することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記同期管理情報は、前記第１のシステムプログラムおよび前記第２のシステムプログラムがそれぞれ備えるシステムファイル、ミドルウェアファイルまたはアプリケーションファイルの同期状態を示すことを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置において、
前記同期管理情報は、前記第１のシステムプログラムおよび前記第２のシステムプログラムがそれぞれ備えるシステムファイル、ミドルウェアファイルまたはアプリケーションファイルが更新された時間情報を有することを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置において、
前記同期管理情報は、前記第１のシステムプログラムおよび前記第２のシステムプログラムがそれぞれ備えるシステムファイル、ミドルウェアファイルまたはアプリケーションファイルの同期の禁止を示す禁止情報を有することを特徴とする情報処理装置。
【請求項５】
請求項１記載の情報処理装置において、
前記通信部は、ネットワークを介して外部装置から情報を受信し、または、前記情報処理装置に接続された外部装置の記憶媒体から情報を受信することを特徴とする情報処理装置。
【請求項６】
請求項１記載の情報処理装置とネットワークを介して通信可能なサーバにおいて、
前記情報処理装置と通信する通信部と、
前記情報処理装置のシステムプログラムの更新指示ファイル及び前記システムプログラムの更新ファイルを記憶する記憶部と、
前記更新指示ファイルおよび前記更新ファイルを前記通信部を介して前記情報処理装置に送信することを特徴とするサーバ。
【請求項７】
外部装置と情報を送受信する通信部と、第１のシステムプログラムを格納する第１の領域、および、前記第１のシステムプログラムに対応する第２のシステムプログラムを格納する第２の領域を備える記憶部と、前記記憶部に格納されたプログラムを実行する制御部と、を備える情報処理装置における情報処理方法であって、
前記記憶部が、
前記第１のシステムプログラムまたは前記第２のシステムプログラムの何れかを起動システムプログラムとして示す起動管理情報と、前記第１のシステムプログラムが備える複数のファイルと前記第２のシステムプログラムが備える複数のファイルの同期状態を示す同期管理情報と、を記憶し、
前記制御部が、
前記第１のシステムプログラムが稼動状態、前記第２のシステムプログラムが非稼動状態にある場合に前記通信部が更新指示ファイルを受信したとき、前記起動管理情報で示された起動システムプログラムを、前記第１のシステムプログラムから前記第２のシステムプログラムに変更し、
前記変更された起動管理情報に基いて、前記第２のシステムプログラムを起動システムプログラムとして前記情報処理装置を再起動し、
前記同期管理情報に基いて、前記第１のシステムプログラムが備える複数のファイルと、前記第２のシステムプログラムが備える複数のファイルの同期状態を解析し、前記第２のシステムプログラムが備えるファイルのうち同期状態にないファイルを前記第１のシステムプログラムが備えるファイルと同期させ、
前記ファイルの同期が完了した後、前記起動管理情報に示された起動システムプログラムを、前記第２のシステムプログラムから前記第１のシステムプログラムに変更し、
前記変更された起動管理情報に基いて、前記第１のシステムプログラムを起動システムプログラムとして前記情報処理装置を再起動することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびサーバに関する。
【背景技術】
【０００２】
本特許の背景技術として、ソフトウェアの２バンク構成および特開2010-282645号（特許文献１）がある。特許文献１には、「Ｌｉｎｕｘ（登録商標）プログラム起動において、複数のバンクに記録された複数のファイルシステムから、起動カーネルにリンクする有効なファイルシステムを識別することを可能にする」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2010-282645号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手法では、システム内のごく一部ファイルを書き換える場合であっても、バンクの全てを上書きする必要があるため、バンク内の合計データ量が大きくなるほど更新に時間がかかる。また、データ量が大きくなるため、更新が失敗する危険性が増す。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば以下の通りである。
【０００６】
即ち、本発明に係る情報処理装置は、外部装置と情報を送受信する通信部と、第１のシステムプログラムを格納する第１の領域、および、第１のシステムプログラムに対応する第２のシステムプログラムを格納する第２の領域を備える記憶部と、記憶部に格納されたプログラムを実行する制御部と、を備える。
【０００７】
記憶部は、第１のシステムプログラムまたは第２のシステムプログラムの何れかを起動システムプログラムとして示す起動管理情報と、第１のシステムプログラムが備える複数のファイルと第２のシステムプログラムが備える複数のファイルの同期状態を示す同期管理情報と、を記憶する。
【０００８】
制御部は、第１のシステムプログラムが稼動状態、第２のシステムプログラムが非稼動状態にある場合に通信部が更新指示ファイルを受信したとき、起動管理情報で示された起動システムプログラムを、第１のシステムプログラムから第２のシステムプログラムに変更し、変更された起動管理情報に基いて、第２のシステムプログラムを起動システムプログラムとして情報処理装置を再起動し、同期管理情報に基いて、第１のシステムプログラムが備える複数のファイルと、第２のシステムプログラムが備える複数のファイルの同期状態を解析し、第２のシステムプログラムが備えるファイルのうち同期状態にないファイルを第１のシステムプログラムが備えるファイルと同期させ、ファイルの同期が完了した後、起動管理情報に示された起動システムプログラムを、第２のシステムプログラムから第１のシステムプログラムに変更し、変更された起動管理情報に基いて、第１のシステムプログラムを起動システムプログラムとして情報処理装置を再起動する。
【発明の効果】
【０００９】
本発明によれば、ファイルの更新時間の短縮または更新失敗の危険性を低減することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】システム構成の一例を示す図である。
【図２】更新対象機器１０の構成の一例を示す図である。
【図３】更新ファイル配布サーバ２０の構成の一例を示す図である。
【図４】更新対象機器１０の更新指示ファイル入手シーケンスの一例である。
【図５】更新対象機器１０のファイル更新シーケンスの一例である。
【図６】更新指示解析処理プログラム１０８が使用する更新指示ファイルの一例である。
【図７】ストレージ１０３に保存されている起動管理テーブル１０４の一例である。
【図８】図７はストレージ１０３に保存されている同期管理データベース１０５の一例である。
【図９】システム構成の一例を示す図である。
【図１０】更新対象機器４０の構成の一例を示す図である。
【図１１】更新ファイル配布メディア５０の構成の一例を示した図である。
【図１２】更新対象機器１０の更新指示ファイル実行シーケンスの一例である。
【発明を実施するための形態】
【００１１】
以下、実施例について図面を用いて説明する。なお、図面において、同一符号は、同一または相当部分を示す。また、本発明は、図示例に限定されるものではない。
【実施例１】
【００１２】
本発明に係る実施形態１を、図１〜７を用いて説明する。
【００１３】
ソフトウェアの更新機能として、組み込み機器では不揮発メモリを２バンクに分割し、プログラムの実行は常に一つのバンクにて実施し、ソフトウェア更新時は、ソフトウェアの更新範囲に関わらずもう一方のバンク全て上書きし、再起動とともに起動バンクを切り替えるという手法がある。
本実施例はソフトウェアの部分更新を可能にすることで、より好適にソフトウェア更新を実施可能とする技術について説明する。
【００１４】
図１は、本実施例に係るシステムの構成の一例を示した図である。
本実施例に係るシステムは、更新対象機器１０、更新ファイル配布サーバ２０、ネットワーク３０から構成される。
【００１５】
更新対象機器１０は、例えばホームゲートウェイ、ネットワークストレージ、Webサーバ、デジタルテレビ、PC（Personal Computer）、携帯電話などであり、内部にソフトウェア及びネットワーク３０を介した通信機能を有する機器である。
【００１６】
更新ファイル配布サーバ２０は、ネットワーク３０を介し更新対象機器１０に更新データを提供するサーバである。
【００１７】
ネットワーク３０は、例えばインターネットやローカルエリアネットワーク、USB（Universal Serial Bus）、リモートUSB、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線通信、ＩＣタグ機能、ＴｒａｎｓｆｅｒＪＥＴ（登録商標）、ＬＴＥ、ＨＳＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＥＶ−ＤＯ（Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｎｌｙ）などである。更新対象機器１０と更新ファイル配布サーバ２０はネットワーク３０を介して相互に接続できる。
【００１８】
図２は、更新対象機器１０の構成の一例を示す図である。
更新対象機器１０は、通信部１０１、制御部１０２、ストレージ１０３、メモリ１０６、バス１１１、電源供給部１１２を備える。
【００１９】
なお、更新対象機器１０は、起動判定処理プログラム１０７、更新指示解析処理プログラム１０８、同期処理プログラム１０９、起動処理１１０をストレージ１０３に格納しており、制御部１０２がストレージ１０３から上記プログラムをメモリ１０６に展開し、制御部１０２が上記プログラムを実行することで本実施例の処理を実現できる。なお、プログラムは、端末が出荷されるまでに予めストレージに格納されていても良いし、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）・ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などの光学メディアや半導体メモリ等の媒体に格納されて図示しない媒体接続部を介して端末にインストールされても良い。また、通信部１０１を介して外部ネットワーク３０からダウンロード、若しくは基地局からダウンロードしてインストールすることも可能である。
【００２０】
また、起動判定処理プログラム１０７、更新指示解析処理プログラム１０８、同期処理プログラム１０９、起動処理１１０は、同様の機能を持つ処理部として、ハードウェアで実現することも可能である。ハードウェアとして実現する場合は、各処理部が主体となって各機能を実現する。
【００２１】
通信部１０１は、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線通信、ＩＣタグ機能、ＴｒａｎｓｆｅｒＪＥＴ（登録商標）、ＬＴＥ、ＨＳＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、ＥＶ−ＤＯ（Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｎｌｙ）、及びＷｉＭＡＸ等の無線通信機能、または、Ｅｔｈｅｒｎｅｔ（登録商標）等の有線通信機能を備え、各種の情報を送受信する。無線通信機能は、アンテナ、及び変復調回路等を含む。有線通信機能は、コネクタ、及び変復調回路等を含む。情報の送受信には、ネットワークを介して行うネットワーク通信と、ネットワークを介さずに各機器間で直接通信を行う直接通信（例えばＢｌｕｅｔｏｏｔｈ（登録商標）、ワイヤレスＵＳＢ、Ｆｅｌｉｃａ（登録商標）、ＺｉｇＢｅｅ（登録商標）、Ｚ−ＷＡＶＥ（登録商標）、可視光通信、赤外線通信）を適宜切り替えて使用できる。通信部１０１は、複数の通信方式に対応するよう構成されても良い。
【００２２】
制御部１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、及びＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等から構成され、所定のプログラムを実行するなどして、更新対象機器１０全体の動作を制御する。後述するフローチャート等を始めとする本実施例の処理動作も、特段の注釈がない限り、制御部１０２により実行されるものとする。
【００２３】
ストレージ１０３は、更新対象機器１０に内蔵される記録媒体や、取り外し可能な外部記録媒体や光ディスクなどで構成され、少なくとも３つ以上の領域に分割される。一つ目は共通領域で、各種の情報を記録する。例えば、制御部１０２の指示により制御され、アプリケーションプログラムを保存することができる。二つ目と三つ目はバンク１領域、バンク２領域で、いずれも更新対象機器１０を動作させるシステムプログラムを記録する。ただし、更新対象機器１０を動作させるシステムプログラムはバンク１領域またはバンク２領域のいずれか一つのみであり、もう一方の領域はソフトウェア更新時の冗長性確保に使われ、更新対象機器１０の通常動作には影響しない。
【００２４】
メモリ１０６は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などから構成され、制御部１０２の指示により制御される。メモリ１０６に、ストレージ１０３に格納しているアプリケーションプログラムの機能部が展開される。
【００２５】
バス１１１は、各部が相互に信号を伝送するための伝送路である。
【００２６】
電源供給部１０９は、バッテリ、ＡＣアダプタ、及び充電回路等から構成され、更新対象機器１０の各部への電源供給や、バッテリへの充電を行う。また、更新対象機器１０がバッテリ駆動されているか、ＡＣアダプタ駆動されているかといった状態確認や、バッテリの残量確認を行う。
【００２７】
図３は、更新ファイル配布サーバ２０の構成の一例を示す図である。
更新ファイル配布サーバ２０は、通信部２０１、入力部２０２、表示部２０３、制御部２０４、電源供給部２０５、ストレージ２０６、メモリ２０７、バス２０９を備える。
また、更新ファイル配布サーバ２０は、更新指示作成処理プログラム２０８をストレージ２０６に格納しており、制御部２０４がストレージ２０６から上記プログラムをメモリ２０７に展開し、制御部２０４が上記プログラムを実行することで本実施例の処理を実現できる。なお、プログラムは、サーバが出荷されるまでに予めストレージに格納されていても良いし、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）・ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などの光学メディアや半導体メモリ等の媒体に格納されて図示しない媒体接続部を介してサーバにインストールされても良い。また、通信部２０１を介して外部ネットワーク３０からダウンロード、若しくは基地局からダウンロードしてインストールすることも可能である。
また、更新指示作成処理プログラム２０８は、同様の機能を持つ処理部として、ハードウェアで実現することも可能である。ハードウェアとして実現する場合は、処理部が主体となって各機能を実現する。
【００２８】
通信部２０１は、更新対象機器１０と同様の機能を有するため説明を省略する。
入力部２０２は、キーボード、マウス、カーソルキー、及びテンキー等の一または複数を備え、ユーザの操作を受け付け、当該操作に基づいた入力信号を制御部２０４に入力する。なお、音声認識、画像認識、またはジェスチャ認識等によって入力信号を生成し、制御部２０４に入力するようにしても良い。また、タッチパネルのように、表示部２０３と入力部１０２とが一体となった構成であっても良い。
【００２９】
表示部２０３は、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、及び電子ペーパー等のパネル並びにドライバ回路等から構成され、制御部２０４の制御下にて任意の情報（例えば、文字、静止画、及び動画等）を表示する。なお、表示部２０３は、それぞれ異なる情報を表示可能な複数のパネルを有していても良い。
【００３０】
制御部２０４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、及びＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等から構成され、所定のプログラムを実行するなどして、更新ファイル配布サーバ２０全体の動作を制御する。
【００３１】
電源供給部２０５は、ＵＰＳ（Ｕｎｉｎｔｅｒｒｕｐｔｉｂｌｅ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ）、ＡＣアダプタ、及び充電回路等から構成され、更新ファイル配布サーバ２０の各部への電源供給を行う。また、停電時にはＵＰＳと切り替えて電力供給が滞らないように調整する。
【００３２】
ストレージ２０６は、更新ファイル配布サーバ２０に内蔵される記録媒体や、取り外し可能な外部記録媒体や光ディスクなどから構成され、各種の情報を記録する。例えば、制御部２０４の指示により制御され、アプリケーションプログラムを保存することができる。また、アプリケーションプログラムで作成した各種情報を保存する。例えば、更新指示ファイルや更新対象ファイルを記録する。
【００３３】
メモリ２０７は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などから構成され、制御部２０４の指示により制御される。メモリ２０７に、ストレージ２０６に格納しているアプリケーションプログラムの機能部が展開される。
【００３４】
バス２０９は、各部が相互に信号を伝送するための伝送路である。
【００３５】
図４は、更新対象機器１０の更新指示ファイル入手シーケンスの一例である。
Ｓ１０１において、制御部２０４は更新指示作成処理プログラム２０８を起動し、更新指示ファイルを作成する。
【００３６】
Ｓ１０２において、制御部２０４は更新対象機器１０に更新実行要求を行う。
【００３７】
Ｓ１０３において、制御部１０２は更新ファイル配布サーバにアクセスし、更新指示ファイル取得を試みる。
【００３８】
Ｓ１０３において更新指示ファイルが取得できた場合（Ｓ１０４のYes）、制御部１０２はシステムプログラムを更新させるための準備を行い（Ｓ１０５）、図５のＳ２０１へ進む。更新準備の例として、更新に不要な機能の停止がある。更新指示ファイルが取得できなかった場合（Ｓ１０４のNo）、制御部１０２は更新ファイル配布サーバ２０に取得エラーを通知し（Ｓ１０６）、処理を終了する。
【００３９】
図５は、更新対象機器１０のファイル更新シーケンスの一例である。
【００４０】
Ｓ２０１において、更新指示解析処理プログラム１０８は、Ｓ１０４で入手した更新指示ファイルを解析し、実行する。図６は更新指示解析処理プログラム１０８が使用する更新指示ファイルの一例である。３０１では、図７のデータベースを確認し、現在起動していないバンクを調べる操作である。３０２の条件分岐によって、バンク１が現在起動していない場合、３０３の操作を行う。３０３では、更新ファイル配布サーバ２０の中にある”UpdateSoftwareProgram”というプログラムを”/Bank1”というディレクトリにコピーする。３０２の条件分岐によって、バンク２が現在起動していない場合、３０４の操作を行う。３０４では、更新ファイル配布サーバ２０の中にある”UpdateSoftwareProgram”というプログラムを”/Bank2”というディレクトリにコピーする。
【００４１】
尚、図６では指示ファイルの書式として、スクリプト言語を用いて説明したが、コンピュータが直接できるバイナリプログラムであっても効果は変わらない。
【００４２】
図７は、ストレージ１０３に保存されている起動管理テーブル１０４の一例である。ストレージ１０３のバンク１、バンク２いずれのシステムプログラムが起動したかが記されている。図７の場合、バンク１が現在起動中であり、再起動後もバンク１が起動することを示している。
【００４３】
また、図８はストレージ１０３に保存されている同期管理データベース１０５の一例である。ストレージ１０３のバンク１、バンク２に保存されているシステムファイルを構成する全ファイルの更新日時を管理する。バンク１とバンク２には同一のファイルが配置されており、同期管理データベース１０５には各バンクのシステムファイル、ミドルウェアファイル、アプリケーションファイルにおいて、更新日時と同期の要否・禁止に関する情報が記されている。ここで、システムファイルとは更新対象機器１０のシステム構成に関わるファイルであり、例えばＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などの実行プログラムや設定ファイルなどである。ミドルウェアファイルとは更新対象機器１０のシステム構成を補助するファイルであり、例えばＯＳＧＩ（Ｏｐｅｎ  Ｓｏｕｒｃｅ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ）などのフレームワークを構成する実行プログラムや設定ファイルなどである。アプリケーションファイルは、更新対対象機器１０の各機能実行の主体となるファイルである。
【００４４】
以後、本実施例では、図７の起動管理テーブル１０４の通りバンク１が起動中に、システムプログラム６およびアプリケーション５が更新される場合を説明する。
【００４５】
Ｓ２０２において、制御部１０２は起動管理テーブル１０４を確認し、起動元をバンク２に変更し、更新対象機器１０のシステム全体を再起動する（Ｓ２０３）。
なお、更新対象機器１０がバッテリ駆動しており、電源供給部１０９でバッテリの残量確認を行った結果、バッテリの残量が一定値以下の場合、再起動せず処理を終了しても良い。この場合、更新中に更新対象機器１０がバッテリの残量不足で終了し、更新対象機器１０の動作が不安定になることを防ぐ効果がある。Ｓ２０４において、同期処理プログラム１０９は同期管理データベース１０５を参照してバンク１とバンク２の変更を確認する。これはバンク１で稼動し続けるシステムプログラム自身が運用の中で変更するファイルを、次回から稼動するバンク２に反映させるためである。同期の基準は、前回起動したバンクに保存されている各ファイルの更新時刻が、今回起動したバンクに保存されている各ファイルの更新時刻より新しい場合である。
【００４６】
図８の場合、図７より起動中のバンクがバンク１、次回起動するバンクがバンク２のため、同期対象となるファイルは、システムファイル２、システムファイル３、ミドルウェア１、ミドルウェア３、アプリケーション３、アプリケーション４、である。今回更新対象であるシステムファイル６およびアプリケーションファイル５が同期対象外であることは言うまでもない。
【００４７】
Ｓ２０５において、同期処理プログラム１０９は、Ｓ２０６で得た同期対象の各ファイルをバンク１からバンク２に複製する。
【００４８】
同期後、バンク２の起動処理に成功した場合（Ｓ２０６のYes）、処理を終了する。バンク２の起動処理に失敗した場合（Ｓ２０６のNo）、制御部１０２は起動管理テーブル１０４を変更し、次回の起動をバンク１に変更し、バンク１のシステムプログラムを起動させる。
【００４９】
以上を纏まると次のようになる。即ち、バンク１（第１の領域）に格納されたシステムプログラム（第１のシステムプログラム）が稼動状態、バンク２（第２の領域）に格納されたシステムプログラム（第２のシステムプログラム）が非稼動状態にある場合に更新指示ファイルを受信したとき、起動管理テーブル１０４（起動管理情報）で示された起動システムプログラムを、第１のシステムプログラムから第２のシステムプログラムに変更する。
【００５０】
次に、変更された起動管理テーブル１０４に基いて、バンク２のシステムプログラムを起動システムプログラムとして更新対象機器１０（情報処理装置）を再起動し、同期管理データベース１０５（同期管理情報）に基いて、バンク１のシステムプログラムが備える複数のファイルと、バンク２のシステムプログラムが備える複数のファイルの同期状態を解析し、バンク２のシステムプログラムが備えるファイルのうち同期状態にないファイルをバンク１のシステムプログラムが備えるファイルと同期させる。
【００５１】
次に、ファイルの同期が完了した後、起動管理テーブル１０４に示された起動システムプログラムを、バンク２のシステムプログラムからバンク１のシステムプログラムに変更し、変更された起動管理テーブル１０４に基いて、バンク１のシステムプログラムを起動システムプログラムとして更新対象機器１０を再起動する。
【００５２】
以上のように、本実施例によれば、冗長性を確保したソフトウェアの部分更新技術を提供することが可能となる。より具体的には、２バンク構成とデータベースを活用し、更新対象機器１０のソフトウェアの部分更新が可能になる。
【００５３】
尚、本実施例ではバンク間の同期がソフトウェア更新後の再起動時のみである場合を説明したが、運用中に同期処理プログラム１０７が同期管理データベース１０５を参照して同期してもよい。その場合、システム再起動時の同期時間が短くなるため、更新によるダウンタイムが短くなるという効果がある。この同期実行間隔は例えば夜間にしたり、管理者が自由に設定してもよい。前者の場合は夜間に更新対象機器１０の利用が少ない場合、更新対象機器１０の負荷が少ないという利点があり、後者の場合、管理者が更新対象機器１０の最も利用されない時間を把握していれば効率的に更新ができるという利点がある。
【００５４】
尚、本実施例では同期管理データベース１０５において、既存のシステムファイル６およびアプリケーションファイル５を更新する場合を用いて説明したが、システムファイルが新規追加される場合でも本実施例の効果は変わらない。システムファイルが新規追加される場合は、追加時にデータベースに登録され、更新処理完了後、一定期間が経過した後の同期処理によってバンク１とバンク２間で同期される。
【００５５】
尚、本実施例では、Ｓ２０６で更新後の起動に失敗した場合、以前起動していたバンク１を再度起動させ、処理が終了する場合を示したが、失敗した場合に更新ファイル配布サーバ２０に対して失敗したことを通知してもよい。通知した場合、更新ファイル配布サーバ２０が複数の更新対象機器１０を管理する場合、失敗通知が来れば再度の実行を試みることが可能になる。
【実施例２】
【００５６】
本発明に係る実施形態２を、図９〜１２を用いて説明する。実施例１では、更新ファイル配布サーバ２０が別に存在し、ネットワーク３０を介してソフトウェアを更新する場合を説明したが、本実施例ではネットワークが存在せず更新対象機器のみでソフトウェアの更新をする場合を説明する。
【００５７】
図９は、本実施例に係るシステムの構成の一例を示した図である。
【００５８】
本実施例に係るシステムは、更新対象機器４０、更新ファイル配布メディア５０から構成される。
更新対象機器４０は、例えばホームゲートウェイ、ネットワークストレージ、Webサーバ、デジタルテレビ、PC（Personal Computer）、携帯電話などであり、外部記録メディアの読み込み機能を有する機器である。更新ファイル配布メディア５０は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  ＳｅｒｉａｌＤｉｓｃ）接続されたメディア、ＭＯ（Ｍａｇｎｅｔｏ  ＯｐｔｉｃａｌＤｉｓｋ）ディスク、フロッピー（登録商標）ディスク、ＳＤカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｔｉｃａｌ  Ｄｉｓｃ）、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）などであり、更新対象機器１０に接続し、更新ファイルを提供するメディアである。
【００５９】
図１０は、更新対象機器４０の構成の一例を示す図である。
【００６０】
図１０の更新対象機器４０のうち、既に説明した図２に示された同一の符号を付された構成と同一の機能を有する部分については、説明を省略する。
【００６１】
接続部４１３は、更新ファイル配布メディア４０と接続するためのコネクタである。メディア実行処理４１４は、更新ファイル配布メディア４０が接続部４１３に接続されたとき、更新ファイル配布メディア４０内の更新指示ファイルを実行するプログラムである。
【００６２】
図１１は、更新ファイル配布メディア５０の構成の一例を示した図である。更新ファイル配布メディア５０はストレージ５０１から構成され、更新指示ファイルと更新対象ファイルを格納する。
【００６３】
図１２は、更新対象機器１０の更新指示ファイル実行シーケンスの一例である。
【００６４】
Ｓ３０１において、制御部は接続部４１３に更新ファイル配布メディア５０が接続されたことを検知する。Ｓ３０２において、メディア実行処理４１４は更新ファイル配布メディア５０がストレージ内に更新指示ファイルを格納しているかを確認する。格納されている場合（Ｓ３０２のYes）、制御部４０２はシステムプログラムを更新させるための準備を行い（Ｓ３０３）、図５のＳ２０１へ進む。更新準備の例として、更新に不要な機能の停止がある。格納されていない場合（Ｓ３０２のNo）、処理を終了する。
【００６５】
Ｓ２０１以降は図５と同一のため説明を省略する。
【００６６】
以上のように、本実施例によれば、ネットワークがない環境においても２バンク構成とデータベースを活用し、更新対象機器４０のソフトウェアの部分更新が可能になる。そのため、ネットワークの接続機能をつけずに更新対象機器４０をより安価に製造できる効果がある。さらに、メディア実行処理４１４が更新配布メディア５０内の更新指示ファイルを自動で検知して更新処理が始まるので、更新対象機器４０の利用者は更新配布メディアを接続するだけでよく、操作が簡単になる効果も期待できる。
【符号の説明】
【００６７】
１０    更新対象機器
２０    更新ファイル配布サーバ
３０    ネットワーク
４０    更新対象機器
５０    更新ファイル配布メディア
１０１  通信部
１０２  制御部
１０３  ストレージ
１０４  起動管理テーブル
１０５  同期管理データベース
１０６  メモリ
１０７  起動判定処理
１０８  更新指示解析処理
１０９  同期処理
１１０  起動処理
１１１  バス
１１２  電源供給部
２０１  通信部
２０２  入力部
２０３  表示部
２０４  制御部
２０５  電源供給部
２０６  ストレージ
２０７  メモリ
２０８  更新指示作成処理
２０９  バス
３０１  更新指示ファイルの実行例
３０２  更新指示ファイルの実行例
３０３  更新指示ファイルの実行例
３０４  更新指示ファイルの実行例
４０１  通信部
４０２  制御部
４０３  ストレージ
４０４  起動管理テーブル
４０５  同期管理データベース
４０６  メモリ
４０７  起動判定処理
４０８  更新指示解析処理
４０９  同期処理
４１０  起動処理
４１１  バス
４１２  電源供給部
４１３  接続部
４１４  メディア実行処理
５０１  ストレージ
【図１】
2014142799.tif 000003
【図２】
2014142799.tif 000004
【図３】
2014142799.tif 000005
【図４】
2014142799.tif 000006
【図５】
2014142799.tif 000007
【図６】
2014142799.tif 000008
【図７】
2014142799.tif 000009
【図８】
2014142799.tif 000010
【図９】
2014142799.tif 000011
【図１０】
2014142799.tif 000012
【図１１】
2014142799.tif 000013
【図１２】
2014142799.tif 000014