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

US9747582B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9747582-B2
Application numberUS-201313795417-A
CountryUS
Kind codeB2
Filing dateMar 12, 2013
Priority dateMar 12, 2013
Publication dateAug 29, 2017
Grant dateAug 29, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 , wherein the shared content item is shared for real-time editing between the first client and the second client. 3. The method of claim 1 , wherein editing includes at least the ability to perform an action and reversing the action. 4. The method of claim 1 , wherein the synchronized content management system stores the ordered list of the edit operations received from the first client and the second client. 5. The method of claim 1 , wherein the synchronized content management system stores the ordered list of the edit operations received from the first client and the second client, and wherein the synchronized content management system uses the ordered list of the edit operations to determine when a received operation must be transformed according to a respective transform operation. 6. The method of claim 1 , wherein the synchronized content management system assigns the unique identifiers to the edit operations to define an ordering of the edit operations based on when an edit operation is received at the synchronized content management system in relation to other edit operations. 7. The method of claim 1 , further comprising: receiving results of the respective transform operations; and updating the shared content item based on the results of the respective transform operations. 8. A system comprising: a processor; and a non-transitory computer-readable storage medium having a synchronized content management system and having stored therein processor-executable instructions for causing the processor to: receive at a server of the 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, 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 client 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, generate 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, via 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, the edit operation 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; receiving, via 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 a

Assignees

Inventors

Classifications

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • G06Q10/101Primary

    Collaborative creation, e.g. joint development of products or services · CPC title

  • Version control (for software G06F8/71) · CPC title

  • Editing, e.g. inserting or deleting · CPC title

  • where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9747582B2 cover?
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 th…
Who is the assignee on this patent?
Dropbox Inc
What technology area does this patent fall under?
Primary CPC classification G06Q10/101. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 29 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).