Distributed MOM Server Instances for Scalable Message Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional two-tiered client-server architectures are inefficient and brittle, especially in large enterprises, while multi-tiered architectures, although more flexible and scalable, face challenges in message delivery and namespace management due to central message providers, which can limit scalability and increase complexity.

Innovation Solution

Implementing a Message-Oriented Middleware (MOM) provider with multiple MOM server instances integrated into a clustered application server infrastructure, where each server instance includes a session container for managing sessions and a destination container for message storage and delivery, using globally unique identifiers and distributed architecture to support point-to-point and publish/subscribe messaging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a central message provider is used in multi-tiered architecture, then message delivery is facilitated, but scalability is limited and namespace brittleness increases

Engineering Contradiction:
Improvemessage deliveryVSAvoidscalability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent divides the centralized message provider into multiple distributed MOM server instances across the cluster. Each instance manages its own namespace independently, eliminating the single point of failure and namespace bottlenecks. This segmentation allows the system to scale horizontally by adding more server instances without being constrained by a central provider's capacity.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple MOM server instances are implemented, then scalability is improved, but namespace management complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoidnamespace management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Each MOM server instance maintains its own local namespace independently, allowing namespace management to be handled locally rather than centrally. This local quality approach eliminates the need for complex global namespace coordination while enabling each instance to scale independently. The distributed namespace model removes the bottleneck of centralized namespace management.

Inventive Principle:
Principle #3Local quality

3Device complexity

If centralized message provider is used, then message routing is simplified, but system flexibility and adaptability decrease

Engineering Contradiction:
Improvemessage routingVSAvoidsystem flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic message routing where each MOM server instance can independently route messages within its namespace. This dynamic approach allows the system to adapt to changing requirements by adding or removing instances without reconfiguring a central router. The distributed routing logic provides both simplicity at the instance level and flexibility at the system level.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7664818B2Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure
Publication Date: 2010.02.16 SAP SE
  • US7664818B2 patent drawing
  • US7664818B2 patent drawing
  • US7664818B2 patent drawing

AI summary

A method, apparatus, and system are provided for a Message-Oriented Middleware (MOM) provider having multiple logical MOM server instances. In an embodiment, a number of application servers are communicatively coupled on an enterprise network. In an embodiment, the MOM provider includes an MOM server instance implemented on each of the plurality of application servers. Each MOM server instance may include a session container to manage one or more sessions and a destination container to provide one or more destinations. In an embodiment, each destination is identified by a globally unique identifier.