Methods and apparatuses for file synchronization and updating using a signature list
DC CAFCFirst 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
Litigations
4 Petitions
Accused Products
Abstract
A server generates an update file for transmission to a client that permits the client 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 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 writes a command in the update file for the client to copy an old segment of the client'"'"'s copy of the earlier version of the subscription file into the client'"'"'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 writes a command into the update file for the client to insert a new segment of the current version of the subscription file into the client'"'"'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 update file is only generated when the server determines the subscription file has changed. The server periodically monitors the subscription file to determine if it has been altered before generating an update file.
61 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)
(d) transmitting the update to the second computer as an executable attachment by electronic mail, wherein the executable attachment will cause the second computer to generate a copy of the current version of the file from the copy of the earlier version of the file, in response to the second computer executing the attachment.
-
-
6. The method of claim 5, further comprising:
prior to step (a), performing a check on the current version of the file to determine if the file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the file has been altered.
-
7. The method of claim 6, wherein the step of performing a check is performed at periodic intervals.
-
8. The method of claim 6, wherein the step of performing a check on the current version of the file comprises checking a current time stamp of the current version of the file to determine whether it differs from an earlier time stamp of the file.
-
9. The method of claim 1, wherein the update comprises a software update.
-
10. The method of claim 1, wherein the update comprises a document update.
-
11. The method of claim 1, wherein the update comprises a content update.
-
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)
(d) transmitting the update to the second computer as an executable attachment by electronic mail, wherein the executable attachment will cause the second computer to generate a copy of the current version of the file from the copy of the earlier version of the file, in response to the second computer executing the attachment.
-
-
17. The computer readable storage medium of claim 16, further comprising computer readable program code causing the first computer to perform the following step:
prior to step (a), performing a check on the current version of the file to determine if the file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the file has been altered.
-
19. The computer readable storage medium of claim 17, wherein the step of performing a check on the current version of the file comprises checking a current time stamp of the current version of the file to determine whether it differs from an earlier time stamp of the file.
-
20. The computer readable storage medium of claim 12, wherein the update comprises a software update.
-
21. The computer readable storage medium of claim 12, wherein the update comprises a document update.
-
22. The computer readable storage medium of claim 12, wherein the update comprises a content update.
-
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)
(d) transmitting the update to the second computer as an executable attachment by electronic mail, wherein the executable attachment will cause the second computer to generate a copy of the current version of the file from the copy of the earlier version of the file, in response to the second computer executing the attachment.
-
-
26. The method of claim 25, further comprising:
prior to step (a), performing a check on the current version of the file to determine if the file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the file has been altered.
-
27. The method of claim 23, wherein the update comprises a software update.
-
28. The method of claim 23, wherein the update comprises a document update.
-
29. The method of claim 23, wherein the update comprises a content update.
-
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)
(d) transmitting the update to the second computer as an executable attachment by electronic mail, wherein the executable attachment will cause the second computer to generate a copy of the current version of the file from the copy of the earlier version of the file, in response to the second computer executing the attachment.
-
-
33. The computer readable storage medium of claim 32, further comprising computer readable program code causing the first computer to perform the following step:
prior to step (a), performing a check on the current version of the file to determine if the file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the file has been altered.
-
34. The computer readable storage medium of claim 30, wherein the update comprises a software update.
-
35. The computer readable storage medium of claim 30, wherein the update comprises a document update.
-
36. The computer readable storage medium of claim 30, wherein the update comprises a content update.
-
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