IP Library Granted Patent US 10,417,319
Granted Patent B1
US 10,417,319 · App. 15/877,367 · Granted Sep 17, 2019

Real-time document sharing and editing

Inventors: Steve Newman (Portola Valley, CA); Sam Schillace (Portola Valley, CA); Claudia Carpenter (Los Altos, CA)
Assignee: GOOGLE LLC
G06F17/2288
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,417,319
App. No.
15/877,367
Granted
Sep 17, 2019
Kind
B1
Abstract

Methods, systems and apparatus, including computer program products, for real-time document sharing and editing. In one aspect, a method includes comparing a first user's and a second user's changes to a document, the document being edited by the first user and the second user concurrently; and notifying the first user of a conflicting change and content of any conflicting change to the document made by the first user but not made to the document because of the conflicting change. In another aspect, a method includes recording a saved position of a cursor of a user editing a client-side copy of a document; receiving an update to the document and generating an updated client-side copy of the document; using the saved position to determine an updated position of the cursor; and displaying to the user the updated client-side copy of the document with the cursor displayed at the updated position.

Claims (63)

1. A method comprising:

receiving, at a server, a first user's changes to a first instance of a document the first user is editing on a first client device;

receiving, at the server, a second user's changes to a second instance of the document the second user is editing on a second client device concurrently with the first user on the first client device;

updating, at the server, a server instance of the document to reflect one or more of the first user's changes;

determining, at the server, that there is a conflict between at least one of the second user's changes to the second instance of the document and the server instance of the document that was updated to reflect the one or more of the first user's changes;

providing, to the second client, the server instance of the document reflecting the first user's changes; and

while the second instance of the document is still open for editing, notifying the second user of the conflict and providing a visual indication of the at least one of the second user's changes to the second instance of the document that conflicted with the server instance of the document that was updated to reflect the first user's change.

2. The method of claim 1 , further comprising:

merging the first user's and the second user's changes within the document responsive to determining that the first user's changes and the second user's changes do not conflict; and

presenting the first user and the second user a merged document containing both the first user's changes and the second user's changes.

3. The method of claim 1 , further comprising:

receiving input from the first user to create the document; and

receiving input from the first user to authorize the second user to edit the document.

4. The method of claim 3 , further comprising:

notifying the second user of an authorization to edit the document from the first user.

5. The method of claim 1 , further comprising:

receiving the first user's changes and the second user's changes within the document, including receiving a respective document identification and a respective version identifier with the first user's changes and the second user's changes respectively.

6. The method of claim 1 , further comprising:

informing the first user of an act of the second user's concurrent editing.

7. The method of claim 1 , further comprising:

receiving input from the first user to add a comment to the document and attaching the comment to the document.

8. The method of claim 1 , further comprising:

storing the document in the server, wherein the first user and the second user edit the document with browser-based applications.

9. A system for a server, the system comprising:

a memory; and

a processing device, coupled to the memory, to:

receive a first user's changes to a first instance of a document the first user is editing on a first client device;

receive a second user's changes to a second instance of the document the second user is editing on a second client device concurrently with the first user on the first client device;

update a server instance of the document to reflect one or more of the first user's changes;

determine that there is a conflict between at least one of the second user's changes to the second instance of the document and the server instance of the document that was updated to reflect the one or more of the first user's changes;

provide, to the second client, the server instance of the document reflecting the first user's changes; and

while the second instance of the document is still open for editing, notifying the second user of the conflict and providing a visual indication of the at least one of the second user's changes to the second instance of the document that conflicted with the server instance of the document that was updated to reflect the first user's change.

10. The system of claim 9 , wherein the processing device is further to:

merge the first user's and the second user's changes within the document responsive to determining that the first user's changes and the second user's changes do not conflict; and

present the first user and the second user a merged document containing both the first user's changes and the second user's changes.

11. The system of claim 9 , wherein the processing device is further to:

receive input from the first user to create the document; and

receive input from the first user to authorize the second user to edit the document.

12. The system of claim 11 , wherein the processing device is further to:

notify the second user of an authorization to edit the document from the first user.

13. The system of claim 9 , wherein the processing device is further to:

receive the first user's changes and the second user's changes within the document, including receiving a respective document identification and a respective version identifier with the first user's changes and the second user's changes respectively.

14. The system of claim 9 , wherein the processing device is further to:

informing the first user of an act of the second user's concurrent editing.

15. The system of claim 9 , wherein the processing device is further to:

receiving input from the first user to add a comment to the document and attaching the comment to the document.

16. The system of claim 9 , wherein the processing device is further to:

storing the document in the server, wherein the first user and the second user edit the document with browser-based applications.

17. A non-transitory computer readable medium including instructions, which when executed by a processing device of a server, cause the processing device to perform operations comprising:

receiving, at the server, a first user's changes to a first instance of a document the first user is editing on a first client device;

receiving, at the server, a second user's changes to a second instance of the document the second user is editing on a second client device concurrently with the first user on the first client device;

updating, at the server, a server instance of the document to reflect one or more of the first user's changes;

determining, at the server, that there is a conflict between at least one of the second user's changes to the second instance of the document and the server instance of the document that was updated to reflect the one or more of the first user's changes;

providing, to the second client, the server instance of the document reflecting the first user's changes; and

while the second instance of the document is still open for editing, notifying the second user of the conflict and providing a visual indication of the at least one of the second user's changes to the second instance of the document that conflicted with the server instance of the document that was updated to reflect the first user's change.

18. The non-transitory computer readable medium of claim 17 , wherein the operations further comprise:

merging the first user's and the second user's changes within the document responsive to determining that the first user's changes and the second user's changes do not conflict; and

presenting the first user and the second user a merged document containing both the first user's changes and the second user's changes.

19. The non-transitory computer readable medium of claim 17 , wherein the operations further comprise:

receiving input from the first user to create the document; and

receiving input from the first user to authorize the second user to edit the document.

20. The non-transitory computer readable medium of claim 17 , wherein the operations further comprise:

storing the document in the server, wherein the first user and the second user edit the document with browser-based applications.

Assignments (2)
CHANGE OF NAME Recorded Jun 25, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 046428/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2018
From: NEWMAN, STEVE; SCHILLACE, SAM; CARPENTER, CLAUDIA
To: GOOGLE INC.
Reel/Frame 046183/0333 →
Continuity (3)
Continuation 13967727 · Aug 15, 2013
Continuation 13875371 · May 2, 2013
Division 11506181 · Aug 16, 2006