IoT Message Redundancy via Connectivity Services
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing message-oriented middleware solutions for IoT applications, such as MQTT brokers, often fail to ensure reliable and ordered message delivery, especially in cases of broker instance failures, leading to message loss and reordering, which complicates application development and requires extensive testing or contractual agreements with vendors.
Innovation Solution
A method for conveying messages between software applications using redundant paths and connectivity services that ensure message copies are handled by different hardware and software entities, maintaining message order and reliability through QoS levels, and leveraging multiple middleware instances and network paths to enhance resilience.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If redundant message delivery paths are implemented, then message reliability is improved, but device complexity increases
Solution Approach 1:
A dedicated connectivity service is introduced as an intermediary component between the message producer and consumer. This connectivity service manages the redundant delivery paths, duplication, and routing logic, isolating the complexity from the application layer while ensuring reliable message delivery through multiple paths.
Solution Approach 2:
The delivery mechanism is segmented into independent components: a connectivity service that handles redundancy, a message broker that routes messages, and application layers that remain simple. This segmentation allows the complex reliability logic to be isolated in dedicated components without affecting application code.
2Reliability
If application-layer compensation mechanisms are implemented, then message delivery reliability is improved, but ease of operation deteriorates
Solution Approach 1:
The connectivity service acts as a mediator that handles all reliability concerns at the infrastructure level. Applications simply publish and subscribe to topics without needing to implement compensation logic, sequence number tracking, or retransmission mechanisms, greatly simplifying application development.
Solution Approach 2:
The connectivity service automatically manages message duplication, routing through redundant paths, and delivery guarantees without requiring application-level intervention. The system self-adjusts to network conditions and broker failures, eliminating the need for complex application logic.
3Ease of operation
If broker implementation-specific mechanisms are relied upon, then ease of operation is improved, but reliability deteriorates
Solution Approach 1:
The system separates broker-specific delivery mechanisms from the core reliability logic. The connectivity service implements path redundancy and duplication independently of any single broker implementation, ensuring that reliability is achieved through architectural design rather than vendor-specific behavior.
Solution Approach 2:
Instead of relying on horizontal scalability of a single broker implementation, the solution adds a vertical dimension of redundancy by implementing multiple delivery paths and message duplication. This dimensional shift from single-path to multi-path delivery ensures reliability without depending on specific broker vendor behaviors.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method (100) for conveying messages (4) between a first software application (11a) in a first container (11) and a second software application (21a) in a second container (21), comprising the steps of: • receiving (110), by a first connectivity service (12) associated with the first container (11), an ordered sequence of messages (4) sent by the first application (11a); • transmitting (120), by the first connectivity service (12), at least two copies (4a-4c) of each message (4) to a second connectivity service (22) associated with the second container (21), wherein the at least two copies (4a-4c) are routed on at least partially redundant paths and wherein each copy (4a-4c) is indicative of the position of the original message (4) in the original ordered sequence; and • forwarding (130), by the second connectivity service (22), at least one copy (4a-4c) of each message (4) to the second application (21a), in the order given by the original ordered sequence.