Structured content item synchronization
First Claim
1. A computer-implemented method performed by a content management system, the method comprising:
- receiving, by the content management system from a first client device, a notification of a change to a content item stored on the first client device, the content item having a data format with data semantics unknown to the content management system, the notification of the change comprising an indication of a first semantic location of the change within the content item and an indication of a first version of the content item at a time of the change;
determining, based on the indication of the first version of the content item, whether a second client device has already made a second change to the content item with respect to the first version of the content item;
responsive to determining that the second client device has already made the second change, providing a notification of change rejection to the first client device, the notification of change rejection comprising an indication of a second semantic location of the second change within the content item, the indication of the second semantic location having been provided by the second client device;
receiving a request from the second client device to receive changes to the content item;
registering the second client device to receive changes to the content item;
receiving from the first client device a notification of a third change resulting from the first client device combining the change and the second change, the notification of the third change comprising an indication of a third semantic location of the third change within the content item; and
responsive to receiving the notification of the third change, providing a notification of the third change to the second client device.
4 Assignments
0 Petitions
Accused Products
Abstract
A content management system defines a synchronization application programming interface (API) used by applications executing on client devices to synchronize content items after the content items are changed. Functions of the API specify changes to the content items in terms of semantically-meaningful locations within the content items, rather than physical file locations. The content management system can represent the state of a content item in terms of change descriptors that reference the semantic locations of the API. The content management system can then distribute the change descriptors to the client devices, which refer to the semantic locations of the change descriptors when determining how to reconcile changes made by other client devices.
-
Citations
19 Claims
-
1. A computer-implemented method performed by a content management system, the method comprising:
-
receiving, by the content management system from a first client device, a notification of a change to a content item stored on the first client device, the content item having a data format with data semantics unknown to the content management system, the notification of the change comprising an indication of a first semantic location of the change within the content item and an indication of a first version of the content item at a time of the change; determining, based on the indication of the first version of the content item, whether a second client device has already made a second change to the content item with respect to the first version of the content item; responsive to determining that the second client device has already made the second change, providing a notification of change rejection to the first client device, the notification of change rejection comprising an indication of a second semantic location of the second change within the content item, the indication of the second semantic location having been provided by the second client device; receiving a request from the second client device to receive changes to the content item; registering the second client device to receive changes to the content item; receiving from the first client device a notification of a third change resulting from the first client device combining the change and the second change, the notification of the third change comprising an indication of a third semantic location of the third change within the content item; and responsive to receiving the notification of the third change, providing a notification of the third change to the second client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium having executable computer program instructions embodied therein, the instructions comprising:
-
instructions for receiving, from a first client device, a notification of a change to a content item stored on the first client device, the notification of the change comprising an indication of a first semantic location of the change within the content item and an indication of a first version of the content item at a time of the change; instructions for determining, based on the indication of the first version of the content item, whether a second client device has made a second change to the content item with respect to the first version of the content item; instructions for providing a notification of change rejection to the first client device responsive to determining that the second client device has made the second change, the notification of change rejection comprising an indication of a second semantic location of the second change within the content item, the indication of the second semantic location having been provided by the second client device; instructions for receiving a request from the second client device to receive changes to the content item; instructions for registering the second client device to receive changes to the content item; instructions for receiving from the first client device a notification of a third change resulting from the first client device combining the change and the second change, the notification of the third change comprising an indication of a third semantic location of the third change within the content item; and instructions for, responsive to receiving the notification of the third change, providing a notification of the third change to the second client device. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium having executable computer program instructions embodied therein, the instructions comprising:
-
instructions for providing, to a remote server, a notification of a change to a content item stored on a client device, the notification of the change comprising an indication of a first semantic location of the change within the content item and an indication of a first version of the content item at a time of the change; instructions for receiving, from the remote server, a notification of change rejection comprising an indication of a second semantic location of a second change within the content item, the indication of the second semantic location having been provided by a second client device; instructions for, responsive to receipt of the notification of change rejection, merging the change and the second change within the content item stored on the client device, the merging resulting in a third change to the content item; instructions for providing to the remote server a notification of the third change to the content item; instructions for sending a request to the remote server to register to receive changes to the content item; and instructions for receiving, responsive to sending the request, a notification of a change made to the content item by a different client device.
-
-
16. A computer-implemented method comprising:
-
receiving, from an application executing on a first client device, a notification of a change to a content item stored on the first client device, the notification of the change including; a numerical indication of a first record of the content item and a numerical indication of a first field within the first record in which the change was located, and an indication of a previous version of the content item identified with a previous version identifier; determining that the content item has previously been stored as a second change with respect to the previous version, the second change specified as being located within a second record of the content item and a second field within the second record and resulting in a second version later than the previous version; providing, to the application executing on the first client device; an indication of the second record and the second field, and an identifier of the second version; receiving a request from the second client device to receive changes to the content item; registering the second client device to receive changes to the content item; receiving, from the application executing on the first client device, an updated notification of the change to the content item stored on the first client device, the updated notification including; an indication of the first record of the content item, an indication of a merged change resulting from the application executing on the first client device merging the change with the second change within the content item stored on the first client device; responsive to receiving the notification of the merged change, providing a notification of the merged change to the second client device; and storing the content item as the indication of the merged change in association with an identifier of a resulting third version later than the second version. - View Dependent Claims (17, 18, 19)
-
Specification