XML Exchange for Content-Based Message Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Advanced Messaging Queuing Protocol (AMQP) systems lack support for routing based on XML content and do not easily integrate with standard XML application programming interfaces (APIs), limiting their ability to efficiently handle and route XML messages.

Innovation Solution

The implementation of an XML exchange that processes and routes XML messages using XQuery queries, allowing for efficient routing and transformation of XML content, and the use of binary XML to reduce parsing overhead, enabling message queues to receive only the necessary data in the required format.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If AMQP treats all message content as opaque, then simplicity and efficiency are improved, but routing based on XML content becomes impossible

Engineering Contradiction:
Improvemessaging efficiencyVSAvoidXML content routing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the message handling process into two distinct phases: initial opaque routing based on message headers (maintaining AMQP efficiency) and subsequent XML-specific processing using XQuery for content-based routing. This allows the system to preserve the simplicity of treating messages as opaque while adding XML routing capability through a separate, optional processing layer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer between the AMQP messaging system and XML content processing. This intermediary uses XQuery expressions as a mediator to bridge the gap between opaque message routing and XML content-based routing, enabling the system to route messages based on XML content without compromising the underlying AMQP protocol's efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If XML messages are parsed multiple times for different queries, then routing flexibility is improved, but parsing overhead increases

Engineering Contradiction:
Improvequery flexibilityVSAvoidparsing overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by parsing the XML message once and storing the parsed structure for subsequent reuse. The XQuery engine caches the parsed XML data after the initial parsing operation, allowing multiple queries to be executed against the same parsed structure without re-parsing the original message. This significantly reduces parsing overhead while maintaining query flexibility.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If current AMQP interfaces are used, then protocol compatibility is improved, but integration with XML APIs becomes difficult

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidXML API integration
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements universality by creating a multi-functional messaging system that can handle both traditional AMQP messages and XML messages through a unified interface. The system provides universal routing capabilities that work with both message types, allowing the same infrastructure to serve both legacy AMQP applications and new XML-based applications without requiring separate integration paths.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7974966B2Method and an apparatus to deliver messages between applications
Publication Date: 2011.07.05 RED HAT INC
  • US7974966B2 patent drawing
  • US7974966B2 patent drawing
  • US7974966B2 patent drawing

AI summary

In one embodiment of a computing system, a client supplied binding is received from a client, wherein the client supplied binding includes an XQuery or a script. A predefined binding is stored in a server, wherein said predefined binding includes an XQuery, a script, or a program, allowing the client to select the predefined binding. An exchange receives an Extensible Markup Language (XML) message from a publisher application and sends the XML message to each message queue whose binding matches the XML message.