BPEL Correlation Aggregation for Message Routing Delays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Business Process Execution Language (BPEL) systems face delays due to their conversational nature, where processes cannot initiate or receive messages unless a specific 'first' message is received, leading to unnecessary waiting when messages from partners are not received in the same order.
Innovation Solution
A system and method that allows any message with a shared identity and operation to instantiate a new business process instance, routing subsequent messages to it, using a database to manage message groups and correlation aggregation, enabling processing to begin without waiting for a designated 'first' message.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If BPEL processes wait for a designated 'first' message to initiate, then message routing reliability is improved, but processing time increases due to unnecessary waiting
Solution Approach 1:
The system performs preliminary actions by instantiating a business process instance as soon as the first relevant message is received, before all expected messages are collected. The database is updated to mark the instance as active, enabling subsequent messages to be routed immediately without waiting for a designated first message, thus reducing processing time while maintaining routing reliability through correlation-based message grouping
Solution Approach 2:
The system changes the parameter of message routing decision from requiring a designated 'first' message to using correlation aggregation based on message identities. By changing the routing criterion to match messages with existing active instances or create new instances based on correlation keys, the system eliminates unnecessary waiting time while ensuring reliable routing through correlation-based identification
2Ease of operation
If BPEL processes require a designated 'first' message to start, then process initiation control is improved, but productivity decreases due to delays
Solution Approach 1:
The system performs preliminary instance creation when any relevant message is received, rather than waiting for a designated first message. The database records message groupings and creates instances immediately, enabling subsequent messages to be routed without delay, thus improving productivity while maintaining control through correlation-based message association
Solution Approach 2:
The system enables continuous processing by immediately instantiating business process instances when messages are received, without interruption for waiting on a designated first message. The database continuously tracks message groups and routes messages as they arrive, maintaining continuous useful action and improving productivity while preserving initiation control through correlation aggregation
3Speed
If BPEL uses correlation aggregation to route messages, then processing speed is improved, but device complexity increases due to database management requirements
Solution Approach 1:
The database serves as an intermediary mechanism that manages correlation aggregation by storing message groupings and tracking active business process instances. This intermediary structure enables fast message routing decisions without complex in-memory management, improving routing speed while containing complexity in a dedicated database layer that handles correlation tracking
Solution Approach 2:
The system uses database records as copies of message groupings and instance states, allowing efficient message routing decisions without maintaining complex in-memory data structures. The database stores correlation information as persistent records that can be queried quickly, improving routing speed while simplifying device complexity by using standard database operations instead of complex memory management
Data Source
AI summary
A system and method are disclosed for providing BPEL support for correlation aggregation. The system can comprise a business process engine, executing on one or more application servers organized in a cluster. The system can comprise a database including a table which stores records relating to message groups and business process instances. When a message is received by the business process engine, the business process engine can determine an identity associated with the message, and check the database to determine if there is an entry associated with the identity. If there is no entry associated with the identity, then the business process engine can instantiate a first business process instance associated with the identity, and if there is an entry associated with the identity, then the business process engine can route the message to a business process instance associated with the identity.


