Object synchronization between objects stores on different computers
First Claim
1. A computer system comprising:
- a first object store containing a plurality of objects;
an application program that maintains the first object store;
application program interfaces associated with the application program;
a synchronization manager that communicates with the application program through the application program interfaces to synchronize objects in the first object store relative to corresponding objects in a second object store that is not associated with the application program, wherein the application program is not required to perform synchronization;
the application program interfaces comprising a first interface and a second interface, wherein;
the first interface receives a first identifying data segment from the synchronization manager and returns a handle corresponding to the first identifying data segment, the first identifying data segment corresponding to an object in the first object store; and
the second interface receives the handle corresponding to the first identifying data segment, compares the first identifying data segment with a second identifying data segment corresponding to the object, and in response returns an indication of whether the object has been changed in the first object store.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention includes a method of synchronizing objects between first and second object stores. A synchronization manager in accordance with the invention maintains a reference store containing identifying data segments corresponding respectively to a plurality of objects that have previously been synchronized between the first and second object stores. An application program that maintains the first object store has associated interfaces that allow the synchronization manager to compare and manipulate objects. One such interface allows the synchronization manager to submit an identifying data segment associated with a particular object. In response, this interface returns a handle that corresponds to the submitted identifying data segment. Another interface accepts a handle that refers to an identifying data segment, and determines if the object corresponding to the identifying data segment has been changed in the first object store since the last synchronization. If it has, the synchronization manager takes steps to update the second object store. If, on the other hand, the object has changed in the second object store, application program interfaces allow the synchronization manager to update the object in the first object store. Objects are transferred through the synchronization manager in an arbitrary, application-specific format that is not determined or understood by the synchronization manager itself.
118 Citations
18 Claims
-
1. A computer system comprising:
-
a first object store containing a plurality of objects;
an application program that maintains the first object store;
application program interfaces associated with the application program;
a synchronization manager that communicates with the application program through the application program interfaces to synchronize objects in the first object store relative to corresponding objects in a second object store that is not associated with the application program, wherein the application program is not required to perform synchronization;
the application program interfaces comprising a first interface and a second interface, wherein;
the first interface receives a first identifying data segment from the synchronization manager and returns a handle corresponding to the first identifying data segment, the first identifying data segment corresponding to an object in the first object store; and
the second interface receives the handle corresponding to the first identifying data segment, compares the first identifying data segment with a second identifying data segment corresponding to the object, and in response returns an indication of whether the object has been changed in the first object store. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
wherein the synchronization manager is functional to pass the object to the second object store in the application-specific format for updating in the second object store.
-
-
5. A computer system as recited in claim 1,
wherein the synchronization manager is functional to receive an object from the second object store in an application-specific format that is not determined by the synchronization manager; - and
the application programming interfaces comprising an interface that receives the object from the synchronization manager in the application-specific format.
- and
-
6. A computer system as recited in claim 1, wherein the second interface also receives a second handle corresponding to the second identifying data segment.
-
7. A computer system as recited in claim 1, further comprising:
-
a third interface that enumerates a list of handles corresponding respectively to objects in the first object store;
wherein the second interface also receives a second handle from the list of handles; and
wherein the second interface compares identifying data segments corresponding to the received handles to determine whether the object has been changed in the first object store.
-
-
8. A computer system as recited in claim 1, further comprising a third interface that receives two handles and that returns an indication of whether the two handles correspond to the same object.
-
9. A computer system as recited in claim 1, further comprising:
-
a third interface that receives an object having individual properties and that stores at least some of the individual properties in the first object store; and
a fourth interface that returns data representing properties of the object that are not supported by the first object store.
-
-
10. A computer system as recited in claim 1, further comprising:
-
a third interface that receives two handles and that returns an indication of whether the two handles correspond to the same object;
a fourth interface that receives an object having individual properties and that stores at least some of the individual properties in the first object store; and
a fifth interface that returns data representing properties of the object that are not supported by the first object store.
-
-
11. A method comprising:
-
submitting a first identifying data segment corresponding to an object in a first object store to a first interface associated with an application program that maintains the first object store;
receiving a handle corresponding to the first identifying data segment from the first interface;
providing the handle corresponding to the first identifying data segment to a second interface associated with the application program, the second interface comparing the first identifying data segment with a second identifying data segment corresponding to the object to determine whether the object has been changed in the first object store; and
synchronizing a corresponding object in a second object store with the object in the first object store if the object has been changed in the first object store, wherein the second object store is not associated with the application program. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
comparing corresponding objects from the first and second object stores based on identifying data segments. -
15. A method as recited in claim 11, further comprising providing a second handle to the second interface to compare identifying data segments corresponding to the received handles to determine whether the object has been changed in the first object store.
-
16. A method as recited in claim 11, further comprising providing two handles to a third interface associated with the application program, the third interface returning an indication of whether the two handles correspond to the same object.
-
17. A method as recited in claim 11, further comprising receiving the first identifying data segment from an interface associated with the application program, wherein the first identifying data segment contains an object identifier corresponding to the object in the first object store.
-
18. A method as recited in claim 11, further comprising receiving the first identifying data segment from an interface associated with the application program, wherein the first identifying data segment contains data representing properties that are supported by the second object store but that are not supported by the first object store.
-
Specification