Protocol-Agnostic Messaging via Stream-Based Broker

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software applications face complexity in supporting multiple messaging protocols, requiring specific code development and configuration for each protocol, making it difficult to switch between different messaging brokers and protocols without changing application code.

Innovation Solution

A stream-based, protocol-agnostic messaging system that uses a generic messaging client to connect with protocol-specific clients via configuration data, allowing seamless switching between different messaging protocols and brokers without modifying application code, using a unified API that hides protocol-specific features and provides optimized message processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional software applications support multiple messaging protocols, then communication compatibility is improved, but application complexity increases

Engineering Contradiction:
Improvecommunication compatibilityVSAvoidapplication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a message broker as an intermediary component that handles protocol-specific logic, allowing applications to communicate with multiple messaging protocols without directly implementing protocol handling code. The broker sits between the application and various messaging systems (RabbitMQ, ActiveMQ, Mosquitto, Solace), translating and routing messages according to protocol requirements, thereby isolating application complexity from protocol complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The message broker is designed as a universal component that can handle multiple messaging protocols simultaneously. It provides a unified interface for applications while supporting different protocol implementations (AMQP, MQTT, STOMP, etc.), allowing a single broker instance to serve multiple protocol requirements without requiring separate application code for each protocol.

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

2Adaptability or versatility

If specific code is developed for each messaging protocol, then protocol-specific functionality is improved, but development complexity increases

Engineering Contradiction:
Improveprotocol-specific functionalityVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The broker acts as an intermediary that absorbs protocol-specific implementation details, allowing developers to write protocol-agnostic application code. The broker handles protocol-specific features such as connection management, message formatting, and routing rules, so developers only need to interact with the unified application interface without dealing with protocol-specific code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system architecture is segmented into protocol-specific broker components and protocol-agnostic application components. Each protocol handler is implemented as a separate module within the broker, allowing protocol-specific functionality to be developed, tested, and maintained independently while presenting a unified interface to applications.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If messaging brokers are switched, then protocol adaptability is improved, but code changes are required

Engineering Contradiction:
Improveprotocol adaptabilityVSAvoidcode maintenance
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The broker serves as a stable intermediary layer that remains unchanged when switching messaging protocols or brokers. Configuration parameters within the broker are adjusted to support different protocols (RabbitMQ, ActiveMQ, Mosquitto, Solace), but the application code interacting with the broker remains the same, eliminating the need for code changes during broker switching.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The broker configuration is designed to be dynamic and adaptable, allowing runtime changes in protocol settings and broker connection parameters. This enables the system to switch between different messaging brokers and protocols by modifying configuration data rather than requiring code changes or redeployment.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If configuration data is separated from application code, then flexibility is improved, but system complexity increases

Engineering Contradiction:
ImproveflexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Protocol-specific configuration data is extracted from application code and stored as separate configuration parameters within the broker. This includes broker connection details, protocol versions, queue names, topic subscriptions, and routing rules. The application code remains clean and focused on business logic, while configuration management is handled separately by the broker's configuration system.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10432448B2Systems and methods for stream-based, protocol-agnostic messaging
Publication Date: 2019.10.01 SAP SE
  • US10432448B2 patent drawing
  • US10432448B2 patent drawing
  • US10432448B2 patent drawing

AI summary

Sending and/or receiving messages in a computer system having memory and a processor. The method includes configuring the memory to have one or more streams connecting a generic messaging client to send messages to and/or receive messages from one or more protocol-specific messaging clients. The streams are formed by providing configuration data comprising one or more destination definitions. Each of the destination definitions corresponds to one of the protocol-specific messaging clients. Each of the destination definitions has a specified messaging protocol and one or more stream definitions. Each of the stream definitions has parameters associated with the specified messaging protocol of a corresponding one of the destination definitions. In code for the generic messaging client, at least one stream object is provided specifying one of the destination definitions and one of the stream definitions.