Methods and apparatuses for file synchronization and updating using a signature list
First Claim
1. A method for a first computer to generate an update for transmission to a second computer that permits the second computer to generate a copy of a current version of a file comprised of a first plurality of file segments from a copy of an earlier version of the file comprised of a second plurality of file segments, such that each file segment corresponds to a portion of its respective file, the method comprising the steps of:
- for each segment of the current version of the file, (a) searching an earlier version of a signature list corresponding to an earlier version of the file for an old segment signature which matches a new segment signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in the update for the second computer to copy an old segment of the second computer'"'"'s copy of the earlier version of the file into the second computer'"'"'s copy of the current version of the file, wherein the old segment corresponds to the segment for which a match was detected in step (a); and
(c) if step (a) results in no match, writing a command in the update for the second computer to insert a new segment of the current version of the file into the second computer'"'"'s copy of the current version of the file;
wherein the new segment of the current version of the file is written into the update and the unchanged segment is excluded from the update; and
wherein steps (a) through (c) are performed by the first computer, without interaction with the second computer, in response to the first computer detecting a change between the current version of the file and the earlier version of the file.
5 Assignments
0 Petitions
Accused Products
Abstract
A server computer generates an update file for transmission to a client computer that permits the client computer to generate a copy of a current version of a subscription file from a copy of an earlier version of the subscription file. For each segment of the current version of the subscription file, the server computer searches an earlier version of a signature list for an old segment signature which matches a new segment signature corresponding to the segment. When a match is detected, the server computer writes a command in the update file for the client computer to copy an old segment of the client computer'"'"'s copy of the earlier version of the subscription file into the client computer'"'"'s copy of the current version of the subscription file, where the old segment corresponds to the segment for which a match was detected. When no match is detected, the server computer writes a command into the update file for the client computer to insert a new segment of the current version of the subscription file into the client computer'"'"'s copy of the current version of the subscription file, where the new segment of the current version of the subscription file is written into the update file. The new segment of the current version of the subscription file may be compressed, encrypted, or both, by the server computer. When the update file is completed, the server computer transmits the update file to the client computer as an executable attachment via electronic mail. The update file is only generated when the server computer determines the subscription file has changed. The server computer periodically monitors the subscription file to determine if it has been altered before generating an update file.
83 Citations
46 Claims
-
1. A method for a first computer to generate an update for transmission to a second computer that permits the second computer to generate a copy of a current version of a file comprised of a first plurality of file segments from a copy of an earlier version of the file comprised of a second plurality of file segments, such that each file segment corresponds to a portion of its respective file, the method comprising the steps of:
for each segment of the current version of the file, (a) searching an earlier version of a signature list corresponding to an earlier version of the file for an old segment signature which matches a new segment signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in the update for the second computer to copy an old segment of the second computer'"'"'s copy of the earlier version of the file into the second computer'"'"'s copy of the current version of the file, wherein the old segment corresponds to the segment for which a match was detected in step (a); and
(c) if step (a) results in no match, writing a command in the update for the second computer to insert a new segment of the current version of the file into the second computer'"'"'s copy of the current version of the file;
wherein the new segment of the current version of the file is written into the update and the unchanged segment is excluded from the update; and
wherein steps (a) through (c) are performed by the first computer, without interaction with the second computer, in response to the first computer detecting a change between the current version of the file and the earlier version of the file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A computer readable storage medium, comprising computer readable program code embodied on said computer readable storage medium, said computer readable program code for programming a first computer to generate an update for transmission to a second computer that permits the second computer to generate a copy of a current version of a file comprised of a first plurality of file segments from a copy of an earlier version of the file comprised of a second plurality of file segments, such that each file segment corresponds to a portion of its respective file, the computer readable program code causing the first computer to perform the following steps:
for each segment of the current version of the file, (a) searching an earlier version of a signature list corresponding to an earlier version of the file for an old segment signature which matches a new segment signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in the update for the second computer to copy an old segment of the second computer'"'"'s copy of the earlier version of the file into the second computer'"'"'s copy of the current version of the file, wherein the old segment corresponds to the segment for which a match was detected in step (a); and
(c) if step (a) results in no match, writing a command in the update for the second computer to insert a new segment of the current version of the file into the second computer'"'"'s copy of the current version of the file;
wherein the new segment of the current version of the file is written into the update and the unchanged segment is excluded from the update; and
wherein steps (a) through (c) are performed by the first computer, without interaction with the second computer, in response to the first computer detecting a change between the current version of the file and the earlier version of the file. - View Dependent Claims (13, 14, 15, 16, 17, 19, 20, 21, 22)
-
18. The computer readable storage medium of 17, wherein the step of performing a check is performed at periodic intervals.
-
23. A method for a first computer to generate an update for transmission to a second computer that permits the second computer to generate a copy of a current version of a file comprised of a first plurality of file segments from a copy of an earlier version of the file comprised of a second plurality of file segments, such that each file segment corresponds to a portion of its respective file, the method comprising the steps of:
for each segment of the current version of the file, (a) searching an earlier version of a signature list corresponding to an earlier version of the file for an old segment signature which matches a new segment signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in the update for the second computer to copy an old segment of the second computer'"'"'s copy of the earlier version of the file into the second computer'"'"'s copy of the current version of the file, wherein the old segment corresponds to the segment for which a match was detected in step (a); and
(c) if step (a) results in no match, writing a command in the update for the second computer to insert a new segment of the current version of the file into the second computer'"'"'s copy of the current version of the file;
wherein steps (a) through (c) are performed by the first computer, without interaction with the second computer, in response to the first computer detecting a change between the current version of the file and the earlier version of the file. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
30. A computer readable storage medium, comprising computer readable program code embodied on said computer readable storage medium, said computer readable program code for programming a first computer to generate an update for transmission to a second computer that permits the second computer to generate a copy of a current version of a file comprised of a first plurality of file segments from a copy of an earlier version of the file comprised of a second plurality of file segments, such that each file segment corresponds to a portion of its respective file, the computer readable program code causing the first computer to perform the following steps:
for each segment of the current version of the file, (a) searching an earlier version of a signature list corresponding to an earlier version of the file for an old segment signature which matches a new segment signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in the update for the second computer to copy an old segment of the second computer'"'"'s copy of the earlier version of the file into the second computer'"'"'s copy of the current version of the file, wherein the old segment corresponds to the segment for which a match was detected in step (a); and
(c) if step (a) results in no match, writing a command in the update for the second computer to insert a new segment of the current version of the file into the second computer'"'"'s copy of the current version of the file;
wherein steps (a) through (c) are performed by the first computer, without interaction with the second computer, in response to the first computer detecting a change between the current version of the file and the earlier version of the file. - View Dependent Claims (31, 32, 33, 34, 35, 36)
-
37. A method for a first computer to provide updates for transmission to a second computer that permits the second computer to obtain most recent versions of files, the method comprising the steps of:
-
(a) determining whether the second computer has a latest version of a file, wherein said determining is performed by the first computer without interaction with the second computer;
(b) generating an update, if the second computer does not have a latest version of the file, wherein said generating is performed by the first computer without interaction with the second computer; and
(c) transmitting the update from the first computer to the second computer. - View Dependent Claims (38, 39, 40, 41)
-
-
42. A computer readable storage medium, comprising computer readable program code embodied on said computer readable storage medium, said computer readable program code for programming a first computer to provide updates for transmission to a second computer that permits the second computer to obtain most recent versions of files, the computer readable program code causing the first computer to perform the following steps:
-
(a) determining whether the second computer has a latest version of a file, wherein said determining is performed by the first computer without interaction with the second computer;
(b) generating an update, if the second computer does not have a latest version of the file, wherein said generating is performed by the first computer without interaction with the second computer; and
(c) transmitting the update from the first computer to the second computer. - View Dependent Claims (43, 44, 45, 46)
-
Specification