Message Provider Mutual Exclusion for Single Instance Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In message processing systems using the publish-subscribe model, there is no mechanism to ensure that a message is sent to a single application instance among multiple instances subscribed to a topic, leading to potential duplication and inefficient processing.

Innovation Solution

Implementing a mutual exclusion function mechanism where each application instance sends a unique mutual exclusion function to a message provider, which executes these functions to ensure that a message is sent to only one application instance, using the instance identifier and total instance count to determine the correct recipient.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the publish-subscribe model is used with multiple application instances subscribed to a topic, then the system provides load balancing and message distribution, but there is no mechanism to ensure that a message is sent to a single application instance, leading to message duplication and inefficient processing

Engineering Contradiction:
Improvemessage processing efficiencyVSAvoidmessage delivery uniqueness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The message provider acts as an intermediary between the message source and multiple application instances. It receives mutual exclusion functions from each instance and executes them to determine which single instance should receive the message, thereby mediating the distribution while ensuring uniqueness.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Each application instance provides its own mutual exclusion function that it sends to the message provider. The instance essentially serves itself by defining the logic that will determine whether it should receive a particular message, based on its instance identifier and the total number of instances.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If messages are sent to all subscribed application instances in the publish-subscribe model, then all instances receive the message for local processing, but this causes message duplication and wasted processing resources

Engineering Contradiction:
Improvemessage distribution capabilityVSAvoidprocessing resource waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The message distribution is made selective rather than uniform. Each message is evaluated against the mutual exclusion function of each instance, and only the instance for which the function returns true receives the message. This creates local quality in the sense that different instances receive different messages based on their specific characteristics.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system uses instance-specific parameters (instance identifier and total instance count) within the mutual exclusion function to dynamically determine message routing. By changing the parameter values in the function, the system can adaptively route messages to different instances without duplicating delivery.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If a mutual exclusion function mechanism is implemented to ensure single instance message delivery, then message duplication is prevented and processing efficiency improves, but the system complexity increases due to the need to manage and execute these functions

Engineering Contradiction:
Improvemessage processing efficiencyVSAvoidmessage routing mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The mutual exclusion logic is extracted from the application instances and placed in the message provider. Instead of each instance having to communicate with others or maintain complex state, the instances simply send their exclusion functions to the provider, which then handles the execution and decision-making centrally.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Each application instance sends a copy of its mutual exclusion function to the message provider. The provider stores and executes these function copies to make routing decisions, eliminating the need for instances to directly interact or maintain awareness of each other's state.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7818426B2Method and system for processing a message by a message provider
Publication Date: 2010.10.19 ORACLE AMERICAN INC
  • US7818426B2 patent drawing
  • US7818426B2 patent drawing
  • US7818426B2 patent drawing

AI summary

A method for processing a message by a message provider that includes receiving, for a topic, a mutual exclusion function from each application instance of a plurality of application instances, receiving the message for the topic, and sending the message to one application instance of the plurality of application instances based on executing each of the mutual exclusion functions, wherein the mutual exclusion functions ensure that the message is sent to a single application instance of the plurality of application instances.