Message Resequencer Using XPath Payload Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In message-based systems, messages often arrive out of order due to dynamic routing and multi-threaded processing, causing delivery issues in downstream components, particularly in ESB architectures where the message consumer lacks control over the order of message delivery.
Innovation Solution
A resequencer is implemented to reorder messages based on user-specified sequence identifiers extracted from the message payloads using XPath expressions, eliminating the need for fixed header information and reducing system overhead by dynamically configuring sequence and group information within the message payload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dynamic routing is used to select message paths, then message delivery flexibility is improved, but message ordering reliability deteriorates
Solution Approach 1:
The patent segments messages into groups based on sequence identifiers and processes each group independently through dedicated worker threads. This segmentation allows dynamic routing to be applied at the individual message level while maintaining order within each group, resolving the contradiction between delivery flexibility and ordering reliability.
Solution Approach 2:
The resequencer acts as an intermediary component between message producers and consumers. It receives out-of-order messages, reorders them within groups based on sequence identifiers, and delivers them in the correct sequence to consumers, thereby maintaining reliability without restricting routing flexibility.
2Ease of operation
If fixed header information is used for message sequencing, then message ordering is simplified, but system overhead increases
Solution Approach 1:
The patent transitions from fixed header information to dynamic sequence identifiers stored within message payloads. The resequencer dynamically extracts these identifiers using XPath expressions and configures sequencing behavior at runtime, reducing the need for rigid header structures and lowering system overhead while maintaining ordering capability.
Solution Approach 2:
The patent changes the parameter storage location from fixed headers to flexible payload fields. Sequence identifiers are extracted dynamically from payload data using XPath expressions, allowing the system to adapt to different message formats without requiring overhead for fixed header metadata structures.
3Productivity
If messages are processed in parallel, then processing speed is improved, but message ordering correctness deteriorates
Solution Approach 1:
The patent divides the message stream into separate groups based on sequence identifiers, with each group processed by a dedicated worker thread. This segmentation enables parallel processing of different message groups while maintaining correct ordering within each group, as threads only access their respective groups without interference.
Solution Approach 2:
The patent uses a message store to copy and store incoming messages before processing. The resequencer retrieves messages from this store in the correct sequence, allowing multiple worker threads to process different message groups simultaneously while ensuring each thread processes messages in their correct order from the copied store.
Data Source
AI summary
Described is an improved method, system, and computer program product for implementing an improved resequencer, along with related mechanisms and processes. An improved error handling method and system for messages is also described.


