Patent ID: 7818679

Claim:
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.