Graphical XML programming system and engine where XML processing programs are built and represented in a graphical fashion
First Claim
1. A computer programming system for constraints-driven creation of programs:
- a programming language and its interactive visual representation as a graphical flow chart where the links between processing nodes correspond to specific execution points of the program and can be visually selected to either add new processing nodes, or display instantly at a given point in a given path the information about the data, or also known as metadata, available and/or expected known at this point and path;
a metadata computation engine configured to compute the metadata of the data manipulated and/or expected at any given point and path of a program, given a program in this language, the metadata of this program'"'"'s input and output, and an execution path and point in this program, a method and apparatus that takes as input the metadata of the data available and expected at a selected point of execution, and suggests a list of processing nodes, based on the metadata of their input and output, when known, thus enabling constraints-driven development, also known as guided development; and
a set of configuration panels for each possible type of processing node, that leverages the computed metadata of the data manipulated and/or expected and its visual representation at the execution point where the processing node is added, to enable point and click configuration of the processing node and prevent the users from selecting as parameters of the processing node, data whose known constraints do not satisfy the constraints of one or more parameters of the processing mode, thus further enabling constraints-driven development, also known as guided development; and
a processing node configuration error visual notification method, where a processing node is instantly visually highlighted if a processing node'"'"'s configuration is or becomes incorrect because the updated computed constraints of the data used by the processing node are not longer compatible with the processing node'"'"'s constraints, thus enabling error detection as the program is being designed, also known as real-time error detection for change management; and
a program validation engine that explores all execution paths, computes the resulting constraints for each possible execution path, and validates that they are consistent with program'"'"'s output constraints, and if not, notifies the user through a list execution paths and points where computed constraints did not match output constraints, thus enabling overall program validation and accelerating trouble shooting; and
22 Assignments
0 Petitions
Accused Products
Abstract
A system and methods are provided for operating and building graphically XML processing programs, guiding the user in development of the program, preventing and detecting development errors as the program is being designed, ensuring that the program is valid, i.e. satisfies required input and output constraints at all times, i.e. from the time it is developed to when it is deployed in a production environment, ensuring the automated change management if the internal logic of the Web service, or data sources called by the service or the schema that underlies the Web service are modified. The system includes a graphical XML Programming system where XML processing programs are built and represented in a graphical fashion, a real-time metadata computation and visualization method for each selected execution point in the visual program that provides guided programming, error prevention and detection, and change impact analysis and change management, and, an automated execution path exploration method that enables overall program validation and error identification. The system and methods allow a user to reduce by at least a factor of 2 the costs of development and maintenance of reliable XML processing programs such as Web Services.
82 Citations
13 Claims
-
1. A computer programming system for constraints-driven creation of programs:
-
a programming language and its interactive visual representation as a graphical flow chart where the links between processing nodes correspond to specific execution points of the program and can be visually selected to either add new processing nodes, or display instantly at a given point in a given path the information about the data, or also known as metadata, available and/or expected known at this point and path;
a metadata computation engine configured to compute the metadata of the data manipulated and/or expected at any given point and path of a program, given a program in this language, the metadata of this program'"'"'s input and output, and an execution path and point in this program, a method and apparatus that takes as input the metadata of the data available and expected at a selected point of execution, and suggests a list of processing nodes, based on the metadata of their input and output, when known, thus enabling constraints-driven development, also known as guided development; and
a set of configuration panels for each possible type of processing node, that leverages the computed metadata of the data manipulated and/or expected and its visual representation at the execution point where the processing node is added, to enable point and click configuration of the processing node and prevent the users from selecting as parameters of the processing node, data whose known constraints do not satisfy the constraints of one or more parameters of the processing mode, thus further enabling constraints-driven development, also known as guided development; and
a processing node configuration error visual notification method, where a processing node is instantly visually highlighted if a processing node'"'"'s configuration is or becomes incorrect because the updated computed constraints of the data used by the processing node are not longer compatible with the processing node'"'"'s constraints, thus enabling error detection as the program is being designed, also known as real-time error detection for change management; and
a program validation engine that explores all execution paths, computes the resulting constraints for each possible execution path, and validates that they are consistent with program'"'"'s output constraints, and if not, notifies the user through a list execution paths and points where computed constraints did not match output constraints, thus enabling overall program validation and accelerating trouble shooting; and
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13)
-
Specification