Apparatus and method for efficiently updating files in computer networks
First Claim
1. A method of transferring a file, executed by a client computer under control of a first program portion and also executed by a server computer under control of a second program portion, said server computer storing a baseline file having baseline data, said client computer storing a local file that is a modified baseline file having modified data, said client computer being coupled to said server computer, said method comprising the steps of:
- (a) generating and associating first tier baseline reference keys for first tier subsets of said baseline data stored in said baseline file using a predetermined key defining method to generate said first tier baseline reference keys from at least a portion of said associated first tier subset of said baseline data;
(b) generating and associating first tier client reference keys for first tier subsets of said modified data stored in said local file using said key defining method to generate said first tier of client reference keys from at least a portion of said associated first tier subset of said modified data;
(c) transferring one of said first tier subsets of baseline data to a destination file stored on said server computer when said associated first tier baseline reference key and said associated first tier client reference key match;
(d) generating and associating at least one second tier baseline reference key for at least one second tier baseline subset of one of said first tier subsets of said baseline data, and also generating and associating at least one second tier client reference key for at least one second tier client subset of one of said first tier subsets of said modified data, when said associated first tier baseline reference key and said associated first tier client reference key do not match; and
(e) transferring said at least one second tier baseline subset or said at least one second tier client subset to said destination file, based on said associated second tier baseline reference key and said associated second tier client reference key.
11 Assignments
0 Petitions
Accused Products
Abstract
A method of transferring a file is executed by a client computer under control of a first program portion and is alsoexecuted by a server computer under control of a second program portion. The server computer stores a baseline file having baseline data. The client computer stores a local file that is a modified baseline file having modified data. The client computer is coupled to the server computer. First tier baseline reference keys are generated for and associated with first tier subsets of the baseline data stored in the baseline file. First tier client reference keys are generated for and associated with first tier subsets of the modified data stored in the local file. When the associated reference keys match, one of the first tier subsets of baseline data is transferred to a destination file stored on the server computer. When the associated first tier baseline and client reference keys do not match, a second tier baseline reference key is generated for and associated with a second tier baseline subset of one of the first tier subsets of the baseline data. At least one second tier client reference key is generated for and associated with a second tier client subset of one of the first tier subsets of the modified data. The second tier baseline subset or second tier client subset is transferred to the destination file based on the associated second tier baseline and client reference keys.
-
Citations
20 Claims
-
1. A method of transferring a file, executed by a client computer under control of a first program portion and also executed by a server computer under control of a second program portion, said server computer storing a baseline file having baseline data, said client computer storing a local file that is a modified baseline file having modified data, said client computer being coupled to said server computer, said method comprising the steps of:
-
(a) generating and associating first tier baseline reference keys for first tier subsets of said baseline data stored in said baseline file using a predetermined key defining method to generate said first tier baseline reference keys from at least a portion of said associated first tier subset of said baseline data; (b) generating and associating first tier client reference keys for first tier subsets of said modified data stored in said local file using said key defining method to generate said first tier of client reference keys from at least a portion of said associated first tier subset of said modified data; (c) transferring one of said first tier subsets of baseline data to a destination file stored on said server computer when said associated first tier baseline reference key and said associated first tier client reference key match; (d) generating and associating at least one second tier baseline reference key for at least one second tier baseline subset of one of said first tier subsets of said baseline data, and also generating and associating at least one second tier client reference key for at least one second tier client subset of one of said first tier subsets of said modified data, when said associated first tier baseline reference key and said associated first tier client reference key do not match; and (e) transferring said at least one second tier baseline subset or said at least one second tier client subset to said destination file, based on said associated second tier baseline reference key and said associated second tier client reference key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method executed by a client computer under control of a program and also executed by a server computer under control of another program, said server computer storing a baseline file, said client computer storing a local file that is a modified baseline file, said client computer being coupled to said server computer, said method comprising the steps of:
-
in said server computer, generating and associating a baseline set of baseline reference keys for a plurality of metasegments of said baseline file using a key defining method that generates said baseline reference keys from at least a portion of said baseline data; in said client computer, generating and associating a client set of client reference keys for a plurality of metasegments of said local file using said key defining method; transferring said client set of client reference keys to said server computer; in said server computer, comparing at least one transferred client reference key with at least one baseline reference key; when said transferred reference key matches said baseline reference key, said server computer copies said metasegment associated with said matched baseline reference key to a destination file on said server computer; when said transferred reference key does not match said baseline reference key, said server computer generates a baseline segment set of baseline segment reference keys, a baseline segment reference key being generated for and associated with each segment of said associated metasegment of said non-matching baseline reference key; said server computer requests said client computer to generate a client segment set of client segment reference keys for said metasegment associated with said non-matching transferred reference key; in said client computer, said client computer generates said client segment set of client segment reference keys, one'"'"'s of said client segment reference key being generated for and associated with one'"'"'s of said segments; transferring said client segment set of client segment reference keys to said server computer; in said server computer, comparing at least one transferred client segment reference key with at least one baseline segment reference key; when said at least one transferred client segment reference key matches said at least one baseline segment reference key, transferring said segment associated with said matched at least one baseline segment reference key from said baseline file to said destination file; when said at least one transferred client segment reference key does not match said at least one baseline segment reference key, transferring said segment associated with said non-matching at least one client segment reference key from said local file on said client to said destination file on said server computer; determining an offset by comparing said transferred segment associated with said non-matching at least one client reference key to said segment associated with said non-matching baseline segment reference key; re-generating said baseline segment reference keys for said uncompared baseline segment reference keys by applying said offset to redefine said segments associated with said uncompared baseline segment reference keys; comparing at least one of said regenerated baseline segment reference keys to at least one uncompared client segment reference key; when said at least one compared regenerated baseline segment reference key matches said uncompared base segment reference key, re-generating said baseline reference keys for uncompared baseline metasegments by applying said offset to redefine said metasegments associated with said uncompared baseline segment reference keys; and repeating from said step of comparing at least one transferred client reference key with at least one baseline reference key, in said server computer.
-
-
13. A computer readable memory to direct a computer to function in a specified manner, comprising:
-
a first module to generate and associate first tier baseline reference keys for first tier subsets of a baseline data stored in a baseline file using a predetermined key defining method to generate said first tier baseline reference keys from at least a portion of said associated first tier subset of said baseline data; a second module to generate and associate first tier client reference keys for first tier subsets of a modified data stored in a local file using said key defining method to generate said first tier of client reference keys from at least a portion of said associated first tier subset of said modified data; a third module to transfer one of said first tier subsets of baseline data to a destination file stored on a server computer when said associated first tier baseline reference key and said associated first tier client reference key match; a fourth module to generate and associate at least one second tier baseline reference key for at least one second tier baseline subset of one of said first tier subsets of said baseline data, and also to generate and associate at least one second tier client reference key for at least one second tier client subset of one of said first tier subsets of said modified data, when said associated first tier baseline reference key and said associated first tier client reference key do not match; and a fifth module to transfer said at least one second tier baseline subset or said at least one second tier client subset to said destination file, based on said associated second tier baseline reference key and said associated second tier client reference key. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification