(57)【要約】【課題】情報処理装置におけるプログラムの更新が中断された場合にも、中断された位置の近傍からの更新再開を可能とすることを課題とする。【解決手段】更新対象プログラム３１を構成するＮ個の分割データ０〜Ｎ−１の状態を管理するための管理フラグ３２を、不揮発性記憶装置１３に記録し、管理フラグ３２を参照して更新対象分割データを指定し、更新用データ３５を用いて更新対象分割データを更新する情報処理装置において、更新対象プログラム３１の更新が中断された場合、更新再開時に管理フラグ３２を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを更新対象分割データとして指定することとした。【選択図】図２
2010146257.tif 000002
【特許請求の範囲】
【請求項１】
更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段と、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定手段と、
前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段と、
前記更新用データを用いて前記更新対象分割データを更新する更新手段と、を備え、
前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、情報処理装置。
【請求項２】
前記更新対象プログラムと、該更新対象プログラムを置き換える更新プログラムとの差分を取得する差分取得手段を更に備え、
前記更新用データ取得手段は、現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新用データを生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記更新手段による更新の前に、更新対象分割データを所定の退避領域へ退避する分割データ退避手段を更に備える、
請求項１または２に記載の情報処理装置。
【請求項４】
前記情報記録手段は、前記複数の分割データの夫々が、更新が行われていない状態、前記分割データ退避手段による退避が行われた状態、および前記更新手段による更新が完了した状態、の３つの状態を少なくとも含む複数の状態のうち何れの状態であるかを判別するための情報を、前記分割データ管理情報として記録する、
請求項３に記載の情報処理装置。
【請求項５】
コンピュータによって、
更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録ステップと、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定ステップと、
前記更新対象分割データを更新するための更新用データを取得する更新用データ取得ステップと、
前記更新用データを用いて前記更新対象分割データを更新する更新ステップと、が実行され、
前記更新対象分割データ指定ステップでは、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データが特定され、特定された分割データが前記更新対象分割データとして指定される、プログラム更新方法。
【請求項６】
更新プログラムを保持するマスタ装置と、
前記更新プログラムを用いた更新の対象となる更新対象プログラムを保持するスレーブ装置であって、
前記更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる
更新対象分割データを指定する更新対象分割データ指定手段、
前記更新対象プログラムと、該更新対象プログラムを置き換える前記更新プログラムとの差分を取得する差分取得手段、
現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段、および
前記更新用データを用いて前記更新対象分割データを更新する更新手段を備え、
前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、スレーブ装置と、
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの更新方法に関する。
【背景技術】
【０００２】
従来、差分を用いてデータの更新を行うための技術として、例えば、差分展開における旧ファイルの参照状況および新ファイルの更新状況を不揮発メモリに蓄積し、どこまで差分展開が実行されたのかを逐次把握しておくことで、中断時点からの再開を可能とする技術がある（特許文献１を参照）。
【０００３】
また、データの退避を行う技術として、システムメモリに設けた分割領域の容量が不均一な場合にも、システムメモリから不揮発メモリへ退避すべき未退避のデータ量を、電源オフ時に退避可能なデータ量以下に常に抑制するための技術（特許文献２を参照）、および、携帯端末の表示画面を複数に分割して夫々の分割エリアにアプリケーションを割り当て、ある分割エリアからフォーカスが移動した場合に、その分割エリアで表示されていた最終画面を保存し、その分割エリアに割り当てられていたアプリケーションの実行を中断してデータを退避する技術がある（特許文献３を参照）。
【特許文献１】特開２００３−３３７７２３号公報
【特許文献２】特開２００８−９７１６９号公報
【特許文献３】特開２００８−１１７１８１号公報
【特許文献４】特開２００２−３１８６３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、情報処理装置では、プログラムを最新の状態に保つために、プログラムの更新が行われる。また、プログラム更新の利便性を向上させるために、プログラムの更新情報を情報処理装置に随時通知し、更新プログラムがある場合には情報処理装置が自動でプログラムを更新する技術がある。しかし、このようなプログラム更新処理では、情報処理装置の電源断等によって、プログラム更新処理が中断されてしまう場合がある。特に、自動的なプログラム更新は、ユーザにとって更新処理の開始のタイミングが予測困難であるため、更新途中での更新処理中止が発生し易い。特に、電源断等によって突然更新が中断された場合、中断位置を把握することは困難であるため、次回起動時には再度最初からプログラムの更新を行う必要がある。
【０００５】
特に、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等を搭載していない機器のプログラム更新においては、更新プログラムを一旦不揮発性記憶装置にダウンロードして保存しておくことが出来ないため、電源断等によって更新プログラムが消えてしまい、再度データのダウンロードからやり直しを行う必要がある。このような状態は、時間が掛かることに加え、通信コストの面からも不利なものであった。
【０００６】
本発明は、上記した問題に鑑み、情報処理装置におけるプログラムの更新が中断された場合にも、中断された位置の近傍からの更新再開を可能とすることを課題とする。
【課題を解決するための手段】
【０００７】
本発明は、上記した課題を解決するために、更新対象のプログラムを複数の分割データに分割して、これらの分割データの更新状況を管理しながら、分割データ毎に更新を行い、更新再開の際に管理のための情報を参照することで、情報処理装置におけるプログラムの更新が中断された場合にも、中断された位置の近傍からの更新再開を可能にした。
【０００８】
詳細には、本発明は、更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段と、前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定手段と、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段と、前記更新用データを用いて前記更新対象分割データを更新する更新手段と、を備え、前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、情報処理装置である。
【０００９】
ここで、更新対象プログラムとは、情報処理装置にインストールされているプログラムのうち、新たな更新プログラムによる置き換えの対象となるプログラムである。また、本発明において、更新対象プログラムは、複数の分割データからなり、例えば、分割データは、前記更新対象プログラムを所定のデータサイズ毎に区切ることで分割されたデータであってもよい。分割データを、更新対象プログラムを所定のサイズで区切って分割したデータとすることで、分割データを退避したり更新用データを一時的に保存したりする領域の確保が容易となり、また、後述する差分を抽出したり、差分に基づいて更新用データを生成したりする処理が容易になる。但し、分割データは、決まったデータサイズ毎に区切られず、夫々が異なるデータサイズを有してもよい。また、分割データは、更新対象プログラムが記録されている記憶装置におけるアドレスやセクタに基づいて区切られたデータであってもよいし、予め更新対象プログラムにおいて設定された独自の単位で区切られたデータであってもよい。
【００１０】
分割データは、更新対象プログラムの更新処理に際して、分割データ管理情報を用いて管理される。分割データ管理情報は、複数の分割データの夫々の状態を管理するための情報であり、更新対象プログラム更新処理の進行に従って更新され、更新対象分割データを指定する際に参照される。
【００１１】
本発明は、分割データ管理情報を、更新対象プログラム更新処理の進行に従って不揮発性記憶装置に記録することで、更新対象プログラムの更新処理が電源断等の理由により中断した場合にも、更新処理の再開時に、前回中断した分割データから更新を再開することが出来る。特に、本発明では、更新に用いられる更新プログラムに比べてデータサイズの小さい分割データ管理情報が不揮発性記憶装置に記録されるため、更新プログラムを保持するのに十分な容量の不揮発性記憶装置を備えないような情報処理装置においても、更新プログラムの先頭からダウンロードする必要なく、中断位置の近傍から更新用データの取得および更新を再開することが出来る。また、中断位置の近傍から更新用データの取得が再開されるため、ネットワーク越しにデータを取得するような場合にも、通信コストの面で従来の技術に比べて有利である。
【００１２】
また、本発明に係る情報処理装置は、前記更新対象プログラムと、該更新対象プログラムを置き換える更新プログラムとの差分を取得する差分取得手段を更に備え、前記更新用データ取得手段は、現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新用データを生成することで、前記更新用データを生成してもよい。取得された差分を用いて更新用データを生成することで、外部から取得するデータ量を抑制し、更新処理に要するリソースや時間、コスト等を抑制することが出来る。
【００１３】
また、本発明に係る情報処理装置は、前記更新手段による更新の前に、更新対象分割データを所定の退避領域へ退避する分割データ退避手段を更に備えてもよい。分割データ退
避手段を備えることで、更新対象分割データを更新するために消去したタイミングや、更新対象分割データを更新用データで上書きしているタイミングで、電源断等による更新中断が発生した場合にも、退避されたデータを用いて、更新を再開することが可能となる。
【００１４】
また、前記情報記録手段は、前記複数の分割データの夫々が、更新が行われていない状態、前記分割データ退避手段による退避が行われた状態、および前記更新手段による更新が完了した状態、の３つの状態を少なくとも含む複数の状態のうち何れの状態であるかを判別するための情報を、前記分割データ管理情報として記録してもよい。
【００１５】
この場合、更新対象分割データ指定手段は、これらの状態を示す情報を参照することで、更新対象プログラムが更新中であるか否か、および更新中である場合にはどこまで更新が進んでいるかを判断することが出来る。例えば、分割データが先頭から順次更新される場合には、更新対象分割データ指定手段は、退避状態を示す情報が設定されている分割データ、または未処理状態を示す情報が設定されている分割データのうちの先頭の分割データを、前回中断時に更新中であった分割データとして判断することが出来、また、更新対象分割データ指定手段は、この分割データを、更新再開の際の最初の更新対象分割データとして指定することが出来る。
【００１６】
また、本発明は、複数の情報処理装置を備える情報処理システムとしても把握することが可能である。例えば、本発明は、更新プログラムを保持するマスタ装置と、前記更新プログラムを用いた更新の対象となる更新対象プログラムを保持するスレーブ装置であって、前記更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段、前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定手段、前記更新対象プログラムと、該更新対象プログラムを置き換える前記更新プログラムとの差分を取得する差分取得手段、現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段、および前記更新用データを用いて前記更新対象分割データを更新する更新手段を備え、前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、スレーブ装置と、を備える情報処理システムである。
【００１７】
情報処理システムをこのような構成とすることによって、本発明では、更新プログラムを保持するのに十分な容量の不揮発性記憶装置を備えないような情報処理装置をスレーブ装置とし、更新プログラムを保持するのに十分な容量の不揮発性記憶装置を備えるような情報処理装置をマスタ装置とすることで、十分な容量の不揮発性記憶装置を備えないような情報処理装置においても、更新プログラムの先頭からダウンロードする必要なく、中断位置の近傍から更新用データの取得および更新を再開することを可能としている。
【００１８】
更に、本発明は、コンピュータが実行する方法、又はコンピュータを上記各手段として機能させるためのプログラムとしても把握することが可能である。また、本発明は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１９】
本発明によって、情報処理装置におけるプログラムの更新が中断された場合にも、中断
された位置の近傍からの更新再開が可能となる。
【発明を実施するための最良の形態】
【００２０】
本発明に係る情報処理装置、プログラム更新方法およびプログラムの実施の形態について、図面に基づいて説明する。
【００２１】
図１は、本実施形態に係る車載機、および該車載機に含まれる情報処理装置のプログラムを更新するシステムの概略を示す図である。車載機１は、ユーザに対して情報を表示し、ユーザからの入力を受け付けるタッチパネルディスプレイ２、タッチパネルディスプレイ２からのユーザ入力に応じて、タッチパネルディスプレイ２に地図画像等を表示させることでナビゲーションを行うためのナビゲーション装置３、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やラジオ放送波等のソースから音響信号を生成して車内に設置されたスピーカを介してユーザに音響を提供するオーディオ装置４、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）から映像信号および音響信号を生成してタッチパネルディスプレイ２およびスピーカから出力するＤＶＤデッキ５、受信されたデジタル放送波に基づく映像信号および音響信号を生成してタッチパネルディスプレイ２およびスピーカから出力することでユーザにデジタルテレビ放送を視聴させるＤＴＶ装置６、等の各情報処理装置を備え、これらの装置は互いに通信可能に接続されている。
【００２２】
車載機１に備えられる各情報処理装置は、夫々が専用または汎用のプロセッサ、ＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を有し、ＲＯＭまたはＲＡＭに展開されたプログラムをプロセッサが実行することで、夫々の情報処理装置が有する機能を、ユーザまたは接続された他の情報処理装置へ提供するコンピュータである。そして、本実施形態において、各情報処理装置による機能提供のために実行されるプログラムは、ネットワークを介して更新可能となっている。
【００２３】
プログラムの更新は、サーバ９に保存された更新プログラム９１をネットワーク経由でダウンロードし、従前のプログラムを書き換える（通常、上書きされる）ことで行われる。ここで、本実施形態における車載機１には携帯電話端末７接続用のインターフェースが設けられており、車載機１は、このインターフェースを介して接続された携帯電話端末７を用いて、インターネット等のネットワーク越しにサーバ９に接続して更新プログラム９１をダウンロードする。なお、車載機１に設けられる携帯電話端末７接続用のインターフェースは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等の有線インターフェースであってもよいし、Ｂｌｕｅｔｏｏｔｈ等の無線インターフェースであってもよい。
【００２４】
以下、車載機１に備えられた情報処理装置のうち、ＨＤＤを有さないタッチパネルディスプレイ２、オーディオ装置４、ＤＶＤデッキ５およびＤＴＶ装置６のプログラム更新処理について説明する。本実施形態では、ＨＤＤ搭載機器であるナビゲーション装置３が更新処理におけるマスタとして動作し、ＨＤＤ非搭載機器であるタッチパネルディスプレイ２、オーディオ装置４、ＤＶＤデッキ５およびＤＴＶ装置６は、夫々スレーブとして動作する。但し、マスタであるナビゲーション装置３についても、他の情報処理装置と同様、管理フラグ３２によって管理される分割データを順次更新する、以下に説明する更新処理の流れと概略同様の更新処理を行うことが可能である。
【００２５】
図２は、本実施形態に係る更新処理においてマスタとして動作するナビゲーション装置３並びにスレーブとして動作する情報処理装置（例えば、ＤＶＤデッキ５）の構成の概略、および更新対象プログラム３１並びに管理フラグ３２のデータ構成の概略を示す図である。はじめに、車載機に備えられた各装置のうち、ＨＤＤが搭載されているナビゲーション装置３は、ネットワーク経由で、サーバ９に未適用の更新プログラム９１があるか否かを確認し、あればこの更新プログラム９１をダウンロードしてＨＤＤに保存する。ダウン
ロードされる更新プログラム９１には、ナビゲーション装置３自身に適用される更新プログラム９１の他、車載機に接続されたナビゲーション装置以外の装置、即ち、タッチパネルディスプレイ２、オーディオ装置４、ＤＶＤデッキ５、ＤＴＶ装置６等のスレーブへ適用される更新プログラム９１も含まれる。
【００２６】
ここで、本実施形態において、車載機に備えられたナビゲーション装置３以外の装置は、ＨＤＤを備えないため、更新プログラム９１の全体を自装置に保存してから更新処理を行うことが出来ない。このため、本実施形態では、ＨＤＤ搭載機器であるナビゲーション装置３がマスタとして動作し、ＤＶＤデッキ５等のＨＤＤ非搭載機器はスレーブとして動作することで、マスタに保存された更新プログラム９１とスレーブにインストールされている更新対象プログラム３１との差分のみをスレーブにダウンロードすることとしている。
【００２７】
このようにすることで、ＨＤＤ等大容量の不揮発性記憶装置を備えない装置においても、プログラムの更新を行うことが出来る。なお、本実施形態では、ＤＶＤデッキ５等のスレーブ装置がネットワークへの接続機能を有さないため、更新プログラム９１を一旦マスタであるナビゲーション装置へダウンロードして、ここから更新対象プログラム３１と更新プログラム９１との差分データ３３を取得することとしているが、実施の形態によっては、更新対象プログラム３１がインストールされた装置が直接サーバ９に接続することで更新プログラム９１や差分データ３３を取得することとしてもよい。例えば、本実施形態におけるナビゲーション装置５は、携帯電話端末７を制御してネットワークに接続する機能を有するため、スレーブとして動作することなく直接サーバ９に接続して自装置用の更新プログラム９１または差分データ３３を取得することが出来る。
【００２８】
スレーブである情報処理装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＡＭ１２およびＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３を備えるコンピュータである。スレーブのＥＥＰＲＯＭ１３には、スレーブが自装置の各種機能（例えば、スレーブがＤＶＤデッキ５である場合には、ＤＶＤの再生機能）を提供するためのプログラムであって、本実施形態における更新処理による更新の対象となる更新対象プログラム３１と、更新対象プログラム３１の更新状況を管理するための管理フラグ３２（本発明の分割データ管理情報に相当）と、マスタからダウンロードされた差分データ３３と、更新対象プログラム３１に含まれる分割データの退避データ３４と、が記録される。また、スレーブのＲＡＭ１２には、更新対象プログラム３１に含まれる分割データを置換するための更新用データ３５が保持される。
【００２９】
本実施形態において、更新対象プログラム３１は、所定のデータサイズ毎に分割されることで、先頭から０からＮ−１のインデックスが付されたＮ個の分割データに区分けされている。これらの分割データは、後述する更新処理における更新単位である。また、管理フラグ３２は、これら複数の分割データの夫々について、分割データの状態を示すフラグである。管理フラグ３２は、分割データと同数（Ｎ個）用意され、対応する分割データと同一のインデックス（０〜Ｎ−１）が付される。本実施形態では、更新対象プログラム３１を、分割データ単位で更新し、更新の進捗を、管理フラグ３２を用いて管理することで、中断された更新処理を適切な位置から再開することを可能としている。
【００３０】
図３は、本実施形態においてスレーブとして機能する情報処理装置の機能構成を示す図である。本実施形態に係るスレーブは、ＲＯＭまたはＲＡＭ１２に展開されたプログラムをプロセッサが実行することで、更新対象プログラム３１を構成する複数の分割データの状態を管理するための管理フラグ３２をＥＥＰＲＯＭ１３に記録する情報記録部２２と、管理フラグ３２を参照して、更新の対象となる更新対象分割データを指定する更新対象分
割データ指定部２３と、更新対象分割データの更新前に、更新対象分割データを退避領域へ退避する分割データ退避部２４と、更新対象プログラム３１と更新プログラム９１との差分データ３３を取得する差分取得部２５と、現在の更新対象分割データに差分データ３３を反映することで、更新対象分割データを更新するための更新用データ３５を生成する更新用データ取得部２６と、更新用データ３５を用いて更新対象分割データを更新する更新部２７と、を備える情報処理装置として機能する。
【００３１】
なお、本実施形態において、情報記録部２２は、管理フラグ０〜Ｎ−１に、対応する分割データの更新が行われていない状態を示す「未処理」フラグ、対応する分割データが分割データ退避部２４によって退避された状態を示す「退避済」フラグ、および対応する分割データの更新部２７による更新が完了した状態を示す「更新済」フラグ、の何れかを設定する。
【００３２】
図４および図５は、本実施形態に係る情報処理装置の更新処理の流れを示すフローチャートである。本フローチャートに示された処理は、現在情報処理装置にインストールされているプログラムが最新のプログラムでなく、サーバ９に更新プログラム９１があることがナビゲーション装置３によって検知され、更にマスタとして動作するナビゲーション装置３によって、スレーブ用の更新プログラム９１がダウンロードされた場合に開始される。より具体的には、マスタは、スレーブとしての情報処理装置から収集した、情報処理装置上のプログラム（更新対照プログラム３１）のバージョン情報と、サーバ９にアップロードされた更新プログラム９１のバージョン情報とを比較することで、サーバ９にダウンロードすべき更新プログラム９１があるか否かを判断し、バージョン情報が情報処理装置上のプログラムに比べて新しい更新プログラム９１がある場合には、この更新プログラム９１をダウンロードする。
【００３３】
なお、本実施形態では、上述の通りスレーブ装置がネットワークへの接続機能を有さないため、バージョン情報の比較および更新プログラム９１のダウンロードはマスタであるナビゲーション装置が行っているが、実施の形態によっては、更新対象プログラム３１がインストールされた装置が直接サーバ９に接続することでバージョン情報の比較および差分データ３３の取得を行うこととしてもよい。なお、本フローチャートに示された処理の順序は一例であり、本発明の範囲を逸脱しない範囲で、実施の形態に応じて適宜処理順序を変更することも可能である。
【００３４】
ステップＳ１０１では、マスタからのプログラム更新要求が受信される。この時点で、更新処理におけるマスタであるナビゲーション装置３は、サーバ９にスレーブ用の更新プログラム９１があることを検知し、この更新プログラム９１をダウンロードしてナビゲーション装置３のＨＤＤ（図示は省略する）に保存している。また、マスタに対して複数の情報処理装置がスレーブとして接続されている場合、マスタは、スレーブとして動作する情報処理装置に対してプログラム更新要求を送信する前に、ダウンロードされた更新プログラム９１が何れのスレーブ用の更新プログラム９１であるかを判断する必要がある。なお、本実施形態では、更新プログラム９１とともに、更新対象機器の一覧表をダウンロードすることで、ダウンロードした更新プログラム９１が、何れの情報処理装置のための更新プログラム９１であるかを判断することが出来る。より具体的には、マスタは、マスタが予め保持しているスレーブユニット管理テーブルの型番と、更新対象機器の一覧表（型番の一覧表）とを照合することで、ダウンロードされたプログラムが、何れの情報処理装置のための更新プログラム９１であるかを判断する。スレーブとして動作する情報処理装置は、更新プログラム９１をＨＤＤに保存したナビゲーション装置３から送信されたプログラム更新要求を受信し、以降のプログラム更新処理を開始する。その後、処理はステップＳ１０２へ進む。
【００３５】
ステップＳ１０２では、プログラム更新処理が中断されているか否かが判定される。更新対象分割データ指定部２３は、全ての管理フラグを参照することで、プログラム更新処理が中断されているか否かを判定する。より具体的には、全ての管理フラグに「更新済」または「未処理」が設定されている場合、これはプログラム更新処理が開始されていないか、正常に完了したことを示しているため、更新対象分割データ指定部２３は、プログラム更新処理の中断はないと判定する。プログラム更新処理の中断がないと判定された場合、処理はステップＳ１０３へ進む。
【００３６】
これに対して、何れかの管理フラグに「退避済」が設定されている場合、これはプログラム更新処理において、後述する退避処理が完了してから退避された分割データの更新が完了するまでの間（後述するステップＳ１１５からＳ１１８の間）に、電源断等の原因によってプログラム更新処理が中断されたことを示している。このため、更新対象分割データ指定部２３は、プログラム更新処理が中断されていると判定する。また、「退避済」が設定されている管理フラグはないが、「更新済」フラグと「未処理」フラグが混在している場合、これはプログラム更新処理において、全ての分割データについて更新が完了していない状態で、電源断等の原因によってプログラム更新処理が中断されたことを示している。このため、更新対象分割データ指定部２３は、プログラム更新処理が中断されていると判定する。プログラム更新処理が中断されていると判断された場合、処理はステップＳ１０７へ進む。
【００３７】
ステップＳ１０３からステップＳ１０６では、更新対象プログラム３１の全体、即ち分割データ０から分割データＮ−１までの分割データを順次更新するための初期化処理が行われる。より詳細には、ステップＳ１０２でプログラム更新処理の中断がないと判定された場合、はじめに、情報記録部２２は、全ての管理フラグを「未処理」に設定することで、管理フラグを初期化する（ステップＳ１０３）。これは、この後の処理において管理フラグを順次「退避済」または「更新済」へ変更することで、更新処理の進行度合いを把握可能とするためである。
【００３８】
そして、差分取得部２５は、差分データ３３を消去し（ステップＳ１０４）、マスタであるナビゲーション装置３から、更新対象プログラム３１と更新プログラム９１との差分データ３３をダウンロードする（ステップＳ１０５）。即ち、本実施形態では、更新プログラム９１の全体ではなく、差分データ３３のみをダウンロードするため、ＤＶＤデッキ５のような更新対象プログラム３１がインストールされた装置が、大きな容量の記憶装置を有する必要がない。なお、差分データは、更新対象プログラムと更新プログラムとの実行ファイルを機械語で比較して差分を抽出することで得られる。より具体的には、マスタは、情報処理装置上の更新対象プログラム３１と、この更新対象プログラム３１に比べてバージョン情報が新しい更新プログラム９１とを、対象となっている分割データごとに比較して、差分を抽出する。
【００３９】
更に、更新対象分割データ指定部２３は、更新対象分割データを管理するための変数であるインデックスｉに、０を設定する（ステップＳ１０６）。インデックスｉは、分割データｉを現在の更新対象分割データとして示すためのインデックスであり、本実施形態では、分割データ０から順次更新が行われるため、ｉには０が設定される。その後、処理はステップＳ１０８へ進む。
【００４０】
ステップＳ１０７では、中断された更新処理の再開における最初の更新対象分割データが設定される。即ち、ステップＳ１０２でプログラム更新処理が中断されていると判定された場合、更新対象分割データ指定部２３は、「退避済」が設定されている分割データがある場合には、その分割データの番号を、「退避済」が設定されている分割データがない場合には、「未処理」が設定されている分割データのうち最も上位の分割データの番号を
、インデックスｉに設定することで、更新対象分割データを決定する。その後、処理はステップＳ１０８へ進む。
【００４１】
ステップＳ１０８およびステップＳ１２０では、プログラム更新処理が終了したか否かが判定され、終了したと判定された場合には、マスタへの完了通知が行われる。更新対象分割データ指定部２３は、インデックスｉと、更新対象プログラム３１に含まれる分割データの数とを比較することで、全ての分割データについて更新が完了したか否かを判定する（ステップＳ１０８）。即ち、本実施形態ではＮ個の分割データが存在するため、１ずつ加算されることで分割データを先頭から順に更新対象分割データを指定するインデックスｉがＮより小さい間は、更新処理が完了していないことを示し、インデックスｉがＮ以上となった場合には、更新処理が完了したことを示す。インデックスｉがＮ以上である場合、スレーブである情報処理装置は、マスタであるナビゲーション装置３へ、プログラムの更新処理が完了したことを通知し（ステップＳ１２０）、本フローチャートに示された処理は終了する。インデックスｉがＮより小である場合、処理はステップＳ１０９へ進む。
【００４２】
ステップＳ１０９では、更新対象分割データに対応する差分データ３３の有無が判定される。更新用データ取得部２６は、マスタからダウンロードされた差分データ３３を参照し、更新対象分割データ、即ち分割データｉの更新に用いられる差分データ３３があるか否かを判定する。対応する差分データ３３が無い場合、分割データｉの更新は不要であるため、処理はステップＳ１１８へ進む。対応する差分データ３３が有る場合、処理はステップＳ１１０へ進む。
【００４３】
ステップＳ１１０からステップＳ１１２では、更新対象分割データに対応する管理フラグが、「退避済」であるか否かが判定され、判定の結果に従って、分割データｉまたは退避データ３４に基づいて、更新用データ３５が生成される。更新用データ取得部２６は、更新対象分割データに対応する管理フラグ、即ち管理フラグｉが、「退避済」に設定されているか否かを判定する（ステップＳ１１０）。管理フラグｉが「退避済」に設定されている場合、更新対象である分割データｉは後述するステップＳ１１６の処理において消去されているか、または更新途中で破損している可能性があるため、更新用データ取得部２６は、退避データ３４に差分データ３３をマージすることで、分割データｉを更新するための更新用データ３５を生成し、ＲＡＭ１２に保存する（ステップＳ１１２）。ステップＳ１１２における処理の後、処理はステップＳ１１６へ進む。これに対して、管理フラグｉが「退避済」に設定されていない場合、更新対象である分割データｉは更新される前の状態であるため、更新用データ取得部２６は、分割データｉに差分データ３３をマージすることで、更新用データ３５を生成し、ＲＡＭ１２に保存する（ステップＳ１１１）。ステップＳ１１１における処理の後、処理はステップＳ１１３へ進む。
【００４４】
ステップＳ１１３からステップＳ１１５では、更新対象分割データの退避処理が行われる。分割データ退避部２４は、ＥＥＰＲＯＭ１３の退避領域に記録された古い退避データ３４を消去し（ステップＳ１１３）、分割データｉを退避領域にコピーする（ステップＳ１１４）。そして、情報記録部２２は、管理フラグｉに、分割データｉの退避が完了したことを示す「退避済」のフラグを、管理フラグｉに設定する（ステップＳ１１５）。その後、処理はステップＳ１１６へ進む。
【００４５】
ステップＳ１１６およびステップＳ１１７では、更新対象分割データが更新される。更新部２７は、ＥＥＰＲＯＭ１３に記録された分割データｉを消去し（ステップＳ１１６）、消去された領域に、ＲＡＭ１２に用意された更新用データ３５を書き込むことで、分割データｉを更新する（ステップＳ１１７）。その後、処理はステップＳ１１８へ進む。
【００４６】
ステップＳ１１８およびステップＳ１１９では、管理フラグｉが「更新済」に設定され、インデックスｉに１加算される。ステップＳ１０９において分割データｉは更新不要であると判断された場合、および、ステップＳ１１０からステップＳ１１７の処理で分割データｉの更新が完了した場合、情報記録部２２は、分割データｉに対応する管理フラグｉを、「更新済」に設定する（ステップＳ１１８）。そして、更新対象分割データ指定部２３は、インデックスｉに１加算する（インデックスｉをインクリメントする）ことで、更新済みとなった分割データの次の分割データを、新たな更新対象分割データとして指定する（ステップＳ１１９）。その後、処理はステップＳ１０８へ進む。
【００４７】
即ち、ステップＳ１０８からステップＳ１１９に示された処理は、全ての分割データについて差分データ３３の有無が確認され、更新が完了するか、または更新処理が電源断等の原因によって中断されるまで、繰り返される。全ての分割データについて更新が完了すると、スレーブである情報処理装置は、マスタであるナビゲーション装置３へ、プログラムの更新処理が完了したことを通知し（ステップＳ１２０）、本フローチャートに示された処理は終了する。
【００４８】
本実施形態によれば、情報処理装置におけるプログラムの更新が、突然の電源断等によって中断された場合にも、中断された位置の近傍から更新を再開することが可能となる。より具体的には、更新途中で電源断等によって中断された場合にも、図４および図５のフローチャートに示した処理によれば、何れかの管理フラグが「退避済」に設定されているか、または「更新済」の管理フラグと「未処理」の管理フラグとが同時に存在することで、中断時に更新途中であった分割データを把握し、ここから更新を再開することが出来る。また、分割データの消去または上書きの前には、分割データは退避され、「退避済」フラグによってこのことが示されるため、更新対象プログラム内の分割データが破損または消去されている場合にも、退避データ３４を用いて更新を再開することが出来る。
【００４９】
なお、管理フラグが全て「更新済」となるか、または全て「未処理」となるのは、更新が開始されていない場合、または更新が全て完了した場合であるため、更新処理は先頭の分割データから開始されてよい（ステップＳ１０２を参照）。
【図面の簡単な説明】
【００５０】
【図１】実施形態に係る車載機、および該車載機に含まれる情報処理装置のプログラムを更新するシステムの概略を示す図である。
【図２】実施形態におけるマスタ並びにスレーブの構成の概略、および更新対象プログラム並びに管理フラグのデータ構成の概略を示す図である。
【図３】実施形態においてスレーブとして機能する情報処理装置の機能構成を示す図である。
【図４】実施形態に係る情報処理装置の更新処理の流れを示すフローチャートである。
【図５】実施形態に係る情報処理装置の更新処理の流れを示すフローチャートである。
【符号の説明】
【００５１】
１  車載機
３  ナビゲーション装置
３１  更新対象プログラム
３２  管理フラグ
２２  情報記録部
２３  更新対象分割データ指定部
２４  分割データ退避部
２５  差分取得部
２６  更新用データ取得部
２７  更新部
９１  更新プログラム
【図１】
2010146257.tif 000003
【図２】
2010146257.tif 000004
【図３】
2010146257.tif 000005
【図４】
2010146257.tif 000006
【図５】
2010146257.tif 000007
【手続補正書】
【提出日】平成22年4月12日(2010.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくともプログラムの更新に関して管理下にある情報処理装置であるスレーブ装置のための更新プログラムを保持するマスタ装置であって、前記スレーブ装置の一覧であるスレーブ装置管理テーブルを予め保持し、前記更新プログラムと、該更新プログラムが何れのスレーブ装置のための更新プログラムであるかを判断するための更新対象機器情報と、を取得して保持し、前記スレーブ装置管理テーブルと前記更新対象機器情報とを照合することで、取得された前記更新プログラムの適用対象である前記スレーブ装置を判断し、更新プログラムの適用対象であると判断された前記スレーブ装置に対してプログラム更新要求を送信するマスタ装置から前記プログラム更新要求を受けて該更新対象プログラムを更新するスレーブ装置としての情報処理装置であって、
前記更新プログラムを用いた更新の対象となる更新対象プログラムを保持し、
前記更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段と、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定手段と、
前記更新対象プログラムと、該更新対象プログラムを置き換える前記更新プログラムとの差分を取得する差分取得手段と、
現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段と、
前記更新用データを用いて前記更新対象分割データを更新する更新手段と、を備え、
前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、情報処理装置。
【請求項２】
前記更新手段による更新の前に、更新対象分割データを所定の退避領域へ退避する分割
データ退避手段を更に備える、
請求項１に記載の情報処理装置。
【請求項３】
前記情報記録手段は、前記複数の分割データの夫々が、更新が行われていない状態、前記分割データ退避手段による退避が行われた状態、および前記更新手段による更新が完了した状態、の３つの状態を少なくとも含む複数の状態のうち何れの状態であるかを判別するための情報を、前記分割データ管理情報として記録する、
請求項２に記載の情報処理装置。
【請求項４】
少なくともプログラムの更新に関して管理下にある情報処理装置であるスレーブ装置のための更新プログラムを保持するマスタ装置であって、前記スレーブ装置の一覧であるスレーブ装置管理テーブルを予め保持し、前記更新プログラムと、該更新プログラムが何れのスレーブ装置のための更新プログラムであるかを判断するための更新対象機器情報と、を取得して保持し、前記スレーブ装置管理テーブルと前記更新対象機器情報とを照合することで、取得された前記更新プログラムの適用対象である前記スレーブ装置を判断し、更新プログラムの適用対象であると判断された前記スレーブ装置に対してプログラム更新要求を送信するマスタ装置から前記プログラム更新要求を受けて該更新対象プログラムを更新するスレーブ装置としてのコンピュータによって、
前記更新プログラムを用いた更新の対象となる更新対象プログラムを保持する更新対象プログラム保持ステップと、
前記更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録ステップと、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定ステップと、
前記更新対象プログラムと、該更新対象プログラムを置き換える前記更新プログラムとの差分を取得する差分取得ステップと、
現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得ステップと、
前記更新用データを用いて前記更新対象分割データを更新する更新ステップと、が実行され、
前記更新対象分割データ指定ステップでは、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データが特定され、特定された分割データが前記更新対象分割データとして指定される、プログラム更新方法。
【請求項５】
少なくともプログラムの更新に関して管理下にある情報処理装置であるスレーブ装置のための更新プログラムを保持するマスタ装置であって、
前記スレーブ装置の一覧であるスレーブ装置管理テーブルを予め保持する管理テーブル保持手段、
前記更新プログラムと、該更新プログラムが何れのスレーブ装置のための更新プログラムであるかを判断するための更新対象機器情報と、を取得して保持する更新プログラム取得手段、
前記スレーブ装置管理テーブルと前記更新対象機器情報とを照合することで、取得された前記更新プログラムの適用対象である前記スレーブ装置を判断する更新対象装置判断手段、および
更新プログラムの適用対象であると判断された前記スレーブ装置に対してプログラム更新要求を送信する更新要求送信手段を備える、マスタ装置と、
前記更新プログラムを用いた更新の対象となる更新対象プログラムを保持し、前記マスタ装置から前記プログラム更新要求を受けて該更新対象プログラムを更新するスレーブ装
置であって、
前記更新対象プログラムを構成する複数の分割データの状態を管理するための分割データ管理情報を、不揮発性記憶装置に記録する情報記録手段、
前記分割データ管理情報を参照して、前記複数の分割データのうち更新の対象となる更新対象分割データを指定する更新対象分割データ指定手段、
前記更新対象プログラムと、該更新対象プログラムを置き換える前記更新プログラムとの差分を取得する差分取得手段、
現在の更新対象分割データに、前記差分のうち該更新対象分割データに相当する部分を反映することで、前記更新対象分割データを更新するための更新用データを取得する更新用データ取得手段、および
前記更新用データを用いて前記更新対象分割データを更新する更新手段を備え、
前記更新対象分割データ指定手段は、前記更新対象プログラムの更新が中断された場合、更新再開時に前記分割データ管理情報を参照することで更新中断時に未更新であった分割データを特定し、特定された分割データを前記更新対象分割データとして指定する、スレーブ装置と、
を備える情報処理システム。
【請求項６】
前記スレーブ装置は、前記更新手段による更新の前に、更新対象分割データを所定の退避領域へ退避する分割データ退避手段を更に備える、
請求項５に記載の情報処理システム。