IP Library › Granted Patent US 12,750,429
Granted Patent B2
US 12,750,429 · App. 18/669,387 · Granted Sep 29, 2026

Data broker and method

Inventor: Stefan Frehse (Landshut, DE)
Assignee: HiveMQ GmbH
H04L67/55H04L67/562
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,750,429
App. No.
18/669,387
Granted
Sep 29, 2026
Kind
B2
Abstract

A method performed at a data broker comprises receiving from a subscriber client a request for a subscription for sensor data transmitted by a sensor client, the request in accordance with a publish/subscribe messaging protocol, receiving sensor data from the sensor client, the sensor data published by the sensor client in accordance with the messaging protocol, and determining, in dependence on the sensor data and a current state of a state machine associated with the sensor client, whether the sensor data is to be subject to subscription processing. The method further comprises determining, in dependence on the receipt of the sensor data and the current state of the state machine, an updated state for the state machine, updating the state machine to the updated state, and if the data is to be subject to subscription processing, forwarding the data to the subscriber client in accordance with the messaging protocol.

Claims (61)

1 . A method performed at a data broker, the method comprising:

receiving from a subscriber client a request for a subscription for sensor data transmitted by a first sensor client, the request in accordance with a publish/subscribe messaging protocol,

receiving first sensor data from the first sensor client, the first sensor data published by the first sensor client in accordance with the messaging protocol,

determining, in dependence on the first sensor data and a current state of a state machine associated with the first sensor client, whether the first sensor data is to be subject to subscription processing,

determining, in dependence on the receipt of the first sensor data and the current state of the state machine, an updated state for the state machine,

updating the state machine to the updated state, and

if the first data is to be subject to subscription processing, forwarding the data to the subscriber client in accordance with the messaging protocol.

2 . A method performed at a data broker, the method comprising:

receiving a message from a client in accordance with a publish/subscribe messaging protocol,

determining whether the message is within a category of messages associated with a state machine, wherein a current state of the state machine reflects the previous reception by the data broker of one or more messages within the category of messages,

if the message is within the category of messages then determining, based on the receiving the message, an updated state for a state machine and a function to be executed,

updating the state machine to the updated state, and

performing the function.

3 . A method according to claim 2 , wherein the function to be executed comprises one or more of:

generating a new message comprising data,

subscription processing of the new data message in accordance with the publish/subscribe messaging protocol,

discarding, without performing subscription processing, the received message,

generating and transmitting to the client, other than in accordance with the publish/subscribe messaging protocol, a control message defined by the publish/subscribe messaging protocol,

modifying, creating or removing a subscription record,

associating a status with the client,

transmitting to another client another data message or another control message, and

updating a log.

4 . A method according to claim 3 , wherein when the received message is a published data message associated with a first topic, and the function comprises generating a new message comprising data, a topic associated with the new message differs from the first topic.

5 . A method according to claim 2 , wherein the method further comprises:

if the received message is not within the category of messages,

determining whether the received message is a published data message, and

if the received message is a published data message, then performing subscription processing of the received message in accordance with the publish/subscribe messaging protocol, irrespective of the state of the state machine.

6 . A method according to claim 2 , wherein the subscription processing of a data message in accordance with the publish/subscribe messaging protocol, the data message being the new data message or the received message, comprises:

determining that a subscriber client has requested a subscription, the scope of which includes the data message,

generating a data message for publication in accordance with the publish/subscribe message protocol based on the data message, and

transmitting the generated data message for publication to the subscriber client.

7 . A method according to claim 2 , wherein the updated state for the state machine is determined based on one or more of:

the determination that the message is within the category of messages;

whether the message contains published data or is a control message;

an identity of the client that transmitted the message;

when the message is a control message, a type of the control message,

when the message contains published data, a topic associated with the data; and

when the message contains published data, the contents of the data.

8 . A method according to claim 2 , wherein the category of messages associated with the state machine comprises data messages published by the client in accordance with the publish/subscribe messaging protocol.

9 . A method according to claim 2 , wherein the category of messages associated with the state machine excludes data messages, published by the client in accordance with the publish/subscribe messaging protocol, which are not associated with one or more topics.

10 . A method according to claim 2 , wherein the category of messages associated with the state machine comprises control messages transmitted by the client in accordance with the publish/subscribe messaging protocol.

11 . A method according to claim 2 , wherein the category of messages associated with the state machine comprises messages transmitted by an additional client in accordance with the publish/subscribe messaging protocol.

12 . A method according to claim 1 , the method further comprising:

initiating the state machine in accordance with a pre-configured state machine definition, wherein the pre-configured state machine definition specifies one or more of

the category of messages associated with the state machine;

an identity of the client;

a list of criteria for state transitions of the state machine, each criteria associated with a state transition from a first state of the state machine to a second state of the state machine; and

one or more function definitions, each associated with a respective one or more state transitions.

13 . A method according to claim 12 , the method further comprising:

receiving a description of the pre-configured state machine definition.

14 . A method according to claim 12 , wherein the initiating the state machine is in response to one of:

receiving a message within the category of messages associated with a state machine; and

establishing a connection with the client.

15 . A method according to claim 1 , the method further comprising:

determining that a connection with the client has been disconnected, and

maintaining the current state of the state machine while the client is in a disconnected state.

16 . A method according to claim 1 , wherein the publish/subscribe messaging protocol is one selected from a group of protocols comprising MQTT version 5.0, MQTT version 3.1.1, MQTT-SN version 1.2, MQTT-SN version 2.0, or is a updated version of any one of the group of protocols.

17 . A data broker apparatus, comprising:

a network interface,

a processor, and

a memory, the memory having stored upon it instructions which, when executed, cause the data broker apparatus to carry out the method of claim 1 .

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 10, 2026
From: MARS GROWTH CAPITAL PTE LTD.
To: HIVEMQ GMBH
Reel/Frame 075237/0793 →
SECURITY INTEREST Recorded Jun 30, 2026
From: HIVEMQ INC.; HIVEMQ GMBH
To: HORIZON TECHNOLOGY FINANCE CORPORATION
Reel/Frame 075136/0713 →
SECURITY INTEREST Recorded Jul 15, 2025
From: HIVEMQ GMBH
To: MARS GROWTH CAPITAL PTE LTD.
Reel/Frame 071715/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2025
From: FREHSE, STEFAN
To: HIVEMQ GMBH
Reel/Frame 070224/0467 →
Continuity (1)
Related Publication 20250358344A1 · Nov 20, 2025
References Cited (7)
US 20200287974A1 · Gnessin · 2020 [cited by examiner]
Stefan Frehse, Leveraging Behavior Model MQTT Communication to optimize LoT deployments (Year: 2023). [cited by examiner]
Leveraging Behavior Model on MQTT Communication to Optimize IoT Deployments, HiveMQ, Dec. 5, 2023. [cited by applicant]
What's New in HiveMQ 4.20?, HiveMQ, Sep. 25, 2023. [cited by applicant]
Policies—HiveMQ Documentation, HiveMQ, Sep. 25, 2023. [cited by applicant]
Transformation scripting with JavaScript, Publish Object—XP093315680, HiveMQ, Feb. 29, 2024 https://web.archive.org/web/20240229190858/https:/docs.hivemq.com/hivemq/latest/data-hub/transformations.html. [cited by applicant]
Extended European Search Report dated Oct. 1, 2025 for European Patent Application No. 25177438.6. [cited by applicant]