# US 7,062,718 B2 · Configuration diagram which graphically displays program relationship

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,062,718 B2
- Document ID: US7062718B2
- Status: Granted
- Kind: B2
- Application number: 10/113,072
- Filed: 2002-04-01
- Published: 2003-10-02
- Granted: 2006-06-13
- Earliest claimed: 2001-08-14
- Assignees: National Instruments Corporation
- Inventors: Jeffrey L. Kodosky; Darshan Shah; Steven W. Rogers
- Web page: https://patentgrep.com/patent/US7062718B2

## CPC

- G06F 8/34: Graphical or visual programming
- G05B 19/0426: {Programming the control sequence}
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/04817: using icons (graphical or visual programming using iconic symbols G06F8/34)
- G06F 3/0486: Drag-and-drop
- G06F 8/60: Software deployment
- G06F 8/61: Installation
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/025: for remote control or remote monitoring of applications
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/75: Indicating network or usage conditions on the user display
- H04L 69/329: in the application layer [OSI layer 7]
- G05B 2219/23258: GUI graphical user interface, icon, function bloc editor, labview
- G05B 2219/25067: Graphic configuration control system
- Y10S 715/967: Visual or iconic programming
- Y10S 715/97: Instrumentation and component modelling, e.g. interactive control panel
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A system and method for creating and using configuration diagrams for configuring distributed systems. The methods described herein may be used for various types of operations in configuring distributed systems, including creating programs, managing programs in the distributed system, deploying programs to various distributed devices, configuring remote execution or inter-operation of distributed programs, and executing distributed applications. Embodiments of the invention utilize graphical iconic-based techniques for performing the above operations. The configuration diagram may include device icons which represent devices and program icons which represent programs. Device icons and program icons may be associated with each other to accomplish various program creation and deployment operations. Device icons and program icons may also interact with graphical program nodes or icons. Context sensitive device connections and/or program connections are displayed. An asynchronous data flow node may be used to facilitate asynchronous data flow between two graphical programs. The distributed system may also support distributed graphical debugging.

## Claims

### Claim 1

A method for displaying an application comprising a plurality of programs, wherein the plurality of programs execute in a system comprising a plurality of hardware devices, wherein the method executes on a first computer system, the method comprising:
displaying a plurality of device icons corresponding to respective ones of the plurality of hardware devices in the system;
displaying connections between the plurality of device icons to visually indicate connections between the plurality of hardware devices; and
displaying a plurality of program icons on the display, wherein the plurality of program icons correspond to the plurality of programs, wherein one or more of the program icons are displayed proximate to respective ones of the device icons to indicate that respective programs corresponding to the program icons are stored on respective hardware devices corresponding to the device icons;
wherein the plurality of programs are configured to execute according to execution relationships among the plurality of programs;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons according to the execution relationships to visually indicate the execution relationships among the plurality of programs.

### Claim 2 (depends on 1)

The method of claim 1,
wherein said displaying the plurality of program icons on the display comprises displaying connections between the plurality of program icons to visually indicate the execution relationships among the plurality of programs.

### Claim 3 (depends on 2)

The method of claim 2,
wherein one or more of the connections between respective program icons have an appearance to indicate a type of execution relationship among programs corresponding to the respective program icons.

### Claim 4 (depends on 3)

The method of claim 3, wherein the appearance of the one or more of the connections comprises one or more of color, thickness or shading to indicate the type of execution relationship.

### Claim 5 (depends on 3)

The method of claim 3, wherein the type of execution relationship comprises one or more of an object-oriented relationship, a calling hierarchy relationship, a control flow relationship, or a data flow relationship.

### Claim 6 (depends on 2)

The method of claim 2,
wherein the displayed connections visually indicate the manner in which programs invoke other programs.

### Claim 7 (depends on 2)

The method of claim 2, further comprising:
receiving user input to associate a first program icon with a second program icon, wherein the first program icon corresponds to a first program and wherein the second program icon corresponds to a second program, wherein the user input indicates an execution relationship between the first program and the second program;
displaying a first connection between the first program icon and the second program icon in response to said user input;
wherein the first connection visually indicates the execution relationship between the first program and the second program.

### Claim 8 (depends on 7)

The method of claim 7,
wherein the user input indicates that the first program is to invoke the second program.

### Claim 9 (depends on 2)

The method of claim 2, further comprising:
receiving user input to associate a first program icon with a first device icon, wherein the first program icon corresponds to a first program and wherein the first device icon corresponds to a first hardware device, wherein the user input indicates an execution relationship between the first program and the first hardware device;
displaying a first connection between the first program icon and the first device icon in response to said user input;
wherein the first connection visually indicates the execution relationship between the first program and the first hardware device.

### Claim 10 (depends on 9)

The method of claim 9,
wherein the user input indicates that the first hardware device is to invoke the first program.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
receiving user input to associate a first program icon with a second program icon, wherein the first program icon corresponds to a first program and wherein the second program icon corresponds to a second program, wherein the user input indicates an execution relationship between the first program and the second program;
wherein said displaying the plurality of program icons is modified to visually indicate the execution relationship between the first program and the second program.

### Claim 12 (depends on 1)

The method of claim 1,
wherein the execution relationships comprise one of an object-oriented relationship, a calling hierarchy relationship, a control flow relationship, or a data flow relationship.

### Claim 13 (depends on 1)

The method of claim 1,
wherein said displaying the plurality of program icons comprises displaying a first plurality of program icons proximate to a first device icon of the plurality of device icons, wherein the first plurality of program icons corresponds to a first plurality of programs;
wherein the first plurality of programs are configured to execute according to a first execution relationship;
wherein said displaying the plurality of program icons on the display comprises displaying the first plurality of program icons according to the first execution relationship to visually indicate the first execution relationship of the first plurality of programs.

### Claim 14 (depends on 13)

The method of claim 13,
wherein said displaying the first plurality of program icons on the display comprises displaying connections between the first plurality of program icons to visually indicate the first execution relationship of the first plurality of programs.

### Claim 15 (depends on 13)

The method of claim 13,
wherein the first execution relationship comprises one of an object-oriented relationship or a calling hierarchy relationship.

### Claim 16 (depends on 13)

The method of claim 13,
wherein the specified relationship comprises one of a control flow relationship or a data flow relationship.

### Claim 17 (depends on 1)

The method of claim 1,
wherein the plurality of programs include a plurality of graphical programs;
wherein two or more of the graphical programs are related by graphical program/sub-graphical program;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons to visually indicate the graphical program/sub-graphical program relationship of the two or more graphical programs.

### Claim 18 (depends on 1)

The method of claim 1, further comprising:
displaying a first program corresponding to a first program icon in response to user input.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
receiving user input to edit the first program after said displaying the first program.

### Claim 20 (depends on 1)

The method of claim 1,
wherein the plurality of programs include a first graphical program, wherein the first graphical program includes a plurality of interconnected nodes which visually indicate functionality of the graphical program;
wherein said displaying the plurality of program icons comprises displaying a first program icon corresponding to the first graphical program;
the method further comprising displaying the first graphical program in response to user input selecting the first program icon.

### Claim 21 (depends on 20)

The method of claim 20, further comprising:
receiving user input to edit the first graphical program after said displaying the first graphical program.

### Claim 22 (depends on 1)

The method of claim 1,
wherein the plurality of programs include a first graphical program, wherein the first graphical program includes a block diagram and a user interface, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program, wherein the user interface displays one or more of data input to or output from the block diagram;
wherein said displaying the plurality of program icons comprises displaying a first program icon corresponding to the first graphical program;
the method further comprising displaying the block diagram of the first graphical program in response to user input selecting the first program icon.

### Claim 23 (depends on 1)

The method of claim 1,
wherein the plurality of programs include a first graphical program, wherein the first graphical program includes a block diagram and a user interface, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program, wherein the user interface displays one or more of data input to or output from the block diagram;
wherein said displaying the plurality of program icons comprises displaying a first program icon corresponding to the first graphical program;
the method further comprising displaying the user interface of the first graphical program in response to user input selecting the first program icon.

### Claim 24 (depends on 1)

The method of claim 1, further comprising:
receiving user input indicating a desire to associate a first program icon with a second program icon, wherein the first program icon corresponds to a first program having a first type and wherein the second program icon corresponds to a second program having a second type;
performing type checking to determine if the first type is compatible with the second type;
displaying a connection between the first program icon and the second program icon if the first type is compatible with the second type.

### Claim 25 (depends on 24)

The method of claim 24, further comprising:
indicating an invalid condition if the first type is not compatible with the second type.

### Claim 26 (depends on 1)

The method of claim 1,
wherein each respective program icon is displayed proximate to a respective hardware device to indicate that the respective program corresponding to the respective program icon is stored on the respective hardware device.

### Claim 27 (depends on 1)

The method of claim 1, further comprising:
displaying connections between the plurality of device icons, wherein the displayed connections correspond to couplings between the plurality of hardware devices.

### Claim 28 (depends on 1)

The method of claim 1, wherein each device icon has an appearance which visually indicates a type of the respective hardware device corresponding to the device icon.

### Claim 29 (depends on 1)

The method of claim 1, wherein each program icon has an appearance which visually indicates a type of the respective program corresponding to the program icon.

### Claim 30 (depends on 1)

The method of claim 1, further comprising:
automatically detecting one or more of the plurality of programs present in the system;
wherein said displaying the plurality of program icons includes automatically displaying the one or more programs icons corresponding to the one or more programs automatically detected in the system.

### Claim 31 (depends on 1)

The method of claim 1, further comprising:
automatically detecting an execution relationship in which two or more programs are configured to execute, wherein the two or more programs have corresponding two or more program icons;
wherein said displaying the plurality of program icons includes automatically displaying the two or more programs icons to visually indicate the detected execution relationship.

### Claim 32 (depends on 1)

The method of claim 1, further comprising:
automatically detecting two or more programs present in the system;
automatically detecting an execution relationship in which the two or more programs are configured to execute, wherein the two or more programs have corresponding two or more program icons;
wherein said displaying the plurality of program icons includes automatically displaying the two or more programs icons to visually indicate the detected execution relationship.

### Claim 33 (depends on 1)

The method of claim 1, further comprising:
automatically detecting the plurality of programs present in the system;
automatically detecting the execution relationships in which the plurality of programs are configured to execute;
wherein said displaying the plurality of program icons includes automatically displaying the plurality of programs icons to visually indicate the detected execution relationships.

### Claim 34 (depends on 1)

The method of claim 1, further comprising:
installing a new program on a first hardware device in the system;
automatically detecting the new program installed on the first hardware device;
automatically displaying a new program icon on the display corresponding to the new program.

### Claim 35 (depends on 34)

The method of claim 34,
wherein the new program icon is automatically displayed proximate to the first hardware device.

### Claim 36 (depends on 35)

The method of claim 35,
wherein the new program icon is displayed to visually indicate an execution relationship of the new program to other programs in the system.

### Claim 37 (depends on 34)

The method of claim 34,
wherein the first hardware device is the first computer system.

### Claim 38 (depends on 1)

The method of claim 1, further comprising:
installing a new program on a first hardware device in the system;
automatically detecting the new program installed on the first hardware device;
automatically detecting an execution relationship of the new program to other programs in the system; and
automatically displaying a new program icon on the display corresponding to the new program;
wherein the new program icon is displayed to visually indicate the execution relationships of the new program to the other programs in the system.

### Claim 39 (depends on 1)

The method of claim 1, further comprising:
executing the plurality of programs;
animating the program icons on the display as respective programs execute to visually indicate program operation to the user.

### Claim 40 (depends on 1)

The method of claim 1,
wherein said displaying the plurality of program icons on the display comprises displaying connections between the plurality of program icons to visually indicate the execution relationships among the plurality of programs;
the method further comprising:
executing the plurality of programs;
animating at least one of the program icons and the connections between program icons on the display as respective programs execute to visually indicate program operation to the user.

### Claim 41 (depends on 1)

The method of claim 1,
wherein said displaying program icons comprises displaying program icons proximate to a respective device icon in response to user selection of the respective device icon.

### Claim 42 (depends on 1)

The method of claim 1, further comprising:
the plurality of programs executing according to the execution relationships.

### Claim 43 (depends on 1)

The method of claim 1,
wherein the system is a measurement system, wherein the plurality of hardware devices include one or more measurement devices; wherein one or more of the programs perform a measurement function.

### Claim 44 (depends on 43)

The method of claim 43, further comprising:
the plurality of programs executing according to the specified relationship, wherein said executing comprises:
a first program executing on a measurement device to acquire a signal and analyze or display the signal.

### Claim 45 (depends on 43)

The method of claim 43, further comprising:
the plurality of programs executing according to the specified relationship, wherein said executing comprises:
a first program executing on a measurement device to acquire a signal;
the measurement device providing the signal to the first computer system;
a second program executing on the first computer system to analyze or display the signal.

### Claim 46 (depends on 1)

The method of claim 1,
wherein the system is an automation system, wherein the plurality of hardware devices include one or more automation devices; wherein one or more of the programs perform an automation function.

### Claim 47 (depends on 1)

The method of claim 1,
wherein the system is a distributed system, wherein at least one hardware device is located remotely from other hardware devices and is coupled to the other hardware devices over a network.

### Claim 48

A method for displaying an application comprising a plurality of programs, wherein the plurality of programs execute in a system comprising a plurality of hardware devices, wherein the method executes on a first computer system, the method comprising:
displaying a plurality of device icons corresponding to respective ones of the plurality of hardware devices in the system;
displaying connections between the plurality of device icons to visually indicate connections between the plurality of hardware devices; and
displaying a plurality of program icons proximate to a first device icon of the plurality of device icons, wherein each of the program icons corresponds to one of the plurality of programs, wherein the first device icon corresponds to a first hardware device, wherein the plurality of program icons are displayed proximate to the first device icon to indicate that respective programs corresponding to the program icons are stored on a first hardware device corresponding to the first device icon;
wherein the plurality of programs are configured to execute according to execution relationships among the plurality of programs;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons according to the execution relationships to visually indicate the execution relationships of the plurality of programs.

### Claim 49 (depends on 48)

The method of claim 48, further comprising:
displaying connections between the plurality of program icons to visually indicate the execution relationships of the plurality of programs.

### Claim 50 (depends on 49)

The method of claim 49,
wherein one or more of the connections between respective program icons have an appearance to indicate a type of execution relationship among programs corresponding to the respective program icons.

### Claim 51 (depends on 50)

The method of claim 50, wherein the appearance of the one or more of the connections comprises one or more of color, thickness or shading to indicate the type of execution relationship.

### Claim 52 (depends on 50)

The method of claim 50, wherein the type of execution relationship comprises one or more of an object-oriented relationship, a calling hierarchy relationship, a control flow relationship, or a data flow relationship.

### Claim 53 (depends on 49)

The method of claim 49,
wherein the displayed connections visually indicate the manner in which programs invoke other programs.

### Claim 54 (depends on 49)

The method of claim 49, further comprising:
receiving user input to associate a first program icon with a second program icon, wherein the first program icon corresponds to a first program and wherein the second program icon corresponds to a second program, wherein the user input indicates an execution relationship between the first program and the second program;
displaying a first connection between the first program icon and the second program icon in response to said user input;
wherein the first connection visually indicates the execution relationship between the first program and the second program.

### Claim 55 (depends on 54)

The method of claim 54,
wherein the user input indicates that the first program is to invoke the second program.

### Claim 56 (depends on 48)

The method of claim 48, further comprising:
receiving user input to associate a first program icon with a second program icon, wherein the first program icon corresponds to a first program and wherein the second program icon corresponds to a second program, wherein the user input indicates an execution relationship between the first program and the second program;
wherein said displaying the plurality of program icons is modified to visually indicate the execution relationship between the first program and the second program.

### Claim 57 (depends on 48)

The method of claim 48,
wherein the execution relationships comprise one of an object-oriented relationship, a calling hierarchy relationship, a control flow relationship, or a data flow relationship.

### Claim 58 (depends on 48)

The method of claim 48,
wherein the plurality of programs include a plurality of graphical programs;
wherein two or more of the graphical programs are related by graphical program/sub-graphical program;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons to visually indicate the graphical program/sub-graphical program relationship of the two or more graphical programs.

### Claim 59

A method for displaying an application comprising a plurality of programs, wherein the plurality of programs execute in a system comprising a first hardware device, wherein the method executes on a first computer system, the method comprising:
displaying a first device icon corresponding to the first hardware device;
receiving user input selecting the first device icon;
displaying a plurality of program icons in response to the user input selecting the first device icon, wherein the plurality of program icons are displayed proximate to the first device icon, wherein each of the program icons corresponds to one of the plurality of programs, wherein the plurality of program icons are displayed proximate to the first device icon to indicate that respective programs corresponding to the program icons are stored on the first hardware device; and
displaying connections between the plurality of program icons to visually indicate execution relationships among the plurality of programs;
wherein the plurality of programs are configured to execute according to the execution relationships.

### Claim 60 (depends on 59)

The method of claim 59,
wherein one or more of the connections between respective program icons have an appearance to indicate a type of execution relationship among programs corresponding to the respective program icons.

### Claim 61 (depends on 60)

The method of claim 60, wherein the appearance of the one or more of the connections comprises one or more of color, thickness or shading to indicate the type of execution relationship.

### Claim 62 (depends on 60)

The method of claim 60, wherein the execution relationship comprises one or more of an object-oriented relationship, a calling hierarchy relationship, a control flow relationship, or a data flow relationship.

### Claim 63

A method for displaying an application comprising a plurality of programs, wherein the plurality of programs execute in a distributed system comprising a plurality of hardware devices, wherein the method executes on a first computer system, the method comprising:
displaying a plurality of device icons corresponding to respective ones of the plurality of hardware devices in the distributed system;
displaying connections between the plurality of device icons to visually indicate connections between the plurality of hardware devices; and
displaying a plurality of program icons on the display, wherein the plurality of program icons correspond to the plurality of programs, wherein the program icons are displayed proximate to respective device icons to indicate that programs corresponding to the program icons are stored on respective hardware devices corresponding to the device icons;
wherein the plurality of programs are configured to execute according to execution relationships among the plurality of programs;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons according to the execution relationships to visually indicate the execution relationships among the plurality of programs.

### Claim 64 (depends on 63)

The method of claim 63,
wherein one or more program icons are displayed proximate to each of one or more of the plurality of device icons.

### Claim 65

A memory medium comprising program instructions for displaying an application comprising a plurality of programs, wherein the plurality of programs execute in a system comprising a plurality of hardware devices, wherein the program instructions are executable to implement:
displaying a plurality of device icons corresponding to respective ones of the plurality of hardware devices in the system;
displaying connections between the plurality of device icons to visually indicate connections between the plurality of hardware devices; and
displaying a plurality of program icons on the display, wherein the plurality of program icons correspond to the plurality of programs, wherein one or more of the program icons are displayed proximate to respective ones of the device icons to indicate that respective programs corresponding to the program icons are stored on respective hardware devices corresponding to the device icons;
wherein the plurality of programs are configured to execute according to execution relationships among the plurality of programs;
wherein said displaying the plurality of program icons on the display comprises displaying the plurality of program icons according to the execution relationships to visually indicate the execution relationships among the plurality of programs.

### Claim 66

A method for creating an application comprising a plurality of programs, wherein the plurality of programs execute in a distributed system comprising a plurality of hardware devices, wherein the method executes on a first computer system, the method comprising:
displaying a plurality of device icons corresponding to respective ones of the plurality of hardware devices in the distributed system;
displaying connections between the plurality of device icons to visually indicate connections between the plurality of hardware devices; and
displaying a plurality of program icons on the display, wherein the plurality of program icons correspond to the plurality of programs, wherein the program icons are displayed proximate to respective device icons to indicate that programs corresponding to the program icons are stored on respective hardware devices corresponding to the device icons;
wherein the plurality of programs include a first graphical program;
wherein said displaying the plurality of program icons comprises displaying a first program icon corresponding to the first graphical program;
displaying the first graphical program in response to user input selecting the first program icon.

### Claim 67 (depends on 66)

The method of claim 66,
wherein the first graphical program includes a plurality of interconnected nodes which visually indicate functionality of the graphical program.

### Claim 68 (depends on 66)

The method of claim 66, further comprising:
receiving user input to edit the first graphical program after said displaying the first graphical program.

### Claim 69 (depends on 66)

The method of claim 66,
wherein the first graphical program includes a block diagram, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program;
the method further comprising displaying the block diagram of the first graphical program in response to user input selecting the first program icon.

### Claim 70 (depends on 69)

The method of claim 69, further comprising:
receiving user input to edit the block diagram after said displaying the block diagram, wherein said user input comprises manipulating one or more nodes in the block diagram.

### Claim 71 (depends on 69)

The method of claim 69, further comprising:
executing the block diagram; and
highlighting execution of one or more nodes in the block diagram during said executing the block diagram.

### Claim 72 (depends on 66)

The method of claim 66,
wherein the first graphical program includes a block diagram and a user interface, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program, wherein the user interface displays one or more of data input to or output from the block diagram;
the method further comprising displaying the block diagram of the first graphical program in response to user input selecting the first program icon.

### Claim 73 (depends on 66)

The method of claim 66,
wherein the first graphical program includes a block diagram and a user interface, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program, wherein the user interface displays one or more of data input to or output from the block diagram;
the method further comprising displaying the user interface of the first graphical program in response to user input selecting the first program icon.
