Data processing environment with methods providing contemporaneous synchronization of two or more clients
First Claim
1. In a data processing environment, a method for synchronizing multiple data sets, the method comprising:
- establishing a data repository for facilitating synchronization of user information maintained among multiple data sets, said data repository storing user information from the data sets;
storing at least one mapping which specifies how user information may be transformed for storage at a given data set;
receiving a request for synchronizing at least one data set;
based on user information stored at said at least one data set and based on said at least one mapping, propagating to the data repository from each of at said at least one data set any changes made to the user information, to the extent that such changes can be reconciled with user information already present at said data repository; and
based on user information stored at said data repository and based on said at least one mapping, propagating to each of said at least one data set any changes to the user information which have been propagated to the data repository, to the extent that such changes are not present at said each data set.
1 Assignment
0 Petitions
Accused Products
Abstract
A synchronization system providing multi-client synchronization is described. By storing the data that is actually being synchronized (i.e., storing the actual physical body of a memo, for instance) inside an extra database, “Grand Unification Database” (GUD), (or by specially-designated client data set) under control of a central or core synchronization engine, rather than transferring such data on a point-to-point basis, the system of the present invention provides a repository of information that is available at all times and does not require that any other synchronization client (e.g., PIM client or hand-held device) be connected. The GUD provides a super-set of the other client data sets. Therefore, if the user now includes an additional client, such as a server computer storing user information, the synchronization system has all the information necessary for synchronizing the new client, regardless of whether any of the other clients are currently available. The system can, therefore, correctly propagate information to any appropriate client without having to “go back” to (i.e., connect to) the original client from which that data originated.
-
Citations
40 Claims
-
1. In a data processing environment, a method for synchronizing multiple data sets, the method comprising:
-
establishing a data repository for facilitating synchronization of user information maintained among multiple data sets, said data repository storing user information from the data sets;
storing at least one mapping which specifies how user information may be transformed for storage at a given data set;
receiving a request for synchronizing at least one data set;
based on user information stored at said at least one data set and based on said at least one mapping, propagating to the data repository from each of at said at least one data set any changes made to the user information, to the extent that such changes can be reconciled with user information already present at said data repository; and
based on user information stored at said data repository and based on said at least one mapping, propagating to each of said at least one data set any changes to the user information which have been propagated to the data repository, to the extent that such changes are not present at said each data set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for providing synchronization among an arbitrary number of clients, each client storing information in data records, the method comprising:
-
creating a reference database for storing a set of data records serving as a reference to corresponding data records stored at the clients;
creating a list of actions to perform, said list for storing instructions specifying that particular data records should be added, updated, or deleted at a particular client and storing instructions specifying that particular data records should be added, updated, or deleted at the reference database;
for each client, determining all data records which have been updated, added, or deleted at the client since the client was last synchronized;
based on the data records determined to have been updated, added, or deleted at the client, posting to said list instructions to add, update, or delete corresponding data records stored at the reference database;
for each client, determining all data records which have been updated, added, or deleted at the reference database since the client was last synchronized;
based on the data records determined to have been updated, added, or deleted at the reference database, posting to said list instructions to add, update, or delete corresponding data records stored at the client, resolving any conflicts present in said list; and
synchronizing the clients by performing instructions remaining in said list. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40)
-
-
36. A synchronization system providing synchronization of information among an arbitrary number of client devices, each client device storing information in data records, the system comprising:
-
a reference database for storing a set of data records serving as a reference to corresponding data records stored at the client devices; and
a synchronization engine for;
constructing a list of actions to perform, said list for storing instructions specifying that particular data records should be added, updated, or deleted at a particular client device and storing instructions specifying that particular data records should be added, updated, or deleted at the reference database;
determining for each client device all data records which have been updated, added, or deleted at the client since the client was last synchronized, and based on that determination, posting to said list instructions to add, update, or delete corresponding data records stored at a reference database;
determining for each client device all data records which have been updated, added, or deleted at the reference database since the client was last synchronized, and based on that determination, posting to said list instructions to add, update, or delete corresponding data records stored at the client;
resolving any conflicts present in said list; and
synchronizing the clients by performing instructions remaining in said list.
-
Specification