×

Implementing a consistent ordering of operations in collaborative editing of shared content items

  • US 9,747,582 B2
  • Filed: 03/12/2013
  • Issued: 08/29/2017
  • Est. Priority Date: 03/12/2013
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method comprising:

  • receiving at a server of a synchronized content management system, edit operations from a plurality of clients, the edit operations comprising collaborative edits of a shared content item, the edit operations applying to the shared content item that is shared for concurrent collaborative editing between the plurality of clients including at least a first client and a second client, the edit operations having a corresponding position and a unique identifier associated with each edit operation, wherein a native application provides the plurality of clients with an interface for concurrent viewing and editing the shared content item, and wherein the synchronized content management system synchronizes changes to content items in a local folder on each of the plurality of clients and each of the plurality of clients queues changes to the content items for subsequent synchronization when network connectivity with the server is unavailable;

    based on an ordered list of edit operations received concurrently from at least the first client and the second client of the plurality of clients, at the server of the synchronized content management system, generating updates to the plurality of clients, wherein the updates instruct the plurality of clients to perform respective transform operations;

    wherein generating the updates to the plurality of clients based on receiving the edit operations from the first client concurrently with the second client at the server of the synchronized content management system, further comprises;

    receiving, at the server of the synchronized content management system, data describing an edit operation from the first client, the edit operation applying to the shared content item that is shared for concurrent collaborative editing between the plurality of clients;

    receiving, at the server of the synchronized content management system, data describing an edit operation occurring within the native application from the second client, the edit operation applying to the shared content item and having a corresponding position, the edit operation received from the second client is received concurrent with the edit operation from the first client and-prior to sending the edit operation from the first client to the second client;

    adjusting, via the server of the synchronized content management system, the edit operation from the second client and assigning a new position to the edit operation from the second client;

    sending, via the server of the synchronized content management system, the edit operation from the first client to the second client along with instructions to update the position for the edit operation from the second client and instructions to perform the respective transform operations based on the adjustment;

    sending, via the server of the synchronized content management system, an update of the edit operation from the second client for insertion at the updated position to the first client and instructions to perform the respective transform operations based on the insertion; and

    updating, via the server of the synchronized content management system, the ordered list of edit operations for the shared content item based on the edit operations and updates sent to the first client and the second client, wherein at the end of the updating, the ordered list of edit operations for the shared content item of the synchronized content management system matches the ordered list of edit operations for the shared content item maintained by each of the first client, the second client, and the server.

View all claims
  • 4 Assignments
Timeline View
Assignment View
    ×
    ×