CN1624661A - Optimizing file replication using binary comparisons - Google Patents

Optimizing file replication using binary comparisons Download PDF

Info

Publication number
CN1624661A
CN1624661A CNA2004100858945A CN200410085894A CN1624661A CN 1624661 A CN1624661 A CN 1624661A CN A2004100858945 A CNA2004100858945 A CN A2004100858945A CN 200410085894 A CN200410085894 A CN 200410085894A CN 1624661 A CN1624661 A CN 1624661A
Authority
CN
China
Prior art keywords
difference
server
triplicate
basic document
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100858945A
Other languages
Chinese (zh)
Other versions
CN100557574C (en
Inventor
刘海
L·N·安托诺夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1624661A publication Critical patent/CN1624661A/en
Application granted granted Critical
Publication of CN100557574C publication Critical patent/CN100557574C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Client and server based copies of a file are maintained in synchronicity as changes are made to the file. Data is compared to a previous version known to both the client and server and a highly compressed representation of the differences between the two is generated. These differences, or 'diffs', are then transmitted, and may use extensions to the HTTP (HyperText Transport Protocol) protocol.

Description

Use scale-of-two relatively to optimize file copy
Technical field
The present invention relates generally to that computer documents duplicates the field, relate in particular to and use scale-of-two file copy relatively.
Background technology
Duplicate by the client-server version that makes file or document and keep synchronously local and remote visit data being carried out.Although this functional application programs is important and crucial, however in view of must be between client-server data quantity transmitted, it also is expensive.Whole file and document are stored on the server together with its various version, and transmit between server and client computer thereof.Thus, many dubbing systems are attempted to save bandwidth by packed data before sending.Yet this traditional compressed format is whole document No. data, even the major part of these data is once to transmit as the part of last version.Thus, the minor variations in the file or document still needs compression and transmits whole file or document, although most of data reside in target on the ground with the form of the version that early receives.
In view of the foregoing, need a kind of system and method that overcomes the limitation and the shortcoming of prior art.
Summary of the invention
The invention provides a kind of be used for when file is made keep when changing file based on client computer with based on the mechanism of the copies synchronized of server.With data with all known last version of client-server is compared, and the high compression that generates difference is between the two represented.
According to an embodiment, receive and store the first authentic copy and the triplicate of a basic document at the client computer place.These two copies are identical-client computer copy of reception and two examples that store this copy.Client computer is made change to the first authentic copy then, definite then first authentic copy that changes and the difference between the triplicate (as, scale-of-two difference).Difference is sent to the server of safeguarding this basic document.If the basic document on the server be stored in first the device on basic document identical, then server is accepted this difference; Otherwise server is refused this difference.
According to each side of the present invention, if server refusal difference, then server sends second difference to client computer.Client computer is used this second difference to the triplicate of the basic document that is stored in the first device place then.This makes the basic document of client computer become for the basic document that resides on the server is up-to-date.Client computer can be made change to the basic document of this renewal then, generates a new difference, sends this new difference to server then.
Read the detailed description of following illustrative embodiment in conjunction with the accompanying drawings, can know additional features of the present invention and advantage.
Description of drawings
When read in conjunction with the accompanying drawings, can understand the detailed description of above general introduction and following preferred embodiment better.For purpose of the present invention is described, representative configuration of the present invention has been shown in the accompanying drawing; Yet, the invention is not restricted to the concrete grammar and the means that are disclosed.In the accompanying drawing:
Shown in Figure 1 is the block diagram that can realize the example calculation environment of each side of the present invention;
Fig. 2 is the process flow diagram according to the illustrative methods of the file of maintenance update of the present invention;
Fig. 3 is the process flow diagram according to another illustrative methods of the file of maintenance update of the present invention;
Fig. 4 shows the block diagram of the example system that helps to describe each side of the present invention; And
Fig. 5 and 6 is the process flow diagrams according to another illustrative methods of the file of maintenance update of the present invention.
Embodiment
Summary
The present invention is directed to when file being made this locality (being also referred to as " client computer ") copy of keeping file when changing and based on the copies synchronized of server.Example system and method that the present invention describes are more effective than prior art, and bandwidth demand and the synchronous time element of execution are all minimized.
With data with all known last version of client-server is compared, and the high compression that generates difference is between the two represented.These differences, or " poor " can be sent out then, and can use expansion to HTTP (HTML (Hypertext Markup Language)) agreement.
The example calculation environment
Fig. 1 shows an example that can realize suitable computingasystem environment 100 of the present invention therein.Computingasystem environment 100 only is an example of suitable computing environment, is not the limitation of suggestion to the scope of use of the present invention or function.Computing environment 100 should be interpreted as that the arbitrary assembly shown in the exemplary operation environment 100 or its combination are had dependence or demand yet.
The present invention can use numerous other universal or special computingasystem environment or configuration to operate.Be fit to use well-known computing system of the present invention, environment and/or configuration to include but not limited to: personal computer, server computer, hand-held or laptop devices, multicomputer system, the system based on microprocessor, set-top box, programmable consumer electronics, network PC, minicomputer, large scale computer, to comprise distributed computing environment of arbitrary said system or equipment or the like.
The present invention can describe in the general context environmental such as the computer executable instructions of being carried out by the computing machine in the network environment such as program module.Generally speaking, program module comprises routine, program, object, assembly, data structure or the like, carries out specific task or realizes specific abstract data type.The present invention also can put into practice in distributed computing environment, and wherein, task is carried out by the teleprocessing equipment that connects by communication network.In distributed computing environment, program module can be arranged in local and remote computer storage media, comprises memory storage device.
With reference to figure 1, be used to realize that example system of the present invention comprises the general-purpose computations device with computing machine 110 forms.The assembly of computing machine 110 includes but not limited to, processing unit 120, system storage 130 and will comprise that the sorts of systems assembly of system storage is coupled to the system bus 121 of processing unit 120.System bus 121 can be any of some kinds of types of bus structure, comprises memory bus or Memory Controller, peripheral bus and the local bus that uses all kinds of bus architectures.As example but not limitation, this class architecture comprises ISA(Industry Standard Architecture) bus, MCA (MCA) bus, strengthens ISA (EISA) bus, Video Electronics Standards Association's (VESA) local bus and peripheral component interconnect (pci) bus (being also referred to as the Mezzanine bus).
Computing machine 110 generally includes various computer-readable mediums.Computer-readable medium can be to comprise the non-volatile medium of easily becoming estranged, removable and not removable medium by arbitrary available media of computing machine 110 visits.As example but not the limitation, computer-readable medium comprises computer storage media and communication media.Computer storage media comprises to be used to store such as easily becoming estranged of realizing of arbitrary method of information such as computer-readable instruction, data structure, program module or other data or technology non-volatile, removable and not removable medium.Computer storage media includes but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic holder, tape, disk storage or other magnetic storage apparatus, maybe can be used for storing desired information and can be by arbitrary other medium of computing machine 110 visits.Communication media comprises computer-readable instruction, data structure, program module or other data usually in the modulated message signal such as carrier wave or other transmission mechanism, and comprises that arbitrary information transmits medium.Term " modulated message signal " refers to be provided with or change in the mode that the information in the signal is encoded the signal of its one or more features.As example but not limitation, communication media comprises wired medium, as cable network or directly line connect, and wireless media is as acoustics, RF, infrared and other wireless media.Above-mentioned arbitrary combination also should be included within the scope of computer-readable medium.
System storage 130 comprises the computer storage media with easy mistake and/or nonvolatile memory form, as ROM (read-only memory) (ROM) 131 and random-access memory (ram) 132.Basic input/output 133 (BIOS) comprises as help the basic routine of transmission information between the element in computing machine 110 when starting, is stored in usually among the ROM 131.RAM 132 comprises addressable immediately or current data of operating of processing unit 120 and/or program module usually.As example but not the limitation, Fig. 1 shows operating system 134, application program 135, other program module 136 and routine data 137.
Computing machine 110 also can comprise other removable/not removable, easy mistake/non-volatile computer storage media.Only make example, the disc driver 151 that Fig. 1 shows hard disk drive 141 that not removable, non-volatile magnetic medium is read and write, read and write removable, non-volatile disk 152 and to removable, nonvolatile optical disk 156, the CD drive of reading and writing as CD ROM or other optical media 155.Other that can use in the exemplary operation environment be removable/and not removable, easy mistake/non-volatile computer storage media includes but not limited to tape cassete, flash card, digital versatile disc, digital video band, solid-state RAM, solid-state ROM or the like.Hard disk drive 141 passes through not removable memory interface usually, is connected to system bus 121 as interface 140, and disc driver 151 and CD drive 155 are connected to system bus 121 usually by the removable memory interfaces as interface 150.
Fig. 1 discussion and the driver that illustrates and related computer storage media thereof provide the storage of computer-readable instruction, data structure, program module and other data for computing machine 110.For example, in Fig. 1, hard disk drive 141 store operation systems 144, application program 145, other program module 146 and routine data 147 are shown.Notice that these assemblies can be identical with routine data 137 with operating system 134, application program 135, other program module 136, also can be different with them.Here give different labels to operating system 144, application program 145, other program module 146 and routine data 147 and illustrate that they are different copies at least.The user can pass through input equipment, as keyboard 162 and positioning equipment 161 (being often referred to mouse, tracking ball or touch pad) to computing machine 110 input commands and information.Other input equipment (not shown) can comprise microphone, operating rod, game mat, satellite dish, scanner or the like.These and other input equipment is connected to processing unit 120 by the user's input interface 160 that is coupled to system bus usually, but also can be connected with bus structure by other interface, as parallel port, game port or USB (universal serial bus) (USB).The display device of monitor 191 or other type also by interface, is connected to system bus 121 as video interface 190.Except that monitor, computing machine also comprises other peripheral output device, as loudspeaker 197 and printer 196, connects by output peripheral interface 195.
Computing machine 110 can use one or more remote computers, operates in the networked environment that connects as the logic of remote computer 180.Remote computer 180 can be personal computer, server, router, network PC, peer device or other common network node, and generally include the relevant element of many or all above-mentioned and computing machines 110, although in Fig. 1, only show memory storage device 181.The logic that Fig. 1 describes connects and comprises Local Area Network 171 and wide area network (WAN) 173, but also can comprise other network.This class network environment is common in office, enterprise-wide. computer networks, Intranet and the Internet.
When using in the lan network environment, computing machine 110 is connected to LAN 171 by network interface or adapter 170.When using in the WAN network environment, computing machine 110 generally includes modulator-demodular unit 172 or other device, is used for by WAN 173, sets up communication as the Internet.Modulator-demodular unit 172 can be internal or external, is connected to system bus 121 by user's input interface 160 or other suitable mechanism.In networked environment, program module or its part relevant with computing machine 110 of description can be stored in the remote memory storage device.As example but not the limitation, Fig. 1 shows remote application 185 and resides in the memory devices 181.Be appreciated that it is exemplary that the network that illustrates connects, and also can use other device of setting up communication link between computing machine.
Example distributed is calculated framework or architecture
In view of crossing of individual computational activity and the Internet, various distributed computing frameworks have been developed and have developed.Individual and commercial user similarly have the interface of the seamless interoperability that is used for application program and computing equipment and web activation, make computational activity more and more towards web browser and network.
For example, but the .NET platform of MICROSOFT  comprises that server, member service are as data storage and loading equipment software based on web.As a rule, .NET platform provides the computing equipment co-operation that (1) make gamut and upgrades automatically on all devices and the ability of synchronizes user information, (2) the web website interaction capabilities of Ti Gaoing, realize by a large amount of use XML rather than HTML, (3) from being used for various application, as Email, or software, as the online service of the central starting point of the management of Office.NET to user's customization visit and the characteristics that transmit with products ﹠ services, (4) central authoritiesization data storage, to increase to message reference and with the efficient and the simplification of the information synchronization of product and equipment room, (5) integrate various communication medias, as Email, the ability of fax and phone, (6) concerning developer, create the ability of reusable module, increase productivity whereby and reduce the misprogrammed number, and (7) also have other cross-platform integration characteristics.
Although the exemplary embodiment here is in conjunction with residing in software description on the computing equipment, also can realize one or more part of the present invention, make service and in other distributed computing framework, finish, to support or to visit by language and the service of all .NET by " go-between " object between operating system, API or coprocessor and the request object.
Exemplary embodiment
Fig. 2 is the process flow diagram according to the illustrative methods of the file of maintenance update of the present invention.In this exemplary embodiment, the client modification file is also uploaded onto the server variation.In step 200, client computer receives the copy of the recent release (" version A ") that is stored in the basic document on the server.In step 210, client computer is made it to version A and is changed to create version A '.In step 220, client computer is preserved copy and the redaction A ' of prototype version A.Thus, even the user upgrades this document, client computer is also safeguarded the copy of the server state that last is known.The copy of anticipated release A can be stored on the client computer before or after step 210.
Then, in step 230, by comparison version A and A ' generation difference, or " poor ".Difference is that a kind of two versions with file compare with generation and may be used on the mechanism that older file generates the compression difference of new file.Can be by being used for determining that to known to those skilled in the art arbitrary method, technology or the system of the difference between base form and the modification carry out the difference generation.A kind of preferable difference that generates is scale-of-two difference.File is considered to a series of bytes.Conventional compression algorithm is used to generate scale-of-two difference by the difference between the copy that calculates shade or basic copy and correction.This difference is sent to server then, and server is refused difference or accepted difference.If the basis on the server changes, refusal then appears, and in the case, this difference is useless to server.Expection can be used arbitrary difference engine or technology according to the present invention.In the present invention, for providing of illustrative purpose the use of scale-of-two difference technology.
Particularly, in step 240, client computer sends to server that this is poor.Checking with the recent release of guaranteeing its basic document not after client computer changes to some extent in order to the version A that modifies, in step 250, server uses to version A that this is poor, with new, the nearest version one version B of generation this document.The version checking that server is carried out further describes with reference to figure 3-6 later.
In step 260, poor (can choose wantonly) that server stores redaction B and client computer provide.Redaction B is considered to the recent renewal of basic document, and keeps this difference with by using other client computer that prototype version A make change, and this further describes with reference to figure 3-6 later.Server can store randomly that this is poor, so that the renewal of optimization to be provided to other client computer.If made a plurality of revisions, then need to obtain from than legacy version a plurality of poor to latest edition.Notice that this difference also can be to not planning to make change, also to have had the client computer of version A useful but wish to read nearest version B.
In step 270, server to client computer notice redaction identifier (as, " version B ").Client computer abandons it then at the determined difference of step 230 and its stored version A, and at step 280 its version of redaction identifier marking A '.Thus, client computer renames version A ' as version B.
Fig. 3 is the process flow diagram of another illustrative methods of the file of maintenance update.In this example, server provides the nearest variation of poor document form to client computer.In step 300, the client requests file with version A of file upgrades.For example, client computer is made change and may be made this request the recent release of this document because expect.It has version A to client computer to server notification, and in response, and in step 310, server returns that this is poor.Server may be a difference of upgrading the A of (as, the step 260 of Fig. 2) from last client computer what safeguard.In step 320, client computer is used difference from A to the version A of its storage with the recent release that generates this document (as, " version B ").
Fig. 4 shows the block diagram of the example system that helps to describe each side of the present invention, and Fig. 5 and 6 shows the process flow diagram of the same foundation file being made the illustrative methods of the file of maintenance update when changing as two users.In this example, suppose that server 400 safeguards basic document (version A), two client computer 410,420 (being called client computer 1 and client computer 2 herein) are all expected the same foundation file is made change.
In step 500, client computer 1 and client computer 2 are all from server 400 requests and reception recent release (" version A ") (that is, client computer 1 and 2 is downloaded basic documents).Expection client computer 1 and 2 can sequentially be made change to basic document concomitantly or in time.Yet only a client computer will at first be delivered to server to its change to original basic document.These changes are applied to original basic document.Thus, first client computer to server transmission difference makes server accept this difference.Client computer difference subsequently based on basic document is refused serviced device.Therefore, send it after a while and must at first receive the basic document of renewal, then the basic document of this renewal is made change, as hereinafter in greater detail the client computer of the change of original basic document.
Suppose that client computer 1 at first makes change, method is advanced by the step 200 to 260 that is similar to described in Fig. 2.That is, in step 505,1 couple of version A of client computer makes it and changes to create version A '.In step 510, client computer 1 is preserved copy and the redaction A ' of prototype version A.Expection can store the copy of version A on client computer 1 before or after step 505.Then in step 515, by relatively version A and A ' generation poor (preferably being binary difference).
In step 520, client computer 1 sends to server 400 that this is poor.When returning change to server sync, client computer is examined server support difference mechanism, then " poor " is uploaded together with the version information of the version of specifying source document.After inspection does not change on the version A that client computer is used to modify with the recent release of guaranteeing its basic document, in step 525, the difference of the version A that server 400 application client 1 provide is to generate new, the nearest version-version B of this document.
In step 530, it is poor that server stores this redaction B and client computer 1 provide.Redaction B is considered to the recent renewal of basic document, and keeps difference with by using other client computer (as, client computer 2) that prototype version A makes change.
Be similar to step 270 and 280, although not shown in Fig. 5, server 400 to client computer 1 notice redaction identifier (as, " version B ").Client computer 1 abandons its determined difference and its stored version A then, and with its version of redaction identifier marking A '.Thus, client computer renames version A ' as version B.
Simultaneously, in step 535, client computer 2 is revised its received original basic document version A to create redaction one version A ".In step 540, client computer 2 is preserved copy and the redaction A of prototype version A ".Expection can store the copy of version A on client computer 2 before or after step 540.In step 545, " it is poor to generate by comparing version A and A then.
550, client computer 2 sends the poor of its version A to server 400.Server 400 checks whether its stored basic document changes on the basic document of client computer 2 as the basis of the modification of client computer 2.
If the server state of basic document be cached to the storage of this locality of requesting party's client associations in, then making comparisons between the corresponding file state on local stored files and the server.Whether with the copy of determining be stored in local stored files be recent release, perhaps whether have nearer version on server if can carry out this comparison.In other words, this relatively has been conceived to since requesting party's client computer is obtained the copy of this document, and another client modification has also been upgraded the possibility of the file of being asked.This relatively comprises the transmission of the identifier of representing file status to should be noted that expectation, and need not the whole file of transmission between client-server.In this way, this has relatively reduced otherwise with the Internet traffic of needs, and avoids more than same version with file sends once.
Thus, in step 555, the server inspection was not made change with the recent release of guaranteeing basic document on the version A that client computer 2 is used to modify.If basic document does not change, then in step 590, the difference that server 400 provides to the basic document application client 2 of server stores is to generate new, the recent release of this document, and in step 595, it is poor that this version of server stores and client computer 2 provide.Server 400 is notified the redaction identifiers to client computer 2, discardable then its determined difference of client computer 2 and its stored version A, and come the version A of its modification of mark with the redaction identifier ".
Yet in this example, client computer 1 provides change to server 400, and therefore the basic document that is stored on the server has become version B.Client computer 2 does not have the copy of version B, and the version A of file is modified.Therefore, because basic document changes, in step 560, it is poor that server 400 refusal client computer 2 provide, and send that client computer is 1 that provide, server 400 early receives and store version A poor of (step 530) to client computer 2.
In step 565, client computer 2 to its stored version A application client 1 provide poor, with the nearest server stores version (being version B here) that obtains this document.Client computer 2 is determined the version A of recent releases and its modification then respectively in step 570 and 575 " between poor, and to server 400 transmissions this is new poor.In step 580, server 400 uses to the recent release (version B) of its storage that this is new poor, to generate new recent release (being version C) here.In step 585, server 400 stores that this is new, recent release and new receive poor.Be similar to step 270 and 280, although not shown in Figure 5, server 400 to client computer 2 notice redaction identifiers (as, " version C ").Client computer 2 abandons its determined difference and its stored version then, and comes its version of mark A with the redaction identifier ".Thus, the client is with version A " renames version C as.
The version of revising is opposite with preserving automatically on server, and expection such as users such as keeper can determine should how integrated changing.This can be avoided the content conflicts with last user's change.
Note, can show before or after difference is accepted in approval at server and determine that this is poor.Thus, for raising the efficiency, client computer can wait until that server indicated client computer the same version of the current basic document of safeguarding as recent release of server to be made change.Only client computer could be determined difference and provide this poor to server at that time.Ideally, server is calculated difference not, and application of difference only.
Anticipate a kind of situation, a client computer is connected to server in another client computer and uploads to have made repeatedly before its change is provided.For example, suppose that original basic document is version A.Client computer 1 is made change then and these changes are accepted as version B.If client computer 1 is made further change, and they are offered server, then this new recent release is saved and is version C.Ideally, server is preserved the difference between version A and the B, and the difference between version B and the C.Thus, when another client computer is made it when changing, server preferably will be in same message sends difference between version A and the B and the difference between version B and the C to this client computer.Client computer is created version B and version C then again, and the difference between definite version C and its change, and provides this difference to server.
If out-of-date client computer is connected to server obtaining recent release, it tell server it have which version, and if the difference that stores trace back to this version, then return suitable one or more differences and current version ID.Preferably, server keep between the various version that it receives in processing procedure all are poor, still wish legacy version is made the client computer legacy version " back compatible " of basic document (that is, to) of change so which to hold.Yet, certain a bit on, server can delete or remove previous storage that it kept was poor.For example, these action can be by date or memory capacity prompting.
Ideally, it is poor to use HTTP(Hypertext Transport Protocol) to transmit.Particularly, warn server to transmit " poor ", or realize in message or be incorporated into that this is poor but use agreement expands.
HTTP has formed a kind of information can be so as at the standard mechanism such as the transmission over networks of compatible TCP/IP (transmission control protocol/Internet Protocol) such as the Internet, Intranet and extranet.HTTP is more particularly a kind of to be used for the application-level agreement of distributed, cooperation, Hypermedia Information System.It is a kind of generality, borderless agreement, expansion that can be by its requesting method, error code and head, except that its to also can be used for many tasks the use of hypertext, as name server and Distributed Object Management Systems.Because information transmits according to its standard, so it is called as a kind of host-host protocol, and because information is exchanged by the client computer of making the request of the server that generates response, so it is also referred to as a kind of request-response protocol.The HTTP that the present invention quoted relates generally to arbitrary standard of HTTP, and can find on the http://www.w3.org of website.
A kind of common use of HTTP is the transmission of Information according to markup languageization.For example, a kind of widespread usage of the Internet is to browse its web page.In these examples, the common information that retrieves is the HTML(Hypertext Markup Language) form according to the HTTP transmission.Yet, other standard SGML has also appearred.Such SGML is extend markup language (XML).XML has described the class data object of XML document of being known as, and has partly described the behavior of the computer program of handling them.Main difference between HTML and the XML is that in the former, the layout of the information content and content is tangled mutually, for example, is difficult to separate them.On the contrary, in XML, with the content storage layout of maintenance content and the description of logical organization discretely itself.Yet XML and HTML are the derivations that is called as the SGML of standard generalized markup language (SGML).The XML that the present invention quoted relates generally to arbitrary standard of XML, and can find on the http://www.w3.org of website.
For example, for safeguarding back compatible and interoperability, can use the HTTP of the expansion head in OPTIONS (option) response to allow client computer to find server support binary difference.The head of expansion in GET (obtaining) request accepts to the server notification client computer that this is poor.
Client-server all can select not use binary difference.In some cases, the message of transmission difference (as, HTTP binary difference head) may be greater than file itself.In this case, better is to send document but not poor between server and the client computer.Client computer can determine that the size of difference is greater than new file.For example, if new file has 0 byte, then this situation can take place.Server can determine to abandon difference and save storage space.If it is poor not use, then send whole file.For when signaling sends poorly, client computer can send with its PUT (placement) request expand head, existing and generate the version number of the basic document of difference from it with binary difference in the indication text.Server sends with its GET response and has expanded head, with the quantity of difference in the version number of the existing of indication binary difference chain, basic document and the chain.
When a plurality of differences of needs become client files when up-to-date, server can be chosen in the single answer difference is linked at together, if or the summation of difference during greater than redaction, send redaction itself.
The engine that calculates and use difference preferably provides in client computer and/or server.Preferably also realize being used to finding and the agreement of poor/version management.Having expanded the HTTP head allows client-server to explain that it generates the ability of difference.For example, client computer sends with its PUT request and has expanded head, existing and generate the version number of the basic document of difference from it with binary difference in the indication text.Server sends with its GET response and has expanded head, with the quantity of difference in the version number of the existing of indication binary difference chain, basic document and the chain.
Code server can be managed difference ideally to use (use engine), to store and return poor, and each client computer preferably has the maintenance server state, it is poor to generate, send the ability of the difference that difference and application return to server.
Be replicated in various application programs and be extensive use of, but the cost of these systems and performance all are a kind of challenge forever.The present invention has regulated the characteristic (known client/server state) of duplicating to produce an important leap in the efficient of system.The present invention may be used on duplicating the system of the customary big file that upgrades, such as allowing offline access based on the document of server or the product of file.
As mentioned above, although be to have described exemplary embodiment of the present invention in conjunction with various calculation elements, yet its basic concept may be used on any calculation element or system.
But various technology combined with hardware described in the invention or software realizes, perhaps realizes with both combination in due course.Thus, method and apparatus of the present invention, or its some aspect or part, can adopt and be included in (promptly such as the program code in floppy disk, CD-ROM, hard disk or the tangible medium such as arbitrary other and readable storage medium thereof, instruction) form, wherein, when carrying out in program code is loaded into such as machines such as computing machines and by it, this machine becomes and is used to put into practice device of the present invention.Under the situation that becomes executive routine code on the computing machine, storage media (comprising easily become estranged nonvolatile memory and/or memory element), at least one input equipment and at least one output device that calculation element generally comprises processor, can be read by processor.As needs, program can assembly language or machine language realization.In either case, language can be compiling or interpretative code, and can realize combined with hardware.
Method and apparatus of the present invention also can be put into practice by the communication of implementing with the form of program code, these program codes transmit by some transmission medium such as transmission such as electric wire or cable, optical fiber or arbitrary other form, wherein, when by such as EPROM, gate array, become machines such as logical device (PLD), client computers and receive program codes, and be loaded into when wherein carrying out by it, this machine becomes and is used to put into practice device of the present invention.When realizing on general processor, program code and processor combination are to provide a kind of operation to call unique device of function of the present invention.In addition, any memory technology of using in conjunction with the present invention can be unchangeably be the combination of hardware and software.
Although the present invention has been described in the preferred embodiment in conjunction with each accompanying drawing, yet be appreciated that and using down other similar embodiment without departing from the invention, or described embodiment is modified and adds, to carry out same function of the present invention.Therefore, the present invention should not be limited to arbitrary single embodiment, but opposite, should explain in according to the width of appended claims and scope.

Claims (40)

1. the method for the file of a maintenance update is characterized in that, it comprises:
On first device, store the first authentic copy and the triplicate of a basic document;
On described first device, receive change to the described first authentic copy;
Determine described through the first authentic copy of change and first difference between the described triplicate;
Send described first difference to server; And
If the basic document on the described server is identical with basic document on being stored in described first device, then on described server, accept described first difference, otherwise, described first difference of refusal on server.
2. the method for claim 1, it is characterized in that, it also is included in described first device and goes up the first authentic copy that receives described file from described server, and before storing the first authentic copy and triplicate of described file on described first device, on described first device, make the triplicate of described file.
3. the method for claim 1 is characterized in that, determines that described first difference comprises that the described first authentic copy and the scale-of-two between the described triplicate through changing of use compares.
4. the method for claim 1 is characterized in that, described first difference is binary difference.
5. the method for claim 1, it is characterized in that, if the described difference of refusal on described server then sends second difference from described server to described first device, and uses described second difference to the triplicate that is stored in the basic document on described first device.
6. the method for claim 1 is characterized in that, it also comprise the basic document determined on the described server whether be stored in described first device on basic document identical.
7. the method for claim 1 is characterized in that, sends described first difference and comprises the expansion of using http protocol.
8. the method for claim 1 is characterized in that, it also comprises:
On second device, store the first authentic copy and the triplicate of described basic document;
On described second device, receive change to the described first authentic copy;
Determine described through the first authentic copy of change and second difference between the described triplicate;
Send described second difference to described server; And
If the basic document on the described server is identical with basic document on being stored in described second device, then on server, accept described second difference, otherwise, described second difference of refusal on server.
9. method as claimed in claim 8, it is characterized in that it also comprises, if refuse described second difference on described server, then send the 3rd difference, and the triplicate of the basic document on described second device is used described the 3rd difference to described second device.
10. method as claimed in claim 8, it is characterized in that, it also is included in described second device and goes up the first authentic copy that receives described file from described server, and before storing the first authentic copy and triplicate of described file on described second device, on described second device, make the triplicate of described file.
11. method as claimed in claim 8 is characterized in that, determines that described second difference comprises that the above first authentic copy and scale-of-two between the described triplicate through changing of described second device of use compares.
12. method as claimed in claim 8 is characterized in that, described second difference is binary difference.
13. method as claimed in claim 8 is characterized in that, it also comprise the basic document determined on the described server whether be stored in described second device on basic document identical.
14. method as claimed in claim 8 is characterized in that, sends described second difference and comprises the expansion of using http protocol.
15. the computer-readable medium of the computer executable instructions of a method that has stored the file that is used to carry out maintenance update thereon is characterized in that described method comprises:
On first device, store the first authentic copy and the triplicate of a basic document;
On described first device, receive change to the described first authentic copy;
Determine described through the first authentic copy of change and first difference between the described triplicate;
Send described first difference to server; And
If the basic document on the described server is identical with basic document on being stored in described first device, then on described server, accept described first difference, otherwise, described first difference of refusal on described server.
16. computer-readable medium as claimed in claim 15, it is characterized in that, it also comprises computer executable instructions, be used on described first device, receiving the first authentic copy of described file from described server, and before storing the first authentic copy and triplicate of described file on described first device, on described first device, make the triplicate of described file.
17. computer-readable medium as claimed in claim 15 is characterized in that, determines that described first difference comprises that the described first authentic copy and the scale-of-two between the described triplicate through changing of use compares.
18. computer-readable medium as claimed in claim 15 is characterized in that, described first difference is binary difference.
19. computer-readable medium as claimed in claim 15, it is characterized in that, it also comprises computer executable instructions, if be used for the described difference of refusal on described server, then send second difference to described first device, and use described second difference to the triplicate that is stored in the basic document on described first device from described server.
20. computer-readable medium as claimed in claim 15 is characterized in that, it also comprises computer executable instructions, be used for determining on the described server basic document whether be stored in described first device on basic document identical.
21. computer-readable medium as claimed in claim 15 is characterized in that, sends described first difference and comprises the expansion of using http protocol.
22. computer-readable medium as claimed in claim 15 is characterized in that, it also comprises computer executable instructions, is used for:
On second device, store first and second copies of described basic document;
On described second device, receive change to the described first authentic copy;
Determine described through the first authentic copy of change and second difference between the described triplicate;
Send described second difference to described server; And
If the basic document on the described server is identical with basic document on being stored in described second device, then on described server, accept described second difference, otherwise, described second difference of refusal on described server.
23. computer-readable medium as claimed in claim 22, it is characterized in that, it also comprises computer executable instructions, if be used for described second difference of refusal on described server, then send the 3rd difference, and use described the 3rd difference to the triplicate that is stored in the basic document on described second device to described second device.
24. computer-readable medium as claimed in claim 22, it is characterized in that, it also comprises computer executable instructions, be used on described second device, receiving the first authentic copy of described file from described server, and before storing the first authentic copy and triplicate of described file on described second device, on described second device, make the triplicate of described file.
25. computer-readable medium as claimed in claim 22 is characterized in that, determines that described second difference comprises that the first authentic copy and the scale-of-two between the described triplicate that use the described second described change of installing compare.
26. computer-readable medium as claimed in claim 22 is characterized in that, described second difference is binary difference.
27. computer-readable medium as claimed in claim 22 is characterized in that, it also comprises computer executable instructions, be used for determining on the described server basic document whether be stored in described second device on basic document identical.
28. computer-readable medium as claimed in claim 22 is characterized in that, sends described second difference and comprises the expansion of using http protocol.
29. a system that uses in file syn chronizing system is characterized in that it comprises:
One memory storage is used to store the first authentic copy and the triplicate of a basic document;
One input media is used to receive the change to the first authentic copy of described basic document; And
One processor is used for changing the described first authentic copy based on the change that is received, and determines described through the first authentic copy of change and the difference between the described triplicate.
30. system as claimed in claim 29 is characterized in that, described difference is scale-of-two difference.
31. system as claimed in claim 29 is characterized in that, described basic document resides on the server, and it also comprises an output unit, is used for sending described difference to described server.
32. system as claimed in claim 29 is characterized in that, described difference uses the expansion of http protocol to send to described server.
33. system as claimed in claim 29, it is characterized in that, it comprises that also one is used to receive the device of second difference, wherein, described processor is used described second difference to generate a triplicate of revising to the triplicate of described basic document, and use the change that received to the triplicate of described modification generating triplicate, and determine the 3rd difference between described triplicate and the described modified triplicate.
34. system as claimed in claim 33 is characterized in that, it comprises that also one is used for sending to server the output unit of described the 3rd difference.
35. a system that uses in file syn chronizing system is characterized in that it comprises:
One memory storage is used to store a basic document;
One input media is used for receiving difference from client apparatus; And
One processor is used for determining whether described difference can be applied to stored basic document, and if can, then use described difference to described basic document, otherwise, indicate described difference to be rejected to described client apparatus.
36. system as claimed in claim 35 is characterized in that, described difference is scale-of-two difference.
37. system as claimed in claim 35 is characterized in that, described difference receives with the form of the expansion of http protocol.
38. system as claimed in claim 35 is characterized in that, if described difference is refused by described processor, then retrieves second difference from described memory storage, and sends described second difference by an output unit to described client apparatus.
39. system as claimed in claim 38 is characterized in that, described second difference receives from second client apparatus.
40. system as claimed in claim 35 is characterized in that, identical if described basic document and described client apparatus are used to generate the client basis file of described difference, then described difference may be used on stored basic document.
CNB2004100858945A 2003-11-06 2004-11-05 Use scale-of-two relatively to optimize file copy Active CN100557574C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/702,863 US7203708B2 (en) 2003-11-06 2003-11-06 Optimizing file replication using binary comparisons
US10/702,863 2003-11-06

Publications (2)

Publication Number Publication Date
CN1624661A true CN1624661A (en) 2005-06-08
CN100557574C CN100557574C (en) 2009-11-04

Family

ID=34435555

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100858945A Active CN100557574C (en) 2003-11-06 2004-11-05 Use scale-of-two relatively to optimize file copy

Country Status (10)

Country Link
US (2) US7203708B2 (en)
EP (1) EP1533716A1 (en)
JP (1) JP4676745B2 (en)
KR (1) KR20050043689A (en)
CN (1) CN100557574C (en)
AU (1) AU2004218700A1 (en)
BR (1) BRPI0404816A (en)
CA (1) CA2484565A1 (en)
MX (1) MXPA04010819A (en)
RU (1) RU2357280C2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949761B (en) * 2005-10-13 2010-09-15 腾讯科技(深圳)有限公司 Data synchronous method and different coding method thereof
CN101854395A (en) * 2010-06-02 2010-10-06 四川华廷威思信息技术有限公司 Automatic attachment modifying method based on Web program
CN102063313A (en) * 2009-11-16 2011-05-18 英业达股份有限公司 Electronic device, portable electronic device, electronic system and application method thereof
CN102831022A (en) * 2012-07-27 2012-12-19 曙光信息产业(北京)有限公司 Method and device for modifying system configuration
CN101604245B (en) * 2008-06-10 2013-01-09 英华达股份有限公司 Method and system for updating files
CN104462591A (en) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 Method for avoiding repeated download and mobile terminal
CN105474209A (en) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 Managing changes to shared documents

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203708B2 (en) 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US7792930B1 (en) * 2004-11-10 2010-09-07 Juniper Networks, Inc. Network device configuration using separate logic and version-based configuration files
US20060106889A1 (en) * 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US8255362B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
US20060288054A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a file repository in which a version string is used to identify branches of a tree structure
US20060288055A1 (en) * 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a networked file repository in which a parent branch has a shadow associated therewith
US8255363B2 (en) * 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using dynamic tags to identify and process files
US20070005657A1 (en) * 2005-06-30 2007-01-04 Bohannon Philip L Methods and apparatus for processing XML updates as queries
JP4747733B2 (en) * 2005-08-22 2011-08-17 ブラザー工業株式会社 Node device, shared information update processing program, shared information update method, and information sharing system
US20070130232A1 (en) * 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US7661064B2 (en) * 2006-03-06 2010-02-09 Microsoft Corporation Displaying text intraline diffing output
US7461223B2 (en) * 2006-05-29 2008-12-02 Microsoft Corporation Retaining shadow copy data during replication
US20080155504A1 (en) * 2006-12-21 2008-06-26 International Business Machines Corporation Method and system for automated merging of multiple versions of a software component for an application
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US20090106322A1 (en) * 2007-10-18 2009-04-23 Chen Jen-Yeu T Two-set method for avoiding data loss when multiple users simultaneously edit the same data
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8756700B2 (en) 2008-01-16 2014-06-17 Verizon Patent And Licensing Inc. Custom data image building
US8291406B2 (en) * 2008-01-16 2012-10-16 Verizon Patent And Licensing Inc. Data imaging system and methods
US8121989B1 (en) 2008-03-07 2012-02-21 Google Inc. Determining differences between documents
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) * 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) * 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) * 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
JP5012716B2 (en) * 2008-07-29 2012-08-29 富士通株式会社 Remote file operation method
US8620861B1 (en) 2008-09-30 2013-12-31 Google Inc. Preserving file metadata during atomic save operations
US9934240B2 (en) 2008-09-30 2018-04-03 Google Llc On demand access to client cached files
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
EP3508978B1 (en) * 2010-03-12 2021-09-22 BlackBerry Limited Distributed catalog, data store, and indexing
CN101807207B (en) * 2010-03-22 2011-10-26 北京大用科技有限责任公司 Method for sharing document based on content difference comparison
US8352522B1 (en) * 2010-09-01 2013-01-08 Trend Micro Incorporated Detection of file modifications performed by malicious codes
JP5423900B2 (en) * 2010-09-29 2014-02-19 富士通株式会社 RELAY SYSTEM, RELAY SYSTEM CONTROL METHOD, AND RELAY DEVICE CONTROL PROGRAM
US8713098B1 (en) * 2010-10-01 2014-04-29 Google Inc. Method and system for migrating object update messages through synchronous data propagation
US9911142B2 (en) * 2010-12-10 2018-03-06 Viacom International Inc. Centralized deployment of advertising code
US8429124B2 (en) * 2010-12-21 2013-04-23 Neustar Information Services, Inc. On demand multi-location large database synchronization system
EP2501106B1 (en) * 2011-03-10 2020-04-29 Amadeus S.A.S. System and method for session synchronization with independent external systems
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
US9852432B2 (en) 2011-12-12 2017-12-26 International Business Machines Corporation Customizing a presentation based on preferences of an audience
US20130151624A1 (en) 2011-12-12 2013-06-13 International Business Machines Corporation Context-Sensitive Collaboration Channels
US9141264B2 (en) 2011-12-14 2015-09-22 International Business Machines Corporation Variable refresh rates for portions of shared screens
US9124657B2 (en) 2011-12-14 2015-09-01 International Business Machines Corporation Dynamic screen sharing for optimal performance
US8862558B2 (en) 2012-01-25 2014-10-14 Hitachi, Ltd. Single instantiation method using file clone and file storage system utilizing the same
US20130195169A1 (en) * 2012-02-01 2013-08-01 Vidyo, Inc. Techniques for multiview video coding
US9529818B2 (en) 2012-04-23 2016-12-27 Google Inc. Sharing and synchronizing electronically stored files
US9239846B2 (en) 2012-04-23 2016-01-19 Google Inc. Sharing and synchronizing electronically stored files
US9244934B2 (en) 2012-04-23 2016-01-26 Google Inc. Sharing and synchronizing electronically stored files
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
JP5795554B2 (en) * 2012-05-31 2015-10-14 株式会社エヌ・ティ・ティ・データ File synchronization system using differential encryption, method and program thereof
US9177009B2 (en) * 2012-06-28 2015-11-03 Microsoft Technology Licensing, Llc Generation based update system
US9965744B1 (en) * 2012-06-29 2018-05-08 Google Llc Automatic dynamic vetting of browser extensions and web applications
US9495377B2 (en) 2012-09-12 2016-11-15 International Business Machines Corporation Secure deletion operations in a wide area network
US8903768B2 (en) 2012-11-04 2014-12-02 International Business Machines Corporation Method and system for synchronization and management of system activities with locally installed applications
US8918483B2 (en) 2012-11-05 2014-12-23 International Business Machines Corporation Method and system for synchronization and management of system activities with locally installed applications
US9225769B2 (en) 2012-11-05 2015-12-29 International Business Machines Corporation System for synchronization and management of system activities with locally installed applications
US10331775B2 (en) 2014-10-15 2019-06-25 Microsoft Technology Licensing, Llc Collaborative document editing using state-based revision
US10042690B2 (en) * 2016-01-04 2018-08-07 Bank Of America Corporation System for determination and notification of issues in data file transmissions
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN112486561B (en) * 2020-11-25 2024-03-22 北京电力交易中心有限公司 Version backtracking method and device based on block chain and related equipment

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641274A (en) * 1982-12-03 1987-02-03 International Business Machines Corporation Method for communicating changes made to text form a text processor to a remote host
EP0117281B1 (en) * 1982-12-03 1989-07-26 International Business Machines Corporation Updating data processing files
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US6374250B2 (en) * 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
US6088694A (en) 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6499031B1 (en) * 1999-07-26 2002-12-24 Microsoft Corporation Systems and methods for using locks with computer resources
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6578069B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method, data structure, and computer program product for identifying a network resource
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
JP2001249839A (en) * 2000-03-07 2001-09-14 Toshiba Corp Data processor
US6671703B2 (en) * 2000-06-22 2003-12-30 Synchrologic, Inc. System and method for file transmission using file differentiation
US6434683B1 (en) * 2000-11-07 2002-08-13 Storage Technology Corporation Method and system for transferring delta difference data to a storage device
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US6985915B2 (en) * 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US7203708B2 (en) 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949761B (en) * 2005-10-13 2010-09-15 腾讯科技(深圳)有限公司 Data synchronous method and different coding method thereof
CN101604245B (en) * 2008-06-10 2013-01-09 英华达股份有限公司 Method and system for updating files
CN102063313A (en) * 2009-11-16 2011-05-18 英业达股份有限公司 Electronic device, portable electronic device, electronic system and application method thereof
CN102063313B (en) * 2009-11-16 2014-04-23 英业达股份有限公司 Electronic device, portable electronic device, electronic system and application method thereof
CN101854395A (en) * 2010-06-02 2010-10-06 四川华廷威思信息技术有限公司 Automatic attachment modifying method based on Web program
CN102831022A (en) * 2012-07-27 2012-12-19 曙光信息产业(北京)有限公司 Method and device for modifying system configuration
CN102831022B (en) * 2012-07-27 2015-08-26 曙光信息产业(北京)有限公司 The method and apparatus of amendment system configuration
CN105474209A (en) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 Managing changes to shared documents
CN104462591A (en) * 2014-12-31 2015-03-25 上海斐讯数据通信技术有限公司 Method for avoiding repeated download and mobile terminal

Also Published As

Publication number Publication date
BRPI0404816A (en) 2005-06-21
AU2004218700A1 (en) 2005-05-26
JP2005141756A (en) 2005-06-02
US8200623B2 (en) 2012-06-12
RU2004132538A (en) 2006-04-10
US7203708B2 (en) 2007-04-10
JP4676745B2 (en) 2011-04-27
EP1533716A1 (en) 2005-05-25
RU2357280C2 (en) 2009-05-27
MXPA04010819A (en) 2005-07-05
KR20050043689A (en) 2005-05-11
US20050102288A1 (en) 2005-05-12
CA2484565A1 (en) 2005-05-06
US20070174351A1 (en) 2007-07-26
CN100557574C (en) 2009-11-04

Similar Documents

Publication Publication Date Title
CN1624661A (en) Optimizing file replication using binary comparisons
US10992767B2 (en) Systems and methods for caching of managed content in a distributed environment using a multi-tiered architecture including off-line access to cached content
JP4698756B2 (en) Offline execution of web-based applications
JP4698182B2 (en) Electronic device, network device, management method, software update method, management program, software update program, and recording medium
US7716414B2 (en) Method for updating a mobile device using an update package obtained from a remote server
EP2021937B1 (en) Techniques to perform gradual upgrades
US9298747B2 (en) Deployable, consistent, and extensible computing environment platform
US20150237113A1 (en) Method and system for file transmission
CN1659537A (en) System and method for automatically updating a wireless device
JP2003288191A (en) System and method for dynamically updating printer driver
CN102098330A (en) Method, device and system for asynchronous transmission based on json data format
US10516791B2 (en) Information processing system, information processing apparatus, and information processing method for executing an iteration of one or more processes
US20150067037A1 (en) Communication apparatus and communication method
JP2005346723A (en) System and method for managing a plurality of resources over a plurality of printers
WO2013175560A1 (en) Information communicating system and information converting method
US20020087556A1 (en) Method and system for synchonizing data
US7456991B2 (en) Printer based file revision databasing
CN112596956A (en) File system management method, device and related components
EP1933527A2 (en) Information processing method and system
US20120110029A1 (en) Data model for service architecture
CN111782157B (en) Express delivery face list printing management method, device and system
US20190179800A1 (en) Information processing system, control method therefor, and storage medium
JP2008257355A (en) Electronic device, method for creating web page, and program for creating web page
JP2004078730A (en) Development environment establishment system
CN114697306A (en) HTTP client and data communication method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.