Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
First Claim
1. A method for enabling near real time collaboration on an electronic document through a plurality of computer systems, the method comprising:
- initiating a sharing session on a first computer system, wherein initiating the sharing session comprises;
creating a page synchronization object, andcreating channels to communicate with the first computer system;
accepting requests from at least a second computer system to join the sharing session;
maintaining a data structure representing the entire contents of the electronic document;
receiving user input at one of the plurality of computer systems joined to the sharing session, the user input comprising a modification to the data structure;
adding, in response to the received user input, a new node representing the modification to the data structure;
in response to the modification to the data structure, creating a revision that identifies only the modification to the data structure, wherein creating the revision comprises;
periodically identifying changes to the data structure, andperiodically collecting the identified changes to the data structure as a result of the modification; and
transmitting the revision to each of the plurality of computer systems joined to the sharing session other than the one computer system at which the input was made, wherein transmitting the revision to each of the plurality of computer systems joined to the sharing session comprises;
determining whether a synchronization token is present,serializing the revision,placing a reference in the synchronization token,sending the serialized revision and the synchronization token with the reference, wherein sending the serialized revision and the synchronization token with the reference comprises using a throttling mechanism associated with sending the serialized revision only to computer systems of the plurality of computer systems that have finished processing a previous revision of the data structure, andapplying the revision to a locally stored copy at each receiving computer system of the plurality of computer systems joined to the sharing session.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and apparatus are provided for collaborating on an electronic document. According to the method, a data structure may be maintained at each of the computer systems participating in the collaborative session that represents the contents of a shared document. When user input is received at one of the computer systems modifying the document, the data structure is updated to reflect the modification. In response to the modification, the changes to the data structure are periodically identified and collected as a revision that identifies only the changes made to the data structure as a result of the edits made since the previous revision was taken. The revision is packaged and transmitted to each of the participants in the sharing session. The revisions are merged into the copy of the data structure stored at the participating computer systems.
84 Citations
20 Claims
-
1. A method for enabling near real time collaboration on an electronic document through a plurality of computer systems, the method comprising:
-
initiating a sharing session on a first computer system, wherein initiating the sharing session comprises; creating a page synchronization object, and creating channels to communicate with the first computer system; accepting requests from at least a second computer system to join the sharing session; maintaining a data structure representing the entire contents of the electronic document; receiving user input at one of the plurality of computer systems joined to the sharing session, the user input comprising a modification to the data structure; adding, in response to the received user input, a new node representing the modification to the data structure; in response to the modification to the data structure, creating a revision that identifies only the modification to the data structure, wherein creating the revision comprises; periodically identifying changes to the data structure, and periodically collecting the identified changes to the data structure as a result of the modification; and transmitting the revision to each of the plurality of computer systems joined to the sharing session other than the one computer system at which the input was made, wherein transmitting the revision to each of the plurality of computer systems joined to the sharing session comprises; determining whether a synchronization token is present, serializing the revision, placing a reference in the synchronization token, sending the serialized revision and the synchronization token with the reference, wherein sending the serialized revision and the synchronization token with the reference comprises using a throttling mechanism associated with sending the serialized revision only to computer systems of the plurality of computer systems that have finished processing a previous revision of the data structure, and applying the revision to a locally stored copy at each receiving computer system of the plurality of computer systems joined to the sharing session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 17, 18)
-
-
12. A method for enabling near real time collaboration on a page of an electronic document through a plurality of computer systems, the method comprising:
-
initiating a sharing session on one of the plurality of computer systems; accepting requests respectively from others of the plurality of computer systems to join the sharing session; maintaining a graph at each of the computer systems joined to the sharing session, the graph identifying a content of the page of the electronic document; receiving at a first of the plurality of computer systems joined to the sharing session a change to the page, the change to the page resulting in a corresponding change to the graph; generating a revision to the graph in response to the change, the revision comprising data identifying only the change to the graph, wherein generating the revision comprises; periodically identifying changes to a data structure, and periodically collecting the identified changes to the data structure as a result of the change to the graph; transmitting the revision from the first of the plurality of computer systems to each of the other computer systems joined to the sharing session, wherein transmitting the revision to each of the plurality of computer systems joined to the sharing session comprises; determining whether a synchronization token is present, serializing the revision, placing a reference in the synchronization token, sending the serialized revision and the synchronization token with the reference, wherein sending the serialized revision and the synchronization token with the reference comprises using a throttling mechanism associated with sending the serialized revision only to computer systems of the plurality of computer systems that have finished processing a previous revision of the data structure, and applying the revision to a locally stored copy at each receiving computer system of the plurality of computer systems joined to the sharing session, wherein applying the revision to a locally stored copy comprises; determining whether at least one local change is present at a receiving computer system receiving the revision, in response to determining whether at least one local change is present, determining whether the synchronization token is available at the receiving computer system of the plurality of computer systems, in response to determining whether the synchronization token is available at the receiving computer system of the plurality of computer systems; applying the at least one local change to the revision, and transmitting the revision to others of the plurality of computer systems joined to the sharing session other than the computer system at which the at least one local change was made, in response to determining whether the synchronization token is not available at the receiving computer system of the plurality of computer systems, merging the following; a base line, wherein the baseline is the last version received, the revision, and the at least one local change; and merging the revision into the graph maintained at each of the other computer systems joined to the sharing session; and transmitting a current version of the data structure representing the entire contents of the electronic document to the others of the plurality of computer systems that joined the sharing session after the revision, wherein transmitting the current version of the data structure comprises; creating a synchronization object for each new channel that has not previously received a request to join the sharing session, creating a new page, linking the new page to the synchronization object, and transmitting the content of the electronic document on each new channel, wherein transmitting each content of the electronic document on each new channel comprises; allowing users to edit different contents without at least one of the following;
conflicting edits and conflicting revisions, andallowing users to edit the same content. - View Dependent Claims (13, 14, 15, 16, 19, 20)
-
Specification