JP3733135B1 - ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム - Google Patents

ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム Download PDF

Info

Publication number
JP3733135B1
JP3733135B1 JP2005125209A JP2005125209A JP3733135B1 JP 3733135 B1 JP3733135 B1 JP 3733135B1 JP 2005125209 A JP2005125209 A JP 2005125209A JP 2005125209 A JP2005125209 A JP 2005125209A JP 3733135 B1 JP3733135 B1 JP 3733135B1
Authority
JP
Japan
Prior art keywords
data
difference
old version
information
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005125209A
Other languages
English (en)
Other versions
JP2006048640A (ja
Inventor
聡 三井
良三 清原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005125209A priority Critical patent/JP3733135B1/ja
Application granted granted Critical
Publication of JP3733135B1 publication Critical patent/JP3733135B1/ja
Publication of JP2006048640A publication Critical patent/JP2006048640A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 ソフトウエアのオブジェクトモジュールについて新旧バージョン間の差分を抽出する差分抽出装置、および旧版に差分を適用し新版を作成する差分適用装置に係り、差分情報を小さくすることを課題とする。
【解決手段】 旧版及び新版について、ファイル内容解析部103によりファイルの内容を解析した後に、アドレス空間変換部106で物理的な連続アドレス空間を別の論理アドレス空間にマッピングし、それらの差分を抽出する。適用の際は、同様に旧版を解析し、アドレス空間変換した結果に、差分を適用してから、アドレス空間逆変換部158で、元のアドレスに戻して新版を得る。
【選択図】 図1

Description

本発明は、ソフトウエアのオブジェクトモジュールについて新旧バージョン間の差分を抽出する差分抽出装置、および旧版に差分を適用し新版を作成する差分適用装置に関する。
PC上のソフトウエアや携帯電話のソフトウエアの不具合修正や、データベースの更新などネットワークを利用して更新することが多くなってきた。ネットワークの帯域も広く、かなり現実的な時間でデータをダウロードして更新できるようになってきた。
しかしながら、大規模なソフトウエアについてバージョンアップのために最新のソフトウエアをすべて通信するような場合には、時間がかかるという問題もある。
例えば、特開2001−273147号公報では、このような課題を解決するためにバージョン情報を保持し、バージョン間で、削減されるファイルと更新されるファイルの情報を差分情報として使い、バージョンアップ時には必要なファイルのみを送信するという方法で解決を図っている。しかしながら、PCなどでは実行プログラムがファイルで実現されているため、その実行ファイルが一つの大きなファイルだけの場合や、組込み機器などファイルで実装されていないものに対しては解決できていない。
例えば、特開2002−342100号公報では、このような課題を組み込み機器で解決するために、組込み機器のプログラムの構成をモジュール構成としてフラッシュROM上へ工夫して配置することにより、モジュールごとの修正ですむようにして解決を図っている。しかしながら一般にバージョンアップをすると、アドレスでリンクしている場合には参照関係が利いてくるため全モジュールに影響が及ぶことが多く、この方式だけでは解決にはなっていない。
例えば、特表2002−523825号公報では、上記の問題を解決するため、さらにプログラムの構造に着目して組み込み機器などではアドレス情報の部分にのみ変化が起こることに着目し、アドレス部を他のデータとは異なる方法で書き換える技術を開示している。この技術によれば差分情報は小さくなる。しかしながら、あくまでも旧プログラムに対してプログラムコードの挿入や削除が合った場合の位置ずれの表現方法でのコンパクト化にすぎない。これだけでは単純に位置ずれだけで表現しきれない場合には対応できないという問題があった。
また、特開2003−337723号公報に開示されているように差分情報は基本的には“同じ”、“移動”、“挿入”、“削除”で表せて、差分抽出の比較の範囲を広くすることにより差分データを小さくする技術が開示されている。
特開2001−273147号公報 特開2002−342100号公報 特表2002−523825号公報 特開2003−337723号公報
本発明は、上記した従来技術の欠点を除くためになされたものであって、その目的とするところは、ソフトウエア大規模化に対応すべく、差分情報を小さくすることにある。
本発明に係るソフトウエア差分抽出適用システムは、
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルに適用して新版ファイルを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
差分抽出装置は、少なくとも
(1)旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
(2)それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
(3)旧版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
(4)論理アドレス空間にマッピングした旧版ファイルに対して、前記差分情報を適用する差分情報適用部と、
(5)差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部とを有することを特徴とする。
本発明によって、差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
実施の形態1.
多くのプログラムでは、1行の追加でも広くプログラムの位置ずれの関係で影響が出てしまう。この中の多くはアドレス部分である。プログラムの移動や追加の情報を差分情報で表す場合、この修正部分はどこであるのかを示す情報が必要となってくる。そのため、修正部分はできるだけ偏ってあるほうが望ましい。
そこで、本発明では差分抽出に対しては物理的なアドレス空間ではなく、論理的なアドレス空間を利用することにより解決する。
例えば、少しの修正で、アドレス空間上2バイト程度のずれであれば、プログラムのアドレスパートのうちの該当のバイト部分にだけ差分は発生する。それ以外の部分は同じである。これが、リトルインデアンのCPUならば上位バイトになるし、ビッグインデアンのCPUなら下位バイトになるように、対象となるアーキテクチャや、データの性質によってどこが変化するのかが変わる。本発明では、この性質を応用して論理アドレス空間を決めることにより差分を小さくする。
以下、図面を用いながら本発明の実施の例につき、詳細に説明する。図1は本発明にソフトウエア差分抽出適用システムの構成を示す図である。本装置は、差分抽出装置100と差分適用装置150とからなる。本実施の例では、差分抽出装置100は旧版ファイル101と新版ファイル102から差分情報をとる。
差分抽出にあたっては、まずファイル内容解析部103によってファイルの内容を解析する。例えば、図2と図3に示すような旧版ファイル201や新版ファイル202であった場合は、ファイルの内容から32ビットであらわすアドレス情報が並んでいることがわかり、そのままの出力となる。
図4と図5に示すような旧版ファイル210や新版ファイル211においては、32ビット長の命令と16ビット長の命令が混在している。このような場合は、固定長のデータと同様の並びを実現するために、16ビットの命令のあとを16ビット分の空欄とする。ファイル内容解析部103のアウトプットとして、このような可変長のデータを補正したファイルが出力される。この例では、旧版ファイルを補正した解析後の旧版ファイル212、新版ファイルを補正した解析後の新版ファイル213が出力される。ファイル内容解析部103の具体的な実施例は、後述する。
ファイル内容解析部103の出力として、解析後の旧版ファイル104、解析後の新版ファイル105が得られる。これらのファイル104,105は、前記の212,213であったり、201,202であったりする。
次にこれらの解析後の旧版ファイル104,新版ファイル105に対して、アドレス空間変換部106によりアドレス空間を変換する。具体的には図6から図9に示す。
図6の301は、解析後の旧版ファイルの物理アドレス空間を論理アドレス空間に変換した例である。具体的には、物理アドレス空間を4で割ったあまりで1のものを連続させ、次に2のものを連続させ、次に3のものを連続させ、次に4を連続させている。図7の302は、新版ファイル202を同様に処理したものである。
一方、図8に示す311と,図9に示す312は、解析後の旧版ファイル212,新版ファイル213から同様の処理をしている。固定長に変換するために空となる部分に関しては省いて連続にしている。
アドレス空間変換部106のより具体的な実施の例に関しては、後述する。
アドレス空間変換部106から、アドレス変換後の旧版ファイル107とアドレス変換後の新版ファイル108が出力される。これは上述した301,302あるいは311,312のことである。
差分情報生成部109は、これらの旧版ファイル107と新版ファイル108から差分情報を生成する。差分情報生成部109は、2つのファイルを比較し全く同じであるか、位置がずれた状態であるか、新しいデータであるかを表わす差分情報110を出力する。この差分情報生成部に関しては、従来技術である特開2003−337723公報に示された方法を利用してかまわない。
図10から図13は、差分情報110の具体的例を示す図である。401は本発明によらず、元の旧版201と新版202のファイルを直接比較した差分情報である。すべてが新しいデータとして表現される。実際には同じデータがあるため、全く同じであることを示すSKIP情報で出力するべきだが、SKIP情報はどのアドレスから始まるのかという情報が必要なため、全く同じデータがアドレス空間を示すためのビット長以上になければ有効ではない。そのためこの例ではすべてが新しいデータとして表現される。
図11の402は、210と211を比較した差分情報である。この場合も、アドレス空間を32ビットとした場合にすべてがデータとして表現されている。仮にアドレス空間が16ビット程度となると一部SKIPで表現可能であるが、差分の大きさに対しては大した影響が出ない。
図12の403は、301と302を比較した差分情報である。ここでは変更された部分が一部に集中する傾向になるためSKIP情報が有効に出力される。そのため、差分データが401に比べて飛躍的に小さくなっている。
図13の404は、311と312を比較した差分情報であり、403と同サイズの差分データとなっている。
次に、生成された差分情報を旧版に適用して新版を作成する方法に関して説明する。
図1の150が差分適用装置であり、携帯電話機などの組込み機器や、クライアントサーバモデルのクライアントPCなどがこれにあたる。この端末上では、動作可能な旧版ファイル151と取り込んだ差分情報152から新版ファイル160を作成する。この例では、ファイル形態のデータを示すが、他の形態であっても構わない。つまり、旧版ファイルと新版ファイルは、旧版データと新版データの例であって、メモリ上に配置された実行コードを含むデータの形態や、データベース上に配置されたデータの形態であっても、新版データと旧版データとして有効である。
ファイル内容解析部(データ内容解析部の例)153は、ファイル内容解析部103と同じ機能で実現可能である。その結果解析後の旧版ファイル154が出力される。この結果は104と同じものである。アドレス空間変換部155によってアドレス変換を行うとアドレス変換後の旧版ファイル156が出力される。これも107と同じものである。そして、差分情報適用部157により前記差分情報152をアドレス変換後の旧版ファイル156に対して適用する。
この適用方法は、特開2003−337723号公報に開示されている方法でもかまわないし、差分情報ファイルの内容にしたがって、旧版に上書きしていくことにより作成してもよい。さらに詳細については、後述する。また、アドレス空間逆変換部158によりアドレス空間変換を逆に適用することにより元のアドレス空間に戻し、更新情報保存部159によりハードディスク装置や、フラッシュROMといった保存領域に保存する。
本実施の形態では、明らかに差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
実施の形態2.
ファイル内容解析部で、対象とする内容が命令コードであった場合に、命令長に応じて命令ごとに区別する形態について詳述する。
図14は、ファイル内容解析部に利用する命令コードと命令長の対応表の例である。501では、命令コードのF000は4バイト長、DE89は、2バイト長であることを示している。ファイル内容解析部103,153では、最初からこの表を利用してファイルをすべて読み込んでこの命令長にあわせたフォーマットに変換をする。最大のバイト数にあわせて、空を入れることにより実現する。また、これはあくまでも実施の例であり、命令長は、1バイト、2バイト、4バイトといったように何種類あってもかまわない。
実施の形態3.
ファイル内容解析部で、対象とする内容がデータであり、データが論理的に意味のあるデータ集合であるレコードごとに区別可能である場合に、レコードごとに区別する形態について説明する。
図14に示したように命令ではなくデータであった場合に関して同様の処理を行う。具体的には図15に示すようにデータの構造を表にしておき、この構造にそってデータを解析し、比較可能なフォーマットに変換する。必要ならば空欄を入れてあたかも固定長のデータであるようにする。
実施の形態4.
ファイル内容解析部で、事前に差分情報を取得することによりデータの挿入があった場所を解析結果として出力する形態について説明する。
ファイル内容解析部103,153では、最初に、一旦差分情報を抽出する。その上で、変更の偏りを分析する。たとえば、図3に示した202では、4の倍数で示されるアドレス部分に修正が多いことがわかる。また、4バイトごとに差分が出ることもわかる。この結果、論理空間を4の倍数で割ったあまりにすることによって差分を一部に集中させることができる。また、その出方により、一定のアドレス部分以外が変わっていることからデータの挿入であることを認識し、解析結果に、ここから先はデータの挿入であるという情報を出力する。具体的には図16にその例を示す。
601が旧版ファイルであり、602が新版ファイルである。これを比較するとまとまって差分が出てデータ挿入となる部分が出てくる。602におけるA0B0C0D0の部分でこういう部分をみつけたら、603,604のようにデータの挿入であることを解析結果に出力することができる。
実施の形態5.
データ挿入があったことがわかった場合には、そのデータ挿入部分より前の部分をアドレス空間として変換し、更に、データ挿入部分より後の部分を改めてアドレス空間として変換する形態について説明する。
実施の形態4に示すようにデータ挿入部分であることがわかるような情報がある場合には、データ挿入部分まででアドレス空間変換を実施する。その例を図17と図18に示す。
701,702は、603,604と同じでファイル内容解析部の出力結果である。703,704は、データ挿入の情報のある位置で一旦論理空間への変換を行い、データ挿入部分はそのままとし、更にデータ挿入部分より後の部分を再びアドレス変換をかけた結果である。このようにすることによって、全体のアドレス変換をかけるよりも変更部分を集中させることができる。
実施の形態6.
アドレス空間の変換単位を示す情報を差分情報に付加する形態について説明する。
差分抽出装置では、前記データ挿入位置で一旦切った旨の情報(アドレス空間の変換単位を示す情報の例)を差分情報に入れる。具体的にはアドレス変換完了、開始の情報を元に差分データにも変換完了と開始の情報をそのまま1バイト程度の情報で入れておくことで実現できる。
実施の形態7.
差分データに基づいて、ファイル内容解析部とアドレス空間変換部によって変換されたデータに対して差分情報を適用し、さらに元のアドレス空間に変換する形態について説明する。
差分情報にアドレス変換の開始、終了情報が記載されている限りにおいては、元のアドレス空間に変換する際にも同様の処理を行えばよいだけである。具体的には、差分情報を読み、旧版ファイル全体を処理対象として順次必要な情報を書いていく処理を行うが、差分ファイル上で、アドレス変換完了の情報が来た時点で、一旦アドレス変換をせずに差分を適用して、その後現実のアドレスで差分データを適用し、さらにアドレス変換開始の情報がきたら再度アドレス変換を開始するという方法で実現することができる。
実施の形態1から7までの技術を組み合わせることにより、新版と旧版での差分の出方に偏りを作ることができ、差分量を減らすことができる。
実施の形態8.
処理について、図19と図20に示すフローチャートを利用して詳述する。図19は差分抽出装置の動作の例である。図20は差分適用装置の動作の例である。
ステップ801では、新版と旧版の例えばバイナリイメージファイルをハードディスク装置やその他の媒体上のファイルシステムからメモリ上に読み込む。ステップ802では差分の傾向を見るために差分抽出を行う。この結果、差分が十分小さければこの段階で終了し、差分情報を出力してもかまわない。差分が小さいかどうかは想定する目標サイズと比較してどうかを決めればよい。目標サイズは通信環境、および転送時間から決めることができる。
ステップ803ではステップ802の結果、データ挿入であるとした部分にマークを入れる。ステップ804ではファイルの内容を解析する。ファイル内容の解析フローに関しては図21を用いて後述する。ステップ805ではファイル内容の解析結果を出力する。具体的にはメモリの中で配置しておくだけでもかまわないし、ファイルとして書き出してもかまわない。
ステップ806ではアドレス空間の変換を行う。具体的なフローは図22を用いて後述する。ステップ807ではアドレス空間の変換結果から差分を抽出する。差分抽出は特開2003−337723に開示されているように同一のもの、位置ずれのもの、挿入のものと分ける形で行う。ステップ808では差分情報ファイルを出力する。
ステップ811では旧版ファイルを読み込み、ステップ812,813では、ステップ804,805と全く同じ処理を行う。ステップ814ではステップ808の出力結果である差分情報ファイルを読み込む。ステップ815でアドレス空間変換を行う。アドレス空間変換のより具体的なフローは図22を用いて後述する。
ステップ816では差分の適用を行う。差分適用のより具体的なフローは図23を用いて後述する。ステップ817ではアドレス空間を逆変換する。逆変換に関しては図22を利用して具体的なフローを後述する。ステップ818で新版を出力するが、対象はファイルシステムでもフラッシュROMでもかまわない。対象はプログラムやデータを記憶する記憶媒体である。
続いて、図21を用いてファイル内容解析のフローの例を示す。ステップ901で対象のファイルをメモリ上に配置する。ステップ902でデータの特性を示す対応表を読みこむ。これは、例えば図14に示す命令コードと命令長の対応表や図15に示すデータ構造を示す情報でもかまわない。
ステップ903では1バイトずつ読み込んで、命令コード表を参照して、読み込んだデータが何バイトの命令かを判断する。たとえば基準バイト数を4バイトに決めていた場合、この基準バイト数に足りない部分を空で埋めて、例えば図4に示す212の形式にする。
この操作をステップ903,904,905と繰り返す。ステップ906では繰り返しの判定を行う。このようにしてファイル情報を解析する。この例では命令コードでの判定を行っているが、データ構造から判断してもかまわない。
次に、図22を用いてアドレス空間変換のフローの例を示す。ステップ1001で対象ファイルを読み込む。ステップ1002で、データ特性を読み込む。このデータ特性は例えばインデアンがリトルインデアンであるといった情報であり、どこに差分が出やすいかを示す情報である。例えば4バイト命令の命令でアドレス部の下位の部分が変わりやすい場合に、リトルインデアンでは3バイト目に変更がありやすく、ビッグインデアンでは4バイト目に変更がありやすいという情報になる。
ステップ1003では差分抽出結果情報を読み込み、更新データの領域がどこからかがわかる。この結果から、ステップ401で、アドレス変換対象かどうかを判断し、アドレス変換対象であれば、ステップ1005でアドレス変換を行う。変換には基準バイトで並んだ情報に基づき、1バイト目だけを連続、2バイト目だけを連続と配置していく。インデアンがリトルインデアンなら、次に4バイト目とし、最後に3バイト目とする。このようにすることにより変換対象範囲内では更新されるデータを集中させることができる。
ステップ1004、1005、1006はデータ処理が終わるまで繰り返される処理である。データ処理が終わると終了する。
また、アドレスの逆変換に関しては、1バイト目だけに修正していくという意味で、ステップ1005が全く逆の操作になるだけで実現できる。
次に、図23を用いて、差分適用のフローを説明する。ステップ1101で差分データを読み込む。差分データには、データはそのままか、コピーか、挿入するべきデータが入っており、このほかにアドレス空間の変換の範囲に関する情報も含まれる。
差分適用ではアドレス空間の変換情報は関係なく、コマンドに記載されているコピーか、そのままか、または挿入をそのまま実行する。そのために、ステップ1102で旧版を読み込み、ステップ1103で差分コマンドを順に解析しはじめ、ステップ1104でコマンドを実行し、ステップ1105で終了判定を行う。終了でなければ、ステップ1103から再度実行を繰りかえす。
以上、実施の例で説明したように、アドレス空間の変換を行うことにより、差分の出る部分を一部に集めることができ、差分情報を小さくすることができるという効果がある。また、データの特性を利用したり、データの明らかな挿入部分を判定したりすることにより、より変更部分を集中できるという効果がある。
差分抽出装置および差分適用装置は、コンピュータであり、各要素はプログラムにより処理を実行することができる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
図24は、差分抽出装置および差分適用装置のハードウエア構成例を示す図である。バスに、演算装置9901、データ記憶装置9902、メモリ9903が接続されている。データ記憶装置9902は、例えばROM(Read Only Memory)やハードディスクである。メモリ9903は、通常RAM(Random Access Memory)である。
プログラムは、通常データ記憶装置9902に記憶されており、メモリ9903にロードされた状態で、順次演算装置9901に読み込まれ処理を行う。
実施の形態9.
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、差分情報を小さくすること、およびそのような差分抽出装置と差分適用装置を提供することを目的とする。
複数の可変長レコードが連結されて生成されるデータにおいて、バージョンアップ時にレコードが単に追加、削除されるだけでなく、レコード間の依存関係の影響により既存レコード内の1個以上の特定要素のみが頻繁に変更になり、その他の要素は滅多に変更にならない、という傾向を持つものが存在する。
前記のようなデータに対して、従来から提案されているようにデータの先頭から旧版データと新版データを比較して、“複写”、“置換”、“挿入”、“削除”などによって差分情報を表現した場合、既存レコード部分に対する差分情報は“複写”と“置換”が交互に多くの回数現れる形となり、差分情報のサイズが大きくなってしまう。
そこで、本実施の形態ではデータを「頻繁に変更になる部分」と「滅多に変更にならない部分」とに分割し、それぞれの部分に対して差分情報を抽出することによって“複写”と“置換”が交互に現れるパターンを少なくし、それによって差分情報のサイズを小さくする。
以下、図面を用いながら本実施の形態を説明する。図25は本実施の形態のソフトウエア差分抽出適用システムの構成を示す図である。本装置は差分抽出装置1100と差分適用装置1150とからなる。本実施の形態では、差分抽出装置1100は旧版ファイル1111と新版ファイル1121から差分情報を抽出し、差分適用装置1150は旧版データ1161に差分抽出装置1100が生成した差分情報を適用して新版データ1173を生成する。
最初に差分抽出装置1100の動作を説明する。
差分抽出装置1100では、まずフォーマット解析部1101によってファイルの内容(フォーマット)を解析し、レコード単位で区別する。例えば、図26と図27に示すような旧版ファイル1201と新版ファイル1202をレコード単位で区切った場合に、それぞれ解析後旧版データ1203と解析後新版データ1204のようになるものとする。解析後旧版データ1203と解析後新版データ1204の各行がそれぞれレコードを示し、各列がレコードの要素(データ要素)を示すものとする。図26と図27の例では各要素は1バイトからなるものとしているが、要素のサイズは2バイト以上でもよい。図26と図27から、旧版から新版への変更内容は「2番目と3番目のレコードの間へのレコード“4433221100”の追加」と「各レコードの3番目の要素と5番目の要素の変更」であることが分かる。
次に外部から与えられる差分傾向情報1131を入力として、データ分割部1102が解析後旧版データ1112を旧版分割データA(第1の旧版分割データ)1113と旧版分割データB(第2の旧版分割データ)1114に、解析後新版データ1122を新版分割データA(第1の新版分割データ)1123と新版分割データB(第2の新版分割データ)1124にそれぞれ分割する。
図28と図29はデータ分割部1102の動作例を示している。差分傾向情報1301は各レコードの3番目の要素と5番目の要素が変更になりやすい(旧版と新版とで異なる傾向が強い)ことを示している。レコードによっては5番目の要素を持たないものがあるが、そのようなレコードは3番目の要素のみが変更になりやすいものとして扱う。データ分割部1102によって解析後旧版データ1203は旧版分割データA1302と旧版分割データB1303に、解析後新版データ1204は新版分割データA1304と新版分割データB1305にそれぞれ分割される。各レコードの3番目の要素と5番目の要素はそれぞれ旧版分割データB1303と新版分割データB1305に割り当てられる。
次に差分情報生成部1103が旧版分割データA1113と新版分割データA1123、旧版分割データB1114と新版分割データB1124を比較し、あらかじめ定められた差分表現方式に従って差分情報をそれぞれ差分データA(第1の差分情報)1132と差分データB(第2の差分情報)1133として出力する。
図30と図31は差分情報生成部1103の動作例を示している。差分データA1401は旧版分割データA1302と新版分割データA1304の差分情報の例であり、差分データB1402は旧版分割データB1303と新版分割データB1305の差分情報の例である。例えば、差分データA1401の一行目は旧版分割データA1302の0番地から6バイト分を新版分割データA1304の先頭に複写すること(同一の領域であること)を示し、二行目が3バイトのデータ“443311”を新版分割データA1304の続きの部分に挿入すること(位置ずれ)を示し、三行目が旧版分割データA1302の9番地から6バイト分のデータを新版分割データA1304の続きに複写することを示している。また、差分データB1402の一行目は3バイトのデータ“234589”で新版分割データA1304の先頭を置換すること(異なったデータであること)を示し、二行目が2バイトのデータ“2200”を新版分割データB1305の続きの部分に挿入することを示し、三行目が3バイトのデータ“BCDE01”で新版分割データB1305の続きの部分を置換することを示している。
一方、図32のデータ1403は、本実施の形態のようなデータ分割をしない場合の旧版ファイル1201と新版ファイル1202との間の差分情報の例を示している。データ1403は、差分データA1401と差分データB1402、および差分傾向情報1131をあわせたものより明らかにデータサイズが大きく、データを分割してから差分情報を取る本実施の形態の方が、データを分割せずに差分情報を取る従来方式より優れていることが分かる。
次に差分適用装置1150の動作を説明する。
差分適用装置1150は差分抽出装置1100で使用するものと同じ差分傾向情報1181と、差分適用装置1150の出力である差分データA1182、差分データB1183を入力として用いる。差分適用装置1150は旧版データ1161をハードディスクやフラッシュメモリ上に保持しており、これを新版データ1173に置き換える機能を実現する。
差分適用にあたっては、まずフォーマット解析部1151によって旧版データ1161を解析し、解析後旧版データ1162を生成する。フォーマット解析部1151の動作は、差分抽出装置1100のフォーマット解析部1101と同様の動作である。
次に、データ分割部1152が差分傾向情報1181を元に、解析後旧版データ1162を旧版分割データA(一の旧版分割データ)1163と旧版分割データB(他の旧版分割データ)1164に分割する。ここで差分抽出装置1100のデータ分割部1102とは異なり、データ分割部1152は旧版分割データA1163と旧版分割データB1164をレコード単位で記憶する。
図33はデータ分割部1152の動作例を示す。解析後旧版データ1501を差分傾向情報1301に基づいて分割した結果が旧版分割データA1502と旧版分割データB1503である。旧版分割データA1502、旧版分割データB1503ともにレコード単位で区切られている。
次に差分情報適用部1153は、旧版分割データA1163に差分データA1182を適用して新版分割データA1171を、旧版分割データB1164に差分データB1183を適用して新版分割データB1172をそれぞれ生成する。
図34と図35に差分情報適用部1153の動作例を示す。まず、旧版分割データA1502に差分データA1601を適用して新版分割データA1603を生成する。差分データA1601の一行目から解析を開始し、旧版分割データA1302の0番地から6バイト分の複写、3バイトデータ“443311”の追加、旧版分割データA1302の9番地から6バイト分の複写によって新版分割データA1603を生成する。次に、旧版分割データB1503に差分データB1602を適用して新版分割データB1604を生成する。差分データB1602が示す3バイトデータ“234589”による置換、2バイトデータ“2200”の追加、3バイトデータ“BCDE01”による置換によって新版分割データB1604を生成する。
最後に、データ統合部1154が新版分割データA1171と新版分割データB1172を統合して新版データ1173を生成する。データの統合に際しては差分傾向情報1181を用い、レコード単位で分割データを統合した後、各レコードを連結して新版データ1173を得る。
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、明らかに差分情報が小さくなる効果があり、特にネットワークを利用したり、シリアル通信など帯域が限られる通信手段でデータを送る場合に有効である。
以上、本実施の形態で説明したソフトウエア差分抽出適用システムは、
旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなる差分抽出適用システムであって、
旧版ファイルと新版ファイルが論理的に意味のあるデータ集合である可変長のレコードごとに区別可能である場合に、
差分抽出装置は、少なくとも
旧版ファイルと新版ファイルをそれぞれレコードごとに区別するフォーマット解析部と、
レコード内で内容が変更になりやすい要素を記述した差分傾向情報を元に、レコードごとに区別された旧版ファイルを変更量の少ない旧版分割データAと変更量の多い旧版分割データBに、レコードごとに区別された新版ファイルを変更量の少ない新版分割データAと変更量の多い新版分割データBに分割するデータ分割部と、
旧版分割データAと新版分割データA、および旧版分割データBと新版分割データBをそれぞれ比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とをそれぞれ差分データA、差分データBとして生成する差分情報生成部とを有し、
差分適用装置は、少なくとも
装置内に保持する旧版データをそれぞれレコードごとに区別するフォーマット解析部と、
前記差分傾向情報と前記レコードごとに区別された旧版データから、変更量の少ない旧版分割データAと変更量の多い旧版分割データBを生成するデータ分割部と、
前記差分データAを前記旧版分割データAに適用して新版分割データAを再生し、前記差分データBを前記旧版分割データBに適用して新版分割データBを再生する差分情報適用部と、
前記差分傾向情報と前記新版分割データAと前記新版分割データBから、新版データを生成するデータ統合部とを有することを特徴とする。
実施の形態10.
実施の形態9のように、差分適用装置がデータ分割部を有する代わりに、差分情報適用部で、差分傾向情報を元に、旧版データに対して、差分データA(第1の差分情報)と差分データB(第2の差分情報)を適用し、データ統合部で、差分データAと差分データBを適用したレコードを1レコードずつ元のフォーマットに統合する形態について詳述する。
以下、図面を用いながら本実施の形態を説明する。図36は本実施の形態のソフトウエア差分抽出適用システムにおける差分適用装置の構成を示している。差分適用装置1700は旧版データ1711に差分情報を適用して新版データ1716を生成する。なお、差分抽出装置は図25に示す差分抽出装置1100と同様である。
以下、差分適用装置1700の動作を説明する。
最初にフォーマット解析部1701は旧版データ1711を解析して解析後旧版データ1712を生成する。
次に差分情報適用部1702が解析後旧版データ1712と差分傾向情報1713、差分データA1714、差分データB1715から新版データ1716を1レコードずつ生成する。
1レコード生成されるごとに、データ統合部1703が生成されたレコードを連結して新版データ1716を得る。
図37を用いて差分情報適用部1702が新版データを1レコードずつ生成する手順の詳細を説明する。
まず、差分データA1803から先頭の差分情報「複写6バイト0番地」を読み込む。そして、「6バイト0番地」に相当する部分レコードを解析後旧版データ1802から探す。差分傾向情報1801から3番目の要素と5番目の要素を外して探すことによって、2レコード分の“00113355”と“6677”が「複写」に対応していることが分かる。同様に、差分データB1804から先頭の差分情報「置換3バイト“234589”」を読み込み、置換対象となる部分レコードを解析後旧版データ1802から探す。この場合、2レコード分にあたる“2244”と“88”が置換対象となることが分かる。そして“00113355”と“2244”の置換後データとなる“2345”を組み合わせて新版データ1805の1番目のレコード“001123334555”を生成、出力する。同様に“6677”と“88”の置換後データとなる“89”を組み合わせて新版データ1805の2番目のレコード“667789”を生成する。
次に差分データA1803から2番目の差分情報「挿入3バイト“443311”」を読み込む。同様に差分データB1804から2番目の差分情報「挿入2バイト“2200”」を読み込む。これらの情報を組み合わせることで新版データ1805の3番目のレコード“4433221100”を生成する。
最後に差分データA1803から3番目の差分情報「複写6バイト10番地」、差分データB1804から3番目の差分情報「置換3バイト“BCDE01”」を読み込む。以降の処理は1番目の差分情報を処理した場合と同様なので説明を省略するが、新版データ1805の4番目のレコードと5番目のレコードをそれぞれ生成することができる。
以上の処理内容において、新版データのレコードを1つ生成した時点で、データ統合部1703が新版データの格納先に順次レコードを書き込むことによって、新版データ1716を生成する手順の中で新版データ1716のためのワーク領域を確保する必要がなくなる。一方、実施の形態9では新版分割データA1171と新版分割データB1172のためのワーク領域が必要であった。
本実施の形態では、ある一定のパターンでデータの変更が発生する傾向のあるデータ、特に論理的に意味のあるデータ集合である可変長のレコードごとに区別可能であるようなデータに対して、明らかに差分情報が小さくなる効果があると共に、ワーク領域が限られたシステムにおいても差分適用を実現できるという効果がある。
以上、本実施の形態で説明したソフトウエア差分抽出適用システムは、
差分適用装置が少なくとも
装置内に保持する旧版データをそれぞれレコードごとに区別するフォーマット解析部と、
差分データAと差分データB、および差分傾向情報と旧版データから新版データを1レコードずつ生成する差分情報適用部とを有することを特徴とする。
実施の形態11.
差分抽出装置が差分傾向情報を生成することを特徴とする形態について詳述する。
本実施の形態では、フォーマット解析部1101は、図25に示したように旧版ファイル1111と新版ファイル1121から解析後旧版データ1112と解析後新版データ1122を生成するだけでなく、解析後旧版データ1112と解析後新版データ1122から差分傾向情報1131を生成する。
差分傾向情報1131の生成方法の一例を説明する。フォーマット解析部1101はレコード単位で解析後旧版データ1112と解析後新版データ1122を比較し、一致すると思われる(対応する)レコードの組合せを見つけ出す。ここで、一致(比較したレコードが互いに対応する)と判断する条件として例えば、レコードの全要素のうち、一致する要素の数が一定の比率以上である、といった条件を用いる。そして、一致すると思われるレコードの組合せ全てについて、各要素が一致するかどうかの統計を取り、一致しない確率がある一定値以上であるような要素は「変更になりやすい」要素とみなし、差分傾向情報1131に記載する。
以下、図26と図27のデータを例として差分傾向情報1131の生成方法を説明する。まず、レコード一致の判断条件を一致要素数が全要素数の60%以上とし、変更になりやすい要素とみなす条件を50%以上の確率とする。解析後旧版データ1203と解析後新版データ1204を比較することで、「旧1番目−新1番目」「旧2番目−新2番目」「旧3番目−新4番目」「旧4番目−新5番目」を一致するレコードとみなすことができる。次に各要素が一致しない確率を計算すると、「1番目の要素:0%」「2番目の要素:0%」「3番目の要素:100%」「4番目の要素:0%」「5番目の要素:100%」「6番目の要素:0%」となり、3番目の要素と5番目の要素が差分傾向情報1131に記載される。
本実施の形態では、実施の形態9、10と同様に差分情報が小さくなる効果があると共に、差分傾向情報を自動的に生成することで、あらかじめ差分抽出適用対象データの差分傾向についての情報(知識)が必要なくなる、という効果がある。後者の効果は特に差分傾向を人手では解析しづらい大規模データに対して有効である。
以上、本実施の形態で説明したソフトウエア差分抽出適用システムにおいて、
差分抽出装置のフォーマット解析部は、旧版ファイルと新版ファイルをそれぞれレコードごとに区別した後に、旧版ファイルと新版ファイルの内容を比較して差分傾向情報を生成し、
差分抽出装置のデータ分割部は、前記フォーマット解析部の生成した差分傾向情報を用いることを特徴とする。
実施の形態12.
実施の形態9の処理手順について、図38と図39に示すフローチャートを利用して説明する。図38は差分抽出装置の動作の例である。図39は差分適用装置の動作の例である。
ステップ1801では、差分抽出装置のフォーマット解析部が、新版と旧版のファイルをハードディスク装置やその他の媒体上のファイルシステムからメモリ上に読み込む。ステップ1802では各ファイルのフォーマットを解析し、内容をレコード単位で区別する。ステップ1803ではファイルフォーマットの解析結果を出力する。具体的にはメモリの中で配置しておくだけでもかまわないし、ファイルとして書き出してもかまわない。
ステップ1804では、差分抽出装置のデータ分割部が、差分傾向情報を読み込む。ステップ1805では、読み込んだ差分傾向情報を用いて、ステップ1803の解析結果であるデータの分割を行う。
ステップ1806では、差分抽出装置の差分情報生成部が、分割したデータから差分を抽出する。ステップ1807では差分データを出力する。
ステップ1811では、差分適用装置のフォーマット解析部が、旧版データを読み込み、ステップ1812,1813では、ステップ1802,1803と全く同じ処理を行う。
ステップ1814では、差分適用装置のデータ分割部が、差分傾向情報を読み込み、ステップ1815では、ステップ1804と全く同じ処理を行う。
ステップ1816では、差分適用装置の差分情報適用部が、ステップ1806の出力結果である差分データを読み込む。ステップ1817では、ステップ1815で分割されたデータに対し、差分の適用を行う。
ステップ1818では、差分適用装置のデータ統合部が、差分傾向情報を用い、ステップ1817の処理結果である分割データを統合して新版データを生成する。そして、ステップ1819で新版データを出力する。
図40は、上記実施の形態における差分抽出装置および差分適用装置の外観の一例を示す図である。
図40において、差分抽出装置900および差分適用装置950は、システムユニット910、CRT(Cathode Ray Tube)表示装置901、キーボード(K/B)902、マウス903、コンパクトディスク装置(CDD)905、プリンタ装置906、スキャナ装置907を備え、これらはケーブルで接続されている。さらに、差分抽出装置900および差分適用装置950は、ローカルエリアネットワーク(LAN)942、ゲートウェイ941を介してインターネット940に接続されている。
図41は、上記実施の形態における差分抽出装置および差分適用装置のハードウエア構成の一例を示す図である。
図41において、差分抽出装置900および差分適用装置950は、プログラムを実行するCPU(Central Processing Unit)911を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、CRT表示装置901、K/B902、マウス903、FDD(Flexible Disk Drive)904、磁気ディスク装置920、CDD905、プリンタ装置906、スキャナ装置907と接続されている。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915は、LAN942などに接続されている。
例えば、通信ボード915、K/B902、スキャナ装置907、FDD904などは、入力部の一例である。また、例えば、通信ボード915、CRT表示装置901などは、出力部の一例である。
ここで、通信ボード915は、LAN942に限らず、直接、インターネット940、あるいはISDN(Integrated Services Digital Network)などのWAN(ワイドエリアネットワーク)に接続されていても構わない。直接、インターネット940、あるいはISDNなどのWANに接続されている場合、差分抽出装置900および差分適用装置950は、インターネット940、あるいはISDNなどのWANに接続され、ゲートウェイ941は不要となる。
磁気ディスク装置920には、オペレーティングシステム(OS)921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923は、CPU911、OS921、ウィンドウシステム922により実行される。
上記プログラム群923には、前述した実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、旧版ファイルや新版ファイルのほか、前述した実施の形態の説明において、「〜結果」として説明するものが、「〜ファイル」として記憶されている。
また、前述した実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置920、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)などのその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
また、前述した実施の形態の説明において「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウエアのみ、あるいは、ハードウエアのみ、あるいは、ソフトウエアとハードウエアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
また、前述した実施の形態を実施するプログラムは、磁気ディスク装置920、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)などのその他の記録媒体による記録装置を用いて記憶されても構わない。
ソフトウエア差分抽出適用システムの構成を示す図である。 旧版ファイルの例を示す図である。 新版ファイルの例を示す図である。 可変データ補正に係る旧版ファイルの例を示す図である。 可変データ補正に係る新版ファイルの例を示す図である。 アドレス空間変換に係る旧版ファイルの例を示す図である。 アドレス空間変換に係る新版ファイルの例を示す図である。 アドレス空間変換に係る旧版ファイルの例を示す図である。 アドレス空間変換に係る新版ファイルの例を示す図である。 アドレス空間変換しないファイルに対する差分情報の例を示す図である。 アドレス空間変換しないファイルに対する差分情報の例を示す図である。 アドレス空間変換したファイルに対する差分情報の例を示す図である。 アドレス空間変換したファイルに対する差分情報の例を示す図である。 命令コードと命令長の対応表を示す図である。 データ構造とデータ長を示す図である。 データ挿入がある場合のファイル内容解析の例を示す図である。 データ挿入がある場合のアドレス変換の例を示す図である。 データ挿入がある場合のアドレス変換の例を示す図である。 差分抽出装置の動作フローを示す図である。 差分適用装置の動作フローを示す図である。 ファイル内容解析のフローを示す図である。 アドレス変換のフローを示す図である。 差分適用のフローを示す図である。 差分抽出装置および差分適用装置のハードウエア構成例を示す図である。 ソフトウエア差分抽出適用システムの構成を示す図である。 旧版ファイルのフォーマット解析の例を示す図である。 新版ファイルのフォーマット解析の例を示す図である。 旧版データのデータ分割の例を示す図である。 新版データのデータ分割の例を示す図である。 データ分割したデータの差分抽出の例を示す図である。 データ分割したデータの差分抽出の例を示す図である。 データ分割しないデータに対する差分情報の例を示す図である。 旧版データのデータ分割の例を示す図である。 データ分割したデータに対する差分適用の例を示す図である。 データ分割したデータに対する差分適用の例を示す図である。 差分適用装置の構成を示す図である。 旧版データに対する差分適用の例を示す図である。 差分抽出装置の動作フローを示す図である。 差分適用装置の動作フローを示す図である。 差分抽出装置および差分適用装置の外観の一例を示す図である。 差分抽出装置および差分適用装置のハードウエア構成の一例を示す図である。
符号の説明
100 差分抽出装置、101 旧版ファイル、102 新版ファイル、103 ファイル内容解析部、104 解析後旧版ファイル、105 解析後新版ファイル、106 アドレス空間変換部、107 アドレス変換後旧版ファイル、108 アドレス変換後新版ファイル、109 差分情報生成部、110 差分情報、150 差分適用装置、151 旧版ファイル、152 差分情報、153 ファイル内容解析部、154 解析後旧版ファイル、155 アドレス空間変換部、156 アドレス変換後旧版ファイル、157 差分情報適用部、158 アドレス空間逆変換部、159 更新情報保存部、160 新版ファイル、1100 差分抽出装置、1101 フォーマット解析部、1102 データ分割部、1103 差分情報生成部、1111 旧版ファイル、1112 解析後旧版データ、1113 旧版分割データA、1114 旧版分割データB、1121 新版ファイル、1122 解析後新版データ、1123 新版分割データA、1124 新版分割データB、1131 差分傾向情報、1132 差分データA、1133 差分データB、1150 差分適用装置、1151 フォーマット解析部、1152 データ分割部、1153 差分情報適用部、1154 データ統合部、1161 旧版データ、1162 解析後旧版データ、1163 旧版分割データA、1164 旧版分割データB、1171 新版分割データA、1172 新版分割データB、1173 新版データ、1181 差分傾向情報、1182 差分データA、1183 差分データB、1700 差分適用装置、1701 フォーマット解析部、1702 差分情報適用部、1703 データ統合部、1711 旧版データ、1712 解析後旧版データ、1713 差分傾向情報、1714 差分データA、1715 差分データB、1716 新版データ。

Claims (33)

  1. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
    差分抽出装置は、少なくとも
    (1)旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
    (2)それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部とを有し、
    差分適用装置は、少なくとも
    (3)旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部と、
    (4)論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分情報適用部と、
    (5)差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部とを有することを特徴とするソフトウエア差分抽出適用システム。
  2. 差分抽出装置は、新版ファイル及び旧版ファイルの内容を解析するファイル内容解析部を有し、
    差分抽出装置の前記アドレス空間変換部は、内容を解析した新版ファイル及び旧版ファイルを対象としてアドレス空間を変換し、
    差分適用装置は、旧版データの内容を解析するデータ内容解析部を有し、
    差分適用装置の前記アドレス空間変換部は、内容を解析した旧版データを対象としてアドレス空間を変換することを特徴する請求項1記載のソフトウエア差分抽出適用システム。
  3. 差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、対象とする内容が命令コードであった場合に、命令長に応じて命令ごとに区別することを特徴とする請求項2に記載のソフトウエア差分抽出適用システム。
  4. 差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、対象とする内容がデータであった場合で、データが論理的に意味のあるデータ集合であるレコードごとに区別可能である場合に、レコードごとに区別することを特徴とする請求項2に記載のソフトウエア差分抽出適用システム。
  5. 差分抽出装置のファイル内容解析部及び差分適用装置のデータ内容解析部は、事前に差分情報を取得することによりデータの挿入があった場所を解析結果として出力することを特徴とする請求項2に記載のソフトウエア差分抽出適用システム。
  6. 差分抽出装置のアドレス空間変換部及び差分適用装置のアドレス空間変換部は、ファイル内のデータレコードの先頭バイトが連続するようにマッピングし、命令コードがある場合には、命令コードの最初のバイトが連続するようにマッピングすることを特徴とする請求項1に記載のソフトウエア差分抽出適用システム。
  7. 差分抽出装置のアドレス空間変換部及び差分適用装置のアドレス空間変換部は、データ挿入があったことがわかった場合には、その挿入のあった箇所までをアドレス空間として変換し、挿入データでなくなった箇所以降を改めてアドレス空間として変換することを特徴とする請求項6に記載のソフトウエア差分抽出適用システム。
  8. 差分抽出装置は、アドレス空間の変換単位を示す情報を差分情報に付加することを特徴とする請求項1に記載のソフトウエア差分抽出適用システム。
  9. 旧版データおよび新版データは、ファイルであることを特徴とする請求項1記載のソフトウエア差分抽出適用システム。
  10. 旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項1記載のソフトウエア差分抽出適用システム。
  11. 旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項1記載のソフトウエア差分抽出適用システム。
  12. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置であって、以下の要素を有することを特徴とする差分抽出装置
    (1)旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部
    (2)それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分情報生成部。
  13. 差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
    (1)旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換部
    (2)論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分情報適用部
    (3)差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換部。
  14. 旧版データおよび新版データは、ファイルであることを特徴とする請求項13記載の差分適用装置。
  15. 旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項13記載の差分適用装置。
  16. 旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項13記載の差分適用装置。
  17. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)差分抽出装置のアドレス空間変換部が、旧版ファイルと新版ファイルについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
    (2)差分抽出装置の差分情報生成部が、それぞれ論理アドレス空間にマッピングした旧版ファイルと新版ファイルを比較し、同一の領域であることを示す情報と位置ずれを示す情報と異なったデータであることを示す情報とを、差分情報として生成する差分抽出手順。
  18. 差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)差分適用装置のアドレス空間変換部が、旧版データについて、物理的な連続アドレス空間を別の論理アドレス空間にマッピングするアドレス空間変換手順
    (2)差分適用装置の差分情報適用部が、論理アドレス空間にマッピングした旧版データに対して、前記差分情報を適用する差分適用手順
    (3)差分適用装置のアドレス空間逆変換部が、差分情報を適用した結果に含まれる論理アドレス空間を、元の物理的な連続アドレス空間に変換するアドレス空間逆変換手順。
  19. 旧版データおよび新版データは、ファイルであることを特徴とする請求項18記載のプログラム。
  20. 旧版データおよび新版データは、メモリ上に配置された実行コードを含むデータであることを特徴とする請求項18記載のプログラム。
  21. 旧版データおよび新版データは、データベース上に配置されたデータであることを特徴とする請求項18記載のプログラム。
  22. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
    差分抽出装置は、少なくとも
    (1)旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部と、
    (2)各レコード内でデータを保持するデータ要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強いデータ要素を含む第1の旧版分割データとその他のデータ要素を含む第2の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強いデータ要素を含む第1の新版分割データとその他のデータ要素を含む第2の新版分割データに分割するデータ分割部と、
    (3)第1の旧版分割データと第1の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第1の差分情報として生成するとともに、第2の旧版分割データと第2の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第2の差分情報として生成する差分情報生成部とを有し、
    差分適用装置は、少なくとも
    (4)旧版データのフォーマットを解析し、旧版データをレコードごとに区別するフォーマット解析部と、
    (5)前記差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割部と、
    (6)一の旧版分割データに対して、前記第1の差分情報を適用するとともに、他の旧版分割データに対して、前記第2の差分情報を適用する差分情報適用部と、
    (7)第1の差分情報を適用した結果に含まれるデータ要素と第2の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合部とを有することを特徴とするソフトウエア差分抽出適用システム。
  23. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置と、差分情報を旧版ファイルと同等の旧版データに適用して新版ファイルと同等の新版データを再生する差分適用装置とからなるソフトウエア差分抽出適用システムであって、
    差分抽出装置は、少なくとも
    (1)旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部と、
    (2)各レコード内でデータを保持するデータ要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強いデータ要素を含む第1の旧版分割データとその他のデータ要素を含む第2の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強いデータ要素を含む第1の新版分割データとその他のデータ要素を含む第2の新版分割データに分割するデータ分割部と、
    (3)第1の旧版分割データと第1の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第1の差分情報として生成するとともに、第2の旧版分割データと第2の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第2の差分情報として生成する差分情報生成部とを有し、
    差分適用装置は、少なくとも
    (4)旧版データのフォーマットを解析し、旧版データをレコードごとに区別するフォーマット解析部と、
    (5)前記差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第1の差分情報と前記第2の差分情報を適用する差分情報適用部と、
    (6)1つのレコードに第1の差分情報と第2の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合部とを有することを特徴とするソフトウエア差分抽出適用システム。
  24. 前記第1の差分情報と前記第2の差分情報は、さらに、位置ずれを示す情報を含むことを特徴する請求項22又は23に記載のソフトウエア差分抽出適用システム。
  25. 差分抽出装置の前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
    差分抽出装置の前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項22から24いずれかに記載のソフトウエア差分抽出適用システム。
  26. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置であって、以下の要素を有することを特徴とする差分抽出装置
    (1)旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
    (2)各レコード内でデータを保持する要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強い要素を含む第1の旧版分割データとその他の要素を含む第2の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強い要素を含む第1の新版分割データとその他の要素を含む第2の新版分割データに分割するデータ分割部
    (3)第1の旧版分割データと第1の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第1の差分情報として生成するとともに、第2の旧版分割データと第2の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第2の差分情報として生成する差分情報生成部。
  27. 前記フォーマット解析部は、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
    前記データ分割部は、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項26記載の差分抽出装置。
  28. 第1の差分情報と第2の差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
    (1)旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
    (2)各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割部
    (3)一の旧版分割データに対して、前記第1の差分情報を適用するとともに、他の旧版分割データに対して、前記第2の差分情報を適用する差分情報適用部
    (4)第1の差分情報を適用した結果に含まれるデータ要素と第2の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合部。
  29. 第1の差分情報と第2の差分情報を旧版データに適用して新版データを再生する差分適用装置であって、以下の要素を有することを特徴とする差分適用装置
    (1)旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析部
    (2)各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第1の差分情報と前記第2の差分情報を適用する差分情報適用部
    (3)1つのレコードに第1の差分情報と第2の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合部。
  30. 旧版ファイルと新版ファイルを比較して差分情報を抽出する差分抽出装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)差分抽出装置のフォーマット解析部が、旧版ファイル及び新版ファイルのフォーマットを解析し、旧版ファイル及び新版ファイルの内容を、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
    (2)差分抽出装置のデータ分割部が、各レコード内でデータを保持する要素が旧版ファイルと新版ファイルで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版ファイルを前記傾向の強い要素を含む第1の旧版分割データとその他の要素を含む第2の旧版分割データに分割し、レコードごとに区別した新版ファイルを前記傾向の強い要素を含む第1の新版分割データとその他の要素を含む第2の新版分割データに分割するデータ分割手順
    (3)差分抽出装置の差分情報生成部が、第1の旧版分割データと第1の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第1の差分情報として生成するとともに、第2の旧版分割データと第2の新版分割データを比較し、同一の領域であることを示す情報と異なったデータであることを示す情報とを第2の差分情報として生成する差分情報生成手順。
  31. 前記フォーマット解析手順は、前記フォーマット解析部が、それぞれレコードごとに区別した旧版ファイルと新版ファイルの内容を比較して前記差分傾向情報を生成し、
    前記データ分割手順は、前記データ分割部が、生成した差分傾向情報を元に、それぞれレコードごとに区別した旧版ファイルと新版ファイルを分割することを特徴する請求項30記載のプログラム。
  32. 第1の差分情報と第2の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)差分適用装置のフォーマット解析部が、旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
    (2)差分適用装置のデータ分割部が、各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データを前記傾向の強いデータ要素を含む一の旧版分割データとその他のデータ要素を含む他の旧版分割データに分割するデータ分割手順
    (3)差分適用装置の差分情報適用部が、一の旧版分割データに対して、前記第1の差分情報を適用するとともに、他の旧版分割データに対して、前記第2の差分情報を適用する差分情報適用手順
    (4)差分適用装置のデータ統合部が、第1の差分情報を適用した結果に含まれるデータ要素と第2の差分情報を適用した結果に含まれるデータ要素から各レコードを生成し、元のフォーマットに統合するデータ統合手順。
  33. 第1の差分情報と第2の差分情報を旧版データに適用して新版データを再生する差分適用装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)差分適用装置のフォーマット解析部が、旧版データのフォーマットを解析し、旧版データを、論理的に意味のあるデータ集合であるレコードごとに区別するフォーマット解析手順
    (2)差分適用装置の差分情報適用部が、各レコード内でデータを保持する要素が旧版データと新版データで異なったデータを保持する傾向を示す差分傾向情報を元に、レコードごとに区別した旧版データの各レコードに対して、前記第1の差分情報と前記第2の差分情報を適用する差分情報適用手順
    (3)差分適用装置のデータ統合部が、1つのレコードに第1の差分情報と第2の差分情報が適用される度に当該レコードを元のフォーマットに統合するデータ統合手順。
JP2005125209A 2004-07-02 2005-04-22 ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム Expired - Fee Related JP3733135B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005125209A JP3733135B1 (ja) 2004-07-02 2005-04-22 ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004196185 2004-07-02
JP2005125209A JP3733135B1 (ja) 2004-07-02 2005-04-22 ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム

Publications (2)

Publication Number Publication Date
JP3733135B1 true JP3733135B1 (ja) 2006-01-11
JP2006048640A JP2006048640A (ja) 2006-02-16

Family

ID=35781160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005125209A Expired - Fee Related JP3733135B1 (ja) 2004-07-02 2005-04-22 ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム

Country Status (1)

Country Link
JP (1) JP3733135B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009086853A (ja) * 2007-09-28 2009-04-23 Fujitsu Social Science Laboratory Ltd データ合成処理装置,プログラム,および処理方法
US9900026B2 (en) 2014-07-28 2018-02-20 Mitsubishi Electric Corporation Differential data creating apparatus, data updating apparatus, and differential data creating method

Also Published As

Publication number Publication date
JP2006048640A (ja) 2006-02-16

Similar Documents

Publication Publication Date Title
EP0117281B1 (en) Updating data processing files
JP2002523825A (ja) 内部レフアレンスを含むデータ表の2つのバージヨン間の差分抽出方法
CN113066515B (zh) 一种光盘刻录方法、计算设备及可读存储介质
RU2300141C2 (ru) Расширяемый формат компьютерных файлов
EP1717719A1 (en) Application conversion of source data
KR20020020814A (ko) 파일 처리 방법, 데이터 처리 장치 및 기억 매체
US9391636B2 (en) Method and system
JP3733135B1 (ja) ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム
CN112269764A (zh) 一种文件聚合方法、装置、设备及可读存储介质
CN101553800B (zh) 将主机系统sam/vsam文件转换为开放系统sam/vsam文件的转换装置和方法
JP4036852B2 (ja) 差分データ生成装置、差分データ生成方法および差分データ生成プログラム
EP1298666A2 (en) Method, apparatus and computer program product for recording additional information on a rewritable recording medium
JP2006065424A (ja) データ記憶システム、データ記憶装置及びそれに用いる類似ファイル記録方法並びにそのプログラム
JP4791205B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム
JP2002149457A (ja) 予約データ領域を識別する方法及び装置
JP4865449B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
JP4249793B2 (ja) 差分データ生成装置、差分データ生成装置の差分データ生成方法および差分データ生成プログラム
MXPA06012286A (es) Metodo y aparato de reproduccion de disco optico.
CN101350919B (zh) 记录装置、记录方法
JP7420025B2 (ja) プログラムの更新方法および更新システム
JP5674974B2 (ja) 圧縮データ処理プログラム、圧縮データ編集プログラム
JP4420747B2 (ja) ファイル作成装置及びファイル構造
CN108132780B (zh) 一种基于自定义脚本的航空显示控制方法
JP3974606B2 (ja) 構造化文書変換装置、構造化文書変換方法及びプログラム
CN115983205A (zh) 文档处理系统、方法、电子设备及存储介质

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051014

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101021

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111021

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131021

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees