×

Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity

  • US 7,272,820 B2
  • Filed: 10/01/2003
  • Issued: 09/18/2007
  • Est. Priority Date: 12/12/2002
  • Status: Expired due to Fees
First Claim
Patent Images

1. A computer-implemented method for graphical development of fully executable workflow applications, wherein said fully executable workflow applications are stored in a form of computer-executable program code in computer memory, a processor runs the workflow operation by invoking said program code, said program code facilitates processing of workflow orders, wherein said method for graphical development comprises the following steps:

  • (A) Describing an element of workflow-process graphically with software that accepts interactive user input;

    (B) Interpreting the user input to obtain workflow-related data and transforming obtained workflow-related data into an incremental modification of incrementally constructed set of class objects that represents a workflow-process description;

    (C) Repeating steps (A) and (B) in a loop until workflow-process description is complete;

    (D) Extracting workflow-process-related data from the set of class objects and transforming the extracted workflow-process-related data into a workflow-process definition;

    (E) Generating source code of the workflow application software, compiling instructions, and linking instruction from the workflow-process definition;

    (F) Compiling the source code of the workflow application software with the compiling instructions;

    (G) Linking result of the performed compiling with generated linking instructions;

    andwherein said method further comprises defining a work-flow-process comprising the following steps;

    (a) Establishing a matrix of workflow-activities, wherein said workflow-activities are individual items of work comprised by a potential workflow-process where all transactional operations potentially performed by each one of said individual items are potentially executed as a single transaction within each one of said workflow-activities of said potential workflow-process, and wherein said establishing the matrix further comprises;

    (i) Arranging workflow-activities comprised by the workflow-process being defined according to required sequence of execution of said workflow-activities within said workflow-process and according to possibilities for concurrent execution of some of said workflow-activities within said workflow-process;

    (ii) Defining a constant, named PROCESS_STEPS, representing a number of sequential steps of execution of a workflow-process being defined, wherein on each one of said sequential steps of execution either one activity is executed, or either two or more activities are executed concurrently;

    (iii) Defining a constant, named MAX_STEP_DEPTH, representing a maximum number of workflow-activities executed concurrently on one step of workflow-process being defined;

    (iv) Declaring and initializing a two-dimensional array of Boolean elements being a workflow-activities matrix, with dimensions MAX_STEP_DEPTH by PROCESS_STEPS, wherein an array element with value TRUE represents existence of a workflow-activity on position in said workflow-activities-matrix with coordinates equal to said array element indexes and wherein an array element with value FALSE represents non-existence of a workflow-activity on position in said workflow-activities with coordinates equal to said array element indexes;

    (b) Defining a main flow-graph, wherein the defining matrix of workflow-activities are further being represented as nodes of said flow-graph by incorporating control-connectors in order to represent a potential flow-of-control between said nodes within a potential workflow-process, wherein each said control-connector signals successful execution of its sourcing workflow-activity with execution result having value TRUE, wherein two or more control-connectors sourcing from one of said nodes initiate concurrent execution of destination nodes of said control-connectors, wherein two or more control-connectors having a common destination node impose a requirement for synchronizing conjunction of signals of all control-connectors incoming to said common destination node in order to trigger execution of said common destination node, wherein said defining the main flow-graph further comprises;

    (i) Defining a constant, named MAX_CONNECT_OUT, representing maximum number of main control-connectors sourcing from one flow-graph node representing a workflow-activity in workflow-process being defined;

    (ii) Declaring and initializing a two-dimensional array of integer elements with dimensions MAX_CONNECT_OUT by 2 per workflow-activity for each one of activities belonging to workflow steps with numbers from 1 to (PROCESS_STEPS-1), wherein values of each pair of elements of said array represent indexes of the initialized two-dimensional array of workflow-activities and thereby describe a position of a workflow-activity in said workflow-activities matrix,wherein said described positions of MAX_CONNECT_OUT workflow-activities in said workflow-activities matrix are positions of destination workflow-activities of MAX_CONNECT_OUT control-connectors having common source workflow-activity with potential execution result having value TRUE;

    (c) Defining one or more alternative control connectors, wherein each one of said alternative control connectors signals successful execution of its sourcing workflow-activity with execution result having value FALSE, wherein two or more of said alternative control-connectors sourcing from same workflow-activity initiate concurrent execution of destination workflow-activities of said alternative control-connectors, wherein a workflow-activity having established during the defining main flow-graph a requirement for synchronizing conjunction of signals of all incoming to it control-connectors cannot be a destination workflow-activity of an alternative control connector, wherein defining the one or more alternative control-connectors further comprises;

    (i) Defining a constant, named MAX_ALTCONNECT_OUT, representing maximum number of alternative control-connectors sourcing from one flow-graph node representing a workflow-activity in workflow-process being defined;

    (ii) Declaring and initializing a two-dimensional array of integer elements with dimensions MAX_ALTCONNECT_OUT by 2 per workflow-activity for each one of activities belonging to workflow steps with numbers from 1 to (PROCESS_STEPS-1), wherein values of each pair of elements of said array represent indexes of the initialized two-dimensional array of workflow-activities and thereby describe the position of a workflow-activity in said workflow-activities matrix, wherein said described positions of MAX_ALTCONNECT_OUT workflow-activities in said workflow-activities matrix are positions of destination workflow-activities of MAX_ALTCONNECT_OUT control-connectors having common source workflow-activity with potential execution result having value FALSE;

    (d) Defining workflow-components matrix, wherein every element of said workflow-components matrix represents a software component, associated with a workflow-activity of workflow-process being defined, for potential plugging for execution as part of a potential single transaction within said workflow-activity of the workflow-process, wherein the defining of the workflow-component matrix further comprises;

    (i) Declaring a two-dimensional array of elements of type UUID (Universal Unique Identifier, interchangeable with the term GUID, Globally Unique Identifier) with dimensions identical to dimensions of the declared two-dimensional array representing workflow-activities matrix;

    (ii) Initializing elements of the declared array in the following manner;

    for every element of said array representing the workflow-activities matrix with value TRUE to be initialized corresponding element with identical indexes in array representing workflow-components matrix with UUID value representing a software component to be associated with represented workflow-activity, and for every element of said array representing workflow-activities matrix with value FALSE to be initialized corresponding element with identical indexes in array representing workflow-components matrix with UUID value indicating a dummy UUID.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×