IP Library Granted Patent US 9,026,987
Granted Patent B2
US 9,026,987 · App. 12/572,779 · Granted May 5, 2015

Client side web hosted program development environment

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,026,987
App. No.
12/572,779
Granted
May 5, 2015
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 (56)

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) associated with a graphical data flow program development environment (GDFPDE), wherein the GDFP comprises a plurality of interconnected graphical program function nodes which visually indicate the functionality of the graphical data flow program, 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; and

receive the GDFP and the GDFPDE from the server computer over the network in response to the URI, wherein the GDFPDE received from the server computer comprises a plurality of graphical function nodes which correspond to software functions;

wherein the GDFPDE is entirely executable by the client computer in a web browser to create, edit, compile or interpret, execute, and debug graphical data flow programs in the web browser, and wherein the GDFPDE is entirely executable by the client computer in the web browser to enable selection of the graphical function nodes and wiring of the selected graphical function nodes together to create and/or edit a graphical data flow program in accordance with the data flow model of computation.

2. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFPDE comprises an interpreter, and wherein to execute the graphical data flow programs in the web browser, the GDFPDE is executable to interpret the graphical data flow programs in the web browser.

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

prior to said sending the URI, send another URI to the server computer over the network, wherein the another URI specifies the GDFPDE; and

receive the GDFPDE from the server computer over the network in response to the another URI;

wherein the GDFPDE is executable in the web browser to:

receive user input specifying creation of the graphical data flow program; and

create the graphical data flow program in response to the user input.

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

execute the GDFPDE in the sandbox.

5. The non-transitory computer-accessible memory medium of claim 4 , wherein the sandbox is implemented by a plugin, wherein to execute the GDFPDE in the sandbox, the program instructions are executable to execute the GDFPDE in the plugin.

6. The non-transitory computer-accessible memory medium of claim 1 , wherein the GDFPDE is executable in the web browser to:

display the graphical data flow program in the web browser;

receive user input indicating one or more edit operations to be performed on the graphical data flow program;

edit the graphical data flow program in the web browser in accordance with the one or more edit operations, thereby generating an edited graphical data flow program;

display the edited graphical data flow program in the web browser; and

compile or interpret, execute, and analyze the edited graphical data flow program in the web browser.

7. The non-transitory computer-accessible memory medium of claim 1 , wherein to analyze the graphical data flow program, the GDFPDE is configured to:

statically analyze the graphical data flow program at edit time; or

dynamically analyze the graphical data flow program at run time.

8. A computer-implemented method, comprising 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) associated with a graphical data flow program development environment (GDFPDE), wherein the GDFP comprises a plurality of interconnected graphical program function nodes which visually indicate the functionality of the graphical data flow program, 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; and

receiving the GDFP and the GDFPDE from the server computer over the network in response to the URI, wherein the GDFPDE received from the server computer comprises a plurality of graphical function nodes which correspond to software functions;

wherein the GDFPDE is entirely executable by the client computer in a web browser to create, edit, compile or interpret, execute, and debug graphical data flow programs in the web browser, wherein the GDFPDE is entirely executable by the client computer in the web browser to enable selection of the graphical function nodes and wiring of the selected graphical function nodes together to create and/or edit a graphical data flow program in accordance with the data flow model of computation.

9. 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) associated with a graphical data flow program development environment (GDFPDE), wherein the GDFP comprises a plurality of interconnected graphical program function nodes which visually indicate the functionality of the graphical data flow program, 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; and

send the GDFP and the GDFPDE to the client computer over the network in response to the URI, wherein the GDFPDE sent from the server computer comprises a plurality of graphical function nodes which correspond to software functions;

wherein the GDFPDE is entirely executable by the client computer in a web browser of the client computer to create, edit, compile or interpret, execute, and debug graphical data flow programs in the web browser, and wherein the GDFPDE is entirely executable by the client computer in the web browser to enable selection of the graphical function nodes and wiring of the selected graphical function nodes together to create and/or edit a graphical data flow program in accordance with the data flow model of computation.

10. The non-transitory computer-accessible memory medium of claim 9 , wherein the GDFPDE comprises an interpreter, and wherein to execute the graphical data flow programs in the web browser, the GDFPDE is executable to interpret the graphical data flow programs in the web browser.

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

prior to said receiving the URI, receive another URI from the client computer over the network, wherein the another URI specifies the GDFPDE; and

send the GDFPDE to the client computer over the network in response to the another URI;

wherein the GDFPDE is executable in the web browser to:

receive user input specifying creation of the graphical data flow program; and

create the graphical data flow program in response to the user input.

12. The non-transitory computer-accessible memory medium of claim 9 , wherein the GDFPDE is configure to execute in a sandbox, wherein the sandbox comprises a secure execution environment for the GDFPDE, and wherein the GDFPDE being executable in the web browser comprises the GDFPDE being executable in the sandbox.

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

14. The non-transitory computer-accessible memory medium of claim 9 , wherein the GDFPDE is executable in the web browser to:

display the graphical data flow program in the web browser;

receive user input indicating one or more edit operations to be performed on the graphical data flow program;

edit the graphical data flow program in the web browser in accordance with the one or more edit operations, thereby generating an edited graphical data flow program;

display the edited graphical data flow program in the web browser; and

compile or interpret, execute, and analyze the edited graphical data flow program in the web browser.

15. The non-transitory computer-accessible memory medium of claim 9 , wherein to analyze the graphical data flow program, the GDFPDE is configured to:

statically analyze the graphical data flow program at edit time; or dynamically analyze the graphical data flow program at run time.

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

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) associated with a graphical data flow program development environment (GDFPDE), wherein the GDFP comprises a plurality of interconnected graphical program function nodes which visually indicate the functionality of the graphical data flow program, 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; and

send the GDFP and the GDFPDE to the client computer over the network in response to the URI, wherein the GDFPDE sent from the server computer comprises a plurality of graphical function nodes which correspond to software functions;

wherein the GDFPDE is entirely executable by the client computer in a web browser of the client computer to create, edit, compile or interpret, execute, and debug graphical data flow programs in the web browser, and wherein the GDFPDE is entirely executable by the client computer in the web browser to enable selection of the graphical function nodes and wiring of the selected graphical function nodes together to create and/or edit a graphical data flow program in accordance with the data flow model of computation.

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: CIFRA, CHRISTOPHER G.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 023375/0921 →