US10169401B1 - System and method for providing online data management services - Google Patents
System and method for providing online data management services Download PDFInfo
- Publication number
- US10169401B1 US10169401B1 US14/795,679 US201514795679A US10169401B1 US 10169401 B1 US10169401 B1 US 10169401B1 US 201514795679 A US201514795679 A US 201514795679A US 10169401 B1 US10169401 B1 US 10169401B1
- Authority
- US
- United States
- Prior art keywords
- data
- user
- user device
- spreadsheet
- filter criteria
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G06F17/30377—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G06F17/30581—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Definitions
- This specification relates generally to systems and methods for providing online services, and more particularly to systems and methods for providing online data management services.
- Online spreadsheet management applications alloy users to create and manipulate spreadsheet data via a network, and maintain the data at a remote location.
- Current spreadsheet management applications offer many common spreadsheet functions, including formatting, graphing, filtering, etc.
- some online spreadsheet management applications facilitate collaboration by allowing multiple users to access a spreadsheet data set simultaneously. Typically, when one of the collaborating users makes a change to the shared spreadsheet data set, the change is made to the data set and can be seen by the other collaborating users.
- a method for providing online data management services is provided. Access to first data is provided to a first user and to a second user. For example, the first user and to the second user may be allowed to access the first data simultaneously. A specified change is received from the first user. Access to second data generated based on the first user's specified change is provided only to the first user. The first data is updated based on the specified change, in response to a selection by the first user of an option to apply the specified change to the first data. Simultaneous access to the updated first data is provided to the first user and to the second user.
- access to the first data is provided to the first user via a first network browser operating on a first user device, and access to the first data is provided to the second user via a second network browser operating on a second user device.
- a selection of a preview option is received from the first user, and in response to the selection, access to the second data is provided only to the first user.
- a request that the first user device display the second data may be transmitted to the first user device.
- a first request to display the first data in a first window, and a second request to display the second data in a second window, may be transmitted to the first network browser.
- the first data may be stored in a first memory location, and the second data may be stored in a second memory location.
- a first thread associated with the first data, and a second thread associated with the second data, may be maintained.
- filter criteria are received from the first user, and the second data is filtered based on the filter criteria.
- the first data may comprise at least one of: spreadsheet data, text data generated by a word processing application, graphical data, image data, and slide show data.
- a method for providing online data management services is provided.
- First information adapted to cause a user device to display a first representation of a first data set maintained by an online document processing service is transmitted.
- a first selection of a first option to activate a preview mode with respect to the first data set is received, and a second data set is generated based on the first data set; in response to the first selection.
- Second information adapted to cause the user device to display simultaneously a second representation of the first data set and a third representation of the second data set is transmitted.
- the second data set is updated based on an input received from the user device, and the first data set is updated based on the updated second data set, in response to a second selection of a second option to update the first data set received from the user device.
- a graphical user interface comprising a first region for displaying a representation of a first data set stored at an online data management service.
- the graphical user interface also comprises a preview mode option for activating a preview mode, wherein a selection of the preview mode option initiates generation of a second data set based on the first data set and a simultaneous display of the first region and a second region for displaying a second representation of the second data set.
- an apparatus comprising means for providing simultaneous access to first data to a first user and to a second user, and means for receiving a specified change from the first user.
- the apparatus further comprises means for providing, only to the first user, access to second data generated based on the first user's specified change.
- the apparatus also comprises means for updating the first data based on the specified change, in response to a selection by the first user of an option to apply the specified change to the first data.
- an apparatus comprising means for transmitting a first request that a user device display a first data set maintained by an online document processing service, means for receiving a first selection of a preview mode with respect to the first data set, and means for generating a second data set based on the first data set, in response to the first selection.
- the apparatus also comprises means for transmitting at least one second request that the user device display the first data set and the second data set, means for updating the second data set based on an input received from the user device, and means for updating the first data set based on the updated second data set, in response to a second selection of an option to update the first data set received from the user device.
- FIG. 1 shows a communication system that may be used to provide online services in accordance with an embodiment
- FIG. 2 shows functional components of an exemplary user device
- FIG. 3 shows functional components of an online spreadsheet manager in accordance with an embodiment
- FIG. 4 shows a display of spreadsheet data in accordance with an embodiment
- FIG. 5 is a flowchart of a method for providing spreadsheet data management services in accordance with an embodiment
- FIG. 6 shows a display of spreadsheet data in accordance with an embodiment
- FIG. 7A shows a display of spreadsheet data in accordance with an embodiment
- FIG. 7B shows a display of spreadsheet data in accordance with an embodiment
- FIG. 8 shows a display of spreadsheet data in accordance with an embodiment
- FIG. 9 is a flowchart depicting a method of providing online data management services in accordance with an embodiment.
- FIG. 10 shows components of an exemplary computer.
- FIG. 1 shows a communication system 100 that may be used to provide online services in accordance with an embodiment.
- Communication system 100 comprises a network 105 , an online spreadsheet manager 130 , and user devices 160 -A, 160 -B, etc.
- user device 160 is used herein to refer to any one of user devices 160 -A, 160 -B, etc. Accordingly, any discussion herein referring to “user device 160 ” is equally applicable to each of user devices 160 -A, 160 -B, etc.
- Communication system 100 may comprise more or fewer than two user devices.
- network 105 is the Internet.
- network 105 may comprise one or more of a number of different types of networks, such as, for example, an intranet, a local area network (LAN), a wide area network (WAN), a wireless network, a Fibre Channel-based storage area network (SAN), or Ethernet. Other networks may be used.
- network 105 may comprise a combination of different types of networks.
- Online spreadsheet manager 130 provides spreadsheet data management services to users via network 105 , enabling users to create, display, analyze, filter, and edit spreadsheet data sets remotely. Online spreadsheet manager 130 may be accessible via a World Wide Web page that may be viewed using a conventional Web browser, for example. A user may be required to log into a respective user account to access his or her spreadsheet data. Online spreadsheet manager 130 may offer common spreadsheet management features such as formatting, graphing, filtering, etc.
- Online spreadsheet manager 130 allows multiple users to access a single spreadsheet data set simultaneously. For example, a group of users wishing to collaborate may access a spreadsheet data set simultaneously and view changes made by others.
- a first user who creates a spreadsheet data set may specify one or more additional users who are permitted access to the spreadsheet data set. The first user may specify the level of access (e.g., read only, edit, etc.) granted to each of the additional users. Subsequently, any of the additional specified users, after logging into his or her respective user account, may access the spreadsheet data set created by the first user. More than one user may access the spreadsheet data set simultaneously.
- User device 160 may be any device that enables a user to communicate via network 105 .
- User device 160 may be connected to network 105 through a direct (wired) link, or wirelessly.
- User device 160 may have a display screen (not shown) for displaying information.
- user device 160 may be a personal computer, a laptop computer, a workstation, a mainframe computer, etc.
- user device 160 may be a mobile communication device such as a wireless phone, a personal digital assistant, etc. Other devices may be used.
- FIG. 2 shows functional components of an exemplary user device 160 .
- User device 160 comprises a web browser 210 and a display 270 .
- Web browser 210 may be a conventional web browser used to access World Wide Web sites via the Internet, for example.
- Display 270 displays spreadsheet data, documents, Web pages, and other information to a user. For example, a spreadsheet data set that a user creates or edits may be displayed on display 270 .
- User device 160 may include other components in addition to those shown in FIG. 2 .
- FIG. 3 shows functional components of online spreadsheet manager 130 in accordance with an embodiment.
- Online spreadsheet manager 130 comprises a spreadsheet process 310 , a spreadsheet preview 318 , and a spreadsheet data repository 325 .
- Spreadsheet process 310 manages spreadsheet data and performs spreadsheet operations requested by users, such as mathematical operations, graphing, filtering, etc.
- Spreadsheet data sets created by users are stored in spreadsheet data repository 325 .
- a spreadsheet data set created by a user may be stored in association with his or her user account, for example. Multiple versions of a user's spreadsheet data set may be stored in spreadsheet data repository 325 .
- Spreadsheet preview 318 provides, upon a user's request, a preview mode for viewing a spreadsheet data set, as discussed in more detail below.
- Online spreadsheet manager 130 may comprise other components in addition to those shown in FIG. 3 .
- a user may access online spreadsheet manager 130 and create and/or edit a spreadsheet data set.
- a user may employ browser 210 to access a World Wide Web site maintained by online spreadsheet manager 130 .
- the user may be required to authenticate his or her identity, e.g., by entering a user name and password, before accessing his or her user account and spreadsheet data associated with the account.
- online spreadsheet manager 130 may grant access rights to one or more users with respect to the spreadsheet data set. For example, certain users may be granted viewing and editing rights while other users are granted viewing rights only. Access to a document may be blocked to users who do not have access rights.
- a user wishes to utilize a spreadsheet to record how many points various users have accumulated in a particular game. Accordingly, the user accesses online spreadsheet manager 130 and creates a spreadsheet data set 400 , illustrated in FIG. 4 .
- online spreadsheet manager 130 transmits data causing user device 160 to display a representation of all or a portion of spreadsheet data set 400 on a Web page.
- online spreadsheet manager 130 may transmit to browser 210 a request, in the form of HyperText Markup Language (HTML), adapted to cause browser 210 to display a representation of spreadsheet data set 400 in a window.
- browser 210 displays all or a portion of spreadsheet data set 400 in a window 407 shown on display 270 .
- browser 210 displays spreadsheet data set 400 as a plurality of cells arranged in rows and columns.
- Browser 210 also displays a toolbar 415 which may display various available options and/or functions available to the user, such as a file function 417 .
- the updated spreadsheet data set is stored in spreadsheet data repository 325 .
- the user enters, in rows 421 - 428 , information identifying various users (Users 1 - 8 ), and a score associated with each respective user.
- row 421 identifies “User 1 ” and indicates that “User 1 ” has accumulated 260 points;
- row 422 identifies “User 2 ” and indicates that “User 2 ” has accumulated 1512 points, etc.
- online spreadsheet manager 130 stores spreadsheet data set 400 in spreadsheet data repository 325 , as shown in FIG. 3 .
- multiple users having access rights to spreadsheet data set 400 may log into their respective accounts with online spreadsheet manager 130 and access spreadsheet data set 400 simultaneously.
- a first user employing user device 160 -A
- a second user employing user device 160 -B
- both the first and second users have access rights with respect to spreadsheet data set 400 and therefore can view the data in spreadsheet data set 400 on his or her respective display device.
- each user's Web browser may display spreadsheet data set 400 in a format similar to that shown in FIG. 4 .
- online spreadsheet manager 130 transmits a first request (or other data) adapted to cause user device 160 -A to display spreadsheet data set 400 , and a second request (or other data) adapted to cause user device 160 -B to display spreadsheet data set 400 .
- the first user may then view spreadsheet data set 400 in window 407 displayed on user device 160 -A, and the second user may view spreadsheet data set 400 in a similar window displayed on user device 160 -B.
- the first user wishes to make changes to spreadsheet data set 400 , but does not want the changes to become permanent and does not want the second user to be able to view the changes.
- the first user may wish to make a change to the data in a spreadsheet cell and test how the change affects data stored in other cells in the spreadsheet.
- the first user may choose to view and edit a spreadsheet data set using a preview mode which allows only that user to view the user's edits.
- online spreadsheet manager 130 establishes and maintains a first data model associated with spreadsheet data set 400 . All collaborating users can view, share, and edit the first data model.
- a “branch” of the first data model is created and stored separately.
- the “branch” of the first data model may be viewed and manipulated by the particular user as a personal preview data model. Only that particular user has access to and can view changes made to his or her personal preview data model. Subsequently, that particular user may apply any changes made to the personal preview model to the first data model, if he or she wishes. Alternatively, that particular user may delete the personal preview data model, or store the updated personal preview data model as a separate data model or file, without affecting the first data model.
- FIG. 5 is a flowchart of a method for displaying data in accordance with an embodiment.
- simultaneous access to first spreadsheet data is provided to a first user and to a second user.
- the first user and the second user log into their respective user accounts and access spreadsheet data set 400 .
- Online spreadsheet manager 130 may verify the users' identities and access rights before allowing access to the spreadsheet data set.
- a user may now select an option to enter a preview mode, in which the user may view and edit the spreadsheet data in spreadsheet data set 400 without the changes being visible to other users.
- the first user selects a preview mode option while viewing spreadsheet data set 400 in window 407 .
- the first user right-clicks on a computer mouse, and in response, browser 210 displays an options menu 490 that includes a preview mode option 492 .
- browser 210 transmits the user's selection to online spreadsheet manager 130 .
- online spreadsheet manager 130 Based on the first user's selection of the option to enter the preview mode, online spreadsheet manager 130 generates a separate data set that comprises the data in spreadsheet data set 400 and is accessible only to the first user.
- spreadsheet preview 318 in response to the first user's selection of preview mode option 492 , spreadsheet preview 318 generates a copy of the information in spreadsheet data set 400 , and saves the copy in spreadsheet data repository 325 as preview data set 600 , as shown in FIG. 3 .
- spreadsheet data set 400 is stored in a first memory location and preview data set 600 is stored in a second memory location.
- Online spreadsheet manager 130 grants to the first user access rights with respect to preview data set 600 , including viewing and editing rights, for example, while other users are granted no access rights with respect to preview data set 600 .
- Other techniques may be used to store and maintain spreadsheet data set 400 and preview data set 600 .
- the first user employs a computer mouse to select a preview mode from a menu
- other techniques may be used to select and activate a preview mode.
- spreadsheet preview 318 transmits to user device 160 -A a request, or other data, adapted to cause browser 210 to display a representation of preview data set 600 .
- online spreadsheet manager 130 may request that browser 210 display spreadsheet data set 400 in a first window and display preview data set 600 in a second window.
- browser 210 responds by continuing to display spreadsheet data set 400 in first window 407 , and by opening a second, preview window 607 on display 270 and displaying preview data set 600 in the preview window. All or a portion of preview data set 600 may be displayed in preview window 607 .
- window 407 showing spreadsheet data set 400 , is open in the background of display 270 .
- preview data set 600 When browser 210 opens preview window 607 and displays preview data set 600 , the information in preview data set 600 is the same as the information in spreadsheet data set 400 .
- row 621 of preview data set 600 corresponds to, and contains the same information (User 1 , 260 points), as row 421 of spreadsheet data set 400
- row 622 of preview data set 600 corresponds to, and contains the same information (User 2 , 1512 points), as row 422 of spreadsheet data set 400 , etc.
- the first user wishes to make one or more desired changes to the information in preview data set 600 .
- the first user does not want the second user to see the changes.
- the first user may make changes to the information in preview data set 600 within preview window 607 . Changes made by the first user to preview data set 600 are not seen by other users, and do not affect the information in spreadsheet data set 400 , unless the first user selects an option to apply the changes to spreadsheet data set 400 .
- first user has access rights to preview data set 600 , including viewing and editing rights, other users have no access rights with respect to preview data set 600 .
- the first user first changes the number of points associated with User 2 , shown in row 622 , from “1512” to “1525.”
- a user may make other types of changes to a preview data set. For example, a user may insert information into a spreadsheet cell, delete information from a spreadsheet cell, insert text into a document, delete text from a document, perform a selected filter operation with respect to data in a spreadsheet or other document, add or remove an image in a document, etc.
- User device 160 transmits the first user's specified change to online spreadsheet manager 130 . In one embodiment, user device 160 transmits information reflecting the user's specified change(s) to spreadsheet manager 130 .
- spreadsheet preview 310 receives the information reflecting the first user's specified change and updates preview data set 600 in spreadsheet data repository 325 .
- spreadsheet process 310 may also update certain cells in preview data set 600 based on the first user's change. For example, spreadsheet process 310 may update another row containing a value that is determined based on the information in row 622 .
- user device 160 may perform certain calculations and other data processing associated with updating the information in preview data set 600 , including updating other rows, columns, and cells affected by the first user's specified change.
- user device 160 may transmit to online spreadsheet manager 130 information reflecting the first user's specified change and other changes made to preview data set 600 as a result of the change. Such calculations may be made by an appropriate application (not shown) residing on user device 160 , for example.
- Spreadsheet process 310 updates preview data set 600 based on the information received from user device 160 .
- step 530 access to second spreadsheet data comprising second data generated based on the first user's specified change is provided only to the first user.
- Online spreadsheet manager 130 transmits a request, or other data, adapted to cause browser 210 (on user device 160 -A) to display the updated version of preview data set 600 in preview window 607 .
- browser 210 on user device 160 -A
- Row 622 of preview data set 600 now contains the updated point value “1525.”
- the data in rows 421 - 428 of spreadsheet data set 400 seen in window 407 on display 270 , remain unchanged.
- spreadsheet data set 400 and preview data set 600 are made available to the first user as separate tabs in a spreadsheet application.
- spreadsheet data set 400 is displayed.
- preview data set 600 is displayed.
- Other methods for displaying spreadsheet data set 400 and preview data set 600 may be used.
- online spreadsheet manager 130 does not transmit to user device 160 -B any request, or other data, relating to preview data set 600 .
- the first user wishes to filter the data in preview data set 600 .
- the first user right-clicks on a computer mouse to obtain an options menu 790 , which contains a filter data option 791 and a save changes option 792 .
- the user selects filter data option 791 .
- the first user wishes to remove from preview data set all users who have accumulated less than fifty (50) points.
- the first user may cause a filter criteria window (not shown) to appear on display 270 , and enter one or more filter criteria.
- Browser 210 transmits the user's filter criteria to online spreadsheet manager 130 .
- online spreadsheet manager 130 receives the first user's desired filter criteria, and spreadsheet process 310 filters preview data set 600 in accordance with the filter criteria.
- the rows pertaining to User 6 and User 7 are removed from preview data set 600 because User 6 and User 7 have each accumulated less than fifty points.
- Spreadsheet preview 318 updates preview data set 600 in spreadsheet data repository 325 to reflect the filtered results.
- other types of data models associated with preview data set 600 may be updated to reflect the changes.
- Online spreadsheet manager 130 transmits to user device 160 -A a request, or other data, adapted to cause browser 210 (on user device 160 -A) to display the updated version of preview data set 600 .
- online spreadsheet manager 130 requests that browser 210 display updated preview data set 600 in preview window 607 .
- browser 210 displays the filtered version of preview data set 600 on display 270 .
- the filtered preview data set 600 is displayed in preview window 607 , as shown in FIG. 7B .
- Updated preview data set 600 includes rows 621 - 625 and row 628 . Rows 626 and 627 , which contained information pertaining to User 6 and User 7 , respectively, have been removed. Rows 421 - 428 of spreadsheet data set 400 (shown in window 407 , in the background) remain unchanged.
- the first user wishes to apply the changes to spreadsheet data set 400 so that the changes become permanent, and so that the second user can view the changes.
- the first user right-clicks on a computer mouse, and in response, browser 210 again displays options menu 790 .
- the first user now selects save changes option 792 , and browser 210 transmits the user's selection to online spreadsheet manager 130 .
- the first spreadsheet data is updated based on the specified change, in response to a selection by the first user of an option to apply the desired change to the first spreadsheet data.
- spreadsheet preview 318 updates spreadsheet data set 400 to include the changes made by the first user.
- Updated spreadsheet data set 400 is saved in spreadsheet data repository 325 .
- other types of data models associated with spreadsheet data set 400 may be updated to reflect the changes made by the first user.
- Online spreadsheet manager 130 transmits a request, or other data adapted to cause browser 210 to display updated spreadsheet data set 400 .
- browser 210 displays all or a portion of updated spreadsheet data set 400 .
- the first user exits preview mode by, for example, closing preview window 607 , and views updated spreadsheet data set 400 in window 407 , as shown in FIG. 8 .
- Updated spreadsheet data set 400 includes updated row 422 , which now indicates that User 2 has accumulated 1525 points.
- the information in updated spreadsheet data set 400 has also been filtered based on the first user's filter criteria.
- updated spreadsheet data set 400 includes rows 421 - 425 and row 428 , but does not include rows 426 or 427 .
- Updated spreadsheet data set 400 is also displayed to the second user.
- online spreadsheet manager 130 transmits to user device 160 -B a request, or other data, adapted to cause user device 160 -B to display updated spreadsheet data set 400 .
- user device 160 -B displays all or a portion of updated spreadsheet data set 400 to the second user.
- the first user may store preview data set 600 as a separate spreadsheet data set. For example, the first user may select an option to save preview data set 600 as a new spreadsheet data set, or as a new file; the new spreadsheet data set is then saved in a separate memory location in spreadsheet data repository 325 . The first user may alternatively choose to delete preview data set 600 .
- FIG. 9 is a flowchart depicting a method of providing online data management services, in accordance with another embodiment.
- first information adapted to cause a user device to display a first representation of a first data set maintained by an online document processing service is transmitted.
- spreadsheet preview 318 may transmit a request that browser 210 display spreadsheet data set 400 in a first window.
- a first selection of a first option to activate a preview mode with respect to the first data set is received.
- online spreadsheet manager 130 may receive a user's selection of preview mode option 492 .
- a second data set based on the first data set is generated in response to the first selection.
- Online spreadsheet manager 130 generates preview data set 600 .
- second information adapted to cause the user device to display simultaneously a second representation of the first data set and a third representation of the second data set is transmitted.
- spreadsheet preview 318 may transmit a request that browser 210 display spreadsheet data set 400 in the first window and preview data set 600 in a second window.
- the second data set is updated based on an input received from the user device.
- Online spreadsheet manager 130 edits and updates preview data set 600 based on the user's specified changes.
- the first data set is updated based on the updated second data set, in response to a second selection of a second option to update the first data set received from the user device.
- spreadsheet data set 400 is updated based on the updated preview data set 600 .
- exemplary embodiments described herein include systems, apparatus, and methods used to provide online spreadsheet data management services and to allow a user to use a preview mode to view and edit spreadsheet data
- these exemplary embodiments are not limiting.
- the systems, apparatus, and methods described herein may be used to provide collaborative online data management services in connection with other types of data, and may be used to allow a user to use a preview mode to view and edit other types of data.
- the systems, apparatus, and methods described herein may be used to provide collaborative online word processing services, and to allow a user to use a preview mode to view and edit text documents and other documents generated and maintained by an online word processing application or system.
- the systems, apparatus, and methods described herein may be used to provide collaborative online data management services pertaining to, and to allow a user to use a preview mode to view and edit, text data, graphical data, slide show data, image data, photographic data, numerical data, data from external databases, etc.
- the method steps described herein including the method steps described in FIGS. 5 and/or 9 , may be performed in an order different from the particular order described or shown. In other embodiments, other steps may be provided, or steps may be eliminated, from the described methods.
- Systems, apparatus, and methods described herein may be implemented using digital circuitry, or using one or more computers using well-known computer processors, memory units, storage devices, computer software, and other components.
- a computer includes a processor for executing instructions and one or more memories for storing instructions and data.
- a computer may also include, or be coupled to, one or more mass storage devices, such as one or more magnetic disks, internal hard disks and removable disks, magneto-optical disks, optical disks, etc.
- Systems, apparatus, and methods described herein may be implemented using computers operating in a client-server relationship.
- the client computers are located remotely from the server computer and interact via a network.
- the client-server relationship may be defined and controlled by computer programs running on the respective client and server computers.
- Systems, apparatus, and methods described herein may be used within a network-based cloud computing system.
- a server or another processor that is connected to a network communicates with one or more client computers via a network.
- a client computer may communicate with the server via a network browser application residing and operating on the client computer, for example.
- a client computer may store data on the server and access the data via the network.
- a client computer may transmit requests for data, or requests for online services, to the server via the network.
- the server may perform requested services and provide data to the client computer(s).
- the server may also transmit data adapted to cause a client computer to perform a specified function, e.g., to perform a calculation, to display specified data on a screen, etc.
- the server may transmit a request adapted to cause a client computer to perform one or more of the method steps described herein, including one or more of the steps of FIGS. 5 and/or 9 .
- Certain steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 may be performed by a server or by another processor in a network-based cloud-computing system.
- Certain steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 may be performed by a client computer in a network-based cloud computing system.
- the steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 may be performed by a server and/or by a client computer in a network-based cloud computing system, in any combination.
- Systems, apparatus, and methods described herein may be implemented using a computer program product tangibly embodied in an information carrier, e.g., in a non-transitory machine-readable storage device, for execution by a programmable processor; and the method steps described herein, including one or more of the steps of FIGS. 5 and/or 9 , may be implemented using one or more computer programs that are executable by such a processor.
- a computer program is a set of computer program instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- Computer 1000 comprises a processor 1001 operatively coupled to a data storage device 1002 and a memory 1003 .
- Processor 1001 controls the overall operation of computer 1000 by executing computer program instructions that define such operations.
- the computer program instructions may be stored in data storage device 1002 , or other computer readable medium, and loaded into memory 1003 when execution of the computer program instructions is desired.
- FIGS. 5 and/or 9 can be defined by the computer program instructions stored in memory 1003 and/or data storage device 1002 and controlled by the processor 1001 executing the computer program instructions.
- Computer 1000 can be implemented as computer executable code programmed by one skilled in the art to perform an algorithm defined by the method steps of FIGS. 5 and/or 9 . Accordingly, by executing the computer program instructions, the processor 1001 executes an algorithm defined by the method steps of FIGS. 5 and/or 9 .
- Computer 1000 also includes one or more network interfaces 1004 for communicating with other devices via a network.
- Computer 1000 also includes one or more input/output devices 1005 that enable user interaction with computer 1000 (e.g., display, keyboard, mouse, speakers, buttons, etc.).
- Processor 1001 may include both general and special purpose microprocessors, and may be the sole processor or one of multiple processors of computer 1000 .
- Processor 1001 may comprise one or more central processing units (CPUs), for example.
- CPUs central processing units
- Processor 1001 , data storage device 1002 , and/or memory 1003 may include, be supplemented by, or incorporated in, one or more application-specific integrated circuits (ASICs) and/or one or more field programmable gate arrays (FPGAs).
- ASICs application-specific integrated circuits
- FPGAs field programmable gate arrays
- Data storage device 1002 and memory 1003 each comprise a tangible non-transitory computer readable storage medium.
- Data storage device 1002 , and memory 1003 may each include high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate synchronous dynamic random access memory (DDR RAM), or other random access solid state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM), digital versatile disc read-only memory (DVD-ROM) disks, or other non-volatile solid state storage devices.
- DRAM dynamic random access memory
- SRAM static random access memory
- DDR RAM double data rate synchronous dynamic random access memory
- non-volatile memory such as
- Input/output devices 1005 may include peripherals, such as a printer, scanner, display screen, etc.
- input/output devices 1005 may include a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user, a keyboard, and a pointing device such as a mouse or a trackball by which the user can provide input to computer 1000 .
- display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user
- keyboard such as a keyboard
- pointing device such as a mouse or a trackball by which the user can provide input to computer 1000 .
- Any or all of the systems and apparatus discussed herein, including online spreadsheet manager 130 , user device 160 , and components thereof, including web browser 210 , display 270 , spreadsheet process 310 , spreadsheet preview 318 , and spreadsheet data repository 325 , may be implemented using a computer such as computer 1000 .
- FIG. 10 is a high level representation of some of the components of such a computer for illustrative purposes.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Access to first data is provided to a first user and to a second user. A specified change is received from the first user. Access to second data generated based on the first user's specified change is provided only to the first user. The first data is updated based on the specified change, in response to a selection by the first user of an option to apply the specified change to the first data. Simultaneous access to the updated first data is provided to the first user and to the second user.
Description
This application is a continuation of U.S. patent application Ser. No. 13/940,785 (currently pending), filed Jul. 12, 2013, and entitled “System and Method for Providing Online Data Management Services,” which is a continuation of U.S. patent application Ser. No. 13/300,792, filed on Nov. 21, 2011, and entitled “System and Method for Providing Online Data Management Services,” which claims the benefit of U.S. Provisional Patent Application No. 61/448,715, filed Mar. 3, 2011, which are hereby incorporated by reference herein.
This specification relates generally to systems and methods for providing online services, and more particularly to systems and methods for providing online data management services.
Online spreadsheet management applications alloy users to create and manipulate spreadsheet data via a network, and maintain the data at a remote location. Current spreadsheet management applications offer many common spreadsheet functions, including formatting, graphing, filtering, etc. In addition, some online spreadsheet management applications facilitate collaboration by allowing multiple users to access a spreadsheet data set simultaneously. Typically, when one of the collaborating users makes a change to the shared spreadsheet data set, the change is made to the data set and can be seen by the other collaborating users.
In accordance with an embodiment of the invention, a method for providing online data management services is provided. Access to first data is provided to a first user and to a second user. For example, the first user and to the second user may be allowed to access the first data simultaneously. A specified change is received from the first user. Access to second data generated based on the first user's specified change is provided only to the first user. The first data is updated based on the specified change, in response to a selection by the first user of an option to apply the specified change to the first data. Simultaneous access to the updated first data is provided to the first user and to the second user.
In one embodiment, access to the first data is provided to the first user via a first network browser operating on a first user device, and access to the first data is provided to the second user via a second network browser operating on a second user device.
In one embodiment, a selection of a preview option is received from the first user, and in response to the selection, access to the second data is provided only to the first user. A request that the first user device display the second data may be transmitted to the first user device. A first request to display the first data in a first window, and a second request to display the second data in a second window, may be transmitted to the first network browser.
The first data may be stored in a first memory location, and the second data may be stored in a second memory location. A first thread associated with the first data, and a second thread associated with the second data, may be maintained.
In one embodiment, filter criteria are received from the first user, and the second data is filtered based on the filter criteria.
The first data may comprise at least one of: spreadsheet data, text data generated by a word processing application, graphical data, image data, and slide show data.
In accordance with another embodiment of the invention, a method for providing online data management services is provided. First information adapted to cause a user device to display a first representation of a first data set maintained by an online document processing service is transmitted. A first selection of a first option to activate a preview mode with respect to the first data set is received, and a second data set is generated based on the first data set; in response to the first selection. Second information adapted to cause the user device to display simultaneously a second representation of the first data set and a third representation of the second data set is transmitted. The second data set is updated based on an input received from the user device, and the first data set is updated based on the updated second data set, in response to a second selection of a second option to update the first data set received from the user device.
In another embodiment of the invention, a graphical user interface is provided, comprising a first region for displaying a representation of a first data set stored at an online data management service. The graphical user interface also comprises a preview mode option for activating a preview mode, wherein a selection of the preview mode option initiates generation of a second data set based on the first data set and a simultaneous display of the first region and a second region for displaying a second representation of the second data set.
In accordance with another embodiment of the invention, an apparatus is provided. The apparatus comprises means for providing simultaneous access to first data to a first user and to a second user, and means for receiving a specified change from the first user. The apparatus further comprises means for providing, only to the first user, access to second data generated based on the first user's specified change. The apparatus also comprises means for updating the first data based on the specified change, in response to a selection by the first user of an option to apply the specified change to the first data.
In accordance with another embodiment of the invention, an apparatus is provided. The apparatus comprises means for transmitting a first request that a user device display a first data set maintained by an online document processing service, means for receiving a first selection of a preview mode with respect to the first data set, and means for generating a second data set based on the first data set, in response to the first selection. The apparatus also comprises means for transmitting at least one second request that the user device display the first data set and the second data set, means for updating the second data set based on an input received from the user device, and means for updating the first data set based on the updated second data set, in response to a second selection of an option to update the first data set received from the user device.
These and other advantages of the present disclosure will be apparent to those of ordinary skill in the art by reference to the following Detailed Description and the accompanying drawings.
In the exemplary embodiment of FIG. 1 , network 105 is the Internet. In other embodiments, network 105 may comprise one or more of a number of different types of networks, such as, for example, an intranet, a local area network (LAN), a wide area network (WAN), a wireless network, a Fibre Channel-based storage area network (SAN), or Ethernet. Other networks may be used. Alternatively, network 105 may comprise a combination of different types of networks.
In accordance with the embodiment of FIG. 1 , a user may access online spreadsheet manager 130 and create and/or edit a spreadsheet data set. For example, a user may employ browser 210 to access a World Wide Web site maintained by online spreadsheet manager 130. The user may be required to authenticate his or her identity, e.g., by entering a user name and password, before accessing his or her user account and spreadsheet data associated with the account.
When a document, such as a spreadsheet data set is created and stored, online spreadsheet manager 130 may grant access rights to one or more users with respect to the spreadsheet data set. For example, certain users may be granted viewing and editing rights while other users are granted viewing rights only. Access to a document may be blocked to users who do not have access rights.
By way of example, suppose that a user wishes to utilize a spreadsheet to record how many points various users have accumulated in a particular game. Accordingly, the user accesses online spreadsheet manager 130 and creates a spreadsheet data set 400, illustrated in FIG. 4 .
In a well-known manner, online spreadsheet manager 130 transmits data causing user device 160 to display a representation of all or a portion of spreadsheet data set 400 on a Web page. For example, online spreadsheet manager 130 may transmit to browser 210 a request, in the form of HyperText Markup Language (HTML), adapted to cause browser 210 to display a representation of spreadsheet data set 400 in a window. In response, browser 210 displays all or a portion of spreadsheet data set 400 in a window 407 shown on display 270. In a conventional manner, browser 210 displays spreadsheet data set 400 as a plurality of cells arranged in rows and columns. Browser 210 also displays a toolbar 415 which may display various available options and/or functions available to the user, such as a file function 417. When the user edits and saves spreadsheet data set 400, the updated spreadsheet data set is stored in spreadsheet data repository 325.
In the present example, the user enters, in rows 421-428, information identifying various users (Users 1-8), and a score associated with each respective user. For example, row 421 identifies “User 1” and indicates that “User1” has accumulated 260 points; row 422 identifies “User 2” and indicates that “User2” has accumulated 1512 points, etc. Referring again to FIG. 3 , online spreadsheet manager 130 stores spreadsheet data set 400 in spreadsheet data repository 325, as shown in FIG. 3 .
As discussed above, multiple users having access rights to spreadsheet data set 400 may log into their respective accounts with online spreadsheet manager 130 and access spreadsheet data set 400 simultaneously. Suppose, for example, that a first user, employing user device 160-A, accesses spreadsheet data set 400, and that a second user, employing user device 160-B, simultaneously accesses spreadsheet data set 400. In this embodiment, both the first and second users have access rights with respect to spreadsheet data set 400 and therefore can view the data in spreadsheet data set 400 on his or her respective display device. For example, each user's Web browser may display spreadsheet data set 400 in a format similar to that shown in FIG. 4 . In one embodiment, online spreadsheet manager 130 transmits a first request (or other data) adapted to cause user device 160-A to display spreadsheet data set 400, and a second request (or other data) adapted to cause user device 160-B to display spreadsheet data set 400. The first user may then view spreadsheet data set 400 in window 407 displayed on user device 160-A, and the second user may view spreadsheet data set 400 in a similar window displayed on user device 160-B.
Suppose now that the first user wishes to make changes to spreadsheet data set 400, but does not want the changes to become permanent and does not want the second user to be able to view the changes. For example, the first user may wish to make a change to the data in a spreadsheet cell and test how the change affects data stored in other cells in the spreadsheet. In accordance with various embodiments, the first user may choose to view and edit a spreadsheet data set using a preview mode which allows only that user to view the user's edits.
In one embodiment, online spreadsheet manager 130 establishes and maintains a first data model associated with spreadsheet data set 400. All collaborating users can view, share, and edit the first data model. When a particular user selects an option to enter a preview mode, a “branch” of the first data model is created and stored separately. The “branch” of the first data model may be viewed and manipulated by the particular user as a personal preview data model. Only that particular user has access to and can view changes made to his or her personal preview data model. Subsequently, that particular user may apply any changes made to the personal preview model to the first data model, if he or she wishes. Alternatively, that particular user may delete the personal preview data model, or store the updated personal preview data model as a separate data model or file, without affecting the first data model.
A user may now select an option to enter a preview mode, in which the user may view and edit the spreadsheet data in spreadsheet data set 400 without the changes being visible to other users. In the illustrative embodiment, the first user selects a preview mode option while viewing spreadsheet data set 400 in window 407. Referring to FIG. 4 , the first user right-clicks on a computer mouse, and in response, browser 210 displays an options menu 490 that includes a preview mode option 492. When the first user selects preview mode option 492, browser 210 transmits the user's selection to online spreadsheet manager 130.
Based on the first user's selection of the option to enter the preview mode, online spreadsheet manager 130 generates a separate data set that comprises the data in spreadsheet data set 400 and is accessible only to the first user. In the illustrative embodiment, in response to the first user's selection of preview mode option 492, spreadsheet preview 318 generates a copy of the information in spreadsheet data set 400, and saves the copy in spreadsheet data repository 325 as preview data set 600, as shown in FIG. 3 . In one embodiment, spreadsheet data set 400 is stored in a first memory location and preview data set 600 is stored in a second memory location. Online spreadsheet manager 130 grants to the first user access rights with respect to preview data set 600, including viewing and editing rights, for example, while other users are granted no access rights with respect to preview data set 600. Other techniques may be used to store and maintain spreadsheet data set 400 and preview data set 600.
While in this illustrative embodiment the first user employs a computer mouse to select a preview mode from a menu, in other embodiments other techniques may be used to select and activate a preview mode.
To allow the first user to view preview data set 600, spreadsheet preview 318 transmits to user device 160-A a request, or other data, adapted to cause browser 210 to display a representation of preview data set 600. For example, online spreadsheet manager 130 may request that browser 210 display spreadsheet data set 400 in a first window and display preview data set 600 in a second window. Referring to FIG. 6 , browser 210 responds by continuing to display spreadsheet data set 400 in first window 407, and by opening a second, preview window 607 on display 270 and displaying preview data set 600 in the preview window. All or a portion of preview data set 600 may be displayed in preview window 607. In this example, window 407, showing spreadsheet data set 400, is open in the background of display 270.
When browser 210 opens preview window 607 and displays preview data set 600, the information in preview data set 600 is the same as the information in spreadsheet data set 400. Referring to FIG. 6 , row 621 of preview data set 600 corresponds to, and contains the same information (User 1, 260 points), as row 421 of spreadsheet data set 400; row 622 of preview data set 600 corresponds to, and contains the same information (User 2, 1512 points), as row 422 of spreadsheet data set 400, etc.
Suppose now that the first user wishes to make one or more desired changes to the information in preview data set 600. Suppose further that the first user does not want the second user to see the changes. In accordance with the exemplary embodiment, the first user may make changes to the information in preview data set 600 within preview window 607. Changes made by the first user to preview data set 600 are not seen by other users, and do not affect the information in spreadsheet data set 400, unless the first user selects an option to apply the changes to spreadsheet data set 400. As discussed above, while first user has access rights to preview data set 600, including viewing and editing rights, other users have no access rights with respect to preview data set 600.
Referring to FIG. 7A , the first user first changes the number of points associated with User 2, shown in row 622, from “1512” to “1525.” In other embodiments, a user may make other types of changes to a preview data set. For example, a user may insert information into a spreadsheet cell, delete information from a spreadsheet cell, insert text into a document, delete text from a document, perform a selected filter operation with respect to data in a spreadsheet or other document, add or remove an image in a document, etc.
At step 520, spreadsheet preview 310 receives the information reflecting the first user's specified change and updates preview data set 600 in spreadsheet data repository 325. As discussed above, spreadsheet process 310 may also update certain cells in preview data set 600 based on the first user's change. For example, spreadsheet process 310 may update another row containing a value that is determined based on the information in row 622.
In another embodiment, user device 160 may perform certain calculations and other data processing associated with updating the information in preview data set 600, including updating other rows, columns, and cells affected by the first user's specified change. In this embodiment, user device 160 may transmit to online spreadsheet manager 130 information reflecting the first user's specified change and other changes made to preview data set 600 as a result of the change. Such calculations may be made by an appropriate application (not shown) residing on user device 160, for example. Spreadsheet process 310 updates preview data set 600 based on the information received from user device 160.
At step 530, access to second spreadsheet data comprising second data generated based on the first user's specified change is provided only to the first user. Online spreadsheet manager 130 transmits a request, or other data, adapted to cause browser 210 (on user device 160-A) to display the updated version of preview data set 600 in preview window 607. In response, browser 210 (on user device 160-A) displays the updated version of preview data set 600 in preview window 607 on display 270, as shown in FIG. 7A . Row 622 of preview data set 600 now contains the updated point value “1525.” The data in rows 421-428 of spreadsheet data set 400, seen in window 407 on display 270, remain unchanged.
In one embodiment, spreadsheet data set 400 and preview data set 600 are made available to the first user as separate tabs in a spreadsheet application. When the first user selects a first tab, spreadsheet data set 400 is displayed. When the first user selects a second tab, preview data set 600 is displayed. Other methods for displaying spreadsheet data set 400 and preview data set 600 may be used.
While the first user views and edits preview data set 600 in preview window 607, the second user, having no access rights with respect to preview data set 600, cannot view or otherwise access preview data set 600. Online spreadsheet manager 130 does not transmit to user device 160-B any request, or other data, relating to preview data set 600.
Suppose now that the first user wishes to filter the data in preview data set 600. Referring to FIG. 7A , the first user right-clicks on a computer mouse to obtain an options menu 790, which contains a filter data option 791 and a save changes option 792. Wishing to filter preview data set 600, the user selects filter data option 791. In the illustrative example, the first user wishes to remove from preview data set all users who have accumulated less than fifty (50) points. In a well-known manner, the first user may cause a filter criteria window (not shown) to appear on display 270, and enter one or more filter criteria. Browser 210 transmits the user's filter criteria to online spreadsheet manager 130.
In this example, online spreadsheet manager 130 receives the first user's desired filter criteria, and spreadsheet process 310 filters preview data set 600 in accordance with the filter criteria. In this example, the rows pertaining to User 6 and User 7 are removed from preview data set 600 because User 6 and User 7 have each accumulated less than fifty points. Spreadsheet preview 318 updates preview data set 600 in spreadsheet data repository 325 to reflect the filtered results. In other embodiments, other types of data models associated with preview data set 600 may be updated to reflect the changes.
Suppose now that, after making several desired changes to preview data set 600, the first user wishes to apply the changes to spreadsheet data set 400 so that the changes become permanent, and so that the second user can view the changes. Referring again to FIG. 7B , the first user right-clicks on a computer mouse, and in response, browser 210 again displays options menu 790. The first user now selects save changes option 792, and browser 210 transmits the user's selection to online spreadsheet manager 130.
At step 540, the first spreadsheet data is updated based on the specified change, in response to a selection by the first user of an option to apply the desired change to the first spreadsheet data. In the present example, in response to the user's selection, spreadsheet preview 318 updates spreadsheet data set 400 to include the changes made by the first user. Updated spreadsheet data set 400 is saved in spreadsheet data repository 325. In other embodiments, other types of data models associated with spreadsheet data set 400 may be updated to reflect the changes made by the first user. Online spreadsheet manager 130 transmits a request, or other data adapted to cause browser 210 to display updated spreadsheet data set 400. In response, browser 210 displays all or a portion of updated spreadsheet data set 400.
In the present example, the first user exits preview mode by, for example, closing preview window 607, and views updated spreadsheet data set 400 in window 407, as shown in FIG. 8 . Updated spreadsheet data set 400 includes updated row 422, which now indicates that User 2 has accumulated 1525 points. The information in updated spreadsheet data set 400 has also been filtered based on the first user's filter criteria. Specifically, updated spreadsheet data set 400 includes rows 421-425 and row 428, but does not include rows 426 or 427.
Updated spreadsheet data set 400 is also displayed to the second user. Specifically, online spreadsheet manager 130 transmits to user device 160-B a request, or other data, adapted to cause user device 160-B to display updated spreadsheet data set 400. In response, user device 160-B displays all or a portion of updated spreadsheet data set 400 to the second user.
If the first user makes desired changes to preview data set 600 and then decides that he or she does not wish to apply the changes to spreadsheet data set 400, the first user may store preview data set 600 as a separate spreadsheet data set. For example, the first user may select an option to save preview data set 600 as a new spreadsheet data set, or as a new file; the new spreadsheet data set is then saved in a separate memory location in spreadsheet data repository 325. The first user may alternatively choose to delete preview data set 600.
At step 920, a first selection of a first option to activate a preview mode with respect to the first data set is received. As discussed above, online spreadsheet manager 130 may receive a user's selection of preview mode option 492. At step 930, a second data set based on the first data set is generated in response to the first selection. Online spreadsheet manager 130 generates preview data set 600. At step 940, second information adapted to cause the user device to display simultaneously a second representation of the first data set and a third representation of the second data set is transmitted. As discussed above, spreadsheet preview 318 may transmit a request that browser 210 display spreadsheet data set 400 in the first window and preview data set 600 in a second window.
At step 950, the second data set is updated based on an input received from the user device. Online spreadsheet manager 130 edits and updates preview data set 600 based on the user's specified changes. At step 960, the first data set is updated based on the updated second data set, in response to a second selection of a second option to update the first data set received from the user device. When the user selects save changes option 792, spreadsheet data set 400 is updated based on the updated preview data set 600.
While the exemplary embodiments described herein include systems, apparatus, and methods used to provide online spreadsheet data management services and to allow a user to use a preview mode to view and edit spreadsheet data, these exemplary embodiments are not limiting. The systems, apparatus, and methods described herein may be used to provide collaborative online data management services in connection with other types of data, and may be used to allow a user to use a preview mode to view and edit other types of data. For example, the systems, apparatus, and methods described herein may be used to provide collaborative online word processing services, and to allow a user to use a preview mode to view and edit text documents and other documents generated and maintained by an online word processing application or system. The systems, apparatus, and methods described herein may be used to provide collaborative online data management services pertaining to, and to allow a user to use a preview mode to view and edit, text data, graphical data, slide show data, image data, photographic data, numerical data, data from external databases, etc.
In various embodiments, the method steps described herein, including the method steps described in FIGS. 5 and/or 9 , may be performed in an order different from the particular order described or shown. In other embodiments, other steps may be provided, or steps may be eliminated, from the described methods.
Systems, apparatus, and methods described herein may be implemented using digital circuitry, or using one or more computers using well-known computer processors, memory units, storage devices, computer software, and other components. Typically, a computer includes a processor for executing instructions and one or more memories for storing instructions and data. A computer may also include, or be coupled to, one or more mass storage devices, such as one or more magnetic disks, internal hard disks and removable disks, magneto-optical disks, optical disks, etc.
Systems, apparatus, and methods described herein may be implemented using computers operating in a client-server relationship. Typically, in such a system, the client computers are located remotely from the server computer and interact via a network. The client-server relationship may be defined and controlled by computer programs running on the respective client and server computers.
Systems, apparatus, and methods described herein may be used within a network-based cloud computing system. In such a network-based cloud computing system, a server or another processor that is connected to a network communicates with one or more client computers via a network. A client computer may communicate with the server via a network browser application residing and operating on the client computer, for example. A client computer may store data on the server and access the data via the network. A client computer may transmit requests for data, or requests for online services, to the server via the network. The server may perform requested services and provide data to the client computer(s). The server may also transmit data adapted to cause a client computer to perform a specified function, e.g., to perform a calculation, to display specified data on a screen, etc. For example, the server may transmit a request adapted to cause a client computer to perform one or more of the method steps described herein, including one or more of the steps of FIGS. 5 and/or 9 . Certain steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 , may be performed by a server or by another processor in a network-based cloud-computing system. Certain steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 , may be performed by a client computer in a network-based cloud computing system. The steps of the methods described herein, including one or more of the steps of FIGS. 5 and/or 9 , may be performed by a server and/or by a client computer in a network-based cloud computing system, in any combination.
Systems, apparatus, and methods described herein may be implemented using a computer program product tangibly embodied in an information carrier, e.g., in a non-transitory machine-readable storage device, for execution by a programmable processor; and the method steps described herein, including one or more of the steps of FIGS. 5 and/or 9 , may be implemented using one or more computer programs that are executable by such a processor. A computer program is a set of computer program instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
A high-level block diagram of an exemplary computer that may be used to implement systems, apparatus and methods described herein is illustrated in FIG. 10 . Computer 1000 comprises a processor 1001 operatively coupled to a data storage device 1002 and a memory 1003. Processor 1001 controls the overall operation of computer 1000 by executing computer program instructions that define such operations. The computer program instructions may be stored in data storage device 1002, or other computer readable medium, and loaded into memory 1003 when execution of the computer program instructions is desired. Thus, the method steps of FIGS. 5 and/or 9 can be defined by the computer program instructions stored in memory 1003 and/or data storage device 1002 and controlled by the processor 1001 executing the computer program instructions. For example, the computer program instructions can be implemented as computer executable code programmed by one skilled in the art to perform an algorithm defined by the method steps of FIGS. 5 and/or 9 . Accordingly, by executing the computer program instructions, the processor 1001 executes an algorithm defined by the method steps of FIGS. 5 and/or 9 . Computer 1000 also includes one or more network interfaces 1004 for communicating with other devices via a network. Computer 1000 also includes one or more input/output devices 1005 that enable user interaction with computer 1000 (e.g., display, keyboard, mouse, speakers, buttons, etc.).
Input/output devices 1005 may include peripherals, such as a printer, scanner, display screen, etc. For example, input/output devices 1005 may include a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user, a keyboard, and a pointing device such as a mouse or a trackball by which the user can provide input to computer 1000.
Any or all of the systems and apparatus discussed herein, including online spreadsheet manager 130, user device 160, and components thereof, including web browser 210, display 270, spreadsheet process 310, spreadsheet preview 318, and spreadsheet data repository 325, may be implemented using a computer such as computer 1000.
One skilled in the art will recognize that an implementation of an actual computer or computer system may have other structures and may contain other components as well, and that FIG. 10 is a high level representation of some of the components of such a computer for illustrative purposes.
The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.
Claims (24)
1. A method for providing online data management services, the method comprising:
providing concurrent access to first data to a first user account associated with a first user and to a second user account associated with a second user, wherein providing the concurrent access to the first data comprises allowing the first user and the second user to edit the first data;
receiving, at a server from a first user device of the first user, a specified change to second data that is a copy of the first data, wherein the specified change to the second data is associated with a filter comprising one or more filter criteria, wherein the first data and the second data are both accessible to the first user account, and wherein the first data but not the second data is accessible to the second user account for editing by the second user;
updating the first data based on the specified change, in response to a selection by the first user device of an update option that is available to the first user account; and
providing concurrent access to the updated first data to the first user account and to the second user account.
2. The method of claim 1 , wherein the one or more filter criteria are selected by the first user device.
3. The method of claim 2 , further comprising:
receiving the one or more filter criteria from the first user device;
applying the filter to the second data to obtain updated second data; and
displaying the updated second data to the first user device.
4. The method of claim 3 , wherein applying the filter to the second data comprises removing a portion of the second data that does not meet the one or more filter criteria, and keeping another portion of the second data that meets the one or more filter criteria.
5. The method of claim 2 , wherein the first data is unchanged when the filter is applied to the second data.
6. The method of claim 1 , further comprising:
providing an alternative option to the first user device, wherein in response to the first user device selecting the alternative option, the first data is not updated based on the specified change.
7. The method of claim 6 , wherein when the first user device selects the alternative option, the first user device selects between storing the second data including the specified change as a third data and deleting the second data including the specified change.
8. The method of claim 1 , wherein the updated first data corresponds to the second data including the specified change, the method further comprising:
displaying the updated first data to a second user device of the second user.
9. The method of claim 1 , wherein the change comprises at least one of: an insertion of information in a spreadsheet cell defined by the one or more filter criteria, a deletion of information in a spreadsheet cell defined by the one or more filter criteria, an insertion of text in a document as defined by the one or more filter criteria, a deletion of text in a document as defined by the one or more filter criteria, or a selected filter operation with respect to data in a spreadsheet as defined by the one or more filter criteria.
10. The method of claim 1 , further comprising providing the second data to the first user device in response to receiving, from the first user device, a selection of a preview option with respect to the first data, wherein the preview option activates a preview mode that allows the first user device to make the specified change to the second data without modifying the first data that is provided to a second user device of the second user.
11. A non-transitory computer readable medium having program instructions stored thereon, that, in response to execution by a processor, cause the processor to perform operations comprising:
providing concurrent access to first data to a first user account associated with a first user and to a second user account associated with a second user, wherein providing the concurrent access to the first data comprises allowing the first user and the second user to edit the first data;
receiving from a first user device of the first user a specified change to second data that is a copy of the first data, wherein the specified change to the second data is associated with a filter comprising one or more filter criteria, wherein the first data and the second data are both accessible to the first user account, and wherein the first data but not the second data is accessible to the second user account for editing by the second user;
updating the first data based on the specified change, in response to a selection by the first user device of an update option that is available to the first user account; and
providing concurrent access to the updated first data to the first user account and to the second user account.
12. The non-transitory computer readable medium of claim 11 , wherein the one or more filter criteria are selected by the first user device.
13. The non-transitory computer readable medium of claim 12 , wherein the operations further comprise:
receiving the one or more filter criteria from the first user device;
applying the filter to the second data to obtain updated second data; and
displaying the updated second data to the first user device.
14. The non-transitory computer readable medium of claim 13 , wherein applying the filter to the second data comprises removing a portion of the second data that does not meet the one or more filter criteria, and keeping another portion of the second data that meets the one or more filter criteria.
15. The non-transitory computer readable medium of claim 12 , wherein the first data is unchanged when the filter is applied to the second data.
16. The non-transitory computer readable medium of claim 11 , wherein the operations further comprise:
providing an alternative option to the first user device, wherein in response to the first user device selecting the alternative option, the first data is not updated based on the specified change.
17. The non-transitory computer readable medium of claim 16 , wherein when the first user device selects the alternative option, the first user device selects between storing the second data including the specified change as a third data and deleting the second data including the specified change.
18. The non-transitory computer readable medium of claim 11 , wherein the updated first data corresponds to the second data including the specified change, the operations further comprising displaying the updated first data to a second user device of the second user.
19. The non-transitory computer readable medium of claim 11 , wherein the change comprises at least one of: an insertion of information in a spreadsheet cell defined by the one or more filter criteria, a deletion of information in a spreadsheet cell defined by the one or more filter criteria, an insertion of text in a document as defined by the one or more filter criteria, a deletion of text in a document as defined by the one or more filter criteria, or a selected filter operation with respect to data in a spreadsheet as defined by the one or more filter criteria.
20. The non-transitory computer readable medium of claim 11 , wherein the operations further comprise providing the second data to the first user account in response to receiving, from the first user device, a selection of a preview option with respect to the first data, wherein the preview option activates a preview mode that allows the first user account to make the specified change to the second data without modifying the first data that is provided to the second user account.
21. A system for providing online data management services, the system comprising:
a memory; and
a processor, coupled to the memory, to:
provide concurrent access to first data to a first user account associated with a first user and to a second user account associated with a second user, wherein providing the concurrent access to the first data comprises allowing the first user and the second user to edit the first data;
receive, at a server from a first user device of the first user, a specified change to second data that is a copy of the first data, wherein the specified change to the second data is associated with a filter comprising one or more filter criteria, wherein the first data and the second data are both accessible to the first user account, and wherein the first data but not the second data is accessible to the second user account for editing by the second user;
update the first data based on the specified change, in response to a selection by the first user device of an update option that is available to the first user account; and
provide concurrent access to the updated first data to the first user account and to the second user account.
22. The system of claim 21 , wherein the processor is further to:
provide an alternative option to the first user device, wherein in response to the first user device selecting the alternative option, the first data is not updated based on the specified change.
23. The system of claim 21 , wherein the change comprises at least one of: an insertion of information in a spreadsheet cell defined by the one or more filter criteria, a deletion of information in a spreadsheet cell defined by the one or more filter criteria, an insertion of text in a document as defined by the one or more filter criteria, a deletion of text in a document as defined by the one or more filter criteria, or a selected filter operation with respect to data in a spreadsheet as defined by the one or more filter criteria.
24. The system of claim 21 , wherein the processor is further to provide the second data to the first user device in response to receiving, from the first user device, a selection of a preview option with respect to the first data, wherein the preview option activates a preview mode that allows the first user device to make the specified change to the second data without modifying the first data that is provided to a second user device of the second user.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/795,679 US10169401B1 (en) | 2011-03-03 | 2015-07-09 | System and method for providing online data management services |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161448715P | 2011-03-03 | 2011-03-03 | |
| US13/300,792 US8510266B1 (en) | 2011-03-03 | 2011-11-21 | System and method for providing online data management services |
| US13/940,785 US9092413B1 (en) | 2011-03-03 | 2013-07-12 | System and method for providing online data management services |
| US14/795,679 US10169401B1 (en) | 2011-03-03 | 2015-07-09 | System and method for providing online data management services |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/940,785 Continuation US9092413B1 (en) | 2011-03-03 | 2013-07-12 | System and method for providing online data management services |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US10169401B1 true US10169401B1 (en) | 2019-01-01 |
Family
ID=48916751
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/300,792 Active US8510266B1 (en) | 2011-03-03 | 2011-11-21 | System and method for providing online data management services |
| US13/940,785 Active US9092413B1 (en) | 2011-03-03 | 2013-07-12 | System and method for providing online data management services |
| US14/795,679 Active US10169401B1 (en) | 2011-03-03 | 2015-07-09 | System and method for providing online data management services |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/300,792 Active US8510266B1 (en) | 2011-03-03 | 2011-11-21 | System and method for providing online data management services |
| US13/940,785 Active US9092413B1 (en) | 2011-03-03 | 2013-07-12 | System and method for providing online data management services |
Country Status (1)
| Country | Link |
|---|---|
| US (3) | US8510266B1 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111428451A (en) * | 2020-06-09 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | Text online editing method and device, electronic equipment and storage medium |
| US20230328122A1 (en) * | 2022-04-07 | 2023-10-12 | Sigma Computing, Inc. | Live editing a workbook with multiple clients |
| US12236188B2 (en) | 2022-04-07 | 2025-02-25 | Sigma Computing, Inc. | Resolving live edit conflicts |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9313288B2 (en) * | 2013-06-05 | 2016-04-12 | International Business Machines Corporation | Notification of a change to user selected content |
| US9588954B2 (en) * | 2013-06-15 | 2017-03-07 | Microsoft Technology Licensing, Llc | Application/document collaboration in a multi-device environment |
| US20150193405A1 (en) * | 2014-01-07 | 2015-07-09 | Microsoft Corporation | Enhanced testing for application services |
| US11157688B2 (en) * | 2014-03-14 | 2021-10-26 | Microsoft Technology Licensing, Llc | Enhanced indicators for identifying affected data |
| US11030385B2 (en) * | 2015-03-30 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enhanced preview technology for application add-ins |
| US9817876B2 (en) | 2015-06-29 | 2017-11-14 | Planisware SAS | Enhanced mechanisms for managing multidimensional data |
| US10713428B2 (en) | 2015-11-02 | 2020-07-14 | Microsoft Technology Licensing, Llc | Images associated with cells in spreadsheets |
| US9990349B2 (en) | 2015-11-02 | 2018-06-05 | Microsoft Technology Licensing, Llc | Streaming data associated with cells in spreadsheets |
| US10216494B2 (en) | 2016-12-03 | 2019-02-26 | Thomas STACHURA | Spreadsheet-based software application development |
| US10540153B2 (en) | 2016-12-03 | 2020-01-21 | Thomas STACHURA | Spreadsheet-based software application development |
| US11726753B2 (en) | 2016-12-03 | 2023-08-15 | Thomas STACHURA | Spreadsheet-based software application development |
| US10872062B2 (en) * | 2017-10-27 | 2020-12-22 | Dropbox, Inc. | Moderated collaborative editing in collaborative content items |
| US20190370321A1 (en) * | 2018-06-01 | 2019-12-05 | Gianluca Bisceglie | Systems and methods for secure and interactive layer based presentation of spreadsheet sections |
| US12197458B1 (en) | 2021-11-11 | 2025-01-14 | Sigma Computing, Inc. | Generating edited input tables for low-latency presentation |
| US12481671B2 (en) * | 2021-11-11 | 2025-11-25 | Sigma Computing, Inc. | Editing data-warehouse tables using managed input tables |
| US12248459B2 (en) | 2021-11-11 | 2025-03-11 | Sigma Computing, Inc. | Versioning in editable tables |
Citations (148)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4889439A (en) | 1988-01-29 | 1989-12-26 | International Business Machines Corporation | Automatic page end feature for an electronic typewriter |
| US5111397A (en) | 1989-12-11 | 1992-05-05 | Wang Laboratories, Inc. | Managing lengthy footnotes in a work processing document |
| US5167013A (en) | 1990-09-28 | 1992-11-24 | Xerox Corporation | User definable font substitutions with equivalency indicators |
| US5185818A (en) | 1991-06-05 | 1993-02-09 | Adobe Systems Incorporated | Method of substituting fonts and displaying characters |
| US5214755A (en) | 1989-04-25 | 1993-05-25 | Microsoft Corporation | Document processing method and system |
| US5379373A (en) | 1990-06-15 | 1995-01-03 | Fuji Xerox Co., Ltd. | Document layout processing method and device for carrying out the same |
| US5381523A (en) | 1992-04-06 | 1995-01-10 | Fuji Xerox Co., Ltd. | Document processing device using partial layout templates |
| US5528743A (en) | 1993-05-27 | 1996-06-18 | Apple Computer, Inc. | Method and apparatus for inserting text on a pen-based computer system |
| US5675788A (en) | 1995-09-15 | 1997-10-07 | Infonautics Corp. | Method and apparatus for generating a composite document on a selected topic from a plurality of information sources |
| US5694609A (en) | 1993-08-31 | 1997-12-02 | Fuji Xerox Co., Ltd. | Document processing apparatus for processing a structured document using embedding nodes and mold nodes |
| US5825987A (en) | 1995-07-19 | 1998-10-20 | Fuji Xerox Co., Ltd. | Character output device |
| US5859648A (en) | 1993-06-30 | 1999-01-12 | Microsoft Corporation | Method and system for providing substitute computer fonts |
| US5860073A (en) | 1995-07-17 | 1999-01-12 | Microsoft Corporation | Style sheets for publishing system |
| US5895476A (en) | 1996-09-09 | 1999-04-20 | Design Intelligence, Inc. | Design engine for automatic reformatting for design and media |
| US5930813A (en) | 1995-12-21 | 1999-07-27 | Adobe Systems Incorporated | Method and system for designating objects |
| US5956736A (en) | 1996-09-27 | 1999-09-21 | Apple Computer, Inc. | Object-oriented editor for creating world wide web documents |
| US6006239A (en) | 1996-03-15 | 1999-12-21 | Microsoft Corporation | Method and system for allowing multiple users to simultaneously edit a spreadsheet |
| US6025836A (en) | 1997-07-23 | 2000-02-15 | Novell, Inc. | Method and apparatus for generating object oriented user interfaces |
| US6073147A (en) | 1997-06-10 | 2000-06-06 | Apple Computer, Inc. | System for distributing font resources over a computer network |
| US6169999B1 (en) | 1997-05-30 | 2001-01-02 | Matsushita Electric Industrial Co., Ltd. | Dictionary and index creating system and document retrieval system |
| US6185591B1 (en) | 1997-07-29 | 2001-02-06 | International Business Machines Corp. | Text edit system with enhanced undo user interface |
| US20010004256A1 (en) | 1999-12-21 | 2001-06-21 | Satoshi Iwata | Display system, display control method and computer readable medium storing display control program code |
| US6275223B1 (en) | 1998-07-08 | 2001-08-14 | Nortel Networks Limited | Interactive on line code inspection process and tool |
| US6279151B1 (en) | 1998-01-20 | 2001-08-21 | International Business Machines Corporation | Method and apparatus for remote source code inclusion |
| US20020010725A1 (en) | 2000-03-28 | 2002-01-24 | Mo Lawrence Wai Ming | Internet-based font server |
| US20020023110A1 (en) | 1998-01-23 | 2002-02-21 | Ronald E. Fortin | Document markup language and system and method for generating and displaying documents therein |
| US6377354B1 (en) | 1998-09-21 | 2002-04-23 | Microsoft Corporation | System and method for printing a document having merged text and graphics contained therein |
| US20020129054A1 (en) | 2000-07-11 | 2002-09-12 | Ferguson Charles H. | Method and system for integrating network-based functionality into productivity applications employing spreadsheets |
| US20020143780A1 (en) * | 2000-11-04 | 2002-10-03 | Gorman John G. | System and method for filtering and sorting data |
| US6512531B1 (en) | 1999-04-09 | 2003-01-28 | Adobe Systems Incorporated | Font navigation tool |
| US20030061349A1 (en) | 2001-09-24 | 2003-03-27 | George Lo | Method and system for collaboratively developing programming code for programmable controllers |
| US6564246B1 (en) * | 1999-02-02 | 2003-05-13 | International Business Machines Corporation | Shared and independent views of shared workspace for real-time collaboration |
| US20030115268A1 (en) | 2001-12-17 | 2003-06-19 | Nicolas Esposito | Conflict resolution for collaborative work system |
| US20030179230A1 (en) | 2002-03-25 | 2003-09-25 | Gerry Seidman | Method and apparatus for providing remote peer-to-peer collaborative user interfaces |
| US6636889B1 (en) | 2000-01-04 | 2003-10-21 | International Business Machines Corporation | System and method for client replication of collaboration space |
| US6681369B2 (en) * | 1999-05-05 | 2004-01-20 | Xerox Corporation | System for providing document change information for a community of users |
| US20040015781A1 (en) | 2002-07-17 | 2004-01-22 | Brown Mark L. | Background document rendering system and mehod |
| US6717593B1 (en) | 2000-09-12 | 2004-04-06 | Avaya Technology Corp. | Mark-up language implementation of graphical or non-graphical user interfaces |
| US20040107296A1 (en) | 2002-12-02 | 2004-06-03 | International Business Machines Corporation | System and method for accessing content of a web page |
| US20040172423A1 (en) | 2003-02-28 | 2004-09-02 | Microsoft Corporation | Method and system for synchronizing data shared among peer computing devices |
| US20040194028A1 (en) | 2002-11-18 | 2004-09-30 | O'brien Stephen | Method of formatting documents |
| US20040205538A1 (en) | 2001-04-05 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for online integration of offline document correction |
| US20040220977A1 (en) * | 2000-05-30 | 2004-11-04 | Cho Charles J. | Method and system for facilitating information exchange |
| US20040239700A1 (en) | 2003-03-17 | 2004-12-02 | Baschy Leo Martin | User interface driven access control system and method |
| US20050034068A1 (en) | 2001-02-15 | 2005-02-10 | Denny Jaeger | System and method for editing an electronic document of text and graphic objects |
| US20050039123A1 (en) | 2003-08-14 | 2005-02-17 | Kuchinsky Allan J. | Method and system for importing, creating and/or manipulating biological diagrams |
| US6879997B1 (en) | 2000-11-27 | 2005-04-12 | Nokia Corporation | Synchronously shared online documents |
| US20050102370A1 (en) | 2003-10-23 | 2005-05-12 | Yun Lin | Truth on client persistent caching |
| US6898642B2 (en) * | 2000-04-17 | 2005-05-24 | International Business Machines Corporation | Synchronous collaboration based on peer-to-peer communication |
| US20050177805A1 (en) | 2004-02-11 | 2005-08-11 | Lynch Michael R. | Methods and apparatuses to generate links from content in an active window |
| US20050188051A1 (en) | 2003-12-19 | 2005-08-25 | Iftah Sneh | System and method for providing offline web application, page, and form access in a networked environment |
| US20050216504A1 (en) | 2004-03-16 | 2005-09-29 | Julien Delvat | Methods, computer program products and data processing systems for displaying a plurality of data objects |
| US20050234943A1 (en) | 2004-04-20 | 2005-10-20 | Microsoft Corporation | Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems |
| US6972748B1 (en) | 2000-08-31 | 2005-12-06 | Microsoft Corporation | J-key input for computer systems |
| US7009626B2 (en) | 2000-04-14 | 2006-03-07 | Picsel Technologies Limited | Systems and methods for generating visual representations of graphical data and digital document processing |
| US20060053196A1 (en) | 2004-09-03 | 2006-03-09 | Spataro Jared M | Systems and methods for collaboration |
| US20060136511A1 (en) * | 2004-12-21 | 2006-06-22 | Nextpage, Inc. | Storage-and transport-independent collaborative document-management system |
| US7069541B2 (en) | 2002-03-01 | 2006-06-27 | Bellsouth Intellectual Property Corporation | System and method for a web-based application development and deployment tracking tool |
| US20060195784A1 (en) | 2005-02-28 | 2006-08-31 | Nokia Corporation | Presentation of large objects on small displays |
| US7106469B2 (en) | 2001-08-08 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Variable data printing with web based imaging |
| US20060206814A1 (en) | 1999-08-05 | 2006-09-14 | Fujitsu Limited | Electronic document creation support apparatus and an electronic document creation support data component creating apparatus |
| US20060265639A1 (en) | 2005-05-18 | 2006-11-23 | Microsoft Corporation | Memory optimizing fo re-ordering user edits |
| US20070094601A1 (en) | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Systems, methods and tools for facilitating group collaborations |
| US20070118797A1 (en) | 2003-08-29 | 2007-05-24 | Paul Layzell | Constrained document layout |
| US7231597B1 (en) | 2002-10-07 | 2007-06-12 | Microsoft Corporation | Method, apparatus, and computer-readable medium for creating asides within an electronic document |
| US7233951B1 (en) * | 2004-02-18 | 2007-06-19 | Microsoft Corporation | Spreadsheet grid-like control for a web-based collaboration system |
| US7257767B1 (en) | 1999-02-09 | 2007-08-14 | Carden Jr William T | System and method for publishing documents |
| US20070233811A1 (en) * | 2006-03-31 | 2007-10-04 | Jonathan Rochelle | Collaborative online spreadsheet application |
| US20070239695A1 (en) | 2006-04-10 | 2007-10-11 | Al Chakra | Transient storage in distributed collaborative computing environments |
| US7284199B2 (en) | 2000-03-29 | 2007-10-16 | Microsoft Corporation | Process of localizing objects in markup language documents |
| US20080033996A1 (en) | 2006-08-03 | 2008-02-07 | Anandsudhakar Kesari | Techniques for approximating the visual layout of a web page and determining the portion of the page containing the significant content |
| US20080082938A1 (en) | 2006-10-03 | 2008-04-03 | Tomasz Buczek | System and method for freezing columns and rows in a ui table |
| US20080092066A1 (en) | 2000-09-30 | 2008-04-17 | Microsoft Corporation | Extensible markup language rendering and layout |
| US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
| CN101179572A (en) | 2007-10-12 | 2008-05-14 | 华为技术有限公司 | Method, device and system for copying content |
| US7386535B1 (en) | 2002-10-02 | 2008-06-10 | Q.Know Technologies, Inc. | Computer assisted and/or implemented method for group collarboration on projects incorporating electronic information |
| US20080201449A1 (en) | 2007-02-16 | 2008-08-21 | Esobi Inc. | Method and system for updating rss feeds |
| JP2008262449A (en) | 2007-04-13 | 2008-10-30 | Fuji Xerox Co Ltd | Document management device and document processing program |
| US7467192B1 (en) * | 2000-06-07 | 2008-12-16 | Cisco Technology, Inc. | Online standardized contract configuration for service level agreement monitoring |
| US20090006936A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Collaborative document authoring |
| US7487448B2 (en) | 2004-04-30 | 2009-02-03 | Microsoft Corporation | Document mark up methods and systems |
| US7516114B2 (en) | 2004-10-22 | 2009-04-07 | International Business Machines Corporation | Visual structuring of multivariable data |
| US7519630B2 (en) | 2002-12-16 | 2009-04-14 | Dell Products L.P. | Method and system for automated testing of versioned information handling system applications |
| US20090112937A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Spreadsheet collaboration between rich and browser clients |
| US20090125518A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative Authoring |
| US20090187815A1 (en) | 2008-01-23 | 2009-07-23 | Mellmo Llc | User interface method and apparatus for data from data cubes and pivot tables |
| US20090192845A1 (en) | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Integrated real time collaboration experiences with online workspace |
| US20090234837A1 (en) | 2008-03-14 | 2009-09-17 | Yahoo! Inc. | Search query |
| US20090282462A1 (en) * | 2008-05-08 | 2009-11-12 | Microsoft Corporation | Controlling Access to Documents Using File Locks |
| US7624145B2 (en) | 2007-01-06 | 2009-11-24 | Microsoft Corporation | Persistent collaborative framework for interactive web applications |
| US20090313537A1 (en) | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Micro browser spreadsheet viewer |
| US20100058366A1 (en) | 2008-08-27 | 2010-03-04 | Eric Sven-Johan Swildens | Method and system for testing interactions between web clients and networked servers |
| US7681135B2 (en) | 2006-08-10 | 2010-03-16 | Kabushiki Kaisha Toshiba | System and method for generating a composite source user interface |
| US20100083082A1 (en) | 2008-09-30 | 2010-04-01 | Apple Inc. | Locking spreadsheet cells |
| US7698636B2 (en) | 2002-06-13 | 2010-04-13 | Microsoft Corporation | System and method for in-context editing of components |
| US7698280B2 (en) | 2006-03-28 | 2010-04-13 | Microsoft Corporation | Active cache offline sharing of project files |
| US7712016B2 (en) | 2004-09-30 | 2010-05-04 | Microsoft Corporation | Method and apparatus for utilizing an object model for managing content regions in an electronic document |
| US20100153948A1 (en) | 2008-12-11 | 2010-06-17 | Ghost, Inc. | Combined web and local computing environment |
| US20100175021A1 (en) | 2009-01-06 | 2010-07-08 | International Business Machines Corporation | Overflow Viewing Window |
| US7788647B2 (en) | 2001-07-26 | 2010-08-31 | Irise | Systems and methods for collaborative programming of simulations of computer programs |
| US7792788B2 (en) | 2005-03-04 | 2010-09-07 | Microsoft Corporation | Method and system for resolving conflicts operations in a collaborative editing environment |
| US20100241749A1 (en) | 2009-03-23 | 2010-09-23 | Jens Eilstrup Rasmussen | System and Method for Editing a Conversation in a Hosted Conversation System |
| US7814407B1 (en) | 2006-10-26 | 2010-10-12 | Bank Of America Corporation | Method and system for treating data |
| US7827483B2 (en) | 1998-08-28 | 2010-11-02 | Corel Corporation | Real time preview |
| US7836148B2 (en) | 1995-08-14 | 2010-11-16 | Nicolas Popp | Method and apparatus for generating object-oriented world wide web pages |
| US20100313110A1 (en) | 2007-12-14 | 2010-12-09 | Doubleiq Pty Ltd | Method and apparatus for the display and/or processing of information, such as data |
| US20110055682A1 (en) | 2009-09-03 | 2011-03-03 | International Business Machines Corporation | Creating, updating, saving, and propagating customized views of table and grid information |
| US7904515B2 (en) | 2007-10-09 | 2011-03-08 | International Business Machines Corporation | Solution for managing multiple related discussion threads in an online collaboration environment |
| US7917554B2 (en) | 2005-08-23 | 2011-03-29 | Ricoh Co. Ltd. | Visibly-perceptible hot spots in documents |
| US20110074699A1 (en) | 2009-09-25 | 2011-03-31 | Jason Robert Marr | Device, Method, and Graphical User Interface for Scrolling a Multi-Section Document |
| US7920894B2 (en) | 2000-02-01 | 2011-04-05 | Infogin, Ltd. | Methods and apparatus for analyzing, processing and formatting network information such as web-pages |
| US20110126191A1 (en) | 2009-11-25 | 2011-05-26 | Red Hat, Inc. | Method for extracting font metadata from font files into searchable metadata for package distribution |
| US7953696B2 (en) | 2005-09-09 | 2011-05-31 | Microsoft Corporation | Real-time synchronization of XML data between applications |
| US7958448B2 (en) | 2005-10-25 | 2011-06-07 | Celartem, Inc. | Systems, methods, user interfaces, and computer-readable media for activating and managing fonts |
| US7966426B2 (en) | 2006-11-14 | 2011-06-21 | Microsoft Corporation | Offline synchronization capability for client application |
| US20110167336A1 (en) | 2010-01-04 | 2011-07-07 | Hit Development Llc | Gesture-based web site design |
| US7982737B2 (en) | 2007-10-31 | 2011-07-19 | Adobe System Incorporated | System and method for independent font substitution of string characters |
| US20110178981A1 (en) | 2010-01-21 | 2011-07-21 | International Business Machines Corporation | Collecting community feedback for collaborative document development |
| US20110193993A1 (en) * | 2010-02-09 | 2011-08-11 | Pantech Co., Ltd. | Apparatus having photograph function |
| US8001215B2 (en) | 2005-11-29 | 2011-08-16 | Microsoft Corporation | Unlimited history store for navigational web applications |
| US8005858B1 (en) | 2001-05-31 | 2011-08-23 | Autonomy Corporation PLC | Method and apparatus to link to a related document |
| US20110252299A1 (en) | 2010-04-12 | 2011-10-13 | Zachary Lloyd | Synthetic Navigation Elements for Electronic Documents |
| US8044961B2 (en) | 1999-05-07 | 2011-10-25 | Apple Inc. | Automatic synthesis of font tables for character layout |
| US20110264997A1 (en) | 2010-04-21 | 2011-10-27 | Microsoft Corporation | Scalable Incremental Semantic Entity and Relatedness Extraction from Unstructured Text |
| US20110276867A1 (en) | 2000-01-07 | 2011-11-10 | Mastermine Software, Inc. | Data mining and reporting |
| US8065604B2 (en) | 2004-12-30 | 2011-11-22 | Massachusetts Institute Of Technology | Techniques for relating arbitrary metadata to media files |
| US20110302288A1 (en) | 2010-06-04 | 2011-12-08 | International Business Machines Corporation | Enhanced Browser Cookie Management |
| US20110307860A1 (en) | 2010-06-09 | 2011-12-15 | Hong Seong Park | Simulation-based interface testing automation system and method for robot software components |
| US20110321133A1 (en) | 2010-06-25 | 2011-12-29 | Google Inc. | System and method for authenticating web users |
| US20120016964A1 (en) | 2010-07-17 | 2012-01-19 | Veen Jeffrey P | Method and systems for serving fonts during web browsing sessions |
| US20120072819A1 (en) | 2010-09-21 | 2012-03-22 | Google, Inc. | Asynchronous Redrawing in Online Document Processors |
| US8234620B1 (en) | 2007-04-30 | 2012-07-31 | Oracle America, Inc. | Method and system for software development using distributed computing resources |
| US8271470B2 (en) | 2007-06-09 | 2012-09-18 | Apple Inc. | Auto-activation of fonts |
| US20120240027A1 (en) | 2011-03-18 | 2012-09-20 | Luiz Pereira | System and Method for Displaying a Document |
| US8417666B2 (en) * | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
| US8484561B1 (en) | 2011-09-02 | 2013-07-09 | Google Inc. | System and method for updating an object instance based on instructions received from multiple devices |
| US8566708B1 (en) | 2011-01-13 | 2013-10-22 | Google Inc. | Merging electronic document redraws |
| US8700986B1 (en) | 2011-03-18 | 2014-04-15 | Google Inc. | System and method for displaying a document containing footnotes |
| US8738706B1 (en) | 2011-11-16 | 2014-05-27 | Google Inc. | Systems and methods for collaborative document editing |
| US8892994B2 (en) | 2011-03-18 | 2014-11-18 | Google Inc. | System, method, and architecture for displaying a document |
| US8943399B1 (en) | 2011-03-18 | 2015-01-27 | Google Inc. | System and method for maintaining position information for positioned elements in a document, invoking objects to lay out the elements, and displaying the document |
| US20150195311A1 (en) | 2011-09-02 | 2015-07-09 | Micah Lemonik | Systems and Methods for Providing Access to a Document Associated with a Third Party Software Application Via Interframe Communication |
| US20150193406A1 (en) | 2011-09-02 | 2015-07-09 | Micah Lemonik | System and Method to Provide Collaborative Document Processing Services Via Interframe Communication |
| US20150199317A1 (en) | 2011-09-02 | 2015-07-16 | Micah Lemonik | System and Method for Using a Third-Party Add-On to Manipulate a Document in a Collaborative Online Software Development Environment |
| US20150199318A1 (en) | 2011-09-02 | 2015-07-16 | Micah Lemonik | System and Method for Using a Third-Party Add-On in a Collaborative On-Line Software Development Environment |
| US20150199222A1 (en) | 2011-09-02 | 2015-07-16 | John Day-Richter | System and Method for Managing Remote Procedure Calls Relating to a Third Party Software Application |
| US9286276B2 (en) | 2012-06-11 | 2016-03-15 | Google Inc. | System and method of document embedding in collaborative editors |
| US9336137B2 (en) | 2011-09-02 | 2016-05-10 | Google Inc. | System and method for performing data management in a collaborative development environment |
-
2011
- 2011-11-21 US US13/300,792 patent/US8510266B1/en active Active
-
2013
- 2013-07-12 US US13/940,785 patent/US9092413B1/en active Active
-
2015
- 2015-07-09 US US14/795,679 patent/US10169401B1/en active Active
Patent Citations (159)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4889439A (en) | 1988-01-29 | 1989-12-26 | International Business Machines Corporation | Automatic page end feature for an electronic typewriter |
| US5214755A (en) | 1989-04-25 | 1993-05-25 | Microsoft Corporation | Document processing method and system |
| US5111397A (en) | 1989-12-11 | 1992-05-05 | Wang Laboratories, Inc. | Managing lengthy footnotes in a work processing document |
| US5379373A (en) | 1990-06-15 | 1995-01-03 | Fuji Xerox Co., Ltd. | Document layout processing method and device for carrying out the same |
| US5167013A (en) | 1990-09-28 | 1992-11-24 | Xerox Corporation | User definable font substitutions with equivalency indicators |
| US5185818A (en) | 1991-06-05 | 1993-02-09 | Adobe Systems Incorporated | Method of substituting fonts and displaying characters |
| US5381523A (en) | 1992-04-06 | 1995-01-10 | Fuji Xerox Co., Ltd. | Document processing device using partial layout templates |
| US5528743A (en) | 1993-05-27 | 1996-06-18 | Apple Computer, Inc. | Method and apparatus for inserting text on a pen-based computer system |
| US5859648A (en) | 1993-06-30 | 1999-01-12 | Microsoft Corporation | Method and system for providing substitute computer fonts |
| US6552728B1 (en) | 1993-06-30 | 2003-04-22 | Microsoft Corporation | Method and system for providing substitute computer fonts |
| US5694609A (en) | 1993-08-31 | 1997-12-02 | Fuji Xerox Co., Ltd. | Document processing apparatus for processing a structured document using embedding nodes and mold nodes |
| US5860073A (en) | 1995-07-17 | 1999-01-12 | Microsoft Corporation | Style sheets for publishing system |
| US5825987A (en) | 1995-07-19 | 1998-10-20 | Fuji Xerox Co., Ltd. | Character output device |
| US7836148B2 (en) | 1995-08-14 | 2010-11-16 | Nicolas Popp | Method and apparatus for generating object-oriented world wide web pages |
| US5675788A (en) | 1995-09-15 | 1997-10-07 | Infonautics Corp. | Method and apparatus for generating a composite document on a selected topic from a plurality of information sources |
| US5930813A (en) | 1995-12-21 | 1999-07-27 | Adobe Systems Incorporated | Method and system for designating objects |
| US6006239A (en) | 1996-03-15 | 1999-12-21 | Microsoft Corporation | Method and system for allowing multiple users to simultaneously edit a spreadsheet |
| US5895476A (en) | 1996-09-09 | 1999-04-20 | Design Intelligence, Inc. | Design engine for automatic reformatting for design and media |
| US5956736A (en) | 1996-09-27 | 1999-09-21 | Apple Computer, Inc. | Object-oriented editor for creating world wide web documents |
| US6169999B1 (en) | 1997-05-30 | 2001-01-02 | Matsushita Electric Industrial Co., Ltd. | Dictionary and index creating system and document retrieval system |
| US6073147A (en) | 1997-06-10 | 2000-06-06 | Apple Computer, Inc. | System for distributing font resources over a computer network |
| US6025836A (en) | 1997-07-23 | 2000-02-15 | Novell, Inc. | Method and apparatus for generating object oriented user interfaces |
| US6185591B1 (en) | 1997-07-29 | 2001-02-06 | International Business Machines Corp. | Text edit system with enhanced undo user interface |
| US6279151B1 (en) | 1998-01-20 | 2001-08-21 | International Business Machines Corporation | Method and apparatus for remote source code inclusion |
| US20020023110A1 (en) | 1998-01-23 | 2002-02-21 | Ronald E. Fortin | Document markup language and system and method for generating and displaying documents therein |
| US6275223B1 (en) | 1998-07-08 | 2001-08-14 | Nortel Networks Limited | Interactive on line code inspection process and tool |
| US7827483B2 (en) | 1998-08-28 | 2010-11-02 | Corel Corporation | Real time preview |
| US6377354B1 (en) | 1998-09-21 | 2002-04-23 | Microsoft Corporation | System and method for printing a document having merged text and graphics contained therein |
| US6564246B1 (en) * | 1999-02-02 | 2003-05-13 | International Business Machines Corporation | Shared and independent views of shared workspace for real-time collaboration |
| US7257767B1 (en) | 1999-02-09 | 2007-08-14 | Carden Jr William T | System and method for publishing documents |
| US6512531B1 (en) | 1999-04-09 | 2003-01-28 | Adobe Systems Incorporated | Font navigation tool |
| US6681369B2 (en) * | 1999-05-05 | 2004-01-20 | Xerox Corporation | System for providing document change information for a community of users |
| US8044961B2 (en) | 1999-05-07 | 2011-10-25 | Apple Inc. | Automatic synthesis of font tables for character layout |
| US20060206814A1 (en) | 1999-08-05 | 2006-09-14 | Fujitsu Limited | Electronic document creation support apparatus and an electronic document creation support data component creating apparatus |
| US20010004256A1 (en) | 1999-12-21 | 2001-06-21 | Satoshi Iwata | Display system, display control method and computer readable medium storing display control program code |
| US6636889B1 (en) | 2000-01-04 | 2003-10-21 | International Business Machines Corporation | System and method for client replication of collaboration space |
| US20110276867A1 (en) | 2000-01-07 | 2011-11-10 | Mastermine Software, Inc. | Data mining and reporting |
| US7920894B2 (en) | 2000-02-01 | 2011-04-05 | Infogin, Ltd. | Methods and apparatus for analyzing, processing and formatting network information such as web-pages |
| US20020010725A1 (en) | 2000-03-28 | 2002-01-24 | Mo Lawrence Wai Ming | Internet-based font server |
| US7284199B2 (en) | 2000-03-29 | 2007-10-16 | Microsoft Corporation | Process of localizing objects in markup language documents |
| US7009626B2 (en) | 2000-04-14 | 2006-03-07 | Picsel Technologies Limited | Systems and methods for generating visual representations of graphical data and digital document processing |
| US6898642B2 (en) * | 2000-04-17 | 2005-05-24 | International Business Machines Corporation | Synchronous collaboration based on peer-to-peer communication |
| US20040220977A1 (en) * | 2000-05-30 | 2004-11-04 | Cho Charles J. | Method and system for facilitating information exchange |
| US7467192B1 (en) * | 2000-06-07 | 2008-12-16 | Cisco Technology, Inc. | Online standardized contract configuration for service level agreement monitoring |
| US20020129054A1 (en) | 2000-07-11 | 2002-09-12 | Ferguson Charles H. | Method and system for integrating network-based functionality into productivity applications employing spreadsheets |
| US6972748B1 (en) | 2000-08-31 | 2005-12-06 | Microsoft Corporation | J-key input for computer systems |
| US6717593B1 (en) | 2000-09-12 | 2004-04-06 | Avaya Technology Corp. | Mark-up language implementation of graphical or non-graphical user interfaces |
| US20080092066A1 (en) | 2000-09-30 | 2008-04-17 | Microsoft Corporation | Extensible markup language rendering and layout |
| US20020143780A1 (en) * | 2000-11-04 | 2002-10-03 | Gorman John G. | System and method for filtering and sorting data |
| US6879997B1 (en) | 2000-11-27 | 2005-04-12 | Nokia Corporation | Synchronously shared online documents |
| US20050034068A1 (en) | 2001-02-15 | 2005-02-10 | Denny Jaeger | System and method for editing an electronic document of text and graphic objects |
| US20040205538A1 (en) | 2001-04-05 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for online integration of offline document correction |
| US8005858B1 (en) | 2001-05-31 | 2011-08-23 | Autonomy Corporation PLC | Method and apparatus to link to a related document |
| US7788647B2 (en) | 2001-07-26 | 2010-08-31 | Irise | Systems and methods for collaborative programming of simulations of computer programs |
| US7106469B2 (en) | 2001-08-08 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Variable data printing with web based imaging |
| US20030061349A1 (en) | 2001-09-24 | 2003-03-27 | George Lo | Method and system for collaboratively developing programming code for programmable controllers |
| US20030115268A1 (en) | 2001-12-17 | 2003-06-19 | Nicolas Esposito | Conflict resolution for collaborative work system |
| US7069541B2 (en) | 2002-03-01 | 2006-06-27 | Bellsouth Intellectual Property Corporation | System and method for a web-based application development and deployment tracking tool |
| US20030179230A1 (en) | 2002-03-25 | 2003-09-25 | Gerry Seidman | Method and apparatus for providing remote peer-to-peer collaborative user interfaces |
| US7698636B2 (en) | 2002-06-13 | 2010-04-13 | Microsoft Corporation | System and method for in-context editing of components |
| US20040015781A1 (en) | 2002-07-17 | 2004-01-22 | Brown Mark L. | Background document rendering system and mehod |
| US7386535B1 (en) | 2002-10-02 | 2008-06-10 | Q.Know Technologies, Inc. | Computer assisted and/or implemented method for group collarboration on projects incorporating electronic information |
| US7231597B1 (en) | 2002-10-07 | 2007-06-12 | Microsoft Corporation | Method, apparatus, and computer-readable medium for creating asides within an electronic document |
| US20040194028A1 (en) | 2002-11-18 | 2004-09-30 | O'brien Stephen | Method of formatting documents |
| US20040107296A1 (en) | 2002-12-02 | 2004-06-03 | International Business Machines Corporation | System and method for accessing content of a web page |
| US7519630B2 (en) | 2002-12-16 | 2009-04-14 | Dell Products L.P. | Method and system for automated testing of versioned information handling system applications |
| US20040172423A1 (en) | 2003-02-28 | 2004-09-02 | Microsoft Corporation | Method and system for synchronizing data shared among peer computing devices |
| US20040239700A1 (en) | 2003-03-17 | 2004-12-02 | Baschy Leo Martin | User interface driven access control system and method |
| US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
| US20050039123A1 (en) | 2003-08-14 | 2005-02-17 | Kuchinsky Allan J. | Method and system for importing, creating and/or manipulating biological diagrams |
| US20070118797A1 (en) | 2003-08-29 | 2007-05-24 | Paul Layzell | Constrained document layout |
| US20050102370A1 (en) | 2003-10-23 | 2005-05-12 | Yun Lin | Truth on client persistent caching |
| US20050188051A1 (en) | 2003-12-19 | 2005-08-25 | Iftah Sneh | System and method for providing offline web application, page, and form access in a networked environment |
| US7272782B2 (en) | 2003-12-19 | 2007-09-18 | Backweb Technologies, Inc. | System and method for providing offline web application, page, and form access in a networked environment |
| US20050177805A1 (en) | 2004-02-11 | 2005-08-11 | Lynch Michael R. | Methods and apparatuses to generate links from content in an active window |
| US7233951B1 (en) * | 2004-02-18 | 2007-06-19 | Microsoft Corporation | Spreadsheet grid-like control for a web-based collaboration system |
| US7587666B2 (en) | 2004-03-16 | 2009-09-08 | Sap Ag | Methods, computer program products and data processing systems for displaying a plurality of data objects |
| US20050216504A1 (en) | 2004-03-16 | 2005-09-29 | Julien Delvat | Methods, computer program products and data processing systems for displaying a plurality of data objects |
| US20050234943A1 (en) | 2004-04-20 | 2005-10-20 | Microsoft Corporation | Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems |
| US7487448B2 (en) | 2004-04-30 | 2009-02-03 | Microsoft Corporation | Document mark up methods and systems |
| US20060053196A1 (en) | 2004-09-03 | 2006-03-09 | Spataro Jared M | Systems and methods for collaboration |
| US7712016B2 (en) | 2004-09-30 | 2010-05-04 | Microsoft Corporation | Method and apparatus for utilizing an object model for managing content regions in an electronic document |
| US7516114B2 (en) | 2004-10-22 | 2009-04-07 | International Business Machines Corporation | Visual structuring of multivariable data |
| US20060136511A1 (en) * | 2004-12-21 | 2006-06-22 | Nextpage, Inc. | Storage-and transport-independent collaborative document-management system |
| US7908247B2 (en) * | 2004-12-21 | 2011-03-15 | Nextpage, Inc. | Storage-and transport-independent collaborative document-management system |
| US8065604B2 (en) | 2004-12-30 | 2011-11-22 | Massachusetts Institute Of Technology | Techniques for relating arbitrary metadata to media files |
| US20060195784A1 (en) | 2005-02-28 | 2006-08-31 | Nokia Corporation | Presentation of large objects on small displays |
| US7792788B2 (en) | 2005-03-04 | 2010-09-07 | Microsoft Corporation | Method and system for resolving conflicts operations in a collaborative editing environment |
| US20060265639A1 (en) | 2005-05-18 | 2006-11-23 | Microsoft Corporation | Memory optimizing fo re-ordering user edits |
| US7917554B2 (en) | 2005-08-23 | 2011-03-29 | Ricoh Co. Ltd. | Visibly-perceptible hot spots in documents |
| US7953696B2 (en) | 2005-09-09 | 2011-05-31 | Microsoft Corporation | Real-time synchronization of XML data between applications |
| US7958448B2 (en) | 2005-10-25 | 2011-06-07 | Celartem, Inc. | Systems, methods, user interfaces, and computer-readable media for activating and managing fonts |
| US20070094601A1 (en) | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Systems, methods and tools for facilitating group collaborations |
| US8001215B2 (en) | 2005-11-29 | 2011-08-16 | Microsoft Corporation | Unlimited history store for navigational web applications |
| US7698280B2 (en) | 2006-03-28 | 2010-04-13 | Microsoft Corporation | Active cache offline sharing of project files |
| US20070233811A1 (en) * | 2006-03-31 | 2007-10-04 | Jonathan Rochelle | Collaborative online spreadsheet application |
| US8307119B2 (en) * | 2006-03-31 | 2012-11-06 | Google Inc. | Collaborative online spreadsheet application |
| US20070239695A1 (en) | 2006-04-10 | 2007-10-11 | Al Chakra | Transient storage in distributed collaborative computing environments |
| US20080033996A1 (en) | 2006-08-03 | 2008-02-07 | Anandsudhakar Kesari | Techniques for approximating the visual layout of a web page and determining the portion of the page containing the significant content |
| US7681135B2 (en) | 2006-08-10 | 2010-03-16 | Kabushiki Kaisha Toshiba | System and method for generating a composite source user interface |
| US7779346B2 (en) | 2006-10-03 | 2010-08-17 | Research In Motion Limited | System and method for freezing columns and rows in a UI table |
| US20080082938A1 (en) | 2006-10-03 | 2008-04-03 | Tomasz Buczek | System and method for freezing columns and rows in a ui table |
| US7814407B1 (en) | 2006-10-26 | 2010-10-12 | Bank Of America Corporation | Method and system for treating data |
| US7966426B2 (en) | 2006-11-14 | 2011-06-21 | Microsoft Corporation | Offline synchronization capability for client application |
| US7624145B2 (en) | 2007-01-06 | 2009-11-24 | Microsoft Corporation | Persistent collaborative framework for interactive web applications |
| US20080201449A1 (en) | 2007-02-16 | 2008-08-21 | Esobi Inc. | Method and system for updating rss feeds |
| JP2008262449A (en) | 2007-04-13 | 2008-10-30 | Fuji Xerox Co Ltd | Document management device and document processing program |
| US8234620B1 (en) | 2007-04-30 | 2012-07-31 | Oracle America, Inc. | Method and system for software development using distributed computing resources |
| US8271470B2 (en) | 2007-06-09 | 2012-09-18 | Apple Inc. | Auto-activation of fonts |
| US20090006936A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Collaborative document authoring |
| US7904515B2 (en) | 2007-10-09 | 2011-03-08 | International Business Machines Corporation | Solution for managing multiple related discussion threads in an online collaboration environment |
| CN101179572A (en) | 2007-10-12 | 2008-05-14 | 华为技术有限公司 | Method, device and system for copying content |
| US7756824B2 (en) * | 2007-10-26 | 2010-07-13 | Microsoft Corporation | Spreadsheet collaboration between rich and browser clients |
| US20090112937A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Spreadsheet collaboration between rich and browser clients |
| US7982737B2 (en) | 2007-10-31 | 2011-07-19 | Adobe System Incorporated | System and method for independent font substitution of string characters |
| US20090125518A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative Authoring |
| US20100313110A1 (en) | 2007-12-14 | 2010-12-09 | Doubleiq Pty Ltd | Method and apparatus for the display and/or processing of information, such as data |
| US20090187815A1 (en) | 2008-01-23 | 2009-07-23 | Mellmo Llc | User interface method and apparatus for data from data cubes and pivot tables |
| US20090192845A1 (en) | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Integrated real time collaboration experiences with online workspace |
| US20090234837A1 (en) | 2008-03-14 | 2009-09-17 | Yahoo! Inc. | Search query |
| US20090282462A1 (en) * | 2008-05-08 | 2009-11-12 | Microsoft Corporation | Controlling Access to Documents Using File Locks |
| US20090313537A1 (en) | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Micro browser spreadsheet viewer |
| US8417666B2 (en) * | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
| US20100058366A1 (en) | 2008-08-27 | 2010-03-04 | Eric Sven-Johan Swildens | Method and system for testing interactions between web clients and networked servers |
| US8185910B2 (en) | 2008-08-27 | 2012-05-22 | Eric Sven-Johan Swildens | Method and system for testing interactions between web clients and networked servers |
| US20100083082A1 (en) | 2008-09-30 | 2010-04-01 | Apple Inc. | Locking spreadsheet cells |
| US20100153948A1 (en) | 2008-12-11 | 2010-06-17 | Ghost, Inc. | Combined web and local computing environment |
| US20100175021A1 (en) | 2009-01-06 | 2010-07-08 | International Business Machines Corporation | Overflow Viewing Window |
| US20100241749A1 (en) | 2009-03-23 | 2010-09-23 | Jens Eilstrup Rasmussen | System and Method for Editing a Conversation in a Hosted Conversation System |
| US20110055682A1 (en) | 2009-09-03 | 2011-03-03 | International Business Machines Corporation | Creating, updating, saving, and propagating customized views of table and grid information |
| US20110074699A1 (en) | 2009-09-25 | 2011-03-31 | Jason Robert Marr | Device, Method, and Graphical User Interface for Scrolling a Multi-Section Document |
| US20110126191A1 (en) | 2009-11-25 | 2011-05-26 | Red Hat, Inc. | Method for extracting font metadata from font files into searchable metadata for package distribution |
| US20110167336A1 (en) | 2010-01-04 | 2011-07-07 | Hit Development Llc | Gesture-based web site design |
| US20110178981A1 (en) | 2010-01-21 | 2011-07-21 | International Business Machines Corporation | Collecting community feedback for collaborative document development |
| US20110193993A1 (en) * | 2010-02-09 | 2011-08-11 | Pantech Co., Ltd. | Apparatus having photograph function |
| US20110252299A1 (en) | 2010-04-12 | 2011-10-13 | Zachary Lloyd | Synthetic Navigation Elements for Electronic Documents |
| US20110264997A1 (en) | 2010-04-21 | 2011-10-27 | Microsoft Corporation | Scalable Incremental Semantic Entity and Relatedness Extraction from Unstructured Text |
| US20110302288A1 (en) | 2010-06-04 | 2011-12-08 | International Business Machines Corporation | Enhanced Browser Cookie Management |
| US20110307860A1 (en) | 2010-06-09 | 2011-12-15 | Hong Seong Park | Simulation-based interface testing automation system and method for robot software components |
| US8601436B2 (en) | 2010-06-09 | 2013-12-03 | Knu-Industry Cooperation Foundation | Simulation-based interface testing automation system and method for robot software components |
| US20110321133A1 (en) | 2010-06-25 | 2011-12-29 | Google Inc. | System and method for authenticating web users |
| US20120016964A1 (en) | 2010-07-17 | 2012-01-19 | Veen Jeffrey P | Method and systems for serving fonts during web browsing sessions |
| US20120331373A1 (en) | 2010-09-21 | 2012-12-27 | Google, Inc. | Asynchronous Redrawing in Online Document Processors |
| US20120072819A1 (en) | 2010-09-21 | 2012-03-22 | Google, Inc. | Asynchronous Redrawing in Online Document Processors |
| US8566708B1 (en) | 2011-01-13 | 2013-10-22 | Google Inc. | Merging electronic document redraws |
| US8595622B1 (en) | 2011-01-13 | 2013-11-26 | Google Inc. | Merging electronic document redraws |
| US8892994B2 (en) | 2011-03-18 | 2014-11-18 | Google Inc. | System, method, and architecture for displaying a document |
| US20120240027A1 (en) | 2011-03-18 | 2012-09-20 | Luiz Pereira | System and Method for Displaying a Document |
| US8700986B1 (en) | 2011-03-18 | 2014-04-15 | Google Inc. | System and method for displaying a document containing footnotes |
| US8943399B1 (en) | 2011-03-18 | 2015-01-27 | Google Inc. | System and method for maintaining position information for positioned elements in a document, invoking objects to lay out the elements, and displaying the document |
| US20150193406A1 (en) | 2011-09-02 | 2015-07-09 | Micah Lemonik | System and Method to Provide Collaborative Document Processing Services Via Interframe Communication |
| US20150195311A1 (en) | 2011-09-02 | 2015-07-09 | Micah Lemonik | Systems and Methods for Providing Access to a Document Associated with a Third Party Software Application Via Interframe Communication |
| US8484561B1 (en) | 2011-09-02 | 2013-07-09 | Google Inc. | System and method for updating an object instance based on instructions received from multiple devices |
| US20150199317A1 (en) | 2011-09-02 | 2015-07-16 | Micah Lemonik | System and Method for Using a Third-Party Add-On to Manipulate a Document in a Collaborative Online Software Development Environment |
| US20150199318A1 (en) | 2011-09-02 | 2015-07-16 | Micah Lemonik | System and Method for Using a Third-Party Add-On in a Collaborative On-Line Software Development Environment |
| US20150199222A1 (en) | 2011-09-02 | 2015-07-16 | John Day-Richter | System and Method for Managing Remote Procedure Calls Relating to a Third Party Software Application |
| US9336137B2 (en) | 2011-09-02 | 2016-05-10 | Google Inc. | System and method for performing data management in a collaborative development environment |
| US8738706B1 (en) | 2011-11-16 | 2014-05-27 | Google Inc. | Systems and methods for collaborative document editing |
| US9286276B2 (en) | 2012-06-11 | 2016-03-15 | Google Inc. | System and method of document embedding in collaborative editors |
Non-Patent Citations (28)
| Title |
|---|
| "Googlepedia: The Ultimate Google Resource", Third Edition, pp. 1-24 (pp. 276-287 in original source), 2008. |
| "Model View-Controller-Wikipedia, the free encyclopedia", downloaded from https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller on Nov. 15, 2010, pp. 1-10. |
| "Model View-Controller—Wikipedia, the free encyclopedia", downloaded from https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller on Nov. 15, 2010, pp. 1-10. |
| Brouwer et al., MathDox editor, Electronic Proceedings MathUI 2009, 2009, XP55028009, retrieved from the Internet May 23, 2012: http://www.win.tue.nl/˜hansc/mde.pdf; pp. 1-8. |
| Chitu, Footnotes in GoogleDocs, Oct. 17, 2008, XP055028085, retrieved from the Internet May 24, 2012: http://googlesystem.blogspot.com/2008/10/footnotes-in-google-docs.html; p. 1. |
| Citro, Sandy, "Conflict Management for Real-Time Collaborative Editing in Mobile Replicated Architectures," 2007, Australian Computer Society, Inc., Thirteenth Australian Computer Science Conference (ACSC2007), pp. 115-124. |
| Conner, Nancy, "Zoho 4 Everyone", 2008, 17 pages. |
| Danilatos, Demonstration Doodad, with a few different variations of rendering and interactive behaviour, Dec. 5, 2010, 1-3, retrieved from the Internet May 24, 2012: http://code.google.com/p/wave-protocol/source/browse/src/org/waveprotocol/wave/client/editor/examples/img/MyDoodad.java; pp. 1-3. |
| Dejean, David, "Online Office Apps Get Real: Google Docs vs. ThinkFree vs. Zoho", Computerworld, Jul. 16, 2008, retrieved at https://www.computerworld.com/article/2534786/networking/online-office-apps-get-real-google-docs-vs-thinkfree-vs-zoho.html?page=6 on Sep. 13, 2018, 22 pages. |
| Galbreath, et al., Sharpen Spreadsheet Skills, Journal of Accountancy, vol. 186, 1998, 8 pages. |
| HTML Living Standard downloaded from http://www.whatwg.org/specs/web-apps/current-worklmultipage/offiine.html, Nov. 11, 2011, 21 pages. |
| Jakobsson, Markus, et al., "Invasive Browser Sniffing and Countermeasures", Proceedings on the 15th International Conference on World Wide Web, WWW '06, Jan. 1, 2006, pp. 523-532. |
| Janssen, Harmen; "Guessing Font Availability with Javascript"; Nov. 13, 2008 (Nov. 13, 2008); XP55015680; URL: http://www.whatstyle.net/articles/54/guessing_font_availability_with javascript (retrieved on Jan. 4, 2012 ); pp. 1-5. |
| Levien, Raph et al., "Introducing the Google Font API & Google Font Directory", May 19, 2010, Google. |
| Louie, Melissa. "New themes in Google forms", May 19, 2010, Google. |
| Nichols et al., High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System, UIST '95. 8th Annual Symposium on User Interface Software and Technology. Proceedings of the ACM Symposium on User Interface Software and Technology, Nov. 14-17, 1995, 111-120. |
| Olav Junker Kjaer, "Timing and Synchronization in JavaScript", Dev. Opera, Sections: "The Basics", "Event Queing", "Long Running Scripts" and "Advice on Timing", Feb. 27, 2007, downloaded from URL: htt//dev.opera.com/articles/view/timing-and-synchronization-in-javascript/, pp. 1-9. |
| PCT International Search Report and Written Opinion corresponding to PCT Application No. PCT/US2011/001417 filed Aug. 11, 2011, 7 pages. |
| PCT International Search Report and Written Opinion dated Nov. 12, 2012, corresponding to PCT Application No. PCT/US2012/051404 filed Aug. 17, 2012, 10 pages. |
| PCT International Search Report and Written Opinion from International Patent Application No. PCT/US2011/001557; dated Jan. 12, 2012, 12 pages. |
| PCT International Search Report and Written Opinion issued in PCT/US2012/028102 dated Jun. 5, 2012; pp. 1-15. |
| PCT International Search Report and Written Opinion issued in PCT/US2012/028279 dated Jun. 6, 2012; pp. 1-15. |
| Peels et al., Document Architecture and Text Formatting, ACM Transactions on Office Information Systems, XX, XX, 3 Oct. 1, 1985, 347-369. |
| Quinn, Laura S. "Comparing Online vs. Traditional Office Software", May 21, 2010, downloaded from http://www.techsoup.org/learningcenter/software/page11852.cfm on Oct. 15, 2010, pp. 1-4. |
| Sun, Chengzheng, "Operational Transformation in Real-Time Group Editors: Issues, Algorithms, and Achievements," Proc. of 1998 ACM Conference on Computer-Supported Cooperative Work, 1988, pp. 1-10. |
| Tyson, Herb, "Microsoft Word 2007 Bible", 2007, 112-115, 467, 523-525, 798. |
| Wang et al, Google Wave Operational Transformation, Jul. 1, 2010, 1-6, retrieved from the Internet Feb. 14, 2012: http://wave-protocol.googlecode.com/hg/whitepapers/operational-transform/operational-transform.html. |
| Xu, et al., Using Spreadsheet Software as a Platform for Power System Analysis, IEEE Computer Applications in Power, Jan. 1999, pp. 41-45. |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111428451A (en) * | 2020-06-09 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | Text online editing method and device, electronic equipment and storage medium |
| CN111428451B (en) * | 2020-06-09 | 2020-09-08 | 平安国际智慧城市科技股份有限公司 | Text online editing method and device, electronic equipment and storage medium |
| US20230328122A1 (en) * | 2022-04-07 | 2023-10-12 | Sigma Computing, Inc. | Live editing a workbook with multiple clients |
| US12236188B2 (en) | 2022-04-07 | 2025-02-25 | Sigma Computing, Inc. | Resolving live edit conflicts |
| US12244654B2 (en) * | 2022-04-07 | 2025-03-04 | Sigma Computing, Inc. | Live editing a workbook with multiple clients |
Also Published As
| Publication number | Publication date |
|---|---|
| US9092413B1 (en) | 2015-07-28 |
| US8510266B1 (en) | 2013-08-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10169401B1 (en) | System and method for providing online data management services | |
| US20230067314A1 (en) | Security model for live applications in a cloud collaboration platform | |
| US10417319B1 (en) | Real-time document sharing and editing | |
| US11669674B1 (en) | Document processing service for displaying comments included in messages | |
| US9635105B2 (en) | Non-collaborative filters in a collaborative document | |
| US20120066590A1 (en) | Systems and Methods for Enhanced Font Management | |
| US9940127B1 (en) | System and method for providing real-time execution of source code in a collaborative online software development environment | |
| US7283950B2 (en) | System and method for translating from a source language to at least one target language utilizing a community of contributors | |
| US9514235B2 (en) | Web page authoring tool for structured documents | |
| DE112015002695B4 (en) | Systems and methods for editing a file in a non-native application using an application engine | |
| TWI459217B (en) | Method, computer system, and computer storage medium for coauthoring | |
| US20120233554A1 (en) | Collaborative Electronic Document Editing | |
| CN110325961A (en) | Spreadsheet-based software application development | |
| US20150200832A1 (en) | Adaptive Document Autosaving Rate Based on Different Conditions | |
| US8892994B2 (en) | System, method, and architecture for displaying a document | |
| US10740543B1 (en) | System and method for displaying a document containing footnotes | |
| DE102016125804A1 (en) | Including selectable application links in conversations with personal assistance modules | |
| US20150199185A1 (en) | System and Method for Providing Online Software Development Services | |
| US8943399B1 (en) | System and method for maintaining position information for positioned elements in a document, invoking objects to lay out the elements, and displaying the document | |
| US8250459B2 (en) | System and method for providing online data management services | |
| US8943142B1 (en) | Non-collaborative filters in a collaborative document | |
| CN109635258B (en) | Non-collaborative filters in collaborative documents | |
| US20190121995A1 (en) | Interoperability Between Content Management System and Collaborative Content System | |
| US20120240027A1 (en) | System and Method for Displaying a Document | |
| US9298688B1 (en) | Non-collaborative filters in a collaborative document |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |