IP Library Granted Patent US 10,289,673
Granted Patent B1
US 10,289,673 · App. 15/841,139 · Granted May 14, 2019

Performing server-side and client-side operations on spreadsheets

Inventors: Daniel Gundrum (New York, NY); Zachary Erik Lloyd (Brooklyn, NY); Joshua Ari Danziger (Metuchen, NJ); Amod Karve (Clifton, NJ)
Assignee: GOOGLE LLC
G06F17/246
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,289,673
App. No.
15/841,139
Granted
May 14, 2019
Kind
B1
Abstract

A method for obtaining server-side and client-side calculations performed in a document includes presenting, on a client computer, the document stored on a server and receiving an input, where the input causes a calculation in the document. The client computer performs the calculation on the client computer and sends the input to the server to concurrently perform the calculation on the server. The client computer obtains a first result from the calculation performed on the client computer and a second result from the calculation performed on the server, selects the first result or the second result as a selected result based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server, and presents, in the document, the selected result to the user.

Claims (46)

1. A method for obtaining server-side and client-side calculations performed in a document, the method comprising:

presenting, on a client computer, the document received from a server;

receiving an input, wherein the input causes a calculation in the document;

performing the calculation on the client computer and sending the input to the server to concurrently perform the calculation on the server;

obtaining a first result from the calculation performed on the client computer and a second result from the calculation performed on the server;

selecting the first result or the second result as a selected result based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server; and

presenting, in the document, the selected result to the user.

2. The method of claim 1 , further comprising, responsive to obtaining the first result from the calculation performed on the client computer or the second result from the calculation performed on the server, cancelling the calculation performed on the client computer or the calculation performed on the server that is still executing.

3. The method of claim 1 , further comprising sending the input to a plurality of servers to perform the calculation on the plurality of servers.

4. The method of claim 1 , further comprising storing, for a plurality of calculations, completion information of whether a result of each of the plurality of calculations completed quicker by the client computer or the server.

5. The method of claim 1 , further comprising verifying accuracy of the selected result using an unselected result from the first result or the second result that is obtained slower than the selected result from the calculation performed on the client computer or the calculation performed on the server.

6. The method of claim 5 , wherein verifying the accuracy further comprises determining whether the unselected result of the slower of the calculation performed on the client computer or the calculation performed on the server matches the selected result of the quicker of the calculation performed on the client computer or the calculation performed on the server.

7. The method of claim 4 , further comprising determining that subsequent calculations are to be performed exclusively by either the client computer or the server based on the completion information.

8. The method of claim 1 , further comprising receiving, from the server, a document editing application for editing the spreadsheet, wherein the document editing application has a calculation engine for performing the calculation on the client computer.

9. The method of claim 6 , further comprising:

designating the client computer or the server as a master calculator; and

responsive to determining that the unselected result and the selected result do not match, selecting the unselected result or the selected result obtained from the master calculator.

10. A non-transitory computer-readable media comprising instructions that, when executed by a processing device of a client computer, cause the processing device to obtain server-side and client-side calculations in a document, the processing device to:

present the document stored on a server;

receive an input, wherein the input causes a calculation in the document;

perform the calculation on the client computer and sending the input to the server to concurrently perform the calculation on the server;

obtain a first result from the calculation performed on the client computer and a second result from the calculation performed on the server;

select the first result or the second result as a selected result based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server; and

present, in the document, the selected result to the user.

11. The non-transitory computer-readable media of claim 10 , wherein the processing device further to, responsive to obtaining the first result from the calculation performed on the client computer or the second result from the calculation performed on the server, cancel the calculation performed on the client computer or the calculation performed on the server that is still executing.

12. The non-transitory computer-readable media of claim 10 , wherein the processing device further to:

storing, for a plurality of calculations, completion information of whether a result of each of the plurality of calculations completed quicker by the client computer or the server; and

determine that subsequent calculations are to be performed exclusively by either the client computer or the server based on the completion information.

13. The non-transitory computer-readable media of claim 10 , wherein the processing device further to receive, from the server, a document editing application for editing the spreadsheet, wherein the document editing application has a calculation engine for performing the calculation on the client computer.

14. The non-transitory computer-readable media of claim 10 , wherein the processing device further to verify accuracy of the selected result using an unselected result from the first result or the second result that is obtained slower than the selected result from the calculation performed on the client computer or the calculation performed on the server.

15. The non-transitory computer-readable media of claim 10 , wherein verifying the accuracy further comprises the processing device further to determine whether the unselected result of the slower of the calculation performed on the client computer or the calculation performed on the server matches the selected result of the quicker of the calculation performed on the client computer or the calculation performed on the server.

16. The non-transitory computer-readable media of claim 15 , wherein the processing device further to:

designate the client computer or the server as a master calculator; and

responsive to determining that the unselected result and the selected result do not match, select the unselected result or the selected result obtained from the master calculator.

17. A method for providing a server-side calculation performed in a document, the method comprising:

providing, from a server, the document for display on a client computer;

receiving, from a client computer, an input, wherein the input causes a calculation in the document on the client computer;

concurrently performing the calculation on the server based on the input; and

providing, from the server, a first result from the calculation performed on the server to facilitate the client computer displaying either the first result or a second result obtained by the client computer performing the calculation based on which of the first result or the second result is obtained quicker from the calculation performed on the client computer and the calculation performed on the server.

18. The method of claim 17 , further comprising:

storing, for a plurality of calculations, completion information of whether a result of each of the plurality of calculations completed quicker by the client computer or the server; and

determining that subsequent calculations are to be performed exclusively by either the client computer or the server based on the completion information.

19. The method of claim 17 , further comprising:

receiving, from the client computer, a selected result from the first result or the second result; and

sending the selected result for display in the document displayed by one or more other client computers.

20. The method of claim 17 , wherein the server provides a document editing application to the client computer, wherein the document editing application is configured to display the document and to receive input from a user on the client computer.

Assignments (2)
CHANGE OF NAME Recorded Mar 16, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 045624/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2017
From: GUNDRUM, DANIEL; LLOYD, ZACHARY ERIK; DANZIGER, JOSHUA ARI; KARVE, AMOD
To: GOOGLE INC.
Reel/Frame 044884/0107 →
Continuity (1)
Continuation 14135854 · Dec 20, 2013