Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4619804B2 - Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2005019847A
Other languages
Japanese (ja)
Other versions
JP2006209417A (en
Inventor
良三 清原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005019847A priority Critical patent/JP4619804B2/en
Publication of JP2006209417A publication Critical patent/JP2006209417A/en
Application granted granted Critical
Publication of JP4619804B2 publication Critical patent/JP4619804B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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にもファイルの転送にあたってブロック化を行うことにより効率よく転送する技術が開示されている。この方式は、単にブロック化しているだけでチェックサムをとっているため、プログラムコードのようなデータのずれを想定しておらず、データの位置ずれがある場合には全く同じブロックが存在しない場合が多くなるという問題がある。
特開平9−16404号公報 特開平11−341550号公報 「The rsync Algolithm」(1996年 オーストラリア国立大学ANU TR−CS−96−05)
Japanese Patent Application Laid-Open No. 9-16404 and Japanese Patent Application Laid-Open No. 11-341550 also disclose a technique for efficiently transferring files by blocking them. Since this method simply takes blocks and takes a checksum, it does not assume data deviation such as program code, and there is no identical block if there is data misalignment There is a problem that increases.
Japanese Patent Laid-Open No. 9-16404 JP-A-11-341550 "The rsync Algorithm" (1996 Australian National University ANU TR-CS-96-05)

上記のように、位置ずれがあり、なおかつアドレス情報などが分散しているような場合には、従来の方法では差分を小さくして、効率的なファイル転送を行うことができなかった。このような場合にも、効率良くファイル転送をするシステムを提供する。   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は、サーバ装置からターゲット端末に更新用のデータを送信して、ターゲット端末の有するソフトウェアを更新するソフトウェア転送更新システムに関する。
Embodiment 1 FIG.
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 first checksum calculator 1011 in FIG. 1 is referred to as “terminal first checksum”.
(2) The checksum calculated by the target-side second checksum calculator 1012 is referred to as “terminal second checksum”.
(3) The checksum calculated by the server-side first checksum calculation unit 2011 is referred to as “server first checksum”.
(4) The checksum calculated by the server-side second checksum calculation unit 2012 is referred to as “server second checksum”.

図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 target side software 1101 to be updated. The server device 200 transmits update data to the target terminal 100. The server apparatus 200 is an example of a transmission side apparatus that transmits update data. The target terminal 100 is an example of a receiving side device that receives update data.

ターゲット端末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 checksum calculation unit 1011 and a target-side second checksum calculation unit 1012.

サーバ装置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 side division unit 203, a server side logical address conversion unit 204 (an example of a transmission side address conversion unit), a transmission side block search unit 205, and a server side communication unit 206 (transmission). Side transmission unit and transmission side reception unit), and server side storage unit 210 (an example of transmission side storage unit). The transmission-side checksum calculation unit 201 includes a server-side first checksum calculation unit 2011 and a server-side second checksum calculation unit 2012.

ソフトウェア転送更新システム1000は、ターゲット側ソフトウェア1101を、ターゲット側ソフトウェア1101の更新後のソフトウェアであるサーバ側ソフトウェア2101の状態にするシステムである。そのためには、ターゲット端末100にサーバ側ソフトウェア2101をそのまま送信するのが一番簡単である。しかし、それでは送信するべきデータ送信量を減らすことはできない。そこで、本システムではターゲット側ソフトウェア1101をサーバ側ソフトウェア2101のバイナリコードと同じ状態にするため、そのままデータを送るのではなく、サーバ装置200からターゲット端末100に、できる限り差分情報を送る。これによりデータ転送量を減らす。以下にさらに説明する。   The software transfer update system 1000 is a system that sets the target side software 1101 to the state of the server side software 2101 that is software after the target side software 1101 is updated. For this purpose, it is easiest to transmit the server-side software 2101 to the target terminal 100 as it is. However, this cannot reduce the amount of data to be transmitted. Therefore, in this system, in order to make the target software 1101 the same as the binary code of the server software 2101, the difference information is sent from the server device 200 to the target terminal 100 as much as possible, instead of sending the data as it is. This reduces the amount of data transfer. This will be further described below.

ターゲット端末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-side software 1101 is predetermined software on the target terminal 100 and is an update target. The target software 1101 is usually placed in binary code.

(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 address conversion unit 104 converts the address of the target side software 1101. As will be described later, the corresponding server side logical address conversion unit 204 also performs address conversion of the server side software 2101 according to the same rule.
(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 address conversion unit 104 converts the physical address space of the target side software 1101 into a logical address space. This will be specifically described with reference to FIGS. For example, for the target address space z, the conversion formula is as follows (Formula 1).
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 address 0 to address 99 (z = 100).
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
Address 0 is address 0,
Address 1 is converted to address 25,
2 address is converted to 50 address,
No. 3 is converted to 75,
No. 4 is converted to No. 1,
Address 5 is converted to address 26.
(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-side software 1101 in the target terminal 100. As shown in FIG. 5, the target-side software 1101 is composed of element data such as “F0, 00, 7E, 10. FIG. 5 shows a physical address 401 (an example of an address conversion target range) and a logical address 402 after the address conversion. The address conversion formula is (Formula 1) described above, and Z = 32 (addresses 0 to 31). As described above, the physical address 401 is data on the target terminal 100. The logical address 402 is data after the logical address conversion of this data. FIG. 6 is a diagram showing server-side software 2101 in the server device 200. As shown in FIG. 6, the server-side software 2101 is composed of element data such as “F0, 00, 7E, 12. FIG. 6 shows a physical address 451 (an example of a corresponding range) and a logical address 452 after address conversion. The address conversion formula is (Formula 1) described above, and Z = 32 (addresses 0 to 31). The physical address 451 is data on the server device 200, and data (element data) different from the data on the target terminal 100 is indicated by an underline. In FIG. 6, six data, “12”, “0E”, “53”, “0C”, “7A”, and “0A” are different from the data on the target terminal 100 in FIG. Since the address part is most likely to change, the information of the last byte of the 4 bytes is shifted little by little when the instruction is made in word units. Comparing the physical address 401 on the target terminal 100 side with the physical 451 on the server apparatus 200 side, even if 12 bytes are considered as one block for every three words, the same block does not exist. Therefore, it is necessary to copy all blocks, that is, all data from the server device 200 to the target terminal 100. However, as indicated by the logical address 452 on the server side, after the address conversion, the first two blocks are the same block and need not be sent. It can be seen that only the part corresponding to the last block needs to be sent. Thus, the difference amount can be reduced by address conversion.

(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 range specifying unit 103 specifies a range in which the target-side first checksum calculation unit 1011 and the target-side second checksum calculation unit 1012 calculate checksums. That is, the target-side checksum range designating unit 103 designates a block having a predetermined size as a designated block for the target-side software 1101 after address conversion. For example, a 128-byte block is designated as the designated block. For example, this designation may be performed in order from the lowest address. FIG. 7 shows a state where the target-side checksum range specifying unit 103 has specified an initial specified range. The target-side checksum range specifying unit 103 passes the blocks to the target-side first checksum calculation unit 1011 and the target-side second checksum calculation unit 1012 in order and receives the checksum value.
(2) In addition, the target-side checksum range specifying unit 103 may shift the position of the block that takes this checksum in exchange with the server device 200. Shift in units of "1 byte" or "4 bytes" or "1 word". Then, the block is passed to the target-side first checksum calculators 1011 and 1012 to calculate the checksum, and the calculated checksum value is received. FIG. 8 is a diagram for explaining a situation in which the target-side checksum range specifying unit 103 shifts the position of the block for which the checksum is taken. This situation is the operation of Step 302 and Step 303 described later in FIG. “(A)” on the server device side indicates a newly added portion. When the same block as block 1 is on the server device side, the target-side checksum range specifying unit 103 next specifies block 2 (corresponding to step 303 in FIG. 10). In FIG. 8, there is no block equal to the block 2 on the server device side. Therefore, the target-side checksum range designating unit 103 designates the block 3 by shifting by one word (4 bytes) (corresponding to step 302 in FIG. 10). Since a block corresponding to block 3 does not exist on the server side, block 4 is designated by shifting by one word. A block corresponding to block 4 exists on the server side. In this way, the range (block) is dynamically specified in consideration of the data misalignment, instead of simply blocking and taking the checksum. As a result, the difference amount can be reduced even when the data position is misaligned.

(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 checksum calculation unit 1011 is configured such that when the target-side checksum range specifying unit 103 divides certain data into certain sizes (when a predetermined part of the data after address conversion is designated as a range) ), “Terminal first checksum” is taken according to “first calculation rule”. Specifically, the target-side first checksum calculation unit 1011 may use, for example, a method of simply adding and discarding the overflowed portion as the “first calculation rule”.
(2) The target-side second checksum calculation unit 1012 uses a “second calculation rule” different from the target-side first checksum calculation unit 1011 for the range calculated by the target-side first checksum calculation unit 1011. Take "terminal second checksum". As a second calculation rule, for example, there is a rule that the value of a certain memory is left as it is, the value of the memory at the next address is shifted by 1 bit, and the next is shifted by 2 bits. To shift by 1 bit means to multiply by 2, such as multiply by 2, multiply by 4, and so on.

ターゲット側通信部106は、サーバ装置200との通信を行なう。   The target side communication unit 106 communicates with the server device 200.

サーバ側格納部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-side software 1101 stored in the target terminal 100. The server side software 2101 corresponds to software in which the target side software 1101 is updated. Server-side software 2101 is software to be executed or arranged on the target terminal 100.

サーバ側論理アドレス変換部204は、ターゲット側論理アドレス変換部104と同一の規則でサーバ側ソフトウェア2101のアドレスを変換する。   The server side logical address conversion unit 204 converts the address of the server side software 2101 according to the same rule as the target side logical address conversion unit 104.

送信側分割部203は、アドレス変換されたサーバ側ソフトウェア2101をターゲット側チェックサム範囲指定部103が指定した指定ブロックのサイズと同じサイズの複数のブロックに分割する。図7のサーバ側装置は、分割の例を示している。   The transmission side division unit 203 divides the address-converted server side software 2101 into a plurality of blocks having the same size as the size of the designated block designated by the target side checksum range designation unit 103. The server side device in FIG. 7 shows an example of division.

サーバ側第1チェックサム計算部2011はターゲット側第1チェックサム計算部1011に対応し、サーバ側第2チェックサム計算部2012はターゲット側第2チェックサム計算部1012に対応する。サーバ側第1チェックサム計算部2011、サーバ側第2チェックサム計算部2012は、ターゲット側第1チェックサム計算部1011、ターゲット側第2チェックサム計算部1012のそれぞれと同じ規則により、サーバ装置200において「サーバ第1チェックサム」、「サーバ第2チェックサム」を計算する。   The server-side first checksum calculation unit 2011 corresponds to the target-side first checksum calculation unit 1011, and the server-side second checksum calculation unit 2012 corresponds to the target-side second checksum calculation unit 1012. The server side first checksum calculation unit 2011 and the server side second checksum calculation unit 2012 follow the same rules as the target side first checksum calculation unit 1011 and the target side second checksum calculation unit 1012, respectively. The “server first checksum” and “server second checksum” are calculated.

送信側ブロック探索部205は、ターゲット端末100から送信された指定ブロックについてのあるチェックサム値から、その値を持つブロックを探索して探し出す。このブロック探索では、送信側分割部203により分割されたすべてのブロックに対して、サーバ側第1チェックサム計算部2011が、「サーバ第1チェックサム」を計算しておく。このチェックサム値ごとにブロックを示す情報(例えばブロック番号)を記憶しておくことにより、ブロックを簡単に探すことができる。   The transmission-side block search unit 205 searches for a block having that value from a certain checksum value for the designated block transmitted from the target terminal 100 and searches for it. In this block search, the server-side first checksum calculator 2011 calculates “server first checksum” for all blocks divided by the transmission-side divider 203. By storing information (for example, block number) indicating the block for each checksum value, the block can be easily searched.

サーバ側通信部206は、ターゲット端末100と通信を行なう。   The server side communication unit 206 communicates with the target terminal 100.

次に、図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 address conversion unit 104 converts a physical address into a logical address for the target side software 1101. This conversion follows the example described in the operation of the target side logical address conversion unit 104. In the address conversion, in a CPU (Central Processing Unit) in which one word is represented by 4 bytes, a logical address is converted into a physical address based on 4. Depending on the index indicating the address information, the remainder 4 and 3 of the logical conversion formula may be treated as 3 or 4, respectively. This is because an address part shift tends to occur at the third byte of the instruction code depending on the Indian. The effect of the conversion between the physical address and the logical address appears in the entire address space when the difference in the address part that is the source of the difference is indicated by the physical address, but when converted into the logical address, it is concentrated in the distribution in the address space. By appearing. For this reason, there is an effect that the difference can be expressed small.

ステップ203では、ターゲット側チェックサム範囲指定部103が最初の指定ブロック(図7の初期指定範囲)を指定する。そして、最初の指定ブロックについて、ターゲット側第1チェックサム計算部1011が「端末第1チェックサム」(指定ブロックチェックサムの一例)を計算する。   In step 203, the target-side checksum range specifying unit 103 specifies the first specified block (the initial specified range in FIG. 7). Then, for the first designated block, the first checksum calculator 1011 on the target side calculates “terminal first checksum” (an example of the designated block checksum).

その後、ステップ204で、ターゲット端末100はサーバ装置200に「第1チェックサム同一ブロック」の探索を要求する探索要求を送信する。この「第1チェックサム同一ブロック」とは、送信側分割部203が分割したブロックのうち(この分割はステップ253で後述する)、端末第1チェックサムと同一の値のサーバ第1チェックサムを有するブロックである。またターゲット端末100は、探索要求とともに最初の指定ブロックの端末第1チェックサムを送信する。   Thereafter, in step 204, the target terminal 100 transmits a search request for requesting a search for “first checksum same block” to the server apparatus 200. This “first checksum same block” is the server first checksum having the same value as the terminal first checksum among the blocks divided by the transmission side dividing unit 203 (this division will be described later in step 253). It is a block that has. In addition, the target terminal 100 transmits the terminal first checksum of the first designated block together with the search request.

一方、ステップ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-side software 2101, as in the target terminal 100 side.

ステップ253において、送信側ブロック探索部205が、アドレス変換されたサーバ側ソフトウェア2101の全体を一定のブロックサイズに分割する。この場合一定のサイズとは、ターゲット側チェックサム範囲指定部103が指定する指定ブロックのサイズと同じサイズである。そして、サーバ側第1チェックサム計算部2011が各ブロックの「サーバ第1チェックサム」を計算する。この計算は、フローの開始以前にすべてやっておいても問題ない。   In step 253, the transmission-side block search unit 205 divides the entire address-converted server-side software 2101 into a fixed block size. In this case, the constant size is the same size as the size of the designated block designated by the target-side checksum range designation unit 103. Then, the server-side first checksum calculation unit 2011 calculates the “server first checksum” of each block. This calculation can be done completely before the start of the flow.

ステップ254において、送信側ブロック探索部205は、分割された各ブロックと、各ブロックの「サーバ第1チェックサム」との対応を示す「ブロック検索テーブル」を作成する。   In step 254, the transmission side block search unit 205 creates a “block search table” indicating the correspondence between each divided block and the “server first checksum” of each block.

図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 block search unit 205 can check which block has what “server first checksum” by using the “block search table”. Specifically, the block number can be searched using the “server first checksum” as an index. In this case, there may be a plurality of blocks having the same “server first checksum”. Therefore, a “multiple flag” indicating whether there are a plurality of candidates is also prepared. Further, when searching for a corresponding block based on the “server first checksum”, it is possible to make it easier to find the pointer of the table using a hash function in the “block search table”. Alternatively, binary search may be used.

ステップ255では、ステップ204から「第1チェックサム同一ブロック」の探索要求を「端末第1チェックサム」とともに受信する。また、送信側ブロック探索部205は受信した「端末第1チェックサム」をもとに、ステップ254で作成したブロック検索テーブルで「第1チェックサム同一ブロック」を検索する。また分割したブロックの数、ブロック番号などを含むブロック情報を送信する。   In step 255, a search request for “first checksum same block” is received from step 204 together with “terminal first checksum”. Further, the transmission side block search unit 205 searches for the “first checksum identical block” in the block search table created in step 254 based on the received “terminal first checksum”. Also, block information including the number of divided blocks, block numbers, and the like is transmitted.

ステップ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 checksum calculation unit 2012 calculates “server second checksum” for “the same block as the first checksum”. There is no problem even if this process is performed in advance and is provided in the block search table. The block search table of FIG. 11 shows a case where processing has been performed in advance.

「端末第2チェックサム」の要求をうけたターゲット端末100側では、ステップ205において、「端末第2チェックサム」の要求かどうかを判定する。違う要求が来た場合にはステップ後述するステップ301へ進む。   The target terminal 100 that has received the request for “terminal second checksum” determines in step 205 whether the request is for “terminal second checksum”. If a different request is received, the process proceeds to step 301 described later.

「端末第2チェックサム」の要求だった場合には(ステップ205のYES)、ステップ206で、ターゲット側第2チェックサム計算部1012が最初の指定ブロックについて「端末第2チェックサム」(指定ブロックチェックサムの一例)を計算する。   If it is a request for “terminal second checksum” (YES in step 205), in step 206, the target-side second checksum calculation unit 1012 selects “terminal second checksum” (designated block) for the first designated block. An example checksum is calculated.

ステップ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 step 259, “terminal second checksum” is received as a response from the target terminal 100, and the process proceeds to step 350. Then, the process proceeds to step 300 and step 350 in FIG.

サーバ装置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 block search unit 205 determines that the “server second checksum” is “terminal second checksum” among the blocks whose “server first checksum” is equal to “terminal first checksum”. Search for blocks equal to. For example, when the received “terminal first checksum” is “4” and “terminal second checksum” is “2”, the block number “7” is searched. This search may be performed by sequentially checking the values in the block search table. Also, at most one block is found if “server second checksum” is equal to “terminal second checksum”.

見つかった場合はステップ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 step 301, the target terminal 100 knows that “second checksum same block” exists. In this case, the process proceeds to step 303.

ステップ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 block 2 shown in FIG. If it is finally determined in step 304 that “the target terminal 100 no longer has any blocks to be investigated, all the investigations have been completed”, the process proceeds to step 305.

サーバ装置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 step 301, the target terminal 100 determines that there is no “second checksum identical block” (NO in step 301), and proceeds to step 302. The target-side checksum range designating unit 103 moves to the next block search “shifting one unit” such as 1 byte or 1 word. “Shifting one unit” means, for example, the case of moving from block 2 to block 3 in FIG.

ステップ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 side dividing unit 203 sends information indicating which block among the divided blocks to the server apparatus 200 side. The target terminal 100 receives block information including the total number of blocks and the block number from the server device 200 in step 205, and receives block numbers in step 301 and step 352. For this reason, among the plurality of blocks divided by the server apparatus 200, the numbers of unsearched blocks that are blocks other than the “same block” in which both the “terminal first checksum” and the “second checksum” are equal are specified. be able to. In step 305, the server apparatus 200 is notified of the block number of the identified unsearched block.

サーバ装置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 step 307, the block to be moved within the target terminal 100 and the received block are written, and the process is completed.

詳細は記載しないが、この書き込みの後、全体の書き込みを確認するための全体のチェックサムや、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 address conversion unit 104 and the server-side logical address conversion unit 204 perform address conversion, the update data to be transmitted from the server device 200 to the target terminal 100 may be reduced. it can.

ソフトウェア転送更新システム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 block search unit 205 searches for a block using either the hash function method or the binary search method, the block can be easily found.

ソフトウェア転送更新システム1000では、サーバ装置200のサーバ側論理アドレス変換部204がアドレス変換するので、送信するべき更新用データの送信量を少なくすることができる。   In the software transfer update system 1000, since the server-side logical address conversion unit 204 of the server device 200 performs address conversion, the amount of update data to be transmitted can be reduced.

ソフトウェア転送更新システム1000では、ターゲット端末100のターゲット側論理アドレス変換部104は、サーバ装置200のサーバ側論理アドレス変換部204と同じ規則によりアドレス変換するので、ターゲット端末100が受信するべき更新用データの受信量を少なくすることができる。   In the software transfer update system 1000, the target-side logical address conversion unit 104 of the target terminal 100 performs address conversion according to the same rules as the server-side logical address conversion unit 204 of the server device 200. Therefore, update data to be received by the target terminal 100 The amount of reception can be reduced.

実施の形態2.
図12〜図15を用いて実施の形態2を説明する。実施の形態1では、図12に示すようにソフトウェア全体を物理アドレスから論理アドレスに変換する場合を説明した。実施の形態2では、ソフトウェア全体ではなく、ソフトウェアの部分をアドレス変換する場合を説明する。実施の形態1で述べたように、全体に差分が散らばっている場合に、アドレス変換により、この散らばった差分が集中した位置に出てくる傾向があることを述べた。しかしながら、ソフトウェアにおいて、アドレスではなく、例えば、画像データが変更されたような場合には、アドレス情報と関係なく差分が一般に出てくる。
Embodiment 2. FIG.
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 target side software 1101 and the server side software 2101 are composed of modules, as shown in FIG. 13, address conversion may be performed for each module.

図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 terminal side module 1 are address-converted. Similarly, a case where the address conversion is performed with the terminal side modules 2, 3,... N and the server side modules 2, 3,. In FIG. 13, all modules are address-converted, but a specific module may be address-converted. For example, in FIG. 13, only the terminal module 1 and the server module 1 may be address-converted. By converting the address for each module, the difference can be concentrated.

また、プログラムの実行部分を変換する場合が考えられる。上記のようにプログラムとデータとは別に扱われていることが多い。例えば、モジュールは、モジュールのうちプログラムを実行する領域を示す「プログラム実行部分」と、モジュールのうちプログラムに使用するデータ領域を示す「プログラムデータ部分」とから構成される場合が多い。そのような場合は、プログラム実行部分にのみ物理アドレスと論理アドレスの変換を行なっても構わない。図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 address conversion unit 104 and the server-side logical address conversion unit 204 perform address conversion in units of programs, so that differences can be concentrated.

実施の形態2では、ソフトウェア転送更新システム1000において、ターゲット側論理アドレス変換部104、及びサーバ側論理アドレス変換部204が、プログラムのモジュールのうちプログラム実行部分を対象にアドレス変換するので、差分を集中させることができる。   In the second embodiment, in the software transfer update system 1000, the target-side logical address conversion unit 104 and the server-side logical address conversion unit 204 perform address conversion for the program execution part of the program modules, so the differences are concentrated. Can be made.

実施の形態2では、ソフトウェア転送更新システム1000において、ターゲット側論理アドレス変換部104、及びサーバ側論理アドレス変換部204が、プログラムのモジュールのうちプログラムデータ部分も対象としてアドレス変換するので、より差分を集中させることができる。   In the second embodiment, in the software transfer update system 1000, the target-side logical address conversion unit 104 and the server-side logical address conversion unit 204 perform address conversion for the program data portion of the program modules, so that the difference can be reduced. Can concentrate.

実施の形態3.
図16、図17を用いて実施の形態3を説明する。図16は実施の形態3に係るソフトウェア転送更新システム2000(更新用データ送信システムの一例)の構成を示す。実施の形態3は、実施の形態1に対して、ターゲット端末300、サーバ装置400が、いずれも3つのチェックサム計算部を備える点が異なる。図16において、ターゲット側第3チェックサム計算部1013とサーバ側第3チェックサム計算部2013とは同じ計算規則で「端末第3チェックサム」、「サーバ第3チェックサム」を計算する。また、第1〜第3のチェックサム計算部の計算規則は、互いに異なる。
Embodiment 3 FIG.
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 checksum calculation unit 1013 and the server-side third checksum calculation unit 2013 calculate “terminal third checksum” and “server third checksum” according to the same calculation rule. The calculation rules of the first to third checksum calculation units are different from each other.

図17を用いて動作を説明する。ステップ401〜ステップ403は、実施の形態1と同様である。   The operation will be described with reference to FIG. Steps 401 to 403 are the same as those in the first embodiment.

送信側ブロック探索部205は、端末第2チェックサムを受信した場合、「サーバ第2チェックサム」が「端末第2チェックサム」に等しい複数の「第2チェックサム同一ブロック」を発見する場合がある(ステップ404)。その場合、サーバ側第3チェックサム計算部2013は、この複数のブロックのそれぞれについて、「サーバ第3チェックサム」を計算する。「サーバ第1チェックサム」および「サーバ第2チェックサム」は、予め計算しておいても構わなかった。サーバ第3チェックサムも予め計算しておいてもよい。しかし、第2チェックサムが互いに等しい複数のブロックが見つかることは非常に稀である。そのため、通常は、第2チェックサムの互いに等しい複数のブロックが見つかった場合に、「サーバ第3チェックサム」を計算するようにする。   When receiving the terminal second checksum, the transmission-side block search unit 205 may discover a plurality of “second checksum identical blocks” in which “server second checksum” is equal to “terminal second checksum”. Yes (step 404). In that case, the server-side third checksum calculator 2013 calculates a “server third checksum” for each of the plurality of blocks. The “server first checksum” and the “server second checksum” may be calculated in advance. The server third checksum may also be calculated in advance. However, it is very rare to find multiple blocks with the same second checksum. Therefore, normally, when a plurality of blocks having the same second checksum are found, the “server third checksum” is calculated.

ステップ406において、サーバ装置400はターゲット端末300に「端末第3チェックサム」を要求する。   In step 406, the server apparatus 400 requests the “terminal third checksum” from the target terminal 300.

ステップ407において、ターゲット側第3チェックサム計算部1013が、対象の指定ブロックの「端末第3チェックサム」を計算する。   In step 407, the target-side third checksum calculator 1013 calculates the “terminal third checksum” of the target designated block.

ステップ408において、ターゲット端末300はサーバ装置400に端末第3チェックサムを送信する。   In step 408, the target terminal 300 transmits a terminal third checksum to the server apparatus 400.

ステップ409において、サーバ装置400は「端末第3チェックサム」を受信し、受信した「端末第3チェックサム」と同一の「サーバ第3チェックサム」を有するブロックを探索する。   In step 409, the server apparatus 400 receives the “terminal third checksum” and searches for a block having the same “server third checksum” as the received “terminal third checksum”.

上記ではチェックサム計算部が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.

実施の形態1におけるソフトウェア転送更新システム1000の構成を示す。1 shows a configuration of a software transfer update system 1000 according to a first embodiment. 実施の形態1におけるアドレス変換を示す表である。3 is a table showing address conversion in the first embodiment. 実施の形態1における物理アドレスの変換方向を示す。The direction of physical address translation in the first embodiment is shown. 実施の形態1における論理アドレスの変換方向を示す。The logical address conversion direction in the first embodiment will be described. 実施の形態1におけるターゲット端末側の変換の前後を示す。The before and after conversion of the target terminal side in Embodiment 1 is shown. 実施の形態1におけるサーバ装置側の変換の前後を示す。The before and after conversion of the server apparatus side in Embodiment 1 is shown. 実施の形態1におけるブロック化を示す。Blocking in the first embodiment will be described. 実施の形態1におけるターゲット端末によるブロックの指定を示す。The block designation by the target terminal in Embodiment 1 is shown. 実施の形態1におけるソフトウェア転送更新システム1000の動作を示す。The operation of the software transfer update system 1000 according to the first embodiment will be described. 実施の形態1におけるソフトウェア転送更新システム1000の動作を示す。The operation of the software transfer update system 1000 according to the first embodiment will be described. 実施の形態1におけるブロック探索テーブルを示す。3 shows a block search table according to the first embodiment. 実施の形態2におけるソフトウェアを対象とするアドレス変換を示す。The address conversion for the software in the second embodiment will be described. 実施の形態2におけるモジュールを対象とするアドレス変換を示す。The address conversion for modules in the second embodiment will be described. 実施の形態2におけるプログラム実行部分を対象とするアドレス変換を示す。The address conversion for the program execution part in the second embodiment will be described. 実施の形態2におけるプログラムデータ部分を対象とするアドレス変換を示す。The address conversion for the program data portion in the second embodiment will be described. 実施の形態3におけるソフトウェア転送更新システム2000の構成を示す。The structure of the software transfer update system 2000 in Embodiment 3 is shown. 実施の形態3におけるソフトウェア転送更新システム2000の動作を示す。The operation | movement of the software transfer update system 2000 in Embodiment 3 is shown.

符号の説明Explanation of symbols

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 part 104 Target side logical address conversion unit 106 Target side communication unit 1000 Software transfer update system 110 Target side storage unit 1101 Target side software 200 Server device 201 Transmission side checksum calculation unit 2011 Server side first check Sum calculation unit, 2012 server side second checksum calculation unit, 2013 server side third checksum calculation unit, 203 transmission side division unit, 204 server side logical address conversion unit, 205 transmission side block search unit 206 server communication unit, 2000 software transfer update system 210 server side storage unit, 2101 server software 300 target terminal, 400 a server device.

Claims (10)

アドレスが割り当てられた複数の要素データにより構成された第1全体データを格納する受信側装置に、アドレスが割り当てられた複数の要素データにより構成されるとともに前記第1全体データに対応するデータを示す第2全体データを格納する送信側装置から、前記第1全体データを前記第2全体データに更新するための更新用データを送信する更新用データ送信システムにおいて、
前記受信側装置は、
前記第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.
前記第1全体データは、
前記受信側装置で運用する現行プログラムであり、
前記第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.
前記第1全体データは、
前記受信側装置で運用する現行プログラムを構成するモジュールを示す現行プログラム構成モジュールであり、
前記第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全体データを格納する送信側装置から、前記第1全体データを前記第2全体データに更新するための更新用データを送信する更新用データ送信方法において、
前記受信側装置は、
前記第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.
JP2005019847A 2005-01-27 2005-01-27 Update data transmission system, transmission side apparatus, reception side apparatus, and update data transmission method Expired - Fee Related JP4619804B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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