VISUALIZING EXECUTED PATHS IN WORKFLOWS USING HIGHLIGHTED PATH REPRESENTATIONS IN A TIERED SOFTWARE FRAMEWORK
In a workflow visualizer, instructions are received from a first user interface in a first computing device to visualize an instance of a published workflow that at least partially competed execution. The instructions are received at a second computing device. An execution log library is searched for an execution log having a unique execution identifier of the executed instance. Responsive to finding the execution log, step identifiers of the individual steps are extracted from the execution log and stored in an array. A second user interface is initiated in the first computing device; and the instance of the workflow is automatically rendered in the second user interface as a color-coded graph highlighting an executed path of the instance against unexecuted nodes and edges of the workflow.
1 . A method for visualizing workflows in a tiered software framework, the method comprising:
receiving instructions from a first user interface in a first computing device to visualize an instance of a published workflow, wherein:
the instructions are received at a second computing device,
the instance at least partially completed execution,
the instance is identified by a unique execution identifier, and
the workflow is represented in a data container identified by a unique workflow identifier, the data container comprising at least nodes identified by respective unique step identifiers and edges representing dependencies between the nodes;
responsive to receiving the instructions at the second computing device, searching an execution log library for an execution log associated with the unique execution identifier, wherein:
the execution log comprises status of individual steps of the workflow completed during execution of the instance, and
the execution log library is configured for inverted indexing;
responsive to finding the execution log, extracting step identifiers of the individual steps from the execution log, and storing the step identifiers in an array;
initiating a second user interface in the first computing device; and
automatically rendering the instance of the workflow in the second user interface as a color-coded graph highlighting an executed path of the instance against unexecuted nodes and edges of the workflow.
2 . The method of claim 1 , wherein the rendering comprises, for each node in the workflow identified by a step identifier:
parsing the array for the step identifier;
responsive to finding the step identifier in the array, rendering the node in a first color;
responsive to not finding the step identifier in the array, rendering the node in a second color; and
responsive to finding the step identifier and another step identifier corresponding to another node in the array, and determining that an edge between the node and the another node is a parent-child dependency, rendering the edge in the first color.
3 . The method of claim 2 , further comprising:
responsive to identifying a discontinuity in the workflow represented by a “go to” condition:
identifying a source node and a destination node of the discontinuity; and
rendering the workflow with another edge connecting the source node and the destination node.
4 . The method of claim 2 , further comprising, responsive to finding that the status of the step identifier in the workflow execution log indicates an error, rendering the node in a third color.
5 . The method of claim 1 , further comprising:
responsive to receiving the instructions, instantiating a sandbox in the second computing device, wherein:
the array is stored in the sandbox, and
the second user interface is rendered in the sandbox.
6 . The method of claim 5 , further comprising:
responsive to instantiating the sandbox, searching a workflow database for the data container associated with the workflow identifier; and
responsive to finding the data container, analyzing the nodes in the data container against the step identifiers in the array.
7 . The method of claim 1 , wherein:
the tiered software framework comprises a first tier, a second tier, and a third tier,
the first tier is upstream from the second tier and the third tier, and the third tier is downstream from the first tier and the second tier, and
data access among the first tier, the second tier and the third tier is governed by data access policies, such that upstream data is not accessible by downstream tiers and downstream data is accessible by upstream tiers.
8 . The method of claim 1 , wherein:
the execution log comprises text including searchable tokens, and
the searchable tokens are mapped to corresponding execution logs in which they appear.
9 . Non-transitory computer-readable tangible media that includes instructions for execution, which when executed by a processor of a computing device, is operable to perform operations comprising:
receiving instructions from a first user interface in a first computing device to visualize an instance of a published workflow, wherein:
the instructions are received at a second computing device,
the instance at least partially completed execution,
the instance is identified by a unique execution identifier, and
the workflow is represented in a data container identified by a unique workflow identifier, the data container comprising at least nodes identified by respective unique step identifiers and edges representing dependencies between the nodes;
responsive to receiving the instructions at the second computing device, searching an execution log library for an execution log associated with the unique execution identifier, wherein:
the execution log comprises status of individual steps of the workflow completed during execution of the instance, and
the execution log library is configured for inverted indexing;
responsive to finding the execution log, extracting step identifiers of the individual steps from the execution log, and storing the step identifiers in an array;
initiating a second user interface in the first computing device; and
automatically rendering the instance of the workflow in the second user interface as a color-coded graph highlighting an executed path of the instance against unexecuted nodes and edges of the workflow.
10 . The non-transitory computer-readable tangible media of claim 9 , wherein the rendering comprises, for each node in the workflow identified by a step identifier:
parsing the array for the step identifier;
responsive to finding the step identifier in the array, rendering the node in a first color;
responsive to not finding the step identifier in the array, rendering the node in a second color; and
responsive to finding the step identifier and another step identifier corresponding to another node in the array, and determining that an edge between the node and the another node is a parent-child dependency, rendering the edge in the first color.
11 . The non-transitory computer-readable tangible media of claim 10 , the operations further comprising: responsive to identifying a discontinuity in the workflow represented by a “go to” condition:
identifying a source node and a destination node of the discontinuity; and
rendering the workflow with another edge connecting the source node and the destination node.
12 . The non-transitory computer-readable tangible media of claim 10 , wherein the operations further comprise: responsive to finding that the status of the step identifier in the workflow execution log indicates an error, rendering the node in a third color.
13 . The non-transitory computer-readable tangible media of claim 9 , wherein the operations further comprise:
responsive to receiving the instructions, instantiating a sandbox in the second computing device, wherein:
the array is stored in the sandbox, and
the second user interface is rendered in the sandbox.
14 . The non-transitory computer-readable tangible media of claim 13 , wherein the operations further comprise:
responsive to instantiating the sandbox, searching a workflow database for the data container associated with the workflow identifier; and
responsive to finding the data container, analyzing the nodes in the data container against the step identifiers in the array.
15 . An apparatus comprising:
a processing circuitry;
a memory storing data; and
a communication circuitry, wherein the processing circuitry executes instructions associated with the data, the processing circuitry is coupled to the communication circuitry and the memory, and the processing circuitry and the memory cooperate, such that the apparatus is configured for:
receiving instructions from a first user interface in a computing device to visualize an instance of a published workflow, wherein:
the instructions are received at the apparatus,
the instance at least partially completed execution,
the instance is identified by a unique execution identifier, and
the workflow is represented in a data container identified by a unique workflow identifier, the data container comprising at least nodes identified by respective unique step identifiers and edges representing dependencies between the nodes;
responsive to receiving the instructions, searching an execution log library for an execution log associated with the unique execution identifier, wherein:
the execution log comprises status of individual steps of the workflow completed during execution of the instance, and
the execution log library is configured for inverted indexing;
responsive to finding the execution log, extracting step identifiers of the individual steps from the execution log, and storing the step identifiers in an array;
initiating a second user interface in the computing device; and
automatically rendering the instance of the workflow in the second user interface as a color-coded graph highlighting an executed path of the instance against unexecuted nodes and edges of the workflow.
16 . The apparatus of claim 15 , wherein the rendering comprises, for each node in the workflow identified by a step identifier:
parsing the array for the step identifier;
responsive to finding the step identifier in the array, rendering the node in a first color;
responsive to not finding the step identifier in the array, rendering the node in a second color; and
responsive to finding the step identifier and another step identifier corresponding to another node in the array, and determining that an edge between the node and the another node is a parent-child dependency, rendering the edge in the first color.
17 . The apparatus of claim 16 , further configured for:
responsive to identifying a discontinuity in the workflow represented by a “go to” condition:
identifying a source node and a destination node of the discontinuity; and
rendering the workflow with another edge connecting the source node and the destination node.
18 . The apparatus of claim 16 , further configured for: responsive to finding that the status of the step identifier in the workflow execution log indicates an error, rendering the node in a third color.
19 . The apparatus of claim 15 , further configured for:
responsive to receiving the instructions, instantiating a sandbox in the second computing device, wherein:
the array is stored in the sandbox, and
the second user interface is rendered in the sandbox.
20 . The apparatus of claim 19 , further configured for:
responsive to instantiating the sandbox, searching a workflow database for the data container associated with the workflow identifier; and
responsive to finding the data container, analyzing the nodes in the data container against the step identifiers in the array.