Collaborative online spreadsheet application
First Claim
1. A method comprising:
- receiving, by a server computing device, a request for a spreadsheet application from a browser program of a client computing device;
transmitting, in response to the request and from the server computing device, programming code for a first portion of the spreadsheet application to the browser program of the client computing device, the programming code for the first portion of the spreadsheet application locally processing requests, from a first user at the client computing device, relating to navigating or formatting a spreadsheet document of the spreadsheet application, where the first user has a first set of privileges for the spreadsheet document;
receiving, by the server computing device and from the client computing device, a formula entered into a cell of the spreadsheet document at the client computing device;
executing, by the server computing device, programming code for a second portion of the spreadsheet application, where executing the programming code for the second portion of the spreadsheet application includes calculating a function, associated with the received formula, to generate a result;
transmitting, from the server computing device and to the client computing device, the result of calculating the function, wherethe client computing device has simultaneous access to the formula and the result, andthe result is located within the cell of the spreadsheet document; and
transmitting, from the server computing device and to another client computing device, the result of calculating the function, associated with the received formula, without sharing the formula with the other client computing device, wherethe other client computing device is different from the client computing device from which the formula was received,the other client computing device is associated with a second user that has a second set of privileges for the spreadsheet document, andthe other client computing device has access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the client computing device has simultaneous access to the formula and the result.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed spreadsheet application executes at a server and a client in a network. The networked spreadsheet application can generally be used without requiring a user to install any specific spreadsheet software prior to using the application. In one implementation, the spreadsheet application may include a client engine that executes within browser programs of a plurality of client computing devices and server logic. The server logic may be configured to distribute the client engines to the plurality of client computing devices of the spreadsheet application when requested through the browser programs of each of the plurality of client computing devices. The server logic synchronizes a single spreadsheet document that is simultaneously open at the plurality of client computing devices.
-
Citations
30 Claims
-
1. A method comprising:
-
receiving, by a server computing device, a request for a spreadsheet application from a browser program of a client computing device; transmitting, in response to the request and from the server computing device, programming code for a first portion of the spreadsheet application to the browser program of the client computing device, the programming code for the first portion of the spreadsheet application locally processing requests, from a first user at the client computing device, relating to navigating or formatting a spreadsheet document of the spreadsheet application, where the first user has a first set of privileges for the spreadsheet document; receiving, by the server computing device and from the client computing device, a formula entered into a cell of the spreadsheet document at the client computing device; executing, by the server computing device, programming code for a second portion of the spreadsheet application, where executing the programming code for the second portion of the spreadsheet application includes calculating a function, associated with the received formula, to generate a result; transmitting, from the server computing device and to the client computing device, the result of calculating the function, where the client computing device has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document; and transmitting, from the server computing device and to another client computing device, the result of calculating the function, associated with the received formula, without sharing the formula with the other client computing device, where the other client computing device is different from the client computing device from which the formula was received, the other client computing device is associated with a second user that has a second set of privileges for the spreadsheet document, and the other client computing device has access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the client computing device has simultaneous access to the formula and the result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium containing instructions comprising:
-
one or more instructions which, when executed by at least one processor of a server computing device, cause the at least one processor to transmit, to a browser program of a client computing device and in response to a request from the client computing device, programming code for a first portion of a spreadsheet application, the programming code for the first portion of the spreadsheet application locally executing requests, from a first user at the client computing device, relating to navigating or formatting a spreadsheet document of the spreadsheet application, where the first user has a first set of privileges for the spreadsheet document; one or more instructions which, when executed by the at least one processor, cause the at least one processor to receive, from the client computing device, a formula entered into a cell of the spreadsheet document at the client computing device; one or more instructions which, when executed by the at least one processor, cause the at least one processor to execute programming code for a second portion of the spreadsheet application, where when the programming instructions cause the computing device to execute the programming code for the second portion of the spreadsheet application, the programming instructions cause the server computing device to calculate a function, associated with the received formula to generate a result; one or more instructions which, when executed by the at least one processor, cause the at least one processor to transmit, from the server computing device and to the client computing device, the result of calculating the function, where the client computing device has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document; and one or more instructions which, when executed by the at least one processor, cause the at least one processor to transmit, to another client computing device, that is different from the client computing device from which the formula was received, the result of calculating the function, associated with the received the formula, without sharing internal details of the formula with the other client computing device, where the other client computing device is associated with a second user that has a second set of privileges for the spreadsheet document, and the other client computing device has access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the client computing device has simultaneous access to the formula and the result. - View Dependent Claims (10, 11)
-
-
12. A device comprising:
-
a processor; and a memory coupled to the processor, the memory storing instructions that, when executed by the processor, cause the processor to; distribute a client engine to a plurality of client computing devices over a network, the client engine implementing a first portion of functionality, associated with a spreadsheet application and relating to navigating or formatting a spreadsheet document of the spreadsheet application, and being distributed to each of the plurality of client computing devices in response to requests from the plurality of client computing devices for the spreadsheet application, where a first user, associated with one of the plurality of client computing devices, has a first set of privileges for the spreadsheet document; receive a formula, entered into a cell of the spreadsheet document, from the one of the plurality of client computing devices; execute a spreadsheet server component that performs a second portion of the functionality associated with the spreadsheet application locally at the device, the spreadsheet server component performing one or more calculations, relating to the formula, that are performed on behalf of the one of the plurality of client computing devices, to generate a result; transmit, to the one of the plurality of client computing devices, the result of calculating the formula, where the one of the plurality of client computing devices has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document; and transmit, to one or more other client computing devices, of the plurality of client computing devices, the result of calculating the formula, without sharing the formula with the one or more other client computing devices, where the one or more other client computing devices are different from the one of the plurality of client computing devices from which the formula was received, the one or more other client computing devices are associated with one or more second users that each have a second set of privileges for the spreadsheet document, and the one or more other client computing devices have access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the one of the plurality of client computing devices has simultaneous access to the formula and the result. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method comprising:
-
distributing a client engine to a plurality of client computing devices over a network, the client engine implementing a first portion of functionality, associated with a spreadsheet application and relating to navigating or formatting a spreadsheet document of the spreadsheet application, and being distributed to each of the plurality of client computing devices in response to requests from the plurality of client computing devices for the spreadsheet application, where a first user, associated with one of the plurality of client computing devices, has a first set of privileges for the spreadsheet document; executing a spreadsheet server component that performs a second portion of the functionality, associated with the spreadsheet application, locally at a server device hosting the spreadsheet server component, the spreadsheet server component performing calculations of functions relating to formulas within a spreadsheet shared by the plurality of client computing devices, the spreadsheet server component updating, in real-time, changes, made to the spreadsheet at the one of the plurality of client computing devices, to other ones of the plurality of client computing devices; receiving a formula, entered into a cell of the spreadsheet document, from the one of the plurality of client computing devices; executing the received formula, using the spreadsheet server component, to generate a result; transmitting, to the one of the plurality of client computing devices, the result of executing the formula, where the one of the plurality of client computing devices has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document; and transmitting, to one or more other ones of the plurality of client computing devices, the result of executing the formula, without sharing the formula with the other ones of the plurality of client computing devices, where the one or more other client computing devices are different from the one of the plurality of client computing devices from which the formula was received, the one or more other client computing devices are associated with one or more second users that each have a second set of privileges for the spreadsheet document, and the one or more other client computing devices have access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the one of the plurality of client computing devices has simultaneous access to the formula and the result. - View Dependent Claims (22, 23)
-
-
24. A system for providing a distributed spreadsheet application to a plurality of users, the system comprising:
-
a client computing device to execute client instructions, using a first processor, within a browser program associated with each of a plurality of client computing devices, the client instructions relating to navigating or formatting a spreadsheet document; and a server to transmit, using a second processor, the client instructions to the plurality of client computing devices when a spreadsheet application is requested through the browser programs of the plurality of client computing devices, the second processor performing calculations relating to formulas in the spreadsheet application in response to requests from the plurality of client computing devices, the second processor synchronizing the spreadsheet document that is simultaneously open at the plurality of client computing devices, where the second processor is further to execute server instructions to; receive a formula, entered into a cell of the spreadsheet document of the spreadsheet application, from one of the plurality of client computing devices, where a first user, associated with one of the plurality of client computing devices, has a first set of privileges for the spreadsheet document, execute the received formula to generate a result, transmit, to the one of the plurality of client computing devices, the result of executing the formula, where the one of the plurality of client computing devices has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document, and transmit, to other ones of the plurality of client computing devices, the result of the executed formula, without sharing the formula with the other ones of the plurality of client computing devices, where the other ones of the plurality of client computing devices are different from the one of the plurality of client computing devices from which the formula was received, the other ones of the plurality of client computing devices are associated with one or more second users that each have a second set of privileges for the spreadsheet document, and the other ones of the plurality of client computing devices have access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the one of the plurality of client computing devices has simultaneous access to the formula and the result. - View Dependent Claims (25, 26, 27)
-
-
28. A system comprising:
-
a client computing device to execute client logic, using a first processor, within a browser program of each of a plurality of client computing devices, the client logic including; a user interface instructions to display a spreadsheet document to a respective one of the plurality of client computing devices, and a client engine instructions to locally process requests, from a first user at the respective one of the plurality of client computing devices, relating to navigating or formatting the spreadsheet document, where the first user has a first set of privileges for the spreadsheet document; and a server to transmit, using a second processor, the client logic to the plurality of client computing devices when requested through a browser program of each of the plurality of client computing devices, and to execute server logic for synchronizing the spreadsheet document that is simultaneously open at the plurality of client computing devices, the server logic including; a front-end server instructions to provide a web interface to the plurality of client computing devices, and a back-end instructions to; execute a formula, entered into a cell of the spreadsheet document and received from the respective one of the plurality of client computing devices, to generate a result, transmit, to the respective one of the plurality of client computing devices, the result of executing the formula, where the respective one of the plurality of client computing devices has simultaneous access to the formula and the result, and the result is located within the cell of the spreadsheet document, and transmit, to other ones of the plurality of client computing devices, the result of the executed formula, without sharing internal details of the particular formula with the other ones of the plurality of client computing devices, where the other ones of the plurality of client computing devices are different from the respective one of the plurality of client computing devices from which the formula was received, the other ones of the plurality of client computing devices are associated with one or more second users that each have a second set of privileges for the spreadsheet document, and the other ones of the plurality of client computing devices have access to only the result, located within the cell of the spreadsheet document, at substantially a same time that the respective one of the plurality of client computing devices has simultaneous access to the formula and the result. - View Dependent Claims (29, 30)
-
Specification