Collaborative authoring
First Claim
1. A method of facilitating collaborative editing of a document between a first user at a first computing device and at least one other user, the method comprising:
- accessing a user copy of the document at the first computing device including accessing content of the document and accessing metadata associated with the document, the content of the document being organized into units of data;
receiving metadata updates periodically from a storage device, the metadata updates including any locks on units of data of the document that are associated with the other user;
instantiating the received metadata updates automatically including storing the locks on the units of data of the document with the metadata associated with the document, wherein storing the locks with the metadata associated with the document prevents the first user from editing any units of data of the document that have locks associated with the other user;
receiving content updates periodically from the storage device, the content updates including any modifications made to the content of the document by the other user;
after receiving the content updates, determining whether instructions have been received from the first user to display the content updates to the first user;
when it is determined that instructions have been received from the first user to display the content updates to the first user, displaying the content updates to the first user based on a first user selection included in the instructions, the first user selection determining whether the content updates are to be annotated on the user copy of the document or whether the content updates are to be merged into the user copy of the document;
receiving at the first computing device an indication of editing of one of the units of data of the document by the first user;
transmitting a content update to the storage device indicating modifications made to the unit of data edited by the first user;
receiving instructions from the first user to transmit the content update to the storage device;
instantiating any content updates received previously from the storage device into the user copy of the document;
generating an upload copy of the document based on the user copy of the document including any instantiated content updates; and
transmitting the upload copy of the document to the storage device.
4 Assignments
0 Petitions
Accused Products
Abstract
A collaborative authoring application provides an authoring environment in which two or more users can edit a document concurrently. Each user edits a copy of the document, sends updates to a master copy of the document, and receives updates from the master copy of the document. The authoring environment generally inhibits the users from providing conflicting editing instructions to the master copy of the document. For example, each user can generate a content lock about one or more data units within the document. The authoring environment may synchronize content locks automatically and content only at the request of the user.
200 Citations
17 Claims
-
1. A method of facilitating collaborative editing of a document between a first user at a first computing device and at least one other user, the method comprising:
-
accessing a user copy of the document at the first computing device including accessing content of the document and accessing metadata associated with the document, the content of the document being organized into units of data; receiving metadata updates periodically from a storage device, the metadata updates including any locks on units of data of the document that are associated with the other user; instantiating the received metadata updates automatically including storing the locks on the units of data of the document with the metadata associated with the document, wherein storing the locks with the metadata associated with the document prevents the first user from editing any units of data of the document that have locks associated with the other user; receiving content updates periodically from the storage device, the content updates including any modifications made to the content of the document by the other user; after receiving the content updates, determining whether instructions have been received from the first user to display the content updates to the first user; when it is determined that instructions have been received from the first user to display the content updates to the first user, displaying the content updates to the first user based on a first user selection included in the instructions, the first user selection determining whether the content updates are to be annotated on the user copy of the document or whether the content updates are to be merged into the user copy of the document; receiving at the first computing device an indication of editing of one of the units of data of the document by the first user; transmitting a content update to the storage device indicating modifications made to the unit of data edited by the first user; receiving instructions from the first user to transmit the content update to the storage device; instantiating any content updates received previously from the storage device into the user copy of the document; generating an upload copy of the document based on the user copy of the document including any instantiated content updates; and transmitting the upload copy of the document to the storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An authoring environment implemented on a first computing device to enable coauthoring of a document among users, the first computing device being configured to communicate with at least a storage device, the collaborative authoring environment comprising:
-
a. cache configured to store a base copy of the document, a download copy of the document, an upload copy of the document, a working copy of the document, and a lock table; b. an authoring application configured to manipulate the working copy of the document including manipulating content of the working copy and manipulating metadata of the working copy; c. a layer object that provides an interface between the authoring application and the cache, the layer object being configured to update the lock table stored within the cache automatically with updated metadata when the authoring application manipulates the metadata of the working copy, the layer object also being configured to generate the upload copy of the document based on the working copy of the document when instructions to generate the upload copy are received from the authoring application, wherein the upload copy includes content updates obtained from the download copy of the document; and d. a sync manager configured to manage interactions between the cache and the storage device, the sync manager being configured to push the updated metadata from the lock table to the storage device automatically and being configured to push the upload copy of the document from the cache to the storage device when instructions to provide the updates to the content are received from the authoring application, the sync manager configured to obtain any updated download copy periodically from the storage device and to store the updated download copy within the cache of the first computing device, the updated download copy including content updates generated by other users, wherein, the authoring application is configured to receive instructions from a user of the authoring application to view any content updates contained in the updated download copy, the instructions including a user selection, the authoring application configured to display the content updates based on the user selection included in the instructions, the user selection determining whether the content updates are to be annotated on the working copy of the document or whether the content updates are to be merged into the working copy of the document, and wherein the authoring application provides alerts indicating an updated download copy is available for viewing at the first computing device. - View Dependent Claims (10)
-
-
11. A computer readable storage medium storing computer executable instructions, which perform a method of authoring a document when executed by a computing device, the method comprising:
-
receiving at a first authoring application instructions to manipulate a first unit of data of a document being edited by the first authoring application, the first authoring application being utilized by a first user and being implemented on a first computing device; generating a content lock on the first unit of data automatically after receiving the instructions to manipulate by associating the first unit of data with the first user in a lock table, the lock table being accessible to a plurality of other authoring applications, wherein only the first user can manipulate the first unit of data when the first unit of data has the content lock; manipulating the first unit of data of the document with the first authoring application in accordance with the instructions to manipulate; releasing the content lock on the first unit of data only when instructions to release the content lock are provided to the first authoring application by the first user, wherein releasing the content lock includes disassociating the first unit of data from the first user in the lock table; receiving at the first authoring application content updates, the content updates including any modifications made to the content of the document by a second user; after receiving the content updates, determining whether instructions have been received from the first user to display the content updates to the first user; when it is determined that instructions have been received from the first user to display the content updates to the first user, displaying the content updates based on a user selection included in the instructions, the user selection determining whether the content updates are to be annotated on the document or whether the content updates are to be merged into the document; expanding the content lock to encompass additional units of data when instructions from the first user to manipulate the additional units of data are received by the first authoring application, wherein expanding the content lock includes associating the additional units of data with the first user in the lock table; and transmitting automatically any lock updates to the lock table. - View Dependent Claims (12, 13, 14)
-
-
15. A computer readable storage medium storing computer executable instructions, which perform a method of authoring a document when executed by a computing device, the method comprising:
-
receiving at a first authoring application instructions to manipulate a first unit of data of a document being edited by the first authoring application, the first authoring application being utilized by a first user and being implemented on a first computing device; manipulating the first unit of data of the document with the first authoring application in accordance with the instructions to manipulate; receiving at the first authoring application content updates, the content updates including any modifications made to the content of the document by a second user; after receiving the content updates, determining whether to display the content updates to the first user; and in response to determining whether to display the content updates to the first user, displaying the content updates based on a user selection, the user selection determining whether the content updates are to be annotated on the document or whether the content updates are to be merged into the document, wherein receiving content updates comprises retrieving a download copy of the document, wherein the download copy indicates a master state of the document. - View Dependent Claims (16, 17)
-
Specification