IP Library › Granted Patent US 9,952,893
Granted Patent B2
US 9,952,893 · App. 12/939,139 · Granted Apr 24, 2018

Spreadsheet model for distributed computations

Inventor: Henricus Johannes Maria Meijer (Mercer Island, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/46
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,952,893
App. No.
12/939,139
Granted
Apr 24, 2018
Kind
B2
Abstract

A spreadsheet model is employed to facilitate distributed computations. Spreadsheets and cells are generalized to correspond to arbitrary data sources that can be remote from each other, among other things. Functions can be specified with respect to these arbitrary data sources to produce combinations of data or mashups, for example, wherein changes initiate re-computation with respect to dependent data sources.

Claims (32)

1. A method of distributed computation, comprising:

employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts:

receiving data supplied asynchronously from a second data source;

detecting a change in the data compared to a prior value received from the second data source;

triggering re-computation of a function that produces a result that represents a value of a first data source based on data from the second data source in response to detecting the change, wherein the first and second data source implement different data models and reside on different network-accessible computers coupled by the function, and the re-computation is performed independent of a spreadsheet; and

revealing the result of function re-computation with respect to the first data source.

2. The method of claim 1 further comprising triggering computation of the data of the second data source as a function of data acquired from the first data source.

3. The method of claim 2 further comprising confining computation with respect to the first and second data sources to a predetermined number of cycles.

4. The method of claim 1 further comprising pulling data from the second data source and pushing the data to the first data source.

5. The method of claim 1 further comprising capturing data pushed by the second data source and enabling the data to be retrieved by the first data source.

6. The method of claim 1 further comprising triggering generation of a stream of values in the first data source, wherein the stream of values is an asynchronous sequence of values.

7. The method of claim 1 further comprising exposing the first data source to a third data source, wherein the first data source is embedded within the third data source.

8. A system of distributed computation, comprising:

a processor coupled to a memory, the processor configured to execute computer-executable instructions stored in the memory that when executed perform a method, the method comprising:

receiving a change to a second-data-source value supplied asynchronously;

re-computing a function that produces a result that represents a first-data-source value based on a changed second-data-source value in response to the change, wherein the second data source and the first data source implement different data models and reside on different network-accessible computers, and the function defines dependency between values of the second data source and the first data source; and

outputting the first-data source value, wherein the re-computing and the outputting are performed independent of a spreadsheet.

9. The system of claim 8 , the method further comprises computing the first-data-source value synchronously and transactionally as a function of the changes.

10. The system of claim 8 , the method further comprises exposing the first-data-source value to the second data source.

11. The system of claim 8 , at least one of the first data source or the second data source is embedded within a third data source.

12. The system of claim 8 , at least one of the first data source or the second data source is supported by a key-value data model.

13. The system of claim 12 , the key-value data model is a mathematical dual of a relational data model.

14. The system of claim 8 , at least one of the first data source or the second data source produces a push-based stream of data.

15. The system of claim 8 , the method further comprises receiving a value from the second data source and providing the value to the first data source upon request.

16. The system of claim 8 , the method further comprises retrieving a value from the second data source providing the value to the first data source.

17. A computer-readable storage medium having instructions stored thereon that enables at least one processor to perform the following acts:

receiving a first stream, comprising an asynchronous sequence of data, from a first data source;

detecting a change in the data of the first stream from a previously received value of the first stream from the first data source;

re-computing a second stream, by a processor, as a function of the change in a first stream from a first data source; and

exposing the second stream to a second data source as input, wherein the acts are performed without a spreadsheet and the first data source and the second data source implement different data models.

18. The computer-readable storage medium of claim 17 further comprising providing data received from the first stream incrementally upon request.

19. The computer-readable storage medium of claim 17 further comprising retrieving data from the first stream at periodic intervals.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2011
From: MARIA MEIJER, HENRICUS JOHANNES
To: MICROSOFT CORPORATION
Reel/Frame 025664/0313 →
Continuity (1)
Related Publication 20120110428A1 · May 3, 2012