Movatterモバイル変換


[0]ホーム

URL:


CN1241136C - Method for upgrading software - Google Patents

Method for upgrading software
Download PDF

Info

Publication number
CN1241136C
CN1241136CCN 01142155CN01142155ACN1241136CCN 1241136 CCN1241136 CCN 1241136CCN 01142155CN01142155CN 01142155CN 01142155 ACN01142155 ACN 01142155ACN 1241136 CCN1241136 CCN 1241136C
Authority
CN
China
Prior art keywords
match
piece
version file
data
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN 01142155
Other languages
Chinese (zh)
Other versions
CN1409239A (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.)
Beijing net an Technology Limited by Share Ltd
Original Assignee
RUIXING SCIENCE AND TECHNOLOGY Co Ltd BEIJING
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 RUIXING SCIENCE AND TECHNOLOGY Co Ltd BEIJINGfiledCriticalRUIXING SCIENCE AND TECHNOLOGY Co Ltd BEIJING
Priority to CN 01142155priorityCriticalpatent/CN1241136C/en
Publication of CN1409239ApublicationCriticalpatent/CN1409239A/en
Application grantedgrantedCritical
Publication of CN1241136CpublicationCriticalpatent/CN1241136C/en
Anticipated expirationlegal-statusCritical
Expired - Lifetimelegal-statusCriticalCurrent

Links

Landscapes

Abstract

The present invention provides a method for upgrading software. The method comprises the following steps: an increment upgrading packet making process is used for finding out mismatching points of data contents in lower version files and higher version files in order to generate mismatching blocks, corresponding action is generated by aiming at found matching blocks and the mismatching blocks, wherein the action is one of replication, replacement, insertion and deletion; an increment upgrading process is used for executing the action generated in the increment upgrading packet making process in order to replace the contents of the lower version files with the contents of the higher version files. Therefore, the data quantity copied or downloaded in the whole upgrading process is obviously smaller than the data quantity needing to be copied or downloaded by the conventional method, and moreover, the upgrading process is very simple and highly efficient. Therefore, the precious time and the energy of producers and users are saved, and storage medium resources and money are also saved.

Description

Software upgrade method
Technical field
The present invention relates to a kind of software upgrade method.More particularly, the present invention relates to a kind of like this software upgrade method, this method is the software package of highest version with larger software packet upgrade with copy or download low volume data on the lowest version basis of software.
Background technology
Conventional method for upgrading software is to adopt the All Files in the lowest version packet of software, or the mode that a part of file is replaced with whole file is carried out software upgrading.Also do not show the inconvenience that this mode is brought in the software industry early stage of development, because the software in that period mostly is the less packet of data volume, even when each upgrading, each file in the whole packet of redaction is copied one time again, send to the user that need carry out software upgrading then, the time that Software Production merchant's copy and customer upgrade are spent can be not too many yet, and the storage medium of waste is also limited.
But along with software continuous development also, the drawback of conventional method for upgrading software is more and more obvious.On the one hand, the function of software package is more and more, and software size also just correspondingly enlarges.Concerning larger software, conventional method for upgrading software all will copy lot of data in each upgrading, and the AKU that 100,000,000 data occur is much.100,000,000 data will send to the user's hand that carries out software upgrading from the Software Production merchant there, at first, Software Production merchant will spend a large amount of manpower and materials, use jumbo storage medium copy software, the user spends more time that this software upgrade data bag is copied into computing machine more then, to substitute original lowest version software.This process waste many quality time of manufacturer, energy and money.But in fact the content of upgrading accounts for the sub-fraction of the capacity of this packet, each file even may only change several bytes.
On the other hand, some needs frequent upgrading such as the such software package of antivirus software, and the possible data amount of upgrading each time is not very big, but because frequency is very high, in fact causes the waste to user resources yet.If, also wasted the bandwidth of network and the resource of server, increased the weight of the burden of manufacturer by network download.
Therefore be necessary to develop a kind of copy or download the method that necessary minimum contents just can be upgraded software, and needn't be, each all the copy or whole or most of contents of downloaded software for upgrade software.
Summary of the invention
At the problem that exists in the above-mentioned present software upgrading, the purpose of this invention is to provide a kind of more reasonable software upgrade method of more optimizing, this method is on the lowest version basis of software, with copy or the larger software package of download low volume data upgrading.
In order to realize purpose of the present invention, a kind of software upgrade method is provided, this method comprises: increment AKU manufacturing process, be used for finding out lowest version file and highest version file data content do not match a little and behind the match point, do not match piece and a little find out match block to find out with nearest thereafter match point according to match point and nearest thereafter not matching according to not matching a little, wherein produce replication actions at the match block that finds, piece does not produce replacement at matching, insert, one of deletion action, wherein when the piece that do not match does not exist, adopt insert action in the lowest version file; When the piece that do not match does not exist, adopt the deletion action in the highest version file; When the piece that do not match all exists in highest version file and lowest version file, adopt and replace action; With the increment escalation process, be used to carry out the described action that produces by increment AKU manufacturing process, replace to the content of highest version file with content with the lowest version file.This method produces a series of actions by seeking match block.By 4 simple action definitions, as long as the essential data of copy get final product upgrade software to the user.Client is by carrying out increment escalation process upgrade software.Whole upgrade process copy or data downloaded amount are obviously little than required copy of conventional method and data downloaded amount, and escalation process is very simple and efficient, not only save manufacturer and user's quality time and energy, and conserve memory media resource and money.
Description of drawings
The present invention and superiority thereof will be better understood from following detailed description under the situation of reference relevant drawings, wherein:
Fig. 1 shows coupling process flow diagram of the present invention.
Embodiment
Rising Antivirus increment ROMPaq is according to above technical know-how, an embodiment under the WIN32 platform, but the present invention is not limited to the WIN32 platform.
For convenience described below, define several terms now.
The starting point of the identical part of data content is called match point in lowest version file and the highest version file.
The starting point of data content part inequality in lowest version file and the highest version file is called and does not match a little.
Be called match block since a match point (comprising) to a nearest blocks of data district that finishes (not comprising) that do not match.
Be called the piece that do not match since one do not match (comprising) to the blocks of data district that a nearest match point finishes (not comprising).
The preferred embodiment of the present invention realizes software upgrading in two steps: first step is exactly so-called increment AKU manufacturing process, and second step is called the increment escalation process.Describe this two steps now in detail
Increment AKU manufacturing process:
Consider that to the minimum data of user's download carry out operation the most fast, groundwork of the present invention is to finish in making the AKU process, generally this process all is to be finished by manufacturer.
The match point data width of present embodiment is defined as 32 bytes, meets the data width of present main flow Intel CPU.The coupling limit is 4K, meets the joint size of windows platform PE file.
Manufacturing process comprises following step:
1. file is relatively sought the piece that do not match
This is basic step, at first seeks the part that do not match in two files.Compatible portion is that we can repeat to send to user's data, and our whole file comparison procedure is just constantly analyzed the repetition of data and replication problem not in fact.After finding a match block data are labeled as copy.For the piece that do not match, mate again according to step 2.
The identification and matching piece is not that briefly two data equate just passable, because run into through regular meeting in two pieces that do not match that coexist mutually of several bytes yet.So we will ignore too short matched data, this limit of ignoring is also to be to be difficult to hold the very important while.In general, this limit generally should be not less than the data width of data file, and this is usually relevant with operating system.In addition, this limit also will be considered the size of the data structure in the increment AKU, avoids occurring the data block delta package that causes too in small, broken bits and expands.
2. mate the piece that do not match again, according to circumstances produce delta package
The file of two different editions if directly compare, has mass data inequality, that is to say a lot of very big pieces that do not match.This is owing to when program or data modification, often insert and delete content, causes the just dislocation up and down of same data.It is very crucial how reorientating out match point in the piece that do not match, and this is directly connected to the size of the delta package of generation.
The algorithm of matches point basically can reference strings pattern matching algorithm, this algorithm has several, the simplest is that two file interactions are the byte-by-byte comparison of increment with a byte.This method is simple, but can take very many time, and relatively two bigger files of difference may spend several minutes.By improving algorithm, reduce and recall the speed that to increase substantially.
The match point matching algorithm of present embodiment adopts a kind of quick jump searching algorithm, and this algorithm is that the present invention creates, and is adapted at skipping fast in two unmatched data blocks part inequality and seeks match point.At first, we take out the data be used as match point at the lowest version file piece forefront that do not match, and seek first byte of match point then in the piece that do not match of highest version file.If do not find, abandon this match point, move a byte in original, from new coupling.If find first byte, begin to seek second byte of match point from next byte.Do not find with above process, if find each byte of match point fully, the match is successful, if do not wait, recalls a match point length byte number from last matched bytes and restart to take turns matching process.
After finding match point, according to the front and back data cases, the piece that will not match is defined as insertion, deletion or replaces.Be defined as insertion, deletion or replace according to the coupling flow chart description of Fig. 1 piece that how will not match below.
Fig. 1 is the process flow diagram of describing according to a preferred embodiment of the invention.At step S1, carry out pre-service, opening file, to set up reflection, and mate initial point and be set to 0.
At step S2, judge whether to exist the next one piece that do not match.If judge to have data block next inequality in step S2, then this process is transferred to step S3, therein, judges whether not find match point in this matches.
If in this matches piece, do not find match point in step S3 judgement, then this process is transferred to step S4, therein, the match point of new and old edition file is compared, if the match point of highest version file is greater than the match point of ancient deed, then this process is transferred to step S5, and the piece that therein this do not matched is labeled as deleted block, and process is transferred to step S8.
If result in step S4 relatively is the match point of the match point of highest version file less than ancient deed, then this process is transferred to step S6, and the piece that therein this do not matched is labeled as the insertion piece, and process is transferred to step S8.
If result in step S4 relatively is the match point that the match point of highest version file equals the lowest version file, then this process is transferred to step S7, and the piece that therein this do not matched is labeled as replace block, and process is transferred to step S8.
If not can not find match point in step S3 judgement in this matches piece, then this process is transferred to step S7, and the piece that therein this do not matched is labeled as replace block, and process is transferred to step S8.
At step S8, judge that whether this piece that do not match can merge with last one piece that do not match, if draft the result for being, then this process forwards step S9 to, the piece and last that therein this do not matched piece merging that do not match is to produce a bigger piece that do not match.If step S8 judge this do not match piece cannot with on the piece that do not match merge, then this process is transferred to step S10, and this result is write file, and this process is transferred to step S2, to carry out processing procedure next time.
If judge at step S2 not have the next one piece that do not match, then this process forwards S11 to, carries out aftertreatment, with close file.Finish this process then.
The increment escalation process:
As previously mentioned, one of design of uniqueness of the present invention has been with four kinds of simple action descriptions the everything that may do in client, and these four kinds of actions are to duplicate, replace, insert, delete.Duplicating is that data with early version copy to redaction, and this action has a parameter, is exactly length; Replacement is that the data with early version replace to new data, the data length that is replaced in new data length and the early version, and this action has two parameters, and the one, the length of replacing, the 2nd, new data; Insertion is that new data are inserted in the data of early version, forms the data of redaction, and this action has two parameters, the one, and the length of insertion data, the 2nd, the data of inserting; Deletion is the data deletion with early version, because there are not these data in redaction.Use above-mentioned four kinds of actions, can finish the upgrading to single file, process is as follows:
(1), open early version file to be upgraded, whether the content of checking early version is the version that will upgrade, if not, can't upgrade, withdraw from escalation process; If create the redaction file.
(2), get the action and parameter, for different actions, do following processing respectively:
1, duplicate, parameter is for duplicating length.From the early version file, fetch data, the data that read are write new file by duplicating length read.
2, replace, parameter is for replacing length, replacement data.The file pointer of early version file is moved backward, and displacement is for replacing length; Replacement data is write the redaction file, write length for replacing length.
3, insert, parameter is for inserting length, inserting data.To insert data and write the redaction file, write length for inserting length.
4, deletion, parameter is deletion length.The file pointer of early version file moves backward, and displacement is for replacing length.
(3), repeated for second step, to finishing to the everything of this document.
(4), close the early version file, close the redaction file, finish upgrading to a file.
(5), repeat first to fourth the step, finish escalation process to all files to be upgraded.
The benefit that this upgrade method is brought is:
1. produce in the process of highest version file, no matter lowest version file or highest version file, file refers to Pin is all without any trace-back process, so that file read-write amount minimum, and speed piece very not only, and really do Have no requirement to the configuring condition for the user.
2. four simple actions can be contained all complicated file update operations, so that the targeted update mistake Journey is isolated fully with the operating system and the algorithm that produce AKU. Manufacturer at all can shadow to the adjustment of algorithm Ring user's upgrading. For the user of different operating system, manufacturer also needn't make different AKUs.
3. make client work very simple, core code only needs several row just can finish all working.Client-side program is very short and small and stable.

Claims (4)

CN 011421552001-09-142001-09-14Method for upgrading softwareExpired - LifetimeCN1241136C (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN 01142155CN1241136C (en)2001-09-142001-09-14Method for upgrading software

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN 01142155CN1241136C (en)2001-09-142001-09-14Method for upgrading software

Publications (2)

Publication NumberPublication Date
CN1409239A CN1409239A (en)2003-04-09
CN1241136Ctrue CN1241136C (en)2006-02-08

Family

ID=4676662

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN 01142155Expired - LifetimeCN1241136C (en)2001-09-142001-09-14Method for upgrading software

Country Status (1)

CountryLink
CN (1)CN1241136C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2007118419A1 (en)*2006-04-142007-10-25Beijing Rising International Software Co., LtdA method and device thereof of upgrading software

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20040237081A1 (en)*2003-05-192004-11-25Homiller Daniel P.Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US7574706B2 (en)*2003-12-152009-08-11Microsoft CorporationSystem and method for managing and communicating software updates
KR100663547B1 (en)*2004-09-092007-01-02삼성전자주식회사 Communication system and method for software upgrade of terminal and terminal
US20060117075A1 (en)*2004-12-012006-06-01International Business Machines CorporationPrerequisite, dependent and atomic deltas
CN100362789C (en)*2004-12-152008-01-16华为技术有限公司 Method for Acquiring Multimedia Terminal Resources
CN100422931C (en)*2005-02-052008-10-01西安大唐电信有限公司Method and system for updating software function
CN100339830C (en)*2005-03-112007-09-26联想(北京)有限公司Method for updating software
CN100403693C (en)*2005-12-062008-07-16上海华为技术有限公司 Method and system for upgrading remote equipment in communication network
WO2011130879A1 (en)*2010-04-232011-10-27Hewlett-Packard Development Company, L.P.Match analysis for encoding optimized update packages
CN101094229B (en)*2007-07-242012-12-19深圳市融创天下科技股份有限公司Increment upgrading method for networked application programs
CN102193805B (en)*2010-03-112014-05-07华为技术有限公司Device and method for upgrading software patches
CN102081536A (en)*2010-12-302011-06-01华为终端有限公司Method for updating increment, and server
CN103051723B (en)*2012-12-272016-08-31广州市动景计算机科技有限公司A kind of method for updating increment and server, terminal
US9720669B2 (en)*2013-05-302017-08-01The Boeing CompanyDeployment of software across an enterprise system
CN105635216B (en)*2014-11-032019-05-03华为软件技术有限公司Upgrade method, equipment and the distributed system of Distributed Application
CN108228225B (en)*2017-12-292021-07-02北京元心科技有限公司Differential packet generation method and device and corresponding terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2007118419A1 (en)*2006-04-142007-10-25Beijing Rising International Software Co., LtdA method and device thereof of upgrading software

Also Published As

Publication numberPublication date
CN1409239A (en)2003-04-09

Similar Documents

PublicationPublication DateTitle
CN1241136C (en)Method for upgrading software
US8412677B2 (en)Systems and methods for byte-level or quasi byte-level single instancing
EP0981090B1 (en)A method of producing a checkpoint which describes a base file and a method of generating a difference file defining differences between an updated file and a base file
US6216175B1 (en)Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US7506007B2 (en)Interval vector based knowledge synchronization for resource versioning
US6374250B2 (en)System and method for differential compression of data from a plurality of binary sources
Crauser et al.A theoretical and experimental study on the construction of suffix arrays in external memory
CN101084499B (en) Systems and methods for searching and storing data
US11461304B2 (en)Signature-based cache optimization for data preparation
CN101311930B (en)Block compression of tables with repeated values
US9736270B2 (en)Automated client/server operation partitioning
US20040148303A1 (en)Method of updating data in a compressed data structure
WO2001057721A2 (en)Dynamic web page generation
CN104932909A (en)Terminal software upgrading method and device
EP1642204A2 (en)Method and system for updating versions of content stored in a storage device
CN113535732B (en)Verifiable query optimization method for reputation-behavior correlation-oriented double-block chain
CN107545021A (en)A kind of date storage method and device
US11514009B2 (en)Method and systems for mapping object oriented/functional languages to database languages
CN1292557C (en)A method of call bill storage
CN116170433B (en)Method for downloading dependent package and related component
Valvag et al.Update Maps–A new Abstraction for High-Throughput Batch Processing
CN116860309A (en)Partial update file data block read-write method and differential restore and increment update method
JP2004062735A (en)Update information generating system to directory information and update information generating program
JammulaPARALLEL ALGORITHMS FOR ENABLING FAST AND SCALABLE ANALYSIS OF HIGH-THROUGHPUT SEQUENCING DATASETS
WO2014118560A1 (en)Method and system for data storage

Legal Events

DateCodeTitleDescription
C06Publication
PB01Publication
C10Entry into substantive examination
SE01Entry into force of request for substantive examination
C14Grant of patent or utility model
GR01Patent grant
ASSSuccession or assignment of patent right

Owner name:BEIJING RISING INTERNATIONAL SOFTWARE CO., LTD.

Free format text:FORMER OWNER: BEIJING RUIXING SCIENCE CO., LTD.

Effective date:20080104

C41Transfer of patent application or patent right or utility model
TR01Transfer of patent right

Effective date of registration:20080104

Address after:Room A408, Zhongke building, 22 Zhongguancun street, Haidian District, Beijing

Patentee after:Beijing Rising International Software Co., Ltd.

Address before:Room 1305, Zhongke building, 22 Zhongguancun street, Haidian District, Beijing

Patentee before:Ruixing Science and Technology Co., Ltd., Beijing

ASSSuccession or assignment of patent right

Owner name:BEIJING RISING INFORMATION TECHNOLOGY CO., LTD.

Free format text:FORMER OWNER: BEIJING RISING INTERNATIONAL SOFTWARE CO., LTD.

Effective date:20101214

C41Transfer of patent application or patent right or utility model
CORChange of bibliographic data

Free format text:CORRECT: ADDRESS; FROM: 100080 ROOM A408, ZHONGKE BUILDING, NO.22, ZHONGGUANCUN STREET, HAIDIAN DISTRICT, BEIJING TO: 100190 ROOM 1301, ZHONGKE BUILDING, NO.22, ZHONGGUANCUN STREET, HAIDIAN DISTRICT, BEIJING

TR01Transfer of patent right

Effective date of registration:20101214

Address after:100190 Beijing City, Haidian District Zhongguancun Street Branch No. 22 building, room 1301

Patentee after:Beijing Rising Information Technology Co., Ltd.

Address before:100080, A408 building, Zhongke building, 22 Zhongguancun street, Haidian District, Beijing

Patentee before:Beijing Rising International Software Co., Ltd.

C56Change in the name or address of the patentee
CP01Change in the name or title of a patent holder

Address after:100190 Beijing City, Haidian District Zhongguancun Street Branch No. 22 building, room 1301

Patentee after:Beijing Rising Information Technology Co., Ltd

Address before:100190 Beijing City, Haidian District Zhongguancun Street Branch No. 22 building, room 1301

Patentee before:Beijing Rising Information Technology Co., Ltd.

CP03Change of name, title or address
CP03Change of name, title or address

Address after:100190 Zhongguancun street, Haidian District, Beijing, No. 22, A1305, 13

Patentee after:Beijing net an Technology Limited by Share Ltd

Address before:100190 Beijing City, Haidian District Zhongguancun Street Branch No. 22 building, room 1301

Patentee before:Beijing Rising Information Technology Co., Ltd

CX01Expiry of patent term

Granted publication date:20060208

CX01Expiry of patent term

[8]ページ先頭

©2009-2025 Movatter.jp