IP Library Granted Patent US 8,799,852
Granted Patent B2
US 8,799,852 · App. 12/572,885 · Granted Aug 5, 2014

Providing online graphical data flow web application tools or services for charge

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 8,799,852
App. No.
12/572,885
Granted
Aug 5, 2014
Kind
B2
Abstract

System and method for performing program-related operations over a network via a web browser. A network connection is established between a server computer and a client computer over a network. A universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical program interactive development environment (GPIDE), e.g., a graphical program editor, an execution engine, a static or dynamic analyzer, and/or compiler. The at least a portion of the GPIDE is received from the server computer over the network in response to the URI, and executed in a web browser of the client computer to perform some specified functionality with respect to the GP.

Claims (94)

1. A non-transitory computer-accessible memory medium that stores:

a plurality of graphical data flow programs (GDFPs), wherein each GDFP comprises a respective plurality of interconnected nodes which visually indicate the functionality of the program, and is accessible and useable via web browsers executing on client computers, and wherein the GDFPs are in accordance with a data flow model of computation in which program functions execute whenever their necessary input data are available;

a graphical data flow program execution engine (GDFP execution engine), wherein the GDFPs require the GDFP execution engine to execute; and

program instructions executable by a processor to:

establish a network connection with a client computer over a network;

receive a universal resource identifier (URI) from the client computer over the network, wherein the URI indicates a GDFP of the plurality of GDFPs;

send the GDFP and the GDFP execution engine to the client computer over the network in response to the URI, wherein the GDFP execution engine is entirely executable in a web browser on the client computer to:

execute the GDFP entirely in the web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein the GDFP execution engine displays a front panel in the web browser during execution of the GDFP, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

assess a charge for use of the GDFP on the client computer.

2. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFP execution engine comprises an interpreter, and wherein to execute the GDFP entirely in the web browser, the GDFP execution engine is executable to interpret the GDFP in the web browser.

3. The non-transitory computer-accessible memory medium of claim 1 , wherein to assess a charge for use of the GDFP on the client computer, the program instructions are executable to assess the charge in accordance with a specified use plan.

4. The non-transitory computer-accessible memory medium of claim 3 , wherein the specified use plan comprises a subscription to one or more levels of service, wherein each level of service specifies one or more of:

GDFPs available to users at that level of service; or

conditions of use of GDFPs available to users at that level of service.

5. The non-transitory computer-accessible memory medium of claim 3 , wherein the specified use plan comprises a pay per use plan.

6. The non-transitory computer-accessible memory medium of claim 5 , wherein the pay per use plan specifies one or more of:

time-metered use of the GDFP; or

use-metered use of the GDFP.

7. The non-transitory computer-accessible memory medium of claim 6 , and wherein the GDFP and the GDFP execution engine are automatically deleted from the client computer after use in accordance with the specified use plan.

8. The non-transitory computer-accessible memory medium of claim 3 , wherein the program instructions are further executable to:

receive an indication of the specified use plan from the client computer over the network; and

store information specifying the specified use plan for a user of the client computer.

9. The non-transitory computer-accessible memory medium of claim 1 , wherein the plurality of GDFPs comprise a measurement application, wherein the measurement application is executable in the web browser on the client computer to perform a specified measurement function.

10. The non-transitory computer-accessible memory medium of claim 1 , wherein the plurality of GDFPs comprise one or more of:

an automation application; or

a control application.

11. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFP comprises a model of a device, wherein the GDFP execution engine is further executable in the web browser to:

present an offer to sell the device;

receive user input specifying purchase of the device; and

send an indication of the purchase of the device over the network.

12. The non-transitory computer-accessible memory medium of claim 11 , wherein the program instructions are further executable to:

receive the indication of the purchase of the device from the client computer over the network;

wherein to assess the charge for use of the GDFP on the client computer, the program instructions are further executable to:

assess a charge for the device.

13. The non-transitory computer-accessible memory medium of claim 1 , wherein the specified use plan specifies and permits downloading and using one or more software tools for use with the GDFP, wherein the one or more software tools comprise one or more of:

a GDFP editor;

a GDFP static analyzer;

a GDFP dynamic analyzer;

a GDFP compiler; or

a GDFP interactive development environment (IDE); and

wherein the program instructions are further executable to send at least one software tool of the one or more software tools to the client computer over the network, where the at least one software tool is entirely executable in the web browser on the client computer to perform one or more functions with respect to the GDFP.

14. The non-transitory computer-accessible memory medium of claim 1 , wherein the program instructions are further executable to:

send an indication of the assessed charge to a user of the GDFP, or a representative of the user.

15. The non-transitory computer-accessible memory medium of claim 1 , wherein the program instructions are further executable to:

bill an account associated with the user in accordance with the assessed charge; or

send a bill for the assessed charge to the user of the GDFP, or a representative of the user.

16. The non-transitory computer-accessible memory medium of claim 1 , wherein the program instructions are further executable to:

receive payment for the assessed charge.

17. The non-transitory computer-accessible memory medium of claim 1 , wherein to receive payment for the assessed charge, the program instructions are executable to:

receive credit card information from the client computer over the network; and

bill the assessed charge to the credit card.

18. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFP is configured to execute in a sandbox, wherein the sandbox comprises a secure execution environment for the GDFP, and wherein the GDFP being entirely executable in the web browser comprises the GDFP being executable in the sandbox.

19. The non-transitory computer-accessible memory medium of claim 18 , wherein the sandbox is implemented by a plugin, wherein GDFP being executable in the sandbox comprises the GDFP being executable in the plugin.

20. A computer-implemented method, comprising utilizing a computer to perform:

storing a plurality of graphical data flow programs (GDFPs), wherein each GDFP comprises a respective plurality of interconnected nodes which visually indicate the functionality of the program, and is accessible and useable via web browsers executing on client computers, and wherein the GDFPs are in accordance with a data flow programming protocol in which program functions execute whenever their necessary input data are available;

storing a graphical data flow program execution engine (GDFP execution engine), wherein the GDFPs require the GDFP execution engine to execute;

establishing a network connection with a client computer over a network;

receiving a universal resource identifier (URI) from the client computer over the network, wherein the URI indicates a GDFP of the plurality of GDFPs;

sending the GDFP and the GDFP execution engine to the client computer over the network in response to the URI, wherein the GDFP execution engine is entirely executable in a web browser on the client computer to:

execute the GDFP entirely in the web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein the GDFP execution engine displays a front panel in the web browser during execution of the GDFP, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

assessing a charge for use of the GDFP on the client computer.

21. A non-transitory computer-accessible memory medium that stores program instructions executable by a processor of a client computer to:

establish a network connection with a server computer over a network, wherein the server computer stores:

a plurality of graphical data flow programs (GDFPs), wherein each GDFP comprises a respective plurality of interconnected nodes which visually indicate the functionality of the program, and is accessible and useable via web browsers executing on client computers, and wherein the GDFPs are in accordance with a data flow model of computation in which program functions execute whenever their necessary input data are available; and

a graphical data flow program execution engine (GDFP execution engine), wherein the GDFPs require the GDFP execution engine to execute;

send a universal resource identifier (URI) to the server computer over the network, wherein the URI indicates a GDFP of the plurality of GDFPs;

receive the GDFP and the GDFP execution engine from the server over the network in response to the URI;

execute the GDFP entirely in a web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein the GDFP execution engine displays a front panel in the web browser during execution of the GDFP, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

receive an indication of an assessed charge for use of the GDFP from the server computer over the network.

22. A computer-implemented method, comprising utilizing a client computer to perform:

establishing a network connection with a server computer over a network, wherein the server computer stores:

a plurality of graphical data flow programs (GDFPs), wherein each GDFP comprises a respective plurality of interconnected nodes which visually indicate the functionality of the program, and is accessible and useable via web browsers executing on client computers, and wherein the GDFPs are in accordance with a data flow model of computation in which program functions execute whenever their necessary input data are available; and

a graphical data flow program execution engine (GDFP execution engine), wherein the GDFPs require the GDFP execution engine to execute;

sending a universal resource identifier (URI) to the server computer over the network, wherein the URI indicates a GDFP of the plurality of GDFPs;

receiving the GDFP and the GDFP execution engine from the server over the network in response to the URI;

executing the GDFP entirely in a web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein said executing the GDFP comprises displaying a front panel in the web browser during, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

receiving an indication of an assessed charge for use of the GDFP from the server computer over the network.

23. A non-transitory computer-accessible memory medium that stores:

a graphical data flow program (GDFP), comprising a plurality of interconnected nodes which visually indicate the functionality of the program, wherein the GDFP is accessible and useable via web browsers executing on client computers, and wherein the GDFP is in accordance with a data flow model of computation in which program functions execute whenever their necessary input data are available;

a graphical data flow program execution engine (GDFP execution engine), wherein the GDFP requires the GDFP execution engine to execute; and

program instructions executable by a processor to:

establish a network connection with a client computer over a network;

receive a universal resource identifier (URI) from the client computer over the network, wherein the URI indicates the GDFP;

send the GDFP and the GDFP execution engine to the client computer over the network in response to the URI, wherein the GDFP execution engine is entirely executable in a web browser on the client computer to:

execute the GDFP entirely in the web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein the GDFP execution engine displays a front panel in the web browser during execution of the GDFP, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

assess a charge for use of the GDFP on the client computer.

24. A computer-implemented method, comprising utilizing a computer to perform:

storing a graphical data flow program (GDFP), comprising a plurality of interconnected nodes or icons which visually indicate the functionality of the program, wherein the GDFP is accessible and useable via web browsers executing on client computers, and wherein the GDFP is in accordance with a data flow model of computation in which program functions execute whenever their necessary input data are available;

storing a graphical data flow program execution engine (GDFP execution engine), wherein the GDFP requires the GDFP execution engine to execute;

establishing a network connection with a client computer over a network;

receiving a universal resource identifier (URI) from the client computer over the network, wherein the URI indicates the GDFP;

sending the GDFP and the GDFP execution engine to the client computer over the network in response to the URI, wherein the GDFP execution engine is entirely executable in a web browser on the client computer to:

execute the GDFP entirely in the web browser on the client computer in accordance with the data flow model of computation via the GDFP execution engine, including executing program functions of the GDFP whenever their required input data are available, wherein the GDFP execution engine displays a front panel in the web browser during execution of the GDFP, wherein the front panel comprises a graphical user interface (GUI) comprising one or more output indicators for displaying results of the GDFP execution, and/or one or more input controls for receiving user input specifying input to the GDFP; and

assessing a charge for use of the GDFP on the client computer.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2009
From: SHAH, MOHAMMED KAMRAN
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 023376/0562 →