Collaborative cursors in a hosted word processor
First Claim
1. A computer-implemented collaborative editing method comprising:
- receiving communications from a plurality of client devices that are accessing a common electronic document to perform collaborative editing during a common session, each communication including information indicating changes made to the electronic document by a respective user and locations at which those changes are to be made in a master copy of a document model and including information indicating a location of a cursor in the electronic document in which the respective user is active;
updating the master copy of the document model for the electronic document based on the information in the communications indicating changes made to the electronic document;
transmitting to each particular one of the client devices information indicative of modifications made to the master copy of the document model based on changes to the electronic document made by one or more users of the client devices other than the particular client device, and transmitting to each particular one of the client devices information indicative of the locations in the electronic document of the cursors for the one or more users of the other client devices;
wherein the electronic document is displayed via a user interface at the particular client device to show, within the electronic document, the cursors for the one or more users of the other client devices, and each of the cursors shows a user identity tag associated with the respective cursor;
wherein the master copy of the document model is distinct from and not a copy of the common electronic document;
wherein each client device includes a respective client model and wherein each model includes a one-dimensional character string that includes document characters in an order in which they appear in the electronic document;
resolving instances where multiple users make conflicting edits to a same portion of the electronic document by using an order in which the conflicting edits are received at a central server to apply a consistent set of rules to the conflicting edits; and
updating the master copy of the document model for the electronic document based on the resolving.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented collaborative editing method includes receiving input from a user of a browser-based document editing application on a document displayed by the application; identifying a current location in the document for a cursor of a first user executing the application; receiving from a central server system data that reflects changes made to the document by one or more users other than the first user and current positions in the document of cursors for the one or more other user; updating a document model stored on a computing device that is executing the browser-based application and rendering at least a portion of the model to the browser; and rendering the current positions of the cursors for the one or more other users to the browser.
151 Citations
24 Claims
-
1. A computer-implemented collaborative editing method comprising:
-
receiving communications from a plurality of client devices that are accessing a common electronic document to perform collaborative editing during a common session, each communication including information indicating changes made to the electronic document by a respective user and locations at which those changes are to be made in a master copy of a document model and including information indicating a location of a cursor in the electronic document in which the respective user is active; updating the master copy of the document model for the electronic document based on the information in the communications indicating changes made to the electronic document; transmitting to each particular one of the client devices information indicative of modifications made to the master copy of the document model based on changes to the electronic document made by one or more users of the client devices other than the particular client device, and transmitting to each particular one of the client devices information indicative of the locations in the electronic document of the cursors for the one or more users of the other client devices; wherein the electronic document is displayed via a user interface at the particular client device to show, within the electronic document, the cursors for the one or more users of the other client devices, and each of the cursors shows a user identity tag associated with the respective cursor; wherein the master copy of the document model is distinct from and not a copy of the common electronic document; wherein each client device includes a respective client model and wherein each model includes a one-dimensional character string that includes document characters in an order in which they appear in the electronic document; resolving instances where multiple users make conflicting edits to a same portion of the electronic document by using an order in which the conflicting edits are received at a central server to apply a consistent set of rules to the conflicting edits; and updating the master copy of the document model for the electronic document based on the resolving. - View Dependent Claims (2, 3, 4, 5, 20, 21, 22, 23, 24)
-
-
6. A computer-implemented collaborative editing system comprising at least one computing device configured with the following components:
-
an interface that receives communications from a plurality of client devices that are accessing a common electronic document to perform collaborative editing during a common session, each communication including information indicating changes made to the electronic document by a respective user and locations at which those changes are to be made to a master copy of a document model and including information indicating a location of a cursor in the electronic document in which the respective user is active; a data store that stores the master copy of the document model for the electronic document; an active model manager that updates the master copy of the document model for the electronic document based on the information in the communications indicating changes made to the electronic document and the locations at which those changes are to be made in the master copy of the document model; collaboration logic that provides to each particular one of the client devices information indicative of modifications made to the master copy of the document model based on changes to the electronic document made by one or more users of the client devices other than the particular client device and information indicative of the locations in the electronic document of the cursors for the one or more users of the other client devices; wherein the electronic document is displayed via a user interface at the particular client device to show, within the electronic document, the cursors for the one or more users of the other client devices, and each of the cursors shows a user identity tag associated with the respective cursor; wherein the master copy of the document model is distinct from and not a copy of the common electronic document; wherein each client device includes a respective client model and wherein each model includes a one-dimensional character string that includes document characters in an order in which they appear in the electronic document; wherein the collaboration logic resolves instances where multiple users make conflicting edits to a same portion of the electronic document by using an order in which the conflicting edits are received at a central server to apply a consistent set of rules to the conflicting edits; and wherein the active model manager updates the master copy of the document model for the electronic document based on the resolved instances. - View Dependent Claims (7, 8, 9, 10)
-
-
11. One or more tangible computer-readable storage media storing instructions that, when executed by one or more computers, perform operations comprising:
-
updating a master copy of a document model for an electronic document in response to receiving communications from a plurality of client devices that are accessing a common electronic document to perform collaborative editing during a common session, each communication including information indicating changes made to the electronic document by a respective user and locations at which those changes are to be made in the master copy of the document model and including information indicating a location of a cursor in the electronic in which the respective user is active; transmitting to each particular one of the client devices information indicative of modifications made to the master copy of the document model based on changes to the electronic document made by one or more users of the client devices other than the particular client device, and transmitting to each particular one of the client devices information indicative of the locations in the electronic document of the cursors for the one or more users of the other client devices; wherein the electronic document is displayed via a user interface at the particular client device to show, within the electronic document, the cursors for the one or more users of the other client devices, and each of the cursors shows a user identity taq associated with the respective cursor; wherein the master copy of the document model is distinct from and not a copy of the common electronic document; wherein each client device includes a respective client model and wherein each model includes a one-dimensional character string that includes document characters in an order in which they appear in the electronic document; resolving instances where multiple users make conflicting edits to a same portion of the electronic document by using an order in which the conflicting edits are received at a central server to apply a consistent set of rules to the conflicting edits; and updating the master copy of the document model for the electronic document based on the resolving. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A client device comprising memory and a processor, and further comprising:
-
a web-browser for executing a browser-based document editing application; a user interface to receive input from a first user of the browser-based editing application, wherein the input is indicative of changes to be made to an electronic document displayed by the application; a controller to intercept the input received through the interface, determine a location in the document for a cursor based on the input, and pass information to a central server system, wherein the information indicates changes made to the electronic document by the first user and locations at which those changes are to be made in a master copy of a document model stored on the central server system and indicates the location of the cursor in the electronic document in which the first user is active, the controller further being arranged to receive from the central server system data that reflects changes made to the document by one or more users other than the first user and current positions in the electronic document of cursors for the one or more other users, to update a document model stored on the client device executing the browser-based document editing application and render at least a portion of the model to the browser, and to render the current positions of the cursors for the one or more other users to the browser, the controller further being arranged to resolve instances where multiple users make conflicting edits to a same portion of the electronic document by using an order in which the conflicting edits are received by the central server system to apply a consistent set of rules to the conflicting edits, and the controller further being arranged to update the master copy of the document model for the electronic document based on the resolved instances; wherein the electronic document is displayed via a user interface at the particular client device to show, within the electronic document, the cursors for the one or more users of the other client devices, and each of the cursors shows a user identity taq associated with the respective cursor; and wherein the master copy of the document model is distinct from and not a copy of the common electronic document. - View Dependent Claims (17, 18, 19)
-
Specification