Workflow Engine Concurrent Sub Process Control via Identifier Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing workflow engines struggle to efficiently manage concurrent and duplicated sub processes, leading to unnecessary waiting times due to inadequate handling of runtime dependencies between node instances.

Innovation Solution

The proposed solution involves a workflow engine that utilizes a directed acyclic graph (DAG) to represent workflow processes, where each node represents a sub process with a depth value indicating its generation. The engine executes multiple, parallel instantiations of sub processes and uses identifier arrays to determine which node instances need to wait for others, thereby optimizing the transition between nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If workflow engines execute multiple parallel instantiations of sub processes, then productivity is improved, but device complexity increases due to inadequate handling of runtime dependencies between node instances

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcomplexity of managing concurrent sub processes
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the workflow into distinct node instances with unique identifiers, allowing parallel execution while tracking dependencies. Each node instance is treated as a separate manageable unit with its own identifier array, enabling the system to handle concurrency without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces identifier arrays as an intermediary mechanism to track runtime dependencies between node instances. These arrays act as mediators that store batch identifiers and enable the system to determine wait conditions without directly managing complex inter-process communication and synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If workflow engines use identifier arrays to track node instances, then reliability is improved by eliminating unnecessary waiting times, but device complexity increases due to the need to manage identifier arrays for each node instance

Engineering Contradiction:
Improveaccuracy of dependency trackingVSAvoidcomplexity of identifier array management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by pre-establishing identifier arrays and batch identifiers when node instances are created. This preliminary setup captures the dependency relationships upfront, allowing the system to reliably determine wait conditions during execution without needing complex runtime analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses parameter changes by storing batch identifiers in identifier arrays at specific indices corresponding to node depths. This parameter-based encoding of dependency information allows reliable tracking while keeping the data structure simple and manageable during execution.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12265847B2Concurrent duplicated sub process control in a workflow engine
Publication Date: 2025.04.01 SAP SE
  • US12265847B2 patent drawing
  • US12265847B2 patent drawing
  • US12265847B2 patent drawing

AI summary

The present disclosure involves systems, software, and computer implemented methods for concurrent duplicated sub process control in a workflow engine. One example method includes executing a sub process of a workflow process using an instance of a node that represents the sub process. After executing the sub process, a determination is made as to whether the node is a join node that has multiple direct predecessor nodes in a graph of the workflow process. If the node is a join node, dependent nodes of the join node are identified for which traversal of the graph from a dependent node passes through the join node. A set of active dependent node instances of the dependent nodes are identified and a determination is made as to whether to wait for completion of any particular dependent node instances or if workflow execution can continue beyond the join node.