COLLABORATIVE ONLINE SPREADSHEET APPLICATION

Information

  • Patent Application
  • 20070233811
  • Publication Number
    20070233811
  • Date Filed
    March 31, 2006
    18 years ago
  • Date Published
    October 04, 2007
    17 years ago
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.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,



FIG. 1 is a diagram of an exemplary system in which concepts consistent with the principles of the invention may be implemented;



FIG. 2 is an exemplary diagram of a computing device illustrated in FIG. 1 ;



FIG. 3 is a diagram illustrating an exemplary implementation of an online spreadsheet application;



FIG. 4 is a flow chart illustrating exemplary operations of the various components of the online spreadsheet application in an exemplary spreadsheet session;



FIG. 5 is a diagram illustrating an exemplary spreadsheet interface that may be presented to a user;



FIG. 6 is a diagram illustrating an another exemplary spreadsheet interface that may be presented to a user;



FIG. 7 is a diagram illustrating another exemplary spreadsheet interface that may be presented to a user; and



FIG. 8 is a diagram illustrating a spreadsheet embedded within a web page consistent with an aspect of the invention.


Claims
  • 1. A method comprising: receiving a request for a spreadsheet application at a server computing device from a browser program of a client computing device;transmitting programming code for a first portion of the spreadsheet application to the browser program of the client computing device in response to the request, the programming code for the first portion of the spreadsheet application being designed to locally handle requests from a user of the client computing device relating to navigating or formatting a spreadsheet document of the spreadsheet application; andexecuting programming code for a second portion of the spreadsheet application at the server computing device, the programming code for the second portion of the spreadsheet application being programmed to handle updates of functions in the spreadsheet document.
  • 2. The method of claim 1, further comprising: transmitting the programming code for the first portion of the spreadsheet application to browser programs of a plurality of client computing devices; andupdating changes made to the spreadsheet document made via the first portion of the spreadsheet application at one of the plurality of client computing devices to spreadsheet documents at others of the plurality of client computing devices.
  • 3. The method of claim 2, wherein the others of the plurality of client computing devices are updated in real-time.
  • 4. The method of claim 2, wherein the first portion of the spreadsheet application displays a messaging area to display messages from users of the plurality of client computing devices.
  • 5. The method of claim 4, wherein the messages are communicated between the users of the plurality of client computing devices in real-time.
  • 6. The method of claim 1, further comprising: providing a plurality of functions for use in the spreadsheet document, at least some of the plurality of functions being functions that were created by users of other client computing devices.
  • 7. The method of claim 1, further comprising: providing an option for a user of the client computing device to make the spreadsheet document publicly accessible to users of other client computing devices.
  • 8. A computer-readable medium containing programming instructions that when executed by a computing device cause the computing device to: receive a request for a spreadsheet application from a browser program of a client computing device;transmit programming code for a first portion of the spreadsheet application to the browser program of the client computing device in response to the request, the programming code for the first portion of the spreadsheet application being designed to locally handle requests from a user of the client computing device relating to navigating or formatting a spreadsheet document of the spreadsheet application; andexecute programming code for a second portion of the spreadsheet application, the programming code for the second portion of the spreadsheet application being designed to handle updates of functions in the spreadsheet document.
  • 9. A device comprising: a processor; anda 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 being distributed to the each of the plurality of client computing devices in response to requests from the plurality of client computing devices for the spreadsheet application; andexecute 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 updating, in real-time or near real-time, changes made at one of the plurality of client computing devices to other ones of the plurality of client computing devices.
  • 10. The device of claim 9, wherein the client engine is distributed to at least one of the plurality of client computing devices in response to an HTTP request made to the device by a web browser executing at one of the plurality of the client computing devices.
  • 11. The device of claim 9, wherein the client engines at the plurality of client computing devices provide a user interface that includes a messaging area configured to display messages communicated between users of the plurality of client computing devices.
  • 12. The device of claim 10, wherein the messages are communicated between the users of the plurality of client computing devices in real-time.
  • 13. The device of claim 9, wherein the client engine is configured to display a user interface for the spreadsheet application as a spreadsheet user interface embedded within a browser window.
  • 14. The device of claim 13, wherein the spreadsheet user interface is embedded in a frame of a web page.
  • 15. The device of claim 10, wherein the first portion of functionality associated with the spreadsheet application is designed to locally handle requests from users of the client computing devices relating to navigating or formatting a spreadsheet document of the spreadsheet application, and a second portion of the functional associated with the spreadsheet application is designed to handle updates of functions in the spreadsheet.
  • 16. The device of claim 10, further comprising: a storage device to store spreadsheet documents created by the plurality of client computing devices.
  • 17. 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 being distributed to the each of the plurality of client computing devices in response to requests from the plurality of client computing devices for the spreadsheet application; andexecuting 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 updating, in real-time, changes made at one of the plurality of client computing devices to other ones of the plurality of client computing devices.
  • 18. The method of claim 17, further comprising providing a user interface that includes a messaging area configured to display messages communicated between users of the plurality of client computing devices.
  • 19. A system for providing a distributed spreadsheet application to a plurality of users comprising: client engine logic executing within browser programs of a plurality of client computing devices; andserver logic 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 synchronizing a single spreadsheet document that is simultaneously open at the plurality of client computing devices.
  • 20. The system of claim 19, wherein the client engine logic provides an interface between the browser associated with one of the plurality of client computing devices and the server logic, the client engine logic asynchronously handling communications from the browser and the server logic.
  • 21. The system of claim 19, further comprising: logic to provide users of the plurality of computing devices with a messaging sidebar implemented within an interface of a spreadsheet document of the spreadsheet application through which real-time messages sent between users of the plurality of computing devices are displayed.
  • 22. A method comprising: providing a link that uniquely identifies a spreadsheet document;receiving a request for the link from a web browser that is processing a web page that includes the link embedded within the web page; andtransmitting, in response to receiving the request for the link, the spreadsheet document and at least a portion of a spreadsheet application configured to provide the spreadsheet document to a user of the web browser.
  • 23. The method of claim 22, wherein the link is provided as part of a Hyper-Text Markup Language (HTML) inline frame.
  • 24. A system comprising: client logic executing within browser programs of a plurality of client computing devices, the client logic including a user interface component to handle displaying of spreadsheet documents to one of the client computing devices and a client engine component to locally handle requests from a user of the one of the client computing devices relating to navigating or formatting the spreadsheet document; andserver logic configured to distribute the client engines to the plurality of client computing devices when requested through browser programs of each of the plurality of client computing devices, the server logic synchronizing a single spreadsheet document that is simultaneously open at the plurality of client computing devices, the server logic including a front-end server component configured to provide a web interface to the plurality of client computing devices and a back-end component configured to handle updates of functions in the spreadsheet document.