Synchronization peer participant model
First Claim
1. A method for synchronizing data comprising the steps of:
- providing a partial participant, the partial participant having a data store and a knowledge store, the data store storing a set of data retrieved during a synchronization process with a first full participant, the knowledge store storing a set of knowledge about the data in the data store, wherein the set of knowledge represents changes to the data that the first full participant is aware of, wherein the partial participant does not understand the set of knowledge, and wherein the partial participant is responsible for tracking what changes the partial participant makes to the set of data in the data store, wherein the knowledge is stored as a vector pair that represents a participant identifier and a sequence identifier of a last change the partial participant has seen for a device associated with the participant identifier;
receiving a request from a user of the partial participant to change a particular record in the set of data in the data store; and
updating the particular record in the data store upon receiving the request from the user, wherein the updating includes storing information identifying a source of the change as the partial participant.
2 Assignments
0 Petitions
Accused Products
Abstract
Various technologies and techniques are disclosed that improve synchronization of data between varying types of devices and/or services. A full participant receives a request from another participant to perform a synchronization operation. The synchronization engine determines whether the device or service is a full, partial, or simple participant. The device or service is a simple participant if it has a data store for synchronized data and no knowledge store. The device or service is a partial participant if it has a data store for synchronized data and a knowledge store, but does not understand the knowledge. The device or service is a full participant type if it has a data store for synchronized data and a knowledge store and understands the knowledge. The synchronization engine performs the synchronization operation with the device or service using a set of logic that is appropriate for the type of device or service.
-
Citations
19 Claims
-
1. A method for synchronizing data comprising the steps of:
-
providing a partial participant, the partial participant having a data store and a knowledge store, the data store storing a set of data retrieved during a synchronization process with a first full participant, the knowledge store storing a set of knowledge about the data in the data store, wherein the set of knowledge represents changes to the data that the first full participant is aware of, wherein the partial participant does not understand the set of knowledge, and wherein the partial participant is responsible for tracking what changes the partial participant makes to the set of data in the data store, wherein the knowledge is stored as a vector pair that represents a participant identifier and a sequence identifier of a last change the partial participant has seen for a device associated with the participant identifier; receiving a request from a user of the partial participant to change a particular record in the set of data in the data store; and updating the particular record in the data store upon receiving the request from the user, wherein the updating includes storing information identifying a source of the change as the partial participant. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium having computer-executable instructions for causing a computer to perform steps comprising:
-
receive a request from a participant to perform a synchronization operation using a synchronization engine; determine a type for the participant, the type being selected from the group consisting of a full participant type, a partial participant type, and a simple participant type; wherein the participant is determined to be the simple participant type if it has a simple participant data store and no knowledge; wherein the participant is determined to be the partial participant type if it has a partial participant data store and stored-but-not-understood knowledge; wherein the participant is determined to be the full participant type if it has a full participant data store and stored-and-understood knowledge; and wherein the synchronization engine performs the synchronization operation with the participant using a set of logic that is appropriate for the type of participant, wherein the knowledge is stored as a vector pair that represents a participant identifier and a sequence identifier of a last change partial participant has seen for a device associated with the participant identifier. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method for synchronizing data comprising the steps of:
-
providing a simple participant, the simple participant having a data store and no knowledge store, the data store being operable to store a set of data provided during a synchronization process with a full participant, and wherein the simple participant is not responsible for tracking what changes the simple participant makes to the set of data in the data store; receiving a request from a user of the simple participant to change a particular record in the set of data in the data store; updating the particular record in the data store upon receiving the request from the user; during synchronization with a full participant, the full participant retrieves changes to the particular record in the data store; and during synchronization with the full participant, the full participant resolves any conflicts and then updates the data store of the simple participant, wherein the knowledge is stored by the full participant as a vector pair that represents a participant identifier and a sequence identifier of a last change the partial participant has seen for a device associated with the participant identifier. - View Dependent Claims (19)
-
Specification