System and method for convergent document collaboration
First Claim
1. A method implemented on a server, the method comprising:
- storing, on a database of the server, a causal tree structure corresponding to a document, wherein the causal tree structure comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction, wherein the identifier comprises;
a site identifier unique to an editing session of a user;
a stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure; and
a cause identifier, wherein the cause identifier is an identifier of a prior editing instruction in a node in the causal tree structure that precedes an additional node;
receiving, at the server, a user editing instruction for the document, wherein the user editing instruction is assigned an identifier unique to the user editing instruction;
storing, using a processor of the server, the user editing instruction and the identifier assigned to the user editing instruction as the additional node to the causal tree structure; and
broadcasting, to a plurality of client devices connected to the server, the user editing instruction and the identifier assigned to the user editing instruction.
3 Assignments
0 Petitions
Accused Products
Abstract
A method is implemented on a server, the method includes storing, on a database of the server, a causal tree structure corresponding to a document, where the causal tree structure includes a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction. The method further includes receiving, at the server, a user editing instruction for the document, where the user editing instruction is assigned an identifier unique to the user editing instruction. The method includes storing, using a processor of the server, the user editing instruction and the identifier assigned to the user editing instruction as an additional node to the causal tree structure. The method further includes broadcasting, to a plurality of client devices connected to the server, the user editing instruction and the identifier assigned to the user editing instruction.
-
Citations
24 Claims
-
1. A method implemented on a server, the method comprising:
-
storing, on a database of the server, a causal tree structure corresponding to a document, wherein the causal tree structure comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction, wherein the identifier comprises; a site identifier unique to an editing session of a user; a stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure; and a cause identifier, wherein the cause identifier is an identifier of a prior editing instruction in a node in the causal tree structure that precedes an additional node; receiving, at the server, a user editing instruction for the document, wherein the user editing instruction is assigned an identifier unique to the user editing instruction; storing, using a processor of the server, the user editing instruction and the identifier assigned to the user editing instruction as the additional node to the causal tree structure; and broadcasting, to a plurality of client devices connected to the server, the user editing instruction and the identifier assigned to the user editing instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method implemented on a client device, the method comprising;
-
receiving, from a server connected to the client device, at least a portion of a causal tree structure corresponding to a document, wherein the causal tree structure is stored on the server and comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction; storing the portion of the causal tree structure; receiving a user editing instruction for the document; assigning, using a processor of the client device, an identifier to the user editing instruction, including; a site identifier unique to the user'"'"'s editing session on the client device; and a stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure stored on the server; transmitting, to the server, the user editing instruction and the identifier assigned to the user editing instruction; receiving, from the server, another user editing instruction for the document and an identifier assigned to the other user editing instruction; storing the user editing instruction and the identifier assigned to the user instruction, and the received other user editing instruction and the received identifier as additional nodes to the portion of the causal tree structure; and rendering the user editing instruction and the received other user instruction. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method implemented on a server, the method comprising:
-
storing, on a database of the server, a causal tree structure corresponding to a document, wherein the causal tree structure comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction; receiving, at the server, a first user editing instruction transmitted by a first client device and a second user editing instruction transmitted by a second client device, wherein the first user editing instruction is assigned a first identifier and the second user editing instruction is assigned a second identifier, wherein the first identifier comprises a first site identifier unique to a first user'"'"'s editing session on the first client device, and a first stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure, wherein the second identifier comprises a second site identifier unique to a second user'"'"'s editing session on the second client device, and a second stamp, which is a numeric value based on identifiers assigned to editing instructions in the causal tree structure; storing the first user editing instruction and the first identifier as a first additional node to the causal tree structure, and storing the second user editing instruction and the second identifier as a second additional node to the causal tree structure; transmitting, to the first client device, the second user editing instruction and the second identifier, to render changes to the document corresponding to the first user editing instruction and the second user editing instruction; and transmitting, to the second client device, the first user editing instruction and the first identifier, to render changes to the document corresponding to the first user editing instruction and the second user editing instruction. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method implemented on a server, the method comprising:
-
storing, on a database of the server, a causal tree structure corresponding to a document, wherein the causal tree structure comprises a sequence of editing instructions and each editing instruction is assigned an identifier unique to such editing instruction; dividing, using a processor on the server, the causal tree structure into a plurality of branches, wherein each branch has about the same number of editing instructions; receiving a user editing instruction for the document, wherein the user editing instruction is assigned an identifier unique to the user editing instruction; storing the user editing instruction and the identifier assigned to the user editing instruction as an additional node to a first branch of the causal tree structure; broadcasting, to a plurality of client devices connected to the server, the user editing instruction and the identifier assigned to the user editing instruction; comparing a number of editing instructions in the first branch of the causal tree structure to a predetermined number; and if the number of editing instructions in the first branch exceeds the predetermined number, re-dividing the causal tree structure into a second plurality of branches having about the same number of editing instructions, wherein the causal tree structure is re-divided when all user sessions to edit the document are terminated. - View Dependent Claims (21, 22, 23, 24)
-
Specification