Token Synchronization Gateway for Dynamic BPMN Thread Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
BPMN models face challenges in synchronizing a dynamic number of concurrent threads, as existing gateways can lead to erroneous executions and deadlocks when the number of threads is unknown at design-time, particularly when input data determines the number of threads at runtime.
Innovation Solution
A token synchronization gateway is introduced to flexibly synchronize a varying number of tokens from a single inbound branch, allowing for efficient handling of concurrent threads by implementing either lazy or eager synchronization behaviors, ensuring proper execution and termination of processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standard BPMN gateways (AND, OR, XOR) are used to merge concurrent threads, then thread merging capability is provided, but erroneous executions and deadlocks occur when the number of threads is unknown at design-time
Solution Approach 1:
The patent introduces a token synchronization gateway as an intermediary component between thread split and thread merge points. This gateway acts as a mediator that collects tokens from multiple concurrent threads, validates their completion, and only then allows the merged thread to proceed. This intermediary mechanism prevents erroneous executions by ensuring all required threads have completed before merging, resolving the reliability issue while maintaining adaptability to dynamic thread counts.
Solution Approach 2:
The token synchronization gateway implements dynamic synchronization by adapting to the actual number of concurrent threads at runtime rather than requiring static configuration. The gateway dynamically adjusts its synchronization behavior based on the tokens it receives, allowing it to handle any number of concurrent threads determined by input data. This dynamic approach resolves the contradiction by providing both adaptability to varying thread counts and reliability through proper synchronization validation.
2Adaptability or versatility
If BPMN constructs are used to merge threads with unknown count at runtime, then flexibility in handling dynamic thread numbers is achieved, but synchronization failures and resource leaks occur
Solution Approach 1:
The token synchronization gateway performs preliminary synchronization validation before allowing thread merging to proceed. It collects and validates tokens from all concurrent threads beforehand, ensuring proper synchronization is achieved before the merged thread continues execution. This preliminary action prevents synchronization failures and resource leaks by verifying all threads have completed their tasks before merging, thereby improving ease of operation while maintaining dynamic thread handling capability.
3Device complexity
If standard gateways are used for thread merging, then basic workflow control is provided, but process termination is prevented and resources are consumed
Solution Approach 1:
The token synchronization gateway implements a feedback mechanism where it monitors the completion status of all concurrent threads through token collection. When all required tokens are received, the gateway provides feedback by enabling the merged thread to proceed and ultimately terminate the process. This feedback-driven approach ensures proper process termination and resource release, resolving the productivity issue while maintaining reasonable gateway functionality complexity.
Data Source
AI summary
According to some embodiments, a token synchronization gateway may be recognized in a graph-based business process model, such as a business process modeling notation model. A number of upstream artifacts located upstream from the token synchronization gateway may then be identified in the business process modeling notation model. In addition, a final artifact may be identified directly in front of the token synchronization gateway. The token synchronization gateway may then be compiled into code that will be executed at runtime to perform a synchronization process. The synchronization process may, for example, include handling tokens T1 through Tn to synchronize the upstream artifacts, with each token being associated with one of the n upstream artifacts.


