Implementing a consistent ordering of operations in collaborative editing of shared content items
First Claim
1. A computer-implemented method comprising:
- receiving at a synchronized content management system from an application associated with the synchronized content management system on a first device, first edit operations for a first copy of a shared content item stored on the first device;
receiving from an application associated with the synchronized content management system on a second device, second edit operations for a second copy of the shared content item stored on the second device, wherein the first and second edit operations comprise concurrent collaborative edits of the shared content item, the first and second edit operations having a corresponding position and a unique identifier associated with each edit operation, and wherein the synchronized content management system synchronizes changes to the first copy of a shared content item and the second copy of the shared content item;
instructing the first and second devices to perform respective transform operations based on an ordered list of edit operations received from the application associated with the synchronized content management system on the first device and the application associated with the synchronized content management system on the second device, at the synchronized content management system;
adjusting, via the synchronized content management system, the second edit operation received from the application associated with the synchronized content management system on the second device and assigning a new position to the second edit operation from the second device; and
sending, via the synchronized content management system to the application associated with the synchronized content management system on the second device, the first edit operation from the first device along with instructions to update the position for the second edit operation from the second device and instructions to perform the respective transform operations based on the adjustment.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-readable storage media for ordering editing operations in collaborative editing of shared content items. The content management system can receive an edit operation from a first client for a content item that is shared for collaborative editing between the first client and a second client. In response to receiving the operation, the system can send an update to the first client including a previous operation received from the second client prior to receiving the operation from the first client, wherein the update can instruct the first client to perform a transform operation to transform a parameter of the operation according to an effect of the previous operation received from the second client. The system can then receive a result of the transform operation from the first client and update the shared content item based on the previous operation and the result of the transform operation.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving at a synchronized content management system from an application associated with the synchronized content management system on a first device, first edit operations for a first copy of a shared content item stored on the first device; receiving from an application associated with the synchronized content management system on a second device, second edit operations for a second copy of the shared content item stored on the second device, wherein the first and second edit operations comprise concurrent collaborative edits of the shared content item, the first and second edit operations having a corresponding position and a unique identifier associated with each edit operation, and wherein the synchronized content management system synchronizes changes to the first copy of a shared content item and the second copy of the shared content item; instructing the first and second devices to perform respective transform operations based on an ordered list of edit operations received from the application associated with the synchronized content management system on the first device and the application associated with the synchronized content management system on the second device, at the synchronized content management system; adjusting, via the synchronized content management system, the second edit operation received from the application associated with the synchronized content management system on the second device and assigning a new position to the second edit operation from the second device; and sending, via the synchronized content management system to the application associated with the synchronized content management system on the second device, the first edit operation from the first device along with instructions to update the position for the second edit operation from the second device and instructions to perform the respective transform operations based on the adjustment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a processor; and a non-transitory computer-readable storage medium associated with a synchronized content management system and having stored therein processor-executable instructions for causing the processor to; receiving at a synchronized content management system from an application associated with the synchronized content management system on a first device, first edit operations for a first copy of a shared content item stored on the first device; receiving from an application associated with the synchronized content management system on a second device second edit operations for a second copy of the shared content item stored on the second device, wherein the first and second edit operations comprise concurrent collaborative edits of the shared content item, the first and second edit operations having a corresponding position and a unique identifier associated with each edit operation, and wherein the synchronized content management system synchronizes changes to the first content item and the second content item; instructing the first and second devices to perform respective transform operations based on an ordered list of edit operations received from the application associated with the synchronized content management system on the first device and the application associated with the synchronized content management system on the second device, at the synchronized content management system; adjusting, via the synchronized content management system, the second edit operation received from the application associated with the synchronized content management system on the second device and assigning a new position to the second edit operation from the second device; and sending, via the synchronized content management system to the application associated with the synchronized content management system on the second device, the first edit operation from the first device along with instructions to update the position for the second edit operation from the second device and instructions to perform the respective transform operations based on the adjustment. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium associated with a synchronized content management system and having stored therein processor-executable instructions for causing a least one processor to:
-
receive at a synchronized content management system from an application associated with the synchronized content management system on a first device, first edit operations for a first copy of a shared content item stored on the first device; receive from an application associated with the synchronized content management system on a second device second edit operations for a second copy of the shared content item stored on the second device, wherein the first and second edit operations comprise concurrent collaborative edits of the shared content item, the first and second edit operations having a corresponding position and a unique identifier associated with each edit operation, and wherein the synchronized content management system synchronizes changes to the first content item and the second content item; instruct the first and second devices to perform respective transform operations based on an ordered list of edit operations received from the application associated with the synchronized content management system on the first device and the application associated with the synchronized content management system on the second device, at the synchronized content management system; adjust, via the synchronized content management system, the second edit operation received from the application associated with the synchronized content management system on the second device and assigning a new position to the second edit operation from the second device; and send, via the synchronized content management system to the application associated with the synchronized content management system on the second device, the first edit operation from the first device along with instructions to update the position for the second edit operation from the second device and instructions to perform the respective transform operations based on the adjustment. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification