(57)【要約】【課題】  ソフトウエアのオブジェクトモジュールについて新旧バージョン間の差分を抽出する差分抽出装置、および旧版に差分を適用し新版を作成する差分適用装置に係り、差分情報を小さくすることを課題とする。【解決手段】  旧版及び新版について、ファイル内容解析部１０３によりファイルの内容を解析した後に、アドレス空間変換部１０６で物理的な連続アドレス空間を別の論理アドレス空間にマッピングし、それらの差分を抽出する。適用の際は、同様に旧版を解析し、アドレス空間変換した結果に、差分を適用してから、アドレス空間逆変換部１５８で、元のアドレスに戻して新版を得る。【選択図】        図１
2006048640.tif 000002
【特許請求の範囲】
【請求項１】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
差分抽出装置は、少なくとも
（１）旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
（２）それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
（３）旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
（４）論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分情報適用部と、
（５）差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部とを有することを特徴とするソフトウエア差分抽出適用システム。
【請求項２】
差分抽出装置は、新版ファイル及び旧版ファイルの内容を解析するファイル内容解析部を有し、
差分抽出装置の前記アドレス空間変換部は、内容を解析した新版ファイル及び旧版ファイルを対象としてアドレス空間を変換し、
差分適用装置は、旧版データの内容を解析するデータ内容解析部を有し、
差分適用装置の前記アドレス空間変換部は、内容を解析した旧版データを対象としてアドレス空間を変換することを特徴する請求項１記載のソフトウエア差分抽出適用システム。
【請求項３】
差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、対象とする内容が命令コードであった場合に、命令長に応じて命令ごとに区別することを特徴とする請求項２に記載のソフトウエア差分抽出適用システム。
【請求項４】
差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、対象とする内容がデータであった場合で、データが論理的に意味のあるデータ集合であるレコードごとに区別可能である場合に、レコードごとに区別することを特徴とする請求項２に記載のソフトウエア差分抽出適用システム。
【請求項５】
差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、事前に差分情報を取得することによりデータの挿入があった場所を解析結果として出力することを特徴とする請求項２に記載のソフトウエア差分抽出適用システム。
【請求項６】
差分抽出装置のアドレス空間変換部及び差分適用装置のアドレス空間変換部は、ファイル内のデータレコードの先頭バイトが連続するようにマッピングし、命令コードがある場合には、命令コードの最初のバイトが連続するようにマッピングすることを特徴とする請求項１に記載のソフトウエア差分抽出適用システム。
【請求項７】
差分抽出装置のアドレス空間変換部及び差分適用装置のアドレス空間変換部は、データ挿入があったことがわかった場合には、その挿入のあった箇所までをアドレス空間として変換し、挿入データでなくなった箇所以降を改めてアドレス空間として変換することを特徴とする請求項６に記載のソフトウエア差分抽出適用システム。
【請求項８】
差分抽出装置は、アドレス空間の変換単位を示す情報を差分情報に付加することを特徴とする請求項１に記載のソフトウエア差分抽出適用システム。
【請求項９】
旧版データおよび新版データは、ファイルであることを特徴とする請求項１記載のソフトウエア差分抽出適用システム。
【請求項１０】
旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項１記載のソフトウエア差分抽出適用システム。
【請求項１１】
旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項１記載のソフトウエア差分抽出適用システム。
【請求項１２】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置であって、以下の要素を有することを特徴とする差分抽出装置
（１）旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部
（２）それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部。
【請求項１３】
差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
（１）旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部
（２）論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分情報適用部
（３）差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部。
【請求項１４】
旧版データおよび新版データは、ファイルであることを特徴とする請求項１３記載の差分適用装置。
【請求項１５】
旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項１３記載の差分適用装置。
【請求項１６】
旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項１３記載の差分適用装置。
【請求項１７】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
（２）それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分抽出手順。
【請求項１８】
差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
（２）論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分適用手順
（３）差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換手順。
【請求項１９】
旧版データおよび新版データは、ファイルであることを特徴とする請求項１８記載のプログラム。
【請求項２０】
旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項１８記載のプログラム。
【請求項２１】
旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項１８記載のプログラム。
【請求項２２】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
差分抽出装置は、少なくとも
（１）旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部と、
（２）各レコード内でデータを保持するデータ要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強いデータ要素を含む第１の旧版分割データとその他のデータ要素を含む第２の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強いデータ要素を含む第１の新版分割データとその他のデータ要素を含む第２の新版分割データに分割するデータ分割部と、
（３）第１の旧版分割データと第１の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第１の差分情報として生成するとともに、第２の旧版分割データと第２の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第２の差分情報として生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
（４）旧版データのフォーマットを解析し、旧版データをレコードごとに区別するフォーマット解析部と、
（５）前記差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割部と、
（６）一の旧版分割データに対して、前記第１の差分情報を適用するとともに、他の旧版分割データに対して、前記第２の差分情報を適用する差分情報適用部と、
（７）第１の差分情報を適用した結果に含まれるデータ要素と第２の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合部とを有することを特徴とするソフトウエア差分抽出適用システム。
【請求項２３】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
差分抽出装置は、少なくとも
（１）旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部と、
（２）各レコード内でデータを保持するデータ要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強いデータ要素を含む第１の旧版分割データとその他のデータ要素を含む第２の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強いデータ要素を含む第１の新版分割データとその他のデータ要素を含む第２の新版分割データに分割するデータ分割部と、
（３）第１の旧版分割データと第１の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第１の差分情報として生成するとともに、第２の旧版分割データと第２の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第２の差分情報として生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
（４）旧版データのフォーマットを解析し、旧版データをレコードごとに区別するフォーマット解析部と、
（５）前記差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第１の差分情報と前記第２の差分情報を適用する差分情報適用部と、
（６）１つのレコードに第１の差分情報と第２の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合部とを有することを特徴とするソフトウエア差分抽出適用システム。
【請求項２４】
前記第１の差分情報と前記第２の差分情報は、さらに、位置ずれを示す情報を含むことを特徴する請求項２２又は２３に記載のソフトウエア差分抽出適用システム。
【請求項２５】
差分抽出装置の前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
差分抽出装置の前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項２２から２４いずれかに記載のソフトウエア差分抽出適用システム。
【請求項２６】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置であって、以下の要素を有することを特徴とする差分抽出装置
（１）旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
（２）各レコード内でデータを保持する要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強い要素を含む第１の旧版分割データとその他の要素を含む第２の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強い要素を含む第１の新版分割データとその他の要素を含む第２の新版分割データに分割するデータ分割部
（３）第１の旧版分割データと第１の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第１の差分情報として生成するとともに、第２の旧版分割データと第２の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第２の差分情報として生成する差分情報生成部。
【請求項２７】
前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項２６記載の差分抽出装置。
【請求項２８】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
（１）旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
（２）各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割部
（３）一の旧版分割データに対して、前記第１の差分情報を適用するとともに、他の旧版分割データに対して、前記第２の差分情報を適用する差分情報適用部
（４）第１の差分情報を適用した結果に含まれるデータ要素と第２の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合部。
【請求項２９】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
（１）旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
（２）各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第１の差分情報と前記第２の差分情報を適用する差分情報適用部
（３）１つのレコードに第１の差分情報と第２の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合部。
【請求項３０】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）各レコード内でデータを保持する要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強い要素を含む第１の旧版分割データとその他の要素を含む第２の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強い要素を含む第１の新版分割データとその他の要素を含む第２の新版分割データに分割するデータ分割手順
（３）第１の旧版分割データと第１の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第１の差分情報として生成するとともに、第２の旧版分割データと第２の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第２の差分情報として生成する差分情報生成手順。
【請求項３１】
前記フォーマット解析手順は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
前記データ分割手順は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項３０記載のプログラム。
【請求項３２】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割手順
（３）一の旧版分割データに対して、前記第１の差分情報を適用するとともに、他の旧版分割データに対して、前記第２の差分情報を適用する差分情報適用手順
（４）第１の差分情報を適用した結果に含まれるデータ要素と第２の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合手順。
【請求項３３】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第１の差分情報と前記第２の差分情報を適用する差分情報適用手順
（３）１つのレコードに第１の差分情報と第２の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合手順。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアのオブジェクトモジュールについて新旧バージョン間の差分を抽出する差分抽出装置、および旧版に差分を適用し新版を作成する差分適用装置に関する。
【背景技術】
【０００２】
ＰＣ上のソフトウエアや携帯電話のソフトウエアの不具合修正や、データベースの更新などネットワークを利用して更新することが多くなってきた。ネットワークの帯域も広く、かなり現実的な時間でデータをダウロードして更新できるようになってきた。
【０００３】
しかしながら、大規模なソフトウエアについてバージョンアップのために最新のソフトウエアをすべて通信するような場合には、時間がかかるという問題もある。
【０００４】
例えば、特開２００１−２７３１４７号公報では、このような課題を解決するためにバージョン情報を保持し、バージョン間で、削減されるファイルと更新されるファイルの情報を差分情報として使い、バージョンアップ時には必要なファイルのみを送信するという方法で解決を図っている。しかしながら、ＰＣなどでは実行プログラムがファイルで実現されているため、その実行ファイルが一つの大きなファイルだけの場合や、組込み機器などファイルで実装されていないものに対しては解決できていない。
【０００５】
例えば、特開２００２−３４２１００号公報では、このような課題を組み込み機器で解決するために、組込み機器のプログラムの構成をモジュール構成としてフラッシュＲＯＭ上へ工夫して配置することにより、モジュールごとの修正ですむようにして解決を図っている。しかしながら一般にバージョンアップをすると、アドレスでリンクしている場合には参照関係が利いてくるため全モジュールに影響が及ぶことが多く、この方式だけでは解決にはなっていない。
【０００６】
例えば、特表２００２−５２３８２５号公報では、上記の問題を解決するため、さらにプログラムの構造に着目して組み込み機器などではアドレス情報の部分にのみ変化が起こることに着目し、アドレス部を他のデータとは異なる方法で書き換える技術を開示している。この技術によれば差分情報は小さくなる。しかしながら、あくまでも旧プログラムに対してプログラムコードの挿入や削除が合った場合の位置ずれの表現方法でのコンパクト化にすぎない。これだけでは単純に位置ずれだけで表現しきれない場合には対応できないという問題があった。
【０００７】
また、特開２００３−３３７７２３号公報に開示されているように差分情報は基本的には“同じ”、“移動”、“挿入”、“削除”で表せて、差分抽出の比較の範囲を広くすることにより差分データを小さくする技術が開示されている。
【特許文献１】特開２００１−２７３１４７号公報
【特許文献２】特開２００２−３４２１００号公報
【特許文献３】特表２００２−５２３８２５号公報
【特許文献４】特開２００３−３３７７２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記した従来技術の欠点を除くためになされたものであって、その目的とするところは、ソフトウエア大規模化に対応すべく、差分情報を小さくすることにある。
【課題を解決するための手段】
【０００９】
本発明に係るソフトウエア差分抽出適用システムは、
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルに適用して新版ファイルを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
差分抽出装置は、少なくとも
（１）旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
（２）それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
（３）旧版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
（４）論理アドレス空間にマッピングした旧版ファイルに対して、前記差分情報を適用する差分情報適用部と、
（５）差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によって、差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
多くのプログラムでは、１行の追加でも広くプログラムの位置ずれの関係で影響が出てしまう。この中の多くはアドレス部分である。プログラムの移動や追加の情報を差分情報で表す場合、この修正部分はどこであるのかを示す情報が必要となってくる。そのため、修正部分はできるだけ偏ってあるほうが望ましい。
【００１２】
そこで、本発明では差分抽出に対しては物理的なアドレス空間ではなく、論理的なアドレス空間を利用することにより解決する。
【００１３】
例えば、少しの修正で、アドレス空間上２バイト程度のずれであれば、プログラムのアドレスパートのうちの該当のバイト部分にだけ差分は発生する。それ以外の部分は同じである。これが、リトルインデアンのＣＰＵならば上位バイトになるし、ビッグインデアンのＣＰＵなら下位バイトになるように、対象となるアーキテクチャや、データの性質によってどこが変化するのかが変わる。本発明では、この性質を応用して論理アドレス空間を決めることにより差分を小さくする。
【００１４】
以下、図面を用いながら本発明の実施の例につき、詳細に説明する。図１は本発明にソフトウエア差分抽出適用システムの構成を示す図である。本装置は、差分抽出装置１００と差分適用装置１５０とからなる。本実施の例では、差分抽出装置１００は旧版ファイル１０１と新版ファイル１０２から差分情報をとる。
【００１５】
差分抽出にあたっては、まずファイル内容解析部１０３によってファイルの内容を解析する。例えば、図２と図３に示すような旧版ファイル２０１や新版ファイル２０２であった場合は、ファイルの内容から３２ビットであらわすアドレス情報が並んでいることがわかり、そのままの出力となる。
【００１６】
図４と図５に示すような旧版ファイル２１０や新版ファイル２１１においては、３２ビット長の命令と１６ビット長の命令が混在している。このような場合は、固定長のデータと同様の並びを実現するために、１６ビットの命令のあとを１６ビット分の空欄とする。ファイル内容解析部１０３のアウトプットとして、このような可変長のデータを補正したファイルが出力される。この例では、旧版ファイルを補正した解析後の旧版ファイル２１２、新版ファイルを補正した解析後の新版ファイル２１３が出力される。ファイル内容解析部１０３の具体的な実施例は、後述する。
【００１７】
ファイル内容解析部１０３の出力として、解析後の旧版ファイル１０４、解析後の新版ファイル１０５が得られる。これらのファイル１０４，１０５は、前記の２１２，２１３であったり、２０１，２０２であったりする。
【００１８】
次にこれらの解析後の旧版ファイル１０４，新版ファイル１０５に対して、アドレス空間変換部１０６によりアドレス空間を変換する。具体的には図６から図９に示す。
【００１９】
図６の３０１は、解析後の旧版ファイルの物理アドレス空間を論理アドレス空間に変換した例である。具体的には、物理アドレス空間を４で割ったあまりで１のものを連続させ、次に２のものを連続させ、次に３のものを連続させ、次に４を連続させている。図７の３０２は、新版ファイル２０２を同様に処理したものである。
【００２０】
一方、図８に示す３１１と，図９に示す３１２は、解析後の旧版ファイル２１２，新版ファイル２１３から同様の処理をしている。固定長に変換するために空となる部分に関しては省いて連続にしている。
【００２１】
アドレス空間変換部１０６のより具体的な実施の例に関しては、後述する。
【００２２】
アドレス空間変換部１０６から、アドレス変換後の旧版ファイル１０７とアドレス変換後の新版ファイル１０８が出力される。これは上述した３０１，３０２あるいは３１１，３１２のことである。
【００２３】
差分情報生成部１０９は、これらの旧版ファイル１０７と新版ファイル１０８から差分情報を生成する。差分情報生成部１０９は、２つのファイルを比較し全く同じであるか、位置がずれた状態であるか、新しいデータであるかを表わす差分情報１１０を出力する。この差分情報生成部に関しては、従来技術である特開２００３−３３７７２３公報に示された方法を利用してかまわない。
【００２４】
図１０から図１３は、差分情報１１０の具体的例を示す図である。４０１は本発明によらず、元の旧版２０１と新版２０２のファイルを直接比較した差分情報である。すべてが新しいデータとして表現される。実際には同じデータがあるため、全く同じであることを示すＳＫＩＰ情報で出力するべきだが、ＳＫＩＰ情報はどのアドレスから始まるのかという情報が必要なため、全く同じデータがアドレス空間を示すためのビット長以上になければ有効ではない。そのためこの例ではすべてが新しいデータとして表現される。
【００２５】
図１１の４０２は、２１０と２１１を比較した差分情報である。この場合も、アドレス空間を３２ビットとした場合にすべてがデータとして表現されている。仮にアドレス空間が１６ビット程度となると一部ＳＫＩＰで表現可能であるが、差分の大きさに対しては大した影響が出ない。
【００２６】
図１２の４０３は、３０１と３０２を比較した差分情報である。ここでは変更された部分が一部に集中する傾向になるためＳＫＩＰ情報が有効に出力される。そのため、差分データが４０１に比べて飛躍的に小さくなっている。
【００２７】
図１３の４０４は、３１１と３１２を比較した差分情報であり、４０３と同サイズの差分データとなっている。
【００２８】
次に、生成された差分情報を旧版に適用して新版を作成する方法に関して説明する。
【００２９】
図１の１５０が差分適用装置であり、携帯電話機などの組込み機器や、クライアントサーバモデルのクライアントＰＣなどがこれにあたる。この端末上では、動作可能な旧版ファイル１５１と取り込んだ差分情報１５２から新版ファイル１６０を作成する。この例では、ファイル形態のデータを示すが、他の形態であっても構わない。つまり、旧版ファイルと新版ファイルは、旧版データと新版データの例であって、メモリ上に配置された実行コードを含むデータの形態や、データベース上に配置されたデータの形態であっても、新版データと旧版データとして有効である。
【００３０】
ファイル内容解析部（データ内容解析部の例）１５３は、ファイル内容解析部１０３と同じ機能で実現可能である。その結果解析後の旧版ファイル１５４が出力される。この結果は１０４と同じものである。アドレス空間変換部１５５によってアドレス変換を行うとアドレス変換後の旧版ファイル１５６が出力される。これも１０７と同じものである。そして、差分情報適用部１５７により前記差分情報１５２をアドレス変換後の旧版ファイル１５６に対して適用する。
【００３１】
この適用方法は、特開２００３−３３７７２３号公報に開示されている方法でもかまわないし、差分情報ファイルの内容にしたがって、旧版に上書きしていくことにより作成してもよい。さらに詳細については、後述する。また、アドレス空間逆変換部１５８によりアドレス空間変換を逆に適用することにより元のアドレス空間に戻し、更新情報保存部１５９によりハードディスク装置や、フラッシュＲＯＭといった保存領域に保存する。
【００３２】
本実施の形態では、明らかに差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
【００３３】
実施の形態２．
ファイル内容解析部で、対象とする内容が命令コードであった場合に、命令長に応じて命令ごとに区別する形態について詳述する。
【００３４】
図１４は、ファイル内容解析部に利用する命令コードと命令長の対応表の例である。５０１では、命令コードのＦ０００は４バイト長、ＤＥ８９は、２バイト長であることを示している。ファイル内容解析部１０３，１５３では、最初からこの表を利用してファイルをすべて読み込んでこの命令長にあわせたフォーマットに変換をする。最大のバイト数にあわせて、空を入れることにより実現する。また、これはあくまでも実施の例であり、命令長は、１バイト、２バイト、４バイトといったように何種類あってもかまわない。
【００３５】
実施の形態３．
ファイル内容解析部で、対象とする内容がデータであり、データが論理的に意味のあるデータ集合であるレコードごとに区別可能である場合に、レコードごとに区別する形態について説明する。
【００３６】
図１４に示したように命令ではなくデータであった場合に関して同様の処理を行う。具体的には図１５に示すようにデータの構造を表にしておき、この構造にそってデータを解析し、比較可能なフォーマットに変換する。必要ならば空欄を入れてあたかも固定長のデータであるようにする。
【００３７】
実施の形態４．
ファイル内容解析部で、事前に差分情報を取得することによりデータの挿入があった場所を解析結果として出力する形態について説明する。
【００３８】
ファイル内容解析部１０３，１５３では、最初に、一旦差分情報を抽出する。その上で、変更の偏りを分析する。たとえば、図３に示した２０２では、４の倍数で示されるアドレス部分に修正が多いことがわかる。また、４バイトごとに差分が出ることもわかる。この結果、論理空間を４の倍数で割ったあまりにすることによって差分を一部に集中させることができる。また、その出方により、一定のアドレス部分以外が変わっていることからデータの挿入であることを認識し、解析結果に、ここから先はデータの挿入であるという情報を出力する。具体的には図１６にその例を示す。
【００３９】
６０１が旧版ファイルであり、６０２が新版ファイルである。これを比較するとまとまって差分が出てデータ挿入となる部分が出てくる。６０２におけるＡ０Ｂ０Ｃ０Ｄ０の部分でこういう部分をみつけたら、６０３，６０４のようにデータの挿入であることを解析結果に出力することができる。
【００４０】
実施の形態５．
データ挿入があったことがわかった場合には、そのデータ挿入部分より前の部分をアドレス空間として変換し、更に、データ挿入部分より後の部分を改めてアドレス空間として変換する形態について説明する。
【００４１】
実施の形態４に示すようにデータ挿入部分であることがわかるような情報がある場合には、データ挿入部分まででアドレス空間変換を実施する。その例を図１７と図１８に示す。
【００４２】
７０１，７０２は、６０３，６０４と同じでファイル内容解析部の出力結果である。７０３，７０４は、データ挿入の情報のある位置で一旦論理空間への変換を行い、データ挿入部分はそのままとし、更にデータ挿入部分より後の部分を再びアドレス変換をかけた結果である。このようにすることによって、全体のアドレス変換をかけるよりも変更部分を集中させることができる。
【００４３】
実施の形態６．
アドレス空間の変換単位を示す情報を差分情報に付加する形態について説明する。
【００４４】
差分抽出装置では、前記データ挿入位置で一旦切った旨の情報（アドレス空間の変換単位を示す情報の例）を差分情報に入れる。具体的にはアドレス変換完了、開始の情報を元に差分データにも変換完了と開始の情報をそのまま１バイト程度の情報で入れておくことで実現できる。
【００４５】
実施の形態７．
差分データに基づいて、ファイル内容解析部とアドレス空間変換部によって変換されたデータに対して差分情報を適用し、さらに元のアドレス空間に変換する形態について説明する。
【００４６】
差分情報にアドレス変換の開始、終了情報が記載されている限りにおいては、元のアドレス空間に変換する際にも同様の処理を行えばよいだけである。具体的には、差分情報を読み、旧版ファイル全体を処理対象として順次必要な情報を書いていく処理を行うが、差分ファイル上で、アドレス変換完了の情報が来た時点で、一旦アドレス変換をせずに差分を適用して、その後現実のアドレスで差分データを適用し、さらにアドレス変換開始の情報がきたら再度アドレス変換を開始するという方法で実現することができる。
【００４７】
実施の形態１から７までの技術を組み合わせることにより、新版と旧版での差分の出方に偏りを作ることができ、差分量を減らすことができる。
【００４８】
実施の形態８．
処理について、図１９と図２０に示すフローチャートを利用して詳述する。図１９は差分抽出装置の動作の例である。図２０は差分適用装置の動作の例である。
【００４９】
ステップ８０１では、新版と旧版の例えばバイナリイメージファイルをハードディスク装置やその他の媒体上のファイルシステムからメモリ上に読み込む。ステップ８０２では差分の傾向を見るために差分抽出を行う。この結果、差分が十分小さければこの段階で終了し、差分情報を出力してもかまわない。差分が小さいかどうかは想定する目標サイズと比較してどうかを決めればよい。目標サイズは通信環境、および転送時間から決めることができる。
【００５０】
ステップ８０３ではステップ８０２の結果、データ挿入であるとした部分にマークを入れる。ステップ８０４ではファイルの内容を解析する。ファイル内容の解析フローに関しては図２１を用いて後述する。ステップ８０５ではファイル内容の解析結果を出力する。具体的にはメモリの中で配置しておくだけでもかまわないし、ファイルとして書き出してもかまわない。
【００５１】
ステップ８０６ではアドレス空間の変換を行う。具体的なフローは図２２を用いて後述する。ステップ８０７ではアドレス空間の変換結果から差分を抽出する。差分抽出は特開２００３−３３７７２３に開示されているように同一のもの、位置ずれのもの、挿入のものと分ける形で行う。ステップ８０８では差分情報ファイルを出力する。
【００５２】
ステップ８１１では旧版ファイルを読み込み、ステップ８１２，８１３では、ステップ８０４，８０５と全く同じ処理を行う。ステップ８１４ではステップ８０８の出力結果である差分情報ファイルを読み込む。ステップ８１５でアドレス空間変換を行う。アドレス空間変換のより具体的なフローは図２２を用いて後述する。
【００５３】
ステップ８１６では差分の適用を行う。差分適用のより具体的なフローは図２３を用いて後述する。ステップ８１７ではアドレス空間を逆変換する。逆変換に関しては図２２を利用して具体的なフローを後述する。ステップ８１８で新版を出力するが、対象はファイルシステムでもフラッシュＲＯＭでもかまわない。対象はプログラムやデータを記憶する記憶媒体である。
【００５４】
続いて、図２１を用いてファイル内容解析のフローの例を示す。ステップ９０１で対象のファイルをメモリ上に配置する。ステップ９０２でデータの特性を示す対応表を読みこむ。これは、例えば図１４に示す命令コードと命令長の対応表や図１５に示すデータ構造を示す情報でもかまわない。
【００５５】
ステップ９０３では１バイトずつ読み込んで、命令コード表を参照して、読み込んだデータが何バイトの命令かを判断する。たとえば基準バイト数を４バイトに決めていた場合、この基準バイト数に足りない部分を空で埋めて、例えば図４に示す２１２の形式にする。
【００５６】
この操作をステップ９０３，９０４，９０５と繰り返す。ステップ９０６では繰り返しの判定を行う。このようにしてファイル情報を解析する。この例では命令コードでの判定を行っているが、データ構造から判断してもかまわない。
【００５７】
次に、図２２を用いてアドレス空間変換のフローの例を示す。ステップ１００１で対象ファイルを読み込む。ステップ１００２で、データ特性を読み込む。このデータ特性は例えばインデアンがリトルインデアンであるといった情報であり、どこに差分が出やすいかを示す情報である。例えば４バイト命令の命令でアドレス部の下位の部分が変わりやすい場合に、リトルインデアンでは３バイト目に変更がありやすく、ビッグインデアンでは４バイト目に変更がありやすいという情報になる。
【００５８】
ステップ１００３では差分抽出結果情報を読み込み、更新データの領域がどこからかがわかる。この結果から、ステップ４０１で、アドレス変換対象かどうかを判断し、アドレス変換対象であれば、ステップ１００５でアドレス変換を行う。変換には基準バイトで並んだ情報に基づき、１バイト目だけを連続、２バイト目だけを連続と配置していく。インデアンがリトルインデアンなら、次に４バイト目とし、最後に３バイト目とする。このようにすることにより変換対象範囲内では更新されるデータを集中させることができる。
【００５９】
ステップ１００４、１００５、１００６はデータ処理が終わるまで繰り返される処理である。データ処理が終わると終了する。
【００６０】
また、アドレスの逆変換に関しては、１バイト目だけに修正していくという意味で、ステップ１００５が全く逆の操作になるだけで実現できる。
【００６１】
次に、図２３を用いて、差分適用のフローを説明する。ステップ１１０１で差分データを読み込む。差分データには、データはそのままか、コピーか、挿入するべきデータが入っており、このほかにアドレス空間の変換の範囲に関する情報も含まれる。
【００６２】
差分適用ではアドレス空間の変換情報は関係なく、コマンドに記載されているコピーか、そのままか、または挿入をそのまま実行する。そのために、ステップ１１０２で旧版を読み込み、ステップ１１０３で差分コマンドを順に解析しはじめ、ステップ１１０４でコマンドを実行し、ステップ１１０５で終了判定を行う。終了でなければ、ステップ１１０３から再度実行を繰りかえす。
【００６３】
以上、実施の例で説明したように、アドレス空間の変換を行うことにより、差分の出る部分を一部に集めることができ、差分情報を小さくすることができるという効果がある。また、データの特性を利用したり、データの明らかな挿入部分を判定したりすることにより、より変更部分を集中できるという効果がある。
【００６４】
差分抽出装置および差分適用装置は、コンピュータであり、各要素はプログラムにより処理を実行することができる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
【００６５】
図２４は、差分抽出装置および差分適用装置のハードウエア構成例を示す図である。バスに、演算装置９９０１、データ記憶装置９９０２、メモリ９９０３が接続されている。データ記憶装置９９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスクである。メモリ９９０３は、通常ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００６６】
プログラムは、通常データ記憶装置９９０２に記憶されており、メモリ９９０３にロードされた状態で、順次演算装置９９０１に読み込まれ処理を行う。
【００６７】
実施の形態９．
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、差分情報を小さくすること、およびそのような差分抽出装置と差分適用装置を提供することを目的とする。
【００６８】
複数の可変長レコードが連結されて生成されるデータにおいて、バージョンアップ時にレコードが単に追加、削除されるだけでなく、レコード間の依存関係の影響により既存レコード内の１個以上の特定要素のみが頻繁に変更になり、その他の要素は滅多に変更にならない、という傾向を持つものが存在する。
【００６９】
前記のようなデータに対して、従来から提案されているようにデータの先頭から旧版データと新版データを比較して、“複写”、“置換”、“挿入”、“削除”などによって差分情報を表現した場合、既存レコード部分に対する差分情報は“複写”と“置換”が交互に多くの回数現れる形となり、差分情報のサイズが大きくなってしまう。
【００７０】
そこで、本実施の形態ではデータを「頻繁に変更になる部分」と「滅多に変更にならない部分」とに分割し、それぞれの部分に対して差分情報を抽出することによって“複写”と“置換”が交互に現れるパターンを少なくし、それによって差分情報のサイズを小さくする。
【００７１】
以下、図面を用いながら本実施の形態を説明する。図２５は本実施の形態のソフトウエア差分抽出適用システムの構成を示す図である。本装置は差分抽出装置１１００と差分適用装置１１５０とからなる。本実施の形態では、差分抽出装置１１００は旧版ファイル１１１１と新版ファイル１１２１から差分情報を抽出し、差分適用装置１１５０は旧版データ１１６１に差分抽出装置１１００が生成した差分情報を適用して新版データ１１７３を生成する。
【００７２】
最初に差分抽出装置１１００の動作を説明する。
【００７３】
差分抽出装置１１００では、まずフォーマット解析部１１０１によってファイルの内容（フォーマット）を解析し、レコード単位で区別する。例えば、図２６と図２７に示すような旧版ファイル１２０１と新版ファイル１２０２をレコード単位で区切った場合に、それぞれ解析後旧版データ１２０３と解析後新版データ１２０４のようになるものとする。解析後旧版データ１２０３と解析後新版データ１２０４の各行がそれぞれレコードを示し、各列がレコードの要素（データ要素）を示すものとする。図２６と図２７の例では各要素は１バイトからなるものとしているが、要素のサイズは２バイト以上でもよい。図２６と図２７から、旧版から新版への変更内容は「２番目と３番目のレコードの間へのレコード“４４３３２２１１００”の追加」と「各レコードの３番目の要素と５番目の要素の変更」であることが分かる。
【００７４】
次に外部から与えられる差分傾向情報１１３１を入力として、データ分割部１１０２が解析後旧版データ１１１２を旧版分割データＡ（第１の旧版分割データ）１１１３と旧版分割データＢ（第２の旧版分割データ）１１１４に、解析後新版データ１１２２を新版分割データＡ（第１の新版分割データ）１１２３と新版分割データＢ（第２の新版分割データ）１１２４にそれぞれ分割する。
【００７５】
図２８と図２９はデータ分割部１１０２の動作例を示している。差分傾向情報１３０１は各レコードの３番目の要素と５番目の要素が変更になりやすい（旧版と新版とで異なる傾向が強い）ことを示している。レコードによっては５番目の要素を持たないものがあるが、そのようなレコードは３番目の要素のみが変更になりやすいものとして扱う。データ分割部１１０２によって解析後旧版データ１２０３は旧版分割データＡ１３０２と旧版分割データＢ１３０３に、解析後新版データ１２０４は新版分割データＡ１３０４と新版分割データＢ１３０５にそれぞれ分割される。各レコードの３番目の要素と５番目の要素はそれぞれ旧版分割データＢ１３０３と新版分割データＢ１３０５に割り当てられる。
【００７６】
次に差分情報生成部１１０３が旧版分割データＡ１１１３と新版分割データＡ１１２３、旧版分割データＢ１１１４と新版分割データＢ１１２４を比較し、あらかじめ定められた差分表現方式に従って差分情報をそれぞれ差分データＡ（第１の差分情報）１１３２と差分データＢ（第２の差分情報）１１３３として出力する。
【００７７】
図３０と図３１は差分情報生成部１１０３の動作例を示している。差分データＡ１４０１は旧版分割データＡ１３０２と新版分割データＡ１３０４の差分情報の例であり、差分データＢ１４０２は旧版分割データＢ１３０３と新版分割データＢ１３０５の差分情報の例である。例えば、差分データＡ１４０１の一行目は旧版分割データＡ１３０２の０番地から６バイト分を新版分割データＡ１３０４の先頭に複写すること（同一の領域であること）を示し、二行目が３バイトのデータ“４４３３１１”を新版分割データＡ１３０４の続きの部分に挿入すること（位置ずれ）を示し、三行目が旧版分割データＡ１３０２の９番地から６バイト分のデータを新版分割データＡ１３０４の続きに複写することを示している。また、差分データＢ１４０２の一行目は３バイトのデータ“２３４５８９”で新版分割データＡ１３０４の先頭を置換すること（異なったデータであること）を示し、二行目が２バイトのデータ“２２００”を新版分割データＢ１３０５の続きの部分に挿入することを示し、三行目が３バイトのデータ“ＢＣＤＥ０１”で新版分割データＢ１３０５の続きの部分を置換することを示している。
【００７８】
一方、図３２のデータ１４０３は、本実施の形態のようなデータ分割をしない場合の旧版ファイル１２０１と新版ファイル１２０２との間の差分情報の例を示している。データ１４０３は、差分データＡ１４０１と差分データＢ１４０２、および差分傾向情報１１３１をあわせたものより明らかにデータサイズが大きく、データを分割してから差分情報を取る本実施の形態の方が、データを分割せずに差分情報を取る従来方式より優れていることが分かる。
【００７９】
次に差分適用装置１１５０の動作を説明する。
【００８０】
差分適用装置１１５０は差分抽出装置１１００で使用するものと同じ差分傾向情報１１８１と、差分適用装置１１５０の出力である差分データＡ１１８２、差分データＢ１１８３を入力として用いる。差分適用装置１１５０は旧版データ１１６１をハードディスクやフラッシュメモリ上に保持しており、これを新版データ１１７３に置き換える機能を実現する。
【００８１】
差分適用にあたっては、まずフォーマット解析部１１５１によって旧版データ１１６１を解析し、解析後旧版データ１１６２を生成する。フォーマット解析部１１５１の動作は、差分抽出装置１１００のフォーマット解析部１１０１と同様の動作である。
【００８２】
次に、データ分割部１１５２が差分傾向情報１１８１を元に、解析後旧版データ１１６２を旧版分割データＡ（一の旧版分割データ）１１６３と旧版分割データＢ（他の旧版分割データ）１１６４に分割する。ここで差分抽出装置１１００のデータ分割部１１０２とは異なり、データ分割部１１５２は旧版分割データＡ１１６３と旧版分割データＢ１１６４をレコード単位で記憶する。
【００８３】
図３３はデータ分割部１１５２の動作例を示す。解析後旧版データ１５０１を差分傾向情報１３０１に基づいて分割した結果が旧版分割データＡ１５０２と旧版分割データＢ１５０３である。旧版分割データＡ１５０２、旧版分割データＢ１５０３ともにレコード単位で区切られている。
【００８４】
次に差分情報適用部１１５３は、旧版分割データＡ１１６３に差分データＡ１１８２を適用して新版分割データＡ１１７１を、旧版分割データＢ１１６４に差分データＢ１１８３を適用して新版分割データＢ１１７２をそれぞれ生成する。
【００８５】
図３４と図３５に差分情報適用部１１５３の動作例を示す。まず、旧版分割データＡ１５０２に差分データＡ１６０１を適用して新版分割データＡ１６０３を生成する。差分データＡ１６０１の一行目から解析を開始し、旧版分割データＡ１３０２の０番地から６バイト分の複写、３バイトデータ“４４３３１１”の追加、旧版分割データＡ１３０２の９番地から６バイト分の複写によって新版分割データＡ１６０３を生成する。次に、旧版分割データＢ１５０３に差分データＢ１６０２を適用して新版分割データＢ１６０４を生成する。差分データＢ１６０２が示す３バイトデータ“２３４５８９”による置換、２バイトデータ“２２００”の追加、３バイトデータ“ＢＣＤＥ０１”による置換によって新版分割データＢ１６０４を生成する。
【００８６】
最後に、データ統合部１１５４が新版分割データＡ１１７１と新版分割データＢ１１７２を統合して新版データ１１７３を生成する。データの統合に際しては差分傾向情報１１８１を用い、レコード単位で分割データを統合した後、各レコードを連結して新版データ１１７３を得る。
【００８７】
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、明らかに差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
【００８８】
以上、本実施の形態で説明したソフトウエア差分抽出適用システムは、
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなる差分抽出適用システムであって、
旧版ファイルと新版ファイルが論理的に意味のあるデータ集合である可変長のレコードごとに区別可能である場合に、
差分抽出装置は、少なくとも
旧版ファイルと新版ファイルをそれぞれレコードごとに区別するフォーマット解析部と、
レコード内で内容が変更になりやすい要素を記述した差分傾向情報を元に、レコードごとに区別された旧版ファイルを変更量の少ない旧版分割データＡと変更量の多い旧版分割データＢに、レコードごとに区別された新版ファイルを変更量の少ない新版分割データＡと変更量の多い新版分割データＢに分割するデータ分割部と、
旧版分割データＡと新版分割データＡ、および旧版分割データＢと新版分割データＢをそれぞれ比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とをそれぞれ差分データＡ、差分データＢとして生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
装置内に保持する旧版データをそれぞれレコードごとに区別するフォーマット解析部と、
前記差分傾向情報と前記レコードごとに区別された旧版データから、変更量の少ない旧版分割データＡと変更量の多い旧版分割データＢを生成するデータ分割部と、
前記差分データＡを前記旧版分割データＡに適用して新版分割データＡを再生し、前記差分データＢを前記旧版分割データＢに適用して新版分割データＢを再生する差分情報適用部と、
前記差分傾向情報と前記新版分割データＡと前記新版分割データＢから、新版データを生成するデータ統合部とを有することを特徴とする。
【００８９】
実施の形態１０．
実施の形態９のように、差分適用装置がデータ分割部を有する代わりに、差分情報適用部で、差分傾向情報を元に、旧版データに対して、差分データＡ（第１の差分情報）と差分データＢ（第２の差分情報）を適用し、データ統合部で、差分データＡと差分データＢを適用したレコードを１レコードずつ元のフォーマットに統合する形態について詳述する。
【００９０】
以下、図面を用いながら本実施の形態を説明する。図３６は本実施の形態のソフトウエア差分抽出適用システムにおける差分適用装置の構成を示している。差分適用装置１７００は旧版データ１７１１に差分情報を適用して新版データ１７１６を生成する。なお、差分抽出装置は図２５に示す差分抽出装置１１００と同様である。
【００９１】
以下、差分適用装置１７００の動作を説明する。
【００９２】
最初にフォーマット解析部１７０１は旧版データ１７１１を解析して解析後旧版データ１７１２を生成する。
【００９３】
次に差分情報適用部１７０２が解析後旧版データ１７１２と差分傾向情報１７１３、差分データＡ１７１４、差分データＢ１７１５から新版データ１７１６を１レコードずつ生成する。
【００９４】
１レコード生成されるごとに、データ統合部１７０３が生成されたレコードを連結して新版データ１７１６を得る。
【００９５】
図３７を用いて差分情報適用部１７０２が新版データを１レコードずつ生成する手順の詳細を説明する。
【００９６】
まず、差分データＡ１８０３から先頭の差分情報「複写６バイト０番地」を読み込む。そして、「６バイト０番地」に相当する部分レコードを解析後旧版データ１８０２から探す。差分傾向情報１８０１から３番目の要素と５番目の要素を外して探すことによって、２レコード分の“００１１３３５５”と“６６７７”が「複写」に対応していることが分かる。同様に、差分データＢ１８０４から先頭の差分情報「置換３バイト“２３４５８９”」を読み込み、置換対象となる部分レコードを解析後旧版データ１８０２から探す。この場合、２レコード分にあたる“２２４４”と“８８”が置換対象となることが分かる。そして“００１１３３５５”と“２２４４”の置換後データとなる“２３４５”を組み合わせて新版データ１８０５の１番目のレコード“００１１２３３３４５５５”を生成、出力する。同様に“６６７７”と“８８”の置換後データとなる“８９”を組み合わせて新版データ１８０５の２番目のレコード“６６７７８９”を生成する。
【００９７】
次に差分データＡ１８０３から２番目の差分情報「挿入３バイト“４４３３１１”」を読み込む。同様に差分データＢ１８０４から２番目の差分情報「挿入２バイト“２２００”」を読み込む。これらの情報を組み合わせることで新版データ１８０５の３番目のレコード“４４３３２２１１００”を生成する。
【００９８】
最後に差分データＡ１８０３から３番目の差分情報「複写６バイト１０番地」、差分データＢ１８０４から３番目の差分情報「置換３バイト“ＢＣＤＥ０１”」を読み込む。以降の処理は１番目の差分情報を処理した場合と同様なので説明を省略するが、新版データ１８０５の４番目のレコードと５番目のレコードをそれぞれ生成することができる。
【００９９】
以上の処理内容において、新版データのレコードを１つ生成した時点で、データ統合部１７０３が新版データの格納先に順次レコードを書き込むことによって、新版データ１７１６を生成する手順の中で新版データ１７１６のためのワーク領域を確保する必要がなくなる。一方、実施の形態９では新版分割データＡ１１７１と新版分割データＢ１１７２のためのワーク領域が必要であった。
【０１００】
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、明らかに差分情報が小さくなる効果があると共に、ワーク領域が限られたシステムにおいても差分適用を実現できるという効果がある。
【０１０１】
以上、本実施の形態で説明したソフトウエア差分抽出適用システムは、
差分適用装置が少なくとも
装置内に保持する旧版データをそれぞれレコードごとに区別するフォーマット解析部と、
差分データＡと差分データＢ、および差分傾向情報と旧版データから新版データを１レコードずつ生成する差分情報適用部とを有することを特徴とする。
【０１０２】
実施の形態１１．
差分抽出装置が差分傾向情報を生成することを特徴とする形態について詳述する。
【０１０３】
本実施の形態では、フォーマット解析部１１０１は、図２５に示したように旧版ファイル１１１１と新版ファイル１１２１から解析後旧版データ１１１２と解析後新版データ１１２２を生成するだけでなく、解析後旧版データ１１１２と解析後新版データ１１２２から差分傾向情報１１３１を生成する。
【０１０４】
差分傾向情報１１３１の生成方法の一例を説明する。フォーマット解析部１１０１はレコード単位で解析後旧版データ１１１２と解析後新版データ１１２２を比較し、一致すると思われる（対応する）レコードの組合せを見つけ出す。ここで、一致（比較したレコードが互いに対応する）と判断する条件として例えば、レコードの全要素のうち、一致する要素の数が一定の比率以上である、といった条件を用いる。そして、一致すると思われるレコードの組合せ全てについて、各要素が一致するかどうかの統計を取り、一致しない確率がある一定値以上であるような要素は「変更になりやすい」要素とみなし、差分傾向情報１１３１に記載する。
【０１０５】
以下、図２６と図２７のデータを例として差分傾向情報１１３１の生成方法を説明する。まず、レコード一致の判断条件を一致要素数が全要素数の６０％以上とし、変更になりやすい要素とみなす条件を５０％以上の確率とする。解析後旧版データ１２０３と解析後新版データ１２０４を比較することで、「旧１番目−新１番目」「旧２番目−新２番目」「旧３番目−新４番目」「旧４番目−新５番目」を一致するレコードとみなすことができる。次に各要素が一致しない確率を計算すると、「１番目の要素：０％」「２番目の要素：０％」「３番目の要素：１００％」「４番目の要素：０％」「５番目の要素：１００％」「６番目の要素：０％」となり、３番目の要素と５番目の要素が差分傾向情報１１３１に記載される。
【０１０６】
本実施の形態では、実施の形態９、１０と同様に差分情報が小さくなる効果があると共に、差分傾向情報を自動的に生成することで、あらかじめ差分抽出適用対象データの差分傾向についての情報（知識）が必要なくなる、という効果がある。後者の効果は特に差分傾向を人手では解析しづらい大規模データに対して有効である。
【０１０７】
以上、本実施の形態で説明したソフトウエア差分抽出適用システムにおいて、
差分抽出装置のフォーマット解析部は、旧版ファイルと新版ファイルをそれぞれレコードごとに区別した後に、旧版ファイルと新版ファイルの内容を比較して差分傾向情報を生成し、
差分抽出装置のデータ分割部は、前記フォーマット解析部の生成した差分傾向情報を用いることを特徴とする。
【０１０８】
実施の形態１２．
実施の形態９の処理手順について、図３８と図３９に示すフローチャートを利用して説明する。図３８は差分抽出装置の動作の例である。図３９は差分適用装置の動作の例である。
【０１０９】
ステップ１８０１では、差分抽出装置のフォーマット解析部が、新版と旧版のファイルをハードディスク装置やその他の媒体上のファイルシステムからメモリ上に読み込む。ステップ１８０２では各ファイルのフォーマットを解析し、内容をレコード単位で区別する。ステップ１８０３ではファイルフォーマットの解析結果を出力する。具体的にはメモリの中で配置しておくだけでもかまわないし、ファイルとして書き出してもかまわない。
【０１１０】
ステップ１８０４では、差分抽出装置のデータ分割部が、差分傾向情報を読み込む。ステップ１８０５では、読み込んだ差分傾向情報を用いて、ステップ１８０３の解析結果であるデータの分割を行う。
【０１１１】
ステップ１８０６では、差分抽出装置の差分情報生成部が、分割したデータから差分を抽出する。ステップ１８０７では差分データを出力する。
【０１１２】
ステップ１８１１では、差分適用装置のフォーマット解析部が、旧版データを読み込み、ステップ１８１２，１８１３では、ステップ１８０２，１８０３と全く同じ処理を行う。
【０１１３】
ステップ１８１４では、差分適用装置のデータ分割部が、差分傾向情報を読み込み、ステップ１８１５では、ステップ１８０４と全く同じ処理を行う。
【０１１４】
ステップ１８１６では、差分適用装置の差分情報適用部が、ステップ１８０６の出力結果である差分データを読み込む。ステップ１８１７では、ステップ１８１５で分割されたデータに対し、差分の適用を行う。
【０１１５】
ステップ１８１８では、差分適用装置のデータ統合部が、差分傾向情報を用い、ステップ１８１７の処理結果である分割データを統合して新版データを生成する。そして、ステップ１８１９で新版データを出力する。
【０１１６】
図４０は、上記実施の形態における差分抽出装置および差分適用装置の外観の一例を示す図である。
【０１１７】
図４０において、差分抽出装置９００および差分適用装置９５０は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置９０１、キーボード（Ｋ／Ｂ）９０２、マウス９０３、コンパクトディスク装置（ＣＤＤ）９０５、プリンタ装置９０６、スキャナ装置９０７を備え、これらはケーブルで接続されている。さらに、差分抽出装置９００および差分適用装置９５０は、ローカルエリアネットワーク（ＬＡＮ）９４２、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【０１１８】
図４１は、上記実施の形態における差分抽出装置および差分適用装置のハードウエア構成の一例を示す図である。
【０１１９】
図４１において、差分抽出装置９００および差分適用装置９５０は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、ＣＲＴ表示装置９０１、Ｋ／Ｂ９０２、マウス９０３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）９０４、磁気ディスク装置９２０、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７と接続されている。
【０１２０】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
【０１２１】
通信ボード９１５は、ＬＡＮ９４２などに接続されている。
【０１２２】
例えば、通信ボード９１５、Ｋ／Ｂ９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部の一例である。また、例えば、通信ボード９１５、ＣＲＴ表示装置９０１などは、出力部の一例である。
【０１２３】
ここで、通信ボード９１５は、ＬＡＮ９４２に限らず、直接、インターネット９４０、あるいはＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）などのＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット９４０、あるいはＩＳＤＮなどのＷＡＮに接続されている場合、差分抽出装置９００および差分適用装置９５０は、インターネット９４０、あるいはＩＳＤＮなどのＷＡＮに接続され、ゲートウェイ９４１は不要となる。
【０１２４】
磁気ディスク装置９２０には、オペレーティングシステム（ＯＳ）９２１、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３は、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【０１２５】
上記プログラム群９２３には、前述した実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【０１２６】
ファイル群９２４には、旧版ファイルや新版ファイルのほか、前述した実施の形態の説明において、「〜結果」として説明するものが、「〜ファイル」として記憶されている。
【０１２７】
また、前述した実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などのその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【０１２８】
また、前述した実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウエアのみ、あるいは、ハードウエアのみ、あるいは、ソフトウエアとハードウエアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【０１２９】
また、前述した実施の形態を実施するプログラムは、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などのその他の記録媒体による記録装置を用いて記憶されても構わない。
【図面の簡単な説明】
【０１３０】
【図１】ソフトウエア差分抽出適用システムの構成を示す図である。
【図２】旧版ファイルの例を示す図である。
【図３】新版ファイルの例を示す図である。
【図４】可変データ補正に係る旧版ファイルの例を示す図である。
【図５】可変データ補正に係る新版ファイルの例を示す図である。
【図６】アドレス空間変換に係る旧版ファイルの例を示す図である。
【図７】アドレス空間変換に係る新版ファイルの例を示す図である。
【図８】アドレス空間変換に係る旧版ファイルの例を示す図である。
【図９】アドレス空間変換に係る新版ファイルの例を示す図である。
【図１０】アドレス空間変換しないファイルに対する差分情報の例を示す図である。
【図１１】アドレス空間変換しないファイルに対する差分情報の例を示す図である。
【図１２】アドレス空間変換したファイルに対する差分情報の例を示す図である。
【図１３】アドレス空間変換したファイルに対する差分情報の例を示す図である。
【図１４】命令コードと命令長の対応表を示す図である。
【図１５】データ構造とデータ長を示す図である。
【図１６】データ挿入がある場合のファイル内容解析の例を示す図である。
【図１７】データ挿入がある場合のアドレス変換の例を示す図である。
【図１８】データ挿入がある場合のアドレス変換の例を示す図である。
【図１９】差分抽出装置の動作フローを示す図である。
【図２０】差分適用装置の動作フローを示す図である。
【図２１】ファイル内容解析のフローを示す図である。
【図２２】アドレス変換のフローを示す図である。
【図２３】差分適用のフローを示す図である。
【図２４】差分抽出装置および差分適用装置のハードウエア構成例を示す図である。
【図２５】ソフトウエア差分抽出適用システムの構成を示す図である。
【図２６】旧版ファイルのフォーマット解析の例を示す図である。
【図２７】新版ファイルのフォーマット解析の例を示す図である。
【図２８】旧版データのデータ分割の例を示す図である。
【図２９】新版データのデータ分割の例を示す図である。
【図３０】データ分割したデータの差分抽出の例を示す図である。
【図３１】データ分割したデータの差分抽出の例を示す図である。
【図３２】データ分割しないデータに対する差分情報の例を示す図である。
【図３３】旧版データのデータ分割の例を示す図である。
【図３４】データ分割したデータに対する差分適用の例を示す図である。
【図３５】データ分割したデータに対する差分適用の例を示す図である。
【図３６】差分適用装置の構成を示す図である。
【図３７】旧版データに対する差分適用の例を示す図である。
【図３８】差分抽出装置の動作フローを示す図である。
【図３９】差分適用装置の動作フローを示す図である。
【図４０】差分抽出装置および差分適用装置の外観の一例を示す図である。
【図４１】差分抽出装置および差分適用装置のハードウエア構成の一例を示す図である。
【符号の説明】
【０１３１】
１００  差分抽出装置、１０１  旧版ファイル、１０２  新版ファイル、１０３  ファイル内容解析部、１０４  解析後旧版ファイル、１０５  解析後新版ファイル、１０６  アドレス空間変換部、１０７  アドレス変換後旧版ファイル、１０８  アドレス変換後新版ファイル、１０９  差分情報生成部、１１０  差分情報、１５０  差分適用装置、１５１  旧版ファイル、１５２  差分情報、１５３  ファイル内容解析部、１５４  解析後旧版ファイル、１５５  アドレス空間変換部、１５６  アドレス変換後旧版ファイル、１５７  差分情報適用部、１５８  アドレス空間逆変換部、１５９  更新情報保存部、１６０  新版ファイル、１１００  差分抽出装置、１１０１  フォーマット解析部、１１０２  データ分割部、１１０３  差分情報生成部、１１１１  旧版ファイル、１１１２  解析後旧版データ、１１１３  旧版分割データＡ、１１１４  旧版分割データＢ、１１２１  新版ファイル、１１２２  解析後新版データ、１１２３  新版分割データＡ、１１２４  新版分割データＢ、１１３１  差分傾向情報、１１３２  差分データＡ、１１３３  差分データＢ、１１５０  差分適用装置、１１５１  フォーマット解析部、１１５２  データ分割部、１１５３  差分情報適用部、１１５４  データ統合部、１１６１  旧版データ、１１６２  解析後旧版データ、１１６３  旧版分割データＡ、１１６４  旧版分割データＢ、１１７１  新版分割データＡ、１１７２  新版分割データＢ、１１７３  新版データ、１１８１  差分傾向情報、１１８２  差分データＡ、１１８３  差分データＢ、１７００  差分適用装置、１７０１  フォーマット解析部、１７０２  差分情報適用部、１７０３  データ統合部、１７１１  旧版データ、１７１２  解析後旧版データ、１７１３  差分傾向情報、１７１４  差分データＡ、１７１５  差分データＢ、１７１６  新版データ。
【図１】
2006048640.tif 000003
【図２】
2006048640.tif 000004
【図３】
2006048640.tif 000005
【図４】
2006048640.tif 000006
【図５】
2006048640.tif 000007
【図６】
2006048640.tif 000008
【図７】
2006048640.tif 000009
【図８】
2006048640.tif 000010
【図９】
2006048640.tif 000011
【図１０】
2006048640.tif 000012
【図１１】
2006048640.tif 000013
【図１２】
2006048640.tif 000014
【図１３】
2006048640.tif 000015
【図１４】
2006048640.tif 000016
【図１５】
2006048640.tif 000017
【図１６】
2006048640.tif 000018
【図１７】
2006048640.tif 000019
【図１８】
2006048640.tif 000020
【図１９】
2006048640.tif 000021
【図２０】
2006048640.tif 000022
【図２１】
2006048640.tif 000023
【図２２】
2006048640.tif 000024
【図２３】
2006048640.tif 000025
【図２４】
2006048640.tif 000026
【図２５】
2006048640.tif 000027
【図２６】
2006048640.tif 000028
【図２７】
2006048640.tif 000029
【図２８】
2006048640.tif 000030
【図２９】
2006048640.tif 000031
【図３０】
2006048640.tif 000032
【図３１】
2006048640.tif 000033
【図３２】
2006048640.tif 000034
【図３３】
2006048640.tif 000035
【図３４】
2006048640.tif 000036
【図３５】
2006048640.tif 000037
【図３６】
2006048640.tif 000038
【図３７】
2006048640.tif 000039
【図３８】
2006048640.tif 000040
【図３９】
2006048640.tif 000041
【図４０】
2006048640.tif 000042
【図４１】
2006048640.tif 000043
【手続補正書】
【提出日】平成17年9月9日(2005.9.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
差分抽出装置は、新版ファイル及び旧版ファイルの内容を解析するファイル内容解析部を有し、
差分抽出装置の前記アドレス空間変換部は、内容を解析した新版ファイル及び旧版ファイルを対象としてアドレス空間を変換し、
差分適用装置は、旧版データの内容を解析するデータ内容解析部を有し、
差分適用装置の前記アドレス空間変換部は、内容を解析した旧版データを対象としてアドレス空間を変換することを特徴とする請求項１記載のソフトウエア差分抽出適用システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１７
【補正方法】変更
【補正の内容】
【請求項１７】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）差分抽出装置のアドレス空間変換部が、旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
（２）差分抽出装置の差分情報生成部が、それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分抽出手順。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１８
【補正方法】変更
【補正の内容】
【請求項１８】
差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）差分適用装置のアドレス空間変換部が、旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
（２）差分適用装置の差分情報適用部が、論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分適用手順
（３）差分適用装置のアドレス空間逆変換部が、差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換手順。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２４
【補正方法】変更
【補正の内容】
【請求項２４】
前記第１の差分情報と前記第２の差分情報は、さらに、位置ずれを示す情報を含むことを特徴とする請求項２２又は２３に記載のソフトウエア差分抽出適用システム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２５
【補正方法】変更
【補正の内容】
【請求項２５】
差分抽出装置の前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
差分抽出装置の前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴とする請求項２２から２４いずれかに記載のソフトウエア差分抽出適用システム。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２７
【補正方法】変更
【補正の内容】
【請求項２７】
前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴とする請求項２６記載の差分抽出装置。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３０
【補正方法】変更
【補正の内容】
【請求項３０】
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）差分抽出装置のフォーマット解析部が、旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）差分抽出装置のデータ分割部が、各レコード内でデータを保持する要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強い要素を含む第１の旧版分割データとその他の要素を含む第２の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強い要素を含む第１の新版分割データとその他の要素を含む第２の新版分割データに分割するデータ分割手順
（３）差分抽出装置の差分情報生成部が、第１の旧版分割データと第１の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第１の差分情報として生成するとともに、第２の旧版分割データと第２の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第２の差分情報として生成する差分情報生成手順。
【手続補正８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３１
【補正方法】変更
【補正の内容】
【請求項３１】
前記フォーマット解析手順は、前記フォーマット解析部が、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
前記データ分割手順は、前記データ分割部が、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴とする請求項３０記載のプログラム。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３２
【補正方法】変更
【補正の内容】
【請求項３２】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）差分適用装置のフォーマット解析部が、旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）差分適用装置のデータ分割部が、各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割手順
（３）差分適用装置の差分情報適用部が、一の旧版分割データに対して、前記第１の差分情報を適用するとともに、他の旧版分割データに対して、前記第２の差分情報を適用する差分情報適用手順
（４）差分適用装置のデータ統合部が、第１の差分情報を適用した結果に含まれるデータ要素と第２の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合手順。
【手続補正１０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３３
【補正方法】変更
【補正の内容】
【請求項３３】
第１の差分情報と第２の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
（１）差分適用装置のフォーマット解析部が、旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
（２）差分適用装置の差分情報適用部が、各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第１の差分情報と前記第２の差分情報を適用する差分情報適用手順
（３）差分適用装置のデータ統合部が、１つのレコードに第１の差分情報と第２の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合手順。