Method and apparatus for resolving divergent paths in graphical programming environments
First Claim
1. A method for use in running an application program that corresponds to a flow diagram formed by interconnecting a plurality of symbolic representations with one or more wire constructs, the symbolic representations corresponding to program objects having one or more input properties having values and configured to execute associated functions using the values of their input properties, the flow diagram representing a logical flow of information among program objects for setting input property values, the method comprising the steps of:
- determining that at least one fork exists within the flow diagram;
invalidating the input properties of the program objects whose symbolic representations within the flow diagram are disposed downstream of the at least one fork;
after the step of invalidating, permitting the logical flow of information along at least a portion of the diagram, thereby causing one or more input property values of one or more program objects to be set;
in response to setting a particular input property value of a given program object, validating the respective input property; and
blocking the given program object from executing its associated function until its remaining input properties have been validated.
6 Assignments
0 Petitions
Accused Products
Abstract
The invention relates to a mechanism for detecting forks within data flow diagrams corresponding to application programs and for controlling the execution of such application programs. The flow diagram is preferably formed by interconnecting a plurality of symbolic representations of program objects with a plurality of wire constructs. The symbolic representations correspond to program objects having input properties and configured to execute pre-defined functions based on the values of its input properties. The flow diagram preferably represents a logical flow of information used to set the input property values of the program objects. According to the invention, the input properties of the program objects are first invalidated. Next, information is allowed to flow along at least a portion of the diagram, thereby setting one or more of the program objects'"'"' input property values. In response to having its input property value set, the program object validates the respective input property. The program objects are further configured to wait until all of their input properties have been validated before executing their associated functions.
-
Citations
15 Claims
-
1. A method for use in running an application program that corresponds to a flow diagram formed by interconnecting a plurality of symbolic representations with one or more wire constructs, the symbolic representations corresponding to program objects having one or more input properties having values and configured to execute associated functions using the values of their input properties, the flow diagram representing a logical flow of information among program objects for setting input property values, the method comprising the steps of:
-
determining that at least one fork exists within the flow diagram;
invalidating the input properties of the program objects whose symbolic representations within the flow diagram are disposed downstream of the at least one fork;
after the step of invalidating, permitting the logical flow of information along at least a portion of the diagram, thereby causing one or more input property values of one or more program objects to be set;
in response to setting a particular input property value of a given program object, validating the respective input property; and
blocking the given program object from executing its associated function until its remaining input properties have been validated. - View Dependent Claims (2, 3, 4, 5, 6, 7)
the symbolic representations of the program objects within the flow diagram include event terminals;
each wire construct interconnects the event terminal of a first program object with a second program object, and is configured to set the value of an input property of the second program object; and
the step of determining comprises the step of determining that two or more wire constructs are connected to the same event terminal.
-
-
3. The method of claim 2 wherein:
-
the program object whose event terminal the two or more wire constructs are connected has one or more output properties having values;
the two or more wire constructs are configured to use the same output property value to set the value of the input property of the respective second program objects to which they are connected.
-
-
4. The method of claim 3 wherein the program objects further include an invalid property and the step of invalidating comprises setting the invalid property of the respective program object to an identifier of the input property being invalidated.
-
5. The method of claim 4 further comprising the step of, in response to the program object'"'"'s invalid property being set to the identifier of the input property being invalidated, the program object asserts a flag associated with the respective input property, wherein
the step of validating comprises the step of clearing the flag in response to the respective input property'"'"'s value being set. -
6. The method of claim 2 wherein;
-
the program object whose event terminal the two or more wire constructs are connected has one or more output properties having values;
the two or more wire constructs are configured to use related output property values to set the value of the input property of the respective second program objects to which they are connected.
-
-
7. The method of claim 2 wherein each wire construct of the flow diagram that is connected to an event terminal of an upstream program property object has a source property identifying the upstream program object and a source group property specifying a group to which the event terminal belongs, and the step of determining further comprises the steps of:
-
comparing the source properties of all wire constructs disposed in the flow diagram;
comparing the source_group properties of all wire constructs disposed in the flow diagram; and
considering all wire constructs whose source properties are the same and whose source_group properties are the same to be located at a fork of the flow diagram.
-
-
8. A method for use in running an application program corresponding to a flow diagram formed by interconnecting a plurality of symbolic representations, the symbolic representations corresponding to program objects having one or more input properties having values and configured to execute associated functions using the values of their input properties, the flow diagram representing a logical flow of information among program objects for setting input property values, the method comprising the steps of:
-
invalidating the input properties of at least some of the program objects;
after the step of invalidating, permitting the logical flow of information along at least a portion of the diagram, thereby causing one or more input property values of one or more program objects to be set;
in response to setting a particular input property value of a given program object, validating the respective input property; and
blocking the given program object from executing its associated function until its remaining input properties have been validated.
-
-
9. A storage medium containing program instructions readable by a computer for use in running an application program that corresponds to a flow diagram formed by interconnecting a plurality of symbolic representations with one or more wire constructs, the symbolic representations corresponding to program objects having one or more input properties having values and configured to execute associated functions using the values of their input properties, the flow diagram representing a logical flow of information among program objects for setting input property values, the readable program instructions comprising program instructions for:
-
determining that at least one fork exists within the flow diagram;
invalidating the input properties of the program objects whose symbolic representations within the flow diagram are disposed downstream of the at least one fork;
after the program instructions for invalidating, permitting the logical flow of information along at least a portion of the diagram, thereby causing one or more input property values of one or more program objects to be set;
in response to setting a particular input property value of a given program object, validating the respective input property; and
blocking the given program object from executing its associated function until its remaining input properties have been validated. - View Dependent Claims (10, 11, 12, 13, 14, 15)
the symbolic representations of the program objects within the flow diagram include event terminals;
each wire construct interconnects the event terminal of a first program object with a second program object, and is configured to set the value of an input property of the second program object; and
the program instructions for determining comprises program instructions for determining that two or more wire constructs are connected to the same event terminal.
-
-
11. The storage medium of claim 10 wherein:
-
the program object whose event terminal the two or more wire constructs are connected has one or more output properties having values;
the two or more wire constructs are configured to use the same output property value to set the value of the input property of the respective second program objects to which they are connected.
-
-
12. The storage medium of claim 11 wherein the program objects further include an invalid property and the program instructions for invalidating comprise program instructions for setting the invalid property of the respective program object to an identifier of the input property being invalidated.
-
13. The storage medium of claim 12 further comprising the step of, in response to the program object'"'"'s invalid property being set to the identifier of the input property being invalidated, the program object asserts a flag associated with the respective input property, wherein
the step of validating comprises the step of clearing the flag in response to the respective input property'"'"'s value being set. -
14. The storage medium of claim 10 wherein;
-
the program object whose event terminal the two or more wire constructs are connected has one or more output properties having values;
the two or more wire constructs are configured to use related output property values to set the value of the input property of the respective second program objects to which they are connected.
-
-
15. The storage medium of claim 10 wherein each wire construct of the flow diagram that is connected to an event terminal of an upstream program property object has a source property identifying the upstream program object and a source_group property specifying a group to which the event terminal belongs, and the step of determining further comprises the steps of:
-
comparing the source properties of all wire constructs disposed in the flow diagram;
comparing the source_group properties of all wire constructs disposed in the flow diagram; and
considering all wire constructs whose source properties are the same and whose source_group properties are the same to be located at a fork of the flow diagram.
-
Specification