(57)【要約】【課題】  論理的には小さな修正でも物理的には大きな修正となるフォーマットによるデータの配信量を削減する。【解決手段】  論理記述情報を表した変換前の入力データを変換して計算機が読取って動作可能なデータとした変換後の格納データを記憶する記憶部１５と、上記記憶している変換後の格納データを読み出して逆変換１３３を行い、該逆変換後のデータに上記変換前の入力データの変化分である差分情報を適用１３５して新版入力データを得て、得た該新版入力データを変換１３７して変換後の新版格納データを得て、得た該変換後の新版格納データで上記記憶部にある元の変換後の格納データを置換える差分適用部１４、とを備えた。【選択図】        図４
2006004125.tif 000002
【特許請求の範囲】
【請求項１】
論理記述情報を表した変換前の入力データを変換して計算機が読取って動作可能なデータとした変換後の格納データを記憶する記憶部と、
上記記憶している変換後の格納データを読み出して逆変換を行い、該逆変換後のデータに上記変換前の入力データの変化分である差分情報を適用して新版入力データを得て、得た該新版入力データを変換して変換後の新版格納データを得て、得た該変換後の新版格納データで上記記憶部にある元の変換後の格納データを置換える差分適用部、とを備えたことを特徴とする差分適用組込み機器。
【請求項２】
差分情報は、変換前の入力データの変化分を与えることに代えて、変換後の格納データを逆変換した差分中間データとし、
差分適用部は、記憶部より読み出した格納データを逆変換して中間データを生成し、該生成した中間データに上記差分中間データを適用して新版入力データを得るようにしたことを特徴とする請求項１記載の差分適用組込み機器。
【請求項３】
論理記述情報は地図データであり、格納データは組込み機器が処理可能なように地図データを変換したデータであり、
差分適用部が行う変換は、上記格納データから地図データへの変換、であることを特徴とする請求項１記載の差分適用組込み機器。
【請求項４】
論理記述情報はプログラムまたはデータであり、該プログラムまたはデータを圧縮して格納データとし、
差分適用部が行う逆変換は、上記圧縮に対応する解凍であること、を特徴とする請求項１記載の差分適用組込み機器。
【請求項５】
論理記述情報は、プログラムであり、該プログラムをコンパイルして格納データとし、
差分適用部が行う逆変換は、逆コンパイルであること、を特徴とする請求項１記載の差分適用組込み機器。
【請求項６】
差分情報は、変更前後における変換後の格納データ間の変更情報に比べて、変更前後における変換前の入力データ間の変更情報が少ない入力データ間の差分情報とし、
組込み機器は通信部を備え、該通信部経由で上記差分情報を得て差分適用部に転送することを特徴とする請求項１記載の差分適用組込み機器。
【請求項７】
変更後の論理記述情報を表した変換前の入力データに対し、変更前の上記論理記述情報を表した変換前の入力データとの差分情報を抽出する差分抽出装置と、
上記変換前の入力データを変換して計算機が読取って動作可能なデータとした変換後の格納データを記憶する記憶部と、記憶している上記変換後の格納データを読み出して逆変換を行い、該逆変換後のデータに上記差分情報を適用して新版入力データを得て、得た該新版入力データを変換して変換後の新版格納データを得て、得た該変換後の新版格納データで上記記憶部にある元の変換後の格納データを置換える差分適用部、とを備えた差分適用組込み機器と、
で構成されることを特徴とする差分適用組込み機器システム。
【請求項８】
差分抽出装置は、格納データを逆変換して論理記述情報を表した変換前の入力データを得るようにして、得た該変換前の入力データに対して差分情報を得るようにしたことを特徴とする請求項７記載の差分適用組込み機器システム。
【請求項９】
論理記述情報を表した変換前の入力データを変換して計算機が読取って動作可能なデータとした変換後の格納データを記憶する記憶部を備えた組込み機器の格納データ変更方法において、
上記記憶している変換後の格納データを読み出す読出しステップと、
上記読み出した変換後の格納データを逆変換する逆変換ステップと、
上記逆変換後のデータに上記変換前の入力データの変化分である差分情報を適用して新版入力データを得るステップとて
上記得た新版入力データを変換して変換後の新版格納データを得るステップと、
上記得た変換後の新版格納データで上記記憶していた元の変換後の格納データを置換える置換えステップ、とを備えたことを特徴とする組込み機器の格納データ変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載端末や携帯電話などの組込み機器の記憶装置に格納された記憶データを更新する際の、記憶データの効率的な更新を行う差分抽出と適用方法、装置に関するものである。
【背景技術】
【０００２】
組込み機器内の記憶データを更新するシステムの第１の従来例として、例えば特許文献１の「道路地図修正データ供給装置」によれば、車載端末上の地図データを対象とした差分更新技術が記載されているが、差分データの抽出方法については触れられておらず、また差分データの旧データに対する適用方法に関しては単に差分データをそのまま旧データに適用することのみ記述されている。
また第２の従来例として、特許文献２の「情報処理装置および方法、並びに記録媒体」によれば、組込み機器に組み込まれたプログラムのバージョン間の差分データを用いた更新の方法が開示されているが、差分データを圧縮して配信することによって配信する量を小さくする方法であって、差分データそのものを小さくすることに関しては触れられていない。
第３の従来例として、特許文献３の「地図データの処理装置及び方法」によれば、異なる地図情報から一致度を判定して標準地図とするにあたり、これら二つの地図情報の違いのみに着目して差分とすることが示されている。そして差分の採、不採は他の論理に頼っている。
【０００３】
ところで、組込み機器の記憶装置に格納された記憶データを更新するための差分データ配信手段として、従来はＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体を用いる方法や、パーソナル・コンピュータ（ＰＣ）とケーブル接続してＰＣから差分データを転送する方法が主流であったが、近年になってネットワーク、特に無線網を用いて差分データを配信する方法が普及し始めている。無線網のように、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体や、ＰＣとのケーブル接続と比較して、データ転送速度が劣る方法においては、配信する差分データは小さいことが望まれる。即ちデータ送受信の頻度が高い無線網においては、チャネルの有効利用を図るためにも、また処理時間を短縮するためにも、送受信データ量が少いシステムが望まれている。
一方、配信を受ける組込み機器では、その処理能力が向上して、従来は配信元で実施していた差分データを更新する際の関連処理を、代わりに担当できるようにパワー・アップされている。
【特許文献１】特開平７−９２９０６号公報
【特許文献２】特開２００１−１６６９４１号公報
【特許文献３】特開２００２−１６６９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の差分データ配信装置は上記のように構成されており、最終的に組込み機器内で使用するメモリ量が少なくなること、または更新処理が効率的に行えることを目的にしており、そのことが直接、配信元からの配信データ量の削減につながる配慮はなされていない。即ちむしろ組込み機器での処理負荷が軽くなるように、予め配信元で多くの処理を実施することに力点が置かれている。従って上記各従来例では、配信時における差分データを小さくすることについては言及されていない。
即ち一般的に上記目的で処理をすることが前提となっており、組込み機器の格納データに修正を加えた場合に、その修正が論理的には小さなものであっても、物理的な実格納データとしては修正内容が大きくなり、配信データ量が多くなるという課題がある。
【０００５】
本発明は上記課題を解決するためになされたもので、論理的には小さな修正でも物理的には大きな修正となるフォーマットのデータを更新する際の、差分更新用データのサイズ及び配信量を削減することを目的とする。詳しくは、データ更新時の旧版データと新版データの間の差分情報を論理的な情報をもとに抽出することで、差分データのサイズを小さく表現して、この小さな差分データを配信して、配信先で元の詳細基準データと比較して詳細差分を復元し、新版データとすることで交信量と交信時間を減らすことを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る差分適用組込み機器は、論理記述情報を表した変換前の入力データを変換して計算機が読取って動作可能なデータとした変換後の格納データを記憶する記憶部と、
上記記憶している変換後の格納データを読み出して逆変換を行い、該逆変換後のデータに上記変換前の入力データの変化分である差分情報を適用して新版入力データを得て、得た該新版入力データを変換して変換後の新版格納データを得て、得た該変換後の新版格納データで上記記憶部にある元の変換後の格納データを置換える差分適用部、とを備えた。
【発明の効果】
【０００７】
以上のように計算機が読取可能なデータである変換後の格納データを記憶し、その変更を格納データの逆変換と、この逆変換後のデータへの差分情報の適用と、適用で得た新版入力データの変換で行うようにしたので、差分情報を少なく出来て、交信量と時間を減らす効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
組込み機器への配信データ量を少なくした差分データ配信装置、差分適用装置、システムを図に基づいて説明する。
図１は、本発明の実施の形態１における差分データ抽出装置と適用装置を含むシステムの概念を示すブロック図である。また図２は配信元の開発装置の構成を示す図であり、図３は同じく配信元にある差分データを得るための差分抽出装置の構成を示す図である。また図４は、配信を受ける組込み機器の構成を示す図である。
先ずシステムの構成を説明する。図１において、開発装置１１は入力データから格納データを生成する装置であり、開発装置１１で生成された最初の格納データ１６は、組込み機器１３内の読み書き可能な記憶装置１５に製品出荷時に格納される。配信側にある差分抽出装置１２は、組込み機器１３の（旧版）格納データ１６にバージョンアップが発生した際に使用される装置であり、旧版格納データ１６と新版格納データ１８の間の差分データ１７を抽出し、この抽出した差分データを配信先の組込み機器１３に送信する。送信を受けた組込み機器１３では、内蔵する差分適用装置（部）１４が旧版格納データ１６を逆変換して送信された差分データと比較し、差分データを反映した変換前新版入力データを作成し、これを変換して新版格納データ１８を生成して記憶装置（部）１５に書き込む。
なお、開発装置１１と差分抽出装置１２は同一の機器上にあっても、異なる機器上にあってもよい。
【０００９】
本実施の形態における主旨である、配信する差分データ量を少なくするため、差分抽出装置１２と、組込み機器１３の差分適用装置１４に特徴がある。
なお図２に示す開発装置１１は、組込み機器の出荷時に組込み機器１３に組込む最初の格納データ１６を生成するために、変換前の入力データ１１１を変換機能１１３で変換して、格納データ１１２を生成するが、組込み機器に格納された状態では最初の格納データ１６となる。
また図３に示す本実施の形態における差分抽出装置１２は、旧版入力データを記憶しておき、以後のバージョンアップに対して、記憶している旧版入力データ１２１と新版入力データ１２２とから入力データ差分抽出機能１２３を用いてバージョンアップするための変換前のフォーマットで差分データ１７を生成する。
【００１０】
一方、組込み機器１３は、新規な要素である差分適用装置１４と、記憶装置１５と、図示していないＣＰＵと、メモリと、差分抽出装置１２と交信する通信部とを持ち、記憶装置１５に記憶される格納データ１６を用いてさまざまな処理を行う。また、図４や以降の図１８の構成において、逆変換機能等の機能は、図示しないプログラムメモリに記述されたプログラムを上記ＣＰＵが実行して、これらの処理を行うものである。これは以降の実施の形態２，３においても同様である。また、旧版入力データや差分データ等のデータは、同じく上記メモリ中にこれらのデータを一時記憶したものを指す。しかし本実施の形態では、差分抽出装置１２が抽出した差分データ１７を通信部相当で受け取り、格納データ１６を更新するバージョンアップの動作を中心に説明する。
差分適用装置１４は通信部相当により、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの外部記憶媒体や、無線網などのネットワークを経由して得た差分データ１７を用いて、格納データをバージョンアップして新版格納データ１８として記憶装置１５に書き込む。バージョンアップ後は、組込み機器１３ではこのバージョンアップされた新版格納データ１８を、以後は格納データ１６として処理対象にする。
【００１１】
上記の主旨である、配信する差分データ量を少なくするために、組込み機器側では多少の負荷が増え、差分適用装置１４が必要となる。
図４は、本実施の形態における組込み機器の構成を示す機能ブロック図である。また図５は、フローで表した差分適用装置１４の動作を示す図である。これらの図において、差分適用装置１４の差分受信機能１３１により、Ｓ１３１で差分抽出装置１２が抽出した変換前の差分データ１７を受信する。また記憶装置１５から旧版格納データ１６をデータ読出し機能１３２によりＳ１３２で読み出し、逆変換機能１３３によりＳ１３３で逆変換して、変換前の旧版入力データ１３４を生成する。この旧版入力データ１３４は、図３の旧版入力データ１２１と全く同一、もしくは論理的に同一である。従って差分データ適用機能１３５により変換前の差分データ１７を旧版入力データ１３４に適用すると、図３の新版入力データ１２２と全く同一、もしくは論理的に同一である新版入力データ１３６をＳ１３６で生成することができる。
【００１２】
変換機能１３７は、Ｓ１３７でこの新版入力データ１３６を変換して新版格納データ１８を得る。データ書込み機能１３８がこの新版格納データ１８をＳ１３８で記憶装置１５に書き込む。書き込み方法として、データ書込み機能１３８は記憶装置１５にある旧版格納データ１６に新版格納データ１８を上書きするか、もしくは記憶装置１５の旧版格納データ１６とは別領域に新版格納データ１８をいったん書き込む。そして差分適用装置１５の処理が完了した後に、書き込み機器が新版格納データ１８を処理対象のデータ、つまり旧版格納データ１６として扱う。
【００１３】
以上の処理により、組込み機器１３はバージョンアップした格納データを用いて処理を行うことができる。また、差分データが大きくなる変換後の格納データ間での差分ではなく、差分データが小さくなる変換前の入力データ間での差分を用いていることから、差分抽出装置１２から差分適用装置１４に送信する差分データ１７のサイズを小さくすることができる。
【００１４】
次に変換前と変換後のフォーマットの例を、具体的な地図データを例にとって図６ないし図１４を用いて説明する。
図６（ａ）は旧版地図、図６（ｂ）は新版地図のイメージ図である。それぞれの地図イメージは地図データ全体のうち一部のメッシュを示しており、旧版地図４１においてＡ〜Ｈに割り振られている小さい丸印をノード、Ａ−Ｂ間、Ｂ−Ｃ間など二つのノードを結ぶ線をリンク、Ａ−Ｂ−Ｃ−Ｄ−Ｅなどのリンク列をルートと呼ぶ。リンク、ルートは例えば地図上の道路を示している。旧版の地図４１では二つのルートＡ−Ｂ−Ｃ−Ｄ−Ｅ、Ｆ−Ｂ−Ｇ−Ｈが存在しており、ノードＢで二つのルートが交差している。
そして、旧版地図４１から新版地図４２へのバージョンアップで新しいルートＪ−Ａ−Ｋが追加され、それによって旧版のルートＡ−Ｂ−Ｃ−Ｄ−Ｅ上に新しいノードＩが追加されている。
【００１５】
図７は、旧版地図４１における変換前の入力データの例を示している。
各ルートに対してそれぞれ番号が割り振られ（ルートＡ−Ｂ−Ｃ−Ｄ−Ｅがルート１、Ｆ−Ｂ−Ｇ−Ｈがルート２）、ルートごとにノード情報が記述されている。ルート上の各ノードはルート内での出現順に示され、各ノードにはメッシュ内での相対座標（メッシュの左下座標を０，０とする）がノード情報として記述されている。
【００１６】
図８は、旧版地図４１における変換後の格納データの例を示している。格納データはルート情報５２とノード情報５３から構成される。
ルート情報５２には各ルートのリンクＩＤ、開始ノードＩＤ、終了ノードＩＤが記述される。リンクＩＤは各ルート内の出現順に連番で割り当てられる（１−１の次は１−２、１−２の次は１−３）。また開始ノードＩＤと終了ノードＩＤは、ノード情報５３に記載されたノードＩＤを示す。ノード情報５３には、メッシュ上の全ノードの情報が記述される。このノード情報５３でのノードの記述順序は、先ずＹ座標でソートした後、Ｙ座標が同じものについてはＸ座標についてソートした順序で記述される。またノードＩＤは、ソート順序どおりに連番で割り当てられる。
【００１７】
図９は、新版地図４２の変換前の入力データを示し、図１０は新版地図４２の変換後の格納データを示している。旧版地図４１から新版地図４２にバージョンアップした際に追加されるノード、リンク、ルートの情報がフォーマットに従って追加されている。
ここで旧版地図の格納データであるルート情報５２とノード情報５３と、新版地図の格納データであるルート情報６２とノード情報６３と、の間で差分情報を抽出した場合の差分データの例を図１１に示す。格納データのノード情報はソートされた順序で連番のノードＩＤが割り振られるため、旧版格納データのノード情報５３のノードＩＤ３〜８は、新版においてノードＩＤが変更になる。このように書き込み機器側の負荷を減らすために、予め配信元でノード番号を付け直した差分データを送るようにしているのが通例である。従って図６のイメージでは、追加は簡単なルートが１本あるだけであるが、処理としては１７行にも及ぶ大規模な変更または追加の処理が必要となる。
こうして、旧版格納データのノードＩＤ４では、ルート１のノード追加により、交差リンク情報が元の１−１から１−２に変更になる。格納データのルート情報は、参照するノード情報のノードＩＤが旧版と新版で上記のように大きく異なるため、すべてのリンクＩＤについて追加、修正が発生する。このように変換後の格納データで差分情報を抽出すると、ルートを一本追加しただけの修正でも差分データサイズは非常に大きくなる。
【００１８】
次に、旧版地図の変換前入力データ５１（図３の旧版入力データ１２１に相当）と新版地図の変換前入力データ６１（新版入力データ１２２に相当）の間で差分情報を抽出した場合の変換前差分データの例を図１２に示す。差分情報７２は、ルート１へのノードＩの追加、ルート３の新規作成だけを指定するだけでよく、変換後の格納データにおける差分データ量の項目数１７と比較して、サイズが項目数５と小さいことが判る。
【００１９】
最後に入力データ間の変換前差分情報７２を用いて組込み機器内の格納データをバージョンアップする方法の例を示す。なお、以下の例では、差分抽出装置１２の旧版入力データ１２１と差分適用装置１４の旧版入力データ１３４が論理的には同一だが、物理的には異なる例を示す。
まず、差分適用装置１４の逆変換機能１３３は、以下の処理によって旧版格納データであるルート情報５２とノード情報５３から図１３に示す変換前の入力データ８１（図４の旧版入力データ１３４相当）に変換する。
即ちその詳細手順として、旧版格納データ１６のルート情報５２のルート１について、リンクＩＤ１−１の開始ノードと終了ノードの座標を、そのＩＤを用いてノード情報５３から検索する。そして入力データ８１のルート１における一番目のノードと二番目のノードの座標として記述し、図１３に示すように、適当なノード名を割り当てる。図１３の例では一番目のノードにＡ−１、二番目のノードにＡ−２を割り当てる。さらに終了ノードをノード情報５３から検索した時に、該当するノードに交差リンク情報がある場合には、入力データ８１で割り当てたノード名をノード情報５３の該当ノードに関連付けておく（今回の例ではノードＩＤ４にノード名Ａ−２を関連付ける）。
【００２０】
次にリンクＩＤ１−２の終了ノードの座標をノード情報５３から検索し、入力データ８１の三番目のノードとして記述する。以降、ルート１のすべてのリンクについて上記処理を継続する。
ルート１の処理が終了すると、次にルート２の処理を実行する。ルート２に対する処理も基本的にはルート１の処理と同様であるが、リンクＩＤ２−１の終了ノード検索時に、ノードＩＤ４にノード名Ａ−２が関連付けられているので、ルート２の二番目のノードには同じノード名Ａ−２を割り当てる。
以上の処理によって、旧版の格納データ中のルート情報５２、ノード情報５３から変換して旧版の入力データ８１が生成される。
【００２１】
次に差分適用装置１４は、この入力データ８１に、差分データ適用機能１３５により、配信されてきた差分情報７２（差分データ１７相当）を適用して、図１４に示す変換前の入力データ９１（図４の新版入力データ１３６相当）を生成する。差分適用装置１４は、差分情報７２に従って最初にルート１へノードＩを挿入する。ここで、逆変換機能１３３が別のノードにノード名Ｉを割り当てている可能性があるため、図１４に示すように、差分データ適用機能１３５は独自にノード名Ｃ−１を割り当てる。同時に差分データ７２内のノード名Ｉ７２ｂと入力データ９１のノード名Ｃ−１  ９１ｂを対応付ける。
【００２２】
次にルート３を入力データ９１に追加し、差分情報７２のノードＪ，Ｉ，Ｋをそれぞれノード名Ｃ−２，Ｃ−１，Ｃ−３に変更してルート３に追加する。差分情報７２のノードＩについては、ルート１の処理においてノード名Ｃ−１に対応付けられており、ルート３においても入力データ９１ではノードＩがノード名Ｃ−１と決定される。
【００２３】
最後に差分適用装置１４の変換機能１３７について説明する。
変換機能１３７によって変換前の入力データ９１が格納データに変換される。最初に入力データ９１に含まれる全ノードの情報をすべて取り出し、ノード情報にそのノードが交差リンクの端点になっているかどうかの情報と、参照元となるルート、参照元ルートの何番目のノードから参照されているかを関連付けておく。例えば、入力データ９１のノードＣ−１については、交差リンクの端点であること、参照元はルート１の２番目のノードとルート３の２番目のノードであることを関連付ける。ノード名についてはこの時点で破棄する。
【００２４】
ノード情報の抽出と関連付けが完了した後、Ｘ座標およびＹ座標についてノードをソートし、ソートされた順番にノードＩＤを連番で割り当てる。交差リンク情報のルートＩＤに関しては、参照元ルートとノードの情報から一意に決定することができる。例えば、ノードＣ−１はルート１の２番目のノード、ルート３の２番目のノードから参照されているので、交差リンク情報のルートＩＤは、それぞれ１−１，３−１と特定できる。
以上の処理によって格納データのノード情報６３の生成が完了する。
【００２５】
次に入力データ９１の各ノードにノードＩＤを対応付ける。例えば、入力データ９１のノードＪには、ノードＩＤ６が割り当てられる。その後、入力データの各ルートを各ルートごとに格納データのルート情報形式に変換して連番のリンクＩＤを割り当てることで、格納データのルート情報６２の生成が完了する。
以上で図６ないし図１４を用いて差分適用装置１４の動作を説明した。
【００２６】
上記説明では、地図データを例として変換前の差分データを用いた格納データの更新を説明したが、変換機能をコンパイラ、逆変換機能を逆コンパイラと読み替えることで地図データの代わりにプログラムデータに対しても本実施の形態の構成で同様の動作をさせることがができる。またその際、変換機能を圧縮、逆変換機能を解凍と読み替えることで地図データの代わりに圧縮アルゴリズムによって圧縮されたデータに対しても本実施の形態の主旨を適用することができる。
以下に図１５を用いて圧縮と解凍により、組込み機器のプログラム・ソフトウェアを旧版（ａ）から新版（ｂ）に変更する例を説明する。図１５（ａ）において、変換前の旧版入力データ１０１（図３の旧版入力データ１２１に相当）を公知の技術であるハフマン符号化を用いて圧縮表現した変換後の旧版格納データ１０２が組込み機器１３内に格納されているものとする。ここで辞書１０３は旧版入力データの圧縮時に用いられた辞書データである。バージョンアップによって、旧版入力データ１０１の３箇所に文字”ｄ”が追加された新版入力データ２０１が生成されたとする。この場合、ハフマン符号化を用いて新版格納データ２０２が生成されるが、この際用いられる辞書２０３は旧版圧縮時に使用した辞書１０３と異なる。
【００２７】
図１５から判る通り、旧版と新版の変換前入力データ間ではわずかな変更であるにも関わらず、旧版と新版の変換後の格納データ間では全くと言ってよいほど共通部分が存在しない。そのため、格納データ間での差分情報を変換後のフォーマットで送信すると、新版格納データ２０２の全情報が必要であり、更に辞書データも変更になっていることから変更になった辞書データ（図１５の例では”ａ”，”ｂ”，”ｄ”が辞書データ）も送信する必要がある。
一方、入力データ間での変換前の差分データを送信する場合は、図１５（ｂ）に示す３箇所に文字”ｄ”を追加する、という情報のみでよい。即ち送信データ量が変換後の格納データ間で差分抽出した場合と比較して明らかにデータ量が小さい。
【００２８】
次に、入力データ間で抽出された差分データを、差分適用装置１４内でどのようにして適用するかを説明する。
差分適用装置には旧版格納データ１０２と旧版辞書１０３が格納されており、これらの情報から逆変換（解凍）機能を用いて旧版入力データ１０１を生成する。次に受信した差分データを適用して変換前の新版入力データ２０１を生成する。そして、ハフマン符号化を用いて新版辞書２０３と新版格納データ２０２を生成して、バージョンアップを完了する。なお、開発装置側で生成される新版格納データと組込み機器内の新版格納データが完全に同一であることを保証するため、開発装置と組込み機器の持つ圧縮アルゴリズムは全く同一の実装を有するものとする。これは、同じアルゴリズムを用いたとしても、実装によって出力が変わる可能性があるためである。
以上の処理によって、組込み機器に格納された圧縮データをより小さい差分データを用いてバージョンアップすることが可能である。なお本実施の形態では、圧縮アルゴリズムとしてハフマン符号化を用いたが、公知のいかなる可逆圧縮アルゴリズムを用いることも可能である。
【００２９】
上記実施の形態では、組込み機器の差分適用装置１４は、ハードウェアであるとして説明したが、組込み機器１３が図示しないＣＰＵとメモリにより、図４の差分適用装置１４内にに示す機能をプログラムとして持ち、図５の動作フローを実行させるようにしてもよい。即ち計算機が実行可能なソフトウェアを組込んで、方法として実行するようにしてもよい。
【００３０】
実施の形態２．
差分データ１７を更に減らした差分データ配信装置、差分適用装置を説明する。
図１６は、本発明の実施の形態２における差分抽出装置１２ｂの機能を示すブロック図である。先の実施の形態における旧版入力データと新版入力データに代えて、差分抽出装置１２ｂは、旧版の変換後の格納データ２２１と新版格納データ２２２に対して、先ずそれぞれ逆変換機能２２３で逆変換し、旧版入力データ２２４と新版入力データ２２５とを生成する。逆変換機能２２３によって生成された入力データ２２４，２２５は、格納データ２２１，２２２を生成するために図２の開発装置１１で使用された入力データと全く同一、もしくは論理的に同一である。
入力データ差分抽出機能２２６は、旧版入力データ２２４と新版入力データ２２５の間の差分を抽出して差分データ１７を生成する。
【００３１】
本実施の形態における組込み機器は、図４でしめした実施の形態１における組込み機器１３の構成と同一である。ただし、差分適用装置１４の逆変換機能１３３は、差分抽出装置１２ｂの逆変換機能２２３と全く同一の機能を有し、逆変換機能１３３によって生成された入力データ１３４は、逆変換機能２２３によって生成された入力データ２２４と全く同一である。
上記の構成によって第一の実施の形態と同様に、組込み機器はバージョンアップした記憶データを用いて処理を行うことができる。また、差分データが大きくなる格納データ間での差分ではなく、差分データが小さくなる入力データ間での差分を用いていることから、差分抽出装置１２ｂから差分適用装置１４に送信する差分データ１７のサイズを小さくすることができる。
【００３２】
更に実施の形態２では、実施の形態１とは異なり、同一機能の逆変換機能を持つことにより、差分抽出装置１２が差分抽出に用いる入力データと差分適用装置１４が差分適用に用いる入力データとが全く同一になるため、差分データ適用機能における差分抽出と差分適用での入力ファイルの物理的違いを吸収する手段である、実施の形態１では差分適用装置でのノード名を独自に付け替える手段、が不要となる。従って差分データ適用機能の処理が容易になる、という利点を持つ。
【００３３】
実施の形態３．
差分データ１７を更に減らした他の差分データ配信装置、差分適用装置を説明する。
図１７は、本実施の形態における差分抽出装置１２ｃの機能を示すブロック図である。先の実施の形態における格納データから入力データに変換することに代えて、中間データを得て、これから中間差分データを配信する。即ち差分抽出装置１２ｃは、旧版格納データ３２１と新版格納データ３２２に対してそれぞれ逆変換機能３２３を用いて、旧版中間データ３２４と新版中間データ３２５とを生成する。中間データ差分抽出機能３２６は、これらの旧版中間データ３２４と、新版中間データ３２５との間の差分データ１７を生成する。
【００３４】
対応して図１８は、本実施の形態における組込み機器１３ｃの機能を示すブロック図である。
図において、差分適用装置１４ｃの差分受信機能３３１が差分抽出装置１２ｃの抽出した差分データ１７を受信すると、これと同時に記憶装置１５から旧版格納データ１６をデータ読出し機能３３２によって読み出して、逆変換機能３３３により中間データ３３４を生成する。中間データ３３４は図１７の旧版中間データ３２４と全く同一である。
差分データ適用機能３３５により差分データ１７をこの旧版中間データ３３４に適用して、図６の新版中間データ３２５と全く同一の新版中間データ３３６を生成する。変換機能３３７は、この新版中間データ３３６を新版格納データ１８に変換し、データ書込み機能３３８がこの新版格納データ１８を記憶装置１５に書き込む。この書き込み方法として、記憶装置１５にある旧版格納データ１６に新版格納データ１８を上書きするか、もしくは記憶装置１５の旧版格納データ１６とは別領域にいったん新版格納データ１８を書き込む。しして処理完了後に旧版格納データ１６とする。その後は組込み機器１３ｃは、この格納データを処理対象のデータとして扱う。
【００３５】
以上の処理によって、実施の形態１、実施の形態２と同様に、組込み機器はバージョンアップした記憶データを用いて処理を行うことができる。また、差分データが大きくなる格納データ間での差分ではなく、差分データが小さくなる入力データ間での差分を用いていることから、差分抽出装置から差分適用装置に送信する差分データのサイズを小さくすることができる。
また、実施の形態２と同様に、同一機能の逆変換機能を持つことにより差分抽出装置が差分抽出に用いる中間データと、差分適用装置が差分適用に用いる中間データとが全く同一になるため、差分データ適用機能における差分抽出と差分適用での中間ファイルの物理的違いを吸収する手段が不要となる。従って、差分データ適用機能の処理が容易になる、という利点を持つ。
【００３６】
更に本実施の形態では、実施の形態２とは異なり、差分データサイズが小さくなるようなフォーマットを規定して差分抽出を行う。従って、入力データ間で差分データを抽出した場合には差分データサイズが大きくなる入力データを用いているシステムに対しても、差分データサイズを小さく抑えた差分抽出、差分適用を適用することができる、という利点もある。
【００３７】
次に図１８を用いて、具体的な中間データによる、プログラムのコンパイルと逆コンパイルの例を説明する。
図１９（ａ）は旧版入力データ３０１（Ｃ言語で記述されたソースコード）を示しており、これを開発環境でコンパイルすることによって、図１９（ｂ）の旧版格納データ３０２が生成される。なお、図１９（ｂ）の旧版格納データ３０２は、下線付きの部分が実際に組込み機器内の記憶手段に格納される１６進数表現のデータであり、それ以外の記述は格納されるデータの説明である。この旧版格納データ３０２を逆コンパイルすることで生成されるのが図１９（ｃ）に示す旧版中間データ３０３（Ｃ言語のソースコード）である。Ｃ言語などのプログラム言語では、ソースコードをコンパイルして生成されたオブジェクトファイルを逆コンパイルして元のソースコードを生成することは不可能であるが、一定の規則に従って逆コンパイルすることで、元のソースコードに近い形のソースコード（中間データ）を生成することは可能である。旧版入力データ３０１と旧版中間データ３０３では、変数名、関数名などは異なっているが、実際に行われている処理は同一であり、さらにこれらをコンパイルした結果は旧版格納データ３０２と同一になる。
【００３８】
図２０は新版データの例を示している。新版入力データ４０１はバージョンアップにより、図１９の旧版入力データ３０１に”ｚ＋＝１００；”の記述を１行追加したものである。新版入力データ４０１をコンパイルした結果が新版格納データ４０２であり、更に逆コンパイルをかけた結果が新版中間データ４０３である。
ここで旧版と新版の変換後の格納データ間で差分データを抽出した場合、図２２に示すように、１行目から４行目までの変更、６，７行目へのデータの追加と、旧版データの７行目以降の７行分を新版データの８行目以降の７行間にコピーする、という情報が差分データとして抽出される。一方図２１に示すように、旧版と新版の中間データ間、つまり変換前の差分データを抽出した場合は、その７行目への”ｌ３＋＝１００；”の追加、という情報のみで差分が表現できる。
【００３９】
組込み機器１３内の格納データのバージョンアップ手順を以下に説明する。
バージョンアップが発生すると、差分抽出装置１２では旧版中間データと新版中間データを生成し、図２１の差分データ５０１を抽出し、これを配信する。
差分データ５０１を受信した組込み機器１３では、差分適用装置１４により、最初に旧版格納データ３０２を逆コンパイルして旧版中間データ３０３を生成する。ここで、差分適用装置１４の持つ逆変換（逆コンパイル）機能は差分抽出装置１２の持つ逆変換機能と全く同一であることから、生成される旧版中間データ３０３は差分抽出装置１２と差分適用装置１４とで全く同一であることが保証される。
【００４０】
次に差分適用装置１４は、上記で得られている旧版中間データ３０３に対して受信した差分データ５０１を適用して、新版中間データ４０３を生成する。そして、この新版中間データ４０３を変換（コンパイル）機能で変換することで、新版格納データ４０２を生成して記憶手段に格納する。なお、差分適用装置１４の変換機能１３７と開発装置の変換機能１１３が全く同一の機能を持つことから、差分適用装置によって生成された新版格納データと開発装置の生成する新版格納データとは全く同一であることが保証される。
以上の処理によって、組込み機器に格納されたプログラムデータをより小さい差分データを用いてバージョンアップすることが可能である。
【図面の簡単な説明】
【００４１】
【図１】この発明の実施の形態１における差分抽出装置、差分適用装置とそのシステムの構成を示すブロック図である。
【図２】実施の形態１における開発装置の構成を示すブロック図である。
【図３】実施の形態１における差分抽出開発装置の構成を示す図である。
【図４】実施の形態１における組込み機器とその差分適用装置の構成を示す図である。
【図５】実施の形態１における差分適用装置の動作を示すフロー図である。
【図６】実施の形態１における変換前の入力データを説明するためのイメージ図である。
【図７】実施の形態１における変換前の入力データの例を示す図である。
【図８】実施の形態１における変換後の格納データの例を示す図である。
【図９】実施の形態１における変換前の新版入力データの例を示す図である。
【図１０】実施の形態１における変換後の新版格納データの例を示す図である。
【図１１】実施の形態１における格納データによる差分データの例を示す図である。
【図１２】実施の形態１における入力データによる差分データの例を示す図である。
【図１３】実施の形態１における差分適用装置の逆変換機能を説明するための図である。
【図１４】実施の形態１における差分適用装置の差分データ適用機能を説明するための図である。
【図１５】実施の形態１における差分適用装置が行う圧縮と解凍の例を説明する図である。
【図１６】この発明の実施の形態２における差分抽出装置構成を示す図である。
【図１７】この発明の実施の形態３における差分抽出装置構成を示す図である。
【図１８】実施の形態３における組込み機器とその差分適用装置の構成を示す図である。
【図１９】実施の形態３における差分適用装置が行うコンパイルと逆コンパイルの例を説明する旧版データの図である。
【図２０】実施の形態３における差分適用装置が行うコンパイルと逆コンパイルの例を説明する新版データの図である。
【図２１】実施の形態３における中間データとその差分データの例を示す図である。
【図２２】実施の形態３における旧版格納データと新版格納データを示す図である。
【符号の説明】
【００４２】
１１  開発装置、１２，１２ｂ  差分抽出装置、１３  組込み機器、１４  差分適用装置（部）、１５  記憶装置（部）、１６  旧版格納データ、１７  差分データ、１８  新版格納データ、１１１  入力データ、１１２  格納データ、１１３  変換機能、１２１  旧版入力データ、１２２  新版入力データ、１２３  入力データ差分抽出機能、１３１  差分受信機能、１３２  データ読出し機能、１３３  逆変換機能、１３４  旧版入力データ、１３５  差分データ適用機能、１３６  新版入力データ、１３７  変換機能、１３８  データ書き込み機能、Ｓ１３１  差分受信ステップ、Ｓ１３２  旧格納データ読出しステップ、Ｓ１３３  逆変換ステップ、Ｓ１３７  変換ステップ、Ｓ１３８  データ書き込みステップ、２２１  旧版格納データ、２２２  新版格納データ、２２３  逆変換機能、２２４  旧版入力データ、２２５  新版入力データ、２２６  入力データ差分抽出機能、３２１  旧版格納データ、３２２  新版格納データ、３２３  逆変換機能、３２４  旧版中間データ、３２５  新版中間データ、３２６  中間データ差分抽出機能、３３１  差分受信機能、３３２  データ読出し機能、３３３  逆変換機能、３３４  旧版中間データ、３３５  差分データ適用機能、３３６  新版中間データ、３３７  変換機能、３３８  データ書き込み機能。
【図１】
2006004125.tif 000003
【図２】
2006004125.tif 000004
【図３】
2006004125.tif 000005
【図４】
2006004125.tif 000006
【図５】
2006004125.tif 000007
【図６】
2006004125.tif 000008
【図７】
2006004125.tif 000009
【図８】
2006004125.tif 000010
【図９】
2006004125.tif 000011
【図１０】
2006004125.tif 000012
【図１１】
2006004125.tif 000013
【図１２】
2006004125.tif 000014
【図１３】
2006004125.tif 000015
【図１４】
2006004125.tif 000016
【図１５】
2006004125.tif 000017
【図１６】
2006004125.tif 000018
【図１７】
2006004125.tif 000019
【図１８】
2006004125.tif 000020
【図１９】
2006004125.tif 000021
【図２０】
2006004125.tif 000022
【図２１】
2006004125.tif 000023
【図２２】
2006004125.tif 000024