Method and system for resolving conflicts in attribute operations in a collaborative editing environment
First Claim
1. A method for transforming operations on an attribute of data, the data being updated by multiple devices having a local copy of the data, the method comprising:
- applying at a first device a first operation to a first copy of the data and sending the first operation to a second device, the first operation having a first operator and a first range;
applying at the second device a second operation to a second copy of the data and sending the second operation to the first device, the second operation having a second operator and a second range;
when the second device did not apply the first operation before applying the second operation, transforming at the first device the second operation to resolve any conflict with the first operation and applying the transformed second operation to the first copy of the data after the first operation has been applied; and
when the first device did not apply the second operation before applying the first operation, transforming at the second device the first operation to resolve any conflict with the second operation and applying the transformed first operation to the second copy of the data after the second operation has been applied, wherein the transforming ensures that after applying the transformed operations the first copy and the second copy of the data are consistent.
2 Assignments
0 Petitions
Accused Products
Abstract
A collaborative editing system defines operational transforms for transforming conflicting operations on styles of the text of the document. The operational transforms ensure that local copies of the document will be consistent when it is in a quiescent state. The operational transforms are defined so that most conflicts can be resolved based on analysis of a remote operation and a local operation only. Certain conflicts, however, cannot be resolved based solely on analysis of the local and remote operations themselves. Such a conflict is referred to as a “definite conflict.” The collaborative editing system resolves definite conflicts by designating one of the computer systems as a distinguished computer system and giving priority to its operation. When a definite conflict arises, then the local computer system and the remote computer system recognize the conflict and resolve the conflict in favor of the operation of the distinguished computer system.
124 Citations
20 Claims
-
1. A method for transforming operations on an attribute of data, the data being updated by multiple devices having a local copy of the data, the method comprising:
-
applying at a first device a first operation to a first copy of the data and sending the first operation to a second device, the first operation having a first operator and a first range;
applying at the second device a second operation to a second copy of the data and sending the second operation to the first device, the second operation having a second operator and a second range;
when the second device did not apply the first operation before applying the second operation, transforming at the first device the second operation to resolve any conflict with the first operation and applying the transformed second operation to the first copy of the data after the first operation has been applied; and
when the first device did not apply the second operation before applying the first operation, transforming at the second device the first operation to resolve any conflict with the second operation and applying the transformed first operation to the second copy of the data after the second operation has been applied, wherein the transforming ensures that after applying the transformed operations the first copy and the second copy of the data are consistent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable medium containing instructions for controlling a first device to transform operations on an attribute of data, the data being updated by multiple devices having a local copy of the data, by a method comprising:
-
applying a first operation to a first copy of the data and sending the first operation to a second device, the first operation having a first operator and a first range;
receiving a second operation that has been applied by the second device to a second copy of the data, the second operation having a second operator and a second range; and
when the second device did not apply the first operation before applying the second operation, transforming the second operation to resolve any definite conflict with the first operation in favor of a distinguished device and applying the transformed second operation to the first copy of the data after the first operation has been applied wherein the transforming ensures that after applying the operations the first copy and the second copy of the data are consistent and wherein at least one of the first operator and the second operator relate to changing an attribute of data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system for transforming operations on an attribute of data, the data being updated by multiple devices having a local copy of the data, comprising:
-
means for applying a local operation to the local copy of the data, the local operation having a local operator and a local range;
means for receiving a remote operation that has been applied by a device to a remote copy of the data, the remote operation having a remote operator and a remote range; and
means for, when the remote device did not apply the local operation before applying the remote operation and the local operator and the remote operator are for adjusting the attribute of the data, transforming the remote operation to resolve any definite conflict with the local operation in favor of a distinguished device and applying the transformed remote operation to the local copy of the data after the local operation has been applied. - View Dependent Claims (20)
-
Specification