JP4733831B2 - プログラムを更新するための方法 - Google Patents
プログラムを更新するための方法 Download PDFInfo
- Publication number
- JP4733831B2 JP4733831B2 JP2000566744A JP2000566744A JP4733831B2 JP 4733831 B2 JP4733831 B2 JP 4733831B2 JP 2000566744 A JP2000566744 A JP 2000566744A JP 2000566744 A JP2000566744 A JP 2000566744A JP 4733831 B2 JP4733831 B2 JP 4733831B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- program
- memory
- modified
- old
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 73
- 230000015654 memory Effects 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 24
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000012986 modification Methods 0.000 claims description 23
- 230000004048 modification Effects 0.000 claims description 23
- 238000012937 correction Methods 0.000 claims description 12
- 241000895503 Metrosideros Species 0.000 claims 2
- 238000012217 deletion Methods 0.000 description 10
- 230000037430 deletion Effects 0.000 description 10
- 238000003780 insertion Methods 0.000 description 10
- 230000037431 insertion Effects 0.000 description 10
- 230000007704 transition Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 5
- 239000000126 substance Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 108090000248 Deleted entry Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の分野】
本発明は一般的にコンピユータプログラムの更新に関する。
【0002】
【発明の背景】
遠隔通信、特にインターネット(Internet)の利用の益々の増加に伴い、インターネット上での商業的取引、電子的スーパーマーケット、インターネット上でのコンピユータ製品の流通、その他の様な新しい応用が導入されて来た。
【0003】
普通のユーザー用として該インターネットへのアクセスの普及と利用可能性との両者は製品の流通を助長するのみでなく、この目的で該インターネットインフラストラクチャを使用する、遠隔のサイトからの懸案製品のアップグレードと更新をも助長して来た。
【0004】
コンピユータプログラムの特定の例に戻ると、旧プログラムが遠隔のクライアントのサイトでインストールされ、新プログラムへのアップグレードを受けるが、そこでは後者は旧プログラムに比して幾つかの修正を含んでいる。
【0005】
遠隔のクライアイントのサイトで(ネットワークを通して)該更新を行うために、好ましくはプロバイダーは該旧プログラムと新プログラムとの間の差分(difference)を表す差分結果(difference result)を発生させ、該最終フアイル(resulting file)を該インターネットを通して該遠隔のクライアントのサイトへ送る。クライアントは今度は、適当なユーテリテイを呼び出すが、それは該旧プログラム内の該差分を組み込み、それにより該クライアントのサイトで望ましい新プログラムを発生させる。該指定された手順は、一方で該プロバイダが該クライアントのサイトにいる必要がなく、他方で該新プログラム全体でなくその差分結果だけが該クライアントへ送られる点で、明らかな利点をもたらしている。例えば、修正されるオフイス’97(Office '97)のパッケージ{米国、マイクロソフト社(Microsoft Inc. USA)から商業的に入手可能である}がクライアントに送られべき場合を仮定すると、該パッケージのプログラムの圧縮されたサイズは数十メガバイトを占めるので、そして更に該インターネットの比較的低いスループットと該クライアント端末でのモデムのスループット(例えば、平均33,600bps)のボトルネックとを考慮すると、該ネットワークを通して新しいパッケージ全体を伝送することが実際上適していないことは容易に理解される。
【0006】
通常、該差分結果の量は生の新プログラム(raw new program)のそれより著しく少なく、従って新プログラム全体よりも該差分結果データのみを送る方が効率的である。これは、該旧プログラムと新プログラムとの間の差分結果を発生させるため本質的に公知の{ユニックス(UNIX)オペレーテイングシステムのディフ(diff)ユーテリテイ又はエフエスエフ(SFS)からのジーエヌユー(GNU)プロジェクトの同様なディフユーテリテイにより使用される技術の様な}フアイル差分応用(file difference application)を適用するにも拘わらず、そして下記で詳細に説明される様に、例え(該新プログラムを発生させるために)該旧プログラムに導入される修正が非常に少なくても、通常は比較的多量のデータとなる。かくして、例えば、該新プログラムをもたらすために、2,3の新しい命令が挿入されそして2,3の他のものが削除される旧プログラムを考えよう。該旧プログラムと新プログラムとの間の差分結果は該挿入され削除される命令のみならず、ジャンプする、条件付きジャンプする、関数をコールする、本質的に、該コマンドの組み込み部分(integral part)として目標アドレス(レフアレンス)を指定する、データ及び恐らくはその他をレフアレンスする(レフアレンスエントリーとして集合的に参照される−下記用語集を見よ)全てのエントリーも表すことになる。幾つかの命令が付加され他が削除される事実により後者のアドレスは変えられるかも知れない。修正されたレフアレンスエントリーは挿入されたものではなく、そして削除されたものでないことも明らかなことを注意することは重要である。事実、唯1つの新しいエントリーの挿入が、差分結果に自然に反映されそして明らかにその量を膨張させる複数の変更されたレフアレンスエントリーとなる。
【0007】
従って、該旧及び新プログラム間の実際に変化は非常に限られている事実にも拘わらず、最終フアイル差分は比較的大きいことが評価される。同じ問題は、プログラムの様に組立られ、指定された仕方で更新を受けるデータ表(下記用語集参照)を使う他の応用でも遭遇される。
【0008】
従って差分結果を達成するためにこれまでに公知の技術に比較して、旧プログラムと新プログラムとの間で著しく少ない量の差分結果となる効率的ツールを提供するニーヅが当該技術には存在する。該提案されたツールは、それに限定はされないが、インクレメンタルなソフトウエア更新とバージヨン管理(incremental software updates and version control)を含む種々の応用に有用である。
【0009】
当該技術には、旧データ表と新データ表との間で非常に僅かな量の差分結果となる効率的ツールを提供するなおもう1つのニーヅが存在する。
【0010】
【用語集】
下記は用語の用語集であるが、その幾つかは従来からのものであり、他は新造された。
【0011】
データ表(Data Table )−エントリー(entries)の表であるが、各々は異なるサイズであってもよい。
【0012】
エントリー(Entry)−データ表はエントリーを含んでおり、該エントリーの各々はデータを含むアドレス可能なユニットである。
【0013】
アドレス−1つのエントリーに独特に割り当てられそれによりそのエントリーがアクセスされる番号である。下記説明では、用語エントリーとアドレスは時には互換性を持って(interchangeably)使用される。
【0014】
レフアレンス(Reference)−該データ表内のエントリーの中に現れるデータの1部であり、同じデータ表から幾つかの他のエントリーを参照するために使用される。レフアレンスはアドレスか又はアドレスを計算するために使用される番号か何れかとすることが出来る。レフアレンスを含むエントリーはレフアレンスエントリーとも呼称される。
【0015】
ラベル(Label)−エントリーの抜粋記号(abstruct notation)であり、それはレフアレンスを通して同じデータ表のもう1つのエントリーにより参照される。
【0016】
旧データ表(Old Data Table)−新データ表(又は新データ表の部分)を発生させるために更新される(ことによると遠隔のサイトから)べきデータ表(又はデータ表の部分)。遠隔更新に関する限り、必ずしもそうではないが、通常はそれはインターネットの様な通信ネットワークを通して伝送される。唯説明の便宜のために、説明は主としてインターネットに焦点を当てているが、本発明はこの特定の例に決して拘束されないことは注意されるべきである。
【0017】
一例として、データ表はマシンメモリー内にロードされたプログラムか又は実行可能なフアイルか何れかとして実行可能なプログラムであり得る。この例では、エントリーは該プログラムの個別機械命令であるか該プログラムで使用される個別データ要素である。
【0018】
プログラムの命令とデータ要素は他の命令又はデータ要素へのアドレスを含んでもよく、レフアレンスと見なされる。この様なレフアレンスは、該プログラムに印加された逆アセンブリ過程によるか、又は、もし与えられば、それらを創るリンクエディタ(link-editors)により実行可能プログラムに付けられた再配置表(relocation table)を解析することにより検出出来る。
【0019】
データ表のもう1つの例は、レコードが他のデータレコードのアドレスを含んでいるバイト配列内に記憶されインターリンクされたレコードのグループである。該レコードのフオーマットとそれらが該配列内に割付される仕方は既知であり、この様な配列の解析と分解は可能である。
【0020】
旧プログラム(Old program)−旧データ表の例:新プログラム(プログラムの部分)を発生させるために更新されるべきプログラム(プログラムの部分)である。
【0021】
旧プログラムと新プログラムへの参照は、唯説明の便宜のためになされ、そしてとりわけ(例えば、バージヨンのアップグレードのために)該旧プログラムの該新プログラムへの更新、(例えば、該旧プログラム内のバグの訂正のために)、該旧プログラムの該新プログラムへの修正、そして第1の旧プログラムから第2の(そしてことによると異なる)新プログラムへの変更を含むことは更に注意されるべきである。
【0022】
【発明の概要】
説明の便宜のために、本発明をコンピユータプログラムの特定の例と関連して説明する。本発明は決してこの特定の例により拘束されるものではない。
【0023】
上記説明の様に、(新プログラムを発生させるために)旧プログラムに導入される修正が非常に僅かであっても、旧プログラム及び新プログラムに本来公知のフアイル差分ユーティリテイ(file difference utility)を適用することは比較的多量のデータとなることが普通である。本発明は、該差分結果の該比較的大きなサイズは、他の新しく挿入されたエントリー(及び/又は削除されたエントリー)の結果としてレフアレンスエントリー内のレフアレンスの変更から生ずると云う観察に基づいている。
【0024】
この観察に基づいて、本発明は修正された旧プログラム(modified old program)と修正された新プログラムを発生させることを狙っているが、そこでは上記説明の様に前記新及び旧プログラムの対応するエントリー内へのレフアレンスの差分は該修正された旧及び新プログラム内の不変のエントリー(invariant entries)として反映される。正味の結果は(該修正された旧プログラムと該修正された新プログラムとの間での)該不変のレフアレンスエントリーは差分結果に現れず、それにより今まで公知の技術を使用することにより得られる従来の差分結果と比較してそのサイズを減少させている。
【0025】
従って、本発明は旧プログラムと新プログラムとの間のコンパクトな差分結果を発生させる方法で、各プログラムが該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備える場合の該方法を提供するが、該方法は、
(a)旧プログラムを走査しそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された旧プログラムが発生される過程を備える過程を実行する過程と、
(b)該新プログラムを走査しそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された新プログラムが発生される過程を備える過程実行する過程と、
(c)少なくとも前記修正された旧プログラムと修正された新プログラムとを直接的又は間接的に使用して前記差分結果を発生させる過程とを具備している。
【0026】
本発明は更に、新プログラムを発生させるために旧プログラム内の更新を実行するための方法で、各プログラムが該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は、
(a)コンパクトな差分結果を有するデータを受信する過程を具備しており、前記コンパクトな差分結果は修正された旧プログラムと修正された新プログラムとを使用して発生されており、該方法は又
(b)該旧プログラムを走査しそして実質的に各レフアレンスエントリー用に、
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより該修正された旧プログラムが発生される過程を備える過程を実行する過程と、
(c)少なくとも前記コンパクトな差分結果と前記修正された旧プログラムとを使用して該修正された新プログラムを再構成する過程とを具備しており、前記修正された新プログラムは少なくとも前記新プログラムの実質的に各レフアレンスエントリーが前記修正された新プログラム内で区別ラベルマークにより置換されている点では前記新プログラムと異なり、該方法は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新プログラムを直接的又は間接的に使用して前記新プログラムを再構成する過程を具備している。
【0027】
なお更に、本発明は旧プログラムと新プログラムとの間のコンパクトな差分結果を発生させる方法で、各プログラムが該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は、
(a)少なくとも前記旧プログラムを使用して修正された旧プログラムを発生させる過程と、
(b)少なくとも前記新プログラムを使用して修正された新プログラムを発生させる過程とを具備しており、前記修正された旧プログラムと修正された新プログラムとは少なくとも次の特性、すなわち
(i)前記旧プログラムと新プログラムとの間の遷移の部分を形成する削除/挿入の修正のために前記新プログラム内の対応するエントリーとは異なる前記旧プログラム内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新プログラムの対応するエントリー内の不変レフアレンス(invariant refrences)として反映される該特性を有しており、該方法は又、
(c)少なくとも前記修正された新プログラムと修正された旧プログラムとを使用して前記コンパクトな差分結果をは発生させる過程を具備している。
【0028】
なお更に、本発明は、新プログラムを発生させるために旧プログラム内の更新を実行するための方法で、各プログラムは該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は
(a)コンパクトな差分結果を有するデータを受信する過程を具備しており、前記コンパクトな差分結果は修正された旧プログラムと修正された新プログラムとを使用して発生されており、該方法は又
(b)少なくとも前記旧プログラムを使用して修正された旧プログラムを発生させる過程と、
(c)少なくとも前記修正された旧プログラムと前記コンパクトな差分結果とを直接的又は間接的に使用して修正された新プログラムを再構成する過程とを具備しており、前記修正された旧プログラムと修正された新プログラムとは少なくとも次の特性、すなわち、
(i)前記旧プログラムと新プログラムとの間の遷移の部分を形成する削除/挿入の修正のために前記新プログラム内の対応するエントリーとは異なる前記旧プログラム内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新プログラムの対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該方法は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新プログラムとを直接的又は間接的に使用して前記新プログラムを再構成する過程を具備している。
【0029】
もう1つの側面に依ると、本発明は、旧プログラムと新プログラムとの間のコンパクトな差分結果を発生させるためのシステムで、各プログラムは該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は
(a)該旧プログラムを走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された旧プログラムが発生される過程を備える過程を実行出来て、
(b)該新プログラムを走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された新プログラムが発生される過程を備える過程を実行出来て、
(c)少なくとも前記修正された旧プログラムと修正された新プログラムとを直接的又は間接的に使用して前記差分結果を発生出来る。
【0030】
なお更に、本発明は、新プログラムを発生させるために旧プログラム内の更新を実行するためのシステムで、各プログラムが該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)コンパクトな差分結果を有するデータを受信出来て、前記コンパクトな差分結果は修正された旧プログラムと修正された新プログラムとを使用して発生されており、該処理装置は又、
(b)該旧プログラムを走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより該修正された旧プログラムが発生される過程を備える過程を実行出来て、
(c)少なくとも前記コンパクトな差分結果と前記修正された旧プログラムとを使用して該修正された新プログラムを再構成出来るが、前記修正された新プログラムは少なくとも、前記新プログラムの実質的に各レフアレンスエントリーが前記修正された新プログラム内では区別ラベルマークにより置換されている点で前記新プログラムと異なり、該処理装置は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新プログラムを直接的又は間接的に使用して前記新プログラムを再構成出来る。
【0031】
本発明は更に、旧プログラムと新プログラムとの間のコンパクトな差分結果を発生させるためのシステムで、各プログラムが該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)少なくとも前記旧プログラムを使用して修正された旧プログラムを発生させることが出来て、
(b)少なくとも前記新プログラムを使用して修正された新プログラムを発生させることが出来るが、前記修正された旧プログラムと修正された新プログラムとは少なくとも次の特性、すなわち
(i)前記旧プログラムと新プログラムとの間の遷移の部分を形成する削除/挿入の修正のために前記新プログラム内の対応するエントリーとは異なる前記旧プログラム内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新プログラムの対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該処理装置は又、
(c)少なくとも前記修正された新プログラムと修正された旧プログラムとを使用して前記コンパクトな差分結果を発生させることが出来る。
【0032】
なお更に、本発明は新プログラムを発生させるために旧プログラム内の更新を実行するためのシステムで、各プログラムは該プログラム内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合のシステムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)コンパクトな差分結果を有するデータを受信出来るが、前記コンパクトな差分結果は修正された旧プログラムと修正された新プログラムとを使用して発生されており、該処理装置は又
(b)少なくとも前記旧プログラムを使用して修正された旧プログラムを発生させることが出来て、
(c)少なくとも前記修正された旧プログラムと前記コンパクトな差分結果とを直接的又は間接的に使用して修正された新プログラムを再構成出来るが、前記修正された旧プログラムと修正された新プログラムとは少なくとも次の特性、すなわち、
(i)前記旧プログラムと新プログラムとの間の遷移の部分を形成する削除/挿入の修正のために前記新プログラム内の対応するエントリーとは異なる前記旧プログラム内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新プログラムの対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該処理装置は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新プログラムとを直接的又は間接的に使用して前記新プログラムを再構成出来る。
【0033】
なお更に、本発明は旧データ表と新データ表との間のコンパクトな差分結果を発生するための方法で、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は
(a)該旧データ表を走査しそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された旧データ表が発生される過程を備える過程を実行する過程と、
(b)該新データ表を走査しそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された新データ表が発生される過程を備える過程を実行する過程と、
(c)少なくとも前記修正された旧データ表と修正された新データ表とを直接的又は間接的に使用して前記差分結果を発生させる過程とを具備している。
【0034】
更に、本発明は、新データ表を発生させるために旧データ表内の更新を実行するための方法で、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は、
(a)コンパクトな差分結果を有するデータを受信する過程を具備しており、前記コンパクトな差分結果は修正された旧データ表と修正された新データ表とを使用して発生されており、該方法は又
(b)該旧データ表を走査しそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより該修正された旧データ表が発生される過程を備える過程を実行する過程と、
(c)少なくとも前記コンパクトな差分結果と前記修正された旧データ表とを使用して該修正された新データ表を再構成する過程とを具備しており、前記修正された新データ表は少なくとも、前記新データ表の実質的に各レフアレンスエントリーが前記修正された新データ表内では区別ラベルマークにより置換されている点では前記新データ表と異なり、該方法は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新データ表を直接的又は間接的に使用して前記新データ表を再構成する過程を具備している。
【0035】
本発明は更に、旧データ表と新データ表との間のコンパクトな差分結果を発生させるための方法で、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は、
(a)少なくとも前記旧データ表を使用して修正された旧データ表を発生させる過程と、
(b)少なくとも前記新データ表を使用して修正された新データ表を発生させる過程とを具備しており、前記修正された旧データ表と修正された新データ表とは少なくとも次の特性、すなわち
(i)前記旧データ表と新データ表との間の遷移の部分を形成する削除/挿入の修正のために前記新データ表内の対応するエントリーとは異なる前記旧データ表内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新データ表の対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該方法は又、
(c)少なくとも前記修正された新データ表と修正された旧データ表とを使用して前記コンパクトな差分結果を発生させる過程を具備している。
【0036】
本発明は新データ表を発生させるために旧データ表内の更新を実行するための方法で、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該方法を提供するが、該方法は、
(a)コンパクトな差分結果を有するデータを受信する過程を具備しており、前記コンパクトな差分結果は修正された旧データ表と修正された新データ表とを使用して発生されており、該方法は又
(b)少なくとも前記旧データ表を使用して修正された旧データ表を発生させる過程と、
(c)少なくとも前記修正された旧データ表と前記コンパクトな差分結果とを直接的又は間接的に使用して修正された新データ表を再構成する過程とを具備しており、前記修正された旧データ表と修正された新データ表とは少なくとも次の特性、すなわち、
(i)前記旧データ表と新データ表との間の遷移の部分を形成する削除/挿入の修正のために前記新データ表内の対応するエントリーとは異なる前記旧データ表内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新データ表の対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該方法は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新データ表とを直接的又は間接的に使用して前記新データ表を再構成する過程を具備している。
【0037】
本発明は更に旧データ表と新データ表との間のコンパクトな差分結果を発生するためのシステムで、各データ表は該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は
(a)該旧データ表を走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された旧データ表が発生される過程を備える過程を実行出来て、
(b)該新データ表を走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより修正された新データ表が発生される過程を備える過程を実行出来て、
(c)少なくとも前記修正された旧データ表と修正された新データ表とを直接的又は間接的に使用して前記差分結果を発生出来る。
【0038】
なお更に、本発明は新データ表を発生させるために旧データ表内の更新を実行するためのシステムで、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)コンパクトな差分結果を有するデータを受信出来るが、前記コンパクトな差分結果は修正された旧データ表と修正された新データ表とを使用して発生されており、該処理装置は又、
(b)該旧データ表を走査出来てそして実質的に各レフアレンスエントリー用に
(i)前記エントリーの該レフアレンスを区別ラベルマークにより置換し、それにより該修正された旧データ表が発生される過程を備える過程を実行出来て、
(c)少なくとも前記コンパクトな差分結果と前記修正された旧データ表とを使用して該修正された新データ表を再構成出来るが、前記修正された新データ表は少なくとも、前記新データ表の実質的に各レフアレンスエントリーが前記修正された新データ表内では区別ラベルマークにより置換されている点では前記新データ表と異なり、該処理装置は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新データ表を直接的又は間接的に使用して前記新データ表を再構成する出来る。
【0039】
更に、本発明は旧データ表と新データ表との間のコンパクトな差分結果を発生させるためのシステムで、各データ表が該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)少なくとも前記旧データ表を使用して修正された旧データ表を発生させることが出来て、
(b)少なくとも前記新データ表を使用して修正された新データ表を発生させることが出来るが、前記修正された旧データ表と修正された新データ表とは少なくとも次の特性、すなわち
(i)前記旧データ表と新データ表との間の遷移の部分を形成する削除/挿入の修正のために前記新データ表内の対応するエントリーとは異なる前記旧データ表内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新データ表の対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該処理装置は又、
(c)少なくとも前記修正された新データ表と修正された旧データ表とを使用して前記コンパクトな差分結果を発生させることが出来る。
【0040】
本発明は新データ表を発生させるために旧データ表内の更新を実行するためのシステムで、各データ表は該データ表内の他のエントリーを参照するレフアレンスを有するレフアレンスエントリーを備えている場合の該システムを提供するが、該システムは処理装置を具備しており、該処理装置は、
(a)コンパクトな差分結果を有するデータを受信出来るが、前記コンパクトな差分結果は修正された旧データ表と修正された新データ表とを使用して発生されており、該処理装置は又
(b)少なくとも前記旧データ表を使用して修正された旧データ表を発生させることが出来て、
(c)少なくとも前記修正された旧データ表と前記コンパクトな差分結果とを直接的又は間接的に使用して修正された新データ表を再構成出来るが、前記修正された旧データ表と修正された新データ表とは少なくとも次の特性、すなわち、
(i)前記旧データ表と新データ表との間の遷移の部分を形成する削除/挿入の修正のために前記新データ表内の対応するエントリーとは異なる前記旧データ表内のエントリーの実質的に各々のレフアレンスが前記修正された旧及び修正された新データ表の対応するエントリー内の不変レフアレンスとして反映される該特性を有しており、該処理装置は更に、
(d)少なくとも前記コンパクトな差分結果と前記修正された新データ表とを直接的又は間接的に使用して前記新データ表を再構成出来る。
【0041】
【好ましい実施例の詳細な説明】
図1では、モジュール(10)は、本発明の1実施例により差分結果を発生させるために、例えば、プロバイダのサイトで実行される動作のシーケンスを表示する。今動作のシーケンスを例示的旧及び新プログラム(図2)と関連して説明する。指定された動作のシーケンスは、それに限定されないが、従来型ピーシー(conventional P.C.)、コンピユータネットワーク、他の本来公知の全てのものを含む本来公知の如何なるプラットフオームでも実行されてよいことは注意されるべきである。
【0042】
かくして、P1は、{矢印(41’)から(46’)により指示する様に}それぞれエントリー5,8,1,1,13、及び11へのレフアレンスを有するエントリー(41)、(42)、(43)、(44)、(45)及び(46)を備える旧プログラムを表す。
【0043】
P2は仮想的メモリー表(80)内に描かれた修正のシーケンスにより発生された(又は発生され得た)新プログラムを表す。前記修正(実際の又は仮想の何れかの)のシーケンスはP1とP2との間の遷移シーケンス(tansition sequence)を構成する。
【0044】
エントリー番号6で示す様に、アドレス’1’へのレフアレンスは、例えばプログラマーにより導入されたパッチにより、アドレス番号’11’へのレフアレンスにより置換される(’R’は置換されることを表す)。第6エントリーに続いて、3つの新しいエントリーが挿入された(’I’は挿入されることを表す)。該新しく挿入されたエントリーはアドレス7から9に居る。P1でアドレス7から9に元々居た次の3つのエントリーは(3つの挿入されたエントリーのために)今やP2のアドレス10から12へシフトされている。
【0045】
次ぎに、エントリー10と11が削除され(D)、従ってP2では何のアドレスも割り当てられない。P1でのエントリー12と13とは完全な儘でありP2でアドレス13と14とに居る。P1のエントリー14が削除されそれはメモリー表(80)に於ける様に(アドレス無しに)マーク付けされる。最後に、エントリー(15)は完全な儘であり従ってP2でエントリー15にいる。
【0046】
P1からP2への遷移を構成する修正のシーケンス見たが、指定された修正が如何にP1とP2のレフアレンスエントリーに影響するかを次ぎに簡潔に復習する。
【0047】
かくして、期待される様に、エントリー2でのレフアレンス5は完全な儘であり、従ってP1とP2間には差分結果は現れない。
【0048】
P1のエントリー4のレフアレンス8は今度はP2のエントリー4でレフアレンス11により修正される。エントリー4の該レフアレンスの修正(8から11への)はP2のエントリー7乃至9の挿入により引き起こされるが、該挿入は明らかにエントリー8(P1での)をエントリー11(P2での)へシフトしている。更に何か進める前に、P1とP2に従来のフアイル差分の応用(conventional file difference application)を用いることはレフアレンス8が11へ変更されたのでエントリー4が変更されたことを明らかに反映することが注意されるべきである。他のエントリーが影響された(すなわち、エントリー7乃至9)と云う事実のためだけでそれが起こったので、本発明に依って、この変化を中立化させることが望ましいことを当業者は容易に評価するであろう。従って本発明の目的は、この種の修正が、それらは差分結果に反映されず、それにより後者を比較的コンパクトに保つと云う明らかな結果を有する不変のレフアレンスに修正される様な状況を引き起こすことである。
【0049】
今図2の例に戻ると、P1のエントリー6に次のレフアレンス1がある。想起される様に、このエントリーは意図的に11に修正され、そしてP2のエントリー6では期待される様に、レフアレンス11を有する。プログラムでのシフトから生じ、従って差分結果での出現から中立化されるべき前のレフアレンス修正と異なり、現在の修正は懸案(すなわち、エントリー6のレフアレンスは1から11へ変更された)のエントリーに適用され、差分結果に反映されるべきである。今P2のエントリー7に戻ると、それは挿入エントリーの部分を形成し、従ってそのレフアレンス9は明らかにP1では反映されない。勿論、エントリー7が挿入されたので、差分結果に現れることが期待される。
【0050】
その付随したレフアレンス13を有するエントリー10はP1から削除され、期待される様に、それはP2では現れず、削除用エントリーとして差分結果で示されるべきであることは勿論である。
【0051】
P1でその付随レフアレンス1を有するエントリー9はP2のエントリー12に対応する。エントリー12のレフアレンスは1の儘であるので、差分結果には現れない。
【0052】
P1の最後のレフアレンスエントリー14に戻ると、それはP2に現れず(それは削除されたので)、従って削除用エントリーとして差分結果に現れることが期待される。
【0053】
差分結果へのそれらの影響のみならずP1とP2との差分を一般的に説明したが、システムの1つの制限のない実現と望ましい差分結果を達成するための本発明の方法を説明するために今図1に注意を向ける。
【0054】
この特定の実施例により、望ましい不変のレフアレンスは修正された旧及び新プログラムを発生することにより達成されるが、そこではエントリーでのアドレスレフアレンスは次の様にラベルマークにより置き換えられ、すなわち、
a)ラベルマークを付加しエントリー内のレフアレンスを幾つかの固定値(some fixed values)で置換することによりP1からP”1表を{図1の(201)と(202)の過程}そしてP2からP”2表を{図1の(203)と(204)の過程}創る。図2で示す様に、エントリー1,5,8,11及び13{それぞれ(101)から(105)と呼称される}にラベルマークを付加することによりP1からP”1が発生される。図2で示される様に、エントリー2,4,6,9、10及び14でのレフアレンスは固定値、この特定の例では0にセットされる。図2には示されないが、P”2が同様な仕方で発生される。
【0055】
b)P1内のエントリーレフアレンスとラベル区別値(label distinct values)との間の変換表(translation table)L1{図1の過程(205)}を創る。かくして、図1(110)で示す様に、区別ラベル番号(distinct label number)がP”1の各ラベルマークに割り当てられる。この特定の例によると、区別ラベル(distinct label)は昇順で割り当てられ、図示の様に、ラベルマーク(101)から(105)はそれぞれの値1から5が割り当てられる。
【0056】
c)上記で指定された種類のフアイル差分ユーテリテイ(file difference utilities)を使用して差分表(difference table)D1(206)を生ずるようP”1とP”2が比較される。図2で示す様に、D1(120)は各々が<X,n>の構造を有するエントリーのリストを含んでいるが、そこではXはC(コピー)、I(挿入)、D(削除)、又はT(トグル)を表しそしてnは命令の数を表す。事実D1はP”1からP”2を発生させるための命令のリストを有する。この特定の例によると、D1は次のエントリー<C、6>を有するが、それはP”1の最初の6つのエントリーはP”2にコピーされるべきことを意味する。第6のエントリーはP1とP2で異なる(すなわちレフアレンスは1から11へ変更された)が、このエントリーはP”1とP”2で同じであり何故なら両レフアレンスは0にセットされたからであり、従って該第6のエントリーはコピーされた部分の1部を形成する。次のエントリー<I、3>は3つの新しいエントリーが挿入されるべきことを意味し、これはP2に挿入された(そしてP”2にも又反映される)新しい3つのエントリー7から9を説明している。次のエントリー<C、3>はP”1のアドレス7から9に居りP”2(そしてP2)のアドレス10から12に(その内容に影響せず)シフトされる3つのエントリーを表す。次のエントリー<D、2>はP1から(そして明らかに又P”1から)削除された2つのエントリー(10と11)を表す。次のエントリー<C、1>はP”2のエントリー13にシフト(その内容に影響することなく)されたP”1のエントリー12を表す。次のエントリー<T、1>は、P”1のエントリー13のラベルで変化が起きた、すなわち、このラベルを参照する該エントリーが削除された{P”1(そしてP1)のエントリー10}と云う簡単な理由でそれがP”2の対応するエントリー14で除去されたことを指示する特殊なエントリーである。<T、1>はかくして該ラベルマークを削除するが、該エントリー13は(エントリー14へ)コピーされるべきであることを意味する。次ぎに<D、1>はP”1の削除されたエントリー(14)を表し、そして<C、1>はP”1からP”2へコピーされるべき最後の完全な儘であるエントリー(エントリー15)をコピーすることを表す。
【0057】
d)削除又は挿入されるプログラムフラグメント(program fragments)の位置とサイズを決定し、そして等価な変更をL1変換表に適用し、P2のエントリーレフアレンスをそれらの区別ラベル値に変換するL2変換表(207)を創るために、次の仕方でD1を解析する。
挿入されてなくて参照されたエントリー用には
・L2[エントリーアドレス]=L1[P1内エントリーアドレスに符号する(matching)](以後第1条件と云う)を実行する。
挿入され参照されたエントリー用には
・L2[エントリーアドレス]=U()はL1内の如何なる値とも異なる;
U()は区別ラベルを発生させるためのラベル発生関数を意味する(以後第2条件と云う)。該関数は繰り返し性であり(of repeatable nature)、すなわち同じシナリオで賦活された時は常に同じ結果を発生させる。後者の特性は次のプログラム再生フエーズが下記で説明される時明確化される。
【0058】
最終L2表(130)が図2で示される。かくして、最初の6つの命令が第1条件に合致し(すなわち挿入されないエントリー)、従って区別ラベル(1と2)は簡単にL1からコピーされる。
【0059】
次の3つのエントリーは挿入され、従って第2条件が適用され、区別ラベル値を発生させるためにU()が賦活される。L1に示す様に、5つのラベルが”占められている(occupied)”ので、次の自由な1つは6であり、従ってレフアレンスエントリー9には値6が割り当てられる。当業者は、この例でU()が最後の占められた値を1だけ簡単にインクレメント(increment)することにより該区別ラベル値を発生させるが、これは1例に過ぎないことを容易に評価するであろう。
【0060】
次の3つのエントリー<C、3>に戻ると、レフアレンスエントリー11は第1の基準に合致し、従って該ラベル値(3)はL1から取られる。
【0061】
D1の次のエントリー<D、2>は、それが2つの削除されたエントリーに関するので、無視される。
【0062】
次のエントリー<C、1>はレフアレンスエントリーを有さず、従ってL2を発生させるために処理される必要はない。
【0063】
次のエントリー、<T、1>は削除されたラベル(L1のエントリー13から)に対応し、この点で無視された前の削除修正と似ている。
【0064】
最後の2つのエントリー、<D、1>と<C、1>はレフアレンスエントリーを含まず、従ってL2を発生するためには処理される必要はない。
【0065】
e)L1とL2の表を使用してエントリーレフアレンスをそれらの変換された値で置換し、P”1とP”2からラベルマークをコピーすることにより、それぞれP1とP2用のP’1(208)とP’2(209)を創る。
過程(e)はP’1に関連して説明され、必要に応じて変更を加えてP’2(図2の150参照)にも適用する。かくして、P”1のラベルマーク(101)から(105)がP’1(図1の140)のそれぞれの位置にコピーされる。次ぎに、P1のレフアレンスエントリーはL1から検索された様にそれらの対応するラベルマークにより置換される。特に、P1のエントリー2のレフアレンス5はL1からの対応するラベルにより置換される。示される様に、ラベル2がL1のエントリー5にあり、従ってP’1のエントリー2のレフアレンスは2にセットされる。
同様な仕方で、P1のエントリー4のレフアレンス8はL1のエントリー8にあるラベル番号(3)に従って、ラベル番号3により置換される。同様な仕方で、P1のエントリー6,9,10及び14のレフアレンス1,1,13及び11はそれぞれのラベル番号1,1,5及び4により置換される。
【0066】
f)P’1とP’2を発生させると、最終差分結果D2が発生される。この目的のために、P1からP2へコピーされるプログラムフラグメントの位置を決定するようにD1が解析される(すなわち、図2の例では、<C、x>又は<T、x>コマンドに合致するエントリーであり、<I、x><D、x>コマンドは無視される)。D1から得られたものとしてコピーされたエントリーについては、次の仕方でD2(210)を発生するためにP’1とP’2とが比較される。
【0067】
f1)(置換された)レフアレンスを含むP’1とP’2の符号するエントリーの各対を取り、それらの置換されたレフアレンス値を比較する。食い違いがある場合は、該差分を反映するために特別の修正命令を付加する。
【0068】
f2)全ての挿入されたプログラムフラグメントと置換された値を付加する。これらのフラグメントがP’2から取られ、かくしてそれらはラベルマークを有し、そしてアドレスレフアレンスはL2変換の下に留まる。
ここで過程(f)を図2の特定の例と関連して例示する。想起される様に、<C、x>コマンドに合致するエントリーのみが該f1過程解析用には関心がある。かくして、D1の最初の挿入されてないエントリー、すなわち<C、6>が解析される。過程f1に従って、第6のエントリーのみが置換されたレフアレンスを含んでいる(P’2のレフアレンス3と比較されたP’1のレフアレンス1)。従って、D1の最初のコマンド<C、6>はD2内で<C、5>により置換されそして”エントリー6のラベルを置換すること”を表す訂正コマンド<R、1>がD2に付加される。(これ又該最初の6エントリーと合致し該<C、6>命令にに包含される)P’1のエントリー2及び4は、P’2の対応するエントリーと丁度同じ様に、それぞれのレフアレンス2及び3を含んでおり、従って、訂正コマンドは要さない。
<C、3><C、1>コマンドに対応するエントリーの残りはP’1とP’2の置換されたレフアレンスを含まず、従って置換コマンドは要さない。
再生パーテイ(reconstructing party)がD2とP1からP2を再構成出来るように挿入されたデータと置換されたデータ(置換されたレフアレンス)がD2に付録されることを過程f2は簡単に規定している。
かくして(P2のエントリー7から9に挿入されるべき)3つのエントリー、それらはD2の<I、3>に対応するが、がセクション(161)でD2に付加される。同様に、D2の<R、1>に対応する第6のエントリーの置換されたレフアレンス3(1の代わりの)が、セクション(161)で、D2に付加される。
【0069】
特定の応用に依っては、D2は、必要なそして適切な全てを、記憶媒体に記憶されても、或いは通信ネットワーク(図2の212)を通して伝送されてもよい。
【0070】
本実施例により、P1とそう受信されたD2とからP2を再生するために動作(220)の典型的シーケンスについて次ぎに説明する。又P2の再生は、必要なそして適切な全てを、如何なる望ましいプラットフオーム上で実現されてもよい。動作のシーケンスは、この実施例に依れば、
a)P1(221)からL1(222)を発生させる、(200での上記過程b参照)。
b)P1とL1とからP’1(223)を発生させる、(200で上記過程e参照)。
c)P’1にD2の修正コマンドを適用することによりP’1とD2(210)とからP’2を発生させる。
d)P1のコピーされたプログラムフラグメントの位置とサイズとを決定するためにその様に受信されたD2の差分結果を解析し、AL2(図1の225)を創るためにL1を使用するが、該AL2はP’2に現れるラベル計数値(label enumeration values)をそれらの元のアドレスレフアレンスへ戻るよう変換し、それは次の仕方で行う。
挿入されてなくて参照されたアドレス用には
AL2[L1[P’1内アドレスに符号する(matching)]]=アドレス(第1条件)
挿入され参照されたアドレス用には
AL2[U()]=アドレス(第2条件)
ここで過程(d)を図2の特定の例に関連して例示する。かくして、AL2(170)を発生させるために、再生側(220)でその全てが利用可能なこの最後のL1,P’2及びD2を使用して、最初にL2(130)が再生される。L2を再生すると、L2を逆にする(reversing)ことによりAL2が容易に得られる。特に、L2のエントリー1は値1を保持し、従ってAL2のエントリー1は値1を保持する。L2のエントリー5は値5を保持し、従ってAL2のエントリー2は値5を保持する。同じ逆ロジックに追随することにより、L2のエントリー9は値6を保持し従ってAL2のエントリー6は値9を保持し、最後に同じロジックに追随することによりAL2のエントリー3は値11を保持する。
e)最後に、AL2を使用して、P’2のアドレスレフアレンスをラベル計数値から元のアドレスレフアレンスへ戻るよう変換することによりP’2(224)とAL2(225)からP2(226)が再生される。
【0071】
ここで過程(e)を図2の特定の例に関連して例示する。かくして、P2(180)を再生するために、AL2によりP’2のラベルレフアレンスが変換される。特に、P’2のエントリー2のラベルレフアレンス2は、AL2のエントリー#2の値5に従ってP2の実際のエントリーレフアレンス5により置換される。同様に、P’2のエントリー4と6のラベルレフアレンス3はAL2のエントリー#3の値11に従って、P2の実際のアドレスレフアレンス11により置換される。同様な仕方で、P’2のエントリー12のラベルレフアレンス1はAL2のエントリー#1の値1に従ってP2の実際のアドレスレフアレンス1により置換される。最後に、P’2のエントリー7のラベルレフアレンス6はAL2のエントリー#6の値9に従ってP2の実際のアドレスレフアレンス9により置換される。この特定の例により示される様に、P2は、中間的データ構造,AL2により差分結果データD2から間接的に発生される。
【0072】
AL2のエントリー4と5は値0を保持しており、それらが削除されたP1内エントリーの1部を形成しているので、レフアレンスラベル4と5はP2内で更新される必要がないことを意味する。
【0073】
当業者は、本発明が通信ネットワークを通してソフトウエアを更新する特定の応用に関連して説明されたが、本発明がこの特定の応用に決して拘束されるものでないことは容易に評価するであろう。かくして、もう1つの例によれば、本発明は効率の良いバージヨン管理(version control)用に適用可能である。例えば、1連のプログラムバージヨンP1、P2及びP3を考える。本発明の技術を適用することはそれぞれP1P2とP2P3の間の差分を表すコンパクトなD12とD23を生ずる。最終的なコンパクトなD12とD23は、従来の、サイズのより大きい差分結果に比較して、望ましい、効率の良いバージヨン管理ツールをもたらす。勿論、必要なそして適切な全ての、他の応用が実行可能である。
【0074】
本発明を、コンピユータプログラムの旧及び新バージヨン間で抽出差分の特定の応用に関連して説明したが、グラフの形式で描かれたデータ表のより一般化された表現に関連した説明を次ぎに述べる。
【0075】
特定の例に戻る前に、データ表での表現に適用する2,3の所見(observations)を下記に表明する。
・該グラフはそれらにアクセスすることを可能にするレフアレンスにより相互連結されたデータレコードの集まりを表す。
・データレコードは予め規定された順序に従う配列の様な線形の記憶装置に記憶されている。
・該レフアレンスを記憶するために割り当てられる記憶量は省略出来ない。
・該レフアレンスを表すデータは隣接するブロックとして保持されず、該データ表の他の項目の中に(例えば、データレコードの中に)分散されている。
【0076】
これを考えて、図3Aに注意を向ける。グラフ(300)はグラフの形式での(旧バージヨンの)抽象的データ構造を表す(それは下記でより詳細に説明される様に多くの応用に適用可能である)。ノード(node)A−Eはデータレコードを表し、リンクは他のレコードへのレフアレンスを表す。この例では、データレコード用の予め規定された順序はレコード名のアルフアベット順のソート(sort)である。該グラフの記憶は次の様に現れる。
【0077】
1.A、2,4
2.B、3
3.C、4,5
4.D
5.E、2
かくして、例えば、アドレス1を有する、データレコードA(301)はそれぞれデータレコードBとD(304と305)へのレフアレンス2と4を表すリンク(302と303)により連結される。
【0078】
データD(305)へのリンク(307)により連結されABAと名付けられたデータレコード(図3Bの306)を付加することにより上記グラフを修正することが今必要であると仮定すると、これは次の新グラフの記憶をもたらすが、そこでは前記アルフアベット順に従ってABAが挿入される。
【0079】
1.A、3,5
2.ABA、5
3.B、4
4.C、5,6
5.D
6.E、3
従って唯1つのデータレコードの挿入が旧グラフの記憶と新グラフの記憶との間に可成り大きな差分を引き起こすことが評価される。
【0080】
上記抽象的データ構造は、指定されたデータ構造では、実行の順序が課されるコンピユータプログラムに比較してアルフアベット順が課されている事実を除けば、コンピユータプログラムと類似していることは容易に評価される。
【0081】
従って、上記で図1と2に関連して詳細に説明した技術を適用することはコンパクトな差分の抽出を引き起こす。
【0082】
上記で指定された様に、該データ表はコンピユータプログラムの表現に決して拘束されない。かくして、限定のない例によれば、該指定されたグラフ(300)は地図を表現しており、そこではノードが市を、リンクが種々の市を連結する道路を表す。本発明の技術は{例えば、シンボル(symbol)ABAを有する市とシンボルDを有する市との間の新しい道路の建設に対応する}地図での地勢の修正のコンパクトな表現を見越している。
【0083】
もう1つの限定のない例によれば、指定されたグラフは電子回路を表現しており、そこではノードは部品を表し、リンクは該部品間のワイヤの接続を表す。
【0084】
次の請求項で現れる番号、アルフアベット文字そしてローマ式シンボルは単に説明の便宜に名付けられ、過程の特定の順序を必ずしも意味しない。
【0085】
本発明が或る程度の特殊さを有して説明されたが、付属する請求項の精神と範囲を離れることなく種々の変更と修正がなされ得ることは当業者の容易に評価するところである。
【図面の簡単な説明】
【図1】 本発明の1実施例による動作シーケンスの略図的図解である。
【図2】 例示的な旧及び新プログラムと、図1の動作シーケンスの適用により得られる種々の中間的結果を示す。
【図3】 本発明の差分抽出をうけるグラフの形式で表示された例示的データ表である。
Claims (2)
- クライアントにインストールされた実行可能な旧プログラムを実行可能な新プログラムに更新するための方法であって、プロセッサと1つまたは複数のメモリとを備えた処理装置を用いて、前記実行可能な旧プログラムと前記実行可能な新プログラムとの間の最終差分結果を発生させると共に当該発生させた最終差分結果を使用して前記更新を行う方法であり、
前記旧プログラムは、データを含むアドレス可能なユニットであるエントリーを備え、前記エントリーの少なくとも一部は、当該エントリー以外における当該旧プログラム内の他のエントリーを参照するためのレフアレンスを有するレフアレンスエントリーであり、
前記新プログラムは、データを含むアドレス可能なユニットであるエントリーを備え、前記エントリーの少なくとも一部は、当該エントリー以外における当該新プログラム内の他のエントリーを参照するためのレフアレンスを有するレフアレンスエントリーであり、
該方法が、
(a)前記プロセッサが、前記メモリに記憶された前記旧プログラムを走査し、当該旧プログラムの前記レフアレンスエントリーの各々の前記レフアレンスを固定値に置換すると共に、前記レフアレンスによって参照される前記エントリーにラベルマークを付加することにより、第1の修正された旧プログラムを生成し、当該第1の修正された旧プログラムを前記メモリに記憶する過程と、
(b)前記プロセッサが、前記メモリに記憶された前記新プログラムを走査し、当該新プログラムの前記レフアレンスエントリーの各々の前記レフアレンスを固定値に置換すると共に、前記レフアレンスによって参照される前記エントリーにラベルマークを付加することにより、第1の修正された新プログラムを生成し、当該第1の修正された新プログラムを前記メモリに記憶する過程と、
(c)前記プロセッサが、前記メモリに記憶された前記第1の修正された旧プログラムの前記ラベルマークの各々に区別ラベル番号を割り当てることにより、前記旧プログラムの前記レフアレンスと前記ラベルマークとの第1の変換表を生成し、当該第1の変換表を前記メモリに記憶する過程と、
(d)前記プロセッサが、前記メモリに記憶された前記第1の修正された旧プログラムと前記メモリに記憶された前記第1の修正された新プログラムとの差分を、当該差分を決定するためのファイル差分ユーティリティを用いて求めることにより、前記第1の修正された旧プログラムから前記第1の修正された新プログラムを生成するための命令のリストを含む第1の差分表を生成し、当該第1の差分表を前記メモリに記憶する過程と、
(e)前記プロセッサが、
i)前記新プログラムにおいて削除又は挿入される前記エントリーを決定するため、前記メモリに記憶された前記第1の差分表を解析し、
ii)参照されている前記エントリーが前記旧プログラムに存在することが示されている場合には、前記メモリに記憶された前記第1の変換表において対応するエントリーから前記区別ラベル番号をコピーすることにより、あるいは、
参照されている前記エントリーが前記新プログラムに挿入されることが示されている場合には、前記第1の変換表の前記区別ラベル番号とは異なる区別ラベル番号を挿入することにより、
前記新プログラムの前記レフアレンスと前記ラベルマークとの第2の変換表を生成し、当該第2の変換表を前記メモリに記憶する過程と、
(f)前記プロセッサが、前記メモリに記憶された前記第1の修正された旧プログラムの前記ラベルマークをコピーすると共に、前記メモリに記憶された前記旧プログラムの前記レフアレンスエントリーの前記レフアレンスを、前記過程(c)において前記メモリに記憶された前記第1の変換表における前記区別ラベル番号であって当該旧プログラムの当該レフアレンスエントリーの参照先のエントリーに対応する位置に付加された前記区別ラベル番号によって置換することにより、第2の修正された旧プログラムを生成し、当該第2の修正された旧プログラムを前記メモリに記憶する過程と、
(g)前記プロセッサが、前記メモリに記憶された前記第1の修正された新プログラムの前記ラベルマークをコピーすると共に、前記メモリに記憶された前記新プログラムの前記レフアレンスエントリーのレフアレンスを、前記過程(e)において前記メモリに記憶された前記第2の変換表における前記区別ラベル番号であって当該新プログラムの当該レフアレンスエントリーの参照先のエントリーに対応する位置に付加された前記区別ラベル番号によって置換することにより、第2の修正された新プログラムを生成し、当該第2の修正された新プログラムを前記メモリに記憶する過程と、
(h)前記プロセッサが、
前記第2の修正された旧プログラムと前記第2の修正された新プログラムとの対応するエントリーに含まれているレフアレンスに相違がある場合には、前記メモリに記憶された前記第1の差分表の命令を当該相違を含まないエントリーのみに対応する命令によって置換すると共に、当該相違を反映するための修正命令を、前記メモリに記憶された前記第1の差分表に付加し、
前記最終差分結果と前記旧プログラムに基づいて前記新プログラムを構成するために前記旧プログラムに対して挿入すべきデータ及び前記旧プログラムのデータを置換すべきデータを、前記メモリに記憶された前記第1の差分表に付加することにより、
前記第2の修正された旧プログラムから前記第2の修正された新プログラムを生成するための前記最終差分結果を生成し、当該最終差分結果を前記メモリに記憶する過程と、
を具備することを特徴とする方法。 - 第2のプロセッサと1つまたは複数の第2のメモリを備えた第2の処理装置において実行される方法であって、前記1つまたは複数の第2のメモリのいずれかの記憶領域に格納された実行可能な旧プログラムから実行可能な新プログラムを発生させて当該新プログラムを前記第2のメモリに格納することにより、当該第2のメモリに格納された前記実行可能な旧プログラムの更新を実行するための方法であり、
前記旧プログラムは、データを含むアドレス可能なユニットであるエントリーを備え、前記エントリーの少なくとも一部は、当該エントリー以外における当該旧プログラム内の他のエントリーを参照するためのレフアレンスを有するレフアレンスエントリーであり、
前記新プログラムは、データを含むアドレス可能なユニットであるエントリーを備え、前記エントリーの少なくとも一部は、当該エントリー以外における当該新プログラム内の他のエントリーを参照するためのレフアレンスを有するレフアレンスエントリーであり、
該方法は、
(a)前記第2のプロセッサが、前記請求項1の前記過程(h)によって生成された前記最終差分結果を受信する過程と、
(b)前記第2のプロセッサが、前記第2のメモリに記憶された前記旧プログラムを走査し、当該旧プログラムの前記レフアレンスエントリーの各々の前記レフアレンスを固定値に置換すると共に、前記レフアレンスによって参照される前記エントリーにラベルマークを付加することにより、第1の修正された旧プログラムを生成し、当該第1の修正された旧プログラムを前記第2のメモリに記憶する過程と、
(c)前記第2のプロセッサが、前記第2のメモリに記憶された前記第1の修正された旧プログラムの前記ラベルマークの各々に区別ラベル番号を割り当てることにより、前記旧プログラムの前記レフアレンスと前記ラベルマークとの第1の変換表を生成し、当該第1の変換表を前記第2のメモリに記憶する過程と、
(d)前記第2のプロセッサが、前記第2のメモリに記憶された前記第1の修正された旧プログラムの前記ラベルマークをコピーすると共に、前記第2のメモリに記憶された前記旧プログラムの前記レフアレンスエントリーの前記レフアレンスを、前記過程(c)において前記第2のメモリに記憶された前記第1の変換表における前記区別ラベル番号であって当該旧プログラムの当該レフアレンスエントリーの参照先のエントリーに対応する位置に付加された前記区別ラベル番号によって置換することにより、第2の修正された旧プログラムを生成し、当該第2の修正された旧プログラムを前記第2のメモリに記憶する過程と、
(e)前記第2のプロセッサが、前記第2のメモリに記憶された前記第2の修正された旧プログラムに対して、前記最終差分結果に含まれる修正命令を適用することにより、第2の修正された新プログラムを生成し、当該第2の修正された新プログラムを前記第2のメモリに記憶する過程と、
(f)前記第2のプロセッサが、
i)前記新プログラムにおいて削除又は挿入される前記エントリーを決定するため、前記第2のメモリに記憶された前記最終差分結果を解析し、
ii)参照されている前記エントリーが前記旧プログラムに存在することが示されている場合には、前記第2のメモリに記憶された前記第1の変換表において対応するエントリーから前記区別ラベル番号をコピーすることにより、あるいは、
参照されている前記エントリーが前記新プログラムに挿入されることが示されている場合には、前記第1の変換表の前記区別ラベル番号とは異なる区別ラベル番号を挿入することにより、
前記新プログラムの前記レフアレンスと前記ラベルマークとの第2の変換表を生成し、当該第2の変換表を前記第2のメモリに記憶する過程と、
(g)前記第2のプロセッサが、前記第2の変換表の前記ラベルマークの値に対応する位置に、当該第2の変換表における当該ラベルマークのアドレスを設定することにより、前記第2の変換表を逆にして、前記新プログラムの前記レフアレンスと前記ラベルマークとの前記第3の変換表を生成する過程と、
(h)前記第2のプロセッサが、前記第3の変換表に基づいて、前記第2のメモリに記憶された前記第2の修正された新プログラムの前記レフアレンスエントリーの前記ラベルマークを前記レフアレンスによって置換することにより、前記新プログラムを再構成する過程と、
を具備することを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IL12584698A IL125846A0 (en) | 1998-08-19 | 1998-08-19 | Incremental program update |
IL125846 | 1998-08-19 | ||
PCT/IL1999/000446 WO2000011549A1 (en) | 1998-08-19 | 1999-08-18 | Difference extraction between two versions of data-tables containing intra-references |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002523825A JP2002523825A (ja) | 2002-07-30 |
JP2002523825A5 JP2002523825A5 (ja) | 2005-12-22 |
JP4733831B2 true JP4733831B2 (ja) | 2011-07-27 |
Family
ID=11071870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000566744A Expired - Lifetime JP4733831B2 (ja) | 1998-08-19 | 1999-08-18 | プログラムを更新するための方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6546552B1 (ja) |
EP (2) | EP1988455B1 (ja) |
JP (1) | JP4733831B2 (ja) |
KR (1) | KR100632904B1 (ja) |
CN (1) | CN100483337C (ja) |
AU (1) | AU761019B2 (ja) |
CA (1) | CA2339923C (ja) |
IL (1) | IL125846A0 (ja) |
WO (1) | WO2000011549A1 (ja) |
Families Citing this family (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2341462B (en) * | 1998-09-12 | 2003-06-11 | Ibm | Method for deployment of incremental versions of applications |
US6804814B1 (en) | 1999-12-29 | 2004-10-12 | Veritas Operating Corporation | Method for simulating back program execution from a traceback sequence |
US6745383B1 (en) | 1999-12-29 | 2004-06-01 | Veritas Operating Corporation | Early warning mechanism for enhancing enterprise availability |
US6748584B1 (en) | 1999-12-29 | 2004-06-08 | Veritas Operating Corporation | Method for determining the degree to which changed code has been exercised |
US7058941B1 (en) | 2000-11-14 | 2006-06-06 | Microsoft Corporation | Minimum delta generator for program binaries |
US7082549B2 (en) | 2000-11-17 | 2006-07-25 | Bitfone Corporation | Method for fault tolerant updating of an electronic device |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
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 |
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 |
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 |
US20030182414A1 (en) | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
JP2003256228A (ja) * | 2002-02-28 | 2003-09-10 | Denso Corp | プログラム書換装置 |
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 |
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 |
US7555750B1 (en) | 2002-08-22 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets |
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 |
WO2004031961A1 (en) * | 2002-09-30 | 2004-04-15 | Insignia Solutions Plc | Efficient system and method for updating a memory device |
US7461372B2 (en) | 2002-10-11 | 2008-12-02 | Hewlett-Packard Development Company, L.P. | System for optimizing distribution of information employing a universal dictionary |
AU2003284292A1 (en) | 2002-10-21 | 2004-05-13 | 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 |
US7921182B2 (en) | 2002-12-31 | 2011-04-05 | Hewlett-Packard Development Company, L.P. | 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 |
EP1597668A4 (en) | 2003-02-11 | 2009-12-23 | Hewlett Packard Development Co | ELECTRONIC DEVICE FOR SUPPORTING MULTIPLE UPDATING AGENTS |
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 |
US8082339B2 (en) | 2003-02-28 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Electronic device network having graceful denial of service |
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 |
US7356727B1 (en) | 2003-03-10 | 2008-04-08 | Hewlett-Packard Development Company, L.P. | Electronic device employing efficient fault tolerance |
US7548986B1 (en) | 2003-03-17 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Electronic device network providing streaming updates |
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 |
EP1654640B1 (en) | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Network having customizable generators of sofware 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 |
US7089270B2 (en) * | 2003-06-20 | 2006-08-08 | Innopath Software | Processing software images for use in generating difference files |
WO2004114130A2 (en) * | 2003-06-23 | 2004-12-29 | Red Bend Ltd. | Method and system for updating versions of content stored in a storage device |
EP1639435A4 (en) | 2003-06-27 | 2009-12-30 | Hewlett Packard Development Co | SYSTEM AND METHOD FOR DOWNLOADING UPDATE PACKAGES INTO A MOBILE HAND APPARATUS IN A CARRIER NETWORK |
EP1652069B1 (en) | 2003-07-07 | 2010-08-25 | Red Bend Ltd. | Method and system for updating versions of content stored in a storage device |
US7343443B1 (en) | 2003-07-08 | 2008-03-11 | Hewlett-Packard Development Company, L.P. | Updated package generation based on analysis of bank dependency |
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 |
US7454745B2 (en) * | 2003-07-31 | 2008-11-18 | International Business Machines Corporation | Automated semantic-based updates to modified code base |
KR100880783B1 (ko) | 2003-09-03 | 2009-02-02 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 | 전자 장치에서의 3-단계 부팅 프로세스 |
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 |
KR20090035044A (ko) | 2003-09-26 | 2009-04-08 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 | 네트워크에서의 생성자와 콘텐츠 서버 간의 업데이트 패키지 전송을 위한 업데이트 패키지 카탈로그 |
JP4562372B2 (ja) * | 2003-10-16 | 2010-10-13 | 株式会社ブロードリーフ | 更新データ配信サーバ及び更新データ配信システム |
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 |
DE102004010179A1 (de) * | 2004-03-02 | 2005-10-06 | Siemens Ag | Verfahren und Datenverarbeitungsgerät zur Aktualisierung von Rechnerprogrammen per Datenübertragung |
US8578359B2 (en) * | 2004-03-15 | 2013-11-05 | Red Bend Ltd. | Method and apparatus for reliable in-place update |
US7599970B2 (en) * | 2004-03-15 | 2009-10-06 | Red Bend Ltd. | Method and apparatus for updating a stored version of content stored in a storage device |
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 |
US8453138B2 (en) | 2004-04-13 | 2013-05-28 | Red Bend Ltd. | Method and apparatus for generating an update package |
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 |
US7587433B2 (en) * | 2004-06-01 | 2009-09-08 | Red Bend Ltd. | Method and system for in-place updating content stored in a storage device |
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 |
US7661102B2 (en) * | 2004-08-20 | 2010-02-09 | Smith Micro Software, Inc. | Method for reducing binary image update package sizes |
BRPI0608690B8 (pt) * | 2005-03-10 | 2021-05-25 | 3M Innovative Properties Co | uso de uma composição antimicrobiana |
EP1755034B1 (en) | 2005-08-18 | 2017-01-18 | Telefonaktiebolaget LM Ericsson (publ) | Object code generation for increasing the performance of delta files |
WO2007023497A1 (en) * | 2005-08-23 | 2007-03-01 | Red Bend Ltd. | Method and system for in-place updating content stored in a storage device |
KR101359834B1 (ko) * | 2005-10-06 | 2014-02-07 | 레드 밴드 리미티드 | 압축 버전을 포함하는 내용을 업데이트하는 방법 및시스템들 |
US8429610B2 (en) * | 2005-12-20 | 2013-04-23 | International Business Machines Corporation | Computer method and apparatus for providing version-aware impact analysis |
ATE491988T1 (de) * | 2005-12-20 | 2011-01-15 | Ericsson Telefon Ab L M | Erstellung inkrementeller programmaktualisierungen |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
KR101431296B1 (ko) * | 2007-01-11 | 2014-08-20 | 레드 밴드 리미티드 | 저장 장치에 저장된 컨텐츠의 인-플레이스 업데이트 방법 및 시스템 |
US20080172584A1 (en) * | 2007-01-11 | 2008-07-17 | Red Bend Ltd. | Method and system for in-place updating content stored in a storage device |
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 |
WO2010016058A2 (en) * | 2008-08-04 | 2010-02-11 | Red Bend Ltd. | Performing an in-place update of an operating storage device |
EP2329366B1 (en) * | 2008-08-04 | 2013-12-11 | Red Bend Ltd. | Performing a pre-update on a non volatile memory |
EP2329368B1 (en) * | 2008-08-04 | 2019-10-02 | Red Bend Ltd. | Updating content without using a mini operating system |
KR200453662Y1 (ko) * | 2009-02-09 | 2011-05-23 | 한희경 | 충진용 치약이 구비된 칫솔 |
US8438558B1 (en) | 2009-03-27 | 2013-05-07 | Google Inc. | System and method of updating programs and data |
CN101594355B (zh) * | 2009-06-17 | 2012-11-07 | 华为技术有限公司 | 一种实现软件跨版本交互的方法及装置 |
US8762980B1 (en) * | 2010-09-09 | 2014-06-24 | Symantec Corporation | Rolling incremental updates |
CN102023870B (zh) * | 2010-12-31 | 2013-07-24 | 深圳市普联技术有限公司 | 一种软件修改的检测方法、装置及电子设备 |
US8813061B2 (en) | 2012-10-17 | 2014-08-19 | Movimento Group | Module updating device |
CN103067632A (zh) * | 2012-12-18 | 2013-04-24 | 北京君正集成电路股份有限公司 | 一种编译调制解调器的方法与装置 |
CN103744947B (zh) * | 2013-12-31 | 2017-12-12 | 金蝶软件(中国)有限公司 | 涉及版本id的数据引用的处理方法和系统 |
US9535688B2 (en) * | 2014-07-23 | 2017-01-03 | Verizon Patent And Licensing Inc. | Efficient deployment of application revisions and implementation of application rollbacks across multiple application servers |
US10309792B2 (en) | 2016-06-14 | 2019-06-04 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US11092446B2 (en) | 2016-06-14 | 2021-08-17 | Motional Ad Llc | Route planning for an autonomous vehicle |
US10126136B2 (en) | 2016-06-14 | 2018-11-13 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US10829116B2 (en) | 2016-07-01 | 2020-11-10 | nuTonomy Inc. | Affecting functions of a vehicle based on function-related information about its environment |
US10331129B2 (en) | 2016-10-20 | 2019-06-25 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10681513B2 (en) | 2016-10-20 | 2020-06-09 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10473470B2 (en) | 2016-10-20 | 2019-11-12 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10857994B2 (en) | 2016-10-20 | 2020-12-08 | Motional Ad Llc | Identifying a stopping place for an autonomous vehicle |
DE102018201572A1 (de) | 2018-02-01 | 2019-08-01 | Robert Bosch Gmbh | Verfahren zum Erstellen von Daten |
US10509642B2 (en) | 2018-03-30 | 2019-12-17 | International Business Machines Corporation | Intelligent discovery and application of API changes for application migration |
CN111104149A (zh) | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 一种固件升级方法、装置及终端 |
KR102088164B1 (ko) | 2019-08-27 | 2020-03-12 | 루나 주식회사 | 소프트웨어 업데이트를 위한 신구 데이터간의 차분 생성 방법 및 그 장치 |
CN113095055A (zh) * | 2021-04-20 | 2021-07-09 | 山石网科通信技术股份有限公司 | 表格修改方法、装置、非易失性存储介质、及处理器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
DE59108978D1 (de) | 1990-08-28 | 1998-06-10 | Landis & Gyr Tech Innovat | Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms |
JP3222481B2 (ja) * | 1991-01-08 | 2001-10-29 | 富士通株式会社 | プログラム更新システム |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
JPH0591550A (ja) * | 1991-09-30 | 1993-04-09 | Oki Electric Ind Co Ltd | プログラムのローデイング方法 |
US5528490A (en) * | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5359730A (en) * | 1992-12-04 | 1994-10-25 | International Business Machines Corporation | Method of operating a data processing system having a dynamic software update facility |
JPH06274384A (ja) * | 1993-03-22 | 1994-09-30 | N T T Data Tsushin Kk | 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 |
JP3602596B2 (ja) * | 1995-02-22 | 2004-12-15 | 株式会社東芝 | ドキュメントファイリング装置および方法 |
JPH08234975A (ja) * | 1995-02-28 | 1996-09-13 | Fujitsu Ltd | プログラム生成装置および方法 |
US6021272A (en) * | 1995-10-04 | 2000-02-01 | Platinum Technology, Inc. | Transforming and manipulating program object code |
US5832520A (en) * | 1996-07-03 | 1998-11-03 | Miller, Call, Plauck And Miller | Automatic file differencing and updating system |
US6367075B1 (en) * | 1996-07-24 | 2002-04-02 | Marimba, Inc. | Method and apparatus for producing instructions describing the removal of updates to a computer system |
-
1998
- 1998-08-19 IL IL12584698A patent/IL125846A0/xx unknown
-
1999
- 1999-08-18 JP JP2000566744A patent/JP4733831B2/ja not_active Expired - Lifetime
- 1999-08-18 WO PCT/IL1999/000446 patent/WO2000011549A1/en active IP Right Grant
- 1999-08-18 EP EP08153401.8A patent/EP1988455B1/en not_active Expired - Lifetime
- 1999-08-18 US US09/376,512 patent/US6546552B1/en not_active Expired - Lifetime
- 1999-08-18 KR KR1020017002141A patent/KR100632904B1/ko not_active IP Right Cessation
- 1999-08-18 AU AU53000/99A patent/AU761019B2/en not_active Expired
- 1999-08-18 CN CNB998098272A patent/CN100483337C/zh not_active Expired - Lifetime
- 1999-08-18 EP EP99938496.9A patent/EP1105794B1/en not_active Expired - Lifetime
- 1999-08-18 CA CA002339923A patent/CA2339923C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1988455B1 (en) | 2018-02-28 |
US6546552B1 (en) | 2003-04-08 |
JP2002523825A (ja) | 2002-07-30 |
CN1315017A (zh) | 2001-09-26 |
EP1105794B1 (en) | 2018-02-28 |
CN100483337C (zh) | 2009-04-29 |
AU5300099A (en) | 2000-03-14 |
IL125846A0 (en) | 1999-04-11 |
WO2000011549A1 (en) | 2000-03-02 |
AU761019B2 (en) | 2003-05-29 |
EP1105794A1 (en) | 2001-06-13 |
EP1988455A1 (en) | 2008-11-05 |
KR100632904B1 (ko) | 2006-10-16 |
CA2339923A1 (en) | 2000-03-02 |
CA2339923C (en) | 2005-05-17 |
KR20010079666A (ko) | 2001-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4733831B2 (ja) | プログラムを更新するための方法 | |
JP5019578B2 (ja) | 記憶装置に記憶されたコンテンツのバージョンを更新する方法およびシステム | |
US6742025B2 (en) | System and method for server managed modification of operating system data stored within a network device | |
US8161472B2 (en) | Methods and apparatus for incorporating a partial page on a client | |
CN1102001C (zh) | 网络单元中比较可控对象表示式属性值的方法 | |
US7412700B2 (en) | Product packaging and installation mechanism | |
US6324637B1 (en) | Apparatus and method for loading objects from a primary memory hash index | |
US7676479B2 (en) | Method and system for updating versions of content stored in a storage device | |
US8301720B1 (en) | Method and system to collect and communicate problem context in XML-based distributed applications | |
US7222125B2 (en) | Data structure managing device, data structure managing system, data structure managing method, and recorded medium where data structure managing program is stored | |
US11327720B2 (en) | Automated generation of software bindings | |
CN114422627B (zh) | 基于CANoe动态链接库的BLF数据读写与CAN报文转译方法 | |
WO2024164559A1 (zh) | 一种系统升级方法、装置、设备及存储介质 | |
JP7318704B2 (ja) | テスト装置、テスト方法及びプログラム | |
US20120182903A1 (en) | Inferring connectivity in the presence of conflicting network data | |
CN110379467B (zh) | 一种化学分子式切分方法 | |
CN115378907B (zh) | Msp域名解析配置管理方法、系统、设备和介质 | |
JP2606092B2 (ja) | 版管理システム | |
CN118626111B (zh) | 一种前端项目部署优化方法及系统 | |
CN116737139A (zh) | 一种网关插件的扩展方法和扩展系统 | |
CN114579154A (zh) | 一种软件加载的方法和装置及设备 | |
CN115794161A (zh) | 基于Archive包的加固方法、装置、存储介质和计算机设备 | |
CN117787240A (zh) | 一种配置文件的整合方法及终端 | |
CN118626111A (zh) | 一种前端项目部署优化方法及系统 | |
JP2982725B2 (ja) | プログラム自動生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040901 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040901 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070226 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070226 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070226 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070621 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070920 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070928 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071019 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071026 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071116 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071221 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080528 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080528 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080708 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080714 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110425 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4733831 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |