JP4619804B2 - Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method - Google Patents
Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method Download PDFInfo
- Publication number
- JP4619804B2 JP4619804B2 JP2005019847A JP2005019847A JP4619804B2 JP 4619804 B2 JP4619804 B2 JP 4619804B2 JP 2005019847 A JP2005019847 A JP 2005019847A JP 2005019847 A JP2005019847 A JP 2005019847A JP 4619804 B2 JP4619804 B2 JP 4619804B2
- Authority
- JP
- Japan
- Prior art keywords
- checksum
- data
- block
- unit
- address conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、ソフトウェアのプログラムまたはデータの転送方式に関するものであって、ターゲット端末上のソフトウェアとサーバ装置上のソフトウェアの間の差分のみを効率良く転送するシステムに関する。 The present invention relates to a software program or data transfer method, and more particularly to a system that efficiently transfers only the difference between software on a target terminal and software on a server device.
あるバージョンのソフトウェアを保持している端末装置のバージョンアップをする場合に、有線、無線など様々な環境化において、適用できるバージョンアップ方法として、端末装置に差分ファイルを送り、旧版のソフトウェアに適用するという手法がある。しかしながら、この手法では、ソフトウェアの管理をきちんとしておかなければ、差分を作成したバイナリファイルイメージと差分を実際に適用する差分ファイルイメージとの間で不整合があると成立しなくなるという問題がある。 When upgrading a terminal device that holds a version of software, a difference file is sent to the terminal device and applied to the old version of the software as an applicable version upgrade method in various environments such as wired and wireless. There is a technique. However, with this method, if there is no proper software management, there is a problem that if there is a mismatch between the binary file image that created the difference and the difference file image to which the difference is actually applied, it will not be established. .
この問題を解決する方法として、「The rsync Algolithm」(1996年 オーストラリア国立大学ANU TR−CS−96−05)が提案されている。これは、送り先に旧版があり、送り元に新版がある場合に、新版ファイルを一定のブロックに分割してチェックサムを2種類の方法でとる。そして、旧版で同じ値になるブロックを比較しながら探す。そして、2種類のチェックサムの値が新版でも旧版でも両方ともに同じ値のブロックは同じであること意味する。このことから、違うチェックサムのブロックの情報のみ送信するという手法である。 As a method for solving this problem, “The rsync Algorithm” (1996 Australian National University ANU TR-CS-96-05) has been proposed. In this case, when there is an old version at the destination and a new version is at the source, the new version file is divided into fixed blocks and checksums are taken in two ways. Then, search for blocks that have the same value in the previous version. This means that the blocks having the same value in both the new version and the old version have the same value. For this reason, it is a technique of transmitting only information on blocks of different checksums.
しかし、この方式では、新版と旧版で異なる部分が一定の場所に固まっている傾向が強い場合には同一と見なされるブロックが多くなり有効である。しかし、異なる部分が一定の場所に固まらず分散している場合には結局同一のブロックがない。このため、全ブロック、即ち、ファイルごとの転送を余儀なくされる。 However, this method is effective because there are many blocks that are considered to be the same when there is a strong tendency that different parts of the new version and the old version are fixed in a certain place. However, if different parts are not fixed in a certain place and dispersed, there is no identical block after all. For this reason, it is necessary to transfer all blocks, that is, files.
例えば、組込み機器のソフトウェアを更新する場合である。組込み機器のソフトウェアはフラッシュROM(Read Only Memory)上にアドレス解決済みのコードで置かれる場合が多く、わずかな修正でも影響が全体に及ぶことが多い。このような場合、参照アドレスのズレが原因でアドレスを示す部分に差異が生じてくる。これらは参照側に修正がはいるので、全体に影響が及ぶことになる。 For example, it is a case where software of an embedded device is updated. Embedded device software is often placed in address-resolved code on a flash ROM (Read Only Memory), and even a slight modification often affects the whole. In such a case, a difference occurs in the portion indicating the address due to the shift of the reference address. Since these are corrected on the reference side, the whole will be affected.
また、特開平9−16404や特開平11−341550にもファイルの転送にあたってブロック化を行うことにより効率よく転送する技術が開示されている。この方式は、単にブロック化しているだけでチェックサムをとっているため、プログラムコードのようなデータのずれを想定しておらず、データの位置ずれがある場合には全く同じブロックが存在しない場合が多くなるという問題がある。
上記のように、位置ずれがあり、なおかつアドレス情報などが分散しているような場合には、従来の方法では差分を小さくして、効率的なファイル転送を行うことができなかった。このような場合にも、効率良くファイル転送をするシステムを提供する。 As described above, when there is misalignment and address information is dispersed, the conventional method cannot reduce the difference and perform efficient file transfer. In such a case, a system for efficiently transferring a file is provided.
本発明の更新用データ送信システムは、
アドレスが割り当てられた複数の要素データにより構成された第1全体データを格納する受信側装置に、アドレスが割り当てられた複数の要素データにより構成されるとともに前記第1全体データに対応するデータを示す第2全体データを格納する送信側装置から、前記第1全体データを前記第2全体データに更新するための更新用データを送信する更新用データ送信システムにおいて、
前記受信側装置は、
前記第1全体データを格納する受信側格納部と、
前記第1全体データを構成する前記複数の要素データの所定の範囲をアドレス変換対象範囲として所定のアドレス変換規則によりアドレス変換する受信側アドレス変換部と、
アドレス変換された前記アドレス変換対象範囲のうち一部の範囲を指定ブロックとして指定する受信側範囲指定部と、
前記受信側範囲指定部が指定した前記指定ブロックのチェックサムを所定の計算規則により指定ブロックチェックサムとして計算する受信側チェックサム計算部と、
前記受信側チェックサム計算部が計算した前記指定ブロックチェックサムを前記送信側装置に送信する受信側送信部と
を備え、
前記送信側装置は、
前記受信側装置が送信した前記指定ブロックチェックサムを受信する送信側受信部と、
前記第2全体データを格納する送信側格納部と、
前記第2全体データを構成する前記複数の要素データのうち前記アドレス変換対象範囲に対応する対応範囲を前記受信側アドレス変換部のアドレス変換規則に対応するアドレス変換規則によりアドレス変換する送信側アドレス変換部と、
アドレス変換された前記対応範囲を前記受信側範囲指定部が指定する前記指定ブロックのサイズに対応するサイズの複数のブロックに分割する送信側分割部と、
前記送信側分割部が分割した前記複数のブロックのそれぞれについて前記受信側チェックサム計算部の計算規則に対応する計算規則よりチェックサムを計算する送信側チェックサム計算部と、
前記送信側受信部が受信した前記指定ブロックチェックサムと前記送信側チェックサム計算部が計算した前記チェックサムとに基づいて、前記送信側分割部が分割した前記複数のブロックから所定のブロックを探し出す送信側ブロック探索部と、
前記送信側分割部が分割した前記複数のブロックのうち前記送信側ブロック探索部が探し出したブロック以外の未探索ブロックを前記更新用データとして前記受信側装置に送信する送信側送信部と
を備えたことを特徴とする。
The update data transmission system of the present invention includes:
A receiving-side apparatus that stores first overall data composed of a plurality of element data to which addresses are assigned indicates data corresponding to the first overall data and composed of a plurality of element data to which addresses are assigned. In an update data transmission system for transmitting update data for updating the first overall data to the second overall data from a transmission-side device that stores second overall data,
The receiving side device
A receiving-side storage for storing the first overall data;
A receiving-side address conversion unit that performs address conversion according to a predetermined address conversion rule with a predetermined range of the plurality of element data constituting the first overall data as an address conversion target range;
A receiving side range designating unit that designates a part of the address translation target range that has undergone address translation as a designated block;
A reception side checksum calculation unit that calculates a checksum of the designated block designated by the reception side range designation unit as a designated block checksum according to a predetermined calculation rule;
A reception side transmission unit that transmits the designated block checksum calculated by the reception side checksum calculation unit to the transmission side device;
The transmitting device is:
A transmitting side receiving unit that receives the specified block checksum transmitted by the receiving side device;
A transmission side storage unit for storing the second whole data;
Transmitting side address conversion for converting the corresponding range corresponding to the address conversion target range among the plurality of element data constituting the second whole data by the address conversion rule corresponding to the address conversion rule of the receiving side address conversion unit And
A transmitting side dividing unit that divides the address-converted corresponding range into a plurality of blocks having a size corresponding to the size of the designated block specified by the receiving side range specifying unit;
A transmission side checksum calculation unit that calculates a checksum from a calculation rule corresponding to a calculation rule of the reception side checksum calculation unit for each of the plurality of blocks divided by the transmission side division unit;
Based on the specified block checksum received by the transmission side reception unit and the checksum calculated by the transmission side checksum calculation unit, a predetermined block is searched from the plurality of blocks divided by the transmission side division unit. A transmission side block search unit;
A transmission-side transmission unit that transmits an unsearched block other than the block searched by the transmission-side block search unit among the plurality of blocks divided by the transmission-side division unit to the reception-side device as the update data. It is characterized by that.
本発明により、更新対象のソフトウェアを有するターゲット端末に、サーバ装置上のソフトウェアの差分のみを効率良く転送するシステムを提供することができる。 According to the present invention, it is possible to provide a system that efficiently transfers only the difference of software on a server device to a target terminal having software to be updated.
実施の形態1.
図1〜図11を用いて実施の形態1を説明する。実施の形態1は、サーバ装置からターゲット端末に更新用のデータを送信して、ターゲット端末の有するソフトウェアを更新するソフトウェア転送更新システムに関する。
The first embodiment will be described with reference to FIGS. The first embodiment relates to a software transfer update system in which update data is transmitted from a server device to a target terminal to update software of the target terminal.
本システムではターゲット端末、サーバ装置のそれぞれがチェックサムを計算する。チェックサムの呼び方を下記のように定める。
(1)図1のターゲット側第1チェックサム計算部1011の計算したチェックサムを「端末第1チェックサム」という。
(2)ターゲット側第2チェックサム計算部1012の計算したチェックサムを「端末第2チェックサム」という。
(3)サーバ側第1チェックサム計算部2011の計算したチェックサムを「サーバ第1チェックサムという。
(4)サーバ側第2チェックサム計算部2012の計算したチェックサムを「サーバ第2チェックサム」という。
In this system, each of the target terminal and the server device calculates a checksum. The name of the checksum is defined as follows.
(1) The checksum calculated by the target-side
(2) The checksum calculated by the target-side
(3) The checksum calculated by the server-side first
(4) The checksum calculated by the server-side second
図1は、実施の形態1に係るソフトウェア転送更新システム1000(更新用データ送信システムの一例)の構成を示す。ソフトウェア転送更新システム1000は、ターゲット端末100とサーバ装置200とを備えている。ターゲット端末100は、更新するべきターゲット側ソフトウェア1101を備えている。サーバ装置200は、更新用データをターゲット端末100に送信する。サーバ装置200は、更新用データを送信する送信側装置の一例である。また、ターゲット端末100は、更新用データを受信する受信側装置の一例である。
FIG. 1 shows a configuration of a software transfer update system 1000 (an example of an update data transmission system) according to the first embodiment. The software transfer update system 1000 includes a target terminal 100 and a server device 200. The target terminal 100 includes
ターゲット端末100は、受信側チェックサム計算部101、ターゲット側チェックサム範囲指定部103(受信側範囲指定部の一例)、ターゲット側論理アドレス変換部104(受信側アドレス変換部の一例)、ターゲット側通信部106(受信側送信部及び受信側受信部の一例)、及びターゲット側格納部110(受信側格納部の一例)を備える。また、受信側チェックサム計算部101は、ターゲット側第1チェックサム計算部1011、及びターゲット側第2チェックサム計算部1012とを備える。
The target terminal 100 includes a reception-side checksum calculation unit 101, a target-side checksum range specification unit 103 (an example of a reception-side range specification unit), a target-side logical address conversion unit 104 (an example of a reception-side address conversion unit), and a target side A communication unit 106 (an example of a reception side transmission unit and a reception side reception unit) and a target side storage unit 110 (an example of a reception side storage unit) are provided. The reception-side checksum calculation unit 101 includes a target-side first
サーバ装置200は、送信側チェックサム計算部201、送信側分割部203、サーバ側論理アドレス変換部204(送信側アドレス変換部の一例)、送信側ブロック探索部205、サーバ側通信部206(送信側送信部及び送信側受信部の一例)、及びサーバ側格納部210(送信側格納部の一例)を備える。また、送信側チェックサム計算部201は、サーバ側第1チェックサム計算部2011、及びサーバ側第2チェックサム計算部2012を備える。
The server apparatus 200 includes a transmission side checksum calculation unit 201, a transmission
ソフトウェア転送更新システム1000は、ターゲット側ソフトウェア1101を、ターゲット側ソフトウェア1101の更新後のソフトウェアであるサーバ側ソフトウェア2101の状態にするシステムである。そのためには、ターゲット端末100にサーバ側ソフトウェア2101をそのまま送信するのが一番簡単である。しかし、それでは送信するべきデータ送信量を減らすことはできない。そこで、本システムではターゲット側ソフトウェア1101をサーバ側ソフトウェア2101のバイナリコードと同じ状態にするため、そのままデータを送るのではなく、サーバ装置200からターゲット端末100に、できる限り差分情報を送る。これによりデータ転送量を減らす。以下にさらに説明する。
The software transfer update system 1000 is a system that sets the
ターゲット端末100及びサーバ装置200の構成要素の機能を説明する。ターゲット側格納部110は、ターゲット端末100で運用する現行のソフトウェア(プログラム)であるターゲット側ソフトウェア1101(第1全体データの一例)を格納する。ターゲット側ソフトウェア1101は、ターゲット端末100上の所定のソフトウェアであり、更新の対象である。ターゲット側ソフトウェア1101は通常バイナリコードで置かれている。
Functions of components of the target terminal 100 and the server device 200 will be described. The target-side storage unit 110 stores target-side software 1101 (an example of first overall data) that is current software (program) operated on the target terminal 100. The target-
(1)ターゲット側論理アドレス変換部104は、ターゲット側ソフトウェア1101のアドレスを変換する。後述のように、対応するサーバ側論理アドレス変換部204も、同じ規則によりサーバ側ソフトウェア2101のアドレス変換を行なう。
(2)アドレス変換することにより差分データを低減できる。この理由を以下に述べる。アドレス部のずれというのは、命令コードのほぼ決まった位置にある。プログラムの命令コードは、命令の種類を表す部分と、アドレスやレジスタ名などをあらわす部分から構成される。また、命令コードは4バイト命令や2バイト命令など決まった長さであることが多い。従って、アドレス部分を示す位置は、その命令の置かれているアドレスを4または2で割った時の余りとして必ず一定の値になるという特徴がある。
(3)この特徴を生かして、4または2といった命令長を示す数値で割ったあまりでアドレスを連続させるようなアドレス変換を行う。そうすると、位置ずれのために発生するアドレスの修正部分は全体に分散するのではなく、一部に集中する傾向になる。この特徴を生かすことにより、アドレス変換後の論理アドレス単位でブロックごとの比較を、新版(サーバ側ソフトウェア2101)と旧版(ターゲット側ソフトウェア1101)で行う。そうすることにより、同一のブロックが増え、結果的に差分量を減らすことができる。
(4)ターゲット側論理アドレス変換部104は、ターゲット側ソフトウェア1101の物理的なアドレス空間を、論理的なアドレス空間に変換する。図2〜図6を用いて具体的に説明する。例えば、対象アドレス空間z番地に対して、変換式は次の(式1)とする。
Y=(X/4の商)+(X/4の余り)*(z/4) (式1)
Yは論理アドレスの番地、Xは物理アドレスの番地である。
アドレス空間が0番地から99番地までの100個(z=100)の場合とする。
図2は、(式1)による物理アドレスと論理アドレスとの対応を示す表である。図3及び図4は(式1)のアドレス変換規則を図示したものである。(式1)は物理アドレスの縦方向(図3の矢印方向)を、論理アドレスの横方向(図4の矢印方向)に変換する。図2に示すように、物理アドレスから論理アドレスへの変換は、
0番地は0番地に、
1番地は25番地に変換され、
2番地は50番地に変換され、
3番地は75番地に変換され、
4番地は1番地に変換され、
5番地は26番地へ変換される。
(5)次に、図5、図6を用いて、アドレス変換により差分量を減少することができることを具体的に説明する。図5はターゲット端末100におけるターゲット側ソフトウェア1101を示す図である。図5に示すように、ターゲット側ソフトウェア1101は、「F0,00,7E,10・・・」等の要素データで構成されている。また、図5は、物理アドレス401(アドレス変換対象範囲の一例)と、アドレス変換後の論理アドレス402を示している。なお、アドレス変換式は上記の(式1)であり、Z=32(0番地〜31番地)である。このように、物理アドレス401はターゲット端末100上のデータである。論理アドレス402は、このデータの論理アドレス変換後のデータである。また、図6はサーバ装置200におけるサーバ側ソフトウェア2101を示す図である。図6に示すように、サーバ側ソフトウェア2101は、「F0,00,7E,12・・・」等の要素データで構成されている。また、図6は、物理アドレス451(対応範囲の一例)と、アドレス変換後の論理アドレス452を示している。アドレス変換式は上記の(式1)であり、Z=32(0番地〜31番地)である。物理アドレス451は、サーバ装置200上のデータであり、ターゲット端末100上のデータと異なるデータ(要素データ)を下線で示している。図6では、6つのデータ、「12」、「0E」、「53」、「0C」、「7A」、「0A」が図5のターゲット端末100上のデータと異なる。アドレス部が最も変わりやすいため、ワード単位の命令とした場合に、4バイトのうちの最後のバイトの情報が少しずつずれた形になっている。ターゲット端末100側の物理アドレス401とサーバ装置200側の物理451とを比較すると、3ワードずつ、12バイトを1ブロックとして考えたとしても同一のブロックは存在しない。よって、全ブロック、即ち全データをサーバ装置200からターゲット端末100にコピーすることが必要になる。しかしながら、サーバ側の論理アドレス452に示すように、アドレス変換後をみると、最初の2つのブロックは同一のブロックであり送る必要がない。最後のブロックに相当する部分のみを送るればよいことがわかる。このように、アドレス変換により差分量を減らすことができる。
(1) The target side logical
(2) Difference data can be reduced by address conversion. The reason for this will be described below. The deviation of the address part is at a substantially fixed position of the instruction code. The instruction code of the program is composed of a part representing the type of instruction and a part representing an address, a register name, and the like. In many cases, the instruction code has a fixed length such as a 4-byte instruction or a 2-byte instruction. Therefore, the position indicating the address part has a characteristic that it always has a constant value as the remainder when the address where the instruction is placed is divided by 4 or 2.
(3) Taking advantage of this feature, address conversion is performed such that addresses are continued by dividing by a numerical value indicating an instruction length such as 4 or 2. In this case, the corrected part of the address generated due to the positional deviation tends not to be distributed over the whole but to a part. By making use of this feature, the block-by-block comparison in the logical address unit after address conversion is performed between the new version (server-side software 2101) and the old version (target-side software 1101). By doing so, the number of identical blocks increases, and as a result, the difference amount can be reduced.
(4) The target side logical
Y = (quotient of X / 4) + (remainder of X / 4) * (z / 4) (Formula 1)
Y is the address of the logical address, and X is the address of the physical address.
Assume that there are 100 address spaces from
FIG. 2 is a table showing the correspondence between physical addresses and logical addresses according to (Equation 1). 3 and 4 illustrate the address conversion rule of (Equation 1). (Equation 1) converts the vertical direction of the physical address (arrow direction in FIG. 3) into the horizontal direction of the logical address (arrow direction in FIG. 4). As shown in FIG. 2, the conversion from a physical address to a logical address is
2 address is converted to 50 address,
No. 3 is converted to 75,
No. 4 is converted to No. 1,
(5) Next, the fact that the difference amount can be reduced by address conversion will be specifically described with reference to FIGS. FIG. 5 is a diagram showing target-
(1)ターゲット側チェックサム範囲指定部103は、ターゲット側第1チェックサム計算部1011、ターゲット側第2チェックサム計算部1012がチェックサムを計算する範囲を指定する。すなわち、ターゲット側チェックサム範囲指定部103は、アドレス変換後のターゲット側ソフトウェア1101に対して、所定のサイズのブロックを指定ブロックとして指定する。例えば、指定ブロックとして128バイトのブロックを指定する。例えばこの指定は、低いアドレスから順番に行なってかまわない。図7は、ターゲット側チェックサム範囲指定部103が初期指定範囲を指定した状態を示している。ターゲット側チェックサム範囲指定部103は、ターゲット側第1チェックサム計算部1011、ターゲット側第2チェックサム計算部1012に対し、ブロックを順番に渡してチェックサム値を受け取る。
(2)また、ターゲット側チェックサム範囲指定部103は、サーバ装置200とのやりとりで、このチェックサムをとるブロックの位置をずらすこともある。「1バイト」または「4バイト」または「1ワード」といった単位でずらす。そして、ターゲット側第1チェックサム計算部1011、1012にブロックを渡してチェックサムを計算させ、計算させたチェックサム値を受け取る。図8は、ターゲット側チェックサム範囲指定部103がチェックサムをとるブロックの位置をずらす状況を説明するため図である。この状況は、図10で後述するステップ302、ステップ303の動作である。サーバ装置側の「(A)」は、新たに追加された部分を示す。ターゲット側チェックサム範囲指定部103は、ブロック1と同じブロックがサーバ装置側にあった場合、次にブロック2を指定する(図10のステップ303に対応)。図8ではブロック2に等しいブロックはサーバ装置側に存在しない。そこで、ターゲット側チェックサム範囲指定部103は1ワード(4バイト)ぶんずらしてブロック3を指定する(図10のステップ302に対応)。ブロック3に相当するブロックはサーバ側に存在しないので、さらに1ワードずらしてブロック4を指定する。ブロック4に相当するブロックがサーバ側に存在する。このように、単にブロック化してチェックサムをとるのではなく、データの位置ずれを考慮して、範囲(ブロック)を動的に指定する。これにより、データ位置のズレがある場合にも差分量を減少することができる。
(1) The target-side checksum
(2) In addition, the target-side checksum
(1)ターゲット側第1チェックサム計算部1011は、ターゲット側チェックサム範囲指定部103が一定のデータを一定の大きさに区切った場合に(アドレス変換後のデータの所定部分を範囲指定した場合に)、「第1の計算規則」により「端末第1チェックサム」をとる。ターゲット側第1チェックサム計算部1011は、具体的には、「第1の計算規則」として、例えば、単純に足し算し、オーバーフローした部分は捨てるという方法を用いてかまわない。
(2)ターゲット側第2チェックサム計算部1012は、ターゲット側第1チェックサム計算部1011が計算した範囲について、前記ターゲット側第1チェックサム計算部1011とは異なる「第2の計算規則」により「端末第2チェックサム」をとる。第2の計算規則として、例えば、あるメモリの値はそのままで、次の番地のメモリの値は1ビットずらし、その次は2ビットずらしというように、少しずつずらすという規則がある。1ビットずらすというのは、2をかける、4をかけるというように掛け算をしてから足すということになる。
(1) The target-side first
(2) The target-side second
ターゲット側通信部106は、サーバ装置200との通信を行なう。
The target
サーバ側格納部210は、ターゲット端末100が格納するターゲット側ソフトウェア1101を更新したソフトウェア(プログラム)に相当するサーバ側ソフトウェア2101(第2全体データの一例)を格納する。サーバ側ソフトウェア2101は、ターゲット側ソフトウェア1101が更新されたソフトウェアに相当する。サーバ側ソフトウェア2101は、ターゲット端末100で実行し、または配置するためのソフトウェアである。
The server-side storage unit 210 stores server-side software 2101 (an example of second overall data) corresponding to software (program) updated from the target-
サーバ側論理アドレス変換部204は、ターゲット側論理アドレス変換部104と同一の規則でサーバ側ソフトウェア2101のアドレスを変換する。
The server side logical
送信側分割部203は、アドレス変換されたサーバ側ソフトウェア2101をターゲット側チェックサム範囲指定部103が指定した指定ブロックのサイズと同じサイズの複数のブロックに分割する。図7のサーバ側装置は、分割の例を示している。
The transmission
サーバ側第1チェックサム計算部2011はターゲット側第1チェックサム計算部1011に対応し、サーバ側第2チェックサム計算部2012はターゲット側第2チェックサム計算部1012に対応する。サーバ側第1チェックサム計算部2011、サーバ側第2チェックサム計算部2012は、ターゲット側第1チェックサム計算部1011、ターゲット側第2チェックサム計算部1012のそれぞれと同じ規則により、サーバ装置200において「サーバ第1チェックサム」、「サーバ第2チェックサム」を計算する。
The server-side first
送信側ブロック探索部205は、ターゲット端末100から送信された指定ブロックについてのあるチェックサム値から、その値を持つブロックを探索して探し出す。このブロック探索では、送信側分割部203により分割されたすべてのブロックに対して、サーバ側第1チェックサム計算部2011が、「サーバ第1チェックサム」を計算しておく。このチェックサム値ごとにブロックを示す情報(例えばブロック番号)を記憶しておくことにより、ブロックを簡単に探すことができる。
The transmission-side
サーバ側通信部206は、ターゲット端末100と通信を行なう。
The server
次に、図9、図10に示すフローチャートを用いて、ソフトウェア転送更新システム1000の動作を説明する。ソフトウェア転送更新システム1000では、サーバ装置200が差分を生成し、ターゲット端末100に送付する。以下その具体例を示す。 Next, the operation of the software transfer update system 1000 will be described using the flowcharts shown in FIGS. In the software transfer update system 1000, the server device 200 generates a difference and sends it to the target terminal 100. Specific examples are shown below.
図9のステップ200がターゲット端末100側の動作フローの起点であり、ステップ250がサーバ装置200側の動作フローの起点である。 Step 200 in FIG. 9 is the starting point of the operation flow on the target terminal 100 side, and step 250 is the starting point of the operation flow on the server apparatus 200 side.
ステップ201で、ターゲット端末100側がサーバ装置200に更新要求を行う。ステップ251で、サーバ装置200はこの更新要求を受け付け、受け付けた旨の応答を返す。これによりターゲット端末100、サーバ装置200ともにフローがスタートする。 In step 201, the target terminal 100 side makes an update request to the server device 200. In step 251, the server apparatus 200 accepts this update request and returns a response indicating acceptance. As a result, the flow starts for both the target terminal 100 and the server device 200.
ステップ202で、ターゲット端末100側では、ターゲット側論理アドレス変換部104が、ターゲット側ソフトウェア1101に対して物理アドレスを論理アドレスに変換する。この変換は、ターゲット側論理アドレス変換部104の動作で説明した例に従う。アドレス変換では、1ワードを4バイトであらわすようなCPU(Cnetral Processing Unit)においては、4を基本に論理アドレスを物理アドレスに変換する。また、アドレス情報を示すインデアンによっては、論理変換式の余りの4と3をそれぞれ3、または4として扱うこともある。インデアンによっては、アドレスパートのずれが、命令コードの3バイト目に出やすいためである。この物理アドレスと論理アドレスの変換による効果は、差分の元となるアドレス部の違いが物理アドレスで示したときには全アドレス空間に現れるのに対して、論理アドレスに変換するとアドレス空間中の分布で集中して現れることによる。このため、差分の表現上小さく表現できるという効果がある。
In step 202, on the target terminal 100 side, the target side logical
ステップ203では、ターゲット側チェックサム範囲指定部103が最初の指定ブロック(図7の初期指定範囲)を指定する。そして、最初の指定ブロックについて、ターゲット側第1チェックサム計算部1011が「端末第1チェックサム」(指定ブロックチェックサムの一例)を計算する。
In
その後、ステップ204で、ターゲット端末100はサーバ装置200に「第1チェックサム同一ブロック」の探索を要求する探索要求を送信する。この「第1チェックサム同一ブロック」とは、送信側分割部203が分割したブロックのうち(この分割はステップ253で後述する)、端末第1チェックサムと同一の値のサーバ第1チェックサムを有するブロックである。またターゲット端末100は、探索要求とともに最初の指定ブロックの端末第1チェックサムを送信する。
Thereafter, in
一方、ステップ252において、サーバ装置200はターゲット端末100側と同様に、サーバ側論理アドレス変換部204が、サーバ側ソフトウェア2101に対して、物理アドレスを論理アドレスに変換する処理を行う。
On the other hand, in step 252, the server apparatus 200 performs a process of converting a physical address into a logical address for the server-
ステップ253において、送信側ブロック探索部205が、アドレス変換されたサーバ側ソフトウェア2101の全体を一定のブロックサイズに分割する。この場合一定のサイズとは、ターゲット側チェックサム範囲指定部103が指定する指定ブロックのサイズと同じサイズである。そして、サーバ側第1チェックサム計算部2011が各ブロックの「サーバ第1チェックサム」を計算する。この計算は、フローの開始以前にすべてやっておいても問題ない。
In step 253, the transmission-side
ステップ254において、送信側ブロック探索部205は、分割された各ブロックと、各ブロックの「サーバ第1チェックサム」との対応を示す「ブロック検索テーブル」を作成する。
In
図11は、「ブロック検索テーブル」の一例を示す。図に示すように「ブロック検索テーブル」は、「サーバ第1チェックサム」、その「サーバ第1チェックサム」を有するブロックの「ブロック番号」、後述の「複数フラグ」、及び「サーバ第2チェックサム」を有している。なお「サーバ第2チェックサム」は、後述する。送信側ブロック探索部205は、この「ブロック検索テーブル」を用いることにより、どのブロックがいかなる「サーバ第1チェックサム」を持つかを調べることができる。具体的には「サーバ第1チェックサム」をインデックスにして、ブロック番号を検索できる。この場合、同一の「サーバ第1チェックサム」を持つ複数のブロックが存在する場合がある。このため、複数の候補があるかどうかを示す「複数フラグ」も用意する。また、「サーバ第1チェックサム」に基づいて該当ブロックを探索する場合、「ブロック検索テーブル」において、ハッシュ関数を用いてテーブルのポインタを見つけやすくすることもできる。あるいは、バイナリ探索を用いても構わない。
FIG. 11 shows an example of a “block search table”. As shown in the figure, the “block search table” includes a “server first checksum”, a “block number” of the block having the “server first checksum”, a “multiple flag” described later, and a “server second check”. "Sam". The “server second checksum” will be described later. The transmission-side
ステップ255では、ステップ204から「第1チェックサム同一ブロック」の探索要求を「端末第1チェックサム」とともに受信する。また、送信側ブロック探索部205は受信した「端末第1チェックサム」をもとに、ステップ254で作成したブロック検索テーブルで「第1チェックサム同一ブロック」を検索する。また分割したブロックの数、ブロック番号などを含むブロック情報を送信する。
In
ステップ256で、「第1チェックサム同一ブロック」がなかった場合は後述するステップ353へ進む。「第1チェックサム同一ブロック」があった場合は、ステップ257において、サーバ装置200は、ターゲット端末100に最初の指定ブロックの「端末第2チェックサム」を要求する。 If there is no “first checksum same block” in step 256, the process proceeds to step 353 described later. If there is “the same first checksum block”, in step 257, the server apparatus 200 requests the “terminal second checksum” of the first designated block from the target terminal 100.
ステップ258において、サーバ側第2チェックサム計算部2012は「第1チェックサム同一ブロック」について、「サーバ第2チェックサム」を計算する。この処理は予めやっておいて上記のブロック検索テーブルに持たせておいても問題ない。図11のブロック検索テーブルは、予め処理をしておいた場合を示している。
In step 258, the server-side second
「端末第2チェックサム」の要求をうけたターゲット端末100側では、ステップ205において、「端末第2チェックサム」の要求かどうかを判定する。違う要求が来た場合にはステップ後述するステップ301へ進む。
The target terminal 100 that has received the request for “terminal second checksum” determines in
「端末第2チェックサム」の要求だった場合には(ステップ205のYES)、ステップ206で、ターゲット側第2チェックサム計算部1012が最初の指定ブロックについて「端末第2チェックサム」(指定ブロックチェックサムの一例)を計算する。
If it is a request for “terminal second checksum” (YES in step 205), in
ステップ207において、最初の指定ブロックの「端末第2チェックサム」を応答としてサーバ装置200に返信し、ステップ300へ進む。 In step 207, the “terminal second checksum” of the first designated block is returned to the server apparatus 200 as a response, and the process proceeds to step 300.
サーバ装置200側では、ステップ259において、ターゲット端末100からの応答として、「端末第2チェックサム」を受信し、ステップ350へ進む。そして図10のステップ300、ステップ350に進む。
On the server device 200 side, in
サーバ装置200側ではステップ350から続きのフローが開始される。ステップ351において、送信側ブロック探索部205は、「サーバ第1チェックサム」が「端末第1チェックサム」と等しかったブロックの中に、「サーバ第2チェックサム」が「端末第2チェックサム」と等しいブロックがあるかどうか探索する。例えば、受信した「端末第1チェックサム」が「4」、「端末第2チェックサム」が「2」の場合、ブロック番号「7」を検索することとなる。この探索は、上記のブロック検索テーブルを順番に値を見ていけばよい。また、「サーバ第2チェックサム」が「端末第2チェックサム」と等しいブロックは、見つかるとしてもたかだか1個である。
On the server device 200 side, the subsequent flow is started from step 350. In step 351, the transmission side
見つかった場合はステップ352へ進む。見つからなかった場合はステップ353へ進む。 If found, the process proceeds to step 352. If not found, the process proceeds to step 353.
ステップ352では、サーバ装置200はターゲット端末100に、「サーバ第2チェックサム」が「端末第2チェックサム」と同じである「第2チェックサム同一ブロック」があった旨と、何番目のブロックかの情報を送る。 In step 352, the server device 200 indicates that the target terminal 100 has a “second checksum identical block” in which the “server second checksum” is the same as the “terminal second checksum”, and what number block Send the information.
ステップ301において、ターゲット端末100は「第2チェックサム同一ブロック」があったことを知る。この場合ステップ303へ進む。
In
ステップ303において、「第2チェックサム同一ブロック」が何番目のブロックかの情報を得て、その位置にターゲット端末100で調べたデータが移動することを記憶した上で、ターゲット端末100上で「ブロック分ずらした位置」から次のブロックに関する調査フローとしてステップ203に戻る。「ブロック分ずらした位置」とは、図8に示したブロック2の位置である。そして、ステップ304にて、「ターゲット端末100側にはもはや調査するべきブロックがない、すべて調査し終えた」と最終的に判断した場合にはステップ305へ進む。
In step 303, information on what block the “second checksum same block” is obtained is stored, and the fact that the data examined by the target terminal 100 moves to that position is stored. The flow returns to step 203 as the investigation flow for the next block from the “position shifted by the block”. The “position shifted by the block” is the position of the
サーバ装置200側では、ステップ351において「第2チェックサム同一ブロック」がなかった場合には(ステップ351のNO)ステップ353に進み(ステップ351のNO)、サーバ装置200は、「第2チェックサム同一ブロック」がなかったという情報をターゲット端末100に通知する。 On the server device 200 side, if there is no “second checksum identical block” in step 351 (NO in step 351), the server device 200 proceeds to step 353 (NO in step 351). Information indicating that there is no “same block” is notified to the target terminal 100.
ステップ301において、ターゲット端末100は「第2チェックサム同一ブロック」がないと判断し(ステップ301のNO)、ステップ302に進む。ターゲット側チェックサム範囲指定部103は、1バイトや1ワードといった「1単位分をずらして」次のブロック探索に移る。「1単位分をずらす」とは、例えば図8においてブロック2からブロック3に移る場合である。
In
ステップ305では、ターゲット端末100側は全部ブロックを探索完了したことを示す完了通知をサーバ装置200側に送信するとともに、「端末第1チェックサム」及び「第2チェックサム」の両者ともに等しい「同一ブロック」を見つけられなかった部分に関して、送信側分割部203が分割したブロックのうち何番目のブロックかという情報をサーバ装置200側に送る。これは、ターゲット端末100はステップ205においてサーバ装置200から全ブロック数、ブロック番号を含むブロック情報を受信しており、また、ステップ301、ステップ352においてブロック番号を受信している。このため、サーバ装置200が分割した複数のブロックのうち、「端末第1チェックサム」及び「第2チェックサム」の両者ともに等しい「同一ブロック」以外のブロックである未探索ブロックの番号を特定することができる。その特定した未探索ブロックのブロック番号をステップ305でサーバ装置200に通知する。
In step 305, the target terminal 100 transmits a completion notification indicating that all blocks have been searched to the server apparatus 200, and both the “terminal first checksum” and the “second checksum” are equal to “same” With respect to the part where the “block” could not be found, the transmission
サーバ装置200側では、ステップ352、353の後、ステップ354において、ターゲット端末100側から受信した完了通知の内容を確認する。全ブロック終了であればステップ355へ進む。チェックサム値など異なる通知であれば、ステップ255へ進む。 On the server device 200 side, after Steps 352 and 353, in Step 354, the content of the completion notification received from the target terminal 100 side is confirmed. If all blocks are completed, the process proceeds to step 355. If it is a different notification such as a checksum value, the process proceeds to step 255.
ステップ355において、サーバ装置200側はターゲット端末100から要求された未探索ブロックに関してのみ情報をターゲット端末100に送信し、処理を終了する。 In step 355, the server apparatus 200 transmits information to the target terminal 100 only with respect to the unsearched block requested from the target terminal 100, and ends the process.
ステップ306において、ターゲット端末100側は必要ブロックを受信する。そして、ステップ307において、ターゲット端末100内部で移動するべきブロックのコピーと、受信したブロックの書き込みをして処理を完了する。
In step 306, the target terminal 100 side receives the necessary block. In
詳細は記載しないが、この書き込みの後、全体の書き込みを確認するための全体のチェックサムや、CRC(Cyclic Redundancy Check)計算を行い、サーバ側の値と同じかという確認処理を入れても良い。 Although details are not described, after this writing, an entire checksum for confirming the entire writing or CRC (Cyclic Redundancy Check) calculation may be performed to check whether the value is the same as the value on the server side. .
ソフトウェア転送更新システム1000は、ターゲット側論理アドレス変換部104及びサーバ側論理アドレス変換部204がアドレス変換を行なうので、サーバ装置200からターゲット端末100に送信するべき更新用データを、より少なくすることができる。
In the software transfer update system 1000, since the target-side logical
ソフトウェア転送更新システム1000では、送信側チェックサム計算部201、及び受信側チェックサム計算部101が、対象となるブロックについて互いに異なる複数のチェックサムを計算するので、更新されていないブロックを確実に発見することができる。 In the software transfer update system 1000, the transmission-side checksum calculation unit 201 and the reception-side checksum calculation unit 101 calculate a plurality of different checksums for the target block, so that an unupdated block can be found reliably. can do.
送信側ブロック探索部205は、ハッシュ関数法とバイナリ探索法のいずれかを使用してブロックを探索するので、容易にブロックを探し出すことができる。
Since the transmission side
ソフトウェア転送更新システム1000では、サーバ装置200のサーバ側論理アドレス変換部204がアドレス変換するので、送信するべき更新用データの送信量を少なくすることができる。
In the software transfer update system 1000, since the server-side logical
ソフトウェア転送更新システム1000では、ターゲット端末100のターゲット側論理アドレス変換部104は、サーバ装置200のサーバ側論理アドレス変換部204と同じ規則によりアドレス変換するので、ターゲット端末100が受信するべき更新用データの受信量を少なくすることができる。
In the software transfer update system 1000, the target-side logical
実施の形態2.
図12〜図15を用いて実施の形態2を説明する。実施の形態1では、図12に示すようにソフトウェア全体を物理アドレスから論理アドレスに変換する場合を説明した。実施の形態2では、ソフトウェア全体ではなく、ソフトウェアの部分をアドレス変換する場合を説明する。実施の形態1で述べたように、全体に差分が散らばっている場合に、アドレス変換により、この散らばった差分が集中した位置に出てくる傾向があることを述べた。しかしながら、ソフトウェアにおいて、アドレスではなく、例えば、画像データが変更されたような場合には、アドレス情報と関係なく差分が一般に出てくる。
The second embodiment will be described with reference to FIGS. In the first embodiment, the case where the entire software is converted from a physical address to a logical address as shown in FIG. 12 has been described. In the second embodiment, a case will be described in which the address of the software portion is converted instead of the entire software. As described in the first embodiment, it has been described that, when differences are scattered throughout, there is a tendency that the scattered differences appear at concentrated positions by address conversion. However, in software, for example, when image data is changed instead of an address, a difference generally appears regardless of address information.
また、一般にプログラムとデータは別に扱われていることが多い。そこで、プログラム領域ならプログラム領域だけを論理アドレスと物理アドレスで変換し、データ領域はデータ領域だけで変換する方が差分が集中して表現できるという効果がある場合もある。ソフトウェアの更新要求(図のステップ201)の際に、論理アドレスと物理アドレスの「変換位置情報」(アドレス変換するデータ範囲)の送受信も行い、変換位置の単位で変換を行うようにすることにより、より差分を減少させる効果が得られる。 In general, programs and data are often handled separately. Therefore, there may be an effect that if the program area is converted only by the logical address and the physical address and the data area is converted only by the data area, the difference can be expressed in a concentrated manner. When a software update request (step 201 in the figure) is performed, “translation position information” (data range for address conversion) of logical addresses and physical addresses is also transmitted and received, and conversion is performed in units of conversion positions. Thus, the effect of reducing the difference can be obtained.
また、データ領域といっても画像データの場合はアドレスと関係ないので、変換しても効果がないが、アドレステーブルのような場合は変換すると差分減少の効果がある。したがって、この交換する「変換位置情報」の中に、論理アドレスへの変換をすべきかどうかの情報をも含めることにより、一部アドレス変換しないという方法をとることも可能である。 Even if it is a data area, in the case of image data, since it is not related to the address, conversion is not effective. However, in the case of an address table, conversion has the effect of reducing the difference. Therefore, it is also possible to take a method in which some addresses are not converted by including information on whether or not to convert into logical addresses in the “conversion position information” to be exchanged.
これらの方法により、結果的に差分が一部のブロックに集中し、送信するべき差分量を減らす効果が生じる。以下に「変換位置情報」に基づき、所定の位置(範囲)をアドレス変換する具体的な場合を説明する。 By these methods, the difference is concentrated on a part of the blocks as a result, and the effect of reducing the difference amount to be transmitted occurs. Hereinafter, a specific case in which a predetermined position (range) is address-converted based on “conversion position information” will be described.
まずモジュールごとに変換する場合が考えられる。ソフトウェア(プログラム)は、通常、ソフトウェアの論理的な単位である複数のモジュールから構成されている。ターゲット側ソフトウェア1101、及びサーバ側ソフトウェア2101がモジュールから構成されている場合、図13に示すように、モジュールごとにアドレス変換をするようにしてもよい。
First, it is possible to convert each module. The software (program) is usually composed of a plurality of modules that are logical units of software. When the
図13では、端末側モジュール1(現行プログラム構成モジュールの一例)と、この端末側モジュール1に対応するサーバ側のサーバ側モジュール1(更新プログラム構成モジュールの一例)とをアドレス変換している。同様に、端末側モジュール2、3、・・nとこれらのそれぞれに対応するサーバ側モジュール2、3、・・nとアドレス変換する場合を示している。なお、図13ではすべてのモジュールをアドレス変換しているが、特定のモジュールについてアドレス変換しても構わない。例えば、図13において、端末側モジュール1とサーバ側モジュール1とだけをアドレス変換しても構わない。モジュールごとにアドレス変換することで、より差分を集中させることができる。
In FIG. 13, the terminal side module 1 (an example of the current program configuration module) and the server side server side module 1 (an example of the update program configuration module) corresponding to the
また、プログラムの実行部分を変換する場合が考えられる。上記のようにプログラムとデータとは別に扱われていることが多い。例えば、モジュールは、モジュールのうちプログラムを実行する領域を示す「プログラム実行部分」と、モジュールのうちプログラムに使用するデータ領域を示す「プログラムデータ部分」とから構成される場合が多い。そのような場合は、プログラム実行部分にのみ物理アドレスと論理アドレスの変換を行なっても構わない。図14はプログラム実行部分にのみアドレス変換を行なう場合を示す図である。図14ではすべてのモジュールのプログラム実行部分どうしをアドレス変換しているが、上記と同様、特定のモジュールのプログラム実行部分どうしをアドレス変換しても構わない。このようなアドレス変換により、差分を集中することができる。 Moreover, the case where the execution part of a program is converted can be considered. As described above, programs and data are often handled separately. For example, a module is often composed of a “program execution part” indicating an area for executing a program in the module and a “program data part” indicating a data area used for the program in the module. In such a case, the physical address and the logical address may be converted only in the program execution part. FIG. 14 is a diagram showing a case where address translation is performed only on the program execution portion. In FIG. 14, the program execution portions of all modules are address-converted, but the program execution portions of specific modules may be address-converted as described above. Differences can be concentrated by such address conversion.
また、「プログラムデータ部分」をアドレス変換する場合も考えられる。「プログラムデータ部分」であっても、その「プログラムデータ部分」がアドレスを意味するデータの集まりの場合がある。そのような場合には、「アドレスを意味するプログラムデータ部分」に物理アドレスと論理アドレスの変換を行う。図15は、アドレスを意味するプログラムデータ部分(ターゲット側2箇所、サーバ装置側2箇所)にアドレス変換を行なう場合を示している。 It is also conceivable that the “program data portion” is address-converted. Even if it is a “program data portion”, the “program data portion” may be a collection of data meaning an address. In such a case, a physical address and a logical address are converted into a “program data portion meaning an address”. FIG. 15 shows a case where address conversion is performed on program data portions (two locations on the target side and two locations on the server device side) that mean addresses.
実施の形態2では、ソフトウェア転送更新システム1000において、ターゲット側論理アドレス変換部104、及びサーバ側論理アドレス変換部204が、プログラムのモジュールを単位にアドレス変換するので、差分を集中させることができる。
In the second embodiment, in the software transfer update system 1000, the target-side logical
実施の形態2では、ソフトウェア転送更新システム1000において、ターゲット側論理アドレス変換部104、及びサーバ側論理アドレス変換部204が、プログラムのモジュールのうちプログラム実行部分を対象にアドレス変換するので、差分を集中させることができる。
In the second embodiment, in the software transfer update system 1000, the target-side logical
実施の形態2では、ソフトウェア転送更新システム1000において、ターゲット側論理アドレス変換部104、及びサーバ側論理アドレス変換部204が、プログラムのモジュールのうちプログラムデータ部分も対象としてアドレス変換するので、より差分を集中させることができる。
In the second embodiment, in the software transfer update system 1000, the target-side logical
実施の形態3.
図16、図17を用いて実施の形態3を説明する。図16は実施の形態3に係るソフトウェア転送更新システム2000(更新用データ送信システムの一例)の構成を示す。実施の形態3は、実施の形態1に対して、ターゲット端末300、サーバ装置400が、いずれも3つのチェックサム計算部を備える点が異なる。図16において、ターゲット側第3チェックサム計算部1013とサーバ側第3チェックサム計算部2013とは同じ計算規則で「端末第3チェックサム」、「サーバ第3チェックサム」を計算する。また、第1〜第3のチェックサム計算部の計算規則は、互いに異なる。
The third embodiment will be described with reference to FIGS. FIG. 16 shows a configuration of a software transfer update system 2000 (an example of an update data transmission system) according to the third embodiment. The third embodiment is different from the first embodiment in that the target terminal 300 and the server device 400 each include three checksum calculation units. In FIG. 16, the target-side third
図17を用いて動作を説明する。ステップ401〜ステップ403は、実施の形態1と同様である。
The operation will be described with reference to FIG.
送信側ブロック探索部205は、端末第2チェックサムを受信した場合、「サーバ第2チェックサム」が「端末第2チェックサム」に等しい複数の「第2チェックサム同一ブロック」を発見する場合がある(ステップ404)。その場合、サーバ側第3チェックサム計算部2013は、この複数のブロックのそれぞれについて、「サーバ第3チェックサム」を計算する。「サーバ第1チェックサム」および「サーバ第2チェックサム」は、予め計算しておいても構わなかった。サーバ第3チェックサムも予め計算しておいてもよい。しかし、第2チェックサムが互いに等しい複数のブロックが見つかることは非常に稀である。そのため、通常は、第2チェックサムの互いに等しい複数のブロックが見つかった場合に、「サーバ第3チェックサム」を計算するようにする。
When receiving the terminal second checksum, the transmission-side
ステップ406において、サーバ装置400はターゲット端末300に「端末第3チェックサム」を要求する。
In
ステップ407において、ターゲット側第3チェックサム計算部1013が、対象の指定ブロックの「端末第3チェックサム」を計算する。
In
ステップ408において、ターゲット端末300はサーバ装置400に端末第3チェックサムを送信する。
In
ステップ409において、サーバ装置400は「端末第3チェックサム」を受信し、受信した「端末第3チェックサム」と同一の「サーバ第3チェックサム」を有するブロックを探索する。
In
上記ではチェックサム計算部が3つの場合を示したが、これに限ることは無く、チェックサム計算部は3つ以上でもよく、動作は上記と同様である。 Although the case where there are three checksum calculation units has been described above, the present invention is not limited to this, and there may be three or more checksum calculation units, and the operation is the same as described above.
実施の形態3のソフトウェア転送更新システム2000は、ターゲット端末とサーバ装置ともチェックサム計算部をそれぞれ3つ備えるので、ターゲット端末側とサーバ装置側の互いに等しいブロックを確実に探索することができる。 Since the software transfer update system 2000 according to the third embodiment includes three checksum calculators for both the target terminal and the server device, it is possible to reliably search for equal blocks on the target terminal side and the server device side.
このように本発明により、更新のためのソフトウェアの転送量を減らすことができる。 Thus, according to the present invention, it is possible to reduce the transfer amount of software for updating.
また、命令長が不定などの場合は、差分の位置がばらばらになってしまう傾向があるが、これも命令ごとの特性に応じた命令長補完をすれば、やはり差分の出方がある一定の位置になるため、本発明を適用することにより、転送量を減らすという効果がある。 In addition, when the instruction length is indefinite, the position of the difference tends to vary. However, if the instruction length is complemented according to the characteristics of each instruction, there is a certain amount of difference. Therefore, applying the present invention has an effect of reducing the transfer amount.
上記実施の形態1〜実施の形態3において、「チェックサム計算部」、「ターゲット側チェックサム範囲指定部」、「アドレス変換部」、「送信側分割部」、「送信側ブロック探索部」等の各部が行なう動作は、ハードウェアのみでも実施でき、ソフトウェアのみでも実施でき、ハードウェアとソフトウェアの組み合わせでも実施することができる。 In the first to third embodiments, “checksum calculation unit”, “target-side checksum range designation unit”, “address conversion unit”, “transmission-side division unit”, “transmission-side block search unit”, etc. The operations performed by these units can be performed by hardware alone, by software alone, or by a combination of hardware and software.
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。このように置き換えることにより、方法の発明の実施形態とすることができる。また、各上記各構成要素の動作を、各構成要素の処理と置き換えることにより、プログラムの実施形態とすることができる。 In all the embodiments, each operation of each component is related to each other, and the operation of each component can be replaced as a series of operations in consideration of the relationship of the operations described above. By replacing in this way, it can be set as the embodiment of the method invention. Moreover, it can be set as the embodiment of a program by replacing operation | movement of each said each component with the process of each component.
上記のソフトウェア転送更新システムは、
サーバ装置からターゲット端末に対してソフトウェアの更新データを送り、そのデータに基づいてターゲット端末のソフトウェアを更新するソフトウェア転送更新装置において、
(1)サーバ装置側でソフトウェア全体をある一定のブロックサイズに分けて、そのブロックごとのチェックサムをとるサーバ端末第1チェックサム計算手段と、
(2)上記チェックサム計算方法とは別のアルゴリズムによるサーバ端末第2チェックサム計算手段と、
(3)ターゲット端末側で決まったブロックサイズのチェックサムをサーバ端末第1チェックサム手段と同じアルゴリズムで計算するターゲット端末第1チェックサム手段と、
(4)ターゲット端末側で決まったブロックサイズのチェックサムをサーバ端末第2チェックサム手段と同じアルゴリズムで計算するターゲット端末第2チェックサム手段と、
(5)ターゲット端末上で計算するブロックの範囲を動的に指定するターゲット端末チェックサム計算範囲指定手段と、
(6)ターゲット端末第1チェックサム手段によって得られたチェックサム値より、サーバ上で同じチェックサム値を持つサーバ上のブロックを探すブロック探索手段と、
(7)対象とするソフトウェアのデータに関して論理アドレスと物理アドレスをソフトウェア的に変換するアドレス変換手段と
を備えることを特徴とする。
The above software transfer update system
In the software transfer update device that sends software update data from the server device to the target terminal and updates the software of the target terminal based on the data,
(1) Server terminal first checksum calculating means for dividing the entire software into a certain block size on the server device side and taking a checksum for each block;
(2) server terminal second checksum calculation means using an algorithm different from the above checksum calculation method;
(3) a target terminal first checksum means for calculating a checksum of a block size determined on the target terminal side by the same algorithm as the server terminal first checksum means;
(4) a target terminal second checksum means for calculating a checksum of a block size determined on the target terminal side by the same algorithm as the server terminal second checksum means;
(5) Target terminal checksum calculation range specifying means for dynamically specifying a range of blocks to be calculated on the target terminal;
(6) Block search means for searching for a block on the server having the same checksum value on the server from the checksum value obtained by the target terminal first checksum means;
(7) It is characterized by comprising address conversion means for converting a logical address and a physical address in terms of software with respect to target software data.
上記のソフトウェア転送更新システムは、前記第1のチェックサム手段および第2のチェックサム手段は単純な足し算およびビット位置をずらしながらの足し算であることを特徴とする。 The software transfer update system is characterized in that the first checksum means and the second checksum means are simple addition and addition while shifting bit positions.
上記のソフトウェア転送更新システムは、前記ブロック探索手段が、ハッシュ関数を用いることを特徴とする。 In the above software transfer update system, the block search means uses a hash function.
上記のソフトウェア転送更新システムは、前記ブロック探索手段が、バイナリ探索を用いることを特徴とする。 In the above software transfer update system, the block search means uses binary search.
上記のソフトウェア転送更新システムは、アドレス変換手段が、ソフトウェアの論理的な単位であるモジュールごとに変換することを特徴とする。 The software transfer update system described above is characterized in that the address conversion unit converts each module, which is a logical unit of software.
上記のソフトウェア転送更新システムにおいて、モジュールとして、プログラムの実行部分と、データ部分とからなるモジュールを保持することを特徴とする。 In the above-described software transfer update system, a module including a program execution part and a data part is held as a module.
上記のソフトウェア転送更新システムにおいて、プログラムの実行部分と、データ部分とからなるモジュールにおいて、プログラム実行部分にのみ物理アドレスと論理アドレスの変換を行うことを特徴とする。 In the above-described software transfer update system, a physical address and a logical address are converted only in a program execution part in a module including a program execution part and a data part.
上記のソフトウェア転送更新システムにおいて、データ部分は、アドレスを意味するデータの集まりとそれ以外から構成され、アドレスを意味するデータ部分には物理アドレスと論理アドレスの変換を行うことを特徴とする。 In the above software transfer update system, the data portion is composed of a collection of data indicating addresses and the others, and the data portion indicating addresses is converted between a physical address and a logical address.
100 ターゲット端末、101 受信側チェックサム計算部、1011 ターゲット側第1チェックサム計算部、1012 ターゲット側第2チェックサム計算部、1013 ターゲット側第3チェックサム計算部、103 ターゲット側チェックサム範囲指定部、104 ターゲット側論理アドレス変換部、106 ターゲット側通信部、1000 ソフトウェア転送更新システム、110 ターゲット側格納部、1101 ターゲット側ソフトウェア、200 サーバ装置、201 送信側チェックサム計算部、2011 サーバ側第1チェックサム計算部、2012 サーバ側第2チェックサム計算部、2013 サーバ側第3チェックサム計算部、203 送信側分割部、204 サーバ側論理アドレス変換部、205 送信側ブロック探索部、206 サーバ側通信部、2000 ソフトウェア転送更新システム、210 サーバ側格納部、2101 サーバ側ソフトウェア、300 ターゲット端末、400 サーバ装置。
DESCRIPTION OF SYMBOLS 100 Target terminal, 101 Reception side checksum calculation part, 1011 Target side 1st checksum calculation part, 1012 Target side 2nd checksum calculation part, 1013 Target side 3rd checksum calculation part, 103 Target side checksum range designation | designated
Claims (10)
前記受信側装置は、
前記第1全体データを格納する受信側格納部と、
前記第1全体データを構成する前記複数の要素データの所定の範囲をアドレス変換対象範囲として所定のアドレス変換規則によりアドレス変換する受信側アドレス変換部と、
アドレス変換された前記アドレス変換対象範囲のうち一部の範囲を指定ブロックとして指定する受信側範囲指定部と、
前記受信側範囲指定部が指定した前記指定ブロックのチェックサムを所定の計算規則により指定ブロックチェックサムとして計算する受信側チェックサム計算部と、
前記受信側チェックサム計算部が計算した前記指定ブロックチェックサムを前記送信側装置に送信する受信側送信部と
を備え、
前記送信側装置は、
前記受信側装置が送信した前記指定ブロックチェックサムを受信する送信側受信部と、
前記第2全体データを格納する送信側格納部と、
前記第2全体データを構成する前記複数の要素データのうち前記アドレス変換対象範囲に対応する対応範囲を前記受信側アドレス変換部のアドレス変換規則に対応するアドレス変換規則によりアドレス変換する送信側アドレス変換部と、
アドレス変換された前記対応範囲を前記受信側範囲指定部が指定する前記指定ブロックのサイズに対応するサイズの複数のブロックに分割する送信側分割部と、
前記送信側分割部が分割した前記複数のブロックのそれぞれについて前記受信側チェックサム計算部の計算規則に対応する計算規則よりチェックサムを計算する送信側チェックサム計算部と、
前記送信側受信部が受信した前記指定ブロックチェックサムと前記送信側チェックサム計算部が計算した前記チェックサムとに基づいて、前記送信側分割部が分割した前記複数のブロックから所定のブロックを探し出す送信側ブロック探索部と、
前記送信側分割部が分割した前記複数のブロックのうち前記送信側ブロック探索部が探し出したブロック以外の未探索ブロックを前記更新用データとして前記受信側装置に送信する送信側送信部と
を備えたことを特徴とする更新用データ送信システム。 A receiving-side apparatus that stores first overall data composed of a plurality of element data to which addresses are assigned indicates data corresponding to the first overall data and composed of a plurality of element data to which addresses are assigned. In an update data transmission system for transmitting update data for updating the first overall data to the second overall data from a transmission-side device that stores second overall data,
The receiving side device
A receiving-side storage for storing the first overall data;
A receiving-side address conversion unit that performs address conversion according to a predetermined address conversion rule with a predetermined range of the plurality of element data constituting the first overall data as an address conversion target range;
A receiving side range designating unit that designates a part of the address translation target range that has undergone address translation as a designated block;
A reception side checksum calculation unit that calculates a checksum of the designated block designated by the reception side range designation unit as a designated block checksum according to a predetermined calculation rule;
A reception side transmission unit that transmits the designated block checksum calculated by the reception side checksum calculation unit to the transmission side device;
The transmitting device is:
A transmitting side receiving unit that receives the specified block checksum transmitted by the receiving side device;
A transmission side storage unit for storing the second whole data;
Transmitting side address conversion for converting the corresponding range corresponding to the address conversion target range among the plurality of element data constituting the second whole data by the address conversion rule corresponding to the address conversion rule of the receiving side address conversion unit And
A transmitting side dividing unit that divides the address-converted corresponding range into a plurality of blocks having a size corresponding to the size of the designated block specified by the receiving side range specifying unit;
A transmission side checksum calculation unit that calculates a checksum from a calculation rule corresponding to a calculation rule of the reception side checksum calculation unit for each of the plurality of blocks divided by the transmission side division unit;
Based on the specified block checksum received by the transmission side reception unit and the checksum calculated by the transmission side checksum calculation unit, a predetermined block is searched from the plurality of blocks divided by the transmission side division unit. A transmission side block search unit;
A transmission-side transmission unit that transmits an unsearched block other than the block searched by the transmission-side block search unit among the plurality of blocks divided by the transmission-side division unit to the reception-side device as the update data. An update data transmission system characterized by the above.
前記受信側装置で運用する現行プログラムであり、
前記第2全体データは、
前記現行プログラムを更新した更新プログラムであることを特徴とする請求項1記載の更新用データ送信システム。 The first overall data is:
A current program that operates on the receiving device;
The second overall data is
The update data transmission system according to claim 1, wherein the update program is an update program obtained by updating the current program.
前記受信側装置で運用する現行プログラムを構成するモジュールを示す現行プログラム構成モジュールであり、
前記第2全体データは、
前記現行プログラムを更新した更新プログラムを構成するモジュールを示す更新プログラム構成モジュールであることを特徴とする請求項1記載の更新用データ送信システム。 The first overall data is:
A current program configuration module indicating a module that configures a current program operated by the receiving side device;
The second overall data is
The update data transmission system according to claim 1, wherein the update data transmission system is an update program configuration module indicating a module constituting an update program obtained by updating the current program.
いずれもプログラム実行部分とプログラムデータ部分とから構成され、
前記受信側アドレス変換部は、
前記アドレス変換対象範囲として、前記現行プログラム構成モジュールのうち前記プログラム実行部分をアドレス変換し、
前記送信側アドレス変換部は、
前記対応範囲として、前記更新プログラム構成モジュールのうち前記プログラム実行部分をアドレス変換することを特徴とする請求項3記載の更新用データ送信システム。 The current program configuration module and the update program configuration module are:
Each consists of a program execution part and a program data part,
The receiving address conversion unit
As the address conversion target range, the program execution part of the current program configuration module is address-converted,
The transmission side address conversion unit includes:
4. The update data transmission system according to claim 3, wherein as the corresponding range, the program execution portion of the update program component module is address-converted.
いずれもアドレスを意味する部分とアドレスを意味しない部分とから構成され、
前記受信側アドレス変換部は、さらに、
前記アドレス変換対象範囲として、前記現行プログラム構成モジュールの前記プログラムデータ部分のうち前記アドレスを意味する部分をアドレス変換し、
前記送信側アドレス変換部は、さらに、
前記対応範囲として、更新プログラム構成モジュールの前記プログラムデータ部分のうち前記アドレスを意味する部分をアドレス変換することを特徴とする請求項4記載の更新用データ送信システム。 The program data portions of the current program configuration module and the update program configuration module are:
Each consists of a part that means an address and a part that doesn't mean an address,
The receiving side address conversion unit further includes:
As the address conversion target range, the address meaning part of the program data part of the current program component module is converted,
The transmission side address conversion unit further includes:
5. The update data transmission system according to claim 4, wherein, as the corresponding range, address conversion is performed on a portion meaning the address in the program data portion of the update program component module.
前記指定ブロックチェックサムとして、互いに異なる計算規則により複数のチェックサムを計算し、
前記送信側チェックサム計算部は、
前記複数のブロックのそれぞれについて、前記受信側チェックサム計算部の計算規則に対応する計算規則により複数のチェックサムを計算することを特徴とする請求項1記載の更新用データ送信システム。 The receiving side checksum calculator is
As the specified block checksum, a plurality of checksums are calculated according to mutually different calculation rules,
The transmission side checksum calculator is
The update data transmission system according to claim 1, wherein a plurality of checksums are calculated for each of the plurality of blocks according to a calculation rule corresponding to a calculation rule of the reception-side checksum calculation unit.
前記送信側分割部が分割した前記複数のブロックから所定のブロックを探し出すための探索方法として、ハッシュ関数法とバイナリ探索法とのいずれかを用いることを特徴とする請求項1記載の更新用データ送信システム。 The transmitting block search unit
2. The update data according to claim 1, wherein one of a hash function method and a binary search method is used as a search method for searching for a predetermined block from the plurality of blocks divided by the transmission side dividing unit. Transmission system.
前記更新用データを受信する受信側装置であってアドレスが割り当てられた複数の要素データにより構成された第1全体データを格納し、格納した前記第1全体データを構成する前記複数の要素データの所定の範囲をアドレス変換対象範囲として所定のアドレス変換規則によりアドレス変換し、アドレス変換された前記アドレス変換対象範囲のうち一部の範囲を指定ブロックとして指定し、指定した前記指定ブロックのチェックサムを所定の計算規則により指定ブロックチェックサムとして計算し、計算した前記指定ブロックチェックサムを送信する前記受信側装置から前記指定ブロックチェックサムを受信する送信側受信部と、
アドレスが割り当てられた複数の要素データにより構成されるとともに前記受信側装置が格納する前記第1全体データに対応するデータを示す第2全体データを格納する送信側格納部と、
前記第2全体データを構成する前記複数の要素データのうち前記アドレス変換対象範囲に対応する対応範囲を前記受信側装置のアドレス変換規則に対応するアドレス変換規則によりアドレス変換する送信側アドレス変換部と、
アドレス変換された前記対応範囲を前記受信側装置が指定する前記指定ブロックのサイズに対応するサイズの複数のブロックに分割する送信側分割部と、
前記送信側分割部が分割した前記複数のブロックのそれぞれについて前記受信側装置が前記指定ブロックチェックサムを計算する前記計算規則に対応する計算規則によりチェックサムを計算する送信側チェックサム計算部と、
前記送信側受信部が受信した前記指定ブロックチェックサムと前記送信側チェックサム計算部が計算した前記チェックサムとに基づいて、前記送信側分割部が分割した前記複数のブロックから所定のブロックを探し出す送信側ブロック探索部と、
前記送信側分割部が分割した前記複数のブロックのうち前記送信側ブロック探索部が探し出したブロック以外の未探索ブロックを前記更新用データとして前記受信側装置に送信する送信側送信部と
を備えたことを特徴とする送信側装置。 In the transmission side device that transmits update data for updating predetermined data,
A receiving-side device that receives the update data, stores first overall data composed of a plurality of element data to which addresses are assigned, and stores the plurality of element data constituting the stored first overall data Address conversion is performed according to a predetermined address conversion rule as a predetermined range as an address conversion target range, a part of the address conversion target range subjected to address conversion is specified as a specified block, and a checksum of the specified block is specified A transmitting side receiving unit that receives the specified block checksum from the receiving side device that calculates the specified block checksum according to a predetermined calculation rule and transmits the calculated specified block checksum;
A transmission-side storage unit that stores second overall data that includes data corresponding to the first overall data that is configured by a plurality of element data to which an address is assigned and that is stored in the reception-side device;
A transmission-side address conversion unit that converts a corresponding range corresponding to the address conversion target range among the plurality of element data constituting the second overall data according to an address conversion rule corresponding to an address conversion rule of the reception-side device; ,
A transmitting side dividing unit for dividing the address-converted corresponding range into a plurality of blocks having a size corresponding to the size of the designated block designated by the receiving side device;
A transmission side checksum calculation unit that calculates a checksum according to a calculation rule corresponding to the calculation rule for the reception side device to calculate the designated block checksum for each of the plurality of blocks divided by the transmission side division unit;
Based on the specified block checksum received by the transmission side reception unit and the checksum calculated by the transmission side checksum calculation unit, a predetermined block is searched from the plurality of blocks divided by the transmission side division unit. A transmission side block search unit;
A transmission-side transmission unit that transmits an unsearched block other than the block searched by the transmission-side block search unit among the plurality of blocks divided by the transmission-side division unit to the reception-side device as the update data. A transmission-side device characterized by the above.
アドレスが割り当てられた複数の要素データにより構成された第1全体データを格納する受信側格納部と、
前記第1全体データを構成する前記複数の要素データの所定の範囲をアドレス変換対象範囲として所定のアドレス変換規則によりアドレス変換する受信側アドレス変換部と、
アドレス変換された前記アドレス変換対象範囲のうち一部の範囲を指定ブロックとして指定する受信側範囲指定部と、
前記受信側範囲指定部が指定した前記指定ブロックのチェックサムを所定の計算規則により指定ブロックチェックサムとして計算する受信側チェックサム計算部と、
前記受信側チェックサム計算部が計算した前記指定ブロックチェックサムを送信する受信側送信部と、
前記更新用データを送信する送信側装置であってアドレスが割り当てられた複数の要素データにより構成されるとともに前記第1全体データに対応するデータを示す第2全体データを格納し、格納した前記第2全体データを構成する前記複数の要素データのうち前記アドレス変換対象範囲に対応する対応範囲を前記受信側アドレス変換部のアドレス変換規則に対応するアドレス変換規則によりアドレス変換し、アドレス変換された前記対応範囲を前記受信側範囲指定部が指定する前記指定ブロックのサイズに対応するサイズの複数のブロックに分割し、分割した前記複数のブロックのそれぞれについて前記受信側チェックサム計算部の計算規則に対応する計算規則によりチェックサムを計算するとともに、前記受信側送信部が送信した前記指定ブロックチェックサムを受信した場合に前記指定ブロックチェックサムと前記複数のブロックについて計算した前記チェックサムとに基づいて前記複数のブロックから所定のブロックを探し出し、前記複数のブロックのうち探し出したブロック以外の未探索ブロックを前記更新用データとして送信する前記送信側装置から、前記未探索ブロックを前記更新用データとして受信する受信側受信部と
を備えたことを特徴とする受信側装置。 In the receiving side device that receives the update data for updating the data stored in itself,
A receiving-side storage that stores first overall data composed of a plurality of element data to which addresses are assigned;
A receiving-side address conversion unit that performs address conversion according to a predetermined address conversion rule with a predetermined range of the plurality of element data constituting the first overall data as an address conversion target range;
A receiving side range designating unit that designates a part of the address translation target range that has undergone address translation as a designated block;
A reception side checksum calculation unit that calculates a checksum of the designated block designated by the reception side range designation unit as a designated block checksum according to a predetermined calculation rule;
A receiving side transmitting unit for transmitting the designated block checksum calculated by the receiving side checksum calculating unit;
The transmitting-side device that transmits the update data is configured by a plurality of element data to which addresses are assigned, stores second overall data indicating data corresponding to the first overall data, and stores the stored second data 2 of the plurality of element data constituting the entire data, the corresponding range corresponding to the address conversion target range is address-converted according to the address conversion rule corresponding to the address conversion rule of the receiving-side address conversion unit, and the address converted The corresponding range is divided into a plurality of blocks having a size corresponding to the size of the designated block designated by the receiving side range designating unit, and the divided check blocks correspond to the calculation rules of the receiving side checksum calculation unit. The checksum is calculated according to the calculation rule that When a block checksum is received, a predetermined block is searched from the plurality of blocks based on the specified block checksum and the checksum calculated for the plurality of blocks, and a block other than the searched block among the plurality of blocks A receiving-side apparatus comprising: a receiving-side receiving unit that receives the unsearched block as the update data from the transmitting-side apparatus that transmits an unsearched block as the update data.
前記受信側装置は、
前記第1全体データを格納し、
前記第1全体データを構成する前記複数の要素データの所定の範囲をアドレス変換対象範囲として所定のアドレス変換規則によりアドレス変換し、
アドレスが変換された前記アドレス変換対象範囲のうち一部の範囲を指定ブロックとして指定し、
指定した前記指定ブロックのチェックサムを所定の計算規則により指定ブロックチェックサムとして計算し、
計算した前記指定ブロックチェックサムを前記送信側装置に送信し、
前記送信側装置は、
前記第2全体データを格納し、
前記第2全体データを構成する前記複数の要素データのうち前記アドレス変換対象範囲に対応する対応範囲を前記受信側装置のアドレス変換規則に対応するアドレス変換規則によりアドレス変換し、
アドレスが変換された前記対応範囲を前記受信側装置が指定する前記指定ブロックのサイズに対応するサイズの複数のブロックに分割し、
分割した前記複数のブロックのそれぞれについて前記受信側装置が前記指定ブロックチェックサムを計算する前記計算規則に対応する計算規則によりチェックサムを計算し、
前記受信側装置が送信した前記指定ブロックチェックサムを受信した場合に、受信した前記指定ブロックチェックサムと分割した前記複数のブロックについて計算した前記チェックサムとに基づいて、分割した前記複数のブロックから所定のブロックを探し出し、
分割した前記複数のブロックのうち探し出したブロック以外の未探索ブロックを前記更新用データとして前記受信側装置に送信することを特徴とする更新用データ送信方法。 A receiving-side apparatus that stores first overall data composed of a plurality of element data to which addresses are assigned indicates data corresponding to the first overall data and composed of a plurality of element data to which addresses are assigned. In an update data transmission method for transmitting update data for updating the first overall data to the second overall data from a transmission-side device that stores second overall data,
The receiving side device
Storing the first overall data;
A predetermined range of the plurality of element data constituting the first entire data is converted into an address conversion target range according to a predetermined address conversion rule,
Specify a part of the address conversion target range in which the address is converted as a specified block,
Calculate the specified checksum of the specified block as a specified block checksum according to a predetermined calculation rule,
Sending the calculated designated block checksum to the sending device;
The transmitting device is:
Storing the second overall data;
Of the plurality of element data constituting the second overall data, the corresponding range corresponding to the address conversion target range is converted by the address conversion rule corresponding to the address conversion rule of the receiving device,
Dividing the corresponding range in which the address is converted into a plurality of blocks having a size corresponding to the size of the designated block designated by the receiving side device;
For each of the plurality of divided blocks, the receiving side device calculates a checksum according to a calculation rule corresponding to the calculation rule for calculating the designated block checksum,
When receiving the designated block checksum transmitted by the receiving-side apparatus, based on the received designated block checksum and the checksum calculated for the plurality of divided blocks, from the divided blocks Find a given block,
An update data transmission method, wherein an unsearched block other than the searched block among the plurality of divided blocks is transmitted as the update data to the reception side device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005019847A JP4619804B2 (en) | 2005-01-27 | 2005-01-27 | Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005019847A JP4619804B2 (en) | 2005-01-27 | 2005-01-27 | Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006209417A JP2006209417A (en) | 2006-08-10 |
| JP4619804B2 true JP4619804B2 (en) | 2011-01-26 |
Family
ID=36966219
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005019847A Expired - Fee Related JP4619804B2 (en) | 2005-01-27 | 2005-01-27 | Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4619804B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008269395A (en) | 2007-04-23 | 2008-11-06 | Fujitsu Ten Ltd | Multimedia system and navigation unit terminal |
| JP2009151534A (en) * | 2007-12-20 | 2009-07-09 | Canon Inc | Macro distribution server device, control method therefor, program, and storage medium |
| JP2013029939A (en) * | 2011-07-27 | 2013-02-07 | Kyocera Document Solutions Inc | Control device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62134742A (en) * | 1985-12-07 | 1987-06-17 | Tokyo Electric Co Ltd | Information processor |
| JP3000895B2 (en) * | 1995-06-28 | 2000-01-17 | 日本電気株式会社 | How to download |
| JP3132471B2 (en) * | 1998-05-28 | 2001-02-05 | 日本電気株式会社 | Data transfer device and data transfer method |
| JP4285679B2 (en) * | 2002-03-11 | 2009-06-24 | 富士通株式会社 | Differential transfer method, program and system |
-
2005
- 2005-01-27 JP JP2005019847A patent/JP4619804B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006209417A (en) | 2006-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4796315B2 (en) | Efficient algorithms and protocols for remote differential compression | |
| US8156071B2 (en) | Byte-level file differencing and updating algorithms | |
| CN113691486B (en) | Methods, devices, equipment and storage media for message modification | |
| US7676553B1 (en) | Incremental web crawler using chunks | |
| AU1853699A (en) | Data file synchronisation | |
| MX2012014730A (en) | Optimization of storage and transmission of data. | |
| CN103713928A (en) | Incremental file generating method, and application program installing file updating method and device | |
| US10628382B2 (en) | Teleporting content over network using hash matches | |
| US8171163B2 (en) | Method for tracking transmission status of data to entities such as peers in a network | |
| US20130047145A1 (en) | Match analysis for encoding optimized update packages | |
| EP1977318B1 (en) | Remotely repairing files by hierarchical and segmented cyclic redundancy checks | |
| US20140310292A1 (en) | Method, system and computer program for adding content to a data container | |
| CN111600945B (en) | FTP server breakpoint downloading method and device based on block transmission | |
| JP4619804B2 (en) | Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method | |
| US10901952B2 (en) | Method for transferring a difference file | |
| CN118427884A (en) | Method and device for integrity verification of USB upgrade package | |
| WO2013136584A1 (en) | Data transfer system | |
| CN111404979B (en) | Method and device for processing service request and computer readable storage medium | |
| US11789708B2 (en) | Compression of firmware updates | |
| US11362762B2 (en) | Method and system for the error-correcting transmission of a data record via a unidirectional communication unit | |
| CN112003736B (en) | Multi-node configuration information determining method, device and storage medium | |
| CN116095064A (en) | File downloading method, computer equipment and storage medium | |
| WO2012102103A1 (en) | Information processing device, information processing system, information processing method and information processing program | |
| US12430471B2 (en) | Method and system for verification of end-to-end data integrity during big data transfer | |
| WO2026007021A9 (en) | Data processing method and related apparatuses |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071001 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101008 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101026 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101027 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
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 |
|
| LAPS | Cancellation because of no payment of annual fees |