Conflict management during data object synchronization between client and server
First Claim
1. A computer implemented method for synchronizing data objects stored on a server and a client, comprising:
- at the server, storing server metadata entries corresponding to a plurality of data objects, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path;
at the server;
during a first phase of a synchronization process, receiving one or more client metadata entries from the client, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path;
during the first phase of the synchronization process, rejecting any received client metadata entry that contains one or more updated metadata parameters that conflict with metadata parameters of a corresponding server metadata entry, and accepting any received client metadata entry that does not conflict with a corresponding server metadata entry, wherein a server metadata entry corresponds to a received client metadata entry when the received client metadata entry contains a same identifier as the server metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match;
during a second phase of the synchronization process, sending to the client one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with the rejected client metadata entry; and
during a subsequent phase of the synchronization process, performing a content update operation comprising at least one of a content upload operation and a content download operation;
the content upload operation comprising uploading to the client one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates uploaded to the client are associated with the one or more server metadata entries sent to the client during the second phase of the synchronization process;
the content download operation comprising downloading from the client one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates downloaded from the client are associated with the one or more client metadata entries received from the client during the first phase of the synchronization process.
2 Assignments
0 Petitions
Accused Products
Abstract
A client stores client metadata entries corresponding to a plurality of data objects. During a first phase of a synchronization process, the client sends one or more client metadata entries to a server. Each client metadata entry sent corresponds to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process. During a second phase of the synchronization process, the client receives from the server one or more server metadata entries, each having at least one parameter that has changed since a prior execution of the synchronization process. The client identifies any received server metadata entry that conflicts with a corresponding client metadata entry, requests a user to select from among a predefined set of conflict resolutions to resolve the conflict, and the performs an action in accordance with the conflict resolution selected by the user.
-
Citations
16 Claims
-
1. A computer implemented method for synchronizing data objects stored on a server and a client, comprising:
-
at the server, storing server metadata entries corresponding to a plurality of data objects, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path; at the server; during a first phase of a synchronization process, receiving one or more client metadata entries from the client, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; during the first phase of the synchronization process, rejecting any received client metadata entry that contains one or more updated metadata parameters that conflict with metadata parameters of a corresponding server metadata entry, and accepting any received client metadata entry that does not conflict with a corresponding server metadata entry, wherein a server metadata entry corresponds to a received client metadata entry when the received client metadata entry contains a same identifier as the server metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; during a second phase of the synchronization process, sending to the client one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with the rejected client metadata entry; andduring a subsequent phase of the synchronization process, performing a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising uploading to the client one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates uploaded to the client are associated with the one or more server metadata entries sent to the client during the second phase of the synchronization process;the content download operation comprising downloading from the client one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates downloaded from the client are associated with the one or more client metadata entries received from the client during the first phase of the synchronization process. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer implemented method for synchronizing data objects stored on a server and a client, comprising:
-
at the client, storing client metadata entries corresponding to a plurality of data objects, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; at the client; during a first phase of a synchronization process, sending one or more client metadata entries to the server, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process; during a second phase of the synchronization process, receiving from the server one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed in the server metadata entry since a prior execution of the synchronization process, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with rejected client metadata entry;during the second phase of the synchronization process, identifying any received server metadata entry that contains one or more updated metadata parameters that conflict with metadata parameters of a corresponding client metadata entry, requesting a user to select from among a predefined set of conflict resolutions to resolve the conflict, performing an action in accordance with the conflict resolution selected by the user, and accepting any received server metadata entry that does not conflict with a corresponding server metadata entry, wherein a client metadata entry corresponds to a received server metadata entry when the received server metadata entry contains a same identifier as the client metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; and during a subsequent phase of the synchronization process, performing a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising uploading to the server one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates uploaded to the server are associated with the one or more client metadata entries sent to the server during the first phase of the synchronization process;the content download operation comprising downloading from the server one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates downloaded from the server are associated with the one or more server metadata entries received from the server during the second phase of the synchronization process. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A computer program product for synchronizing data objects stored on a server and a client, the computer program product comprising a computer readable storage and a computer program stored therein, the computer program comprising instructions for:
-
storing, at the server, server metadata entries corresponding to a plurality of data objects, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path; during a first phase of a synchronization process, receiving, at the server, one or more client metadata entries from the client, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; during the first phase of the synchronization process, at the server, rejecting any received client metadata entry that contains one or more updated metadata parameters that conflicts with metadata parameters of a corresponding server metadata entry, and accepting any received client metadata entry that does not conflict with a corresponding server metadata entry, wherein a server metadata entry corresponds to a received client metadata entry when the received client metadata entry contains a same identifier as the server metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; during a second phase of the synchronization process, at the server, sending to the client one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with rejected client metadata entry; andduring a subsequent phase of the synchronization process, at the server, performing a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising, at the server, uploading to the client one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates uploaded to the client are associated with the one or more server metadata entries sent to the client during the second phase of the synchronization process; andthe content download operation comprising, at the server, downloading from the client one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates downloaded from the client are associated with the one or more client metadata entries received from the client during the first phase of the synchronization process.
-
-
14. A computer program product for synchronizing data objects stored on a server and a client, the computer program product comprising a computer readable storage and a computer program stored therein, the computer program comprising instructions for:
-
storing, at the client, client metadata entries corresponding to a plurality of data objects, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; during a first phase of a synchronization process, sending, from the client, one or more client metadata entries from the client to the server, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process; during a second phase of the synchronization process, receiving at the client from the server one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed in the server metadata entry since a prior execution of the synchronization process, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with rejected client metadata entry;during the second phase of the synchronization process, at the client, identifying any received server metadata entry that contains one or more updated metadata parameters that conflicts with metadata parameters of a corresponding client metadata entry, requesting a user to select from among a predefined set of conflict resolutions to resolve the conflict, performing an action in accordance with the conflict resolution selected by the user, and accepting any received server metadata entry that does not conflict with a corresponding server metadata entry, wherein a client metadata entry corresponds to a received server metadata entry when the received server metadata entry contains a same identifier as the client metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; and during a subsequent phase of the synchronization process, at the client, performing a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising, at the client, uploading to the server one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates uploaded to the server are associated with the one or more client metadata entries sent to the server during the first phase of the synchronization process;the content download operation comprising, at the client, downloading from the server one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates downloaded from the server are associated with the one or more server metadata entries received from the server during the second phase of the synchronization process.
-
-
15. A data objects synchronization system, comprising:
-
one or more processors; memory; and one or more programs stored in the memory, the one or more programs comprising; instructions to store, at a server, server metadata entries corresponding to a plurality of data objects, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path; instructions, to be executed during a first phase of a synchronization process, to receive at the server one or more client metadata entries from a client, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; instructions, to be executed during the first phase of the synchronization process, to reject at the server any received client metadata entry that contains one or more updated metadata parameters that conflicts with metadata parameters of a corresponding server metadata entry, and accepting any received client metadata entry that does not conflict a corresponding server metadata entry, wherein a server metadata entry corresponds to a received client metadata entry when the received client metadata entry contains a same identifier as the server metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; instructions, to be executed during a second phase of the synchronization process, to send from the server to the client one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with rejected client metadata entry; andinstructions, to be executed during a subsequent phase of the synchronization process, to perform a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising uploading from the server to the client one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates uploaded to the client are associated with the one or more server metadata entries sent to the client during the second phase of the synchronization process;the content download operation comprising downloading from the client to the server one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates downloaded from the client are associated with the one or more client metadata entries received from the client during the first phase of the synchronization process.
-
-
16. A data objects synchronization system, comprising:
-
one or more processors; memory; and one or more programs stored in the memory, the one or more programs comprising; instructions to store, at a client, client metadata entries corresponding to a plurality of data objects, wherein each client metadata entry associates both an identifier and a client file name, distinct from the identifier, with a respective data object, the client file name including a directory path; instructions, to be executed during a first phase of a synchronization process, to send, from the client, one or more client metadata entries from the client to a server, each of the client metadata entries corresponding to a data object for which at least one metadata parameter has changed since a prior execution of the synchronization process; instructions, to be executed during a second phase of the synchronization process, to receive at the client from the server one or more server metadata entries, each of the server metadata entries corresponding to a data object for which at least one metadata parameter has changed in the server metadata entry since a prior execution of the synchronization process, wherein each server metadata entry associates both an identifier and a server file name, distinct from the identifier, with a respective data object, the server file name including a directory path;
wherein, when a client metadata entry has been rejected at the server during the first phase, the one or more server metadata entries sent to the client include at least one server metadata entry that conflicts with rejected client metadata entry;instructions, to be executed during the second phase of the synchronization process, to identify at the client any received server metadata entry that contains one or more updated metadata parameters that conflicts with metadata parameters of a corresponding client metadata entry, requesting a user to select from among a predefined set of conflict resolutions to resolve the conflict, performing an action in accordance with the conflict resolution selected by the user, and accepting any received server metadata entry that does not conflict a corresponding server metadata entry, wherein a client metadata entry corresponds to a received server metadata entry when the received server metadata entry contains a same identifier as the client metadata entry without regard to whether the server file name and client file name of the server metadata entry and client metadata entry match; and instructions, to be executed during a subsequent phase of the synchronization process, to perform a content update operation comprising at least one of a content upload operation and a content download operation; the content upload operation comprising uploading from the client to the server one or more client content updates, each of the client content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more client content updates uploaded to the client are associated with the one or more client metadata entries sent to the server during the first phase of the synchronization process;the content download operation comprising downloading from the server to the client one or more server content updates, each of the server content updates corresponding to a data object for which at least one content parameter has changed since a prior execution of the synchronization process;
wherein the one or more server content updates downloaded from the server are associated with the one or more server metadata entries received from the server during the second phase of the synchronization process.
-
Specification