IP Library › Granted Patent US 10,462,206
Granted Patent B2
US 10,462,206 · App. 15/818,117 · Granted Oct 29, 2019

Bidirectional networked real-time data exchange using a spreadsheet application

Inventor: Andrew Thomas (Mississauga, CA)
Assignee: Real Innovations International LLC
H04L67/02H04L65/1066H04L65/4007H04L65/4015H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,462,206
App. No.
15/818,117
Granted
Oct 29, 2019
Kind
B2
Abstract

Systems and methods and methods for providing real-time data to a spreadsheet applications (SSAPPs) are disclosed. In an example, a spreadsheet application (SSAPP) obtains subscribed data from a server through the persistent connection between the SSAPP and the server via a TCP socket. The subscribed data can be propagated to the server from a data source. The SSAPP can perform an action on the subscribed data, such as presenting a representation based on the subscribed data to a user. When the data source propagates updated data to the server, the server can send the updates to the SSAPP in real time over the TCP socket. The SSAPP can also send data do the server over the TCP socked by, for example, extracting contents from a set of cells, processing the contents to produce a result, and transmitting the result to the server via the persistent connection.

Claims (90)

1. A method for real-time interaction with a spreadsheet application (SSAPP), the method comprising:

obtaining data propagated from a data source;

creating a persistent connection with a SSAPP;

subscribing the SSAPP to subscribed data, wherein the subscribed data includes at least some of the data obtained from the data source;

propagating the subscribed data to the SSAPP through the persistent connection as the subscribed data is obtained;

operating in a non-authoritative configuration, wherein operating in the non-authoritative configuration further includes:

storing a data set

receiving a connection from an authoritative client device;

responsive to receiving the connection, obtaining an authoritative data set from the authoritative client device;

storing the authoritative data set

determining that the authoritative client device disconnected; and

responsive to the authoritative client device disconnecting, notifying the SSAPP that the authoritative client device is no longer providing data.

2. The method of claim 1 , further comprising:

sending the subscribed data to the SSAPP via a bi-directional Transmission Control Protocol (TCP) connection.

3. The method of claim 1 , further comprising:

obtaining, from the SSAPP, a command; and

executing the command.

4. The method of claim 3 , wherein executing the command includes: (i) altering a behavior based on the command, (ii) altering how the data propagated from the data source is obtained based on the command, or (iii) any combination of (i) and (ii).

5. The method of claim 1 , wherein obtaining the data propagated from the data source further includes:

obtaining the data through at least one intermediate component.

6. The method of claim 1 , further comprising:

obtaining a change request from the SSAPP;

transmitting the change request to the data source;

obtaining updated data propagated from the data source based on the change request; and

propagating the updated data to the SSAPP through the persistent connection as the updated data is obtained.

7. The method of claim 1 ,

wherein storing the authoritative data set includes one or both of:

(i) overwriting a portion of the stored data set that conflicts with the authoritative data set; and

(ii) ignoring a portion of the stored data set that conflicts with the authoritative data set.

8. The method of claim 1 , wherein notifying the SSAPP that the authoritative client device is no longer providing data includes:

marking data items as not connected.

9. The method of claim 1 , further comprising:

treating the SSAPP as both an authoritative data source and a non-authoritative data source.

10. The method of claim 9 ,

wherein the SSAPP is a first SSAPP;

wherein treating the first SSAPP as an authoritative data source includes:

obtaining SSAPP-originated data from the first SSAPP through the persistent connection; and

propagating the SSAPP-originated data to a second SSAPP; and

wherein treating the first SSAPP as a non-authoritative data source includes:

obtaining second SSAPP-originated data from the second SSAPP; and

propagating the second SSAPP-originated data to the first SSAPP.

11. A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause performance of a method comprising:

obtaining, at a spreadsheet application (SSAPP), subscribed data from a server through a persistent connection between the SSAPP and the server via a TCP socket, the subscribed data originating from a data source;

performing an action on the subscribed data, wherein the action comprises presenting a representation based on the subscribed data to a user;

receiving a notification that the subscribed data has been updated;

obtaining updated subscribed data, the updated subscribed data being based on an authoritative data set from an authoritative client device;

performing the action on the updated subscribed data;

extracting contents from a set of cells comprising one or more cells;

processing the contents from the set of cells to produce a result;

transmitting the result to the server via the persistent connection; and

receiving a change of status indication propagated from the server indicating that the authoritative client device is not connected to the server.

12. The non-transitory computer-readable medium of claim 11 , wherein the method further comprises:

creating the persistent connection between the SSAPP and the server; and

subscribing the SSAPP to subscribed data from the server.

13. The non-transitory computer-readable medium of claim 11 , wherein the action further comprises:

(i) visually representing at least some of the subscribed data; (ii) performing a calculation on the subscribed data; (iii) producing new data based on the subscribed data; (iv) modifying the subscribed data; (v) storing the subscribed data; (vi) generating an audible indication; (vii) executing a script; (viii) propagating data to the server; (ix) performing a user-visible programmatic response; (x) performing a non-user-visible programmatic response; or (xi) any combination of (i)-(x).

14. The non-transitory computer-readable medium of claim 11 , wherein the method further comprises:

sending an instruction from the SSAPP to the server through the persistent connection, the instruction comprising (i) an instruction to alter a behavior of the server, (ii) an instruction to alter how the subscribed data is propagated from the data source, or (iii) any combination of (i) and (ii); and

wherein the updated subscribed data comprises an update based on the instruction.

15. A system for real-time interaction with a spreadsheet application (SSAPP), the system comprising:

a processor;

a memory comprising instructions that, when executed by the processor, cause performance a method comprising:

obtaining data propagated from a data source;

creating a persistent connection with a SSAPP;

subscribing the SSAPP to subscribed data, wherein the subscribed data includes at least some of the data obtained from the data source; and

propagating the subscribed data to the SSAPP through the persistent connection as the subscribed data is obtained;

operating in a non-authoritative configuration, wherein operating in the non-authoritative configuration further includes:

storing a data set

receiving a connection from an authoritative client device;

responsive to receiving the connection, obtaining an authoritative data set from the authoritative client device;

storing the authoritative data set;

determining that the authoritative client device disconnected; and

responsive to the authoritative client device disconnecting, propagating to the SSAPP a change of status indicating that the authoritative client device is no longer providing data.

16. The system of claim 15 , wherein the method further includes:

obtaining, from the SSAPP, a command; and

executing the command, wherein executing the command includes: (i) altering a behavior based on the command, (ii) altering how the data propagated from the data source is obtained based on the command, or (iii) any combination of (i) and (ii).

17. The system of claim 15 , wherein the method further includes:

obtaining a change request from the SSAPP;

transmitting the change request to the data source;

obtaining updated data propagated from the data source based on the change request; and

propagating the updated data to the SSAPP through the persistent connection as the updated data is obtained.

18. The system of claim 15 , wherein storing the authoritative data set includes one or both of:

(i) overwriting a portion of the stored data set that conflicts with the authoritative data set; and

(ii) ignoring a portion of the stored data set that conflicts with the authoritative data set.

19. The system of claim 15 , wherein operating in the non-authoritative configuration further includes:

receiving an instruction from the authoritative client device to alter properties of the authoritative data set when the authoritative client device disconnects to indicate that the authoritative client device is not connected.

20. The system of claim 15 , wherein the SSAPP is a first SSAPP; and

wherein the method further includes:

obtaining SSAPP-originated data from the first SSAPP through the persistent connection; and

propagating the SSAPP-originated data to a second SSAPP.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2017
From: THOMAS, ANDREW
To: REAL INNOVATIONS INTERNATIONAL LLC
Reel/Frame 044180/0814 →
Continuity (6)
Continuation In Part 15497466 · Apr 26, 2017
Continuation 14148246 · Jan 6, 2014
Continuation 12905319 · Oct 15, 2010
Provisional Application 62424489 · Nov 20, 2016
Provisional Application 61252624 · Oct 16, 2009
Related Publication 20180091579A1 · Mar 29, 2018
Cited By (1)
US 12,294,628