JPH06274384A - 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 - Google Patents

実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法

Info

Publication number
JPH06274384A
JPH06274384A JP5062181A JP6218193A JPH06274384A JP H06274384 A JPH06274384 A JP H06274384A JP 5062181 A JP5062181 A JP 5062181A JP 6218193 A JP6218193 A JP 6218193A JP H06274384 A JPH06274384 A JP H06274384A
Authority
JP
Japan
Prior art keywords
file
old
execution file
new
area
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.)
Pending
Application number
JP5062181A
Other languages
English (en)
Inventor
Morimasa Tanimura
守正 谷村
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.)
N T T DATA TSUSHIN KK
NTT Data Corp
Original Assignee
N T T DATA TSUSHIN KK
NTT Data Communications Systems 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 N T T DATA TSUSHIN KK, NTT Data Communications Systems Corp filed Critical N T T DATA TSUSHIN KK
Priority to JP5062181A priority Critical patent/JPH06274384A/ja
Priority to GB9423581A priority patent/GB2281990B/en
Priority to US08/343,444 priority patent/US5752039A/en
Priority to PCT/JP1994/000454 priority patent/WO1994022086A1/ja
Publication of JPH06274384A publication Critical patent/JPH06274384A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 本発明は、新実行ファイルの旧実行ファイル
に対する差分情報を格納する更新ファイルのサイズを削
減することを目的とする。 【構成】 ヘッダ解析部101は、旧EXEファイル1
05と新EXEファイル106のそれぞれにつき、その
ヘッダの領域及び各テーブル部の領域を抽出し、それら
の領域につき差分抽出処理部104をコールする。セグ
メントデータ対応付け部102は、ファイル105と1
06との間のセグメントデータの対応付けを行い、対応
付けされた領域について差分抽出処理部104をコール
する。リソース対応付け部103は、ファイル105と
106との間のリソースの対応付けを行い、対応付けさ
れた領域について差分抽出処理部104をコールする。
差分抽出処理部104は、101、102、又は103
の各部から指定された領域の先頭から末尾まで、ファイ
ル106の105に対するバイト単位の差分を抽出し、
その差分を更新ファイル107にセーブする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、バグの修正又は部分的
な機能拡張を目的として実行ファイルが更新される場合
に、新実行ファイルの旧実行ファイルに対する差分が抽
出されて更新ファイルとされ、旧実行ファイルと更新フ
ァイルとから新実行ファイルが生成される実行ファイル
差分抽出/更新装置及び方法に関する。
【0002】
【従来の技術】ユーザに実行ファイルが配付されその実
行ファイル(EXEファイル)により所定サービスが提
供されている場合、その実行ファイルに存在するバグを
修正したり、その実行ファイルによって実現される機能
の部分的な拡張を目的として、図28(a) に示されるよ
うに、ユーザに配付されている実行ファイルにおいて、
新EXEファイルから旧EXEファイルへの更新がなさ
れる場合がある。
【0003】一方、最近では、コンピュータシステムの
機能の発達により、実行ファイルのプログラムサイズが
数百キロバイトから数メガバイト或いは数十メガバイト
に達しつつある。従って、上述のような実行ファイルの
更新時に、新EXEファイルがそのまま配付されるの
は、配付媒体に多くのデータ容量が要求されることにな
り、不経済である。
【0004】例えば、配付媒体が図29に示されるよう
なネットワークである場合、センタTCのホストコンピ
ュータHOSTは、回線を介して、事務所TC内のホス
トコンピュータHOSTに対して新EXEファイルを配
信することになるが、新EXEファイルが上述のような
大きなサイズを有する場合、回線使用料が高くついてし
まい、不経済である。
【0005】このような問題に対し、従来、新EXEフ
ァイルそのものが配付されるのではなく、図28(b) に
示されるように、旧EXEファイルと新EXEファイル
との間で比較処理がなされ、新EXEファイルの旧EX
Eファイルに対する差分が抽出されて更新ファイルとさ
れ、その更新ファイルがユーザに配付されるという形態
が採られるようになってきている。この場合、ユーザ側
では、図28(b) に示されるように、所定の更新プログ
ラムによる更新処理によって、旧EXEファイルと更新
ファイルとから新EXEファイルが生成される。新EX
Eファイルと旧EXEファイルとでは、プログラムコー
ドが同じ部分が存在する場合が多いために、それらの差
分である更新ファイルのサイズは、新EXEファイルの
サイズに比較して小さい場合が多い。従って、更新ファ
イルがユーザに配付されることにより、配付媒体に要求
されるデータ容量を削減することができる。
【0006】図29の例においては、センタTCのホス
トコンピュータHOSTは、回線を介して、事務所TC
内のホストコンピュータHOSTに対して更新ファイル
を配信する。事務所TC内のホストコンピュータHOS
Tでは、センタ間通信部が、上記更新ファイルを受信し
た後、更新プログラムを起動することにより、旧EXE
ファイルと更新ファイルとから新EXEファイルを生成
する。この新EXEファイルは、ファイル操作部を介し
て正ディスク及び副ディスクに保存される。そして、事
務所TCのホストコンピュータHOST内の配信処理管
理部が、新EXEファイルを、事務所内通信部からLA
N(ローカルエリアネットワーク)を介して、クライア
ントサーバCSVに配信する。クライアントサーバCS
Vでは、事務所内通信部が上記新EXEファイルを受信
する。この受信された新EXEファイルは、ファイル操
作部を介して正ディスク及び副ディスクに保存される。
【0007】
【発明が解決しようとする課題】しかし、上述のような
従来の差分抽出方式では、旧EXEファイルの先頭及び
新EXEファイルの先頭から各ファイルの末尾までのフ
ァイル全体にわたって、バイト単位でデータが一致する
か否かが判定され、一致しないデータが差分のデータと
して抽出されている。このために、例えば新EXEファ
イルの途中で1バイトでもデータの削除又は挿入が行わ
れていると、そのバイト以降では全て旧EXEファイル
のデータと新EXEファイルのデータとが一致しなくな
り、その結果、更新ファイルのサイズが大きくなってし
まうという問題点を有している。従って、図29の例の
ようにネットワークを介して更新ファイルが配信される
場合などで、新EXEファイルがそのまま配信される場
合に比較してそれほど回線の使用効率が向上しないとい
う結果になってしまう。
【0008】本発明は、更新ファイルのサイズを削減す
ることを目的とする。
【0009】
【課題を解決するための手段】本発明は、まず、実行フ
ァイル差分抽出装置として、以下の構成を有する。領域
分割手段は、旧実行ファイル及び新実行ファイルのそれ
ぞれを、所定の論理単位毎に複数の領域に分割する。こ
の論理単位は、例えば、旧実行ファイル又は新実行ファ
イルのデータ属性の単位であるセグメント、リソース、
ヘッダ、又はテーブルである。
【0010】次に、領域対応付け手段は、領域分割手段
によって分割された旧実行ファイルの複数の領域と新実
行ファイルの複数の領域との間で、互いに対応する領域
同士を対応付けする。
【0011】また、差分抽出処理手段は、領域対応付け
手段によって対応付けされた旧実行ファイルの領域と新
実行ファイルの領域との間で、旧実行ファイルの領域の
データに対する新実行ファイルの領域のデータの差分情
報を抽出する。この差分情報は、例えば、新実行ファイ
ルにおいて旧実行ファイルに対してデータの挿入、削
除、又は置換が行われる旨の属性情報、その対象となる
データの長さ情報、及びその対象となるデータとから構
成される。
【0012】そして、更新ファイル生成手段は、差分抽
出処理手段において抽出された差分情報を更新ファイル
に格納すると共に、領域対応付け手段において対応付け
が行われなかった旧実行ファイルの領域又は新実行ファ
イルの領域に対応する差分情報を抽出しそれを更新ファ
イルに格納する。
【0013】また、本発明は、実行ファイル更新装置と
して、上述の更新ファイル生成手段により生成された更
新ファイルから前記差分情報を順次取り出し、その差分
情報と旧実行ファイルとから、新実行ファイルを生成す
るファイル更新手段を有するように構成される。
【0014】
【作用】本発明においては、差分抽出処理が実行される
場合、例えばOS/2システムにおける実行ファイルでは、
DOS EXE 形式の領域、0S/2 EXEヘッダ領域、各テーブル
部領域、セグメントデータ領域、及びリソース領域のそ
れぞれの論理単位毎に、対応付けが行われた上で差分抽
出処理が実行される。
【0015】このため、旧実行ファイルと新実行ファイ
ルとの間で、各領域のデータが一致する確率が高くな
り、その結果、生成される更新ファイルのサイズが大幅
に削減される。
【0016】
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。図1は、本発明の実施例の構成図
である。
【0017】まず、差分抽出処理部104は、後述する
ヘッダ解析部101、セグメントデータ対応付け部10
2、又はリソース対応付け部103から指定された領域
の先頭から末尾まで、新EXEファイル106の旧EX
Eファイル105に対するバイト単位の差分を抽出し、
その差分を更新ファイル107にセーブする。
【0018】ヘッダ解析部101は、旧EXEファイル
105と新EXEファイル106のそれぞれについて、
そのDOS EXE ヘッダの領域及び0S/2 EXEヘッダの領域を
抽出し、それらの領域について差分抽出処理部104に
対して差分抽出処理を指示する。また、ヘッダ解析部1
01は、旧EXEファイル105と新EXEファイル1
06のそれぞれについて、上述の抽出されたDOS EXE ヘ
ッダ及び0S/2 EXEヘッダの内容を解析することにより後
述する各テーブル部の領域を抽出し、抽出された各テー
ブル部領域についても差分抽出処理部104に対して差
分抽出処理を指示する。更に、ヘッダ解析部101は、
旧EXEファイル105と新EXEファイル106のそ
れぞれについて、抽出されたセグメントテーブル部から
後述するセグメント情報108を抽出して、それを後述
するセグメントデータ対応付け部102及びリソース対
応付け部103に設定し、また、抽出されたリソーステ
ーブル部から後述するリソース情報109を抽出して、
それを後述するリソース対応付け部103に設定する。
【0019】セグメントデータ対応付け部102は、ヘ
ッダ解析部101からのセグメント情報108に基づい
て、旧EXEファイル105と新EXEファイル106
との間のセグメントデータの対応付けを行い、対応付け
された各セグメントデータのペアの領域について差分抽
出処理部104に対して差分抽出処理を指示する。旧E
XEファイル105に存在するセグメントデータに対応
するものが新EXEファイル106に存在しない場合
は、そのセグメントデータを削除すべき旨の差分情報を
更新ファイル107にセーブする。逆に、新EXEファ
イル106に存在するセグメントデータに対応するもの
が旧EXEファイル105に存在しない場合は、そのセ
グメントデータを挿入すべき旨の差分情報を更新ファイ
ル107にセーブする。
【0020】リソース対応付け部103は、ヘッダ解析
部101からのセグメント情報108及びリソース情報
109に基づいて、旧EXEファイル105と新EXE
ファイル106との間のリソースの対応付けを行い、対
応付けされた各リソースのペアの領域について差分抽出
処理部104に対して差分抽出処理を指示する。旧EX
Eファイル105に存在するリソースに対応するものが
新EXEファイル106に存在しない場合は、そのリソ
ースを削除すべき旨の差分情報を更新ファイル107に
セーブする。逆に、新EXEファイル106に存在する
リソースに対応するものが旧EXEファイル105に存
在しない場合は、そのリソースを挿入すべき旨の差分情
報を更新ファイル107にセーブする。
【0021】上述の構成を有する実施例の動作につい
て、以下に順次説明する。まず、図2は、旧EXEファ
イル105及び新EXEファイル106の共通のファイ
ル形式を示した図である。
【0022】本実施例で対象とされるファイルは、コン
ピュータのためのマルチタスクオペレーティングシステ
ムの1つである0S/2システムのもとで実行可能なEXE
ファイルである。
【0023】このEXEファイルは、コンピュータのた
めの従来からあるシングルタスクオペレーティングシス
テムの1つであるMS-DOSシステムのもとでも実行可能な
ように構築されている。そのため、このEXEファイル
は、図2に示されるように、DOS EXE 形式の領域と0S/2
EXE形式の領域とから構成されている。
【0024】まず、ファイルの前半部分には、DOS EXE
形式の領域が存在する。DOS EXE 形式の領域は、MS-DOS
用プログラムを実行するための各種情報と後述する0S/2
EXEヘッダへのポインタ情報等が格納されるDOS EXE ヘ
ッダ領域と、MS-DOSシステムのもとで動作するプログラ
ムの本体が格納されるDOS ロードモジュール領域とから
構成される。
【0025】次に、ファイルの後半部分には、0S/2 EXE
形式の領域が存在する。0S/2 EXE形式の領域は、0S/2用
プログラムを実行するための各種情報と後述する各種テ
ーブル部へのポインタ情報等が格納される0S/2 EXEヘッ
ダ領域、後述する各種テーブル部領域、0S/2システムの
もとで動作するプログラムの本体が格納されるセグメン
トデータ領域、及び0S/2プログラムで利用されるリソー
スと呼ばれるデータが格納されるリソース領域とから構
成される。
【0026】本実施例においては、差分抽出処理が実行
される場合、DOS EXE 形式の領域、0S/2 EXEヘッダ領
域、及び各テーブル部領域のそれぞれの領域毎に、旧E
XEファイル105と新EXEファイル106との差分
抽出処理が実行され、その後、旧EXEファイル105
と新EXEファイル106との間のセグメントデータ及
びリソースの対応付けが行われた上で、その対応付けさ
れた各セグメントデータ及びリソースのペアの領域毎に
差分抽出処理が実行されることが、大きな特徴である。
このように、所定の論理単位毎に差分抽出処理が実行さ
れることにより、従来技術に比較して、生成される更新
ファイル107のサイズを大幅に削減することが可能と
なる。
【0027】次に、ヘッダ解析部101、セグメントデ
ータ対応付け部102、リソース対応付け部103、及
び差分抽出処理部104の各部の動作について、順次説
明する。
【0028】本実施例では、まず、ヘッダ解析部101
が起動される。ヘッダ解析部101で実行される処理の
動作フローチャートは、図3及び図4に示される。この
ヘッダ解析部101の動作は、特には図示しないコンピ
ュータシステムにおいて、CPU(中央処理装置)が、
ディスク装置などに記憶された旧EXEファイル105
及び新EXEファイル106に対して、メモリに記憶さ
れた制御プログラムを実行する動作の一部として実現さ
れる。
【0029】まず、ステップS301で、旧EXEファ
イル105及び新EXEファイル106のそれぞれにつ
いて、DOS EXE ヘッダ内のファイルオフセット0に格納
されている1ワードのコードが“MZ”であるか否かが
判定される(図5参照)。そのコードが“MZ”でない
場合、そのファイルはEXEファイルではないため、ス
テップS323でエラー表示が行われ差分抽出処理を終
了する。
【0030】上述のコードが“MZ”である場合、ステ
ップS302で、旧EXEファイル105及び新EXE
ファイル106のそれぞれについて、DOS EXE ヘッダ内
のファイルオフセット18h(“h”は、それが付加さ
れた1ワードの値が16進数であることを示す。)に格
納されている値が40hであるか否かが判定される(図
5参照)。その値が40hでない場合は、そのファイル
は0S/2 EXE形式のファイルではないため、ステップS3
23でエラー表示が行われ差分抽出処理を終了する。
【0031】上述の値が40hである場合は、ステップ
S303で、旧EXEファイル105及び新EXEファ
イル106のそれぞれについて、DOS EXE ヘッダ内のフ
ァイルオフセット3Chに格納されている値で示される
1ワードのオフセットアドレスが0S/2 EXEの領域のアド
レスであるか否かが判定される(図5参照)。そのアド
レスが0S/2 EXEの領域のアドレスでない場合は、そのフ
ァイルは0S/2 EXE形式のファイルではないため、ステッ
プS323でエラー表示が行われ差分抽出処理を終了す
る。
【0032】上述のアドレスが0S/2 EXEの領域のアドレ
スである場合は、更にステップS304で、旧EXEフ
ァイル105及び新EXEファイル106のそれぞれに
ついて、0S/2 EXEヘッダ内の0S/2 EXE相対オフセット
(0S/2 EXE形式の領域の先頭のアドレスが0とされる場
合の相対オフセット)の36hに格納されている1ワー
ドの値が1であるか否かが判定される(図5参照)。そ
の値が1でない場合は、そのファイルは0S/2 EXE形式の
ファイルではないため、ステップS323でエラー表示
が行われ差分抽出処理を終了する。
【0033】上述の値が1である場合、ステップS30
5で、旧EXEファイル105と新EXEファイル10
6のそれぞれにつき、DOS EXE 形式のデータ領域が、フ
ァイルオフセット0からDOS EXE ヘッダ内のファイルオ
フセット3Chの内容として示される0S/2 EXEの領域の
アドレスの手前のアドレスまでの領域として抽出される
(図2参照)。
【0034】次に、ヘッダ解析部101は、ステップS
306で、差分抽出処理部104をコールすると共に、
旧EXEファイル105と新EXEファイル106のそ
れぞれにつき抽出されたDOS EXE 形式のデータ領域を差
分抽出処理部104に渡す。この結果、差分抽出処理部
104は、後述する差分抽出処理により、ヘッダ解析部
101から渡されたDOS EXE 形式のデータ領域の先頭か
ら末尾まで、新EXEファイル106の旧EXEファイ
ル105に対するバイト単位の差分を抽出し、その差分
を更新ファイル107にセーブする。
【0035】次に、ステップS307で、旧EXEファ
イル105及び新EXEファイル106における図5に
示される0S/2 EXEヘッダの内容のうち、●印が付与され
たデータが抽出され、それぞれ図6に示される各変数に
格納される。この変数は、特には図示しないメモリに保
持される。これらの変数については後述する。
【0036】続いて、ステップS308で、旧EXEフ
ァイル105と新EXEファイル106のそれぞれにつ
いて、0S/2 EXEヘッダ領域が、前述したDOS EXE ヘッダ
内のファイルオフセット3Chの内容として示される0S
/2 EXEの領域のアドレスから変数segtbl off(図6参
照)で示されるセグメントテーブル部の先頭アドレスの
手前のアドレスまでの領域として抽出される(図2参
照)。
【0037】次に、ヘッダ解析部101は、ステップS
309で、差分抽出処理部104をコールすると共に、
旧EXEファイル105と新EXEファイル106のそ
れぞれについて抽出された0S/2 EXEヘッダ領域を差分抽
出処理部104に渡す。この結果、差分抽出処理部10
4は、後述する差分抽出処理により、ヘッダ解析部10
1から渡された0S/2 EXEヘッダ領域の先頭から末尾ま
で、新EXEファイル106の旧EXEファイル105
に対するバイト単位の差分を抽出し、その差分を更新フ
ァイル107にセーブする。
【0038】続いて、ステップS310で、旧EXEフ
ァイル105と新EXEファイル106のそれぞれにつ
いて、変数segtbl off及びsegtbl cnt(図6参照)に基
づいて抽出されるセグメントテーブル部(図2参照)が
解析される。セグメントテーブル部のデータ構造は、図
7に示される。セグメントテーブル部は、セグメントデ
ータの先頭アドレスを示す1ワードのファイルオフセッ
トデータ、セグメントデータの実サイズを示す1ワード
の実セグメントデータサイズデータ、及びセグメントデ
ータのタイプ及び属性を示す1ワードのセグメントタイ
プ/属性データからなるデータセットを、後述するセグ
メントデータのそれぞれに対応して有している。ステッ
プS310では、旧EXEファイル105と新EXEフ
ァイル106のそれぞれについて、このデータ構造が例
えばデータ構造体の形式で、セグメント情報108(図
1参照)として、後述するセグメントデータ対応付け部
102及びリソース対応付け部103からアクセス可能
な特には図示しないメモリに設定される。
【0039】次に、ステップS311で、旧EXEファ
イル105と新EXEファイル106のそれぞれについ
て、上述のセグメントテーブル部領域(図2参照)が抽
出される。この領域は、変数segtbl offで示されるセグ
メントテーブル部の先頭のオフセットアドレスから変数
entrytbl offで示されるエキスポートエントリテーブル
部の先頭のオフセットアドレスの手前のアドレスまでの
領域として抽出される(図6、図2参照)。
【0040】続いて、ヘッダ解析部101は、ステップ
S312で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれについて抽出されたセグメントテーブル部領
域を差分抽出処理部104に渡す。この結果、差分抽出
処理部104は、後述する差分抽出処理により、ヘッダ
解析部101から渡されたセグメントテーブル部領域の
先頭から末尾まで、新EXEファイル106の旧EXE
ファイル105に対するバイト単位の差分を抽出し、そ
の差分を更新ファイル107にセーブする。
【0041】次に、ステップS313で、旧EXEファ
イル105と新EXEファイル106のそれぞれにつ
き、エキスポートエントリテーブル部領域(図2参照)
が抽出される。この領域は、変数entrytbl offで示され
るエキスポートエントリテーブル部の先頭のオフセット
アドレスから変数resnamtbl off で示される常駐ネーム
テーブル部の先頭のオフセットアドレスの手前のアドレ
スまでの領域として抽出される(図6、図2参照)。
【0042】エキスポートエントリテーブル部には、そ
れが含まれるOS/2 EXE形式のプログラムが、他のOS/2プ
ログラムから参照され得るプログラム、例えばDLL
(ダイナミックリンクライブラリ)プログラムである場
合に、他のOS/2プログラムがこのテーブル部が含まれる
プログラムの一部として提供される関数を参照できるよ
うに、その関数へのファイル内のセグメント番号とオフ
セットが格納される。
【0043】続いて、ヘッダ解析部101は、ステップ
S314で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれについて抽出されたエキスポートエントリテ
ーブル部領域を差分抽出処理部104に渡す。この結
果、差分抽出処理部104は、後述する差分抽出処理に
より、ヘッダ解析部101から渡されたセグメントテー
ブル部領域の先頭から末尾まで、新EXEファイル10
6の旧EXEファイル105に対するバイト単位の差分
を抽出し、その差分を更新ファイル107にセーブす
る。
【0044】次に、ステップS315で、旧EXEファ
イル105と新EXEファイル106のそれぞれについ
て、常駐ネームテーブル部及び非常駐ネームテーブル部
(図2参照)の領域が、1つの領域として抽出される。
この領域は、変数resnamtbloff で示される常駐ネーム
テーブル部の先頭のオフセットアドレスから変数modref
offで示されるモジュール参照テーブル部の先頭のオフ
セットアドレスの手前のアドレスまでの領域として抽出
される(図6、図2参照)。
【0045】常駐ネームテーブル部及び非常駐ネームテ
ーブル部は、図8に示される共通の構成を有し、常駐ネ
ームテーブル部には、プログラム実行時にメモリに常駐
するモジュール名とそのバイト数及びエントリされるテ
ーブルのインデクスが格納され、非常駐ネームテーブル
部には、プログラム実行時に必要に応じてそのプログラ
ム自体が呼出すモジュール名とそのバイト数及びエント
リされるテーブル(モユール)のインデクスが格納され
る。
【0046】続いて、ヘッダ解析部101は、ステップ
S316で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれについて抽出された常駐/非常駐ネームテー
ブル部領域を差分抽出処理部104に渡す。この結果、
差分抽出処理部104は、後述する差分抽出処理によっ
て、ヘッダ解析部101から渡された常駐/非常駐ネー
ムテーブル部領域の先頭から末尾まで、新EXEファイ
ル106の旧EXEファイル105に対するバイト単位
の差分を抽出し、その差分を更新ファイル107にセー
ブする。
【0047】次に、ステップS317において、旧EX
Eファイル105と新EXEファイル106のそれぞれ
について、モジュール参照テーブル部及びインポートネ
ームテーブル部(図2参照)の領域が、1つの領域とし
て抽出される。この領域は、変数modref offで示される
モジュール参照テーブル部の先頭のオフセットアドレス
から変数resrctbl offで示されるリソーステーブル部の
先頭のオフセットアドレスの手前のアドレスまでの領域
として抽出される(図6、図2参照)。
【0048】インポートネームテーブル部には、図9に
示されるように、それが含まれるプログラムが参照する
他のDLLプログラムのモジュール名とそのバイト長が
格納され、モジュール参照テーブル部には、図10に示
されるように、インポートネームテーブル部の各要素へ
のオフセット値がワード配列として格納される。
【0049】続いて、ヘッダ解析部101は、ステップ
S318で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれについて抽出されたモジュール参照/インポ
ートネームテーブル部領域を差分抽出処理部104に渡
す。この結果、差分抽出処理部104は、後述する差分
抽出処理によって、ヘッダ解析部101から渡されたモ
ジュール参照/インポートネームテーブル部領域の先頭
から末尾まで、新EXEファイル106の旧EXEファ
イル105に対するバイト単位の差分を抽出し、その差
分を更新ファイル107にセーブする。
【0050】次に、ステップS319で、旧EXEファ
イル105と新EXEファイル106のそれぞれについ
て、変数resrctbl off及びresrctbl cnt(図6参照)に
基づいて抽出されるリソーステーブル部(図2参照)が
解析される。リソーステーブル部のデータ構造は、図1
1に示される。リソーステーブル部は、リソースのタイ
プの識別子を示す1ワードのリソースタイプIDデータ
と、リソースネームの識別子を示す1ワードのリソース
ネームIDデータとからなるデータセットを、後述する
リソースのそれぞれに対応して有している。ステップS
319では、旧EXEファイル105と新EXEファイ
ル106のそれぞれについて、このデータ構造が、リソ
ース情報109(図1参照)として、後述するリソース
対応付け部103からアクセス可能な特には図示しない
メモリに設定される。
【0051】次に、ステップS320で、旧EXEファ
イル105と新EXEファイル106のそれぞれについ
て、上述のリソーステーブル部領域(図2参照)が抽出
される。この領域は、変数resrctbl offで示されるリソ
ーステーブル部の先頭のオフセットアドレスから変数re
srctbl cntで示されるリソースエントリ数分だけ進んだ
アドレスまでの領域として抽出される(図6、図2参
照)。
【0052】続いて、ヘッダ解析部101は、ステップ
S321で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれにつき抽出されたリソーステーブル部領域を
差分抽出処理部104に渡す。この結果、差分抽出処理
部104は、後述する差分抽出処理により、ヘッダ解析
部101から渡されたリソーステーブル部領域の先頭か
ら末尾まで、新EXEファイル106の旧EXEファイ
ル105に対するバイト単位の差分を抽出し、その差分
を更新ファイル107にセーブする。
【0053】以上のようにして、ヘッダ解析部101に
よって、DOS EXE 形式の領域、0S/2EXEヘッダ領域、及
び各テーブル部領域のそれぞれの領域毎に、旧EXEフ
ァイル105と新EXEファイル106との差分抽出処
理が実行される。
【0054】そして、ヘッダ解析部101は、ステップ
S322で、図1のセグメントデータ対応付け部102
を起動して、処理を終了する。セグメントデータ対応付
け部102で実行される処理の動作フローチャートは図
12に示される。このセグメントデータ対応付け部10
2の動作は、ヘッダ解析部101の場合と同様、特には
図示しないコンピュータシステムにおいて、CPUが、
ディスク装置などに記憶された旧EXEファイル105
及び新EXEファイル106に対して、メモリに記憶さ
れた制御プログラムを実行する動作の一部として実現さ
れる。
【0055】ここで、旧EXEファイル105と新EX
Eファイル106とで対応するセグメントデータがある
場合、変更されていないセグメントについてはそれらの
内容が一致し、変更されたセグメントについてのみ差分
が生ずる。そこで、セグメントデータ対応付け部102
では、旧EXEファイル105と新EXEファイル10
6との間で、セグメントデータの属性やその主要部のデ
ータを比較することによりその対応付けを行い、その対
応付けしたセグメントデータ領域毎に差分抽出処理部1
04に対して差分抽出処理を指示する。
【0056】まず、ステップS1201で、前述した図
4のステップS310でヘッダ解析部101から設定さ
れたセグメント情報108に基づいて、セグメントの対
応付けが行われる。
【0057】この処理では、まず、旧EXEファイル1
05のセグメント情報108(図7参照)に基づいて、
旧EXEファイル105のセグメントが一列に並べられ
る。なお、セグメントは、リンカによってファイルオフ
セットが増大する方向に並べられている。並べられた旧
EXEファイル105のセグメントの例を図13(a)に
示す。
【0058】次に、新EXEファイル106のセグメン
ト情報108(図7参照)に基づいて、新EXEファイ
ル106のセグメントが一列に並べられる。並べられた
新EXEファイル106のセグメントの例を図13(b)
に示す。
【0059】図13の例では、新EXEファイル106
においては、旧EXEファイル105に対して、セグメ
ント番号3のセグメントが追加されている。従って、こ
の状態が検出される必要がある。
【0060】今、本実施例では、旧EXEファイル10
5から新EXEファイル106への更新は、セグメント
を削除、置換、又は追加することにより行われるとす
る。従って、旧EXEファイル105と新EXEファイ
ル106のセグメントの対応関係が図14(a) に示され
るようなものになることはあり得ず、その対応関係は例
えば図14(b) に示される如くとなる。この例では、旧
EXEファイル105のセグメント番号4のセグメント
が削除され、新EXEファイル106のセグメント番号
2のセグメントが追加され、その他のセグメントのペア
については、変更がないか、又は置換がなされている。
【0061】そこで、一列に並べられた旧EXEファイ
ル105のセグメント及び新EXEファイル106のセ
グメントについて、以下の対応付け処理がなされる。処理1: 旧EXEファイル105と新EXEファイル1
06のセグメント数が比較される。
【0062】処理2:セグメント数が同じか、新EXE
ファイル106のセグメント数の方が多い場合は、旧E
XEファイル105で定義されているセグメントをキー
として、新EXEファイル106中のセグメントがサー
チされる。旧EXEファイル105のセグメント数の方
が多い場合は、新EXEファイル106で定義されてい
るセグメントをキーとして、旧EXEファイル105中
のセグメントがサーチされる。
【0063】処理3:サーチ対象であるセグメントにお
いて、現在のキーとされているセグメントに対し、セグ
メントタイプ/属性が同じで、かつ、セグメントデータ
の最初の16バイトの内容が一致するものがペアセグメ
ントとされる。ここで、図15に示されるように、先頭
にリロケーション情報が設定されているリロケーション
テーブルを有するセグメントデータが存在する。キーと
されているセグメント又はサーチ対象であるセグメント
の何れかがこのようなデータである場合には、このリロ
ケーションテーブルの直後の最初の16バイトの内容が
一致するものがペアセグメントとされ、リロケーション
テーブルについては、後述するように別に差分抽出処理
が実行される。なお、リロケーションテーブルが存在す
るか否かは、セグメント情報108のセグメントタイプ
/属性データに、リロケーションテーブルが存在するこ
とを示すデータ値が設定されているか否かによって判別
できる。
【0064】サーチ対象であるセグメントにおいて、上
記一致関係が成立するセグメントがない場合には、キー
となったセグメントについては、サーチは諦められ、そ
のセグメントは旧EXEファイル105の孤立セグメン
トとされる。そして、次のセグメントがキーとされて、
サーチが行われる。
【0065】全てのサーチが終了した時点で、新EXE
ファイル106においてペアとならなかったセグメント
は、新EXEファイル106の孤立セグメントとされ
る。このようにして得られた、ペアセグメント、旧EX
Eファイル105の孤立セグメント、及び新EXEファ
イル106の孤立セグメントが、セグメント対応付けデ
ータとしてメモリなどに保持される。
【0066】上述のようにして、図12のステップS1
201で、全てのサーチが終了した後、セグメント対応
付けデータのそれぞれに対して、以下に示されるステッ
プS1202〜S1216の処理が繰り返し実行され
る。
【0067】即ち、まず、ステップS1202で、1つ
のセグメント対応付けデータがメモリなどから抽出され
る。セグメント対応付けデータが存在するならステップ
S1203の判定はYESとなり、続いて、ステップS
1204で、そのセグメント対応付けデータがペアセグ
メントか否かが判定される。
【0068】セグメント対応付けデータがペアセグメン
トであってステップS1204の判定がYESの場合に
は、ステップS1208、S1210、及びS1212
で、旧EXEファイル105及び新EXEファイル10
6の両方又は何れか一方にリロケーション情報が設定さ
れているか否かが判定される。
【0069】旧EXEファイル105及び新EXEファ
イル106の両方にリロケーション情報が設定されてい
る場合は、ステップS1208及びS1210の判定が
NOとなりステップS1212の判定がYESとなっ
て、ステップS1213が実行される。ステップS12
13では、旧EXEファイル105と新EXEファイル
106のそれぞれにつき、リロケーションテーブル部領
域が抽出される。この領域は、セグメントデータの先頭
アドレスから、その先頭1バイトに設定されているリロ
ケーション項目数分だけ進んだアドレスまでの領域とし
て抽出される。続いて、セグメントデータ対応付け部1
02は、ステップS1214で、差分抽出処理部104
をコールすると共に、旧EXEファイル105と新EX
Eファイル106のそれぞれについて抽出されたリロケ
ーションテーブル部領域を差分抽出処理部104に渡
す。この結果、差分抽出処理部104は、後述する差分
抽出処理によって、セグメントデータ対応付け部102
から渡されたリロケーションテーブル部領域の先頭から
末尾まで、新EXEファイル106の旧EXEファイル
105に対するバイト単位の差分を抽出し、その差分を
更新ファイル107にセーブする。
【0070】旧EXEファイル105のみにリロケーシ
ョン情報が設定されている場合は、ステップS1208
の判定がYESとなり、ステップS1209が実行され
る。ステップS1209では、旧EXEファイル105
のリソーステーブル部領域が削除された旨を示す差分情
報(更新レコード)が、更新ファイル107にセーブさ
れる。
【0071】新EXEファイル106のみにリロケーシ
ョン情報が設定されている場合は、ステップS1208
の判定がNO、ステップS1210の判定がYESとな
り、ステップS1211が実行される。ステップS12
11においては、新EXEファイル106のリソーステ
ーブル部領域が挿入された旨を示す差分情報(更新レコ
ード)が、更新ファイル107にセーブされる。
【0072】旧EXEファイル105及び新EXEファ
イル106の何れにもリロケーション情報が設定されて
いない場合は、上述のリロケーションテーブルに関する
処理は実行されない。
【0073】以上のステップS1214、S1209、
又はS1211の処理の後、又はステップS1212の
判定がNOとなった後、ステップS1215が実行され
る。ステップS1215では、リロケーション情報を除
いたセグメントデータ本体の領域が抽出される。この領
域は、リロケーション情報が設定されていない場合には
セグメントデータの先頭アドレスから、リロケーション
情報が設定されている場合にはセグメントデータの先頭
1バイトに設定されているリロケーション項目数分だけ
進んだアドレスの次のアドレスから、セグメント情報1
08から抽出される次のセグメント番号のセグメントデ
ータの先頭のオフセットアドレスの手前のアドレスまで
の領域として抽出される。
【0074】続いて、セグメントデータ対応付け部10
2は、ステップS1216で、差分抽出処理部104を
コールすると共に、旧EXEファイル105と新EXE
ファイル106のそれぞれにつき抽出されたセグメント
データ領域を差分抽出処理部104に渡す。この結果、
差分抽出処理部104は、後述する差分抽出処理によっ
て、セグメントデータ対応付け部102から渡されたセ
グメントデータ領域の先頭から末尾まで、新EXEファ
イル106の旧EXEファイル105に対するバイト単
位の差分を抽出し、その差分を更新ファイル107にセ
ーブする。
【0075】一方、前述したステップS1204の判定
において、セグメント対応付けデータがペアセグメント
でない場合であってステップS1204の判定がNOの
場合には、更にステップS1205で、セグメント対応
付けデータが旧EXEファイル105の孤立セグメント
であるか否かが判定される。
【0076】セグメント対応付けデータが旧EXEファ
イル105の孤立セグメントであってステップS120
5の判定がYESなら、ステップS1206が実行され
る。ステップS1206では、旧EXEファイル105
の孤立セグメントの領域が削除された旨を示す差分情報
(更新レコード)が、更新ファイル107にセーブされ
る。
【0077】セグメント対応付けデータが旧EXEファ
イル105の孤立セグメントでなくステップS1205
の判定がNOなら、それは新EXEファイル106の孤
立セグメントであり、この場合には、ステップS120
7が実行される。ステップS1207では、新EXEフ
ァイル106の孤立セグメントの領域が挿入された旨を
示す差分情報(更新レコード)が、更新ファイル107
にセーブされる。
【0078】以上のステップS1202〜S1216の
処理が、全てのセグメント対応付けデータに対して繰り
返し実行される。そして、セグメント対応付けデータが
なくなると、ステップS1203の判定がNOとなる。
このようにして、セグメントデータ対応付け部102に
よって、旧EXEファイル105と新EXEファイル1
06との間で、セグメントデータの対応付けが行われた
上で、その対応付けされたセグメントデータ領域毎に差
分抽出処理部104で差分抽出処理が実行される。
【0079】そして、セグメントデータ対応付け部10
2は、ステップS1217で、図1のリソース対応付け
部103を起動して、処理を終了する。リソース対応付
け部103で実行される処理の動作フローチャートは、
図16に示される。このリソース対応付け部103の動
作は、ヘッダ解析部101などの場合と同様、特には図
示しないコンピュータシステムにおいて、CPUが、デ
ィスク装置などに記憶された旧EXEファイル105及
び新EXEファイル106に対して、メモリに記憶され
た制御プログラムを実行する動作の一部として実現され
る。
【0080】ここで、リソースはセグメントデータの一
属性として規定され、従って、前述したセグメントデー
タの場合と同様、旧EXEファイル105と新EXEフ
ァイル106とで対応するリソースがある場合、変更さ
れていないリソースについてはそれらの内容が一致し、
変更されたリソースについてのみ差分が生ずる。そこ
で、リソース対応付け部103でも、セグメントデータ
対応付け部102の場合と同様に、旧EXEファイル1
05と新EXEファイル106との間で、リソースの対
応付けを行い、その対応付けしたリソース領域毎に差分
抽出処理部104に対して差分抽出処理を指示する。
【0081】この場合、特にリソースでは、前述したリ
ソーステーブル部(図11参照)において、リソースネ
ームIDが設定されている。そこで、リソース対応付け
部103は、リソースネームIDを比較することにより
その対応付けを行い、その対応付けしたリソース領域毎
に差分抽出処理部104に対して差分抽出処理を指示す
る。
【0082】まず、ステップS1601で、前述した図
4のステップS310及びS319でヘッダ解析部10
1から設定されたセグメント情報108及びリソース情
報109に基づいて、リソースの対応付けが行われる。
【0083】この処理では、まず、旧EXEファイル1
05と新EXEファイル106のセグメント情報108
(図7参照)及びリソース情報109に基づいて、それ
らのリソースが抽出される。ここで、{(セグメント情
報108として設定されているセグメントの数)−(リ
ソース情報109として設定されているリソースの数)
+1}番目以降のセグメント情報108が、リソース情
報109として設定されている各リソースネームIDに
対応するリソースを示している。旧EXEファイル10
5及び新EXEファイル106において抽出されたリソ
ースの例を図17(a) に示す。
【0084】次に、旧EXEファイル105及び新EX
Eファイル106において抽出されたリソースが、セグ
メント情報108から抽出されるファイルオフセット順
にソートされる。ソートされた旧EXEファイル105
及び新EXEファイル106のリソースの例を図17
(b) に示す。
【0085】次に、ソートされた旧EXEファイル10
5及び新EXEファイル106のリソースにおいて、同
じリソースネームIDを有するもの同士が対応づけられ
る。この結果、図17の例における対応関係は、図18
に示される如くとなる。この例では、旧EXEファイル
105のリソースネームID=6のリソースが削除さ
れ、新EXEファイル106のリソースネームID=9
及び38のリソースが追加され、その他のリソースのペ
アについては、変更がないか、又は置換がなされてい
る。
【0086】そこで、ソートされた旧EXEファイル1
05のリソース及び新EXEファイル106のリソース
について、以下の対応付け処理がなされる。処理1: 旧EXEファイル105と新EXEファイル1
06のリソース数が比較される。
【0087】処理2:リソース数が同じか、新EXEフ
ァイル106のリソース数の方が多い場合は、旧EXE
ファイル105で定義されているリソースをキーとし
て、新EXEファイル106中のリソースがサーチされ
る。旧EXEファイル105のリソース数の方が多い場
合は、新EXEファイル106で定義されているリソー
スをキーとして、旧EXEファイル105中のリソース
がサーチされる。
【0088】処理3:サーチ対象であるリソースにおい
て、現在のキーとされているリソースに対し、リソース
ネームIDが同じものがペアリソースとされる。ここ
で、前述したセグメントデータの場合と同様、図15に
示されるように、先頭にリロケーション情報が設定され
ているリロケーションテーブルを有するリソースが存在
する。キーとされているリソース又はサーチ対象である
リソースの何れかがこのようなデータである場合には、
そのリロケーションテーブルについては、後述するよう
に別に差分抽出処理が実行される。なお、リロケーショ
ンテーブルが存在するか否かは、リソースに対応するセ
グメント情報108のセグメントタイプ/属性データ
に、リロケーションテーブルが存在することを示すデー
タ値が設定されているか否かによって判別できる。
【0089】サーチ対象であるリソースにおいて、上記
一致関係が成立するリソースがない場合には、キーとな
ったリソースについては、サーチは諦められ、そのリソ
ースは旧EXEファイル105の孤立リソースとされ
る。そして、次のリソースがキーとされて、サーチが行
われる。
【0090】全てのサーチが終了した時点で、新EXE
ファイル106においてペアとならなかったリソース
は、新EXEファイル106の孤立リソースとされる。
このようにして得られた、ペアリソース、旧EXEファ
イル105の孤立リソース、及び新EXEファイル10
6の孤立リソースが、リソース対応付けデータとしてメ
モリなどに保持される。
【0091】上述のようにして、図16のステップS1
601で、全てのサーチが終了した後、リソース対応付
けデータのそれぞれに対して、以下に示されるステップ
S1602〜S1616の処理が繰り返し実行される。
これらの処理波、セグメント対応付けデータに対する図
12のステップS1202〜S1216の処理と同じで
ある。
【0092】即ち、まず、ステップS1602で、1つ
のリソース対応付けデータがメモリなどから抽出され
る。リソース対応付けデータが存在するならステップS
1603の判定はYESとなり、続いて、ステップS1
604で、そのリソース対応付けデータがペアリソース
か否かが判定される。
【0093】リソース対応付けデータがペアリソースで
あってステップS1604の判定がYESの場合には、
ステップS1608、S1610、及びS1612で、
旧EXEファイル105及び新EXEファイル106の
両方又は何れか一方にリロケーション情報が設定されて
いるか否かが判定される。
【0094】旧EXEファイル105及び新EXEファ
イル106の両方にリロケーション情報が設定されてい
る場合は、ステップS1608及びS1610の判定が
NOとなりステップS1612の判定がYESとなっ
て、ステップS1613が実行される。ステップS16
13では、旧EXEファイル105と新EXEファイル
106のそれぞれにつき、リロケーションテーブル部領
域が抽出される。この領域は、リソースの先頭アドレス
から、その先頭1バイトに設定されているリロケーショ
ン項目数分だけ進んだアドレスまでの領域として抽出さ
れる。続いて、リソース対応付け部103は、ステップ
S1614で、差分抽出処理部104をコールすると共
に、旧EXEファイル105と新EXEファイル106
のそれぞれについて抽出されたリロケーションテーブル
部領域を差分抽出処理部104に渡す。この結果、差分
抽出処理部104は、後述する差分抽出処理によって、
リソース対応付け部103から渡されたリロケーション
テーブル部領域の先頭から末尾まで、新EXEファイル
106の旧EXEファイル105に対するバイト単位の
差分を抽出し、その差分を更新ファイル107にセーブ
する。
【0095】旧EXEファイル105のみにリロケーシ
ョン情報が設定されている場合は、ステップS1608
の判定がYESとなり、ステップS1609が実行され
る。ステップS1609では、旧EXEファイル105
のリソーステーブル部領域が削除された旨を示す差分情
報(更新レコード)が、更新ファイル107にセーブさ
れる。
【0096】新EXEファイル106のみにリロケーシ
ョン情報が設定されている場合は、ステップS1608
の判定がNO、ステップS1610の判定がYESとな
り、ステップS1611が実行される。ステップS16
11においては、新EXEファイル106のリソーステ
ーブル部領域が挿入された旨を示す差分情報(更新レコ
ード)が、更新ファイル107にセーブされる。
【0097】旧EXEファイル105及び新EXEファ
イル106の何れにもリロケーション情報が設定されて
いない場合は、上述のリロケーションテーブルに関する
処理は実行されない。
【0098】以上のステップS1614、S1609、
又はS1611の処理の後、又はステップS1612の
判定がNOとなった後、ステップS1615が実行され
る。ステップS1615では、リロケーション情報を除
いたリソース本体の領域が抽出される。この領域は、リ
ロケーション情報が設定されていない場合にはリソース
の先頭アドレスから、リロケーション情報が設定されて
いる場合にはリソースの先頭1バイトに設定されている
リロケーション項目数分だけ進んだアドレスの次のアド
レスから、セグメント情報108及びリソース情報10
8から抽出される次のリソース番号のリソースの先頭の
オフセットアドレスの手前のアドレスまでの領域として
抽出される。
【0099】続いて、リソース対応付け部103は、ス
テップS1616で、差分抽出処理部104をコールす
ると共に、旧EXEファイル105と新EXEファイル
106のそれぞれにつき抽出されたリソース領域を差分
抽出処理部104に渡す。この結果、差分抽出処理部1
04は、後述する差分抽出処理によって、リソース対応
付け部103から渡されたリソース領域の先頭から末尾
まで、新EXEファイル106の旧EXEファイル10
5に対するバイト単位の差分を抽出し、その差分を更新
ファイル107にセーブする。
【0100】一方、前述したステップS1604の判定
において、リソース対応付けデータがペアリソースでな
い場合であってステップS1604の判定がNOの場合
には、更にステップS1605で、リソース対応付けデ
ータが旧EXEファイル105の孤立リソースであるか
否かが判定される。
【0101】リソース対応付けデータが旧EXEファイ
ル105の孤立リソースであってステップS1605の
判定がYESなら、ステップS1606が実行される。
ステップS1606では、旧EXEファイル105の孤
立リソースの領域が削除された旨を示す差分情報(更新
レコード)が、更新ファイル107にセーブされる。
【0102】リソース対応付けデータが旧EXEファイ
ル105の孤立リソースでなくステップS1605の判
定がNOなら、それは新EXEファイル106の孤立リ
ソースであり、この場合には、ステップS1607が実
行される。ステップS1607では、新EXEファイル
106の孤立リソースの領域が挿入された旨を示す差分
情報(更新レコード)が、更新ファイル107にセーブ
される。
【0103】以上のステップS1602〜S1616の
処理が、全てのリソース対応付けデータに対して繰り返
し実行される。そして、リソース対応付けデータがなく
なると、ステップS1603の判定がNOとなり、全て
の処理を終了する。
【0104】最後に、上述したようにしてヘッダ解析部
101、セグメントデータ対応付け部102、又はリソ
ース対応付け部103からコールされる差分抽出処理部
104の処理について説明する。
【0105】差分抽出処理部104で実行される差分抽
出処理の動作フローチャートは図19に、また、差分抽
出処理において実行される比較処理の動作フローチャー
トは図20に示される。これらの動作は、ヘッダ解析部
101などの場合と同様、特には図示しないコンピュー
タシステムにおいて、CPUが、ディスク装置などに記
憶された旧EXEファイル105及び新EXEファイル
106に対して、メモリに記憶された制御プログラムを
実行する動作の一部として実現される。
【0106】今、例えば図22(a) に示されるように、
旧EXEファイル105の領域として、バイトデータ列
ab・・・cde・・・・からなる領域が指定され、一
方、新EXEファイル106の領域として、バイトデー
タcとdの間にバイトデータ列II・・・Iが挿入され
た領域が指定されたとする。
【0107】図19において、まず、ステップS190
1で、指定された領域において比較すべきデータがなく
なったか否かが判定される。比較すべきデータがある場
合、ステップS1902で、新EXEファイル106に
おいて指定された領域を比較側、旧EXEファイル10
5において指定された領域を比較対象側として、図21
に示されるように、比較側のバイトデータをキーとして
比較処理が実行される。
【0108】比較処理の動作フローチャートは図20に
示される。図20のステップS2001で、特には図示
しないメモリに確保されている変数srcendに、比較側の
領域における終了位置又は後述する現在の比較側の比較
開始位置より1024バイト前方の位置のうち、現在の
比較側の比較開始位置から近い方の位置のアドレスが格
納される。同様にして、特には図示しないメモリに確保
されている変数distend に、比較対象側の領域における
終了位置又は後述する現在の比較対象側の比較開始位置
より1024バイト前方の位置のうち、現在の比較対象
側の比較開始位置から近い方の位置のアドレスが格納さ
れる。
【0109】次に、ステップS2002で、特には図示
しないメモリに確保されている変数変数src に、現在の
比較側の比較開始位置のアドレスが格納される。図22
(a)の例では、変数src には最初は新EXEファイル1
06の指定領域における先頭のバイトデータaのアドレ
スが格納される。同様にして、特には図示しないメモリ
に確保される変数distとnextdistに、現在の比較対象側
の比較開始位置のアドレスが格納される。図22(a) の
例では、変数distとnextdistには最初は旧EXEファイ
ル105の指定領域における先頭のバイトデータaのア
ドレスが格納される。
【0110】その後、図22(a) に示されるように、新
EXEファイル106と旧EXEファイル105とで内
容が一致しているバイトデータab・・・cの範囲で
は、ステップS2006で変数src 、dist、及びnextdi
stの値が順次インクリメントされながら、ステップS2
003→S2004→S2005→S2006→S20
03の処理が繰り返されることにより、図22(a) のT
1〜T3に示されるように、変数src 及びdistで示され
るアドレスにおける値が一致するバイトデータ同士が順
次対応付けられてゆく。
【0111】そして、図22(a) に示されるように、ス
テップS2006で、比較側である新EXEファイル1
06において変数src の値が挿入されたバイトデータI
I・・・Iのうち最初のデータのアドレスにされ、比較
対象側である旧EXEファイル105において変数dist
の値がバイトデータdのアドレスにされた後、次にステ
ップS2004が実行される時点で、その判定がNOと
なる。
【0112】この後は、ステップS2008で変数dist
の値がインクリメントされながら、ステップS2004
→S2007→S2008→S2009→S2004→
S2007→S2008の処理が繰り返されることによ
り、変数src で示されるアドレスにおける新EXEファ
イル106で挿入された第1番目のバイトデータIをキ
ーとして、その値と、順次インクリメントされる変数di
stで示されるアドレスにおける旧EXEファイル105
上のバイトデータde・・・の各値とが、それらが一致
してステップS2004の判定がYESとなるまで、順
次比較される。この動作は、図22(a) のT4、T5に
示される。
【0113】この比較処理の繰り返しの結果、新EXE
ファイル106で挿入された第1番目のバイトデータI
に一致するバイトデータが旧EXEファイル105上で
見つかれなければ、やがて変数distで示されるアドレス
が変数distend で示される比較終了アドレスを越え、ス
テップS2009の判定がYESとなる。
【0114】この場合には、新EXEファイル106で
挿入された第1番目のバイトデータIをキーとするサー
チは諦められ、ステップS2010で、変数src の値が
インクリメントされることにより新EXEファイル10
6で挿入された第2番目のバイトデータIがキーとさ
れ、また、変数distに変数nextdistのアドレスが挿入さ
れることにより、比較対象側である旧EXEファイル1
05上の比較開始位置が初めて不一致が発生したバイト
データdのアドレスに戻される。
【0115】そして、変数src で示されるアドレスが変
数srcendで示される比較終了アドレスを越えておらずス
テップS2003の判定がNOであれば、再び、ステッ
プS2008で変数distの値がインクリメントされなが
ら、ステップS2004→S2007→S2008→S
2009→S2004→S2007→S2008の処理
が繰り返されることにより、変数src で示されるアドレ
スにおける新EXEファイル106で挿入された第2番
目のバイトデータIをキーとして、その値と、順次イン
クリメントされる変数distで示されるアドレスにおける
旧EXEファイル105上のバイトデータde・・・の
各値とが、それらが一致してステップS2004の判定
がYESとなるまで、順次比較される。この動作は、図
22(a)のT6、T7に示される。
【0116】以下、ステップS2009の判定がYES
となる毎に、新EXEファイル106で挿入された第3
番目以降の各バイトデータIについて同様の比較処理が
繰り返される(図22(a) のT8、T9)。
【0117】やがてステップS2010で、変数src に
新EXEファイル106上のバイトデータdのアドレス
が代入され、変数distに変数nextdistで示される旧EX
Eファイル105上のバイトデータdのアドレスが代入
された後、ステップS2004が実行された時点で、変
数src で示されるアドレスにおける新EXEファイル1
06のバイトデータdと変数distで示されるアドレスに
おける旧EXEファイル105のバイトデータdとが一
致し、その判定がYESとなる。この一致状態は、最初
に新EXEファイル106と旧EXEファイル105の
バイトデータab・・・cが一致し、次に、新EXEフ
ァイル106で挿入されたバイトデータII・・・Iが
旧EXEファイル105上のバイトデータde・・・と
不一致となった後の一致状態であるため、ステップS2
005の判定がYESとなる。
【0118】この結果、ステップS2011で、図22
(a) の新EXEファイル106と旧EXEファイル10
5のバイトデータab・・・cで示される一致部分の一
致開始点(バイトデータaのアドレス)と一致バイト数
が算出され、また、新EXEファイル106で挿入され
たバイトデータII・・・Iで示される不一致部分の不
一致開始点と不一致バイト数が算出されて、比較処理が
終了する。
【0119】上述のように、一致部分と不一致部分のペ
アが見つかってステップS2005の判定がYESとな
る時点で、また、図26の説明で後述するように、不一
致部分と一致部分のペアが見つかってステップS200
7の判定がYESとなる時点で、一致部分の一致開始点
と一致バイト数、及び不一致部分の不一致開始点と不一
致バイト数が算出されて、比較処理が終了される。
【0120】以上の動作の結果、新EXEファイル10
6の指定領域の各バイトデータをキーとする旧EXEフ
ァイル105の指定領域の各バイトデータに対する図1
9のステップS1902の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
03で、上述の一致バイト数が64バイト以上であるか
否かが判定される。
【0121】一致バイト数が64バイト以上であってス
テップS1903の判定がYESとなった場合には、ス
テップS1909で、上述の不一致部分に関する差分情
報が図1の更新ファイル107へライトされる。例えば
図22(a) の新EXEファイル106と旧EXEファイ
ル105のバイトデータab・・・cで示される一致部
分の一致バイト数が64バイト以上である場合には、新
EXEファイル106において、旧EXEファイル10
5のバイトデータcで示されるアドレスの直後にバイト
データII・・・Iが挿入されたことを示す差分情報が
更新ファイル107へライトされる。
【0122】一致バイト数が64バイトより少なくステ
ップS1903の判定がNOとなった場合には、ステッ
プS1904で、前述したステップS1902の場合と
は逆に、旧EXEファイル105の指定領域を比較側、
新EXEファイル106の指定領域を比較対象側とし、
比較側のバイトデータをキーとして、前述した図20で
示される比較処理が実行される。
【0123】この比較処理の例として、前述した図22
(a) に対応する動作が図22(b) に示される。まず、ス
テップS2001とステップS2002で、変数srcend
とdistend 、変数src 、及び変数distとnextdistに、図
22(a) の場合と同様の値が設定される。
【0124】その後、前述したステップS2003→S
2004→S2005→S2006→S2003の処理
が繰り返されることにより、図22(b) のT1〜T3に
示されるように、変数src 及びdistで示されるアドレス
における値が一致するバイトデータ同士が順次対応付け
られてゆく。
【0125】そして、図22(b) に示されるように、ス
テップS2006で、比較側である旧EXEファイル1
05において変数src の値がdのアドレスにされ、比較
対象側である新EXEファイル106において変数dist
の値が挿入されたバイトデータII・・・Iのうち最初
のデータのアドレスにされた後、次にステップS200
4が実行される時点で、その判定がNOとなる。
【0126】この後は、ステップS2008で変数dist
の値がインクリメントされながら、ステップS2004
→S2007→S2008→S2009→S2004→
S2007→S2008の処理が繰り返されることによ
って、変数src で示されるアドレスにおける旧EXEフ
ァイル105のバイトデータdをキーとして、その値
と、順次インクリメントされる変数distで示されるアド
レスにおける新EXEファイル106上のバイトデータ
II・・・Iの各値とが、それらが一致してステップS
2004の判定がYESとなるまで、順次比較される。
この動作は、図22(b) のT4〜T6に示される。
【0127】この比較処理の繰り返しの結果、ステップ
S2008で、変数distに新EXEファイル106上の
バイトデータdのアドレスが代入された後、ステップS
2004が実行された時点で、変数src で示されるアド
レスにおける旧EXEファイル105のバイトデータd
と変数distで示されるアドレスにおける新EXEファイ
ル106のバイトデータdとが一致し、その判定がYE
Sとなる。この一致状態は、最初に旧EXEファイル1
05と新EXEファイル106のバイトデータab・・
・cが一致し、次に、新EXEファイル106で挿入さ
れたバイトデータII・・・Iが旧EXEファイル10
5上のバイトデータdと不一致となった後の一致状態で
あるため、ステップS2005の判定がYESとなる。
【0128】この結果、ステップS2011で、図22
(b) の旧EXEファイル105と新EXEファイル10
6のバイトデータab・・・cで示される一致部分の一
致開始点(バイトデータaのアドレス)と一致バイト数
が算出され、また、新EXEファイル106で挿入され
たバイトデータII・・・Iで示される不一致部分の不
一致開始点と不一致バイト数が算出されて、比較処理が
終了する。
【0129】以上の動作の結果、旧EXEファイル10
5の指定領域の各バイトデータをキーとする新EXEフ
ァイル106の指定領域の各バイトデータに対する図1
9のステップS1904の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
05で、全てのバイトが不一致であるか否かが判定され
る。
【0130】全てのバイトが不一致であってステップS
1905の判定がYESとなった場合には、ステップS
1909で、上述の不一致部分に関する差分情報が図1
の更新ファイル107へライトされる。
【0131】一方、図22の例のように、全てのバイト
が不一致でなくステップS1905の判定がNOとなっ
た場合には、ステップS1906で、まず、次式によっ
て、新EXEファイル106のバイトデータをキーとす
る前述したステップS1902の比較処理における一致
バイト数の割合RNEWOLD が算出される。
【0132】
【数1】RNEWOLD=(新→旧の一致バイト数)/{(新→
旧の一致バイト数+(新→旧の不一致バイト数)} 次に、次式によって、旧EXEファイル105のバイト
データをキーとする前述したステップS1904の比較
処理における一致バイト数の割合ROLDNEW が算出され
る。
【0133】
【数2】ROLDNEW=(旧→新の一致バイト数)/{(旧→
新の一致バイト数+(旧→新の不一致バイト数)} そして、次式によって、新EXEファイル106をキー
とした場合の一致バイト数の割合RNEWOLD の方が旧EX
Eファイル105をキーとした場合の一致バイト数の割
合ROLDNEW より小さいか否かが判定される。
【0134】
【数3】RNEWOLD/ROLDNEW <1 ? 今、更新ファイル107には、不一致部分の差分情報が
格納されるため、一致部分はなるべく多い方がよい。従
って、新EXEファイル106をキーとした場合の一致
バイト数の割合RNEWOLD の方が旧EXEファイル105
をキーとした場合の一致バイト数の割合ROLDNEW より小
さくステップS1906の判定がYESの場合には、ス
テップS1907で、旧EXEファイル105をキーと
した場合のステップS1904の比較処理の結果が選択
され、ステップS1909で、その比較処理によって得
られている不一致部分に関する差分情報が図1の更新フ
ァイル107へライトされる。一方、新EXEファイル
106をキーとした場合の一致バイト数の割合RNEWOLD
の方が旧EXEファイル105をキーとした場合の一致
バイト数の割合ROLDNEW 以上であってステップS190
6の判定がNOの場合には、ステップS1908で、新
EXEファイル106をキーとした場合のステップS1
902の比較処理の結果が選択され、ステップS190
9で、その比較処理によって得られている不一致部分に
関する差分情報が図1の更新ファイル107へライトさ
れる。
【0135】但し、図22(a) と(b) の例では、RNEWOL
D=ROLDNEW となるため、ステップS1908で、新EX
Eファイル106をキーとした場合のステップS190
2の比較処理の結果が選択され、ステップS1909
で、その比較処理によって得られている不一致部分に関
する差分情報として、新EXEファイル106において
旧EXEファイル105のバイトデータcで示されるア
ドレスの直後にバイトデータII・・・Iが挿入された
ことを示す差分情報が、更新ファイル107へライトさ
れる。
【0136】ステップS1909の処理の後は、ステッ
プS1910で、次の比較開始位置が設定され、ステッ
プS1901以降の処理に戻る。図22(a) の例では、
次の比較開始位置は、新EXEファイル106では、最
後に図20のステップS2004の判定がYESとなっ
たときの変数src に格納されているバイトデータdのア
ドレス、旧EXEファイル105でも、同じくそのとき
の変数distに格納されているバイトデータdのアドレス
である。以後、これらの比較開始位置を起点として、前
述した場合と全く同様の比較処理が繰り返される。
【0137】新EXEファイル106の指定領域と旧E
XEファイル105の指定領域において、比較するバイ
トデータが存在しなくなったら、ステップS1901の
判定がYESとなって、これらの指定領域における差分
抽出処理を終了する。
【0138】次に、図23(a) に示されるように、新E
XEファイル106の指定領域において、旧EXEファ
イル105の指定領域のバイトデータcとdの間に存在
したバイトデータ列DD・・・Dの領域が削除された場
合を考える。
【0139】この場合、まず、図23(a) に示されるよ
うに、図19のステップS1902で、新EXEファイ
ル106において指定された領域を比較側、旧EXEフ
ァイル105において指定された領域を比較対象側とし
て、比較側のバイトデータをキーとして比較処理が実行
される。
【0140】この比較処理は、前述した図22(b) の場
合に対し、比較側と比較対象側が逆になっただけで、同
様の処理である。そして、この比較処理の結果、図23
(a)の新EXEファイル106と旧EXEファイル10
5のバイトデータab・・・cで示される一致部分の一
致開始点と一致バイト数が算出され、また、新EXEフ
ァイル106で削除されたバイトデータDD・・・Dで
示される不一致部分の不一致開始点と不一致バイト数が
算出されて、比較処理が終了する。
【0141】以上の動作の結果、新EXEファイル10
6の指定領域の各バイトデータをキーとする旧EXEフ
ァイル105の指定領域の各バイトデータに対する図1
9のステップS1902の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
03で、上述の一致バイト数が64バイト以上であるか
否かが判定される。
【0142】一致バイト数が64バイト以上であってス
テップS1903の判定がYESとなった場合には、ス
テップS1909で、上述の不一致部分に関する差分情
報が図1の更新ファイル107へライトされる。
【0143】一致バイト数が64バイトより少なくステ
ップS1903の判定がNOとなった場合には、ステッ
プS1904で、前述したステップS1902の場合と
は逆に、旧EXEファイル105の指定領域を比較側、
新EXEファイル106の指定領域を比較対象側とし、
比較側のバイトデータをキーとして、前述の図20で示
される比較処理が実行される。この比較処理の例とし
て、前述の図23(a) に対応する動作が図23(b) に示
される。この比較処理は、前述の図22(a) の場合に対
して、比較側と比較対象側が逆になっただけで、同様の
処理である。そして、この比較処理の結果、図23(b)
の旧EXEファイル105と新EXEファイル106の
バイトデータab・・・cで示される一致部分の一致開
始点と一致バイト数が算出され、また、新EXEファイ
ル106で削除されたバイトデータDD・・・Dで示さ
れる不一致部分の不一致開始点と不一致バイト数が算出
されて、比較処理が終了する。
【0144】以上の動作の結果、旧EXEファイル10
5の指定領域の各バイトデータをキーとする新EXEフ
ァイル106の指定領域の各バイトデータに対する図1
9のステップS1904の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
05で、全てのバイトが不一致であるか否かが判定され
る。
【0145】図23の例では、全てのバイトが不一致で
なくステップS1905の判定がNOとなるため、ステ
ップS1906で、前述した数1式、数2式、及び数3
式に基づいて、新EXEファイル106をキーとした場
合の一致バイト数の割合RNEWOLD の方が旧EXEファイ
ル105をキーとした場合の一致バイト数の割合ROLDNE
W より小さいか否かが判定される。
【0146】図23(a) と(b) の例では、RNEWOLD=ROLD
NEW となるため、ステップS1908で、新EXEファ
イル106をキーとした場合のステップS1902の比
較処理の結果が選択され、ステップS1909で、その
比較処理によって得られている不一致部分に関する差分
情報として、新EXEファイル106において旧EXE
ファイル105のバイトデータcとdの間のバイトデー
タDD・・・Dが削除されたことを示す差分情報が、更
新ファイル107へライトされる。
【0147】次に、図24(a) に示されるように、新E
XEファイル106の指定領域において、旧EXEファ
イル105の指定領域のバイトデータcとdの間に存在
したバイトデータ列RR・・・Rの領域がそれと同じ長
さを有する他のバイトデータ列RR・・・Rに置換され
た場合を考える。
【0148】この場合、まず、図24(a) に示されるよ
うに、図19のステップS1902で、新EXEファイ
ル106において指定された領域を比較側、旧EXEフ
ァイル105において指定された領域を比較対象側とし
て、比較側のバイトデータをキーとして比較処理が実行
される。この比較処理は、まず、図24(a) のT1〜T
9で示される比較範囲では、前述の図22(a) のT1〜
T9で示される比較範囲のものと同様の処理であり、続
いて、図24(a) のT10〜T13で示される比較範囲
では、前述の図23(a) のT4〜T7で示される比較範
囲のものと同様の処理である。そして、この比較処理の
結果、図24(a) の新EXEファイル106と旧EXE
ファイル105のバイトデータab・・・cで示される
一致部分の一致開始点と一致バイト数が算出され、ま
た、新EXEファイル106で置換されたバイトデータ
RR・・・Rで示される不一致部分の不一致開始点と不
一致バイト数が算出されて、比較処理が終了する。
【0149】以上の動作の結果、新EXEファイル10
6の指定領域の各バイトデータをキーとする旧EXEフ
ァイル105の指定領域の各バイトデータに対する図1
9のステップS1902の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
03で、上述の一致バイト数が64バイト以上であるか
否かが判定される。
【0150】一致バイト数が64バイト以上であってス
テップS1903の判定がYESとなった場合には、ス
テップS1909で、上述の不一致部分に関する差分情
報が図1の更新ファイル107へライトされる。
【0151】一致バイト数が64バイトより少なくステ
ップS1903の判定がNOとなった場合には、ステッ
プS1904で、前述したステップS1902の場合と
は逆に、旧EXEファイル105の指定領域を比較側、
新EXEファイル106の指定領域を比較対象側とし、
比較側のバイトデータをキーとして、前述の図20で示
される比較処理が実行される。この比較処理の例とし
て、前述の図24(a) に対応する動作が図24(b) に示
される。この比較処理は、まず、図24(b) のT1〜T
9で示される比較範囲では、前述した図23(b) のT1
〜T9で示される比較範囲のものと同様の処理であっ
て、続いて、図24(b) のT10〜T13で示される比
較範囲では、前述した図22(b) のT4〜T7で示され
る比較範囲のものと同様の処理である。そして、この比
較処理の結果、図24(b) の旧EXEファイル105と
新EXEファイル106のバイトデータab・・・cで
示される一致部分の一致開始点と一致バイト数が算出さ
れ、また、新EXEファイル106で置換されたバイト
データRR・・・Rで示される不一致部分の不一致開始
点と不一致バイト数が算出されて、比較処理が終了す
る。
【0152】以上の動作の結果、旧EXEファイル10
5の指定領域の各バイトデータをキーとする新EXEフ
ァイル106の指定領域の各バイトデータに対する図1
9のステップS1904の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
05で、全てのバイトが不一致であるか否かが判定され
る。
【0153】図24の例では、全てのバイトが不一致で
なくステップS1905の判定がNOとなるため、ステ
ップS1906で、前述した数1式、数2式、及び数3
式に基づいて、新EXEファイル106をキーとした場
合の一致バイト数の割合RNEWOLD の方が旧EXEファイ
ル105をキーとした場合の一致バイト数の割合ROLDNE
W より小さいか否かが判定される。
【0154】図24(a) と(b) の例では、RNEWOLD=ROLD
NEW となるため、ステップS1908で、新EXEファ
イル106をキーとした場合のステップS1902の比
較処理の結果が選択され、ステップS1909で、その
比較処理によって得られている不一致部分に関する差分
情報として、新EXEファイル106において旧EXE
ファイル105のバイトデータcとdの間のバイトデー
タRR・・・Rが置換されたことを示す差分情報が、更
新ファイル107へライトされる。
【0155】次に、図25(a) に示されるように、新E
XEファイル106の指定領域において、旧EXEファ
イル105の指定領域のバイトデータcとdの間に存在
するバイトデータ列のうち、バイトデータ列R・・・R
及びr・・・rの領域がそれと同じ長さを有する他のバ
イトデータ列R・・・R及びr・・・rに置換され、バ
イトデータ列DD・・・Dが削除され、また、旧EXE
ファイル105の指定領域のバイトデータcとdの間
に、そこに存在していなかった新たなバイトデータ列I
I・・・Iが挿入された場合を考える。
【0156】この場合、まず、図25(a) に示されるよ
うに、図19のステップS1902で、新EXEファイ
ル106において指定された領域を比較側、旧EXEフ
ァイル105において指定された領域を比較対象側とし
て、比較側のバイトデータをキーとして比較処理が実行
される。この比較処理は、図24(a) の場合と同様であ
り、従って、図25(a) のT1〜T10で示される比較
範囲では、前述の図22(a) のT1〜T9で示される比
較範囲のものと同様の処理であり、続いて、図25(a)
のT11〜T13で示される比較範囲では、前述の図2
3(a) のT4〜T7で示される比較範囲のものと同様の
処理である。そして、この比較処理の結果、図25(a)
の新EXEファイル106と旧EXEファイル105の
バイトデータab・・・cで示される一致部分の一致開
始点と一致バイト数が算出され、また、新EXEファイ
ル106で挿入、削除、及び置換されたバイトデータI
・・・IR・・・Rr・・・rで示される不一致部分の
不一致開始点と不一致バイト数が算出されて、比較処理
が終了する。
【0157】以上の動作の結果、新EXEファイル10
6の指定領域の各バイトデータをキーとする旧EXEフ
ァイル105の指定領域の各バイトデータに対する図1
9のステップS1902の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
03で、上述の一致バイト数が64バイト以上であるか
否かが判定される。
【0158】一致バイト数が64バイト以上であってス
テップS1903の判定がYESとなった場合には、ス
テップS1909で、上述の不一致部分に関する差分情
報が図1の更新ファイル107へライトされる。
【0159】一致バイト数が64バイトより少なくステ
ップS1903の判定がNOとなった場合には、ステッ
プS1904で、前述したステップS1902の場合と
は逆に、旧EXEファイル105の指定領域を比較側、
新EXEファイル106の指定領域を比較対象側とし、
比較側のバイトデータをキーとして、前述の図20で示
される比較処理が実行される。この比較処理の例とし
て、前述の図25(a) に対応する動作が図25(b) に示
される。この比較処理は、前述の図24(b) の場合と同
様であり、まず、図25(b) のT1〜T9で示される比
較範囲では、前述した図23(b) のT1〜T9で示され
る比較範囲のものと同様の処理であって、続いて、図2
5(b) のT10〜T12で示される比較範囲では、前述
した図22(b) のT4〜T7で示される比較範囲のもの
と同様の処理である。そして、この比較処理の結果、図
25(b) の旧EXEファイル105と新EXEファイル
106のバイトデータab・・・cで示される一致部分
の一致開始点と一致バイト数が算出され、また、新EX
Eファイル106で挿入、削除、及び置換されたバイト
データI・・・IR・・・Rr・・・rで示される不一
致部分の不一致開始点と不一致バイト数が算出されて、
比較処理が終了する。
【0160】以上の動作の結果、旧EXEファイル10
5の指定領域の各バイトデータをキーとする新EXEフ
ァイル106の指定領域の各バイトデータに対する図1
9のステップS1904の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
05で、全てのバイトが不一致であるか否かが判定され
る。
【0161】図25の例では、全てのバイトが不一致で
なくステップS1905の判定がNOとなるため、ステ
ップS1906で、前述した数1式、数2式、及び数3
式に基づいて、新EXEファイル106をキーとした場
合の一致バイト数の割合RNEWOLD の方が旧EXEファイ
ル105をキーとした場合の一致バイト数の割合ROLDNE
W より小さいか否かが判定される。
【0162】図25(a) と(b) の例では、RNEWOLD=ROLD
NEW となるため、ステップS1908で、新EXEファ
イル106をキーとした場合のステップS1902の比
較処理の結果が選択され、ステップS1909で、その
比較処理によって得られている不一致部分に関する差分
情報が更新ファイル107へライトされる。
【0163】ここで、図25(a) において、旧EXEフ
ァイル105の指定領域におけるバイトデータcとdの
間のバイト数の方が、新EXEファイル106の指定領
域におけるバイトデータcとdの間のバイト数より多け
れば、まず、新EXEファイル106における当該バイ
ト数分のバイトデータが置換された旨の差分情報が更新
ファイル107へライトされ、続いて、{(旧EXEフ
ァイル105における当該バイト数)−(新EXEファ
イル106における当該バイト数)}分のバイトデータ
が削除された旨の差分情報が更新ファイル107へライ
トされる。
【0164】逆に、図25(a) において、旧EXEファ
イル105の指定領域におけるバイトデータcとdの間
のバイト数の方が、新EXEファイル106の指定領域
におけるバイトデータcとdの間のバイト数より少なけ
れば、まず、旧EXEファイル105における当該バイ
ト数分のバイトデータが置換された旨の差分情報が更新
ファイル107へライトされ、続いて、{(新EXEフ
ァイル106における当該バイト数)−(旧EXEファ
イル105における当該バイト数)}分のバイトデータ
が挿入された旨の差分情報が更新ファイル107へライ
トされる。
【0165】また、図25(a) において、旧EXEファ
イル105の指定領域におけるバイトデータcとdの間
のバイト数が、新EXEファイル106の指定領域にお
けるバイトデータcとdの間のバイト数と等しければ、
旧EXEファイル105又は新EXEファイル106に
おける当該バイト数分のバイトデータが置換された旨の
差分情報が更新ファイル107へライトされる。
【0166】最後に、図26に示されるような特殊な例
を考える。この例では、新EXEファイル106の指定
領域において、旧EXEファイル105の指定領域の先
頭のバイトデータaの手前にバイトデータ列II・・・
Iが挿入され、旧EXEファイル105の指定領域のバ
イトデータcとdの間に存在したバイトデータ列DD・
・・Dが削除された場合であって、挿入されたバイトデ
ータ列II・・・Iと削除されたバイトデータ列DD・
・・Dが偶然に一致しているような場合が示されてい
る。
【0167】この場合、まず、図26(a) に示されるよ
うに、図19のステップS1902で、新EXEファイ
ル106において指定された領域を比較側、旧EXEフ
ァイル105において指定された領域を比較対象側とし
て、比較側のバイトデータをキーとして比較処理が実行
される。この比較処理は、図26(a) のT1〜T3で示
される比較範囲では、前述の図23(a) のT4〜T6で
示される比較範囲のものと同様の処理であり、続いて、
図26(a) のT4〜T6で示される比較範囲では、前述
の図22(a) のT1〜T3で示される比較範囲のものと
同様の処理である。なお、図26(a) のT3→T4の変
化時には、最初に新EXEファイル106上の挿入され
た第1番目のバイトデータIと旧EXEファイル105
上の各バイトデータab・・・cとが不一致となった後
に、新EXEファイル106上の挿入された第1番目の
バイトデータIと旧EXEファイル105上の新EXE
ファイル106において削除された第1番目のバイトデ
ータDとが一致した状態となるため、ステップS200
5の判定はNOとなる。
【0168】そして、図26(a) のT6で示される処理
の後、ステップS2006で、変数src に新EXEファ
イル106上のバイトデータaのアドレスが代入され、
変数distに旧EXEファイル105上のバイトデータd
のアドレスが代入されて、ステップS2004が実行さ
れた時点で、変数src で示されるアドレスにおける新E
XEファイル106のバイトデータaと変数distで示さ
れるアドレスにおける旧EXEファイル105のバイト
データdとが不一致となり、その判定がNOとなる。こ
の不一致状態は、最初に新EXEファイル106上の挿
入された各バイトデータII・・・Iと旧EXEファイ
ル105上の各バイトデータab・・・cとが不一致と
なり、更に、新EXEファイル106上の挿入された各
バイトデータII・・・Iと旧EXEファイル105上
の新EXEファイル106において削除された各バイト
データDD・・・Dとが一致した後の不一致状態である
ため、ステップS2007の判定はYESとなって、ス
テップS2011が実行される。ステップS2011で
は、図26(a) の旧EXEファイル105上のバイトデ
ータab・・・cで示される不一致部分の不一致開始点
と不一致バイト数が算出され、また、新EXEファイル
106上の挿入されたバイトデータII・・・Iと旧E
XEファイル105上の新EXEファイル106で削除
されたバイトデータDD・・・Dとで示される一致部分
の一致開始点と一致バイト数が算出されて、比較処理が
終了する。
【0169】以上の動作の結果、新EXEファイル10
6の指定領域の各バイトデータをキーとする旧EXEフ
ァイル105の指定領域の各バイトデータに対する図1
9のステップS1902の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
03で、上述の一致バイト数が64バイト以上であるか
否かが判定される。
【0170】今、図26(a) において、一致部分である
バイトデータ列II・・・I(=DD・・・D)のバイ
ト数が例えば数バイト程度と少なく、不一致部分である
バイトデータ列ab・・・cのバイト数が多い場合に
は、一致部分が短く不一致部分が長い結果となる。
【0171】このような場合には、ステップS1903
の判定がNOとなる結果、ステップS1904で、前述
したステップS1902の場合とは逆に、旧EXEファ
イル105の指定領域を比較側、新EXEファイル10
6の指定領域を比較対象側とし、比較側のバイトデータ
をキーとして、前述の図20で示される比較処理が実行
される。この比較処理の例として、前述の図26(a) に
対応する動作が図26(b) に示される。この比較処理
は、図26(b) のT1〜T3で示される比較範囲では、
前述の図22(b) のT4〜T6で示される比較範囲のも
のと同様の処理であり、続いて、図26(b) のT4〜T
6で示される比較範囲では、前述の図22(b) のT1〜
T3で示される比較範囲のものと同様の処理である。
【0172】そして、図26(b) のT6で示される処理
の後、ステップS2006で、変数src に旧EXEファ
イル105上のバイトデータDのアドレスが代入され、
変数distに新EXEファイル106上のバイトデータd
のアドレスが代入されて、ステップS2004が実行さ
れた時点で、変数src で示されるアドレスにおける旧E
XEファイル105のバイトデータDと変数distで示さ
れるアドレスにおける新EXEファイル106のバイト
データdとが不一致となり、その判定がNOとなる。こ
の不一致状態は、最初に旧EXEファイル105のバイ
トデータaと新EXEファイル106上の挿入された各
バイトデータII・・・Iとが不一致となり、更に、旧
EXEファイル105上の各バイトデータab・・・c
と新EXEファイル106上の各バイトデータab・・
・cとが一致した後の不一致状態であるため、ステップ
S2007の判定はYESとなって、ステップS201
1が実行される。ステップS2011では、図26(b)
の新EXEファイル106上のバイトデータII・・・
Iで示される不一致部分の不一致開始点と不一致バイト
数が算出され、また、旧EXEファイル105と新EX
Eファイル106上のバイトデータab・・・cで示さ
れる一致部分の一致開始点と一致バイト数が算出され
て、比較処理が終了する。
【0173】以上の動作の結果、旧EXEファイル10
5の指定領域の各バイトデータをキーとする新EXEフ
ァイル106の指定領域の各バイトデータに対する図1
9のステップS1904の比較処理によって、一致部分
と不一致部分のペアが見つかると、次にステップS19
05で、全てのバイトが不一致であるか否かが判定され
る。
【0174】図26の例では、全てのバイトが不一致で
なくステップS1905の判定がNOとなるため、ステ
ップS1906で、前述した数1式、数2式、及び数3
式に基づいて、新EXEファイル106をキーとした場
合の一致バイト数の割合RNEWOLD の方が旧EXEファイ
ル105をキーとした場合の一致バイト数の割合ROLDNE
W より小さいか否かが判定される。
【0175】今、前述したように、図26(b) におい
て、一致部分であるバイトデータ列ab・・・cのバイ
ト数が多く、不一致部分であるバイトデータ列II・・
・Iのバイト数が例えば数バイト程度と少ない場合に
は、一致部分が長く不一致部分が短い結果となる。
【0176】従って、図26(a) と(b) の例では、RNEW
OLD <ROLDNEW となる。前述したように、更新ファイル
107には、不一致部分の差分情報が格納されるため、
一致部分はなるべく多い方がよい。従って、図26の場
合のように、新EXEファイル106をキーとした場合
の一致バイト数の割合RNEWOLD の方が旧EXEファイル
105をキーとした場合の一致バイト数の割合ROLDNEW
より小さくステップS1906の判定がYESの場合に
は、ステップS1907で、旧EXEファイル105を
キーとした場合のステップS1904の比較処理の結果
が選択され、ステップS1909で、その比較処理によ
って得られている不一致部分に関する差分情報として、
新EXEファイル106において旧EXEファイル10
5のバイトデータaで示されるアドレスの手前にバイト
データII・・・Iが挿入されたことを示す差分情報
が、更新ファイル107へライトされる。
【0177】以上説明したようにして、差分抽出処理部
104において差分抽出処理が実行される。図27に、
更新ファイル107のデータ構造を示す。
【0178】更新ファイル107の各レコードは、図2
7(a) に示されるように、そのレコードの属性を示すデ
ータRdcordIDと、旧EXEファイル105に対するその
レコードの処理位置を示すデータDataOffset、更新され
る実データの長さを示すデータDataLength及び更新され
る実データ配列Data n とから構成される。
【0179】RdcordIDの属性は、図27(b) に示され
る。まず、値が0のRdcordIDは、そのレコードが置換レ
コードであることを示し、この場合には、旧EXEファ
イル105上のデータDataOffsetで示される位置から、
データDataLengthで示される長さのデータが、実データ
配列Data n で示されるデータに置換される。
【0180】また、値が1のRdcordIDは、そのレコード
が挿入レコードであることを示し、この場合には、旧E
XEファイル105上のデータDataOffsetで示される位
置から、データDataLengthで示される長さの実データ配
列Data n で示されるデータが挿入される。
【0181】更に、値が2のRdcordIDは、そのレコード
が削除レコードであることを示し、この場合には、旧E
XEファイル105上のデータDataOffsetで示される位
置から、データDataLengthで示される長さのデータが削
除される。なお、この場合には、実データ配列Data n
は付加されていない。
【0182】このように生成された更新ファイル107
に基づいて旧EXEファイル105が更新される場合の
動作は、更新ファイル107から1つ1つレコードが取
り出され、各レコードに対して上述の各レコード属性毎
の処理が実行されることにより、簡単に実現される。
【0183】以上説明した実施例は、本発明を0S/2シス
テムのもとで実行可能なEXEファイルの差分抽出処理
に適用したものであって、DOS EXE 形式の領域、0S/2 E
XEヘッダ領域、各テーブル部領域、セグメントデータ領
域、及びリソース領域のそれぞれの論理単位毎に、対応
付けが行われた上で差分抽出処理が実行される。しか
し、本発明はこれに限られるものではなく、他の論理単
位、例えばページデータ単位などで対応付けが行われた
上で差分抽出処理が実行されるように構成することもで
きる。
【0184】
【発明の効果】本発明によれば、差分抽出処理が実行さ
れる場合、例えばOS/2システムにおける実行ファイルで
は、DOS EXE 形式の領域、0S/2 EXEヘッダ領域、各テー
ブル部領域、セグメントデータ領域、及びリソース領域
のそれぞれの論理単位毎に、対応付けが行われた上で差
分抽出処理が実行されるため、旧実行ファイルと新実行
ファイルとの間で、各領域のデータが一致する確率が高
くなり、その結果、生成される更新ファイルのサイズを
大幅に削減することが可能となる。
【0185】これにより、例えばネットワークを介して
更新ファイルが配信される場合などで、新EXEファイ
ルがそのまま配信される場合に比較して回線の使用効率
を大幅に向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例の構成図である。
【図2】本発明の実施例におけるファイル形式を示した
図である。
【図3】ヘッダ解析部の動作フローチャート(その1)
である。
【図4】ヘッダ解析部の動作フローチャート(その2)
である。
【図5】DOS EXE ヘッダとOS/2 EXEヘッダのデータ構造
を示した図である。
【図6】OS/2 EXEヘッダ情報を示した図である。
【図7】セグメントテーブル部のデータ構造を示した図
である。
【図8】常駐/非常駐ネームテーブル部のデータ構造を
示した図である。
【図9】インポートネームテーブル部のデータ構造を示
した図である。
【図10】モジュール参照テーブル部とインポートネー
ムテーブル部の関係を示した図である。
【図11】リソーステーブル部のデータ構造を示した図
である。
【図12】セグメントデータ対応付け部の動作フローチ
ャートである。
【図13】旧EXEファイル及び新EXEファイルのセ
グメントの配列を示した図である。
【図14】セグメントの対応関係の説明図である。
【図15】リロケーション情報の説明図である。
【図16】リソース対応付け部の動作フローチャートで
ある。
【図17】旧EXEファイルと新EXEファイルのリソ
ースの配列を示した図である。
【図18】リソースの対応関係の説明図である。
【図19】差分抽出処理の動作フローチャートである。
【図20】比較処理の動作フローチャートである。
【図21】比較処理の説明図である。
【図22】新EXEファイルに挿入が行われた場合の差
分抽出処理の説明図である。
【図23】新EXEファイルで削除が行われた場合の差
分抽出処理の説明図である。
【図24】新EXEファイルで置換が行われた場合の差
分抽出処理の説明図である。
【図25】新EXEファイルで挿入、削除、及び置換が
同時に行われた場合の差分抽出処理の説明図である。
【図26】新EXEファイルで特殊な挿入及び削除が同
時に行われた場合の差分抽出処理の説明図である。
【図27】更新ファイルのデータ構造を示した図であ
る。
【図28】ファイル更新の説明図である。
【図29】ファイル更新環境の説明図である。
【符号の説明】
101 ヘッダ解析部 102 セグメントデータ対応付け部 103 リソース対応付け部 104 差分抽出処理部 105 旧EXEファイル 106 新EXEファイル 107 更新ファイル 108 セグメント情報 109 リソース情報

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 旧実行ファイルを新実行ファイルに更新
    するための更新ファイルを、新実行ファイルの旧実行フ
    ァイルに対する差分として抽出する実行ファイル差分抽
    出装置において、 前記旧実行ファイル及び前記新実行ファイルのそれぞれ
    を、所定の論理単位毎に複数の領域に分割する領域分割
    手段と、 該領域分割手段によって分割された前記旧実行ファイル
    の複数の領域と前記新実行ファイルの複数の領域との間
    で、互いに対応する領域同士を対応付けする領域対応付
    け手段と、 該領域対応付け手段によって対応付けされた前記旧実行
    ファイルの領域と前記新実行ファイルの領域との間で、
    前記旧実行ファイルの領域のデータに対する前記新実行
    ファイルの領域のデータの差分情報を抽出する差分抽出
    処理手段と、 該差分抽出処理手段において抽出された差分情報を前記
    更新ファイルに格納すると共に、前記領域対応付け手段
    において対応付けが行われなかった前記旧実行ファイル
    の領域又は前記新実行ファイルの領域に対応する差分情
    報を抽出しそれを前記更新ファイルに格納する更新ファ
    イル生成手段と、 を有することを特徴とする実行ファイル差分抽出装置。
  2. 【請求項2】 新実行ファイルの旧実行ファイルに対す
    る差分が抽出されて更新ファイルとされ、旧実行ファイ
    ルと更新ファイルとから新実行ファイルが生成される実
    行ファイル更新装置において、 請求項1に記載の更新ファイル生成手段により生成され
    た更新ファイルから前記差分情報を順次取り出し、該差
    分情報と前記旧実行ファイルとから、前記新実行ファイ
    ルを生成するファイル更新手段を有する、 ことを特徴とする実行ファイル更新装置。
  3. 【請求項3】 新実行ファイルの旧実行ファイルに対す
    る差分が抽出されて更新ファイルとされ、旧実行ファイ
    ルと更新ファイルとから新実行ファイルが生成される実
    行ファイル差分抽出/更新装置において、 前記旧実行ファイル及び前記新実行ファイルのそれぞれ
    を、所定の論理単位毎に複数の領域に分割する領域分割
    手段と、 該領域分割手段によって分割された前記旧実行ファイル
    の複数の領域と前記新実行ファイルの複数の領域との間
    で、互いに対応する領域同士を対応付けする領域対応付
    け手段と、 該領域対応付け手段によって対応付けされた前記旧実行
    ファイルの領域と前記新実行ファイルの領域との間で、
    前記旧実行ファイルの領域のデータに対する前記新実行
    ファイルの領域のデータの差分情報を抽出する差分抽出
    処理手段と、 該差分抽出処理手段において抽出された差分情報を前記
    更新ファイルに格納すると共に、前記領域対応付け手段
    において対応付けが行われなかった前記旧実行ファイル
    の領域又は前記新実行ファイルの領域に対応する差分情
    報を抽出しそれを前記更新ファイルに格納する更新ファ
    イル生成手段と、 該更新ファイル生成手段により生成された更新ファイル
    から前記差分情報を順次取り出し、該差分情報と前記旧
    実行ファイルとから、前記新実行ファイルを生成するフ
    ァイル更新手段と、 を有することを特徴とする実行ファイル差分抽出/更新
    装置。
  4. 【請求項4】 旧実行ファイルを新実行ファイルに更新
    するための更新ファイルを、新実行ファイルの旧実行フ
    ァイルに対する差分として抽出する実行ファイル差分抽
    出方法において、 前記旧実行ファイル及び前記新実行ファイルのそれぞれ
    を、所定の論理単位毎に複数の領域に分割し、 該領域の分割によって分割された前記旧実行ファイルの
    複数の領域と前記新実行ファイルの複数の領域との間
    で、互いに対応する領域同士を対応付けし、 該領域の対応付けによって対応付けされた前記旧実行フ
    ァイルの領域と前記新実行ファイルの領域との間で、前
    記旧実行ファイルの領域のデータに対する前記新実行フ
    ァイルの領域のデータの差分情報を抽出し、 該抽出された差分情報を前記更新ファイルに格納すると
    共に、前記領域の対応付けにおいて対応付けが行われな
    かった前記旧実行ファイルの領域又は前記新実行ファイ
    ルの領域に対応する差分情報を抽出しそれを前記更新フ
    ァイルに格納する、 ことを特徴とする実行ファイル差分抽出方法。
  5. 【請求項5】 前記論理単位は、前記旧実行ファイル又
    は前記新実行ファイルのデータ属性の単位であるセグメ
    ント、リソース、ヘッダ、又はテーブルである、 ことを特徴とする請求項1乃至4の何れか1項に記載の
    実行ファイル差分抽出/更新装置又は実行ファイル差分
    抽出方法。
  6. 【請求項6】 前記差分情報は、前記新実行ファイルに
    おいて前記旧実行ファイルに対してデータの挿入、削
    除、又は置換が行われる旨の属性情報、その対象となる
    データの長さ情報、及びその対象となるデータとから構
    成される、 ことを特徴とする請求項1乃至5の何れか1項に記載の
    実行ファイル差分抽出/更新装置又は実行ファイル差分
    抽出方法。
JP5062181A 1993-03-22 1993-03-22 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 Pending JPH06274384A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5062181A JPH06274384A (ja) 1993-03-22 1993-03-22 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法
GB9423581A GB2281990B (en) 1993-03-22 1994-03-22 Executable file difference extraction/update system and executable file difference extraction method
US08/343,444 US5752039A (en) 1993-03-22 1994-03-22 Executable file difference extraction/update system and executable file difference extraction method
PCT/JP1994/000454 WO1994022086A1 (en) 1993-03-22 1994-03-22 Apparatus and method for extracting and updating finite difference in executable file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5062181A JPH06274384A (ja) 1993-03-22 1993-03-22 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法

Publications (1)

Publication Number Publication Date
JPH06274384A true JPH06274384A (ja) 1994-09-30

Family

ID=13192711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5062181A Pending JPH06274384A (ja) 1993-03-22 1993-03-22 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法

Country Status (3)

Country Link
US (1) US5752039A (ja)
JP (1) JPH06274384A (ja)
WO (1) WO1994022086A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265309A (ja) * 1998-03-13 1999-09-28 Nec Corp 部分抽出型リモートメンテナンス方式
JP2000137604A (ja) * 1998-10-30 2000-05-16 Oki Electric Ind Co Ltd データ引き継ぎシステム
JP2004517390A (ja) * 2000-10-24 2004-06-10 ヴィースィーアイエス インコーポレイテッド 解析仮想マシン
WO2004068348A1 (ja) * 2003-01-31 2004-08-12 Matsushita Electric Industrial Co., Ltd. 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
JP2005250925A (ja) * 2004-03-05 2005-09-15 Hitachi Ltd 記憶制御システム
US7222137B2 (en) 2002-12-16 2007-05-22 Fujitsu Limited Difference updating method, program and apparatus
JP2010176699A (ja) * 2003-06-20 2010-08-12 Innopath Software Inc 差異ファイルの生成において用いるためのソフトウェア画像の処理
JP2012234563A (ja) * 2004-11-08 2012-11-29 Innopath Software Inc スタティック・ファイル・システムの差異検出および更新

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
TW344178B (en) * 1996-12-16 1998-11-01 Toshiba Co Ltd Information presentation device and method
CA2295479C (en) * 1997-07-15 2003-12-30 Pocket Soft, Inc. System for finding differences between two computer files and updating the computer files
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6115720A (en) * 1997-12-15 2000-09-05 International Business Machines Corportion Method and apparatus for performing a health check on a database system
US6182285B1 (en) * 1997-12-15 2001-01-30 International Business Machines Corporation Method and apparatus for generating a default list
IL125846A0 (en) * 1998-08-19 1999-04-11 Emony Incremental program update
GB2341462B (en) * 1998-09-12 2003-06-11 Ibm Method for deployment of incremental versions of applications
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6654746B1 (en) 1999-05-03 2003-11-25 Symantec Corporation Methods and apparatuses for single-connection file synchronization workgroup file update
DE29913057U1 (de) * 1999-07-30 2000-09-07 Siemens Ag Visualisierungssystem für technische Prozessdaten
US6789128B1 (en) * 2000-03-11 2004-09-07 Oracle International Corporation System and method for reducing network traffic between two computing devices
US7082549B2 (en) * 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
US8875116B2 (en) * 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20040068721A1 (en) * 2000-11-17 2004-04-08 O'neill Patrick Network for updating firmware and / or software in wireless communication devices
US7401320B2 (en) * 2000-11-17 2008-07-15 Hewlett-Packard Development Company, L.P. Operator network that routes customer care calls based on subscriber/device profile and CSR skill set
US7409685B2 (en) * 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
JP2002236583A (ja) * 2001-02-07 2002-08-23 Fujitsu Ten Ltd 組込み用ソフトウェアモジュール
JP2002278592A (ja) * 2001-03-21 2002-09-27 Fujitsu Ltd データ照合プログラム、データ照合方法およびデータ照合装置
JP4205350B2 (ja) * 2002-02-28 2009-01-07 富士通株式会社 差分データ生成方法、プログラム、記録媒体及び装置
US20040194081A1 (en) * 2002-03-23 2004-09-30 Iyad Qumei Update system for facilitating firmware/software update in a mobile handset
US7369851B2 (en) * 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
US8233893B2 (en) 2002-08-22 2012-07-31 Hewlett-Packard Development Company, L.P. Mobile handset update package generator that employs nodes technique
US7340736B2 (en) * 2002-08-22 2008-03-04 Hewlett-Packard Development Company, L.P. Electronic device with an update agent that employs preprocessing techniques for update
US7669197B1 (en) 2002-09-12 2010-02-23 Hewlett-Packard Development Company, L.P. Embedded system employing component architecture platform
US7472380B1 (en) 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US7461372B2 (en) * 2002-10-11 2008-12-02 Hewlett-Packard Development Company, L.P. System for optimizing distribution of information employing a universal dictionary
WO2004038546A2 (en) * 2002-10-21 2004-05-06 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US20040093592A1 (en) 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
US7047448B2 (en) * 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
US7434216B1 (en) 2002-11-25 2008-10-07 Hewlett-Packard Development Company, L.P. Update package generator that employs genetic evolution to determine bank order
WO2004061615A2 (en) * 2002-12-31 2004-07-22 Bitfone Corporation Management of service components installed in an electronic device in a mobile services network
US7890427B1 (en) 2003-01-09 2011-02-15 Hewlett-Packard Development Company, L.P. Authentication of notifications received in an electronic device in a mobile services network
US7480907B1 (en) 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
EP1584016A4 (en) 2003-01-13 2009-03-11 Hewlett Packard Development Co MOBILE COMBINER HAVING THE CAPACITY TO UPDATE ITS UPDATE AGENT
WO2004066091A2 (en) * 2003-01-21 2004-08-05 Bitfone Corporation Update system capable of updating software across multiple flash chips
WO2004072773A2 (en) * 2003-02-11 2004-08-26 Bitfone Corporation Electronic device supporting multiple update agents
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7689981B1 (en) 2003-02-28 2010-03-30 Hewlett-Packard Development Company, L.P. Mobile handset with efficient interruption point detection during a multiple-pass update process
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US7356727B1 (en) 2003-03-10 2008-04-08 Hewlett-Packard Development Company, L.P. Electronic device employing efficient fault tolerance
US7881745B1 (en) 2003-03-10 2011-02-01 Hewlett-Packard Development Company, L.P. Electronic device network employing provisioning techniques to update firmware and/or software in electronic devices
US7548986B1 (en) 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
WO2004086196A2 (en) * 2003-03-24 2004-10-07 Bitfone Corporation Electronic device supporting multiple update agents
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7143115B2 (en) * 2003-04-15 2006-11-28 Pocket Soft, Inc. Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files
US7987449B1 (en) 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
WO2004109510A2 (en) * 2003-06-04 2004-12-16 Bitfone Corporation Network having customizable generators of software updates and mobile electronic devices having customizable updating software
US7747994B1 (en) 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
US7584466B1 (en) 2003-06-16 2009-09-01 Hewlett-Packard Development Company, L.P. Management tree management in a mobile handset
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
JP5019578B2 (ja) * 2003-06-23 2012-09-05 レッド・ベンド・リミテツド 記憶装置に記憶されたコンテンツのバージョンを更新する方法およびシステム
WO2005001665A2 (en) * 2003-06-27 2005-01-06 Bitfone Corporation System and method for downloading update packages into a mobile handset in a carrier network
US7343443B1 (en) * 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
WO2005008940A2 (en) * 2003-07-09 2005-01-27 Bitfone Corporation Carrier network capable of conducting remote diagnostics in a mobile handset
US7366125B1 (en) 2003-07-24 2008-04-29 Bbn Technologies Corp. Extensible satellite communication system
US7861211B2 (en) * 2003-07-29 2010-12-28 Hewlett-Packard Development Company, L.P. Mobile handset with update agent implemented in hardware
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
EP1660996A2 (en) * 2003-09-03 2006-05-31 Bitfone Corporation Tri-phase boot process in electronic devices
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7668612B1 (en) 2003-09-18 2010-02-23 Hewlett-Packard Development Company, L.P. System and method for efficient manufacture and update of electronic devices
US7694293B2 (en) * 2003-09-26 2010-04-06 Hewlett-Packard Development Company, L.P. Update package catalog for update package transfer between generator and content server in a network
WO2005036916A1 (en) * 2003-10-03 2005-04-21 Bitfone Corporation Network and method for registration of mobile devices and management of the mobile devices
US7716276B1 (en) 2003-11-17 2010-05-11 Hewlett-Packard Development Company, L.P. Network that supports user-initiated device management
US20050125412A1 (en) * 2003-12-09 2005-06-09 Nec Laboratories America, Inc. Web crawling
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7797693B1 (en) 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US9323515B1 (en) 2004-01-16 2016-04-26 Qualcomm Incorporated Network with broker for device management
US8838754B1 (en) 2004-01-26 2014-09-16 Qualcomm Incorporated Mobile device with a management forest in a device management network
US7984485B1 (en) 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
WO2005079334A2 (en) * 2004-02-12 2005-09-01 Bitfone Corporation Device management network that facilitates selective billing
US8589564B2 (en) * 2004-03-11 2013-11-19 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US7318070B2 (en) * 2004-03-11 2008-01-08 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US20050204347A1 (en) * 2004-03-12 2005-09-15 International Business Machines Corporation Method for generating XSLT documents from multiple versions of a UML model or XML schemas created from multiple versions of a UML model
US8578359B2 (en) * 2004-03-15 2013-11-05 Red Bend Ltd. Method and apparatus for reliable in-place update
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7689982B1 (en) 2004-05-07 2010-03-30 Hewlett-Packard Development Company, L.P. Transparent linker profiler tool with profile database
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
US7657886B1 (en) 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US20060175271A1 (en) * 2005-01-31 2006-08-10 Emrey David A Apparatus and method of holding a golf score card and writing instrument, and golf bag and system incorporating the same
US7761766B2 (en) * 2005-11-15 2010-07-20 I365 Inc. Methods and apparatus for modifying a backup data stream including logical partitions of data blocks to be provided to a fixed position delta reduction backup application
US7676509B2 (en) * 2006-02-01 2010-03-09 I365 Inc. Methods and apparatus for modifying a backup data stream including a set of validation bytes for each data block to be provided to a fixed position delta reduction backup application
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
WO2008022198A2 (en) * 2006-08-15 2008-02-21 Hewlett-Packard Development Company, L.P. Friends finder service for a mobile device in a network
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8255885B2 (en) * 2008-06-16 2012-08-28 Software Analysis And Forensic Engineering Corp. Detecting copied computer source code by examining computer object code
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
CN103761095B (zh) * 2014-01-23 2020-01-07 上海斐讯数据通信技术有限公司 一种生成通用的升级文件头部数据信息的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100834A (ja) * 1985-10-28 1987-05-11 Nec Corp プログラムの版数管理方式
JPH02141823A (ja) * 1988-11-24 1990-05-31 Nec Corp アドレス指定コンペア方式
JPH02168321A (ja) * 1988-12-22 1990-06-28 Nec Corp プログラム差分抽出方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711863A (en) * 1972-01-21 1973-01-16 Honeywell Inf Systems Source code comparator computer program
DE3380281D1 (en) * 1982-12-03 1989-08-31 Ibm Updating data processing files
JPS6376031A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd フアイル差分算出処理方式
US5191646A (en) * 1986-11-20 1993-03-02 Hitachi, Ltd. Display method in software development support system
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
JPH04165434A (ja) * 1990-10-29 1992-06-11 Nec Corp ファイル比較方式
JPH04362735A (ja) * 1991-06-10 1992-12-15 Mitsubishi Heavy Ind Ltd ソースプログラム照合システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62100834A (ja) * 1985-10-28 1987-05-11 Nec Corp プログラムの版数管理方式
JPH02141823A (ja) * 1988-11-24 1990-05-31 Nec Corp アドレス指定コンペア方式
JPH02168321A (ja) * 1988-12-22 1990-06-28 Nec Corp プログラム差分抽出方式

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265309A (ja) * 1998-03-13 1999-09-28 Nec Corp 部分抽出型リモートメンテナンス方式
JP2000137604A (ja) * 1998-10-30 2000-05-16 Oki Electric Ind Co Ltd データ引き継ぎシステム
JP2004517390A (ja) * 2000-10-24 2004-06-10 ヴィースィーアイエス インコーポレイテッド 解析仮想マシン
US7222137B2 (en) 2002-12-16 2007-05-22 Fujitsu Limited Difference updating method, program and apparatus
WO2004068348A1 (ja) * 2003-01-31 2004-08-12 Matsushita Electric Industrial Co., Ltd. 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
JP2010176699A (ja) * 2003-06-20 2010-08-12 Innopath Software Inc 差異ファイルの生成において用いるためのソフトウェア画像の処理
JP2005250925A (ja) * 2004-03-05 2005-09-15 Hitachi Ltd 記憶制御システム
JP2012234563A (ja) * 2004-11-08 2012-11-29 Innopath Software Inc スタティック・ファイル・システムの差異検出および更新

Also Published As

Publication number Publication date
WO1994022086A1 (en) 1994-09-29
US5752039A (en) 1998-05-12

Similar Documents

Publication Publication Date Title
JPH06274384A (ja) 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法
JP4077047B2 (ja) コンピュータシステムで実行する方法
US6223187B1 (en) Distributed synchronization of databases
JP4427586B2 (ja) データ処理の方法及び装置
US5758355A (en) Synchronization of server database with client database using distribution tables
US7103589B1 (en) Method and system for searching, accessing and updating databases
US6216135B1 (en) Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
US5940837A (en) Distributed data base system
US20030135523A1 (en) Method of using cache to determine the visibility to a remote database client of a plurality of database transactions
US20020107828A1 (en) Directory services searching system and methods
JP2009009590A (ja) ウェブサイトのコンテンツの開発システム及び方法
US5787447A (en) Memory allocation maintaining ordering across multiple heaps
WO2020041950A1 (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN110781183A (zh) Hive数据库中增量数据的处理方法、装置以及计算机设备
CN112685417B (zh) 数据库操作方法、系统、装置、服务器及存储介质
US5642514A (en) Method and system for constructing compact executable files by eliminating redundant debugging strings
JP3489216B2 (ja) ファイルシステム
Stonebraker MUFFIN: A distributed data base machine
US6625614B1 (en) Implementation for efficient access of extended attribute data
US10353920B2 (en) Efficient mirror data re-sync
Liu et al. Capturing global transactions from multiple recovery log files in a partitioned database system
Pliner et al. A Distributed Data Management System for Real-Time Applications
CN115455113A (zh) NoSQL数据库的同步方法、装置、设备及存储介质
JP2000123038A (ja) データベース装置、データベースアクセス方法及びデータベースアクセスプログラムを記録した記録媒体
JPH09305449A (ja) データベース管理システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20001205