Multi-master text synchronization using deltas
First Claim
1. A computer-implemented method for resolving conflicts to co-edited text, comprising:
- receiving, at a server that is hosting a master version of the co-edited text, difference notifications from clients that are hosting client versions of the co-edited text, wherein each difference notification of the difference notifications indicates a difference in the co-edited text between a given client version of the co-edited text and the master version of the co-edited text as determined by a given client;
in response to receiving the difference notifications, selecting, at the server, a policy to determine a sole difference notification of the difference notifications to select to process;
selecting, at the server, the sole difference notification of the difference notifications received from the clients to process based on the selected policy;
updating, at the server, the master version of the co-edited text with the selected difference notification to provide an updated master version of the co-edited text reflecting the sole difference notification;
sending an update notification to the clients reflecting the selected difference notification;
receiving, at the server from a conflicted client of the clients, an updated difference notification, wherein the conflicted client transmitted an unselected difference notification to update the master version of the co-edited text that was not selected by the server for provision in the updated master version of the co-edited text, and wherein the updated difference notification reflects a conflict resolution process executed by the conflicted client to reconcile the unselected difference notification and the selected difference notification in a client version of the co-edited text hosted by the conflicted client; and
updating, at the server, the updated master version of the co-edited text to reflect the updated difference notification to provide a reconciled master version of the co-edited text.
1 Assignment
0 Petitions
Accused Products
Abstract
A server enforces a policy for selecting what received change to process. The non-selected changes are not processed by the server. Instead, after the selected change is processed and is incorporated into the current version of the text, the server sends an update to each of the clients indicating the change made to the current version of text. A client performs a conflict resolution procedure when its change was not processed by the server. The conflict resolution procedure detects the differences between the updated text version and its text change that was not accepted by the server and uses the differences to deduce the intent of the user and come up with a merged version of the text which preserves the intent and avoids data loss. The updated version is then sent back to the server to update the current version of the text.
-
Citations
20 Claims
-
1. A computer-implemented method for resolving conflicts to co-edited text, comprising:
-
receiving, at a server that is hosting a master version of the co-edited text, difference notifications from clients that are hosting client versions of the co-edited text, wherein each difference notification of the difference notifications indicates a difference in the co-edited text between a given client version of the co-edited text and the master version of the co-edited text as determined by a given client; in response to receiving the difference notifications, selecting, at the server, a policy to determine a sole difference notification of the difference notifications to select to process; selecting, at the server, the sole difference notification of the difference notifications received from the clients to process based on the selected policy; updating, at the server, the master version of the co-edited text with the selected difference notification to provide an updated master version of the co-edited text reflecting the sole difference notification; sending an update notification to the clients reflecting the selected difference notification; receiving, at the server from a conflicted client of the clients, an updated difference notification, wherein the conflicted client transmitted an unselected difference notification to update the master version of the co-edited text that was not selected by the server for provision in the updated master version of the co-edited text, and wherein the updated difference notification reflects a conflict resolution process executed by the conflicted client to reconcile the unselected difference notification and the selected difference notification in a client version of the co-edited text hosted by the conflicted client; and updating, at the server, the updated master version of the co-edited text to reflect the updated difference notification to provide a reconciled master version of the co-edited text. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for resolving conflicts to co-edited text, comprising:
-
a processor and a computer-readable storage medium; an operating environment stored on the computer-readable storage medium and executing on the processor, which causes the system to; receive, at a server that is hosting a master version of the co-edited text, difference notifications from clients hosting client version of the co-edited text, wherein each difference notification of the difference notification indicates a difference in the co-edited text between a given client version of the co-edited text and the master version of the co-edited text as determined by a given client that is hosting the given client version of the co-edited text; in response to receiving the difference notifications, select, at the server, a sole difference notification of the difference notifications received by the server to process, wherein the sole difference notification was received from a particular client of the clients that is hosting a particular client version of the co-edited text; update, at the server, the master version of the co-edited text with the selected sole difference notification to provide an updated master version of the co-edited text that reflects a text change made to the particular client version of the co-edited text made by the particular client; send an update notification to the clients reflecting the text change; receive, at the server from a conflicted client of the clients, an updated difference notification, wherein the conflicted client made an unselected difference notification to update the master version of the co-edited text that was not selected by the server for provision in the updated master version of the co-edited text, and wherein the updated difference notification reflects a conflict resolution process executed by the conflicted client to reconcile the unselected difference notification and the selected difference notification in a client version of the co-edited text hosted by the conflicted client; and update, at the server, the updated master version of the co-edited text to reflect the updated difference notification to provide a reconciled master version of the co-edited text. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for resolving conflicts to co-edited text, comprising:
-
hosting, at a server, a master version of the co-edited text; distributing, from the server to a first client, a first client version of the co-edited text based on the master version; distributing, from the server to a second client, a second client version of the co-edited text based on the master version; receiving, at the server from the first client, a first difference notification indicating changes made to the co-edited text by the first client in the first client version; receiving, at the server from the second client, a second difference notification indicating changes made to the co-edited text by the second client in the second client version; in response to receiving at least one of the first difference notification and the second difference notification, selecting a policy to determine which of the first difference notification and the second difference to select; based on the selected policy, selecting, at the server, the first difference notification; in response to selecting the first difference notification, discarding, at the server, the second difference notification; updating, at the server, the master version with the first difference notification to produce a first updated master version of the co-edited text; sending, from the server to the first client and the second client, a first update notification reflecting the first difference notification; in response to sending the first update notification to the second client, receiving, at the server from the second client, a third difference notification indicating changes made to the co-edited text by the second client reflecting a conflict resolution process between the second client version and the first difference notification; and updating, at the server, the first updated master version with the third difference notification to produce a second updated master version of the co-edited text. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification