IP Library Granted Patent US 8,656,344
Granted Patent B2
US 8,656,344 · App. 12/572,550 · Granted Feb 18, 2014

Executing a graphical data flow program in a browser

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,656,344
App. No.
12/572,550
Granted
Feb 18, 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 (110)

1. 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;

send a universal resource identifier (URI) to the server computer over the network, wherein the URI indicates a graphical data flow program (GDFP) or a GDFP execution engine, wherein the GDFP comprises a block diagram that includes a plurality of interconnected nodes or icons which visually indicate the functionality of the program, and wherein the GDFP requires the GDFP execution engine to execute;

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

execute the GDFP in a web browser on the client computer via the GDFP execution engine, including executing the block diagram of the GDFP in the web browser, wherein the nodes or icons of the block diagram execute whenever their necessary input data are available; and

display an indication of executing the GDFP in the web browser.

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

receive user input to the web browser invoking execution of the GDFP;

wherein the GDFP is executed in the browser in response to the received user input.

3. The non-transitory computer-accessible memory medium of claim 1 , wherein to execute the GDFP in a web browser via the GDFP execution engine, the program instructions are further executable to:

access one or more web services over the network; or

invoke execution of one or more programs or subprograms on other devices over the network.

4. The non-transitory computer-accessible memory medium of claim 1 ,

wherein the GDFP is a pre-existing GDFP, wherein the GDFP execution engine is associated with the pre-existing GDFP, and wherein the URI specifies the pre-existing GDFP, thereby also indicating the associated GDFP execution engine; and

wherein the program instructions are further executable to:

receive the GDFP from the server computer in response to the URI.

5. The non-transitory computer-accessible memory medium of claim 4 , wherein the GDFP execution engine comprises an interpreter, and wherein to execute the GDFP in the web browser, the GDFP execution engine interprets the GDFP.

6. The non-transitory computer-accessible memory medium of claim 1 , wherein to receive the GDFP from the server computer, the program instructions are executable to:

receive graphical source code of the GDFP and an executable of the GDFP;

wherein to execute the GDFP in a web browser via the GDFP execution engine, the GDFP execution engine executes the executable of the GDFP; and

wherein the program instructions are further executable to:

display the graphical source code of the GDFP in the web browser on a display.

7. The non-transitory computer-accessible memory medium of claim 1 ,

wherein the GDFP is not a pre-existing GDFP, wherein the URI specifies the GDFP execution engine, and wherein the GDFP execution engine comprises a GDFP editor; and

wherein the GDFP execution engine is executable in the web browser to:

receive user input specifying creation of the GDFP; and

create the GDFP in response to the user input.

8. The non-transitory computer-accessible memory medium of claim 7 , wherein the GDFP execution engine comprises an interpreter, and wherein to execute the GDFP in the web browser, the GDFP execution engine interprets the GDFP.

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

send the created GDFP to the server computer over the network for compilation;

receive an executable for the GDFP from the server computer; and

wherein to execute the GDFP in the web browser, the GDFP execution engine executes the executable of the GDFP in the web browser.

10. The non-transitory computer-accessible memory medium of claim 7 , wherein the GDFP execution engine comprises a compiler that is executable in the web browser to:

compile the created GDFP in the web browser, thereby generating an executable of the created GDFP; and

wherein the GDFP execution engine is executable in the web browser to:

execute the executable of the edited GDFP in the web browser.

11. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFP execution engine is configured to execute in a sandbox, wherein the sandbox comprises a secure execution environment for the GDFP execution engine, and wherein to execute the GDFP in a web browser via the GDFP execution engine, the program instructions are executable to:

execute the GDFP in the sandbox via the GDFP execution engine.

12. The non-transitory computer-accessible memory medium of claim 11 , wherein the sandbox is implemented by a plugin, wherein to execute the GDFP in the sandbox via the GDFP execution engine, the program instructions are executable to execute the GDFP in the plugin via the GDFP execution engine.

13. The non-transitory computer-accessible memory medium of claim 1 , wherein to display an indication of executing the GDFP in the web browser, the program instructions are further executable to:

display a graphical user interface (GUI) of the GDFP in the web browser on a display,

wherein the GUI is configured to:

display results of the GDFP execution; or

receive user input specifying input to the GDFP.

14. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFP is embedded in a web page, wherein the URI references the web page, thereby indicating the GDFP, and wherein to receive the GDFP execution engine from the server computer over the network in response to the URI, the program instructions are executable to:

receive the web page from the server computer over the network, including the GDFP and the GDFP execution engine; and

wherein to execute the GDFP in a web browser via the GDFP execution engine, the program instructions are further executable to:

display the web page on a display; and

display results of executing the GDFP in the web page on the display.

15. The non-transitory computer-accessible memory medium of claim 14 , wherein the GDFP execution engine comprises a GDFP player, and wherein to execute the GDFP in a web browser via the GDFP execution engine, the program instructions are executable to execute the GDFP in a web browser via the GDFP player.

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

utilizing a client computer to perform:

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

sending a universal resource identifier (URI) to the server computer over the network, wherein the URI indicates a graphical data flow program (GDFP) or a GDFP execution engine, wherein the GDFP comprises a block diagram that includes a plurality of interconnected nodes or icons which visually indicate the functionality of the program, and wherein the GDFP requires the GDFP execution engine to execute;

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

executing the GDFP in a web browser on the client computer via the GDFP execution engine, including executing the block diagram of the GDFP in the web browser, wherein the nodes or icons of the block diagram execute whenever their necessary input data are available; and

displaying an indication of executing the GDFP in the web browser.

17. A non-transitory computer-accessible memory medium that stores 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 graphical data flow program (GDFP) or a GDFP execution engine, wherein the GDFP comprises a block diagram that includes a plurality of interconnected nodes or icons which visually indicate the functionality of the program, and wherein the GDFP requires the GDFP execution engine to execute;

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

execute the GDFP in the web browser on the client computer, including executing the block diagram of the graphical program in the web browser, wherein the nodes or icons of the block diagram execute whenever their necessary input data are available; and

display an indication of executing the GDFP in the web browser.

18. The non-transitory computer-accessible memory medium of claim 17 , wherein the GDFP execution engine is executable in a web browser on the client computer to:

execute the GDFP in the web browser in response to user input received to the web browser invoking execution of the GDFP.

19. The non-transitory computer-accessible memory medium of claim 17 , wherein to execute the GDFP in a web browser, the GDFP execution engine is executable to:

access one or more web services over the network; or

invoke execution of one or more programs or subprograms on other devices over the network.

20. The non-transitory computer-accessible memory medium of claim 17 ,

wherein the GDFP is a pre-existing GDFP, wherein the GDFP execution engine is associated with the pre-existing GDFP, and wherein the URI specifies the pre-existing GDFP, thereby also indicating the associated GDFP execution engine; and

wherein the program instructions are further executable to:

send the GDFP to the client computer in response to the URI.

21. The non-transitory computer-accessible memory medium of claim 18 , wherein the GDFP execution engine comprises an interpreter, and wherein to execute the GDFP in the web browser, the GDFP execution engine interprets the GDFP.

22. The non-transitory computer-accessible memory medium of claim 17 , wherein to send the GDFP to the client computer, the program instructions are executable to:

send graphical source code of the GDFP and an executable of the GDFP;

wherein to execute the GDFP in a web browser, the GDFP execution engine executes the executable of the GDFP; and

wherein the graphical source code of the GDFP is displayable in the web browser on a display.

23. The non-transitory computer-accessible memory medium of claim 17 ,

wherein the GDFP is not a pre-existing GDFP, wherein the URI specifies the GDFP execution engine, and wherein the GDFP execution engine comprises a GDFP editor; and

wherein the GDFP execution engine is executable in the web browser to:

receive user input specifying creation of the GDFP; and

create the GDFP in response to the user input.

24. The non-transitory computer-accessible memory medium of claim 23 , wherein the GDFP execution engine comprises an interpreter, and wherein to execute the GDFP in the web browser, the GDFP execution engine interprets the GDFP.

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

receive the created GDFP from the client computer over the network;

compile the created GDFP, thereby generating an executable of the GDFP; and

send the executable of the GDFP to the client computer over the network.

26. The non-transitory computer-accessible memory medium of claim 24 ,

wherein the GDFP execution engine comprises a compiler that is executable in the web browser to:

compile the created GDFP in the web browser, thereby generating an executable of the created GDFP; and

wherein the GDFP execution engine being executable in the web browser to execute the GDFP comprises the GDFP execution engine being executable in the web browser to execute the executable of the created GDFP.

27. The non-transitory computer-accessible memory medium of claim 17 , wherein the GDFP execution engine is configured to execute in a sandbox, wherein the sandbox comprises a secure execution environment for the GDFP execution engine, and wherein to execute the GDFP in a web browser, the GDFP execution engine is executable to:

execute the GDFP in the sandbox.

28. The non-transitory computer-accessible memory medium of claim 27 , wherein the sandbox is implemented by a plugin, wherein to execute the GDFP in the sandbox, the GDFP execution engine is executable to execute the GDFP in the plugin.

29. The non-transitory computer-accessible memory medium of claim 17 , wherein to display an indication of executing the GDFP in the web browser, the GDFP execution engine is executable to:

display a graphical user interface (GUI) of the GDFP in the web browser on a display,

wherein the GUI is configured to:

display results of the GDFP execution; or

receive user input specifying input to the GDFP.

30. The non-transitory computer-accessible memory medium of claim 17 , wherein the GDFP is embedded in a web page, wherein the URI references the web page, thereby indicating the GDFP, and wherein to send the GDFP execution engine to the client computer over the network in response to the URI, the program instructions are executable to:

send the web page to the client computer over the network, including the GDFP and the GDFP execution engine; and

wherein to execute the GDFP in a web browser, the GDFP execution engine is further executable to:

display results of executing the GDFP in the web page on the display.

31. The non-transitory computer-accessible memory medium of claim 30 , wherein the GDFP execution engine comprises a GDFP player, and wherein to execute the GDFP in a web browser via the GDFP execution engine, the GDFP execution engine is executable to execute the GDFP in a web browser via the GDFP player.

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

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 graphical data flow program (GDFP) or a GDFP execution engine, wherein the GDFP comprises a block diagram that includes a plurality of interconnected nodes or icons which visually indicate the functionality of the program, and wherein the GDFP requires the GDFP execution engine to execute;

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

execute the GDFP in the web browser on the client computer, including executing the block diagram of the graphical program in the web browser, wherein the nodes or icons of the block diagram execute whenever their necessary input data are available; and

display an indication of executing the GDFP in the web browser.

Assignments (7)
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 →
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 →
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 Jan 18, 2012
From: CARMICHAEL, PHILIP G.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 027553/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2010
From: AUSTIN, PAUL F.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 024859/0968 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2009
From: AUSTIN, PAUL F.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 023375/0870 →