JP2011113123A - Difference management device and computer program and difference management method - Google Patents
Difference management device and computer program and difference management method Download PDFInfo
- Publication number
- JP2011113123A JP2011113123A JP2009266352A JP2009266352A JP2011113123A JP 2011113123 A JP2011113123 A JP 2011113123A JP 2009266352 A JP2009266352 A JP 2009266352A JP 2009266352 A JP2009266352 A JP 2009266352A JP 2011113123 A JP2011113123 A JP 2011113123A
- Authority
- JP
- Japan
- Prior art keywords
- difference
- data
- version
- unit
- plate
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims description 54
- 238000004590 computer program Methods 0.000 title claims description 3
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 96
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 96
- 238000012545 processing Methods 0.000 claims description 83
- 238000013500 data storage Methods 0.000 claims description 61
- 239000002131 composite material Substances 0.000 claims description 16
- 230000002194 synthesizing effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 230000000153 supplemental effect Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 111
- 230000008569 process Effects 0.000 description 99
- 239000000203 mixture Substances 0.000 description 56
- 238000010586 diagram Methods 0.000 description 37
- 238000004364 calculation method Methods 0.000 description 14
- 238000011161 development Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 11
- 230000015654 memory Effects 0.000 description 11
- 238000000605 extraction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Abstract
Description
この発明は、3以上の版を有するデータについての差分データを管理する差分管理装置に関する。 The present invention relates to a difference management device that manages difference data for data having three or more versions.
オンラインあるいはオフラインでプログラムなどのデータを端末装置に配布したのち、不具合の修正や機能追加などのため、データを更新する必要が生じる場合がある。配布するデータ量を抑えるため、更新したデータそのものを配布するのではなく、最初に配布したデータと更新したデータとの差分を表わす差分データを配布する方式がある。 After distributing data such as programs online or offline to a terminal device, it may be necessary to update the data to correct defects or add functions. In order to reduce the amount of data to be distributed, there is a method of distributing difference data representing the difference between the initially distributed data and the updated data, instead of distributing the updated data itself.
一般にデータの更新は、複数回行われ、そのたびに、同じデータの異なる版ができることになる。差分データは、2つの版の間の差分を表わすものであるから、同じデータの異なる版が多数あれば、それに対応して差分データも多数必要になる。
また、利用者によっては、最新版のデータに更新するのではなく、異なる版のデータに更新したいという要望を持つ場合もある。すべての要望に対処するためには、版の数の二乗に近い数の差分データが理論的には必要になる。
また、差分データを適用してデータの版を更新するのは、そのデータを保持している端末装置である。端末装置は、処理能力が低い場合や記憶容量が小さい場合があるので、データの更新による負荷は、なるべく小さいことが望まれる。
この発明は、例えば、上記のような課題を解決するためになされたものであり、差分データを効率的に管理するとともに、差分データ適用時の負荷を小さくすることを目的とする。
In general, data is updated a plurality of times, and each time a different version of the same data is created. Since the difference data represents the difference between the two versions, if there are many different versions of the same data, a large number of difference data is required correspondingly.
Some users may desire to update to a different version of the data instead of updating to the latest version. In order to cope with all the demands, the number of difference data close to the square of the number of plates is theoretically required.
In addition, it is the terminal device that holds the data that applies the difference data to update the data version. Since the terminal device may have a low processing capacity or a small storage capacity, it is desirable that the load due to the data update be as small as possible.
The present invention has been made, for example, in order to solve the above-described problems, and it is an object of the present invention to efficiently manage differential data and reduce the load when applying differential data.
この発明にかかる差分管理装置は、
3以上の版を有する有版データについて、上記有版データの2つの版の間の差分を表わす差分データを管理する差分管理装置において、
データを記憶する記憶装置と、データを処理する処理装置と、差分記憶部と、差分合成部とを有し、
上記差分記憶部は、上記記憶装置を用いて、上記有版データの第一の版と第二の版との間の差分を表わす第一の差分データと、上記有版データの第二の版と第三の版との間の差分を表わす第二の差分データとを記憶し、
上記差分合成部は、上記処理装置を用いて、上記差分記憶部が記憶した第一の差分データと第二の差分データとを合成して、上記有版データの第一の版と第三の版との間の差分を表わす第三の差分データを生成することを特徴とする。
The difference management device according to the present invention is:
For version data having three or more versions, in a difference management device that manages difference data representing a difference between two versions of the version data,
A storage device for storing data, a processing device for processing data, a difference storage unit, and a difference synthesis unit;
The difference storage unit uses the storage device, the first difference data representing the difference between the first version and the second version of the plate data, and the second version of the plate data And second difference data representing the difference between the first and third editions,
The difference synthesizer synthesizes the first difference data and the second difference data stored in the difference storage unit using the processing device, and the first version and the third version of the plate data It is characterized in that third difference data representing a difference between the plates is generated.
この発明にかかる差分管理装置によれば、配布すべきデータ量を削減できるとともに、有版データの版の数が多くても記憶すべき差分データの数が少なく、有版データを更新するため差分データを適用する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。 According to the difference management device of the present invention, the amount of data to be distributed can be reduced, and even if the number of versions of the plate data is large, the number of difference data to be stored is small, and the difference is obtained because the version data is updated. When data is applied, the load on the processing device and the capacity of the work area required for the storage device can be reduced.
実施の形態1.
実施の形態1について、図1〜図18を用いて説明する。
The first embodiment will be described with reference to FIGS.
図1は、この実施の形態における配布システム800の全体構成の一例を示すシステム構成図である。
配布システム800は、プログラムなどのソフトウェアを配布するシステムである。配布システム800は、開発装置810、配布装置100、端末装置200などを有する。開発装置810は、開発者がソフトウェアを開発する装置である。配布装置100は、開発装置810で開発されたソフトウェアを端末装置200に配布する装置である。端末装置200は、配布装置100から配布されたソフトウェアを実行する装置である。開発装置810と配布装置100との間は、例えばネットワークなどにより接続していて、開発装置810で開発されたソフトウェアを配布装置100に伝送することができる。しかし、開発装置810で開発したソフトウェアを配布装置100が取得できる構成であれば、開発装置810と配布装置100との間は必ずしも接続されている必要はない。例えば、開発装置810で開発したソフトウェアを記憶媒体に記憶させ、配布装置100が記憶媒体からソフトウェアを読み出す構成であってもよい。配布装置100と端末装置200との間も同様に、配布装置100が配布したソフトウェアを端末装置200が取得できるよう構成する。例えば、ネットワークによる常時接続やダイヤルアップ回線による接続を介してオンラインでソフトウェアを配布する構成でもよいし、記憶媒体を郵送するなどしてオフラインでソフトウェアを配布する構成でもよい。
FIG. 1 is a system configuration diagram showing an example of the overall configuration of a
The
ソフトウェアは、1つのファイルからなるものであってもよいし、複数のファイルからなるものであってもよい。この例では、ソフトウェア全体を一続きのデータとして取り扱う。例えば、ソフトウェアを構成する1以上のファイルを1つに結合して生成した書庫ファイルを対象とする。なお、ソフトウェア全体を一続きのデータとして取り扱うのではなく、複数のファイルなど複数のデータの集合として取り扱う場合は、個々のファイルなど一続きのデータとして取り扱うことができる部分を対象とすればよい。 The software may consist of one file or may consist of a plurality of files. In this example, the entire software is handled as a series of data. For example, an archive file generated by combining one or more files constituting the software into one is targeted. When the entire software is not handled as a series of data but is handled as a set of a plurality of data such as a plurality of files, a portion that can be handled as a series of data such as individual files may be targeted.
配布装置100は、開発装置810で開発されたソフトウェアを端末装置200に配布する。その後、開発装置810では、例えば不具合の修正や新機能の追加などを目的として、既に配布したソフトウェアを修正した新しい版のソフトウェアを開発する。ソフトウェアの修正は、1回に限らず、何回も繰り返し行われる。このため、ソフトウェアには、多数の版が存在する。
新しい版のソフトウェアを配布するに当たり、古い版のソフトウェアとの差が小さければ、その差を表わす差分データを配布するほうが、配布すべきデータ量が少なくなり効率がよい。このため、配布装置100は、端末装置200に対して差分データを配布する。端末装置200は、既に配布されている古い版のソフトウェアに、配布された差分データを適用することにより、ソフトウェアを更新し、新しい版のソフトウェアを取得する。
The
When distributing a new version of software, if the difference from the old version of the software is small, it is more efficient to distribute the difference data representing the difference because the amount of data to be distributed is smaller. For this reason, the
配布装置100からソフトウェアの配布を受ける端末装置200は、1以上存在し、通常は非常に多数存在する。端末装置200が配布装置100からソフトウェアの配布を受ける形態には、上述したように様々な形態がある。
端末装置200がネットワークなどを介して配布装置100と常時接続している場合、ソフトウェアの新しい版が開発されるたびに、配布装置100から差分データを端末装置200に配布することができる。
しかし、端末装置200がダイヤルアップ回線などを介して配布装置100と接続している場合、配布装置100と端末装置200とが接続していない間は、差分データを配布できない。
また、郵送などオフラインでの配布の場合、些細な修正のたびに差分データを配布することは、郵送料や利用者が差分データをソフトウェアに適用する手間などの点で現実的ではなく、セキュリティホールの修正など重要な修正があった場合のみ、差分データを配布する。
There are one or more
When the
However, when the
Also, in the case of offline distribution such as mailing, it is not practical to distribute differential data for every minor modification in terms of postage and the time and effort required for users to apply differential data to software. Distribute difference data only when there are important corrections such as.
更に問題を複雑にするのは、端末装置200の利用者の好みの問題である。利用者は、必ずしも最新版のソフトウェアを好むとは限らない。データの互換性などの問題から古い版を使う必要がある場合や、既に使い慣れた操作方法が変更されることへの抵抗感がある場合など、様々な理由により、利用者は、古い版のソフトウェアを使い続けている場合がある。場合によっては、一度新しい版を導入したのち、古い版に戻したいという要望が出る場合もある。
Further complicating the problem is the preference of the user of the
したがって、ソフトウェアの多数の版のうち、どの版を、端末装置200が現在記憶しているかは必ずしも明らかではないし、端末装置200が記憶しているソフトウェアを更新する場合、どの版に更新すればよいかも必ずしも明らかではない。
Accordingly, it is not always clear which version of the software is currently stored in the
配布システム800は、このように、ソフトウェアが多数の版を有し、その差分データを配布することによりソフトウェアを配布する場合において、効率的なソフトウェアの更新を実現する。
In this way, the
図2は、この実施の形態における配布装置100および端末装置200の外観の一例を示す斜視図である。
配布装置100および端末装置200は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
FIG. 2 is a perspective view showing an example of the outer appearance of the
The
The system unit 910 is a computer, and is connected to the
図3は、この実施の形態における配布装置100および端末装置200のハードウェア資源の一例を示す図である。
配布装置100および端末装置200は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置(以下「HDD」と呼ぶ。)920と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
FIG. 3 is a diagram illustrating an example of hardware resources of the
The
The
Further, the
通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
HDD920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The
The
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、HDD920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The
The
In addition, arrows in the flowcharts described in the following description of the embodiments mainly indicate input / output of data and signals, and the data and signal values are the
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
In the description of the embodiments described below, what is described as “to part” may be “to circuit”, “to device”, and “to device”, and “to step” and “to”. “Procedure” and “˜Process” may be used. That is, what is described as “˜unit” may be realized by firmware stored in the
図4は、この実施の形態における配布装置100の機能ブロックの構成の一例を示すブロック構成図である。
配布装置100(差分管理装置)は、旧版データ記憶部111、新版データ取得部112、差分生成部113、旧版データ更新部114、差分記憶部115、旧版コード記憶部121、旧版コード更新部124、差分版記憶部125、要求取得部131、配布判定部132、差分合成部133、差分配布部134を有する。
FIG. 4 is a block configuration diagram showing an example of a functional block configuration of the
The distribution device 100 (difference management device) includes an old version
旧版データ記憶部111は、HDD920を用いて、多数の版を有するソフトウェア(以下「有版データ」と呼ぶ。)のうち、現行の版(以下「旧版データ」と呼ぶ。)を記憶している。有版データには、その版を識別するためのコード(以下「版コード」と呼ぶ。)がある。版コードは、例えばソフトウェアのバージョン番号やリビジョン番号である。
開発装置810が有版データの新たな版を開発すると、新版データ取得部112は、CPU911を用いて、開発装置810から有版データの最新の版(以下「新版データ」と呼ぶ。)と、新版データの版を識別する版コード(以下「新版コード」と呼ぶ。)とを取得する。
差分生成部113は、CPU911を用いて、旧版データ記憶部111が記憶した旧版データと、新版データ取得部112が取得した新版データとの間の差分データを生成する。
差分記憶部115は、HDD920を用いて、差分生成部113が生成した差分データを記憶する。差分記憶部115は、複数の差分データを記憶する。差分生成部113が生成した差分データを記憶することにより、差分記憶部115が記憶した差分データの数が1つ増える。
The old version
When the
The
The
旧版データ更新部114は、CPU911を用いて、旧版データ記憶部111が記憶した旧版データを更新して、新版データ取得部112が取得した新版データを旧版データ記憶部111に記憶させる。
旧版データ記憶部111は、有版データの1つの版しか記憶しない。これにより、HDD920の記憶容量を節約することができる。旧版データ更新部114による更新により、旧版データ記憶部111は、HDD920を用いて、新版データを新たな旧版データとして記憶する。すなわち、旧版データ記憶部111が記憶している有版データの現行の版は、差分生成部113が差分データを生成している間を除き、常に、その有版データの最新の版である。
1つの有版データのデータ量が大きい場合はもちろん、配布装置100が多数の種類の有版データを配布する場合、1つ1つの有版データのデータ量は小さくても、全体としてのデータ量は膨大になる場合がある。旧版データ記憶部111が1つの有版データにつき1つの版しか記憶せず、HDD920の記憶容量を節約することにより、配布装置100の設置コストを抑えることができる。
なお、HDD920の記憶容量に余裕があれば、旧版データ記憶部111は、1つの有版データにつき複数の版を記憶する構成としてもよい。更に、空き容量監視部と版数算出部とを設け、HDD920の空き容量を空き容量監視部が監視し、HDD920の空き容量に基づいて、旧版データ記憶部111が記憶する版の数を版数算出部が算出する構成としてもよい。
The old version
The old version
When the data amount of each piece of plate data is large, as well as when the
If the storage capacity of the
旧版コード記憶部121は、HDD920を用いて、旧版データ記憶部111が記憶している旧版データの版を識別する版コード(以下「旧版コード」と呼ぶ。)を記憶している。
差分版記憶部125は、CPU911を用いて、新版データ取得部112が取得した新版コードと、旧版コード記憶部121が記憶した旧版コードとに基づいて、差分生成部113が生成した差分データがどの版とどの版との間のものであるかを表わすデータ(以下「差分コード」と呼ぶ。)を生成する。差分版記憶部125は、HDD920を用いて、生成した差分コードを記憶する。差分版記憶部125は、差分記憶部115が記憶した複数の差分データに対応して同じ数の差分コードを記憶する。例えば、差分記憶部115が差分データを記憶するファイルのファイル名として差分コードを用いるなどして、差分記憶部115が記憶した差分データと、差分版記憶部125が記憶した差分コードとを対応づける。
The old version
The difference version storage unit 125 uses the
旧版コード更新部124は、CPU911を用いて、旧版コード記憶部121が記憶した旧版コードを更新して、新版データ取得部112が取得した新版コードを旧版コード記憶部121に記憶させる。
旧版データ記憶部111が1つの旧版データを記憶する構成である場合、旧版コード記憶部121も1つの旧版コードを記憶する。
旧版データ記憶部111が複数の旧版データを記憶する構成である場合、旧版コード記憶部121は、それに対応して同じ数の旧版コードを記憶する。旧版データ記憶部111が記憶した旧版データと、旧版コード記憶部121が記憶した旧版コードとの対応がわかるよう、例えば、旧版データ記憶部111が旧版データを記憶するファイルのファイル名として旧版コードを用いるなどして、旧版データ記憶部111が記憶した旧版データと、旧版コード記憶部121が記憶した旧版コードとを対応づける。
The old version
When the old version
When the old version
要求取得部131は、CPU911を用いて、端末装置200から差分データを要求する差分要求メッセージを取得する。例えば、要求取得部131は、ネットワークを介して接続した端末装置200が送信した差分要求メッセージを、通信装置915を用いて受信する。あるいは、要求取得部131は、オフラインの端末装置200の利用者からの要求を配布装置100の管理者がキーボード902などを用いて入力することにより、差分要求メッセージを取得する。
差分要求メッセージは、少なくとも、端末装置200が現在所持している有版データ(以下「現版データ」と呼ぶ。)の版を識別する版コード(以下「現版コード」と呼ぶ。)を含む。また、差分要求メッセージは、端末装置200が取得したい有版データ(以下「更新版データ」と呼ぶ。)の版を識別する版コード(以下「更新版コード」と呼ぶ。)を含む。なお、差分要求メッセージが更新版コードを含まない場合は、最新版を取得したいものと解釈する構成であってもよい。
更に、差分要求メッセージは、端末装置200が現在所持している差分データを識別する差分コードを含んでもよい。上述したように、端末装置200は、配布装置100が配布したすべての差分データを取得しているとは限らないし、端末装置200が記憶している有版データの版や、取得したい有版データの版は様々である。したがって、端末装置200が所持している差分データが現版データに適用できるとは限らないし、適用できたとしてもその結果として更新版データが得られるとは限らない。このため、端末装置200が差分データを所持していたとしても、それとは異なる差分データを配布する必要がある場合がある。
The
The difference request message includes at least a version code (hereinafter referred to as “current version code”) for identifying a version of the version data (hereinafter referred to as “current version data”) currently possessed by the
Furthermore, the difference request message may include a difference code that identifies the difference data that the
配布判定部132は、CPU911を用いて、要求取得部131が取得した差分要求メッセージと、差分版記憶部125が記憶した差分コードとに基づいて、差分記憶部115が記憶した差分データのなかから、端末装置200に配布すべき差分データを判定する。
現版データに適用することにより更新版データを得ることができる差分データを配布すれば、端末装置200からの要求を満たすことができるのは、もちろんである。また、複数の差分データを順次適用することにより現版データから更新版データを得ることができる差分データであっても、端末装置200からの要求を満たすことができる。例えば、現版データに第一の差分データを適用し、その結果得られた版の有版データに第二の差分データを適用して更新版データを得ることができればよい。順次適用する差分データの数は、2つに限らず、3つ以上であってもよい。また、順次適用する複数の差分データのうちいくつかの差分データを端末装置200が既に所持しているのであれば、その差分データについては、端末装置200に配布する必要はなく、差分記憶部115が記憶している必要もない。
Based on the difference request message acquired by the
It is a matter of course that the request from the
差分合成部133は、CPU911を用いて、差分記憶部115が記憶した複数の差分データを合成して、新たな差分データを生成する。差分データの合成とは、順次適用可能な複数の差分データから、1つの差分データを生成することである。例えば、第一の差分データは、有版データの第一の版に適用することにより有版データの第二の版を生成できるものであり、第二の差分データは、有版データの第二の版に適用することにより有版データの第三の版を生成できるものであるとする。この場合、有版データの第一の版に、第一の差分データと第二の差分データとを順次適用することにより、有版データの第三の版を生成することができる。差分合成部133は、第一の差分データと第二の差分データとを合成することにより、1回の適用で、有版データの第一の版から、有版データの第三の版を生成することができる第三の差分データを生成する。
差分記憶部115は、HDD920を用いて、差分合成部133が生成した新たな差分データを記憶する。これにより、差分記憶部115が記憶した差分データの数がまた1つ増える。
差分版記憶部125は、CPU911を用いて、差分合成部133が生成した差分データに対応する差分コードを生成し、HDD920を用いて、生成した差分コードを記憶する。
The
The
The difference version storage unit 125 generates a difference code corresponding to the difference data generated by the
例えば、配布判定部132が端末装置200に配布すべきと判定した差分データのなかに、順次適用すべき複数の差分データがある場合、これを合成して1つの差分データにしてから配布するほうが、配布すべきデータ量が減るので効率がよい。差分合成部133は、CPU911を用いて、配布判定部132が判定した差分データに基づいて、合成すべき差分データを判定し、差分データを合成する。
また、配布する時点で合成を始めたのでは配布が遅れる可能性があるので、差分合成部133は、CPU911を用いて、前もって差分データを合成しておく構成であってもよい。例えば、負荷監視部を設け、負荷監視部がCPU911の負荷を監視し、CPU911の負荷が所定の値よりも低く、差分合成部133が差分データを合成する差分合成処理をしても他の処理に影響が出ないと判定した場合に、差分版記憶部125が記憶した差分コードに基づいて、合成により生成することが可能であるがまだ生成されていない差分データを差分合成部133が判定し、判定した差分データを生成する。
For example, if there is a plurality of difference data to be sequentially applied among the difference data determined to be distributed to the
In addition, since the distribution may be delayed if the synthesis is started at the time of distribution, the
差分配布部134(差分通知部)は、CPU911を用いて、差分記憶部115が記憶した差分データを端末装置200に対して配布する。配布の方式には、上述したように様々な方式がある。例えば、差分配布部134が通信装置915を用いて、インターネットなどを介して差分データを端末装置200に対して送信する。あるいは、差分配布部134が記憶媒体に差分データを保存し、差分データを保存した記憶媒体を端末装置200の利用者に対して郵送する。また、配布の時期にも、様々な時期がある。例えば、端末装置200からの差分要求メッセージに対する応答として、配布判定部132が判定した差分データを差分配布部134が配布する。あるいは、開発装置810が有版データの新しい版を開発したことに伴って、有版データを最新版に更新する差分データを差分配布部134が配布する。
The difference distribution unit 134 (difference notification unit) uses the
図5は、この実施の形態における端末装置200の機能ブロックの構成の一例を示すブロック構成図である。
端末装置200(差分管理装置)は、有版データ記憶部211、有版データ更新部212、現版コード記憶部213、差分取得部221、差分記憶部222、差分版記憶部223、差分合成部224、更新版取得部231、適用判定部240を有する。
FIG. 5 is a block configuration diagram showing an example of a functional block configuration of the
The terminal device 200 (difference management device) includes a plate
有版データ記憶部211は、HDD920を用いて、有版データのいずれかの版を記憶している。
現版コード記憶部213は、HDD920を用いて、有版データ記憶部211が記憶している有版データの版を表わす版データ(以下「現版コード」と呼ぶ。)を記憶している。
The plate
The current version
有版データ更新部212は、CPU911を用いて、差分記憶部222が記憶した差分データを、有版データ記憶部211が記憶した有版データに適用して、有版データの異なる版を生成する。有版データ更新部212は、CPU911を用いて、有版データ記憶部211が記憶した有版データを更新して、生成した異なる版の有版データを記憶させる。有版データ記憶部211は、HDD920を用いて、更新された異なる版の有版データを記憶する。現版コード記憶部213は、HDD920を用いて、更新された異なる版を表わす現版コードを記憶する。
The plate
差分取得部221は、CPU911を用いて、配布装置100が配布した差分データと、その差分データに対応する差分版データとを取得する。
差分記憶部222は、HDD920を用いて、差分取得部221が取得した差分データを記憶する。差分記憶部222は、複数の差分データを記憶する。差分取得部221が取得した差分データを記憶することにより、差分記憶部222が記憶した差分データの数が1つ増える。
差分版記憶部223は、HDD920を用いて、差分取得部221が取得した差分版データを記憶する。差分版記憶部223は、差分記憶部222が記憶した差分データに対応して、同じ数の差分版データを記憶する。例えば、差分記憶部222が差分データを記憶するファイルのファイル名として差分コードを用いるなどして、差分記憶部222が記憶した差分データと、差分版記憶部223が記憶した差分コードとを対応づける。
差分合成部224は、CPU911を用いて、差分記憶部222が記憶した複数の差分データを合成して、新たな差分データを生成する。差分記憶部222は、HDD920を用いて、差分合成部224が生成した差分データを記憶する。これにより、差分記憶部222が記憶した差分データの数が1つ増える。差分版記憶部223は、差分合成部224が生成した差分データに対応する差分版データを記憶する。
The
The
The difference
Using the
更新版取得部231は、CPU911を用いて、有版データのうち、利用者が取得したい版を表わす版コード(更新版コード)を取得する。例えば、利用者がキーボード902などを操作して、更新版取得部231がその操作内容を入力して解釈することにより、更新版コードを入力する。
The update
適用判定部240は、CPU911を用いて、有版データ記憶部211が記憶した有版データと、差分記憶部222が記憶した差分データとに基づいて、更新版コードが表わす利用者が取得したい版の有版データを得ることができるか否かを判定する。
単独適用判定部241は、CPU911を用いて、差分記憶部222が記憶した差分データのなかに、有版データ記憶部211が記憶した有版データに適用することにより、更新版取得部231が取得した更新版コードが表わす版の有版データを生成することができる差分データ(以下「単独適用差分データ」と呼ぶ。)があるか否かを判定する。
単独適用差分データがないと単独適用判定部241が判定した場合、合成適用判定部242は、CPU911を用いて、差分記憶部222が記憶した差分データのなかに、有版データ記憶部211が記憶した有版データに順次適用することにより、更新版取得部231が取得した更新版データが表わす版の有版データを生成することができる複数の差分データ(以下「合成適用差分データ」と呼ぶ。)があるかを判定する。
合成適用差分データがないと合成適用判定部242が判定した場合、差分要求部243は、CPU911を用いて、配布装置100に対して差分データの配布を要求する差分要求メッセージを通知する。通知の方式は、配布装置100が有版データや差分データを配布する場合と同様、様々な方式がある。例えば、配布装置100と端末装置200とがインターネットなどを介して接続している場合には、差分要求部243は、通信装置915を用いて、配布装置100に対して差分要求メッセージを送信する。あるいは、差分要求部243は、表示装置901を用いて、端末装置200の利用者に対してメッセージを表示する。それを見た利用者が電話や葉書で配布装置100の管理者に連絡する。配布装置100の管理者が配布装置100にその内容を入力することにより、配布装置100に差分要求メッセージを通知する。
Using the
The single
When the single
When the composite
合成適用差分データがあると合成適用判定部242が判定した場合、差分合成部224は、CPU911を用いて、差分記憶部222が記憶した合成適用差分データを合成して、単独適用差分データを生成する。
有版データ更新部212は、CPU911を用いて、単独適用判定部241が判定した単独適用差分データもしくは差分合成部224が合成した単独適用差分データを、有版データ記憶部211が記憶した有版データに適用して、更新版コードが表わす版の有版データを生成する。
When the synthesis
The plate
有版データの更新は、CPU911に負荷がかかり、作業用にRAM914やHDD920の記憶領域を使用する。特に、有版データのデータ量が大きい場合、CPU911にかかる負荷が大きくなり、使用する記憶領域も大きくなる。このため、合成適用差分データを順次適用するよりも、合成適用差分データを合成して単独適用差分データを生成し、生成した単独適用差分データを使って有版データを更新するほうが、CPU911にかかる負荷や使用する記憶領域が少なくて済む。
The update of the plate data requires a load on the
図6は、この実施の形態における差分版記憶部125が記憶した差分コード511の一例を示す図である。
この例において、差分版記憶部125は、10個の差分コード511(複数の差分コード511を区別するため、英小文字を付加する場合がある。他のデータについても同様。)を記憶している。各差分コード511は、適用前コード512と適用後コード513との組である。適用前コード512及び適用後コード513は、いずれも版コードである。適用前コード512は、その差分コード511に対応する差分データを適用できる版の版コードを表わし、適用後コード513は、その差分コード511に対応する差分データを適用した結果として生成される版の版コードを表わす。差分記憶部222が記憶する差分コードも同様である。
例えば、差分コード511aは、対応する差分データ(順方向差分データ)が、版コード「1.0」の有版データと版コード「1.1」の有版データとの差分を表わし、版コード「1.0」の有版データに適用することにより、版コード「1.1」の有版データを生成することができることを表わす。差分コード511bは、対応する差分データ(逆方向差分データ)が、差分コード511aに対応する差分データと同じく、版コード「1.0」の有版データと版コード「1.1」の有版データとの差分を表わすが、差分コード511aに対応する差分データとは逆に、版コード「1.1」の有版データに適用することにより、版コード「1.0」の有版データを生成することができることを表わす。
この例に示したように、差分生成部113(および差分合成部133,224)が生成する差分データは、その差分データを生成する元になった2つの有版データのうち、いずれか一方にのみ適用できるものであってもよいし、この例と異なり、双方向に適用できるものであってもよい。
差分データが双方向に適用できるものである場合、1つの差分データをバージョンアップとバージョンダウンの両方に用いることができるので、差分記憶部115が、比較的少ない数の差分データさえ記憶しておけば、様々なニーズに対応できる。
これに対し、差分データが片方向にしか適用できないものである場合、差分データ1つ当たりのデータ量が少なくて済むので、配布するデータ量を抑えることができる。利用者は、多くの場合、有版データの版を更新したら更新した版を使い続けるので、元に戻したいというニーズは存在してもごくわずかである。また、利用者が更新前の有版データをバックアップしている場合には、元に戻すために差分データを用いる必要はない。したがって、最初は片方向にしか適用できない差分データを配布し、元に戻したいというニーズが発生した時点で、元に戻すための差分データを配布するほうが効率がよい。
FIG. 6 is a diagram illustrating an example of the difference code 511 stored in the difference version storage unit 125 according to this embodiment.
In this example, the difference version storage unit 125 stores ten difference codes 511 (in order to distinguish a plurality of difference codes 511, a lower case letter may be added. The same applies to other data). . Each difference code 511 is a set of a
For example, the
As shown in this example, the difference data generated by the difference generation unit 113 (and the
When the difference data can be applied in both directions, one difference data can be used for both version upgrade and version down, so the
On the other hand, if the difference data can only be applied in one direction, the amount of data per difference data can be reduced, so that the amount of data to be distributed can be suppressed. In many cases, the user continues to use the updated version after updating the version of the plate data, so there is very little need to restore it. Further, when the user backs up the pre-updated version data, it is not necessary to use the difference data to restore it. Accordingly, it is more efficient to distribute differential data that can be applied only in one direction at the beginning and to distribute the differential data to be restored when there is a need to restore it.
図7は、この実施の形態における差分データ520の一例を示す図である。
差分データ520は、1以上のコマンド521を有する。
1つのコマンド521は、命令522とサイズ523とソース524との組である。
命令522は、そのコマンド521が複写コマンドであるか追加コマンドであるかを表わす。この例では、複写コマンドの場合を「copy」、追加コマンドの場合を「data」として記述しているが、これは理解を助けるためである。実際には、複写コマンドと追加コマンドとを区別できればよいので、命令522は、例えば1ビットのデータでよい。
サイズ523は、そのコマンドにより生成するデータのサイズ(データ量)を表わす。
ソース524は、そのコマンドにより生成するデータの源泉を表わす。複写コマンドは、適用前の版の有版データからデータを複写してくることを表わし、ソース524は、例えば、複写するデータの開始位置を表わす。追加コマンドは、新たなデータを追加することを表わし、ソース524は、追加するデータそのものである。
例えば、コマンド521aは、適用前の版の有版データの0バイト目(最初)から3200バイトのデータを複写することを表わす。コマンド521bは、ソース524bが表わす1200バイトのデータを追加することを表わす。コマンド521cは、適用前の版の有版データの3200バイト目から4600バイトのデータを複写することを表わす。
コマンド521には順番があり、コマンド521の順番は、適用後の版の有版データにおいて、生成したデータを配置する順序を表わす。
例えば、コマンド521aにより生成した3200バイトのデータは、適用後の版の有版データの0バイト目(最初)から3199バイト目までの間に配置する。コマンド521bにより生成した1200バイトのデータは、適用後の版の有版データの3200バイト目から4399バイト目までの間に配置する。コマンド521cにより生成した4600バイトのデータは、適用後の版の有版データの4400バイト目から8999バイト目までの間に配置する。
FIG. 7 is a diagram showing an example of the
The
One command 521 is a set of an
The
The
The
For example, the
The command 521 has an order, and the order of the command 521 represents the order in which the generated data is arranged in the plate data of the version after application.
For example, 3200 bytes of data generated by the
図8は、この実施の形態における2つの有版データ530a,530bの関係の一例を示す図である。
この例は、図7に示した差分データ520を適用する適用前の版の有版データ530aと、差分データ520を適用した適用後の版の有版データ530bとの関係を表わしている。
有版データ530aは、全部で12800バイトのデータである。有版データ530bは、全部で13400バイトのデータである。このように、有版データ530のサイズは、版により異なっていてもよい。
有版データ530aの0バイト目(最初)から3199バイト目までの3200バイトの部分531a(複写部分)のデータは、有版データ530bの0バイト目(最初)から3199バイト目までの3200バイトの部分531b(含有部分)のデータと同一である。有版データ530の3200バイト目から7799バイト目までの4600バイトの部分532a(複写部分)のデータは、有版データ530bの4400バイト目から8999バイト目までの4600バイトの部分533b(含有部分)のデータと同一である。有版データ530aの10200バイト目から12799バイト目(最後)までの2600バイトの部分534a(複写部分)のデータは、有版データ530bの9000バイト目から11599バイト目までの2600バイトの部分534b(含有部分)のデータと同一である。
有版データ530aの7800バイト目から10199バイト目までの2400バイトの部分533aのデータと同一のデータは、有版データ530bには存在しない。また、有版データ530bの3200バイト目から4399バイト目までの1200バイトの部分532b(非含有部分)のデータ、および、有版データ530bの11600バイト目から13399バイト目(最後)までの1800バイトの部分535b(非含有部分)のデータと同一のデータは、有版データ530aには存在しない。
FIG. 8 is a diagram showing an example of the relationship between the two
This example shows the relationship between the
The
The 3200-
The same data as the data of the 2400-
図7に示したコマンド521を順に実行することにより、有版データ更新部212は、有版データ530aから有版データ530bを生成する。
まず、有版データ更新部212は、コマンド521aにしたがって、有版データ530aの部分531aのデータを、有版データ530bの部分531bに複写する。次に、有版データ更新部212は、コマンド521bにしたがって、ソース524bが表わすデータを、有版データ530bの部分532bに追加する。次に、有版データ更新部212は、コマンド521cにしたがって、有版データ530aの部分532aのデータを、有版データ530bの部分533bに複写する。次に、有版データ更新部212は、コマンド521dにしたがって、有版データ530aの部分534aのデータを、有版データ530bの部分534bに複写する。最後に、有版データ更新部212は、コマンド521eにしたがって、ソース524eが表わすデータを、有版データ530bの部分535bに追加する。
By executing the commands 521 shown in FIG. 7 in order, the plate
First, the plate
なお、複写する部分の順序が入れ替わっていてもよいし、複写元の部分が重複していてもよい。 Note that the order of the parts to be copied may be changed, and the parts of the copy source may be duplicated.
差分データがこのような形式である場合、適用前の版の有版データから適用後の版の有版データを生成することはできるが、適用後の版の有版データから適用前の版の有版データを生成することはできない。適用前の版の有版データのうち、適用後の版の有版データに複写されない部分(この例では、部分533a)のデータが失われるからである。すなわち、この形式の差分データは、片方向にしか適用できない差分データである。
When the difference data is in such a format, it is possible to generate the version data of the version after application from the version data of the version before application, but from the version data of the version after application, Version data cannot be generated. This is because data of a portion (in this example,
差分生成部113は、CPU911を用いて、2つの有版データを比較して、一方の版から他方の版を生成するための差分データを生成する。例えば、古い版を適用前の版とし、新しい版を適用語の版として、差分生成部113は、古い版から新しい版を生成するための差分データを生成する。しかし、上述したようにバージョンダウンしたいという要望も存在する可能性を考慮して、差分生成部113は、古い版から新しい版を生成するための差分データだけでなく、新しい版を適用前の版とし、古い版を適用後の版として、新しい版から古い版を生成するための差分データを生成する構成とするのが好ましい。
差分記憶部115,222は、このような差分データを複数記憶する。
差分合成部133,224は、差分記憶部115,222が記憶した差分データを解釈して、合成した新しい差分データを生成する。
有版データ更新部212は、差分記憶部222が記憶した差分データを解釈して、順番どおりにコマンドを実行することにより、有版データ記憶部211が記憶した有版データを更新し、更新後の版の有版データを生成する。
The
The
The
The plate
図9は、この実施の形態における差分生成処理S610の流れの一例を示すフローチャート図である。
差分生成処理S610において、差分生成部113は、CPU911を用いて、2つの有版データ530から差分データを生成する。以下では、旧版データを新版データに更新するための差分データを差分生成部113が生成する手順について説明する。新版データを旧版データに更新するための差分データを生成する手順は、旧版データと新版データとを逆にすればよいので、説明を省略する。
差分生成処理S610は、新版単位取得工程S611、旧版単位取得工程S613、単位比較工程S615、一致長更新工程S617、2つの一致長判定工程S621,S631、2つの不一致判定工程S623,S633、3つの追加コマンド生成工程S625,S635,S639、2つの複写コマンド生成工程S627,S637を有する。
FIG. 9 is a flowchart showing an example of the flow of the difference generation process S610 in this embodiment.
In the difference generation process S610, the
The difference generation process S610 includes a new version unit acquisition step S611, an old version unit acquisition step S613, a unit comparison step S615, a match length update step S617, two match length determination steps S621, S631, two mismatch determination steps S623, S633, Additional command generation steps S625, S635, S639 and two copy command generation steps S627, S637 are included.
新版単位取得工程S611において、差分生成部113は、CPU911を用いて、新版データの最初から順に、1つの単位となるデータ量の部分(以下「新版単位データ」と呼ぶ。)を取得する。1つの単位となるデータ量とは、例えば1バイトでもよいし、1キロバイトでもよい。1つの単位となるデータ量を小さくすれば、その分、旧版データと新版データとで一致する部分が多くなることが予想されるので、差分データのデータ量が小さくなる。逆に、1つの単位となるデータ量を大きくすれば、差分データのデータ量は大きくなるが、差分生成処理S610によってCPU911にかかる負荷が小さくなる。同様に、差分合成部133,224が差分データを合成する処理によってCPU911にかかる負荷も小さくなる。
新版データの最後まで到達し、差分生成部113が新版単位データを取得しなかった場合、差分生成部113は、一致長判定工程S631へ進む。
差分生成部113が新版単位データを取得した場合、差分生成部113は、旧版単位取得工程S613へ進む。
In the new version unit acquisition step S611, the
When the end of the new version data is reached and the
When the
旧版単位取得工程S613において、差分生成部113は、CPU911を用いて、旧版データの最初から順に、新版単位データと同じデータ量の部分(以下「旧版単位データ」と呼ぶ。)を取得する。
旧版データの最後に到達し、差分生成部113が旧版単位データを取得しなかった場合、差分生成部113は、一致長判定工程S621へ進む。
差分生成部113が旧版単位データを取得した場合、差分生成部113は、単位比較工程S615へ進む。
In the old version unit acquisition step S613, the
When the end of the old version data is reached and the
When the
単位比較工程S615において、差分生成部113は、CPU911を用いて、新版単位取得工程S611で取得した新版単位データと、旧版単位取得工程S613で取得した旧版単位データとを比較する。
新版単位データと旧版単位データとが一致すると差分生成部113が判定した場合、差分生成部113は、一致長更新工程S617へ進む。
新版単位データと旧版単位データとが一致しないと差分生成部113が判定した場合、差分生成部113は、旧版単位取得工程S613に戻り、次の旧版単位データを取得する。
In the unit comparison step S615, the
When the
When the
一致長更新工程S617において、差分生成部113は、CPU911を用いて、新版単位データと一致した旧版単位データの位置(以下「一致位置」と呼ぶ。)と、それより前の新版単位データと旧版単位データとが連続して一致していた数(以下「一致長」と呼ぶ。)とを表わすデータ(以下「一致長データ」と呼ぶ。)を生成する。差分生成部113は、RAM914を用いて、生成した一致長データを記憶する。新版単位データと一致する旧版単位データが複数ある場合もあるので、差分生成部113は、一つの新版単位データについて、複数の一致長データを記憶する場合がある。
例えば、差分生成部113は、CPU911を用いて、新版単位取得工程S611で取得した新版単位データより一つ前の新版単位データについてRAM914を用いて記憶した一致長データを取得する。差分生成部113は、CPU911を用いて、取得した一致長データのなかから、一致長データが表わす一致位置が、旧版単位取得工程S613で取得した旧版単位データより一つ前の旧版単位データの位置である一致長データを抽出する。差分生成部113は、CPU911を用いて、抽出した一致長データが表わす一致長に1を加えた和を算出し、算出した和を一致長に設定する。一つ前の新版単位データについて記憶した一致長データがない場合や、取得した一致長データのなかに、一致長データが表わす一致位置が一つ前の旧版単位データの位置である一致長データがない場合、差分生成部113は、CPU911を用いて、1を一致長に設定する。差分生成部113は、CPU911を用いて、旧版単位取得工程S613で取得した旧版単位データの位置と、設定した一致長とを表わす一致長データを生成し、RAM914を用いて、生成した一致長データを記憶する。
その後、差分生成部113は、旧版単位取得工程S613に戻り、次の旧版単位データを取得する。
In the match length update step S617, the
For example, the
Thereafter, the
一致長判定工程S621において、差分生成部113は、CPU911を用いて、新版単位取得工程S611で取得した新版単位データについて一致長更新工程S617で記憶した一致長データのなかから、一致長データが表わす一致長が最も大きい一致長(以下「最大一致長」と呼ぶ。)を算出する。現在の新版単位データについて記憶した一致長データがない場合、差分生成部113は、CPU911を用いて、0を最大一致長に設定する。差分生成部113は、RAM914を用いて、算出した最大一致長を記憶する。
差分生成部113は、CPU911を用いて、算出した最大一致長と、新版単位取得工程S611で取得した新版単位データより一つ前の新版単位データについてRAM914を用いて記憶した最大一致長とを比較する。
算出した最大一致長が、記憶した一つ前の最大一致長より小さい場合、一つ前の新版単位データの位置で、旧版データと新版データとが一致する部分が途切れたことを意味する。差分生成部113は、複写コマンドを生成するため、不一致判定工程S623へ進む。
算出した最大一致長が、記憶した一つ前の最大一致長以上である場合、差分生成部113は、新版単位取得工程S611に戻り、次の新版単位データを取得する。
なお、一致する部分のサイズが小さい場合、複写コマンドを生成するよりも、前後の不一致部分と合わせて一つの追加コマンドを生成したほうが、差分データのデータ量が小さくなる場合がある。このため、算出した最大一致長が、記憶した一つ前の最大一致長より小さい場合であっても、記憶した一つ前の最大一致長が所定の閾値以下である場合は、新版単位取得工程S611に戻る構成であってもよい。
In the match length determination step S621, the
The
If the calculated maximum match length is smaller than the stored previous maximum match length, it means that the portion where the old version data and the new version data match is interrupted at the position of the previous new version unit data. The
If the calculated maximum match length is equal to or greater than the stored previous maximum match length, the
Note that if the size of the matching portion is small, the amount of difference data may be smaller when one additional command is generated together with the preceding and following mismatching portions than when the copy command is generated. Therefore, even if the calculated maximum matching length is smaller than the stored previous maximum matching length, if the stored previous maximum matching length is equal to or less than a predetermined threshold, the new version unit acquisition step The structure which returns to S611 may be sufficient.
不一致判定工程S623において、差分生成部113は、CPU911を用いて、一つ前の新版単位データについてRAM914を用いて記憶した最大一致長に基づいて、新版データにおける一致部分の開始位置を算出する。差分生成部113は、CPU911を用いて、算出した開始位置を、既に生成したコマンドにより生成される新版データの終了位置と比較する。
算出した開始位置が、既に生成したコマンドにより生成される新版データの終了位置の次の位置である場合、一致部分が連続していることを意味する。差分生成部113は、複写コマンド生成工程S627へ進む。
算出した開始位置が、既に生成したコマンドにより生成される新版データの終了位置の次の位置よりもあとである場合、一致部分の間に不一致部分があることを意味する。差分生成部113は、不一致部分について追加コマンドを生成するため、追加コマンド生成工程S625へ進む。
In the mismatch determination step S623, the
When the calculated start position is the position next to the end position of the new edition data generated by the command that has already been generated, it means that the matching portions are continuous. The
If the calculated start position is after the position next to the end position of the new version data generated by the command that has already been generated, it means that there is a non-matching part between the matching parts. The
追加コマンド生成工程S625において、差分生成部113は、CPU911を用いて、追加コマンドを生成する。
例えば、差分生成部113は、CPU911を用いて、不一致判定工程S623で算出した開始位置と、既に生成したコマンドにより生成される新版データの終了位置とに基づいて、不一致部分のサイズを算出し、新版データのなかから追加する不一致部分のデータを取得する。差分生成部113は、CPU911を用いて、算出したサイズをサイズ523に設定し、取得したデータをソース524に設定した追加コマンドを生成する。
差分生成部113は、CPU911を用いて、生成中の差分データの後ろに、生成した追加コマンドを追加する。差分生成部113は、HDD920を用いて、生成した追加コマンドを追加した差分データを記憶する。
In the additional command generation step S625, the
For example, the
The
複写コマンド生成工程S627において、差分生成部113は、CPU911を用いて、複写コマンドを生成する。
例えば、差分生成部113は、CPU911を用いて、新版単位取得工程S611で取得した新版単位データより一つ前の新版単位データについて記憶した一致長データのなかから、一致長データが表わす一致長が、一つ前の新版単位データについて記憶した最大一致長に一致する一致長データを取得する。差分生成部113は、CPU911を用いて、取得した一致長データが表わす位置に基づいて、旧版データから複写する一致部分の開始位置を算出する。差分生成部113は、CPU911を用いて、一つ前の新版単位データについて記憶した最大一致長をサイズ523に設定し、算出した開始位置をソース524に設定した追加コマンドを生成する。
差分生成部113は、CPU911を用いて、生成中の差分データの後ろに、生成した複写コマンドを追加する。差分生成部113は、HDD920を用いて、生成した複写コマンドを追加した差分データを記憶する。
差分生成部113は、RAM914を用いて、既に生成したコマンドにより生成できる新版データの終了位置として、新版単位取得工程S611で取得した新版単位データの一つ前の新版単位データの終了位置を記憶する。
その後、差分生成部113は、新版単位取得工程S611に戻り、次の新版単位データを取得する。
In the copy command generation step S627, the
For example, the
The
The
Thereafter, the
一致長判定工程S631〜複写コマンド生成工程S637は、新版データの最後まで処理した後、コマンドをまだ生成していない部分についてコマンドを生成するための処理であり、基本的には、一致長判定工程S621〜複写コマンド生成工程S627と同じである。そのため、詳しい説明は省略し、概要を説明する。 The match length determination step S631 to the copy command generation step S637 are processes for generating a command for a portion for which a command has not yet been generated after processing to the end of the new version data. S621 to the copy command generation step S627. Therefore, a detailed description is omitted and an outline is described.
一致長判定工程S631において、差分生成部113は、CPU911を用いて、新版単位取得工程S611で最後に取得した新版単位データについて最大一致長を算出する。
算出した最大一致長が0(あるいは所定の閾値以下)である場合、新版データの最後の部分が不一致部分であることを意味する。差分生成部113は、追加コマンド生成工程S639へ進む。
算出した最大一致長が0(あるいは所定の閾値)より大きい場合、新版データの最後の部分が一致部分であることを意味する。差分生成部113は、不一致判定工程S633へ進む。
In the match length determination step S631, the
If the calculated maximum matching length is 0 (or less than a predetermined threshold), it means that the last part of the new edition data is a mismatching part. The
If the calculated maximum matching length is greater than 0 (or a predetermined threshold), it means that the last part of the new edition data is a matching part. The
不一致判定工程S633において、差分生成部113は、CPU911を用いて、最後の一致部分の前に不一致部分があるか否かを判定する。
不一致部分があると判定した場合、差分生成部113は、追加コマンド生成工程S635へ進む。
不一致部分がなく、一致部分が連続していると判定した場合、差分生成部113は、複写コマンド生成工程S637へ進む。
In the mismatch determination step S633, the
If it is determined that there is a mismatched portion, the
If it is determined that there is no mismatched part and the matched part is continuous, the
追加コマンド生成工程S635において、差分生成部113は、CPU911を用いて、追加コマンドを生成する。
In the additional command generation step S635, the
複写コマンド生成工程S637において、差分生成部113は、CPU911を用いて、複写コマンドを生成する。
その後、差分生成部113は、差分生成処理S610を終了する。
In the copy command generation step S637, the
Thereafter, the
追加コマンド生成工程S639において、差分生成部113は、CPU911を用いて、追加コマンドを生成する。
例えば、差分生成部113は、CPU911を用いて、既に生成したコマンドにより生成される新版データの終了位置に基づいて、不一致部分のサイズを算出し、新版データのなかから追加する不一致部分のデータを取得する。差分生成部113は、CPU911を用いて、算出したサイズをサイズ523に設定し、取得したデータをソース524に設定した追加コマンドを生成する。
差分生成部113は、CPU911を用いて、生成中の差分データの後ろに、生成した追加コマンドを追加する。差分生成部113は、HDD920を用いて、生成した追加コマンドを追加した差分データを記憶する。
その後、差分生成部113は、差分生成処理S610を終了する。
In the additional command generation step S639, the
For example, the
The
Thereafter, the
なお、差分生成処理S610は、上記説明した手順に限らず、他の手順で実行する構成であってもよい。 Note that the difference generation process S610 is not limited to the above-described procedure, and may be configured to be executed by another procedure.
図10は、この実施の形態におけるデータ更新処理S650の流れの一例を示すフローチャート図である。
データ更新処理S650において、有版データ更新部212は、差分記憶部222が記憶した差分データを、有版データ記憶部211が記憶した有版データに適用して、更新版の有版データを生成する。データ更新処理S650は、コマンド取得工程S651、データ追加工程S653、データ複写工程S655、データ更新工程S657を有する。
FIG. 10 is a flowchart showing an example of the flow of the data update process S650 in this embodiment.
In the data update process S650, the plate
コマンド取得工程S651において、有版データ更新部212は、CPU911を用いて、差分記憶部222が記憶した差分データのなかから、有版データ記憶部211が記憶した有版データに適用する差分データを取得する。有版データ更新部212は、CPU911を用いて、取得した差分データの最初の位置にポインタを設定する。有版データ更新部212は、RAM914を用いて、設定したポインタを記憶する。
有版データ更新部212は、コマンド取得工程S651で取得した差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、コマンドの命令522と、サイズ523とを取得する。
ポインタが表わす位置が差分データの最後であり、有版データ更新部212が命令522を取得しなかった場合、有版データ更新部212は、データ更新工程S657へ進む。
有版データ更新部212が命令522とサイズ523とを取得した場合、有版データ更新部212は、CPU911を用いて、取得したサイズ523の次の位置(ソース524の位置)へポインタを進める。有版データ更新部212は、RAM914を用いて、進めたポインタを記憶する。有版データ更新部212は、取得した命令522に基づいて、そのコマンドが複写コマンドであるか追加コマンドであるかを判定する。
そのコマンドが追加コマンドである場合、有版データ更新部212は、データ追加工程S653へ進む。
そのコマンドが複写コマンドである場合、有版データ更新部212は、データ複写工程S655へ進む。
In the command acquisition step S651, the plate
The plate
When the position indicated by the pointer is the last of the difference data and the plate
When the plate
If the command is an addition command, the plate
If the command is a copy command, the plate
データ追加工程S653において、有版データ更新部212は、コマンド取得工程S651で取得した差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、サイズ523が表わすバイト数のデータをソース524として取得する。有版データ更新部212は、CPU911を用いて、取得したソース524の次の位置(次のコマンドの命令522の位置または差分データの最後)へポインタを進める。有版データ更新部212は、RAM914を用いて、進めたポインタを記憶する。
有版データ更新部212は、CPU911を用いて、生成中の有版データの後ろに、取得したソース524を追加する。有版データ更新部212は、HDD920を用いて、ソース524を追加した生成中の有版データを記憶する。
その後、有版データ更新部212は、コマンド取得工程S651に戻り、次のコマンドを処理する。
In the data addition step S653, the plate
The plate
Thereafter, the plate
データ複写工程S655において、有版データ更新部212は、コマンド取得工程S651で取得した差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、ソース524を取得する。有版データ更新部212は、CPU911を用いて、取得したソース524の次の位置(次のコマンドの命令522の位置または差分データの最後)へポインタを進める。有版データ更新部212は、RAM914を用いて、進めたポインタを記憶する。
有版データ更新部212は、CPU911を用いて、有版データ記憶部211が記憶した有版データから、ソース524が表わす開始位置からサイズ523が表わすバイト数のデータを取得する。有版データ更新部212は、CPU911を用いて、生成中の有版データの後ろに、取得したデータを追加する。有版データ更新部212は、HDD920を用いて、データを追加した生成中の有版データを記憶する。
その後、有版データ更新部212は、コマンド取得工程S651に戻り、次のコマンドを処理する。
In the data copying step S655, the plate
The plate
Thereafter, the plate
データ更新工程S657において、有版データ更新部212は、HDD920を用いて記憶した生成中の有版データを、更新後の有版データとして、CPU911を用いて、有版データ記憶部211に通知する。有版データ記憶部211は、HDD920を用いて、有版データ更新部212から通知された更新後の有版データを記憶する。
In the data update step S657, the plate
このように、有版データ更新部212は、差分データが表わすコマンドを最初から順に解釈し、解釈したコマンドにしたがって、更新後の有版データを生成する。
As described above, the plate
図11は、この実施の形態における差分合成処理S670の流れの一例を示すフローチャート図である。
差分合成処理S670において、差分合成部133は、差分記憶部115が記憶した2つの差分データを合成して、新しい差分データを生成する。なお、差分記憶部222が記憶した2つの差分データを合成して差分合成部224が新しい差分データを生成する処理の流れも、差分合成処理S670と同じである。
差分合成処理S670は、コマンド取得工程S671、2つの追加コマンド生成工程S673,S677、複写部分取得工程S675、複写コマンド生成工程S679を有する。
FIG. 11 is a flowchart showing an example of the flow of the difference synthesis process S670 in this embodiment.
In the difference combining process S670, the
The difference composition processing S670 includes a command acquisition step S671, two additional command generation steps S673, S677, a copy part acquisition step S675, and a copy command generation step S679.
以下の説明において、有版データに順次適用できる2つの差分データのうち、初めに適用するほうを第一の差分データ、後から適用するほうを第二の差分データと呼ぶ。また、合成により生成される差分データを第三の差分データと呼ぶ。すなわち、第一の差分データが、有版データの第一の版に適用して第二の版を生成するための差分データであるとすると、第二の差分データは、有版データの第二の版に適用して第三の版を生成するための差分データであり、第三の差分データは、有版データの第一の版に適用して第三の版を生成するための差分データである。 In the following description, of the two difference data that can be sequentially applied to the plate data, the one that is applied first is called first difference data, and the one that is applied later is called second difference data. The difference data generated by the synthesis is referred to as third difference data. That is, if the first difference data is difference data for generating the second version by applying it to the first version of the plate data, the second difference data is the second of the plate data. Difference data for generating a third version by applying to the first version, and the third difference data is difference data for generating the third version by applying to the first version of the plate data It is.
コマンド取得工程S671において、差分合成部133は、CPU911を用いて、差分記憶部115が記憶した差分データのなかから、第二の差分データを取得する。差分合成部133は、CPU911を用いて、取得した差分データの最初の位置にポインタを設定する。差分合成部133は、RAM914を用いて、設定したポインタを記憶する。
差分合成部133は、コマンド取得工程S671で取得した第二の差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、コマンドの命令522と、サイズ523とを取得する。
ポインタが表わす位置が第二の差分データの最後であり、差分合成部133が命令522を取得しなかった場合、差分合成部133は、差分合成処理S670を終了する。
差分合成部133が命令522とサイズ523とを取得した場合、差分合成部133は、CPU911を用いて、取得したサイズ523の次の位置(ソース524の位置)へポインタを進める。差分合成部133は、RAM914を用いて、進めたポインタを記憶する。差分合成部133は、取得した命令522に基づいて、そのコマンドが複写コマンドであるか追加コマンドであるかを判定する。
そのコマンドが追加コマンドである場合、差分合成部133は、追加コマンド生成工程S673へ進む。
そのコマンドが複写コマンドである場合、差分合成部133は、複写部分取得工程S675へ進む。
In the command acquisition step S671, the
The
When the position indicated by the pointer is the last of the second difference data and the
When the
If the command is an additional command, the
If the command is a copy command, the
追加コマンド生成工程S673において、差分合成部133は、コマンド取得工程S671で取得した第二の差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、サイズ523が表わすバイト数のデータをソース524として取得する。差分合成部133は、CPU911を用いて、取得したソース524の次の位置(次のコマンドの命令522の位置または第二の差分データの最後)へポインタを進める。差分合成部133は、RAM914を用いて、進めたポインタを記憶する。
差分合成部133は、CPU911を用いて、取得したサイズ523をサイズ523に設定し、取得したソース524をソース524に設定した追加コマンドを生成する。すなわち、差分合成部133は、取得した追加コマンドを複製する。差分合成部133は、CPU911を用いて、生成中の第三の差分データの後ろに、生成した追加コマンドを追加する。差分合成部133は、HDD920を用いて、生成した追加コマンドを追加した第三の差分データを記憶する。
その後、差分合成部133は、コマンド取得工程S671に戻り、次のコマンドを処理する。
In the additional command generation step S673, the
The
Thereafter, the
複写部分取得工程S675において、差分合成部133は、コマンド取得工程S671で取得した第二の差分データのうち、RAM914を用いて記憶したポインタが表わす位置から、CPU911を用いて、ソース524を取得する。差分合成部133は、CPU911を用いて、取得したソース524の次の位置(次のコマンドの命令522の位置または差分データの最後)へポインタを進める。差分合成部133は、RAM914を用いて、進めたポインタを記憶する。
差分合成部133は、CPU911を用いて、差分記憶部115が記憶した差分データのなかから、第一の差分データを取得する。差分合成部133は、CPU911を用いて、取得した第一の差分データに含まれるコマンドを解釈して、第一の差分データに含まれるコマンドのなかから、有版データの第二の版において、取得したソース524が表わす開始位置からサイズ523が表わすバイト数のデータ(以下「複写部分データ」と呼ぶ。)を生成するコマンドを抽出する。複写部分データを生成するコマンドは、1つとは限らず、複数ある場合がある。また、複写部分データを生成するコマンドは、複写部分データだけでなく、その前後のデータも合わせて生成するものである場合がある。
例えば、差分合成部133は、CPU911を用いて、第一の差分データの最初から順にコマンドを1つずつ取得する。最初のコマンドが生成するデータの範囲の開始位置は「0」である。二番目以降のコマンドが生成するデータの範囲の開始位置は、それより前のコマンドのサイズ523の合計である。差分合成部133は、CPU911を用いて、取得したコマンドのサイズ523を累計することにより、そのコマンドにより生成されるデータの開始位置を算出する。差分合成部133は、CPU911を用いて、算出した開始位置とサイズ523とに基づいて、そのコマンドにより生成されるデータが、有版データの第二の版において複写部分データに含まれるか否かを判定する。
差分合成部133は、CPU911を用いて、第一の差分データから抽出したコマンドのなかから、コマンドを1つ取得する。第一の差分データから抽出したコマンドが複数である場合、差分合成部133は、複数のコマンドを最初から順に1つずつ処理する。
第一の差分データから抽出したコマンドの処理がすべて終了し、取得すべきコマンドがない場合、差分合成部133は、コマンド取得工程S671に戻り、第二の差分データにおける次のコマンドを処理する。
第一の差分データから抽出したコマンドを取得した場合、差分合成部133は、CPU911を用いて、取得したコマンドが複写コマンドであるか追加コマンドであるかを判定する。
取得したコマンドが追加コマンドである場合、差分合成部133は、追加コマンド生成工程S677へ進む。
取得したコマンドが複写コマンドである場合、差分合成部133は、複写コマンド生成工程S679へ進む。
In the copy part acquisition step S675, the
The
For example, the
The
If all of the commands extracted from the first difference data have been processed and there is no command to be acquired, the
When the command extracted from the first difference data is acquired, the
If the acquired command is an additional command, the
If the acquired command is a copy command, the
追加コマンド生成工程S677において、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した追加コマンドに基づいて、追加コマンドを生成する。
例えば、複写部分取得工程S675で取得した追加コマンドにより生成されるデータが、有版データの第二の版において複写部分データのなかに完全に含まれている場合、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した追加コマンドのサイズ523をサイズ523に設定し、ソース524をソース524に設定した追加コマンドを生成する。すなわち、差分合成部133は、複写部分取得工程S675で取得した追加コマンドを複製する。
複写部分取得工程S675で取得した追加コマンドにより生成されるデータが、有版データの第二の版において複写部分データに含まれない部分を含む場合、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した追加コマンドのソース524のなかから、複写部分データに含まれる部分のデータを切り出す。差分合成部133は、CPU911を用いて、切り出したデータのサイズをサイズ523に設定し、切り出したデータをソース524に設定した追加コマンドを生成する。
差分合成部133は、CPU911を用いて、生成中の第三の差分データの後ろに、生成した追加コマンドを追加する。差分合成部133は、HDD920を用いて、生成した追加コマンドを追加した第三の差分データを記憶する。
その後、差分合成部133は、複写部分取得工程S675に戻り、第一の差分データから抽出した次のコマンドを処理する。
In the additional command generation step S677, the
For example, if the data generated by the additional command acquired in the copy part acquisition step S675 is completely included in the copy part data in the second version of the plate data, the
When the data generated by the additional command acquired in the copy part acquisition step S675 includes a part not included in the copy part data in the second version of the plate data, the
The
Thereafter, the
複写コマンド生成工程S679において、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した複写コマンドに基づいて、複写コマンドを生成する。
例えば、複写部分取得工程S675で取得した複写コマンドにより生成されるデータが、有版データの第二の版において複写部分データのなかに完全に含まれている場合、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した複写コマンドのサイズ523をサイズ523に設定し、ソース524をソース524に設定した複写コマンドを生成する。すなわち、差分合成部133は、複写部分取得工程S675で取得した複写コマンドを複製する。
複写部分取得工程S675で取得した複写コマンドにより生成されるデータが、有版データの第二の版において複写部分データより前の部分のデータ(以下「前部分データ」と呼ぶ。)を含む場合、差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した複写コマンドにより生成されるデータのうち、複写部分に含まれる部分のデータ(以下「承継部分データ」と呼ぶ。)のサイズを算出する。また、差分合成部133は、CPU911を用いて、前部分データのサイズを算出する。差分合成部133は、CPU911を用いて、複写部分取得工程S675で取得した複写コマンドのソース524に、算出した前部分データのサイズを加えた和を算出する。差分合成部133は、CPU911を用いて、算出した承継部分データのサイズをサイズ523に設定し、算出した和をソース524に設定した複写コマンドを生成する。
複写部分取得工程S675で取得した複写コマンドにより生成されるデータが、前部分データを含まず、有版データの第二の版において複写部分データより後の部分のデータ(以下「後部分データ」と呼ぶ。)を含む場合、差分合成部133は、CPU911を用いて、承継部分データのサイズを算出する。差分合成部133は、CPU911を用いて、算出したサイズをサイズ523に設定し、複写部分取得工程S675で取得した複写コマンドのソース524をソース524に設定した複写コマンドを生成する。
差分合成部133は、CPU911を用いて、生成中の第三の差分データの後ろに、生成した複写コマンドを追加する。差分合成部133は、HDD920を用いて、生成した複写コマンドを追加した第三の差分データを記憶する。
その後、差分合成部133は、複写部分取得工程S675に戻り、第一の差分データから抽出した次のコマンドを処理する。
In the copy command generation step S679, the
For example, if the data generated by the copy command acquired in the copy part acquisition step S675 is completely included in the copy part data in the second version of the plate data, the
When the data generated by the copy command acquired in the copy portion acquisition step S675 includes data of a portion preceding the copy portion data (hereinafter referred to as “previous portion data”) in the second version of the plate data. The
The data generated by the copy command acquired in the copy part acquisition step S675 does not include the previous part data, and the data after the copy part data in the second version of the plate data (hereinafter referred to as “rear part data”). The
The
Thereafter, the
このように、差分合成部133(および差分合成部224)は、差分データを適用する有版データを用いることなく、差分データを合成する。差分データのデータ量は、有版データのデータ量より小さいので、差分データを有版データに適用する場合と比較して、使用するRAM914やHDD920の記憶領域の容量が少なくて済み、CPU911にかかる負荷が小さくなる。
特に、端末装置200には、CPU911の処理能力が低いものやHDD920の記憶容量が小さいものが存在する。有版データに複数の差分データを順次適用して有版データを更新するよりも、差分データを合成してから、有版データに1回だけ適用するほうが、CPU911にかかる負荷が小さく、使用する記憶領域の容量が少なくて済むので、処理速度が向上し、端末装置200が並列して実行する他の処理に影響を与えることなく、有版データを更新することができる。
Thus, the difference synthesizer 133 (and the difference synthesizer 224) synthesizes the difference data without using the plate data to which the difference data is applied. Since the data amount of the difference data is smaller than the data amount of the plate data, the capacity of the storage area of the
In particular, the
図12は、この実施の形態における差分データ520bの一例を示す図である。
図13は、この実施の形態における差分データ520cの一例を示す図である。
図7に示した差分データ520が第一の差分データであるものとし、図12に示した差分データ520bが第二の差分データであるものとする。差分データ520cは、差分合成部133(あるいは差分合成部224)が差分データ520と差分データ520bとを合成して生成する第三の差分データである。
以下、図11のフローチャートを参照しつつ、差分合成部133の動作の具体例を説明する。
FIG. 12 is a diagram showing an example of the
FIG. 13 is a diagram showing an example of the
Assume that the
Hereinafter, a specific example of the operation of the
コマンド取得工程S671において、差分合成部133は、差分データ520bから最初のコマンド521fの命令522「copy」、サイズ523「4000」を取得する。
In the command acquisition step S671, the
命令522「copy」は複写コマンドを表わすので、複写部分取得工程S675へ進む。
差分合成部133は、コマンド521fのソース524「0」を取得する。差分合成部133は、差分データ520のなかから、有版データ530bの0バイト目(最初)から3999バイト目までの4000バイトの部分のデータ(複写部分データ)を生成するコマンドを抽出する。
差分データ520には、5つのコマンド521a〜521eが含まれる。コマンド521aは、有版データ530bの0バイト目から3199バイト目までの3200バイトの部分531bのデータを生成するコマンドである。コマンド521bは、有版データ530bの3200バイト目から4399バイト目までの1200バイトの部分532bのデータを生成するコマンドである。コマンド521cは、有版データ530bの4400バイト目から8999バイト目までの4600バイトの部分533bのデータを生成するコマンドである。コマンド521dは、有版データ530bの9000バイト目から11599バイト目までの2600バイトの部分534bのデータを生成するコマンドである。コマンド521eは、有版データ530bの11600バイト目から13399バイト目(最後)までの1800バイトの部分535bのデータを生成するコマンドである。したがって、差分合成部133は、2つのコマンド521a,521bを抽出する。
差分合成部133は、抽出したコマンドを前から順に処理するため、まず、コマンド521aを取得する。
Since the
The
The
The
なお、差分合成部133は、差分合成処理S670の開始に先立ち、CPU911を用いて、あらかじめ差分データ520のどのコマンドが有版データ530bのどの位置のデータを生成するものであるかを算出しておく構成であってもよい。差分合成部133は、算出した結果を表わすテーブルなど検索しやすい形式のデータを生成して、RAM914を用いて記憶しておく。複写部分取得工程S675において、差分合成部133は、あらかじめ記憶したデータを検索することにより、コマンドを抽出する。これにより、複写部分取得工程S675の処理を速くすることができる。
Prior to the start of the difference synthesis process S670, the
コマンド521aは複写コマンドなので、複写コマンド生成工程S679へ進む。
コマンド521aにより生成される3200バイトのデータは、有版データ530bにおいて複写部分データに完全に含まれるので、差分合成部133は、コマンド521aを複製して、複写コマンド521jを生成する。
Since the
Since the 3200-byte data generated by the
複写部分取得工程S675に戻り、差分合成部133は、次のコマンド521bを取得する。
コマンド521bは追加コマンドなので、追加コマンド生成工程S677へ進む。
コマンド521bにより生成される1200バイトのデータのうち、有版データ530bにおいて複写部分データに含まれるのは前半の800バイトだけである。差分合成部133は、ソース524bから前半の800バイトを切り出す。差分合成部133は、切り出したデータのサイズ「800」をサイズ523に設定し、切り出したデータをソース524kに設定した追加コマンド521kを生成する。
Returning to the copy part acquisition step S675, the
Since the
Of the 1200-byte data generated by the
複写部分取得工程S675に戻り、抽出した2つのコマンド521a,521bの処理が終わったので、コマンド取得工程S671に戻る。
差分合成部133は、差分データ520bから次のコマンド521gの命令522「copy」、サイズ523「4400」を取得する。
Returning to the copy part acquisition step S675, since the processing of the extracted two
The
命令522「copy」は複写コマンドを表わすので、再び複写部分取得工程S675へ進む。
差分合成部133は、コマンド521gのソース524「5200」を取得する。差分合成部133は、差分データ520のなかから、有版データ530bの5200バイト目から4400バイトの部分のデータ(複写部分データ)を生成するコマンドである2つのコマンド521c,521dを抽出する。
差分合成部133は、抽出したコマンドを前から順に処理するため、まず、コマンド521cを取得する。
Since the
The
First, the
コマンド521cは複写コマンドなので、複写コマンド生成工程S679へ進む。
コマンド521cにより生成される4600バイトのデータのうち、有版データ530bにおいて複写部分データに含まれる部分のデータ(承継部分データ)は後半の3800バイトだけであり、それより前の800バイトは複写部分データに含まれない前部分データである。差分合成部133は、承継部分データのサイズ「3800」をサイズ523に設定し、コマンド521cのソース524「3200」に前部分データのサイズ「800」を加えた和「4000」をソース524に設定した複写コマンド521lを生成する。
Since the
Of the 4600 bytes of data generated by the
複写部分取得工程S675に戻り、差分合成部133は、次のコマンド521dを取得する。
コマンド521dは複写コマンドなので、複写コマンド生成工程S679へ進む。
コマンド521dにより生成される2600バイトのデータのうち、有版データ530bにおいて複写部分データに含まれる部分のデータ(承継部分データ)は前半の600バイトだけである。差分合成部133は、承継部分データのサイズ「600」をサイズ523に設定し、コマンド521dのソース524「10200」をソース524に設定した複写コマンド521mを生成する。
Returning to the copy part acquisition step S675, the
Since the
Of the 2600-byte data generated by the
複写部分取得工程S675に戻り、抽出した2つのコマンド521c,521dの処理が終わったので、コマンド取得工程S671に戻る。
差分合成部133は、差分データ520bから、次のコマンド521hの命令522「data」と、サイズ523「3000」とを取得する。
Returning to the copy part acquisition step S675, since the processing of the two extracted
The
命令522「data」は追加コマンドを表わすので、追加コマンド生成工程S673へ進む。
差分合成部133は、コマンド521hを複製して、コマンド521nを生成する。
Since the
The
コマンド取得工程S671に戻り、差分合成部133は、差分データ520bから、次のコマンド521iの命令522「copy」と、サイズ523「2800」とを取得する。
Returning to the command acquisition step S671, the
命令522「copy」は複写コマンドを表わすので、複写部分取得工程S675へ進む。
差分合成部133は、コマンド521iのソース524「10600」を取得する。差分合成部133は、差分データ520のなかから、有版データ530bの10600バイト目から2800バイトの部分のデータ(複写部分データ)を生成するコマンドである2つのコマンド521d,521eを抽出する。
差分合成部133は、抽出したコマンドを前から順に処理するため、まず、コマンド521dを取得する。
Since the
The
First, the
コマンド521dは複写コマンドなので、複写コマンド生成工程S679へ進む。
コマンド521dにより生成される2600バイトのデータのうち、有版データ530bにおいて複写部分データに含まれる部分のデータ(承継部分データ)は後半の1000バイトだけであり、それより前の1600バイトは複写部分データに含まれない前部分データである。差分合成部133は、承継部分データのサイズ「1000」をサイズ523に設定し、コマンド521cのソース524「10200」に前部分データのサイズ「1600」を加えた和「11800」をソース524に設定した複写コマンド521oを生成する。
Since the
Of the 2600 bytes of data generated by the
複写部分取得工程S675に戻り、差分合成部133は、次のコマンド521eを取得する。
コマンド521eは追加コマンドなので、追加コマンド生成工程S673へ進む。
コマンド521eにより生成される1800バイトのデータは、有版データ530bにおいて複写部分データに完全に含まれるので、差分合成部133は、コマンド521eを複製して、追加コマンド521pを生成する。
Returning to the copy part acquisition step S675, the
Since the
Since the 1800-byte data generated by the
コマンド取得工程S671に戻り、差分データ520bのコマンドをすべて処理したので、差分合成処理S670を終了する。差分合成部133は、生成した7つのコマンド521j〜521pを差分データ520cとする。
Returning to the command acquisition step S671, since all the commands of the
図14は、この実施の形態における3つの有版データ530a〜530cの関係の一例を示す図である。
有版データ530aは、差分データ520を適用する適用前の版の有版データである。有版データ530bは、有版データ530aに差分データ520を適用した結果として生成される適用後の版の有版データであるとともに、差分データ520bを適用する適用前の版の有版データでもある。有版データ530cは、有版データ530bに差分データ520bを適用した結果として生成される適用後の版の有版データである。
有版データ530aと有版データ530bとの関係については、図8を用いて既に説明しているので、ここでは、主に有版データ530bと有版データ530cとの関係について説明する。
FIG. 14 is a diagram showing an example of the relationship between the three
The
Since the relationship between the
有版データ530cは、全部で14200バイトのデータである。
有版データ530cの0バイト目(最初)から3999バイト目までの4000バイトの部分531c(含有部分)のデータは、有版データ530bの0バイト目(最初)から3999バイト目までの4000バイトの部分541b(複写部分)のデータと同一である。そのうち、前半の3200バイトは、有版データ530aの部分531aから承継した部分531b(承継部分)であり、残りの800バイトは、有版データ530bで新たに追加された部分532bの一部(非承継部分)である。
有版データ530cの4000バイト目から8399バイト目までの4400バイトの部分532c(含有部分)のデータは、有版データ530bの5200バイト目から9599バイト目までの4400バイトの部分543b(複写部分)のデータと同一である。そのうち、前半の3800バイトは、有版データ530aの部分532aから承継した部分533bの一部(承継部分)であり、残りの600バイトは、有版データ530aの部分534aから承継した部分534bの一部(非承継部分)である。
有版データ530cの11400バイト目から14199バイト目(最後)までの2800バイトの部分534c(含有部分)のデータは、有版データ530bの10600バイト目から13399バイト目(最後)までの2800バイトの部分545b(複写部分)のデータと同一である。そのうち、前半の1000バイトは、有版データ530aの部分534aから承継した部分534bの一部(承継部分)であり、残りの1800バイトは、有版データ530bで新たに追加された部分535b(非承継部分)である。
有版データ530cの8400バイト目から11399バイト目までの3000バイトの部分533c(非含有部分)のデータは、有版データ530bのなかに一致する部分がなく、有版データ530cで新たに追加されたデータである。
The
The data of the 4000-
The 4400-
The 2800-
The 3000-
図15は、この実施の形態における2つの有版データ530a,530cの関係の一例を示す図である。
有版データ530aは、差分データ520cを適用する適用前の版の有版データである。有版データ530cは、差分データ520cを適用した結果として生成される適用後の版の有版データである。差分データ520と差分データ520bとを合成した差分データ520cを有版データ530aに適用することにより、1回の適用で、有版データ530cを生成することができる。
有版データ530cの0バイト目(最初)から3199バイト目までの3200バイトの部分541cのデータは、有版データ530aの0バイト目(最初)から3199バイト目までの3200バイトの部分541aのデータと同一である。有版データ530cの4000バイト目から7799バイト目までの3800バイトの部分543cのデータは、有版データ530aの4000バイト目から7799バイト目までの部分543aのデータと同一である。有版データ530cの7800バイト目から8399バイト目までの600バイトの部分544cのデータは、有版データ530aの10200バイト目から10799バイト目までの600バイトの部分545aのデータと同一である。有版データ530cの11400バイト目から12399バイト目までの1000バイトの部分546cのデータは、有版データ530aの11800バイト目から12799バイト目(最後)までの1000バイトの部分547aのデータと同一である。有版データ530cのそれ以外の部分542c,545c,547cのデータは、有版データ530cで新たに追加されたデータである。
FIG. 15 is a diagram showing an example of the relationship between the two
The
The data of the 3200-
このように、差分合成部133および差分合成部224は、差分データを解釈することにより、データの承継関係を辿り、有版データの第一の版まで辿ることのできるデータは複写コマンドを使用して記述し、それ以外のデータは追加コマンドを使用して記述する。これにより、有版データを使わずに差分データを合成することができるとともに、複数の差分データを合成してデータ量の小さい差分データを生成することができる。
In this way, the
図16は、この実施の形態における配布判定処理S710の流れの一例を示すフローチャート図である。
配布判定処理S710において、配布判定部132は、要求取得部131が取得した差分要求メッセージに基づいて、配布すべき差分データを判定する。
配布判定処理S710は、更新版判定工程S711、適用版記憶工程S713、判定済記憶工程S715、差分版選択工程S721、適用判定工程S723、生成版算出工程S725、判定済判定工程S727、生成版記憶工程S729、配布判定工程S731、拒否判定工程S735を有する。
FIG. 16 is a flowchart showing an example of the flow of the distribution determination process S710 in this embodiment.
In the distribution determination process S710, the distribution determination unit 132 determines difference data to be distributed based on the difference request message acquired by the
The distribution determination process S710 includes an update version determination step S711, an applied version storage step S713, a determined storage step S715, a difference version selection step S721, an application determination step S723, a generated version calculation step S725, a determined determination step S727, and a generated version storage. It has process S729, distribution determination process S731, and refusal determination process S735.
更新版判定工程S711において、配布判定部132は、CPU911を用いて、要求取得部131が取得した差分要求メッセージから、現版コードと更新版コードとを取得する。配布判定部132は、RAM914を用いて、取得した現版コードを、端末装置200が生成可能な版を表わす版コード(以下「生成版コード」と呼ぶ。)として記憶する。端末装置200は、現版コードが表わす版の有版データを所持している。その有版データに、端末装置200が現在所持している差分データや配布装置100が配布した差分データを適用すれば、異なる版の有版データを生成できる。配布判定部132は、このように、端末装置200が現に所持している版や生成可能な版の有版データに適用可能な差分データを辿ることにより、端末装置200が生成可能な版の有版データを判定し、更新版コードが表わす版にたどり着く道のりを検索する。
配布判定部132は、CPU911を用いて、記憶した生成版コードのなかに、取得した更新版コードと一致するものがあるかを判定する。
生成版コードのなかに更新版コードと一致するものがある場合、更新版コードが表わす版にたどり着く道のりが見つかったことを意味する。配布判定部132は、配布判定工程S731へ進む。
生成版コードのなかに更新版コードと一致するものがない場合、生成版コードが表わす版を出発点にして、差分データを適用することにより生成できる版を辿っていく。配布判定部132は、適用版記憶工程S713へ進む。
In the update version determination step S <b> 711, the distribution determination unit 132 uses the
The distribution determination unit 132 uses the
If any of the generated code matches the updated code, it means that the way to the version represented by the updated code has been found. The distribution determination unit 132 proceeds to the distribution determination step S731.
If none of the generated version codes matches the updated version code, the version represented by the generated version code is used as a starting point to trace the version that can be generated by applying the difference data. The distribution determination unit 132 proceeds to the application version storage step S713.
適用版記憶工程S713において、配布判定部132は、RAM914を用いて、記憶した生成版コードを、差分データを適用する適用前の版を表わす適用版コードとして記憶する。
記憶した生成版コードがない場合、更新版コードが表わす版への道のりをそれ以上辿れないことを意味する。配布判定部132は、拒否判定工程S735へ進む。
記憶した生成版コードがある場合、今度はそれを出発点にして道のりを辿っていく。配布判定部132は、記憶した生成版コードを初期化して消去する。配布判定部132は、判定済記憶工程S715へ進む。
In the applied version storing step S713, the distribution determining unit 132 uses the
If there is no stored generated version code, this means that the path to the version represented by the updated version code cannot be followed any further. The distribution determination unit 132 proceeds to the rejection determination step S735.
If you have a memorized version of the code, this time it will start from that point. The distribution determination unit 132 initializes and erases the stored generated version code. The distribution determination unit 132 proceeds to the determined storage process S715.
判定済記憶工程S715において、配布判定部132は、RAM914を用いて、適用版記憶工程S713で記憶した適用版コードを、判定したことのある版を表わす判定済コードとして記憶する。これは、既に出発点にしたことのある版を再び出発点にすると無限の繰り返しになってしまうので、それを防ぐためである。
In the determined storage step S715, the distribution determining unit 132 uses the
差分版選択工程S721において、配布判定部132は、CPU911を用いて、差分版記憶部125が記憶した差分版コードと、要求取得部131が取得した差分要求メッセージに含まれる端末装置200が所持している差分データを表わす差分版コードとの和集合のなかから、差分版コードを1つ選択する。配布判定部132は、差分版コードを1つずつ順に選択して、処理していく。
未処理の差分版コードがない場合、配布判定部132は、更新版判定工程S711に戻り、生成版コードのなかに更新版コードがあるかを判定する。
未処理の差分版コードを選択した場合、配布判定部132は、適用判定工程S723へ進む。
In the difference version selection step S721, the distribution determination unit 132 uses the
When there is no unprocessed difference version code, the distribution determination unit 132 returns to the update version determination step S711 and determines whether there is an update version code in the generated version code.
When an unprocessed difference code is selected, the distribution determination unit 132 proceeds to the application determination step S723.
適用判定工程S723において、配布判定部132は、CPU911を用いて、差分版選択工程S721で選択した差分版コードに基づいて、その差分版コードに対応する差分データが、記憶した適用版コードが表わすいずれかの版の有版データに適用できるか否かを判定する。
選択した差分版コードに対応する差分データが、記憶した適用版コードが表わすいずれかの版の有版データに適用できると判定した場合、配布判定部132は、生成版算出工程S725へ進む。
選択した差分版コードに対応する差分データが、記憶した適用版コードが表わすいずれの版の有版データにも適用できないと判定した場合、配布判定部132は、差分版選択工程S721に戻り、次の差分版データを選択する。
In the application determination step S723, the distribution determination unit 132 uses the
When it is determined that the difference data corresponding to the selected difference version code can be applied to any version of the plate data represented by the stored application version code, the distribution determination unit 132 proceeds to the generation version calculation step S725.
When it is determined that the difference data corresponding to the selected difference version code cannot be applied to any version of the plate data represented by the stored application version code, the distribution determination unit 132 returns to the difference version selection step S721, and next Select the difference data.
生成版算出工程S725において、配布判定部132は、CPU911を用いて、差分版選択工程S721で選択した差分版コードに基づいて、その差分版コードに対応する差分データを有版データに適用することにより生成できる有版データの版を算出する。
In the generation version calculation step S725, the distribution determination unit 132 uses the
判定済判定工程S727において、配布判定部132は、CPU911を用いて、記憶した判定済コードのなかに、生成版算出工程S725で算出した版を表わす版コードがあるかを判定する。
記憶した判定済コードのなかに、生成版算出工程S725で算出した版を表わす版コードがあると判定した場合、配布判定部132は、差分版選択工程S721に戻り、次の差分版データを選択する。
記憶した判定済コードのなかに、生成版算出工程S725で算出した版を表わす版コードがないと判定した場合、配布判定部132は、生成版記憶工程S729へ進む。
In the determination completion determination step S727, the distribution determination unit 132 uses the
If it is determined that there is a version code representing the version calculated in the generated version calculation step S725 in the stored determined code, the distribution determination unit 132 returns to the difference version selection step S721 and selects the next difference version data. To do.
If it is determined that there is no version code representing the version calculated in the generated version calculating step S725 in the stored determined code, the distribution determining unit 132 proceeds to the generated version storing step S729.
生成版記憶工程S729において、配布判定部132は、CPU911を用いて、生成版算出工程S725で算出した版を表わす版コードを、生成版コードとして記憶する。
その後、配布判定部132は、差分版選択工程S721に戻り、次の差分版データを選択する。
In the generated version storing step S729, the distribution determining unit 132 stores the version code representing the version calculated in the generated version calculating step S725 using the
Thereafter, the distribution determination unit 132 returns to the differential version selection step S721 and selects the next differential version data.
配布判定工程S731において、配布判定部132は、CPU911を用いて、更新版判定工程S711〜生成版記憶工程S729で辿った道のりに基づいて、端末装置200に配布すべき差分データを判定する。
その後、配布判定部132は、配布判定処理S710を終了する。
In the distribution determination step S731, the distribution determination unit 132 uses the
Thereafter, the distribution determination unit 132 ends the distribution determination process S710.
拒否判定工程S735において、配布判定部132は、CPU911を用いて、差分記憶部115が記憶している差分データを端末装置200に配布しても、更新版コードが表わす版の有版データを生成できないので、端末装置200からの要求を拒否すべきと判定する。配布判定部132の判定結果は、例えば、差分要求メッセージに対する応答として、端末装置200に対して送信する構成であってもよい。あるいは、表示装置901を用いて、配布判定部132の判定結果を表示し、配布装置100の管理者に対処を促す構成であってもよい。
In the refusal determination step S735, the distribution determination unit 132 uses the
図17は、この実施の形態における適用判定処理S740の流れの一例を示すフローチャート図である。
適用判定処理S740において、適用判定部240は、差分記憶部222が記憶した差分データを、有版データ更新部212が記憶した版の有版データに適用することにより、更新版コードが表わす版の有版データを生成できるかを判定する。
適用判定処理S740は、更新版判定工程S741、適用版記憶工程S743、判定済記憶工程S745、差分版選択工程S751、適用判定工程S753、生成版算出工程S755、判定済判定工程S757、生成版記憶工程S759、適用判定工程S761、差分取得工程S767を有する。
このうち、更新版判定工程S741〜生成版記憶工程S759の処理は、配布判定処理S710の更新版判定工程S711〜生成版記憶工程S729の処理と基本的に同じなので、簡単に説明する。
FIG. 17 is a flowchart showing an example of the flow of the application determination process S740 in this embodiment.
In the application determination process S740, the
The application determination process S740 includes an updated version determination step S741, an applied version storage step S743, a determined storage step S745, a difference version selection step S751, an application determination step S753, a generation version calculation step S755, a determined version determination step S757, and a generation version storage. It has process S759, application determination process S761, and difference acquisition process S767.
Among these, the processing of the update version determination step S741 to the generation version storage step S759 is basically the same as the processing of the update version determination step S711 to the generation version storage step S729 of the distribution determination processing S710, and thus will be described briefly.
更新版判定工程S741において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、現版コード記憶部213が記憶した現版コードと、更新版取得部231が取得した更新版コードとを取得する。単独適用判定部241(または合成適用判定部242)は、RAM914を用いて、現版コードを生成版コードとして記憶する。
単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、生成版コードのなかに更新版コードと一致するものがあるかを判定する。
生成版コードのなかに更新版コードと一致するものがあると判定した場合、適用判定工程S761へ進む。
生成版コードのなかに更新版コードと一致するものがないと判定した場合、適用版記憶工程S743へ進む。
In the update version determination step S741, the single application determination unit 241 (or the composition application determination unit 242) uses the
The single application determination unit 241 (or the composite application determination unit 242) uses the
If it is determined that the generated version code matches the updated version code, the process proceeds to the application determination step S761.
If it is determined that no generated version code matches the updated version code, the process proceeds to an applied version storage step S743.
適用版記憶工程S743において、単独適用判定部241(または合成適用判定部242)は、RAM914を用いて、生成版コードを適用版コードとして記憶する。
生成版コードがない場合、差分要求工程S765へ進む。
生成版コードがある場合、判定済記憶工程S745へ進む。
In the applied version storing step S743, the single application determining unit 241 (or the combined application determining unit 242) uses the
If there is no generated version code, the process proceeds to the difference request step S765.
If there is a generated version code, the process proceeds to the determined storage step S745.
判定済記憶工程S745において、単独適用判定部241(または合成適用判定部242)は、RAM914を用いて、適用版コードを判定済コードとして記憶する。
In the determined storage step S745, the single application determination unit 241 (or the combined application determination unit 242) uses the
差分版選択工程S751において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、差分版記憶部223が記憶した差分版コードのなかから、差分版コードを1つ選択する。
未処理の差分版コードがない場合、更新版判定工程S741に戻り、生成版コードのなかに更新版コードがあるかを判定する。
未処理の差分版コードを選択した場合、適用判定工程S753へ進む。
In the difference version selection step S751, the single application determination unit 241 (or the composition application determination unit 242) uses the
If there is no unprocessed difference version code, the process returns to the update version determination step S741 to determine whether there is an update version code in the generated version code.
If an unprocessed difference code is selected, the process proceeds to the application determination step S753.
適用判定工程S753において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、差分版選択工程S751で選択した差分版コードに対応する差分データが、適用版コードが表わす版の有版データに適用できるか否かを判定する。
適用できると判定した場合、生成版算出工程S755へ進む。
適用できないと判定した場合、差分版選択工程S751に戻り、次の差分版データを選択する。
In the application determination step S753, the single application determination unit 241 (or the composite application determination unit 242) uses the
If it is determined that it is applicable, the process proceeds to the generation version calculation step S755.
If it is determined that it cannot be applied, the process returns to the differential version selection step S751 to select the next differential version data.
生成版算出工程S755において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、差分版選択工程S751で選択した差分版コードの適用により生成できる有版データの版を算出する。
In the generation version calculation step S755, the single application determination unit 241 (or the composition application determination unit 242) uses the
判定済判定工程S757において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、判定済コードのなかに、生成版算出工程S755で算出した版を表わす版コードがあるか否かを判定する。
判定済コードのなかに算出した版を表わす版コードがあると判定した場合、差分版選択工程S751に戻り、次の差分版データを選択する。
判定済コードのなかに算出した版を表わす版コードがないと判定した場合、生成版記憶工程S759へ進む。
In the determined determination step S757, the single application determination unit 241 (or the combined application determination unit 242) uses the
If it is determined that there is a version code representing the calculated version in the determined code, the process returns to the difference version selection step S751 to select the next difference version data.
If it is determined that there is no version code representing the calculated version in the determined code, the process proceeds to the generated version storage step S759.
生成版記憶工程S759において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、生成版算出工程S755で算出した版を表わす版コードを生成版コードとして記憶する。
その後、差分版選択工程S751に戻り、次の差分版データを選択する。
In the generated version storing step S759, the single application determining unit 241 (or the combined application determining unit 242) uses the
Thereafter, the process returns to the differential version selection step S751, and the next differential version data is selected.
適用判定工程S761において、単独適用判定部241(または合成適用判定部242)は、CPU911を用いて、更新版判定工程S741〜生成版記憶工程S759で辿った道のりに基づいて、差分記憶部222が記憶した差分データのうちから、有版データ記憶部211が記憶した有版データに適用すべき差分データを判定する。
その後、適用判定処理S740を終了する。
In the application determination step S761, the single application determination unit 241 (or the combined application determination unit 242) uses the
Thereafter, the application determination process S740 ends.
差分要求工程S765において、差分要求部243は、CPU911を用いて、配布装置100に対して差分データの配布を要求する差分要求メッセージを生成する。差分要求部243は、CPU911を用いて、生成した差分要求メッセージを配布装置100に対して通知する。
通知した差分要求メッセージに対する応答として、配布装置100から差分データが配布されてきた場合は、差分取得工程S767へ進む。
通知した差分要求メッセージが拒否された場合は、適用判定処理S740を終了する。
In the difference request step S765, the
If difference data has been distributed from the
If the notified difference request message is rejected, the application determination process S740 ends.
差分取得工程S767において、差分取得部221は、CPU911を用いて、配布装置100から配布された差分データを取得する。差分記憶部222は、HDD920を用いて、差分取得部221が取得した差分データを記憶する。差分版記憶部223は、HDD920を用いて、差分取得部221が取得した差分データに対応する差分版コードを記憶する。
その後、更新版判定工程S741に戻り、適用判定処理S740を最初からやり直す。
In the difference acquisition step S767, the
Then, it returns to update version determination process S741, and repeats application determination process S740 from the beginning.
図18は、この実施の形態における差分データ520d〜520kと有版データ530d〜530iとの関係の一例を示す模式図である。
この図において、有版データ530d〜530iは、丸で示し、差分データ520d〜520kは、矢印で示している。矢印の根元は、その差分データを適用できる有版データを示し、矢印の先は、その差分データを適用した結果として生成される有版データを示す。例えば、差分データ520dは、有版データ530dに適用できる差分データであり、有版データ530dに適用した結果、有版データ530eを生成することができる差分データである。
FIG. 18 is a schematic diagram showing an example of the relationship between the
In this figure, the
差分記憶部222は、8つの差分データ520d〜520kを記憶しているものとする。これに対応して、差分版記憶部223は、8つの差分版コードを記憶している。有版データ記憶部211は、有版データ530dを記憶しているものとする。利用者は、有版データ530iを取得したいものとする。
以下、図17に示したフローチャートを参照しつつ、適用判定部240の動作の具体例を説明する。
It is assumed that the
Hereinafter, a specific example of the operation of the
更新版判定工程S741において、単独適用判定部241は、有版データ530dの版を表わす現版コードと、有版データ530iの版を表わす更新版コードとを取得する。単独適用判定部241は、有版データ530dの版を表わす現版コードを生成版コードとして記憶する。
記憶した生成版コードのなかに更新版コードがないので、適用版記憶工程S743へ進み、単独適用判定部241は、記憶した生成版コードを適用版コードとして記憶する。これにより、単独適用判定部241は、適用版コードとして、有版データ530dの版を表わす版コードを記憶する。
生成版コードがあったので、判定済記憶工程S745へ進み、単独適用判定部241は、記憶した適用版コードを判定済コードとして記憶する。これにより、単独適用判定部241は、適用版コードとして、有版データ530dの版を表わす版コードを記憶する。
In the update version determination step S741, the single
Since there is no updated version code in the stored generated version code, the process proceeds to the applied version storing step S743, and the single
Since the generated version code exists, the process proceeds to the determined storage step S745, and the single
差分版選択工程S751において、単独適用判定部241は、差分版記憶部223が記憶した8つの差分版コードのなかから差分版コードを1つ選択する。例えば、単独適用判定部241は、差分データ520dに対応する差分版コードを選択する。
適用判定工程S753において、差分データ520dは有版データ530dに適用できるので、生成版算出工程S755へ進み、単独適用判定部241は、差分データ520dを有版データ530dに適用した結果として生成される有版データが有版データ530eであることを算出する。
判定済判定工程S757において、判定済コードのなかに有版データ530eの版を表わす版コードがないので、生成版記憶工程S759へ進み、単独適用判定部241は、有版データ530eの版を表わす版コードを生成版コードとして記憶する。
In the differential version selection step S751, the single
In the application determination step S753, since the
In the determined determination step S757, since there is no version code representing the version of the
差分版選択工程S751に戻り、単独適用判定部241は、未処理の7つの差分版コードのなかから、次の差分版コードを選択する。例えば、単独適用判定部241は、差分データ520eに対応する差分版コードを選択する。
適用判定工程S753において、差分データ520eは有版データ530dに適用できないので、差分版選択工程S751に戻る。
Returning to the difference version selection step S751, the single
In the application determination step S753, the
単独適用判定部241は、未処理の6つの差分版コードのなかから、次の差分版コードを選択する。例えば、単独適用判定部241は、差分データ520fに対応する差分版コードを選択する。
差分データ520fは有版データ530dに適用できるので、単独適用判定部241は、適用の結果得られる有版データが有版データ530gであることを算出する。判定済コードのなかに有版データ530gの版を表わす版データがないので、単独適用判定部241は、有版データ530gの版を表わす版コードを生成版コードとして記憶する。これにより、単独適用判定部241は、生成版コードとして、有版データ530eの版を表わす版コードと、有版データ530gの版を表わす版コードとを記憶する。
The single
Since the
差分版選択工程S751に戻り、単独適用判定部241は、未処理の5つの差分版コードのなかから、次の差分版コードを選択する。残りの差分版コードに対応する差分データ520g〜520kはいずれも有版データ530dに適用できないので、適用判定工程S753で差分版選択工程S751に戻される。
未処理の差分版コードがなくなると、更新版判定工程S741に戻り、単独適用判定部241は、記憶した生成版コードのなかに更新版コードがあるか否かを判定する。単独適用判定部241が記憶した生成版コードが表わす版の有版データは、有版データ530e及び有版データ530gなので、有版データ530iの版を表わす更新版コードと一致する生成版コードはない。そのため、適用版記憶工程S743へ進む。
Returning to the difference version selection step S751, the single
When there is no unprocessed difference version code, the process returns to the update version determination step S741, and the single
適用版記憶工程S743において、合成適用判定部242は、単独適用判定部241が記憶した生成版コードを適用版コードとして記憶する。合成適用判定部242が記憶した適用版コードが表わす版の有版データは、有版データ530e及び有版データ530gである。
判定済記憶工程S745において、合成適用判定部242は、記憶した適用版コードを単独適用判定部241が記憶した判定済コードと合わせて、判定済コードとして記憶する。合成適用判定部242が記憶した判定済コードが表わす版の有版データは、有版データ530d,530e,530gの3つである。
In the applied version storing step S743, the composite
In the determined storage step S745, the composition
差分版選択工程S751において、合成適用判定部242は、差分版記憶部223が記憶した差分版コードのなかから、差分版コードを1つ選択する。
例えば、合成適用判定部242が、差分データ520dに対応する差分版データを選択した場合、差分データ520dは有版データ530eにも有版データ530gにも適用できないので、差分版選択工程S751に戻る。
合成適用判定部242が、差分データ520eに対応する差分版データを選択した場合、差分データ520eは有版データ530eに適用できるので、合成適用判定部242は、有版データ530fが生成できることを算出し、有版データ530fは判定済でないので、有版データ530fの版を表わす版コードを生成版コードとして記憶する。
合成適用判定部242が、差分データ520gに対応する差分版データを選択した場合、差分データ520gは有版データ530eに適用できる。合成適用判定部242は、有版データ530gを生成できることを算出するが、有版データ530gは判定済なので、差分版選択工程S751に戻る。
このようにして、差分版記憶部223が記憶したすべての差分版コードについての処理が終わると、合成適用判定部242は、生成版コードとして、有版データ530fの版を表わす版コードと、有版データ530hの版を表わす版コードとを記憶している。
In the difference version selection step S751, the composition
For example, when the composition
When the composition
When the composition
When the processing for all the difference version codes stored in the difference
更新版判定工程S741に戻り、生成版コードのなかに更新版コードと一致するものがないので、合成適用判定部242は、生成版コードを適用版コードとして記憶し、適用版コードを判定済コードとして記憶する。合成適用判定部242が記憶した適用版コードが表わす版の有版データは、有版データ530f,530hの2つになる。また、合成適用判定部242が記憶した判定済コードが表わす版の有版データは、有版データ530d〜530hの5つになる。
Returning to the update version determination step S741, since no generated version code matches the updated version code, the composition
差分版選択工程S751において、合成適用判定部242は、差分版記憶部223が記憶した差分版コードのなかから、差分版コードを1つ選択する。
差分データ520h,520k以外は、有版データ530fにも有版データ530hにも適用できない。また、差分データ520hを適用した結果として生成できる有版データ530hは判定済である。したがって、合成適用判定部242が差分データ520k以外に対応する差分版コードを選択した場合は、差分版選択工程S751に戻り、差分データ520kに対応する差分版コードを選択した場合、合成適用判定部242は、生成版コードとして、有版データ530iの版を表わす版コードを記憶する。
このようにして、差分版記憶部223が記憶したすべての差分版コードについての処理が終わると、合成適用判定部242は、生成版コードとして、有版データ530iの版を表わす版コードを記憶する。
In the difference version selection step S751, the composition
The data other than the
In this way, when the processing for all the differential version codes stored in the differential
更新版判定工程S741に戻り、生成版コードのなかに更新版コードと一致するものがあるので、適用判定工程S761へ進む。合成適用判定部242は、それまでの道のりを辿ることにより、3つの差分データ520f,520j,520kを順次適用すれば、有版データ530dから有版データ530iを生成できることを判定する。
Returning to the update version determination step S741, since some of the generated version codes match the update version code, the process proceeds to the application determination step S761. The composition
以上のようにして、適用判定部240は、更新のために使用する差分データを判定する。
As described above, the
適用判定部240が判定した3つの差分データ520f,520j,520kは順次適用するものなので、差分合成部224は、この3つの差分データ520f,520j,520kを合成して、1つの差分データを生成する。3以上の差分データを合成する場合、差分合成部224は、例えば、最初の2つの差分データを合成し、合成により生成した差分データと3つ目の差分データとを合成する。
Since the three
もう一つの具体例として、差分記憶部222が差分データ520k以外の7つの差分データ520d〜520jを記憶していて、差分データ520kを記憶していなかったとする。
As another specific example, it is assumed that the
その場合、530iにたどり着く道のりは見つからず、合成適用判定部242は、生成版コードを記憶しないまま、差分版選択工程S751〜生成版記憶工程S759の繰り返しを抜ける。
生成版コードがないので、適用版記憶工程S743で差分要求工程S765へ進む。差分要求部243は、差分要求メッセージを生成し、配布装置100に対して通知する。
In this case, the route to reach 530i is not found, and the composition
Since there is no generated version code, the process proceeds to the difference request step S765 in the applied version storage step S743. The
通知した差分要求メッセージに対する応答として、配布装置100から配布される差分データは、差分データ520kかもしれないし、1回の適用で有版データ530dから有版データ530iを生成できる差分データかもしれない。どのような差分データが配布されるかは、配布装置100の差分記憶部115がどのような差分データを記憶しているかによって変わるので、端末装置200の側では予想できない。このため、端末装置200は、配布された差分データを追加して、適用判定処理S740を最初からやり直すことにより、適用すべき差分データを判定する。
As a response to the notified difference request message, the difference data distributed from the
この実施の形態における差分管理装置(配布装置100・端末装置200)は、3以上の版を有する有版データ530について、上記有版データ530の2つの版の間の差分を表わす差分データ520を管理する。
差分管理装置は、データを記憶する記憶装置(RAM914・HDD920など)と、データを処理する処理装置(CPU911)と、差分記憶部115,222と、差分合成部133,224とを有する。
上記差分記憶部115,222は、上記記憶装置を用いて、上記有版データの第一の版530aと第二の版530bとの間の差分を表わす第一の差分データ520と、上記有版データの第二の版530bと第三の版530cとの間の差分を表わす第二の差分データ520bとを記憶する。
上記差分合成部133,224は、上記処理装置を用いて、上記差分記憶部115,222が記憶した第一の差分データ520と第二の差分データ520bとを合成して、上記有版データの第一の版530aと第三の版530cとの間の差分を表わす第三の差分データ520cを生成する。
The difference management apparatus (
The difference management device includes a storage device (
The
The
これにより、配布すべきデータ量を削減できるとともに、有版データの版の数が多くても記憶すべき差分データの数が少なく、有版データを更新するため差分データを適用する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。 As a result, the amount of data to be distributed can be reduced, and even when the number of versions of the plate data is large, the number of difference data to be stored is small, and processing is performed when applying the difference data to update the plate data. The load on the apparatus and the capacity of the work area required for the storage device can be reduced.
上記差分データ520は、上記有版データ530の更新前の版530a,530bを更新後の版530b,530cに更新するための更新コマンド521を表わす。
上記更新コマンド521は、複写コマンドと追加コマンドとのうち少なくともいずれかを含む。
上記複写コマンドは、上記有版データの更新後の版530b,530cのうち上記有版データの更新前の版530a,530bに同一の部分が存在する含有部分(一致部分・複写部分)について、上記有版データの更新前の版530a,530bのうち上記含有部分と同一の部分の位置(ソース524)を示し、上記同一の部分を上記含有部分に複写することを表わす。
上記追加コマンドは、上記有版データの更新後の版530b,530cのうち上記有版データの更新前の版530a,530bに同一の部分が存在しない非含有部分(不一致部分・追加部分)について、上記非含有部分と同一の追加データ(ソース524)を有し、上記追加データを上記非含有部分に追加することを表わす。
The
The update command 521 includes at least one of a copy command and an add command.
In the copy command, the above-mentioned
The additional command is for non-containing parts (mismatched parts / additional parts) in which the same part does not exist in the
これにより、差分データが表わす更新コマンドを解釈して実行するだけで、有版データの更新ができるので、有版データを更新するため差分データを適用する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。 As a result, it is possible to update the plate data simply by interpreting and executing the update command represented by the difference data. Therefore, when applying the difference data to update the plate data, the load on the processing device and the storage The capacity of the work area required for the apparatus can be reduced.
上記差分合成部133,224は、上記処理装置を用いて、上記第二の差分データ520bが上記複写コマンドを含む場合、上記複写コマンドに基づいて、上記有版データの第二の版530bのうち上記含有部分に複写する部分を判定して複写部分とし、上記第一の差分データ520に基づいて、上記複写部分のうち上記有版データの第一の版530aに含まれる承継部分について、上記有版データの第一の版530aの一部を上記含有部分のうち上記承継部分に対応する部分に複写することを表わす複写コマンドを生成し、上記複写部分のうち上記有版データの第一の版530aに含まれない非承継部分について、上記第一の差分データ520に含まれる追加コマンドが有する追加データ(ソース524)を上記含有部分のうち上記非承継部分に対応する部分に追加することを表わす追加コマンドを生成し、上記第二の差分データ520bが追加コマンドを含む場合、上記追加コマンドに基づいて、上記追加コマンドが有する追加データ(ソース524)を上記非含有部分に追加することを表わす追加コマンドを生成することにより、上記第三の差分データ520cを生成する。
When the
これにより、有版データ530を使用せず、差分データ520の操作だけで差分データ520を合成することができるので、差分データを合成する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。
As a result, the
上記差分管理装置(端末装置200)は、更に、有版データ記憶部211と、有版データ更新部212とを有する。
上記有版データ記憶部211は、上記記憶装置を用いて、上記有版データ530の第一の版(現版データ)を記憶する。
上記有版データ更新部212は、上記処理装置を用いて、上記差分合成部224が生成した第三の差分データ520cに基づいて、上記有版データ記憶部211が記憶した有版データ530の第一の版(現版データ)を更新して、上記有版データ530の第三の版(更新版データ)を生成する。
The difference management device (terminal device 200) further includes a plate
The plate
The plate
複数の差分データを順次適用して有版データを更新するのではなく、複数の差分データを合成して生成した1つの差分データを適用して有版データを更新するので、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。 Rather than sequentially applying multiple pieces of difference data to update the plate data, the plate data is updated by applying one difference data generated by combining multiple pieces of difference data, so the load on the processing device In addition, the capacity of the work area required for the storage device can be reduced.
上記差分管理装置(端末装置200)は、更に、更新版取得部231と、単独適用判定部241と、合成適用判定部242とを有する。
上記更新版取得部231は、上記処理装置を用いて、上記有版データ記憶部211が記憶した有版データ(現版データ)を更新して生成する版を表わす更新版コードを取得する。
上記単独適用判定部241は、上記処理装置を用いて、上記差分記憶部222が記憶した差分データ520のなかに、上記有版データ記憶部211が記憶した有版データ(現版データ)を更新して上記更新版取得部231が取得した更新版コードが表わす版の有版データ(更新版データ)を生成できる単独適用差分データがあるか否かを判定する。
上記合成適用判定部242は、上記処理装置を用いて、上記差分記憶部222が記憶した差分データ520のなかに単独適用差分データがないと上記単独適用判定部241が判定した場合に、上記差分記憶部222が記憶した差分データ520のなかに、複数の差分データを合成することにより、上記単独適用差分データを生成することができる複数の合成適用差分データがあるか否かを判定する。
上記差分合成部224は、上記処理装置を用いて、上記差分記憶部222が記憶した差分データのなかに、上記複数の合成適用差分データがあると上記合成適用判定部242が判定した場合に、上記差分記憶部222が記憶した複数の合成適用差分データを合成して、上記単独適用差分データを生成する。
上記有版データ更新部212は、上記処理装置を用いて、上記差分記憶部222が記憶した差分データ520のなかに単独適用差分データがあると上記単独適用判定部241が判定した場合に、上記差分記憶部222が記憶した単独適用差分データに基づいて、上記有版データ記憶部211が記憶した有版データ(現版データ)を更新し、上記差分記憶部222が記憶した差分データ520のなかに、上記複数の合成適用差分データがあると上記合成適用判定部242が判定した場合に、上記差分合成部224が生成した単独適用差分データに基づいて、上記有版データ記憶部211が記憶した有版データ(現版データ)を更新する。
The difference management device (terminal device 200) further includes an update
The update
The single
When the single
When the synthesis
When the single
1回の適用で更新が可能な差分データ(単独適用差分データ)を差分記憶部222が記憶していれば、それを利用し、合成により単独適用差分データを生成可能な差分データ(合成適用差分データ)を差分記憶部222が記憶していれば、差分合成部224がそれを合成して生成した単独適用差分データを利用して、有版データ更新部212が有版データを更新するので、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。
If the
上記差分管理装置(端末装置200)は、更に、差分要求部243と、差分取得部221とを有する。
上記差分要求部243は、上記処理装置を用いて、上記差分記憶部222が記憶した差分データのなかに、上記複数の合成適用差分データがないと上記合成適用判定部242が判定した場合に、上記単独適用差分データ、および、上記複数の合成適用差分データ、および、上記差分記憶部が記憶した差分データと合成することにより上記単独適用差分データを生成できる補充差分データのうち少なくともいずれかを要求する差分要求メッセージを差分配布装置(配布装置100)に対して通知する。
上記差分取得部221は、上記処理装置を用いて、上記差分要求部243が通知した差分要求メッセージに対する応答として上記差分配布装置が配布した差分データを取得する。
上記差分記憶部222は、上記記憶装置を用いて、上記差分取得部221が取得した差分データを記憶する。
The difference management device (terminal device 200) further includes a
The
The
The
更新に必要な差分データを差分記憶部222が記憶していない場合は、差分配布装置に対して差分データの配布を要求するので、更新に必要な差分データを取得することができる。取得した差分データが単独適用差分データであれば、それを利用して、有版データを更新できる。取得した差分データが複数の合成適用差分データであれば、差分合成部224がそれを合成して生成した単独適用差分データを利用して、有版データを更新できる。取得した差分データが補充差分データであれば、差分記憶部222が記憶した差分データと補充差分データとを差分合成部224が合成して生成した単独適用差分データを利用して、有版データを更新できる。いずれの場合も、差分配布装置から配布を受ける差分データのデータ量を削減できるとともに、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。
If the
上記差分管理装置(配布装置100)は、更に、要求取得部131と、差分通知部(差分配布部134)とを有する。
上記要求取得部131は、上記処理装置を用いて、上記第三の差分データを要求する差分要求メッセージを端末装置200から取得する。
上記差分通知部は、上記差分合成部133が生成した第三の差分データ520cを上記端末装置200に対して通知する。
The difference management device (distribution device 100) further includes a
The
The difference notification unit notifies the
これにより、配布する差分データのデータ量を削減できるとともに、端末装置200の処理装置にかかる負荷や、端末装置200の記憶装置に必要な作業領域の容量を小さくすることができる。
Thereby, the data amount of the difference data to be distributed can be reduced, and the load on the processing device of the
上記差分管理装置(配布装置100)は、更に、旧版データ記憶部111と、新版データ取得部112と、差分生成部113と、旧版データ更新部114とを有する。
上記旧版データ記憶部111は、上記記憶装置を用いて、上記有版データの旧版(旧版データ)を記憶する。
上記新版データ取得部112は、上記処理装置を用いて、上記有版データの新版(新版データ)を取得する。
上記差分生成部113は、上記処理装置を用いて、上記旧版データ記憶部111が記憶した有版データの旧版(旧版データ)と、上記新版データ取得部112が取得した有版データの新版(新版データ)との間の差分データを生成する。
上記差分記憶部115は、上記記憶装置を用いて、上記差分生成部113が生成した差分データを記憶する。
上記旧版データ更新部114は、上記処理装置を用いて、上記旧版データ記憶部111が記憶した有版データ(旧版データ)を更新して、上記新版データ取得部112が取得した有版データの新版(新版データ)を記憶させる。
The difference management device (distribution device 100) further includes an old version
The old version
The new version
The
The
The old version
旧版データと新版データとの間の差分データを差分生成部113が生成すると、旧版データ記憶部111は、新版データを旧版データとして記憶するので、旧版データ記憶部111の記憶容量が小さくて済む。有版データの他の版の間の差分データが必要な場合は、差分記憶部115が記憶した差分データを差分合成部133が合成して、生成することができる。
When the
上記差分管理装置(配布装置100)において、上記差分生成部113は、上記処理装置を用いて、上記有版データの旧版(旧版データ)を新版(新版データ)に更新するための順方向差分データと、上記有版データの新版(新版データ)を旧版(旧版データ)に戻すための逆方向差分データとを生成する。
上記差分記憶部115は、上記記憶装置を用いて、上記差分生成部113が生成した順方向差分データと逆方向差分データとを記憶する。
In the difference management apparatus (distribution apparatus 100), the
The
これにより、有版データを新しい版に更新したいという要望だけでなく、古い版に戻したいという要望にも答えることができる。旧版データよりも更に古い版に戻す場合は、差分合成部133が差分データを合成することにより、必要な差分データを生成することができる。
This makes it possible to answer not only the desire to update the version data to a new version, but also the request to return to an old version. When returning to an older version than the old version data, the
この実施の形態における差分管理装置(配布装置100、端末装置200)は、コンピュータが実行することにより上記コンピュータが差分管理装置として機能するコンピュータプログラムにより実現することができる。
The difference management device (
これにより、配布すべきデータ量を削減できるとともに、有版データを更新するため差分データを適用する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる差分管理装置を実現できる。 As a result, the amount of data to be distributed can be reduced, and the load on the processing device and the capacity of the work area required for the storage device can be reduced when applying differential data to update plate data. A difference management device can be realized.
この実施の形態における差分管理装置(配布装置100、端末装置200)が、3以上の版を有する有版データ530について、上記有版データ530の2つの版の間の差分を表わす差分データ520を管理する差分管理方法は、以下の工程を有する。
上記記憶装置が、上記有版データの第一の版530aと第二の版530bとの間の差分を表わす第一の差分データ520と、上記有版データの第二の版530bと第三の版530cとの間の差分を表わす第二の差分データ520bとを記憶する。
上記処理装置が、上記記憶装置が記憶した第一の差分データ520と第二の差分データ520bとを合成して、上記有版データの第一の版530aと第三の版530cとの間の差分を表わす第三の差分データ520cを生成する。
The difference management device (
The storage device includes
The processing device synthesizes the
これにより、配布すべきデータ量を削減できるとともに、有版データを更新するため差分データを適用する際に、処理装置にかかる負荷や、記憶装置に必要な作業領域の容量を小さくすることができる。 As a result, the amount of data to be distributed can be reduced, and the load on the processing device and the capacity of the work area required for the storage device can be reduced when applying differential data to update plate data. .
実施の形態2.
実施の形態2について、図19〜図28を用いて説明する。
The second embodiment will be described with reference to FIGS.
図19は、この実施の形態におけるシステムの構成例を示す図である。
ソフトウェア配布サーバ10(配布装置100)は、ソフトウェアを配布するためのサーバである。ソフトウェア配布サーバ10は、一般的にはWEBサーバで構成される。ソフトウェア配布サーバ10は、ネットワーク20であるインターネットや無線ネットワークからの要求を受け付ける。あるいは、ソフトウェア配布サーバ10は、情報を一斉送信する放送サーバであってもよい。
端末装置30は、一般的なPCやサーバあるいは携帯端末など配布されるソフトウェアが動作する装置である。
ソフトウェアの配布は、ネットワーク20を使った配布以外にも物理的な郵送という手段で、DVDやCD−Rを使って配送することもある。
FIG. 19 is a diagram showing a configuration example of a system in this embodiment.
The software distribution server 10 (distribution apparatus 100) is a server for distributing software. The
The
In addition to the distribution using the
図20は、この実施の形態におけるソフトウェア配布サーバ10の構成例を示す図である。
ソフトウェア配布サーバは、対象とする端末のソフトウェアの複数のバージョンであるソフトウェア11(有版データ)を保持する。対象とする端末は複数あっても良いが、対象機種ごとに管理する。また、対象機種の最新のソフトウェアバージョンがリリースされるたび最新版が追加となる。
FIG. 20 is a diagram showing a configuration example of the
The software distribution server holds software 11 (version data) that is a plurality of versions of the software of the target terminal. Although there may be a plurality of target terminals, they are managed for each target model. In addition, the latest version is added each time the latest software version of the target model is released.
差分抽出部12(差分生成部113)は、管理する2つのソフトウェア11のバージョン間の差分を抽出する。差分抽出部12は、一般的には複数のファイルを比較する。差分抽出部12は、同じ部分とそうでない部分を見つける。差分抽出部12は、同じ部分は旧版のどのアドレスから長さどれだけ分を新版のどのアドレスにコピーするということを示すCOPYコマンドと、旧版にないデータであって、新たにどこにどんなデータを追加するかを示すDATAコマンドからなる差分情報を生成する。
The difference extraction unit 12 (difference generation unit 113) extracts a difference between versions of the two
差分情報管理部13(差分記憶部115、差分版記憶部125)は、ある版と別の版の差分を2つの版名と関係付けて保持する。差分情報管理部13は、要求があれば該当する差分情報を提供する。該当する差分情報を保持していない場合には、差分情報管理部13は、差分抽出部12を利用して差分を生成してもかまわない。
The difference information management unit 13 (
差分情報要求受付部14は、クライアントからの要求に応じて差分情報を送る。
差分情報配布部15は、差分を配布する。差分情報配布部15は、一斉送信をすることができる。一斉送信は実質的には相手を決めて逐次送信していく方式でもかまわないし、マルチキャストいう技術を利用してネットワーク200上で経路が同じ部分は共通のデータとして送信し、経路が分かれるところで別データで送信してもかまわない。このようにしてネットワークトラフィックを削減するように動作する。
The difference information
The difference
図21は、この実施の形態における端末装置30の構成例を示す図である。
差分受信部31(差分取得部221)は、ソフトウェア配布サーバ10からネットワーク200を経由して一斉配信されたものを受信する。あるいは、差分受信部31は、端末上のユーザからのリクエストや、設定された情報に従ったリクエストに応じてサーバから送られてくる差分情報を受信する。または、差分受信部31は、郵送で送られてきた情報に関してはCD−Rなどの外部デバイスからの情報を読み取ることによって受信する。
FIG. 21 is a diagram illustrating a configuration example of the
The difference receiving unit 31 (difference acquiring unit 221) receives the ones that are simultaneously distributed from the
差分受信部31が受信した差分が、端末上のソフトウェアバージョンに応じたもの、すなわち端末上のソフトウェアバージョンに適用可能なものであれば、そのまま差分記憶部32が記憶する。差分記憶部32に古い差分データが残っている場合は、その差分データと今回受信した差分データを比較し、より新しいバージョンにアップすることが可能な版を残し、一方を削除する。
If the difference received by the
差分受信部31が受信した差分が、端末上のソフトウェアバージョンに応じたものでない、即ち端末上のソフトウェアに適用不可能なものであれば、差分合成部33(適用判定部240、差分合成部224)が、差分記憶部32が記憶している差分と合成可能かどうかを判定し、可能であれば差分を合成し、差分記憶部32が記憶する。差分合成不可な場合は、端末上の差分ファイルと受信した差分ファイルの間の差分ファイルがあるはずで、これを差分受信部31がサーバに要求し、取得し、再度、差分合成部33が逐次差分合成を行い、現状のソフトウェアバージョンから最新の版へバージョンアップ可能な合成差分情報のみを差分記憶部32が記憶する。
If the difference received by the
ユーザの要望やあるいはシステムの設定に応じて差分を適用し、ソフトウェアのバージョンアップを行う場合には、差分適用部34(有版データ更新部212)が、差分記憶部32が記憶している差分を適用する。
When the difference is applied according to the user's request or the system setting and the software is upgraded, the difference application unit 34 (the plate data update unit 212) stores the difference stored in the
上記ソフトウェア配布サーバ10および端末装置30の動作の流れの例を説明する。
An example of the flow of operations of the
図22は、この実施の形態におけるソフトウェア配布サーバ10の処理フロー図である。
ステップ41で、ソフトウェア配布サーバ10は、まず対象端末の最初のソフトウェアイメージを保存する。
ステップ42で、ソフトウェア配布サーバ10は、次の版のリリースを待ち、リリースされればステップ43に移行する。
FIG. 22 is a process flow diagram of the
In
In
ステップ43で、ソフトウェア配布サーバ10は、次の版のイメージを保存する。
ステップ44で、差分抽出部12は、差分を抽出する。この差分は一般にバイナリ差分である。その例としては新版と旧版をサーチし、同じ部分があれば同じであることを示し、位置がずれていてもCOPYとして旧版のある場所から新版のある場所へCOPYすれば良いことを示すCOPYコマンドと、新たなデータであることを示すDATAコマンドからなる差分情報を抽出する。
In
In
ステップ45で、差分情報管理部13は、抽出された差分情報を保存する。
ステップ46で、差分情報配布部15は、差分を配布する。配布にはブロードキャストやマルチキャストあるいは逐次送信でもかまわない。通常のネットワークを利用するだけでなくDVDなどの媒体を使って郵送というのでもかまわない。
In
In
ステップ47で、ソフトウェア配布サーバ10は、旧版を削除する。保存領域に余裕があれば旧版を削除せずにバージョンの管理を行っておくのでもかまわない。
In
ステップ48で、差分情報要求受付部14は、端末側からの差分のダウンロード要求を待つ。端末に対しては差分情報を既にブロードキャストなどの手段で配布しているが、このタイミングで受信できなかった端末からは要求が来る可能性がある。要求がなければ、ステップ49で、ソフトウェア配布サーバ10は、次期リリース待ちである。ステップ48と49は同時に動作し、イベント待ちで、先におきたイベントの処理を行う。
In
ステップ48で、端末側から要求が来た場合、差分情報配布部15は、保存してある差分を送信する。その際、要求に含まれた端末側のバージョンから最新のバージョンに上げることができる差分情報を送信する。この差分は複数の差分をまとめて送信するのでもかまわないし、端末側のフローで説明する差分合成と同じフローを利用して差分合成をして送信してもかまわないし、ステップ47を実行せずに旧版を削除せずに残しているのであれば、要求に応じた差分を抽出して送信するのでもかまわない。
In
差分送信が完了すると、ソフトウェア配布サーバ10は、ステップ48,49のイベント待ちに移行する。
ステップ48,49で、次期リリースがなされた場合、ソフトウェア配布サーバ10は、ステップ43からの処理を繰り返す。
When the difference transmission is completed, the
When the next release is made in
図23は、この実施の形態における端末装置30の更新フロー図である。
ステップ51で、端末装置30は、差分情報の受信待ちをする。受信待ちは、端末自らが要求を出してダウンロードを待っている場合もあれば、一斉送信や放送を待っている場合もある。即ち、イベントを待っている場合もある。
ステップ51で差分情報を受信したら、ステップ52で、差分適用部34は、適用可能かどうかの判断を行う。即ち、その差分情報がどのバージョンを対象にているのかの情報と自端末のバージョンとを比較し、同じものであれば適用可能であると判断できる。適用可能と判断されれば、端末装置30は、実際に端末に適用するかどうかをユーザに問い合わせて、ステップ56でユーザの判断を入力する。
FIG. 23 is an update flowchart of the
In
When the difference information is received in
適用不可能、即ち自端末のバージョンと差分情報の対象とするバージョンが違う場合には、ステップ53で、差分合成部33は、差分合成可能かどうかを判断する。合成が不可能、即ち、自端末に保存している差分でバージョンアップ可能なバージョンと、差分情報が対象とする差分が異なる場合は、ステップ54で、端末装置30は、その間を生める差分を要求する。サーバ側からはその差分を埋める情報が一つの差分情報で来る場合もあるし、複数の差分情報で来る場合もある。複数の差分情報で来た場合には、差分受信処理直後に差分合成部が合成処理を行い、ステップ52へ移行する。
If it is not applicable, that is, if the version of the terminal is different from the version targeted for the difference information, in
ステップ53で、差分合成部33が差分合成可能と判断すると、ステップ55で、差分合成部33は、差分合成を行なう。ステップ56で、端末装置は、実際に適用するかどうかをユーザに問い合わせ適用判断を行う。適用しないのであれば、ステップ58で、差分記憶部は、その差分情報を保存しておく。適用するのであれば、ステップ57で、差分適用部34が適用して、差分情報を消す。その後、元の差分情報受信待ちステップ51に移行する。
If the
図24は、この実施の形態における差分情報管理部13が差分情報を管理する管理の例を示す図である。
この情報は、図22のステップ45での保存時や、端末側らの要求に応じてステップ50で差分を送信する際に利用する。
差分情報管理部13は、複数の差分間の情報を2次元のテーブルで持ち、該当する場所にはそれぞれに対応するファイル名を入れておく。バージョンダウンのことも考えると、逆の差分もおいてもかまわない。
FIG. 24 is a diagram illustrating an example of management in which the difference
This information is used at the time of saving at
The difference
また、生成していない差分は空欄にしておき、サーバの空き時間に生成しても良いし、全く生成しなくても良い。
また、ステップ47で旧版を毎回消す場合には、隣の版との差分しかなく、他の差分は動的に合成処理するか、端末側で合成する。
In addition, the difference that has not been generated may be left blank, and may be generated when the server is idle, or may not be generated at all.
Further, when deleting the old version every time in
図25は、この実施の形態におけるソフトウェアイメージと差分との関係の例を示す図である。
この例は、「Ver1.0」「Ver,2.0」「Ver3.0」の3つの版がある場合を示している。
「Ver1.0」と「Ver2.0」の比較で、全く同じ場所に同じコードがある部分と、ずれてコードがある部分をCOPYコマンド(複写コマンド)で表現する。一方全く違うデータがある部分をDATAコマンド(追加コマンド)で表現する。
新版のアドレス順にコマンドを記載することにより、消えてしまうデータに関しては気にする必要ないので、DELETEといったコマンド(削除コマンド)はなくてよい。
FIG. 25 is a diagram showing an example of the relationship between the software image and the difference in this embodiment.
In this example, there are three versions of “Ver1.0”, “Ver, 2.0”, and “Ver3.0”.
In a comparison between “Ver1.0” and “Ver2.0”, a portion where the same code is located at exactly the same place and a portion where the code is shifted and are shifted are expressed by a COPY command (copy command). On the other hand, a part having completely different data is expressed by a DATA command (additional command).
By writing the commands in the order of addresses in the new version, there is no need to worry about data that will disappear, so there is no need for a command (delete command) such as DELETE.
COPYコマンドには、元のアドレス情報(ソース524)と長さ(サイズ523)の情報が必要である。DATAコマンドには、長さ(サイズ523)の情報と書き換えるべきデータ(ソース524)の情報が必要である。この処理には、順に新版と旧版を比較しながら探すことによる例えばUnix(登録商標)環境にあるDIFFのアルゴリズムのような公知のアルゴリズムを使用してもよい。 The COPY command requires original address information (source 524) and length (size 523) information. The DATA command requires information on length (size 523) and information on data to be rewritten (source 524). For this processing, a known algorithm such as a DIFF algorithm in a Unix (registered trademark) environment by searching for a new version and an old version in order may be used.
図26は、この実施の形態におけるソフトウェアイメージと差分合成との関係の例を示す図である。
「Ver2.0」から「Ver3.0」への差分情報のうち、aの部分のCOPYコマンドは実際にはまだ存在しない「Ver2.0」からのCOPYコマンドである。この領域に対する旧差分情報を見ると、一部はCOPYコマンドで、一部はDATAコマンドである。こういう場合は、aの部分はCOPYコマンドで「Ver1.0」からコピーする部分と、DATAコマンドとに分けて合成する。
FIG. 26 is a diagram showing an example of the relationship between the software image and difference synthesis in this embodiment.
Of the difference information from “Ver2.0” to “Ver3.0”, the COPY command of the part a is a COPY command from “Ver2.0” that does not actually exist yet. Looking at the old difference information for this area, some are COPY commands and some are DATA commands. In such a case, the part a is divided into a part to be copied from “Ver1.0” by the COPY command and a DATA command to be combined.
次のbの部分は、「Ver1.0」からすべてコピーすれば良いが、コピー元が分かれている。こういう場合は、2つのCOPYコマンドに分ける。
次のDATAコマンド部分は、そもそも「Ver1.0」上にもないデータであるため、DATAコマンドをそのまま使う。
最後のcの部分は、COPYコマンドとDATAコマンドとに分ける。
このようにして、差分情報を合成する。
The next part b may be copied from “Ver1.0”, but the copy source is divided. In such a case, it is divided into two COPY commands.
Since the next DATA command portion is data that is not on "Ver1.0", the DATA command is used as it is.
The last part c is divided into a COPY command and a DATA command.
In this way, the difference information is synthesized.
図27は、この実施の形態における差分合成の処理フロー図である。
ステップ91で、差分合成部33は、新差分と旧差分とを読みこむ。差分合成部33は、新差分の方のアドレスの低い方か高い方かどちらか一方から解析を行っていく。
ステップ92で、差分合成部33は、コマンドを取り出す。最後であれば、終了する。
ステップ93で、差分合成部33は、そのコマンドがDATAコマンドかどうか判定する。DATAコマンドであれば、差分合成部33は、そのままDATAコマンドを出力し、再びステップ92で次のコマンドを抽出する。
FIG. 27 is a process flow diagram of difference synthesis in this embodiment.
In
In
In
ステップ93で、DATAコマンドでなかった場合は、COPYコマンドである。COPYコマンドの場合、差分合成部33は、ステップ94で、そのCOPYコマンドの範囲にある旧差分情報を抽出する。ステップ95で、差分合成部33は、その抽出された差分情報を順次読みこむ。
If it is not a DATA command in
ステップ96で、差分合成部33は、抽出された差分情報がDATAコマンドかどうかを判断する。DATAコマンドであれば、その部分はVer1.0でも存在しなかった部分であるため、たとえ「Ver2.0」から「3.0」へのコマンドがCOPYであってもCOPYできないことを示している。ステップ97で、差分合成部33は、DATAコマンドを出力し、再度ステップ95へ移行する。
なお、ステップ95で次のコマンドがなかった場合、ステップ92で、次の新差分のコマンドの処理に移行する。
In step 96, the
If there is no next command in
ステップ96で、DATAコマンドでなかった場合、ステップ99で、差分合成部33は、該当部分のCOPYコマンドとして出力し、ステップ95へ再び移行する。
If it is determined in step 96 that the command is not a DATA command, in
図28は、この実施の形態における差分合成においてコピーする範囲を抽出するための情報の例を示す図である。
差分合成部33は、各コマンドごとに新版となるアドレス情報とサイズ情報をペアにして保持しておく。これにより、アドレス情報からその部分にどのコマンドがあるかを2分木探索で探すことができる。
FIG. 28 is a diagram showing an example of information for extracting a range to be copied in the difference synthesis in this embodiment.
The
こうして合成して作成した差分情報は、そのまま順にコマンドの指示どおり実行すれば、プログラム領域を書き換えることができる。 The difference information created in this way can be rewritten as it is in accordance with the command instructions.
以上のようにして、差分を合成することができ、端末上に保持する差分量を一定に保ちつつ、サーバ上でも要求の少ない差分データを保持することなく、端末側からの様々な更新要求に答えることができる。 As described above, the difference can be combined, and the difference amount to be held on the terminal can be kept constant, and the server can make various update requests from the terminal side without holding the difference data with few requests on the server. I can answer.
この実施の形態におけるソフトウェア配布システムは、ソフトウェア配布のためのソフトウェア配布サーバ10(配布装置100)と、配布されたソフトウェアをインストールし実行する端末装置30とからなる。ソフトウェア配布システムは、出荷時のソフトウェアのバージョンから逐次複数回バージョンアップをする際には、ネットワークを経由して配布するソフトウェア量を減らすために差分情報を送る。
ソフトウェア配布サーバ10は、サーバ上には複数のバージョン間の差分抽出部12(差分生成部113)と、差分情報管理部13(差分記憶部115、差分版記憶部125)と、端末へ差分を配布する差分情報配布部15(差分配布部134)とを有する。
端末装置30は、配布された差分を記憶する差分記憶部32と、複数の差分が送られた場合には旧差分と合成する差分合成部33と、差分を適用する差分適用部34(有版データ更新部212)とを有する。
The software distribution system in this embodiment includes a software distribution server 10 (distribution apparatus 100) for software distribution and a
The
The
複数のバージョン間の差分抽出部12は、ファイル単位にそのテキストの差分またはバイナリレベルの差分を抽出し、旧版に適用すれば新版を端末上で作成できる形式にする。
The
差分情報は、旧版からの新版と同一部分をどこからどこまでをコピーするかを示す情報とどこに保存するかを示す情報とからなるCOPYというコマンドと、新版と旧版で異なる部分をどこからどれだけをどういう情報に変更するかを示すDATAコマンドとからなる。 The difference information consists of a COPY command consisting of information indicating where to copy the same part as the new version from the old version and information indicating where to save it, and what information from where and how different parts in the new version and the old version. A DATA command indicating whether or not to change.
差分情報管理部13は、その差分を作成した2つのバージョンの番号(差分版コード)と差分(差分データ)とを1組として複数個を管理し、あるバージョンと別のバージョンの差分を欲しいという要求があればそれを供給できる。
The difference
端末へ差分を配布する差分情報配布部15は、新しいバージョンができるたびにその前のバージョンとの差分をブロードキャストや、何らかの媒体に記憶し郵送による配布などを行う。
The difference
端末上で配布された差分を記憶する差分記憶部32は、フラッシュメモリやハードディスクドライブなど電源が切れても差分を記憶しつづけることができる。
The
差分合成部33は、端末上に記憶している差分情報と配布された差分情報から端末上のバージョンから最新のバージョンにバージョンアップするための差分情報を合成する。
The
差分合成部33は、古い差分情報内のコマンド列を探索し、新しい差分情報でそのままでは使えない部分を抽出し、新たなコマンド列に置き換える。
The
差分合成部33は、前記コマンド列の探索のために、古い差分情報には予めアドレスを指定すればその部分の対象差分コマンドがCOPYであるのかDATAであるのかを高速に探索するために木構造のインデックスやテーブルを保持する。
In order to search for the command string, the
差分適用部34は、差分情報のコマンドに従って、COPYすべき情報はCOPYをし、新たに付加するデータは付加し、プログラム領域を書き換える。
In accordance with the difference information command, the
これにより、プログラムイメージそのものやファイルそのものの差分を抽出してその差分を送信してできるだけ転送量を少なくして更新ができるとともに、多くのバージョンアップがあり、端末側では受信した差分をいつ適用するか自由に選択できる場合であっても、いざ適用を試みる際のユーザビリティが良く、更新時間を短することができる。 As a result, the difference between the program image itself and the file itself can be extracted and transmitted to reduce the transfer amount as much as possible, and there are many version upgrades. When the terminal receives the received difference Even if it can be freely selected, the usability when applying the application is good and the update time can be shortened.
10 ソフトウェア配布サーバ、11 ソフトウェア、12 差分抽出部、13 差分情報管理部、14 差分情報要求受付部、15 差分情報配布部、20 ネットワーク、30 端末装置、31 差分受信部、32 差分記憶部、33 差分合成部、34 差分適用部、100 配布装置、111 旧版データ記憶部、112 新版データ取得部、113 差分生成部、114 旧版データ更新部、115,222 差分記憶部、121 旧版コード記憶部、124 旧版コード更新部、125,223 差分版記憶部、131 要求取得部、132 配布判定部、133,224 差分合成部、134 差分配布部、200 端末装置、211 有版データ記憶部、212 有版データ更新部、213 現版コード記憶部、221 差分取得部、231 更新版取得部、240 適用判定部、241 単独適用判定部、242 合成適用判定部、243 差分要求部、511 差分コード、512 適用前コード、513 適用後コード、520 差分データ、521 コマンド、522 命令、523 サイズ、524 ソース、530 有版データ、531〜547 部分、800 配布システム、810 開発装置、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信装置、920 HDD、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 LAN。 10 software distribution server, 11 software, 12 difference extraction unit, 13 difference information management unit, 14 difference information request reception unit, 15 difference information distribution unit, 20 network, 30 terminal device, 31 difference reception unit, 32 difference storage unit, 33 Difference composition unit, 34 Difference application unit, 100 Distributing device, 111 Old version data storage unit, 112 New version data acquisition unit, 113 Difference generation unit, 114 Old version data update unit, 115, 222 Difference storage unit, 121 Old version code storage unit, 124 Old version code update unit, 125, 223 Difference version storage unit, 131 Request acquisition unit, 132 Distribution determination unit, 133,224 Difference synthesis unit, 134 Difference distribution unit, 200 Terminal device, 211 Plated data storage unit, 212 Plated data Update unit, 213 Current version code storage unit, 221 Difference acquisition unit, 231 Update Version acquisition unit, 240 application determination unit, 241 single application determination unit, 242 composite application determination unit, 243 difference request unit, 511 difference code, 512 code before application, 513 code after application, 520 difference data, 521 command, 522 command, 523 size, 524 source, 530 plate data, 531 to 547 parts, 800 distribution system, 810 development device, 901 display device, 902 keyboard, 903 mouse, 904 FDD, 905 CDD, 906 printer device, 907 scanner device, 910 system Unit, 911 CPU, 912 bus, 913 ROM, 914 RAM, 915 communication device, 920 HDD, 921 OS, 922 window system, 923 program group, 924 file group, 931 telephone, 932 file Proxy machine, 940 Internet, 941 gateway, 942 LAN.
Claims (11)
データを記憶する記憶装置と、データを処理する処理装置と、差分記憶部と、差分合成部とを有し、
上記差分記憶部は、上記記憶装置を用いて、上記有版データの第一の版と第二の版との間の差分を表わす第一の差分データと、上記有版データの第二の版と第三の版との間の差分を表わす第二の差分データとを記憶し、
上記差分合成部は、上記処理装置を用いて、上記差分記憶部が記憶した第一の差分データと第二の差分データとを合成して、上記有版データの第一の版と第三の版との間の差分を表わす第三の差分データを生成することを特徴とする差分管理装置。 For version data having three or more versions, in a difference management device that manages difference data representing a difference between two versions of the version data,
A storage device for storing data, a processing device for processing data, a difference storage unit, and a difference synthesis unit;
The difference storage unit uses the storage device, the first difference data representing the difference between the first version and the second version of the plate data, and the second version of the plate data And second difference data representing the difference between the first and third editions,
The difference synthesizing unit synthesizes the first difference data and the second difference data stored in the difference storage unit using the processing device, and the first version and the third version of the plate data A difference management device that generates third difference data representing a difference with a version.
上記更新コマンドは、複写コマンドと追加コマンドとのうち少なくともいずれかを含み、
上記複写コマンドは、上記有版データの更新後の版のうち上記有版データの更新前の版に同一の部分が存在する含有部分について、上記有版データの更新前の版のうち上記含有部分と同一の部分の位置を示し、上記同一の部分を上記含有部分に複写することを表わし、
上記追加コマンドは、上記有版データの更新後の版のうち上記有版データの更新前の版に同一の部分が存在しない非含有部分について、上記非含有部分と同一の追加データを有し、上記追加データを上記非含有部分に追加することを表わすことを特徴とする請求項1に記載の差分管理装置。 The difference data represents an update command for updating the version before updating the version data to the version after update,
The update command includes at least one of a copy command and an add command,
The copy command is used to determine whether the same part exists in the version before update of the version data among the version after update of the version data. Indicates the position of the same part, and represents copying the same part to the containing part,
The additional command has the same additional data as the non-contained part for the non-contained part in which the same part does not exist in the pre-updated version of the version data among the version after the version data is updated, The difference management apparatus according to claim 1, wherein the additional data is added to the non-contained portion.
上記有版データ記憶部は、上記記憶装置を用いて、上記有版データの第一の版を記憶し、
上記有版データ更新部は、上記処理装置を用いて、上記差分合成部が生成した第三の差分データに基づいて、上記有版データ記憶部が記憶した有版データの第一の版を更新して、上記有版データの第三の版を生成することを特徴とする請求項1乃至請求項3のいずれかに記載の差分管理装置。 The difference management device further includes a plate data storage unit and a plate data update unit,
The plate data storage unit stores a first version of the plate data using the storage device,
The plate data update unit updates the first version of the plate data stored in the plate data storage unit based on the third difference data generated by the difference synthesis unit using the processing device. The difference management apparatus according to claim 1, wherein a third version of the plate data is generated.
上記更新版取得部は、上記処理装置を用いて、上記有版データ記憶部が記憶した有版データを更新して生成する版を表わす更新版コードを取得し、
上記単独適用判定部は、上記処理装置を用いて、上記差分記憶部が記憶した差分データのなかに、上記有版データ記憶部が記憶した有版データを更新して上記更新版取得部が取得した更新版コードが表わす版の有版データを生成できる単独適用差分データがあるか否かを判定し、
上記合成適用判定部は、上記処理装置を用いて、上記差分記憶部が記憶した差分データのなかに単独適用差分データがないと上記単独適用判定部が判定した場合に、上記差分記憶部が記憶した差分データのなかに、複数の差分データを合成することにより、上記単独適用差分データを生成することができる複数の合成適用差分データがあるか否かを判定し、
上記差分合成部は、上記処理装置を用いて、上記差分記憶部が記憶した差分データのなかに、上記複数の合成適用差分データがあると上記合成適用判定部が判定した場合に、上記差分記憶部が記憶した複数の合成適用差分データを合成して、上記単独適用差分データを生成し、
上記有版データ更新部は、上記処理装置を用いて、上記差分記憶部が記憶した差分データのなかに単独適用差分データがあると上記単独適用判定部が判定した場合に、上記差分記憶部が記憶した単独適用差分データに基づいて、上記有版データ記憶部が記憶した有版データを更新し、上記差分記憶部が記憶した差分データのなかに、上記複数の合成適用差分データがあると上記合成適用判定部が判定した場合に、上記差分合成部が生成した単独適用差分データに基づいて、上記有版データ記憶部が記憶した有版データを更新することを特徴とする請求項4に記載の差分管理装置。 The difference management device further includes an update version acquisition unit, a single application determination unit, and a composite application determination unit,
The updated version acquisition unit acquires an updated version code representing a version generated by updating the version data stored in the version data storage unit using the processing device,
The single application determination unit uses the processing device to update the plate data stored in the plate data storage unit in the difference data stored in the difference storage unit and acquire the update version acquisition unit. Determine whether there is single application differential data that can generate the plate data of the version represented by the updated version code,
The composite application determination unit stores the difference storage unit when the single application determination unit determines that there is no single application difference data among the difference data stored in the difference storage unit using the processing device. It is determined whether there is a plurality of combined application difference data that can generate the single application difference data by combining a plurality of difference data in the difference data,
The difference synthesizing unit is configured to store the difference when the synthesis application determining unit determines that there is the plurality of synthesis application difference data among the difference data stored in the difference storage unit using the processing device. A plurality of combined application difference data stored by the unit to generate the single application difference data,
When the single application determining unit determines that there is single application difference data in the difference data stored by the difference storage unit using the processing device, the plate data update unit Based on the stored single application difference data, the plate data stored in the plate data storage unit is updated, and the difference data stored in the difference storage unit includes the plurality of combined application difference data. 5. The plate data stored in the plate data storage unit is updated based on the single application difference data generated by the difference combination unit when the combination application determination unit makes a determination. Difference management device.
上記差分要求部は、上記処理装置を用いて、上記差分記憶部が記憶した差分データのなかに、上記複数の合成適用差分データがないと上記合成適用判定部が判定した場合に、上記単独適用差分データ、および、上記複数の合成適用差分データ、および、上記差分記憶部が記憶した差分データと合成することにより上記単独適用差分データを生成できる補充差分データのうち少なくともいずれかを要求する差分要求メッセージを差分配布装置に対して通知し、
上記差分取得部は、上記処理装置を用いて、上記差分要求部が通知した差分要求メッセージに対する応答として上記差分配布装置が配布した差分データを取得し、
上記差分記憶部は、上記記憶装置を用いて、上記差分取得部が取得した差分データを記憶することを特徴とする請求項5に記載の差分管理装置。 The difference management device further includes a difference request unit and a difference acquisition unit,
The difference request unit is configured to use the processing device when the combination application determination unit determines that the plurality of combination application difference data is not included in the difference data stored in the difference storage unit. A difference request that requests at least one of the difference data, the plurality of combined application difference data, and the supplemental difference data that can generate the single application difference data by combining with the difference data stored in the difference storage unit Notify the message to the differential distribution device,
The difference acquisition unit acquires the difference data distributed by the difference distribution device as a response to the difference request message notified by the difference request unit, using the processing device,
The difference management device according to claim 5, wherein the difference storage unit stores the difference data acquired by the difference acquisition unit using the storage device.
上記要求取得部は、上記処理装置を用いて、上記第三の差分データを要求する差分要求メッセージを端末装置から取得し、
上記差分通知部は、上記差分合成部が生成した第三の差分データを上記端末装置に対して通知することを特徴とする請求項1乃至請求項6のいずれかに記載の差分管理装置。 The difference management device further includes a request acquisition unit and a difference notification unit,
The request acquisition unit acquires a difference request message for requesting the third difference data from the terminal device using the processing device,
The difference management device according to claim 1, wherein the difference notification unit notifies the terminal device of third difference data generated by the difference combining unit.
上記旧版データ記憶部は、上記記憶装置を用いて、上記有版データの旧版を記憶し、
上記新版データ取得部は、上記処理装置を用いて、上記有版データの新版を取得し、
上記差分生成部は、上記処理装置を用いて、上記旧版データ記憶部が記憶した有版データの旧版と、上記新版データ取得部が取得した有版データの新版との間の差分データを生成し、
上記差分記憶部は、上記記憶装置を用いて、上記差分生成部が生成した差分データを記憶し、
上記旧版データ更新部は、上記処理装置を用いて、上記旧版データ記憶部が記憶した有版データを更新して、上記新版データ取得部が取得した有版データの新版を記憶させることを特徴とする請求項1乃至請求項7のいずれかに記載の差分管理装置。 The difference management device further includes an old version data storage unit, a new version data acquisition unit, a difference generation unit, and an old version data update unit,
The old version data storage unit stores the old version of the version data using the storage device,
The new version data acquisition unit uses the processing device to acquire a new version of the plate data,
The difference generation unit generates difference data between the old version of the plate data stored in the old version data storage unit and the new version of the plate data acquired by the new version data acquisition unit using the processing device. ,
The difference storage unit stores the difference data generated by the difference generation unit using the storage device,
The old version data update unit updates the plate data stored in the old version data storage unit using the processing device, and stores the new version of the plate data acquired by the new version data acquisition unit. The difference management device according to any one of claims 1 to 7.
上記差分記憶部は、上記記憶装置を用いて、上記差分生成部が生成した順方向差分データと逆方向差分データとを記憶することを特徴とする請求項8に記載の差分管理装置。 The difference generation unit uses the processing device to obtain forward direction difference data for updating the old version of the plate data to a new version and reverse direction data for returning the new version of the version data to the old version. Generate
The difference management device according to claim 8, wherein the difference storage unit stores the forward difference data and the backward difference data generated by the difference generation unit using the storage device.
上記記憶装置が、上記有版データの第一の版と第二の版との間の差分を表わす第一の差分データと、上記有版データの第二の版と第三の版との間の差分を表わす第二の差分データとを記憶し、
上記処理装置が、上記記憶装置が記憶した第一の差分データと第二の差分データとを合成して、上記有版データの第一の版と第三の版との間の差分を表わす第三の差分データを生成することを特徴とする差分管理方法。 A difference management device having a storage device for storing data and a processing device for processing data manages difference data representing differences between the two versions of the plate data for plate data having three or more versions. In the difference management method to
Between the first difference data representing the difference between the first version and the second version of the plate data, and the second version and the third version of the plate data. Second difference data representing the difference of
The processing device synthesizes the first difference data and the second difference data stored in the storage device, and represents a difference between the first version and the third version of the plate data. A difference management method characterized by generating third difference data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009266352A JP5729901B2 (en) | 2009-11-24 | 2009-11-24 | Difference management apparatus, computer program, and difference management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009266352A JP5729901B2 (en) | 2009-11-24 | 2009-11-24 | Difference management apparatus, computer program, and difference management method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011113123A true JP2011113123A (en) | 2011-06-09 |
JP5729901B2 JP5729901B2 (en) | 2015-06-03 |
Family
ID=44235438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009266352A Expired - Fee Related JP5729901B2 (en) | 2009-11-24 | 2009-11-24 | Difference management apparatus, computer program, and difference management method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5729901B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013073417A (en) * | 2011-09-28 | 2013-04-22 | Clarion Co Ltd | Method and system for arranging object data, server device thereof, client device, and program |
JP2016051292A (en) * | 2014-08-29 | 2016-04-11 | 株式会社スクウェア・エニックス | Patch application system, patch application program, patch providing device, and patch application method |
WO2019111907A1 (en) * | 2017-12-06 | 2019-06-13 | クラリオン株式会社 | Updating device and updating system |
WO2020053928A1 (en) * | 2018-09-10 | 2020-03-19 | 三菱電機株式会社 | Air conditioning system and program update method for air conditioning system |
CN112486561A (en) * | 2020-11-25 | 2021-03-12 | 北京电力交易中心有限公司 | Version backtracking method and device based on block chain and related equipment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187206A (en) * | 1992-12-21 | 1994-07-08 | Fuji Xerox Co Ltd | File control unit |
JP2006031455A (en) * | 2004-07-16 | 2006-02-02 | Nec Corp | Software update system and method of mobile terminal using e-mail, and server system |
JP2008041112A (en) * | 2007-09-26 | 2008-02-21 | Mitsubishi Electric Corp | Difference data generator, method and program for generating difference data of difference data generator |
JP2008165377A (en) * | 2006-12-27 | 2008-07-17 | Nec Corp | Terminal management system, method and program |
JP2009086853A (en) * | 2007-09-28 | 2009-04-23 | Fujitsu Social Science Laboratory Ltd | Data composition processor, program, and processing method |
-
2009
- 2009-11-24 JP JP2009266352A patent/JP5729901B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187206A (en) * | 1992-12-21 | 1994-07-08 | Fuji Xerox Co Ltd | File control unit |
JP2006031455A (en) * | 2004-07-16 | 2006-02-02 | Nec Corp | Software update system and method of mobile terminal using e-mail, and server system |
JP2008165377A (en) * | 2006-12-27 | 2008-07-17 | Nec Corp | Terminal management system, method and program |
JP2008041112A (en) * | 2007-09-26 | 2008-02-21 | Mitsubishi Electric Corp | Difference data generator, method and program for generating difference data of difference data generator |
JP2009086853A (en) * | 2007-09-28 | 2009-04-23 | Fujitsu Social Science Laboratory Ltd | Data composition processor, program, and processing method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013073417A (en) * | 2011-09-28 | 2013-04-22 | Clarion Co Ltd | Method and system for arranging object data, server device thereof, client device, and program |
JP2016051292A (en) * | 2014-08-29 | 2016-04-11 | 株式会社スクウェア・エニックス | Patch application system, patch application program, patch providing device, and patch application method |
WO2019111907A1 (en) * | 2017-12-06 | 2019-06-13 | クラリオン株式会社 | Updating device and updating system |
WO2020053928A1 (en) * | 2018-09-10 | 2020-03-19 | 三菱電機株式会社 | Air conditioning system and program update method for air conditioning system |
CN112486561A (en) * | 2020-11-25 | 2021-03-12 | 北京电力交易中心有限公司 | Version backtracking method and device based on block chain and related equipment |
CN112486561B (en) * | 2020-11-25 | 2024-03-22 | 北京电力交易中心有限公司 | Version backtracking method and device based on block chain and related equipment |
Also Published As
Publication number | Publication date |
---|---|
JP5729901B2 (en) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409703B2 (en) | File versions within content addressable storage | |
US9690671B2 (en) | Manifest-based snapshots in distributed computing environments | |
US9612919B2 (en) | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets | |
US8612393B2 (en) | Application server provisioning system and method based on disk image profile | |
US11360938B2 (en) | Files having unallocated portions within content addressable storage | |
US7681076B1 (en) | Method and an apparatus to perform fast log replay | |
US6374400B1 (en) | Code server | |
JP5729901B2 (en) | Difference management apparatus, computer program, and difference management method | |
EP0752660A1 (en) | Client-server computer system and method utilizing a local client disk drive as a data cache | |
JP2013511766A (en) | Apparatus and method for loading and updating code of a cluster-based JAVA application system | |
US20080126444A1 (en) | Hybrid computer restore using network service | |
US20040128269A1 (en) | System and method for managing data through families of inter-related metadata tables | |
US20080104198A1 (en) | Extensible cache-safe links to files in a web page | |
CA2509008A1 (en) | System and method for transport of objects utilizing ldap directory structure | |
US11537617B2 (en) | Data system configured to transparently cache data of data sources and access the cached data | |
CN111200634B (en) | Cache resource linkage updating method, system and server | |
US8266189B2 (en) | Adapting between coupled and decoupled provider interfaces | |
US20090006619A1 (en) | Directory Snapshot Browser | |
US20200084273A1 (en) | Granular entry self-healing | |
US6928466B1 (en) | Method and system for identifying memory component identifiers associated with data | |
US8630982B2 (en) | Individual object restore | |
US8719812B1 (en) | Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation | |
WO2018090249A1 (en) | Log-structured storage method and server | |
US20160323379A1 (en) | Distributed storage of software images in computing systems | |
US11157459B2 (en) | Granular data self-healing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120808 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20121207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140418 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140428 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20140704 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150407 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5729901 Country of ref document: JP 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 |
|
LAPS | Cancellation because of no payment of annual fees |