(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続されるサーバ装置とクライアント装置とを含むシステムにおいて、前記サーバ装置が備える対象データを前記クライアント装置に配置する対象データの配置方法であって、
前記サーバ装置は、
前記対象データの配信先となる前記クライアント装置の記憶装置に格納されている格納データ内容を特定し、
特定した前記格納データ内容から、前記対象データに類似する類似データを抽出し、  抽出した前記類似データと前記対象データとの差分データと、前記類似データを特定するための、前記クライアント装置の記憶装置内における配置情報と、を作成し、
前記差分データと、前記配置情報と、を含む配信データを前記クライアント装置に送信し、
前記クライアント装置は、
受信した前記配信データに含まれる前記配置情報に従い、前記記憶装置に格納している前記類似データを特定し、
特定した類似データと受信した前記差分データとから、前記対象データを復元する対象データの配置方法であって、
前記サーバ装置は、
前記対象データを圧縮した配信圧縮対象データと、
前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、
前記差分データと前記配置情報とを圧縮しない配信非圧縮差分データと、のデータサイズを比較し、
データサイズが最も小さいデータと、前記圧縮対象を示す圧縮種別IDとを、前記配信データとして送信し、
前記クライアント装置は、前記圧縮種別IDを参照して、前記配信データの復元方法を選択する
ことを特徴とする対象データの配置方法。
【請求項２】
請求項１に記載の、対象データの配置方法であって、
前記サーバ装置は、
特定した前記データ内容から、それぞれが前記対象データの一部分に類似する一つ以上の類似ブロックを抽出し、
抽出した一つ以上の前記類似ブロックを連結することにより前記類似データを作成し、前記配置情報に、前記類似データを作成するために連結する一つ以上の前記類似ブロックの、アドレスとブロックサイズと連結順序とを含め、
前記クライアント装置は、
受信した前記配置情報に従い、前記記憶装置に格納している前記類似ブロックを連結した前記類似データを特定する
ことを特徴とする対象データの配置方法。
【請求項３】
請求項１または２に記載の、対象データの配置方法であって、
前記サーバ装置は、各々の前記クライアント装置を特定する識別情報と、各々の前記クライアント装置に格納されているデータのバージョン情報とを管理し、
前記クライアント装置は、自クライアント装置を特定する識別情報と、自クライアント装置に格納されているデータのバージョン情報とを、前記サーバ装置に送信し、
前記サーバ装置は、前記クライアント装置から受信した前記識別情報と前記バージョン情報とに基づき、前記クライアント装置の記憶装置に格納されているデータの内容を特定する
ことを特徴とする対象データの配置方法。
【請求項４】
請求項１から３のいずれか一に記載の、対象データの配置方法であって、
前記サーバ装置は、
前記対象データと、特定した前記クライアント装置の前記格納データと、前記類似データと、前記差分データと、のいずれか一つ以上の、誤り検知および／または誤り訂正が可能な情報を、前記配信データに含める
ことを特徴とする対象データの配置方法。
【請求項５】
ネットワークを介して接続されるサーバ装置とクライアント装置を備え、サーバ装置が備える対象データをクライアント装置に配置する対象データの配置システムであり、
前記サーバ装置は、
前記対象データの配信先となる前記クライアント装置の記憶装置に格納されている格納データ内容を特定し、
特定した前記格納データ内容から、前記対象データに類似する類似データを抽出し、
抽出した前記類似データと前記対象データとの差分データと、前記類似データを特定するための、前記クライアント装置の記憶装置内における配置情報と、を作成する配信データ作成部と、
前記差分データと、前記配置情報と、を含む配信データを前記クライアント装置に送信する配信部と、を備え、
前記クライアント装置は、
受信した前記配信データに含まれる前記配置情報に従い、前記記憶装置に格納している前記類似データを特定し、
特定した類似データと受信した前記差分データとから、前記対象データを復元する再構築部を備える対象データの配置システムであって、
前記サーバ装置は、
前記対象データを圧縮した配信圧縮対象データと、
前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、
前記差分データと前記配置情報とを圧縮しない配信非圧縮差分データと、のデータサイズを比較し、
データサイズが最も小さいデータと、前記圧縮対象を示す圧縮種別IDとを、前記配信データとして送信し、
前記クライアント装置は、前記圧縮種別IDを参照して、前記配信データの復元方法を選択する
ことを特徴とする対象データの配置システム。
【請求項６】
ネットワークを介して接続されるサーバ装置が備える対象データをクライアント装置に配置する対象データの配置システムに用いるサーバ装置であって、
配信データ作成部と、配信部と、を備え、
前記配信データ作成部は、
前記対象データを圧縮した配信圧縮対象データと、
前記対象データの配信先となるクライアント装置の記憶装置に格納されている格納データ内容を特定し、特定した前記格納データ内容から、前記対象データに類似する類似データを抽出し、抽出した前記類似データと前記対象データとの差分データと、前記類似データを特定するための、前記クライアント装置の記憶装置内における配置情報と、を含む配信非圧縮差分データと、  前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、のいずれかのデータと、を前記配信データとして作成し、
前記配信部は、
前記配信データを前記クライアント装置に送信する
ことを特徴とするサーバ装置。
【請求項７】
ネットワークを介して接続されるサーバ装置が備える対象データをクライアント装置に
配置する対象データの配置システムに用いるクライアント装置であって、
再構築部を備え、
前記再構築部は、
前記対象データを圧縮した配信圧縮対象データと、自クライアント装置の記憶装置に格納されている格納データ内容から抽出された前記対象データに類似する類似データに基づいて作成された、前記類似データと前記対象データとの差分データと、前記類似データを特定するための、自クライアント装置の記憶装置内における配置情報と、を含む配信非圧縮差分データと、  前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、のいずれかのデータと、前記いずれかのデータを識別する圧縮種別IDと、を前記配信データとして前記サーバ装置から受信し、
受信した前記配信データに含まれる前記圧縮種別IDを参照して、前記配信データの復元方法を選択し、前記圧縮種別IDが、前記配信非圧縮差分データまたは前記配信圧縮差分データを示す場合、前記配置情報に従い、前記記憶装置に格納している前記類似データを特定し、
特定した類似データと受信した前記差分データとから、前記対象データを復元することを特徴とする対象データの配置システムに用いるクライアント装置。
【請求項８】
ネットワークを介して接続されるサーバ装置が備える対象データをクライアント装置に配置する対象データの配置システムに用いるサーバ装置として、コンピュータを機能させるプログラムであって、
前記プログラムは、前記コンピュータを、配信データ作成部と、配信部と、を備えるサーバ装置として機能させ、
前記配信データ作成部は、
前記対象データの配信先となるクライアント装置の記憶装置に格納されている格納データ内容を特定し、
特定した前記格納データ内容から、前記対象データに類似する類似データを抽出し、抽出した前記類似データと前記対象データとの差分データと、前記類似データを特定するための、前記クライアント装置の記憶装置内における配置情報と、を作成し、
前記配信部は、
前記差分データと、前記配置情報と、を含む配信データを前記クライアント装置に送信するプログラムであって、
前記サーバ装置は、
前記対象データを圧縮した配信圧縮対象データと、
前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、
前記差分データと前記配置情報とを圧縮しない配信非圧縮差分データと、のデータサイズを比較し、
データサイズが最も小さいデータと、前記圧縮対象を示す圧縮種別IDとを、前記配信データとして送信し、
前記クライアント装置は、前記圧縮種別IDを参照して、前記配信データの復元方法選択することを特徴とするプログラム。
【請求項９】
ネットワークを介して接続されるサーバ装置が備える対象データをクライアント装置に配置する対象データの配置システムに用いるクライアント装置として、コンピュータを機能させるプログラムであって、
前記プログラムは、前記コンピュータを、再構築部を備えるクライアント装置として機能させ、
前記再構築部は、
前記対象データを圧縮した配信圧縮対象データと、自クライアント装置の記憶装置に格納されている格納データ内容から抽出された前記対象データに類似する類似データに基づいて作成された、前記類似データと前記対象データとの差分データと、前記類似データを特定するための、自クライアント装置の記憶装置内における配置情報と、を含む配信非圧縮差分データと、  前記差分データと前記配置情報とを圧縮した配信圧縮差分データと、のいずれかのデータと、前記いずれかのデータを識別する圧縮種別IDと、を前記配信データとして、前記サーバ装置から受信し、
受信した前記配信データに含まれる前記圧縮種別IDを参照して、前記配信データの復元方法を選択し、前記圧縮種別IDが、前記配信非圧縮差分データまたは前記配信圧縮差分データを示す場合、前記配置情報に従い、前記記憶装置に格納している前記類似データを特定し、
特定した類似データと受信した前記差分データとから、前記対象データを復元することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、装置間で、コンテンツやプログラムなどのデータを配信する際のデータ量を削減する技術に関する。
【背景技術】
【０００２】
車上で、ユーザに地図と地図に付随する情報提供や、道案内などのサービスを行う車載機（カーナビ）が一般に利用されている。車載機は車と一体化しており、情報やプログラムの更新頻度が低く、古い機器であってもそのまま使われ、７年から１０年は利用されることが多い。販売店で車載機のプログラムを頻繁に更新することも可能だが、車載機を持ち込む必要があり手間がかかる。
【０００３】
近年では、車載機は携帯電話や無線ルータ等を介して各種サーバに接続可能となり、ネットワークを利用したサービスを提供できる。また、無線ネットワーク接続機能を備えた車載機で常時接続ネットワークを利用したサービスも提供可能になりつつある。
【０００４】
ネットワークを利用したサービスの一つとして、プログラムの配信や更新がある。ネットワークを利用したプログラム更新の仕組みを利用すると、ネットワークを介してネットワークに繋がった全ての車載機に更新を通知できる。さらに、通知を受け取った車載機のユーザが更新の要求をすれば即座に更新を開始でき、更新通知やＣＤ、ＳＤメモリカードの配送などの時間と手間がかからない。
【０００５】
この様にプログラムおよびデータをダウンロードしての更新では、プログラムとデータの更新を行う時間や場所を選ばずにすみ、更新が容易になる。すなわち，ネットワークを利用したプログラム更新システムを構築することによって、不具合対策に関わる更新の効率化、車載機ユーザへの新規機能の迅速な提供が可能となる。
【０００６】
プログラムの配信更新サービスの背景技術として、特開２０１０−７９５４６号公報（特許文献１）、ＵＳ２００３／０２１２７１２号公報（特許文献２）がある。
【０００７】
特許文献1には、「プログラム配信更新システム」について記載されている。このプログラム配信更新システムにより、初版プログラムを含むプログラムの更新を、ネットワークを介して行える様になる。（要約、請求項１および段落番号００１４参照）
特許文献２には、「バイト・レベルのファイル相違検出および更新アルゴリズム」について記載されている。この様なバイナリレベルで原データ（原ファイル）と新データ（新ファイル）の差分を取得する技術により、更新プログラムのダウンロードデータ量を削減でき、ダウンロード時間を短縮できる。（段落番号００２６から００３１参照）
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−７９５４６号公報
【特許文献２】ＵＳ２００３／０２１２７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術は、データ量削減は考慮しておらず、インストールプログラムのサイズが大きい場合は、ダウンロード時間および更新時間が長くなり、車載機の機能を利用できない期間が発生してしまう。また、ダウンロードのためにネットワークの帯域を使い切り、ダウンロード中はネットワークを利用したサービスの快適な利用が困難になることが予想される。また、車載のバッテリの容量は限られており常に長時間通電状態を維持できず、通電期間中に更新を終えられない場合も出てくる。
【００１０】
特許文献２の技術では、初版プログラムをインストールする場合、原ファイルが車載機にない為、原ファイルと新ファイルの差分を取得できず、ダウンロードデータ量を削減できない。
【００１１】
以上の様に、車載機で原データ（原ファイル）を保持しているプログラムの更新に関しては、効率的なプログラムのダウンロード方法、インストール方法とダウンロードデータ量削減方法に関して様々な方法が知られている。しかし、車載機で原データ（原ファイル）を保持していない初版プログラムに関しては有効な方法は知られていない。プログラムだけでなく、車載機の地図やPOI（Point of Interest）情報や電話帳などをはじめとする各種コンテンツについても、同様の課題がある。
【００１２】
したがって、初版のプログラムやコンテンツ（以下、これらをデータと総称する）であっても、配信時のデータ量を削減できる、効率的なダウンロード方法が望まれている。
【課題を解決するための手段】
【００１３】
開示されるのは、コンテンツやプログラム等の配信対象データ（以下、対象データという）を車載機等のクライアント機器へ配置する際のデータ量を削減する、対象データの配置方法、およびその方法を備えた、対象データの配置システムと、配置システムに用いるサーバ装置、クライアント装置、およびそれらに用いるプログラムである。
【００１４】
例えば、ネットワークを介して接続されるサーバ装置とクライアント装置とを含むシステムにおいて、前記サーバ装置が備える対象データを前記クライアント装置に配置する対象データの配置方法が開示される。
【００１５】
上記対象データの配置方法は、より具体的には、
サーバ装置が、対象データの配信先となるクライアント装置の記憶装置に格納されている格納データ内容を特定し、特定した格納データ内容から、対象データに類似する類似データを抽出し、抽出した類似データと対象データとの差分データと、類似データを特定するための、クライアント装置の記憶装置内における配置情報と、を作成し、差分データと、配置情報と、を含む配信データをクライアント装置に送信し、
クライアント装置が、受信した配信データに含まれる配置情報に従い、記憶装置に格納している類似データを特定し、特定した類似データと受信した差分データとから、対象データを復元することを特徴とする。
【００１６】
さらに、上記対象データの配置方法を、
サーバ装置が、特定したデータ内容から、それぞれが対象データの一部分に類似する一つ以上の類似ブロックを抽出し、抽出した一つ以上の類似ブロックを連結することにより類似データを作成し、配置情報に、類似データを作成するために連結する一つ以上の類似ブロックの、アドレスとブロックサイズと連結順序とを含め、
クライアント装置が、受信した配置情報に従い、記憶装置に格納している類似ブロックを連結した類似データを特定する、ように構成してもよい。
【００１７】
さらに、上記対象データの配置方法を、
サーバ装置が、各々のクライアント装置を特定する識別情報と、各々のクライアント装置に格納されているデータのバージョン情報とを管理し、
クライアント装置が、自クライアント装置を特定する識別情報と、自クライアント装置に格納されているデータのバージョン情報とを、サーバ装置に送信し、
サーバ装置が、クライアント装置から受信した識別情報とバージョン情報とに基づき、クライアント装置の記憶装置に格納されているデータの内容を特定する、ように構成してもよい。
【００１８】
さらに、上記対象データの配置方法を、
サーバ装置が、対象データと、特定したクライアント装置の格納データと、類似データと、差分データと、のいずれか一つ以上の、誤り検知および／または誤り訂正が可能な情報を、配信データに含める、ように構成しても良い。
【００１９】
さらに、上記対象データの配置方法を、
サーバ装置が、対象データを圧縮した配信圧縮対象データと、差分データと配置情報とを圧縮した配信圧縮差分データと、差分データと配置情報とを圧縮しない配信非圧縮差分データと、のデータサイズを比較し、データサイズが最も小さいデータと、圧縮対象を示す圧縮種別IDとを、配信データとして送信し、
クライアント装置が、圧縮種別IDを参照して、配信データの復元方法を選択する、ように構成してもよい。
【００２０】
上記態様によれば、車載機の保有しているデータを利用して、通信データ量が削減されるため、通信時間や通信費用を削減できる。
【発明の効果】
【００２１】
開示によれば、データおよび／またはプログラムを含む対象データを配置する際の通信データ量削減が可能になり、その結果、通信時間や通信費用を削減できる。
【図面の簡単な説明】
【００２２】
【図１】実施形態におけるシステムのハードウェア構成を例示する図である。
【図２】車載機101に格納されているデータ群である車載機データ117をサーバ102で管理する車載機データテーブル111の構成の一例である。
【図３】サーバ102において、車載機101に配信する配置情報と差分データを、車載機101から通知される情報から特定できる様に管理する差分データテーブル112の構成の一例である。
【図４】実施形態の配置情報409と差分データ412の構成を例示する図である。
【図５】実施形態のサーバ102において配置情報409と差分データ412を作成する手順を例示する図である。
【図６】実施形態の車載機101において配置情報409と差分データ412から対象データ114を再構築してインストールする手順を例示する図である。
【図７】実施形態の車載機101がサーバ102よりデータをダウンロードしてインストールするシーケンスを例示する図である。
【図８】実施形態の 差分データ801の構成を例示する図である。
【図９】実施形態のサーバ102において配置情報409と差分データ801を作成する手順を例示する図である。
【図１０】実施形態の車載機101において配置情報409と差分データ801から対象データ114を再構築する手順を例示する図である。
【図１１】実施形態の車載機101が102よりデータをダウンロードしてインストールするシーケンスを例示する図である。
【図１２】実施形態の 圧縮技術を利用した配信データの構成を例示する図である。
【図１３】実施形態のサーバ102において、車載機101に配信する配信データを、車載機101から通知される情報から特定できる様に管理する差分データテーブル112の構成の一例である。
【図１４】実施形態のサーバ102において配信データを差分データテーブルに登録する手順を例示する図である。
【図１５】実施形態の車載機101において配信データから対象データ114を再構築する手順を例示する図である。
【発明を実施するための形態】
【００２３】
以下、実施例を図面を用いて説明する。
【実施例１】
【００２４】
本実施例では、サーバに格納された、プログラムや、地図、POI情報や電話帳などの各種コンテンツ（対象データと総称する）のデータ量を削減して、ネットワークを介してサーバに接続された車載機に送信する実施例について説明する。
【００２５】
図1は実施形態の車載機データのダウンロードシステムのハードウェア構成を例示する図である。
【００２６】
図1の車載機データのダウンロードシステムは、車載機101とサーバ102および、それらを接続するネットワーク103を含んで構成される。
【００２７】
サーバ102は、車載機101の保有しているデータ群である車載機データ117から、対象データ114に類似する類似データを抽出し、抽出した類似データを車載機101側で復元するための配置情報を作成し、類似データと対象データ114とを比較し差分をとった差分データを作成し、差分データ及び配置情報を含む配信データを車載機101に配信する。
【００２８】
車載機101は、受信した配信データに含まれる配置情報に従い、保有しているデータ群である車載機データ117から類似データを作成し、作成した類似データと受信した差分データとから対象データ114を再構築（復元ともいう）してインストールする。
【００２９】
なお、本実施例におけるインストールとは、プログラムやコンテンツなどの対象データ114を、後述する不揮発記憶装置105やRAM106に、利用可能な状態で書き込むこと、と定義する。
【００３０】
ネットワーク103は、サーバ102の接続されているネットワークであり、車載機101は、このネットワークを介して、サーバ102に対象データ114を要求してダウンロードする。
【００３１】
車載機101は、CPU104、不揮発記憶装置105、RAM106、入力装置107、表示装置108通信IF109これらを接続するバスなどの内部通信線（バスという）110を含んで構成される。CPU104は、不揮発記憶装置105、RAM106、入力装置107、表示装置108通信IF109、バス110の制御と、その制御に関わる演算を行う。この制御と演算は不揮発記憶装置105またはRAM106に格納されたプログラムに従って行う。
【００３２】
不揮発記憶装置105は、ROMまたはフラッシュメモリ、SDメモリカード、ハードディスクなどで構成される。本実施例では、不揮発記憶装置105は、車載機ID115、車載機データバージョン116、車載機データ117を記憶する。車載機ID115は、車載機101固有のIDである。車載機データバージョン116は、車載機データ117のバージョンであり、車載機ID115と車載機データバージョン116により車載機データ117を特定できる。車載機データ117は、プログラム、ファイル、地図、POI情報など、車載機101がユーザに道案内をはじめとする各種サービスを提供するためのプログラムやデータである。空き領域118は、新しいプログラムやファイルなどの各種データを格納するための領域である。
【００３３】
受信プログラム128と再構築プログラム129は車載機データ117に格納されているデータの一種である。受信プログラム128は、ネットワークを介して、サーバ102に対象データ114の再構築に必要なデータを要求してダウンロードするプログラムであり、再構築プログラム129は、サーバ102からダウンロードしたデータから対象データ114を再構築するプログラムである。
【００３４】
本実施例では、車載機ID115、車載機データバージョン116を除く、不揮発記憶装置105に格納されているデータを全て車載機データ117に含めている例を示しているが、全てのデータが車載機データ117に含まれている必要はない。例えば、受信プログラム128や再構築プログラム129は、車載機データ117に含まない構成でも良い。
【００３５】
RAM106は、DRAMなどの揮発メモリが主に用いられ、CPU104の実行するプログラムや一時記憶情報を格納する。入力装置107は、キーやタッチパネルなどのポインティングデバイス、車載機101の搭載されている車の各種センサであり、ユーザの操作や、車や車を取り巻く外界の状態をCPU104に通知する。表示装置108は、液晶ディスプレイなどで構成され、CPU104の演算結果や地図、POI情報、道案内情報などをユーザに通知する。通信IF109は、ネットワーク103に接続する有線または無線のインタフェースである。通信IF109は直接ネットワーク103に接続するインタフェースでなくとも良い。例えば、携帯電話やパーソナルコンピュータや無線ルータと接続するインタフェースであり、これらの装置を介してネットワーク103に接続しても良い。バス110は、CPU104と不揮発記憶装置105、RAM106、入力装置107、表示装置108通信IF109を接続し、CPU104によってこれらの装置の制御を可能にし、これらの装置からの情報をCPU104に伝達する。
【００３６】
サーバ102は、車載機101と同様に、サーバCPU121、サーバ不揮発記憶装置122、サーバRAM123、サーバ入力装置124、サーバ表示装置125、サーバ通信IF126、サーバ外部記録媒体IF130と、これらを接続するサーババス127などの内部通信線を含んで構成される。
【００３７】
そして、サーバ102は車載機101の保持している車載機データ117と対象データ114の差分を取る必要があるため、車載機ID115と車載機データバージョン116から車載機データ117を取り出せる車載機データテーブル111をサーバ不揮発記憶装置122に備える。また、サーバ102は、車載機101に配信する対象データ114に対応する差分データを取り出せる差分データテーブル112をサーバ不揮発記憶装置122に備える。
【００３８】
対象データ114は、プログラム、ファイル、地図、POI情報などのデータであり、対象データ提供者（または対象データ提供者装置）113より提供され随時追加される。
【００３９】
サーバ102は、これらのテーブルを利用し、車載機101に配信する対象データ114に対応する差分データを生成する配信データ生成プログラム119と、配信データ生成プログラム119によって生成された差分データの登録された差分データテーブル112から対象データ114に対応する差分データを取り出し配信する配信プログラム120を備える。
【００４０】
これらのプログラムは、サーバ不揮発記憶装置122に記憶され、随時、サーバCPU121によって取り出すことが可能である。そして、これらのプログラムはサーババス127を介してサーバRAM123に展開されサーバCPU121によって実行されることにより、以下説明する、サーバ102が備える各機能を実現する。
【００４１】
なお、本実施形態において説明する各処理は、それぞれの装置において、プロセッサが各プログラムを実行することにより具現化される処理部により実現されるものであるが、以下の説明では、便宜上、プログラムを実行主体として説明する。
【００４２】
配信データ生成プログラム119は、対象データ提供者113によるサーバ入力装置124によって操作可能なプログラムであり、その操作結果をサーバ表示装置125に表示する。このサーバ入力装置124とサーバ表示装置125は、ネットワーク103を介してサーバ102に接続したPC等の情報処理装置（図示せず）であっても良い。
【００４３】
配信データ生成プログラム119は、対象データ提供者113によって提供される対象データ114と車載機データテーブル111に格納されている車載機データとの差分をとり、差分データテーブル112に登録するプログラムである。さらに対象データ114含む新しい車載機データを管理する場合は、車載機データテーブル111を更新する。配信プログラム120は、車載機101からのダウンロード要求をサーバ通信IF126を介して受け取り、差分データテーブル112からから対象データ114に対応する差分データを取り出しサーバ通信IF126を介して車載機101へ配信する。
【００４４】
対象データ114は光ディスクや不揮発メモリ媒体などの外部記録媒体に格納され、サーバ外部記録媒体IF130を介してサーバ不揮発記憶装置122に書き込まれる。
【００４５】
具体的には、対象データ提供者113が、サーバ入力装置124を利用して配信データ生成プログラム119を動作させ、サーバ外部記録媒体IF130から、外部記録媒体に格納された対象データ114を読み出して車載機データテーブル111に追加し、差分データテーブル112を更新する。そして、対象データ提供者113は、サーバ表示装置125に表示される差分データテーブル112、車載機テーブル111の更新結果を確認する。
【００４６】
サーバ入力装置124、サーバ表示装置125と外部記録媒体IF130は、ネットワーク103を介してサーバ102に接続したPC等の情報処理装置（図示せず）であっても良い。さらに、対象データ114は、外部記録媒体ではなくネットワーク103を介してサーバ102に接続したPC等の情報処理装置の不揮発記憶装置（図示せず）に格納されていても良い。この場合、対象データ提供者113の操作する配信データ生成プログラム119は、ネットワーク103を介してサーバ102に接続したPC等の情報処理装置の不揮発記憶装置から対象データ114を受け取り車載機データテーブル111に追加し、差分データテーブル112を更新する。
【００４７】
図2は車載機データテーブルを示す図である。これは、車載機101に格納されているデータ群である車載機データ117をサーバ102で管理する車載機データテーブル111の構成の一例である。
【００４８】
「車載機ID」201は車載機固有のIDであり、「車載機データバージョン」202は車載機データのバージョンである。「車載機データ」203は車載機データが記載される。
【００４９】
行204は「車載機ID」が「3」で「車載機データバージョン」が「01」であるものに関する記述であり、行205は「車載機ID」が「3」で「車載機データバージョン」が「02」であるものに関する記述であり、行206は「車載機ID」が「4」で「車載機データバージョン」が「01」であるものに関する記述であり、行207は「車載機ID」が「4」で「車載機データバージョン」が「03」であるものに関する記述である。
【００５０】
例えば、「車載機ID」が「3」で「車載機データバージョン」は「01」であるものの「車載機データ」は「車載機データ_3_01」であり、「車載機ID」が「3」で「車載機データバージョン」は「02」であるものの「車載機データ」は「車載機データ_3_02」であり、「車載機ID」が「4」で「車載機データバージョン」は「01」であるものの「車載機データ」は「車載機データ_4_01」であり、「車載機ID」が「4」で「車載機データバージョン」は「03」であるものの「車載機データ」は「車載機データ_4_03」である。
【００５１】
この様に、これは、車載機101に格納されているデータ群である車載機データ117を特定できる車載機データテーブル111を備えることで、サーバ102は、車載機データ117と対象データ114の差分を取ってデータ量を削減したデータを配信できる。
【００５２】
図3は差分データテーブルを示す図である。これは、サーバ102において、車載機101に配信する「配置情報」304と「差分データ」305を、車載機101から通知される情報から特定できる様に管理する差分データテーブル112の構成の一例である。
【００５３】
図3において、「車載機ID」301は車載機固有のIDである。「車載機データバージョン」302は車載機データのバージョンである。「対象データID」303は対象データを特定できる対象データ固有のIDである。これらのID、バージョンで「配置情報」304、「差分データ」305を管理する事により、様々な種類の車載機や、インストールまたは格納されているプログラムやコンテンツなどのデータの内容や状況が異なる車載機に適した、「配置情報」304と「差分データ」305を選択できる。
【００５４】
ここで、「配置情報」304とは、後ほど図4を用いても説明するが、配信する「差分データ」305を作成する際の比較対象となる類似データを特定する、車載機データ内での配置情報（アドレス、ブロックサイズなど）である。
【００５５】
また、「差分データ」305とは、車載機データから配置情報に従い抽出した類似ブロックを、または、複数の類似ブロックを配置情報に従った順序で連結することにより作成した類似データと、対象データと、の差分データである。
【００５６】
本実施例では、差分データテーブル112に、配信する差分データと配置情報を格納する例を示した。しかしながら、差分データと配置情報は比較的大きなデータとなる為、不揮発記憶装置122に格納するファイルとして作成し、「配置情報」304欄には、対応する配置情報を格納しているファイルを特定するためのファイル名やファイルの格納されているディレクトリのパスを格納し、「差分データ」305欄には、対応する差分データを格納しているファイルを特定するためのファイル名やファイルの格納されているディレクトリのパスを格納するように、構成しても良い。
【００５７】
行306は「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものに関する記述であり、行307は「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものに関する記述であり、行308は「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものに関する記述であり、行309は「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものに関する記述であり、行310は「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものに関する記述であり、行311は「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものに関する記述であり、行312は「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものに関する記述であり、行313は「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものに関する記述である。
【００５８】
例えば、「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものの「配置情報」と「差分データ」は「配置情報_3_01_001」と「差分データ_3_01_001」であり、「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものの「配置情報」と「差分データ」は「配置情報_3_03_002」と「差分データ_3_01_002」であり、「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものの「配置情報」と「差分データ」は「配置情報_3_02_001」と「差分データ_3_02_001」であり、「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものの「配置情報」と「差分データ」は「配置情報_3_02_002」と「差分データ_3_02_002」であり、「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものの「配置情報」と「差分データ」は「配置情報_4_01_001」と「差分データ_4_01_001」であり、「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものの「配置情報」と「差分データ」は「配置情報_4_01_002」と「差分データ_4_01_002」であり、「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものの「配置情報」と「差分データ」は「配置情報_4_02_001」と「差分データ_4_02_001」であり、「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものの「配置情報」と「差分データ」は「配置情報_4_02_002」と「差分データ_4_02_002」である。
【００５９】
この様に差分データテーブル112を用いれば、車載機の種類である「車載機ID」301、車載機にインストールまたは格納され差分取得に利用できるデータを特定する情報である「車載機データバージョン」302、インストールしようとしているデータを特定する「対象データID」303から「配置情報」304と「差分データ」305を特定する事ができる。
【００６０】
すなわち、サーバ102は、様々な種類の車載機や、インストールまたは格納されているプログラムやコンテンツなどのデータの内容や状況が異なる車載機に適した、「配置情報」304と「差分データ」305の選択と配信が可能になる。
【００６１】
図4は実施形態の配置情報と差分データの構成を例示する図である。
【００６２】
対象データ114は、図1の対象データ114に相当するデータであり、図4では、3つのブロックに分割した例を示している。対象データ114を分割した個々のブロックをブロック1_403、ブロック2_404、ブロック3_405とする。ブロック1_403のブロックサイズはブロックサイズ１であり、ブロック2_404のブロックサイズはブロックサイズ２であり、ブロック3_405のサイズはブロックサイズ３である。
【００６３】
車載機データ117は、図1の車載機データ117に相当するデータである。車載機データ117に含まれる、ブロックS1_406、ブロックS2_407、ブロックS3_408は、それぞれブロック1_403、ブロック2_404、ブロック3_405と類似しているブロックであり、差分を取るとそのデータ量は小さくなる。類似の度合いは、差分を取ったときのデータ量で測る以外に、特許文献２で用いられているLCS長（最長共通部分列長）や、SED（最短編集距離）等で知ることができる。
【００６４】
ブロックS1_406、ブロックS2_407、ブロックS3_408それぞれのブロックサイズは、ブロック1_403、ブロック2_404、ブロック3_405と同じサイズであり、ブロックS1_406のブロックサイズはブロックサイズ１であり、ブロックS2_407のブロックサイズはブロックサイズ２であり、ブロックS3_408のブロックサイズはブロックサイズ３である。また、ブロックS1_406の先頭アドレスはアドレス１であり、ブロックS2_407の先頭アドレスはアドレス２であり、ブロックS3_408の先頭アドレスはアドレス３である。
【００６５】
この様に対応を付けると、車載機101は、アドレス１とブロックサイズ１の情報があれば、ブロックS1_406のデータを取り出すことができる。同様に、車載機101は、アドレス２とブロックサイズ２からブロックS2_407を、アドレス３とブロックサイズ３からブロックS3_408を取り出すことができる。この様な、アドレス１、ブロックサイズ１、アドレス２、ブロックサイズ２、アドレス３、ブロックサイズ３を集めた情報を配置情報409とする。
【００６６】
すなわち、配置情報とは、類似データを作成するために用いる一つ以上の類似ブロックを特定する、車載機データ内での配置情報（アドレス、ブロックサイズなど）である。類似データブロックが複数の場合は、その連結順序をも特定する。
【００６７】
この例では、アドレスとブロックサイズの情報で、車載機データ117の一部のブロックを取り出せる例を示しているが、車載機データ117がファイルシステムで管理されている場合は、ファイルの存在しているディレクトリのパス名、ファイル名、ファイルの中のアドレスとブロックサイズの情報で、その一部のブロックのデータを取り出すことができる。車載機データ117から、一部のブロックのデータを取り出せる情報で配置情報409を構成しても良い。また、車載機データ117は車載機101の保持している全てのデータである必要は無く、サーバ102で把握できている車載機101のデータ群であっても良い。
【００６８】
類似データ410は、配置情報409に従って、ブロックS1_406とブロックS2_407とブロックS3_408を連結したデータである。類似データ410は、対象データ114を分割したブロックと同じ大きさのブロックを連結しているため、対象データ114と同じ大きさになる。
【００６９】
差分411は、対象データ114と類似データ410の差分であり、特許文献２で示されているバイト・レベルファイル相違検出アルゴリズム(FIG.1)等で得ることができる。差分データ412は、差分411を含むデータである。
【００７０】
配置情報409と差分データ412は、以上の様に構成される為、車載機101がこれらの情報を得ることができれば、配置情報409から類似データ410を得ることができ、類似データ410と差分データ412から特許文献２で示されているバイト・レベルファイル更新アルゴリズム(FIG.1)等により対象データ114を得ることができる。
【００７１】
図5は、実施形態のサーバ102において、配信データ生成プログラム119が、配置情報409と差分データ412を作成する手順を例示する図である。
【００７２】
まず、配信データ生成プログラム119は、ステップ501において対象データ114を受け取る。
【００７３】
次に、ステップ502において対象データ114を複数のブロックに分割する。図4の例では3つに分割している。
【００７４】
マージ503では、ステップ502または分岐514の処理結果を受けて、ステップ504を実行する。
【００７５】
ステップ504は車載機データ117を車載機データテーブル111から取り出す。
【００７６】
マージ505は、ステップ504または分岐509の処理結果を受けて、ステップ506〜ステップ509を実行し、配置情報を生成する。
【００７７】
ステップ506は、分割した対象データ114から1つのブロックを取り出す。
【００７８】
ステップ507は、ステップ504で取り出した車載機データ117内を探索し、ステップ506で取り出したブロックに類似しているブロックを取り出す。この例では、最も類似しているブロックを探索しているが、サーバ102の処理時間短縮の為、一定以上類似しているブロックが発見できた時点で探索を終了しても良い。一定以上類似しており差分を取ったとき十分小さくなれば、サーバ102の処理時間短縮を優先させても良い。
【００７９】
ステップ508は、ステップ507で得られたブロックのアドレスとブロックサイズを配置情報409に格納する。
【００８０】
分岐509は、対象データ114を分割した全てのブロックに対し、ステップ506、ステップ507、ステップ508を実行したかどうかによって分岐する。全てのブロックに対して処理を終えた場合は、配置情報409の生成が終了したことになり、ステップ510を実行する。全てのブロックに対して処理を終えていない場合は、マージ505に戻り、まだ処理を終えていないブロックに対する処理を続ける。
【００８１】
ステップ510は、ステップ508で作成した配置情報409のアドレスとブロックサイズの情報に従い、類似データ410を作成する。
【００８２】
ステップ511では、差分データ生成処理として、対象データ114とステップ510で作成した類似データ410の差分をとり、差分データ412を作成する。
【００８３】
ステップ512では、ステップ511で作成した差分データ412を差分データテーブル112に追加する。これによって、車載機101から、対象データ114のダウンロード要求があったときに、適切な類似データ410と差分データ412を配信できる様になる。
【００８４】
ステップ513では、対象データ114をステップ504で取り出した車載機データ117に加えた新しい車載機データを車載機データテーブル111に追加する。これによって、ステップ501で受け取った対象データ114をインストールまたは格納済みの車載機101では、次の対象データ量削減に対象データ114も利用できる様になる。このステップは、全ての対象データに対して行われる必要はない。十分多様なデータを車載機101が保有している場合や、サーバ102の記憶装置の容量を削減する様な場合は、実施しないことによってシステムの効率化ができる。
【００８５】
分岐514は、車載機データテーブル111に含まれる全ての車載機データに対し、ステップ504、マージ505、ステップ506、ステップ507、ステップ508、分岐509、ステップ510、ステップ511、ステップ512、ステップ513の処理を実行したかどうかによって分岐する。全ての車載機データに対し処理を終えた場合は、処理を終了する。全ての車載機データに対し処理を終えていない場合は、マージ503に戻り処理を続ける。
【００８６】
図6は、実施形態の車載機101において、再構築プログラム129が、配置情報409と差分データ412から対象データ114を再構築してインストールする手順を例示する図である。
【００８７】
再構築プログラム129は、ステップ601において、車載機101はサーバ102より配置情報409と差分データ412をうけとる。
【００８８】
次に、ステップ602では、ステップ601で受け取った配置情報409記載されているアドレスとブロックサイズで特定されるブロックを車載機データ117から取り出し類似データ410を再構築する。
【００８９】
ステップ603では、ステップ602で再構築した類似データ410とステップ601で受け取った差分データ412から、対象データ114を再構築する。
【００９０】
ステップ604では、ステップ603で再構築した対象データ114を車載機101の不揮発記憶装置105の空き領域118に書き込む。
【００９１】
ステップ605では、対象データ114と車載機データ117を含む新しい車載機データのバージョンを車載機101の不揮発記憶装置105の車載機データバージョン116に書き込む。サーバ102において、ステップ513が行われていない場合は、ステップ605は不要である。
【００９２】
図7は、実施形態の車載機101がサーバ102から配信されたデータをインストールするシーケンスを例示する図である。
【００９３】
最初に、車載機101は、車載機ID、車載機データバージョン送信703をサーバ102に対し行う。次に、サーバ102は、対象データIDリスト返信（配置情報＋差分データサイズ）704を車載機101に対し行う。次に、車載機101は対象データIDリスト表示する処理705を行う。この際、それぞれの対象データIDのデータのダウンロードデータ量またはダウンロードにかかる予測時間も対応を付けて表示するとよい。この様にすると、あらかじめダウンロード時間がわかり、車載機101のユーザがダウンロードをするかの判断をするのに有用である。この実施形態を用いると、対象データ114をインストールすると車載機データ117が変化するため、次の対象データのダウンロードデータ量は、対象データ114をインストール前と異なる。同様に、対象データIDリスト表示を見て複数の対象データIDを選択した場合、選択したIDの組み合わせによって、それぞれの対象データIDのダウンロードデータ量またはダウンロードにかかる予測時間が変化する。
【００９４】
車載機101が対象データIDリスト表示する処理705を行った結果、ユーザがあるインストールIDの対象データを選択した場合は、符号706から符号711の処理を行う。この場合、車載機101は対象データID選択する処理706を行う。次に、車載機101は、車載機ID、車載機データバージョン、対象データIDをサーバ102に対して送信する(707)。次に、サーバ102は、配置情報、差分データを配信データとして車載機101に対して送信する(708)。次に、車載機101はインストール処理709を行う。このインストール処理は、図6の手順に従って行われる。次に、車載機101は、インストール完了通知710をサーバ102に対し行う。次に、サーバ102はインストール完了する処理711を行う。
【００９５】
車載機101が対象データIDリスト表示する処理705を行った結果、ユーザが何れのインストールIDの対象データも選択しなかった場合は、符号712から符号713の処理を行う。この場合、車載機101は対象データID非選択する処理712を行う。最後に、車載機101は、インストール中断通知713をサーバ102に対し行う。
【００９６】
以上の様な、シーケンスでサーバ102と車載機101が処理を進めることによって、車載機101は、車載機101に適した、配置情報409と差分データ412をダウンロードし、対象データ114を再構築してインストールする事ができる。
【００９７】
この様な実施形態をとると原データが車載機101にない、新版プログラムなどのデータのインストールであっても、車載機101の車載機データ117から新版プログラムのデータに似た類似データ410を作ることにより、差分をとってデータ量を削減できる。
【００９８】
また、原データがある場合は、原データのブロックが新データに似ている可能性が高いため、多くの原データのブロックが選択され類似データ410に含まれることが期待できる。よって、上記実施形態においても、従来方法における原データと新データの差分と同等のサイズのデータを配信できる。ただし、原データがある場合は、サーバの負荷低減のため、本実施形態によらず、原データとの差分を配信する様にしても良い。
【実施例２】
【００９９】
本実施例では、差分をとり小さくしたデータをダウンロードしてインストールするだけでなく、車載機データや差分データが破損している場合も、正しい対象データをインストールできる装置の例を説明する。
【０１００】
図8は、実施形態の差分データの構成を例示する図である。図8の構成のうち、既に説明した図4に示された同一の符号を付された構成要素と同一の機能を有する部分については、説明を省略する。
【０１０１】
本実施例の差分データ801は、差分411に加え、対象データチェックサム値802、車載機データチェックサム値803、類似データチェックサム値804、差分データチェックサム値805を含んで構成されている。
【０１０２】
対象データチェックサム値802は、対象データ114のチェックサムをとった値である。車載機101において、再構築した対象データ114のチェックサム値を計算し、対象データチェックサム値802と比較し、一致しなければ対象データ114を正しく再構築できなかった事が分かる。
【０１０３】
車載機データチェックサム値803は、車載機データ117のチェックサムをとった値である。車載機101において、車載機データ117のチェックサム値を計算し、車載機データチェックサム値803と比較し、一致しなければ、車載機データ117が破損している、またはサーバ102において車載機101が保持していると認識している車載機データに誤りがあることが分かる。
【０１０４】
類似データチェックサム値804は、類似データ410のチェックサムをとった値である。車載機101において、再構築した類似データ410のチェックサム値を計算し、類似データチェックサム値804と比較し、一致しなければ、類似データ410を正しく再構築出来なかったことが分かる。
【０１０５】
差分データチェックサム値805は、配置情報409と差分データ412のチェックサムをとった値である。車載機101において、ダウンロードした配置情報409と差分データ412のチェックサムを計算し、差分データチェックサム値805と比較し、一致しなければ正しくデータをダウンロード出来なかったことが分かる。
【０１０６】
この様に、各種チェックサム値を差分データ801に加える事によって、各種データの破損や、処理の失敗を検出する事ができる様になる。この例では、単純なチェックサム値を用いているが、その他の、誤り検知符号を用いても良い。また、誤り訂正符号の様に、車載機101で誤りを検出するだけではなく訂正も可能な符号を付加しても良い。
【０１０７】
また、これらの対象データチェックサム値802、車載機データチェックサム値803、類似データチェックサム値804、差分データチェックサム値805は全て差分データ801に含まれる必要はなく、いずれか一つ以上を含む構成でもよい。車載機データチェックサム値803は、差分データ801ではなく、あらかじめ、不揮発記憶装置105に保持しておいても良い。
【０１０８】
また、これらの誤り検知および／または誤り訂正可能な情報を配信データに含める場合に、差分データの一部としてではなく、その他の場所に含めるよう、構成しても良い。
【０１０９】
図9は、実施形態のサーバ102において、配信データ生成プログラム119が、配置情報409と差分データ801を作成する手順を例示する図である。図9の手順のうち、既に説明した図5に示された同一の符号を付された手順と同一の機能を有する部分については、説明を省略する。
【０１１０】
配信データ生成プログラム119は、ステップ511の次に実行されるステップ901では、対象データチェックサム値802、車載機データチェックサム値803、類似データチェックサム値804、差分データチェックサム値805を計算し、差分データ801に加える。このステップ901のあとにステップ512を実行するので、差分データテーブル112で、チェックサム値を含む差分データを管理でき、車載機101の要求に従って、チェックサム値を含む差分データを配信できる。
【０１１１】
図10は、実施形態の車載機101において、再構築プログラム129が、配置情報409と差分データ801から対象データ114を再構築する手順を例示する図である。図10の手順のうち、既に説明した図6に示された同一の符号を付された手順と同一の機能を有する部分については、説明を省略する。
【０１１２】
再構築プログラム129は、マージ1001はスタートまたはステップ1004またはステップ1015またはステップ1018の処理結果を受けてステップ601を実行する。ステップ1004、ステップ1015、ステップ1018では、ダウンロードした配置情報409と差分データ801が破損していると判断し、配置情報409と差分データ412を受け取り直す処理を進める。
【０１１３】
ステップ1002は、ステップ601で受け取った配置情報409と差分データ801のチェックサム値を計算する。
【０１１４】
分岐1003は、ステップ1002で計算したチェックサム値と、ステップ601で受け取った差分データ801の差分データチェックサム値805と比較する。比較の結果が不一致だった場合はステップ1004に処理をうつし、一致だった場合は、マージ1005に処理をうつす。
【０１１５】
ステップ1004では、ダウンロードした配置情報409と差分データ801が破損していることを示すエラーを、表示装置108に表示し、サーバ102に対し、配置情報409と差分データ801の再送を要求し、マージ1001に処理をうつす。
【０１１６】
マージ1005は分岐1003またはステップ1009の処理結果を受けてステップ1006を実行する。
【０１１７】
ステップ1006では、車載機データ117のチェックサム値を計算する。
【０１１８】
分岐1007は、ステップ1006で計算したチェックサム値と、ステップ601で受け取った差分データ801の車載機データチェックサム値803を比較する。比較の結果が不一致だった場合はステップ1008に処理をうつし、一致だった場合は分岐1010に処理をうつす。
【０１１９】
ステップ1008は、車載機101の車載機データ117が破損していることを示すエラーを、表示装置108に表示し、サーバ102に対し、車載機データを要求する。車載機データが大きい場合は、ユーザにサーバ102のオペレータに車載機データの郵送を依頼する表示を表示装置108に行う様な方法をとることもできる。
【０１２０】
ステップ1009では、破損していない車載機データを受け取り、車載機データ117を破損していないデータに置き換える。
【０１２１】
分岐1010では、車載機101において他にインストール中のデータがないか確認する。これは、他のデータのインストールにより、車載機データ117の内容が変化し、対象データ114を正しく再構築できなくなることを防ぐためである。インストール中のデータがある場合は、ステップ1011に処理をうつし、インストール中のデータのインストール完了まで待機する。
【０１２２】
ステップ1011は、他にインストール中のデータがある事や、他のインストール完了後に、ステップ601で受け取った配置情報409と差分データ801の処理を再開する事を表示装置108に表示し、インストール中のデータのインストール完了まで待機する。
【０１２３】
マージ1012はステップ1011、分岐1010の処理結果を受けて、ステップ602に処理をうつす。
【０１２４】
ステップ1013はステップ602で再構築した類似データ410のチェックサム値を計算する
分岐1014はステップ1013で計算したチェックサム値とステップ601で受け取った差分データ801類似データチェックサム値804と比較する。比較の結果が不一致だった場合はステップ1015に処理をうつし、一致だった場合はステップ603に処理をうつす。
【０１２５】
ステップ1015は、インストール処理中にエラーが発生したことや、エラーの箇所が類似データ410のチェックサム値である事を表示装置108し、サーバ102に対し、配置情報409と差分データ801の再送を要求し、マージ1001に処理をうつす。
【０１２６】
ステップ1016は、ステップ603で再構築した対象データ114のチェックサム値を計算する。
【０１２７】
分岐1017はステップ1016で計算したチェックサム値と、ステップ601で受け取った差分データ801の対象データチェックサム値802を比較する。比較の結果が不一致だった場合はステップ1018に処理をうつし、一致だった場合はステップ604に処理をうつす。
【０１２８】
ステップ1018では、インストール処理中にエラーが発生したことや、エラーの箇所が対象データ114のチェックサム値である事を表示装置108し、サーバ102に対し、配置情報409と差分データ801の再送を要求し、マージ1001に処理をうつす。
【０１２９】
図11は、実施形態の車載機101がサーバ102よりデータをダウンロードしてインストールするシーケンスを例示する図である。図11のシーケンスのうち、既に説明した図7に示された同一の符号を付されたシーケンスと同一の機能を有する部分については、説明を省略する。
【０１３０】
車載機101によるインストール処理709の結果、車載機データエラーと判断した場合、差分データエラーと判断した場合、インストール成功と判断した場合で異なるシーケンスを実行する。車載機データエラーと判断した場合とは、図10の分岐1007において、車載機データのチェックサム値が不一致だった場合である。差分データエラーと判断した場合とは、図10の分岐1003または分岐1014または分岐1017またはでチェックサム値が不一致だった場合である。インストール成功と判断した場合とは、図10の分岐1017でチェックサム値が一致した場合である。
【０１３１】
車載機データエラーと判断した場合、車載機101は、サーバ102に対し車載機ID、車載機データバージョン、対象データID送信(E1)1101を行い、配置情報409と差分データ801の再送を要求する。そして、サーバ102は、車載機101に対し、配信情報、差分データを、配信データとして車載機101へ送信する(1102)。
【０１３２】
差分データエラーと判断した場合、車載機101は、サーバ102に対し車載機ID、車載機データバージョン送信(E2)1104を行い、破損していない車載機データを要求する。この処理は、図10のステップ1008の処理に相当する。そして、サーバ102は、車載機101に対し、車載機データ返信1105を行う。この結果、車載機101は破損していない車載機データを記憶でき、インストール処理を継続する事ができる。
【０１３３】
インストール成功と判断した場合、図7同様にインストール完了通知710とインストール完了711の処理を行う。
【実施例３】
【０１３４】
本実施例では、差分によるデータ量削減だけでなく、圧縮も併用しよりデータ量を削減して、データをダウンロードしてインストールする装置の例を説明する。
【０１３５】
図12は施形態の圧縮技術を利用した配信データの構成を例示する図である。既に説明した図4に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【０１３６】
圧縮を利用して、より小さいデータを配信するため、配信用に圧縮した対象データ（配信圧縮対象データという）1201、配信用に圧縮した差分データ（配信圧縮差分データという）1202、配信用に圧縮しない差分データ（配信無圧縮差分データという）1203を用意する。
【０１３７】
配信圧縮対象データ1201は、圧縮種別ID1204と圧縮対象データ1205を含んで構成される。圧縮種別ID1204は、配信データが配信圧縮対象データ1201である事を表すIDである。圧縮対象データ1205は、対象データ114を圧縮したデータである。この形式の配信データは、車載機データ117に対象データ114との類似部分があまり見いだせない場合に有効である。この場合配置情報409と差分データ412のサイズが十分小さくならず、対象データ114を圧縮した配信圧縮対象データ1201の方が小さくなる場合がある。
【０１３８】
配信圧縮差分データ1202は、圧縮種別ID1206と、圧縮配置情報1207、圧縮差分データ1208を含んで構成される。圧縮種別ID1206は、配信データが配信圧縮差分データ1202である事を表すIDである。圧縮配置情報1207は、配置情報409を圧縮したデータである。圧縮差分データ1208は、差分データ412を圧縮したデータである。この形式の配信データは、車載機データ117に対象データ114との類似部分を多く見いだすことができ、さらに圧縮によりデータ削減できる場合に有効である。
【０１３９】
配信無圧縮差分データ1203は、圧縮種別ID1209と配置情報409、差分データ412を含んで構成される。圧縮種別ID1209は、配信データが配信無圧縮差分データ1203である事を表すIDである。この形式の配信データは、車載機データ117に対象データ114との類似部分を多く見いだすことができ、圧縮によりデータが削減できない場合に有効である。
【０１４０】
以上の様に、圧縮と差分取得技術を組み合わせて得られる構成の配信データを用意し、最も小さい形式の配信データを配信する事で、小さなデータを配信する事ができる様になる。また、配信データに圧縮種別IDを備えることで、配信データが配信圧縮対象データ1201であるか、配信圧縮差分データ1202であるか、配信無圧縮差分データ1203を判別でき、車載機101は、適切な復元方法を選択してダウンロードした配信データから対象データ114を再構築できる。
【０１４１】
図13は、サーバ102において、車載機101に配信する「配信データ」1301を、車載機101から通知される情報から特定できる様に管理する差分データテーブル112の構成の一例である。既に説明した図3に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【０１４２】
行1302は「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものに関する記述であり、行1303は「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものに関する記述であり、行1304は「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものに関する記述であり、行1305は「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものに関する記述であり、行1306は「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものに関する記述であり、行1307は「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものに関する記述であり、行1308は「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものに関する記述であり、行1309は「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものに関する記述である。
【０１４３】
「配信データ」1301は車載機データに対する配信データが記載される。例えば、「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものの「配信データ」は「配信データ_3_01_001」であり、「車載機ID」が「3」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものの「配信データ」は「配信データ_3_01_002」であり、「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものの「配信データ」は「配信データ_3_02_001」であり、「車載機ID」が「3」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものの「配信データ」は「配信データ_3_02_002」であり、「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「001」であるものの「配信データ」は「配信データ_4_01_001」であり、「車載機ID」が「4」で「車載機データバージョン」は「01」であり、「対象データID」は「002」であるものの「配信データ」は「配信データ_4_01_002」であり、「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「001」であるものの「配信データ」は「配信データ_4_02_001」であり、「車載機ID」が「4」で「車載機データバージョン」は「02」であり、「対象データID」は「002」であるものの「配信データ」は「配信データ_4_02_002」である。
【０１４４】
この様に差分データテーブル112は、車載機の種類である「車載機ID」301、車載機にインストールされ差分取得に利用するデータを特定する情報である「車載機データバージョン」302、インストール仕様としているデータを特定する「対象データID」303から「配信データ」1301を特定する事ができる。これによって、サーバ102は、様々な種類の車載機や、インストールされているデータの内容や状況の異なる車載機に適した、「配信データ」1301を選択して配信できる。
【０１４５】
図14は、実施形態のサーバ102において、配信データ生成プログラム119が、配信データを差分データテーブル112に登録する手順を例示する図である。
【０１４６】
配信データ生成プログラム119は、ステップ1401は配信圧縮対象データを作成する。ステップ1402は配信圧縮差分データを作成する。ステップ1403は、配信無圧縮差分データを作成する。
【０１４７】
分岐1404は、ステップ1401、ステップ1402、ステップ1403で作成された配信データのサイズを比較する。ステップ1401で作成した配信圧縮対象データが最も小さい場合はステップ1405に処理をうつし、ステップ1402で作成した配信圧縮差分データが最も小さい場合は、ステップ1406に処理をうつし、ステップ1403で作成した配信無圧縮差分データが最も小さい場合は、ステップ1407処理をうつす。
【０１４８】
ステップ1405はステップ1401で作成した配信圧縮対象データを差分データテーブル112に登録する。ステップ1406はステップ1402で作成した配信圧縮差分データを差分データテーブル112に登録する。ステップ1407はステップ1403で作成した配信無圧縮差分データを差分データテーブル112に登録する。マージ1408はステップ1406、ステップ1405、ステップ1407いずれか終了によって登録処理を終了する。
【０１４９】
以上の様に差分データテーブルに配信データを登録することにより、車載機により小さなデータを配信する事が可能となる。
【０１５０】
図15は、実施形態の車載機101において、再構築プログラム129が、配信データから対象データ114を再構築する手順を例示する図である。
【０１５１】
再構築プログラム129は、分岐1501は配信データの圧縮種別IDを確認する。圧縮種別IDが配信圧縮対象データであることを示している場合はステップ1502に処理をうつし、圧縮種別IDが配信圧縮差分データである事を示している場合はステップ1503に処理をうつし、圧縮種別IDが配信無圧縮差分データである事を示している場合はステップ1504に処理をうつす。
【０１５２】
ステップ1502は、配信圧縮対象データ1201の圧縮対象データ1205を伸張し、対象データ114を取り出す。ステップ1503は、配信圧縮差分データ1202の圧縮配置情報1207と圧縮差分データ1208を伸張し、配置情報409と差分データ412を取り出す。ステップ1504は、配信無圧縮差分データ1203から配置情報409と差分データ412を取り出す。マージ1505はステップ1503、ステップ1504の処理完了をうけ、ステップ1506に処理をうつす。
【０１５３】
ステップ1506は、ステップ1503またはステップ1504で取り出された配置情報409と差分データ412を利用し対象データ114を図6の手順に従い再構築する。マージ1507はステップ1506、ステップ1502いずれかの処理完了を受け処理を終了する。
【０１５４】
以上の様に、車載機101は、配信データに圧縮種別IDより、配信データが配信圧縮対象データ1201であるか、配信圧縮差分データ1202であるか、配信無圧縮差分データ1203を判別でき、適切な方法を選択してダウンロードした配信データから対象データ114を再構築できる。
【符号の説明】
【０１５５】
101：車載機、102：サーバ、103：ネットワーク、104：CPU、105：不揮発記憶装置、106：RAM、107：入力装置、108：表示装置、109：通信IF、110：バス、111：車載機データテーブル、112：差分データテーブル、113：対象データ提供者、114：対象データ、115：車載機ID、116：車載機データバージョン、117：車載機データ、118：空き領域、201：「車載機ID」、202：「車載機データバージョン」、203：「車載機データ」、301：「車載機ID」、302：「車載機データバージョン」、303：「対象データID」、304：「配置情報」、305：「差分データ」。
【図１】
0005696018.tif 000002
【図２】
0005696018.tif 000003
【図３】
0005696018.tif 000004
【図４】
0005696018.tif 000005
【図５】
0005696018.tif 000006
【図６】
0005696018.tif 000007
【図７】
0005696018.tif 000008
【図８】
0005696018.tif 000009
【図９】
0005696018.tif 000010
【図１０】
0005696018.tif 000011
【図１１】
0005696018.tif 000012
【図１２】
0005696018.tif 000013
【図１３】
0005696018.tif 000014
【図１４】
0005696018.tif 000015
【図１５】
0005696018.tif 000016