Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
First Claim
1. A local network-capable device adapted for collaborative operation and communication over a network with at least one remote network-capable device to enable the local network-capable device and the remote network-capable device to cooperatively edit the same data, each of said local network-capable and remote network capable devices comprising:
- A) a memory for storing a local copy of the data in accordance with a data model;
B) a data-change engine coupled with the memory, and responsive to a plurality of data change requests that have an absolute order relative to each other, for controlling storage of the local copy of data in the memory in accordance with the data model and making changes to the local copy of the data;
the data change requests including a locally-generated data change request and a remotely-generated data change request; and
C) a dynamics manager, coupled with the data-change engine, and responsive to the data change requests for controlling the engine and coordinating execution of the data change requests;
wherein the dynamics manager, responsive to the data change requests, can cause the making of received data changes in the absolute order, and, responsive to a data change request being received out of the absolute order, the undoing of the selected data changes to a point where a data change corresponding to the out-of-order data change request should have been made, the making the out-of-order change and the remaking of the undone data changes in the absolute order so that the same data changes are made in the same order to the local copies of the data stored in both the local network-capable device and the remote network-capable device.
3 Assignments
0 Petitions
Accused Products
Abstract
A distributed, activity-based collaboration system can employ a data change request priority scheme for determining an order of execution of data change requests in effecting changes to local copies of data so as to optimize data consistency for collaborative activities. The data change request priority scheme can entail encoding sequence number information and dependency information in the data change requests, responsive to which data changes can be made, unmade and remade to the data.
-
Citations
33 Claims
-
1. A local network-capable device adapted for collaborative operation and communication over a network with at least one remote network-capable device to enable the local network-capable device and the remote network-capable device to cooperatively edit the same data, each of said local network-capable and remote network capable devices comprising:
-
A) a memory for storing a local copy of the data in accordance with a data model;
B) a data-change engine coupled with the memory, and responsive to a plurality of data change requests that have an absolute order relative to each other, for controlling storage of the local copy of data in the memory in accordance with the data model and making changes to the local copy of the data;
the data change requests including a locally-generated data change request and a remotely-generated data change request; and
C) a dynamics manager, coupled with the data-change engine, and responsive to the data change requests for controlling the engine and coordinating execution of the data change requests;
wherein the dynamics manager, responsive to the data change requests, can cause the making of received data changes in the absolute order, and, responsive to a data change request being received out of the absolute order, the undoing of the selected data changes to a point where a data change corresponding to the out-of-order data change request should have been made, the making the out-of-order change and the remaking of the undone data changes in the absolute order so that the same data changes are made in the same order to the local copies of the data stored in both the local network-capable device and the remote network-capable device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A distributed, coordinated system for maintaining plural copies of the same data pursuant to a distributed data model, wherein the copies can be changed responsive to users'"'"' actions, the system comprising:
-
A) a plurality of computer systems, each of the computer systems capable of locally generating a plurality of data change requests that have an absolute order relative to each other for changing a local copy of the data and of executing data change requests including the locally-generated data change requests and remotely-generated data change requests generated by others of the computer systems so as to make the requested changes to the local copy of the data;
B) each of the computer systems including a dynamics manager that receives locally-generated data change requests and remotely-generated data change requests for determining, responsive to information contained in the locally-generated and remotely-generated data change requests, the absolute order in which requested changes must be made to the local copy of the data, for making requested data changes in the determined order, for undoing data changes made when a remotely-generated data change request is received out of the determined order to the point where a data change corresponding to the out-of-order data change request can be made in the determined order and for remaking undone data changes in the absolute order. - View Dependent Claims (13)
-
-
14. A framework apparatus for providing communication services for an activity-based collaboration system in which data change requests comprising deltas are communicated over a network between network-capable devices in order to maintain consistency between local data copies, each delta containing dependency information that absolutely orders that delta relative to all other deltas, the framework apparatus comprising a communications manager operable on a local network capable device for sending locally-generated deltas over a network to at least one remote network-capable devices and for receiving remotely-generated deltas from the at least one remote network-capable device;
- and a dynamics manager responsive to the dependency information contained in the deltas for determining an order for processing the deltas to make changes to each local data copy, the dynamics manager being responsive to the reception of a remotely-generated delta out of the determined order for causing the selective undoing of changes made to a local data copy, the making of a data change corresponding to the out-of-order delta and the selective remaking of the undone data changes in the determined order.
-
15. A method for providing communication services for an activity-based collaboration system, in which data change requests comprising deltas are communicated over a network between network-capable devices in order to maintain consistency between local data copies, each delta containing sequence information that absolutely orders that delta relative to all other deltas, the method comprising the steps of:
-
A) sending locally-generated deltas from a local network-capable device over a network to at least one remote network-capable devices and for receiving remotely-generated deltas from the at least one remote network capable device;
B) determining an absolute order for processing the deltas based on sequence information contained within the deltas;
C) processing the deltas in the determined order thereby making changes to a local data copy as requested by the deltas;
D) undoing requested changes made to the local data copy in response to sequence information contained within the deltas indicating that a remotely-generated delta has been received out of the determined order;
E) making a data change to the local data copy corresponding to the out-of-order delta; and
F) remaking the undone data changes in the determined order.
-
-
16. A method for processing data change requests in a network-capable device having a local data copy and data change means for generating data change requests, each data change request containing information that absolutely orders that data chance request relative to all other data change requests, and specifying a change to be made to the local data copy, wherein the network-capable device communicates over a network with at least two other network-capable devices to enable all network-capable devices to cooperatively edit the same data during an editing session, the method comprising:
-
(a) when a first and second received data change requests require that a third data change have previously been made to the local data copy, determining the absolute order of making the data changes as specified by the first and second data change requests based on information contained in the data change requests;
(b) when a change specified by one of the first and second data change requests cannot be made in the order determined by the data change requests because other changes have already been made to the local data copy, undoing the other changes to the local data copy;
(c) making a change to the local data copy as specified by the one data change request; and
(d) redoing data changes undone in step (b) so that data changes are made to the local data copy consistently with changes made to local data copies in all network-capable devices. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. Apparatus for processing data change requests in a network-capable device having a local data copy and data change means for generating data change requests, each data change request containing information that absolutely orders that data change request relative to all other data change requests, and specifying a change to be made to the local data copy, wherein the network-capable device communicates over a network with at least two other network-capable devices to enable all network-capable devices to cooperatively edit the same data during an editing session, the apparatus comprising:
-
when a first and second received data change requests require that a third data change have previously been made to the local data copy, means for determining the absolute order of making the data changes as specified by the first and second data change requests based on information contained in the data change requests;
when a change specified by one of the first and second data change requests cannot be made in the order determined by the data change requests because other changes have already been made to the local data copy, means for undoing the other changes to the local data copy;
means for making a change to the local data copy as specified by the one data change request; and
means for redoing undone data changes so that data changes are made to the local data copy consistently with changes made to local data copies in all network-capable devices. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33)
-
Specification