EP-4568228-B1 - DISTRIBUTED AND PARTITIONED STATE MACHINE BASED RULE ENGINE FOR MESH DEVICES AND EDGE DEVICES
Inventors
- MASSARINI, MAJA
- GRIFFIN, LEIGH
Dates
- Publication Date
- 20260513
- Application Date
- 20241128
Claims (13)
- A method, performed by a control mesh node (108, 308c), comprising: obtaining, from a first gateway device (232a, 332c) coupled to a first mesh network system (202, 302c), a first capability dataset (370c) indicating capabilities of a first mesh node (104a, 304c) of the first mesh network system (202, 302c) to provide a first service (371c) for a first object (103a, 303c) coupled to the first mesh node (104a, 304c); obtaining, from a second gateway device (232b, 333c) coupled to a second mesh network system (222, 322c), a second capability dataset (373c) indicating capabilities of a second mesh node (104c, 305c) of the second mesh network system (222, 322c) to provide a second service (374c) to a second object (103c, 306c) coupled to the second mesh node (104c, 305c); generating, by a processing device (302b, 302c, 502) based on the first capability dataset (370c) and the second capability dataset (373c), a set of non-deterministic finite-state machine, NFSM, models (230, 240, 385c) for the first object (103a, 303c) and the second object (103c, 306c), each NFSM model of the set of NFSM models (230, 240, 385c) to provide the first service (371c) for the first object (103a, 303c) or the second object (103c, 306c); and providing, to the first gateway device (232a, 332c) and the second gateway device (232b, 333c), the set of NFSM models (230, 240, 385c) and a partition dataset (380c) to cause the first gateway device (232a, 332c) and the second gateway device (232b, 333c) to use a single NFSM model (391c) of the set of NFSM models (230, 240, 385c) to provide the first service (371c) to the second object (103c, 306c).
- The method of claim 1, further comprising: discovering the first gateway device (232a, 332c) and the second gateway device (232b, 333c); obtaining, from the first gateway device (232a, 332c), a first topography dataset identifying a first group of mesh nodes (104a, 104b) of the first mesh network system (202); obtaining, from the second gateway device (232b, 333c), a second topography dataset identifying a second group of mesh nodes (104c, 104d) of the second mesh network system (222); querying, using the first topography dataset, the first gateway device (232a, 332c) for the first topography dataset; and querying, using the second topography dataset, the second gateway device (232b, 333c) for the first topography dataset.
- The method of claim 1, further comprising: generating, based on the first capability dataset (370c) and the second capability dataset (373c), the partition dataset (380c) indicating that the first service (371c) is to be provided to the second object (103c, 306c) by using the first mesh node (104a, 304c) and the second mesh node (104c, 305c), wherein providing the set of NFSM models (230, 240, 385c) and the partition dataset (380c) to the first gateway device (232a, 332c) further causes the first gateway device (232a, 332c) to determine a state of the first object (103a, 303c) based on the single NFSM model (391c) and sensor data associated with the first mesh node (104a, 304c), and provide a model output indicative of the state of the first object (103a, 303c) to the second gateway device (232b, 333c).
- The method of claim 3, wherein the first gateway device (232a, 332c) provides the model output to the second gateway device (232b, 333c) via a dedicated channel (280) between the first gateway device (232a, 332c) and the second gateway device (232b, 333c).
- The method of claim 3, wherein providing the set of NFSM models (230, 240, 385c) and the partition dataset (380c) to the second gateway device (232b, 333c) further causes the second gateway device (232b, 333c) to enter a listen mode to listen for the model output from the first gateway device (232a, 332c).
- The method of claim 3, wherein providing the set of NFSM models (230, 240, 385c) and the partition dataset (380c) to the second gateway device (232b, 333c) further causes the second gateway device (232b, 333c) to generate configuration data for the second object (103c, 306c) based on the single NFSM model (391c) and the model output.
- The method of claim 6, wherein providing the set of NFSM models (230, 240, 385c) and the partition dataset (380c) to the second gateway device (232b, 333c) further causes the second gateway device (232b, 333c) to provide the configuration data to the second mesh node (104c, 305c).
- The method of claim 1, wherein generating, based on the first capability dataset (370c) and the second capability dataset (373c), the partition dataset (380c) further comprises: determining a first capability of the first mesh node (104a, 304c) to provide a first portion of the first service (371c) and a second capability of the second mesh node (104c, 305c) to provide a second portion of the first service (371c).
- The method of claim 1, further comprising: detecting a failure associated with the second gateway device (232b, 333c); and instructing, responsive to detecting the failure, the first gateway device (232a, 332c) to provide a model output from a selected NFSM model of the set of NFSM models (230, 240, 385c) to a third gateway device coupled to a third mesh network system, wherein the model output is indicative of a state of the first object (103a, 303c) coupled to the first mesh node (104a, 304c).
- The method of claim 9, wherein instructing, responsive to detecting the failure, the first gateway device (232a, 332c) to provide the model output from the selected NFSM model of the set of NFSM models (230, 240, 385c) to the third gateway device comprises: obtaining, from the third gateway device, a third capability dataset indicating capabilities of a third mesh node of the third mesh network system to provide a third service for a third object coupled to the third mesh node; generating, based on the first capability dataset (370c) and the third capability dataset, a different partition dataset indicating that the first service (371c) is to be provided to the third object by using the first mesh node (104a, 304c) and the third mesh node; generating, based on the first capability dataset (370c) and the third capability dataset, a different set of NFSM models for the first object (103a, 303c) and the third object, each NFSM model of the different set of NFSM models is configured to provide the first service (371c) for the first object (103a, 303c) or the third object; and providing, to the first gateway device (232a, 332c) and the third gateway device, the different set of NFSM models and the different partition dataset to cause the first gateway device (232a, 332c) and the third gateway device to use a different NFSM model of the different set of NFSM models to provide the first service (371c) to the third object.
- The method of claim 1, wherein providing, to the first gateway device (232a, 332c) and the second gateway device (232b, 333c), the set of NFSM models (230, 240, 385c) and the partition dataset (380c) further causes: the first gateway device (232a, 332c) to receive a first copy of the set of NFSM models and execute a first NFSM model of the first copy of the set of NFSM models on a first processing device of the first gateway device (232a, 332c), and the second gateway device (232b, 333c) to receive a second copy of the set of NFSM models and execute a second NFSM model of the second copy of the set of NFSM models on a second processing device of the second gateway device (232b, 333c), wherein the first NFSM model corresponds to the second NFSM model.
- A control mesh node (108, 308c), comprising: a memory (304b, 314c); and a processing device (302b, 302c) that is operatively coupled to the memory (304b, 314c), the processing device (302b, 302c) configured to perform the method of any of claims 1-11.
- A non-transitory computer-readable medium (528) storing instructions (525) that, when executed by a processing device (502), cause the processing device (502) to perform the method of any of claims 1-11.
Description
TECHNICAL FIELD The present disclosure relates generally to software technology, and more particularly, to systems and methods of a distributed and partitioned state machine based rule engine for mesh devices and edge devices. BACKGROUND The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communications networks. An edge network is a data architecture strategically organized to provision compute to the edge devices within a network. A mesh network is a network in which nodes (e.g., IoT devices, edge devices) are linked together, branching off other devices or nodes. These networks are set up to efficiently route data between devices and clients. They help individuals and organizations provide a consistent connection throughout a physical space. EP 3 111 322 B1 relates to operation of sensor networks such as those used for security, intrusion and alarm systems installed on commercial or residential premises. US 10 686 626 B2 discloses an apparatus comprising a processor, wherein the processor is configured to: detect deployment context information for an edge gateway, wherein the deployment context information identifies a deployment environment of the edge gateway based on information from one or more sensors; transmit, via a communications network, the deployment context information for the edge gateway to a gateway management node; receive, via the communications network, a gateway configuration for the edge gateway from the gateway management node; and configure the edge gateway based on the gateway configuration. SUMMARY According to a first aspect of the present disclosure there is provided a method, performed by a control mesh node, comprising: obtaining, from a first gateway device coupled to a first mesh network system, a first capability dataset indicating capabilities of a first mesh node of the first mesh network system to provide a first service for a first object coupled to the first mesh node; obtaining, from a second gateway device coupled to a second mesh network system, a second capability dataset indicating capabilities of a second mesh node of the second mesh network system to provide a second service to a second object coupled to the second mesh node; generating, by a processing device based on the first capability dataset and the second capability dataset, a set of non-deterministic finite-state machine (NFSM) models for the first object and the second object, each NFSM model of the set of NFSM models to provide the first service for the first object or the second object; and providing, to the first gateway device and the second gateway device, the set of NFSM models and a partition dataset to cause the first gateway device and the second gateway device to use a single NFSM model of the set of NFSM models to provide the first service to the second object. The method may further comprise: discovering the first gateway device and the second gateway device; obtaining, from the first gateway device, a first topography dataset identifying a first group of mesh nodes of the first mesh network system; obtaining, from the second gateway device, a second topography dataset identifying a second group of mesh nodes of the second mesh network system; querying, using the first topography dataset, the first gateway device for the first topography dataset; and querying, using the second topography dataset, the second gateway device for the first topography dataset. The method may further comprise: generating, based on the first capability dataset and the second capability dataset, the partition dataset indicating that the first service is to be provided to the second object by using the first mesh node and the second mesh node, wherein providing the set of NFSM models and the partition dataset to the first gateway device further causes the first gateway device to determine a state of the first object based on the single NFSM model and sensor data associated with the first mesh node, and provide a model output indicative of the state of the first object to the second gateway device. The first gateway device may provide the model output to the second gateway device via a dedicated channel between the first gateway device and the second gateway device. Providing the set of NFSM models and the partition dataset to the second gateway device may further cause the second gateway device to enter a listen mode to listen for the model output from the first gateway device. Providing the set of NFSM models and the partition dataset to the second gateway device may further cause the second gateway device to generate configuration data for the second object based on the single NFSM model and the model output. Providing the set of NFSM models and the partition dataset to the second gateway device may further cause the second gateway