Method, computer readable medium, and system for monitoring the state of a collection of resources
First Claim
1. A method of synchronizing two or more copies of data between two or more components, one copy of the data being stored in a first component and another copy of the data being stored in a second component, the method comprising the steps of:
- generating a synchronization request, the synchronization request including an identifier which identifies the state of a collection of resources in the first component;
communicating the synchronization request from the first component to the second component;
generating an identifier for the second component which identifies the state of a collection of resources in the second component; and
comparing the identifier for the first component with the identifier for the second component to determine if the resources in the second component are generally the same as the resources in the first component.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for synchronizing changes among multiple copies of data is disclosed. The system and method allows the data to be synchronized without any copying or transferring of those portions of the data that have not been changed. In particular, the system and method preferably uses an identifier to represent the current state of the data and the identifier is used to determine what, if any, changes have occurred to the data. Thus, instead of comparing the data itself to see if changes have been made, the identifier is used to simply and easily determine if changes were made to the data. Each identifier preferably includes a first portion that identifies a particular source for the data and a second portion that includes a change number that is changed each time the underlying resource is modified. The identifier is preferably opaque or transparent to the client such that the client does not have to understand anything about the format or use of the identifier. Advantageously, an opaque identifier allows the system and method to be compatible with a wide range of data and programs.
-
Citations
38 Claims
-
1. A method of synchronizing two or more copies of data between two or more components, one copy of the data being stored in a first component and another copy of the data being stored in a second component, the method comprising the steps of:
-
generating a synchronization request, the synchronization request including an identifier which identifies the state of a collection of resources in the first component;
communicating the synchronization request from the first component to the second component;
generating an identifier for the second component which identifies the state of a collection of resources in the second component; and
comparing the identifier for the first component with the identifier for the second component to determine if the resources in the second component are generally the same as the resources in the first component. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of synchronizing two or more copies of data, one copy of the data being stored on a first machine and another copy of the data being stored on a second machine;
- the method comprising;
generating a synchronization request at the first machine, the synchronization request including a first identifier that indicates the state of a collection of data at the first machine;
communicating the synchronization request to the second machine;
comparing the first identifier with a second identifier that indicates the state of a collection of data at the second machine to determine incremental changes between the data stored on the first machine and the data stored on the second machine; and
transmitting only the incremental changes in the data between the first machine and the second machine so that the copies of the data are synchronized. - View Dependent Claims (9, 10)
- the method comprising;
-
11. A method of synchronizing two or more copies of data, one copy of the data being stored on a first machine and another copy of the data being stored on a second machine, the method comprising:
-
transmitting a synchronization request from the first machine to the second machine, the synchronization request including a first manifest indicating the state of the data stored on the first machine;
receiving the synchronization request and the first manifest at the second machine;
comparing the first manifest with a second manifest indicating the state of the data stored on the second machine;
identifying incremental changes in the copies of the data on the first machine and the second machine from the comparison of the first manifest and the second manifest; and
communicating copies of the incremental changes between the first and second machines such that the copies of the data are synchronized. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method of synchronizing two or more copies of data, one copy of the data being stored on a first machine and another copy of the data being stored on a second machine;
- the method comprising the steps of;
communicating a synchronization request from the first machine to the second machine;
comparing a first identifier that represents data stored on the first machine with a second identifier that represents data stored on the second machine to determine if the data needs to be synchronized; and
communicating only the data the needs to be synchronized from the second machine to the first machine. - View Dependent Claims (19)
- the method comprising the steps of;
-
20. A method of synchronizing a second set of data with a first set of data that has had incremental changes made thereto, the incremental changes being made only to the first set of data and not the second set of data, the method comprising the steps of:
-
comparing a first manifest that indicates a current state of the first set of data with a second manifest that indicates a current state of the second set of data;
determining the incremental changes in the first set of data that need to be synchronized with the second set of data based on the comparison of the first manifest and the second manifest; and
communicating only those incremental changes in the first set of data with the second set of data so that the first set of data and the second set of data are synchronized. - View Dependent Claims (21)
-
-
22. A computer-readable medium having computer-executable instructions for performing steps comprising:
-
communicating a synchronization request from a first machine to a second machine;
receiving the synchronization request at the second machine;
calculating a manifest that indicates the current state of a collection of resources in the second machine;
comparing the manifest for the second machine with a manifest for the first machine, the manifest for the first machine indicating the current state of a collection of resources in the first machine;
identifying incremental differences between the collection of the resources in the first machine and the second machine based upon the differences between the manifests; and
communicating the incremental differences in the collection of resources between the second machine and the first machine so that the collection of resources in the first machine is synchronized with the collection of resources in the second machine. - View Dependent Claims (23, 24)
-
-
25. A computer-readable medium having computer-executable instructions for performing steps comprising:
-
communicating a synchronization request from a first machine to a second machine, the synchronization request including a manifest indicating the current state of a collection of resources stored at the first machine;
calculating a manifest indicating the current state of a collection of resources stored at the second machine;
comparing the manifest for the first machine with the manifest for the second machine;
determining the resources that need to be copied from the first machine and the second machine based on the comparison of the manifests; and
communicating only those resources which need to be synchronized between the first machine and the second machine. - View Dependent Claims (26, 27)
-
-
28. A method of synchronizing resources between a client machine and a server machine, wherein only resources that contain incremental changes are synchronized and resources than are unchanged are not synchronized, the method comprising the steps of:
-
connecting the client machine to the server to allow communication between the client machine and the server machine;
copying appropriate resources from the server machine to the client machine;
disconnecting the client machine from the server machine;
reconnecting the client machine to the server machine; and
synchronizing only the incremental changes to the resources between the client machine and the server machine. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of synchronizing a second copy of data with a first copy of the data, the first copy of the data including incremental changes that have not been incorporated into the second copy of the data, the method comprising:
-
calculating a first identifier for the first copy of the data, the first identifier indicating the contents of the first copy of the data;
calculating a second identifier for the second copy of the data, the second identifier indicating the contents of the second copy of the data;
comparing the first identifier and the second identifier for controlling transfer of the incremental changes from the first copy of the data to the second copy of the data; and
synchronizing the incremental changes from the first copy of the data to the second copy of the data.
-
-
37. A computer-readable medium having computer-executable instructions for performing steps comprising:
-
means for identifying the contents of a first collection of resources;
means for identifying the contents of a second collection of resources;
means for comparing the contents of the second collection of resources with the first collection of resources to determine incremental changes between the first and second collection of resources; and
synchronizing the incremental changes between the first and second collection of resources.
-
-
38. A system for synchronizing a second copy of data located in second component with a first copy of the data located in a first component, the first copy of the data including incremental changes that have not been incorporated into the second copy of the data, the system comprising:
-
a data transferring system comprising;
means for identifying the contents of a first collection of resources;
means for identifying the contents of a second collection of resources; and
means for comparing the contents of the second collection of resources with the first collection of resources to determine incremental changes between the first and second collection of resources; and
means for synchronizing the incremental changes between the first and second collection of resources.
-
Specification