Distributed rules engine for processing events associated with internet of things devices
AssigneeVMware, Inc.
InventorsAnand Balasubramanian, Gangadhar Nittala
Life of this patent
Estimating the term…
Abstract
Disclosed are various examples for deploying a rules engine in a distributed fashion. A rule definition that defines a rule can be transformed in a network topology. The network topology can be deployed onto a cluster of computing devices or instances. In this way, the rules engine can be horizontally scalable such that is it not necessary to deploy the rules engine in a single computing instance.
Claims20
A system for deploying a rules engine for processing events received from a population of devices, comprising:
- at least one computing device executing a plurality of instructions that, when executed, cause the at least one computing device to at least:
- obtain a rule definition defining at least one entity, at least one action, and a rule, wherein the at least one entity identifies an input into the rules engine, wherein the input is defined in terms of at least one of the population of devices, wherein the rule identifies at least one condition referencing at least one of the population of devices, and wherein the at least one action is taken in response to at least one of:
- the input, or a condition associated with the at least one of the population of devices;
- generate a network topology based upon the rule definition, wherein the network topology separates the rule definition into a plurality of nodes, and wherein the plurality of nodes comprises at least one select node, at least one join node, and at least one terminal node;
- distribute a plurality of nodes of the network topology for execution by a plurality of computing instances;
- identify a root node of the network topology;
- and
- configure a queueing application to output a plurality of inputs to the network topology to the root node.
A non-transitory computer-readable medium embodying instructions executable in at least one computing device, wherein when executed the instructions cause the at least one computing device to:
- obtain a rule definition defining at least one entity, at least one action, and a rule, wherein the at least one entity identifies an input into a rules engine, wherein the input is defined in terms of at least one of a population of devices, wherein the rule identifies at least one condition referencing at least one of the population of devices, and wherein the at least one action is taken in response to the input, or a condition associated with the at least one of the population of devices;
- generate a network topology based upon the rule definition, wherein the network topology separates the rule definition into a plurality of nodes, and wherein the plurality of nodes comprises at least one select node, at least one join node, and at least one terminal node;
- distribute a plurality of nodes of the network topology for execution by a plurality of computing instances;
- identify a root node of the network topology;
- and
- configure a queueing application to output a plurality of inputs to the network topology to the root node.
A computer-implemented method, comprising:
- obtaining a rule definition defining at least one entity, at least one action, and a rule, wherein the at least one entity identifies an input into a rules engine, wherein the input is defined in terms of at least one of a population of devices, wherein the rule identifies at least one condition referencing at least one of the population of devices, and wherein the at least one action is taken in response to the input or a condition associated with the at least one of the population of devices;
- generating a network topology based upon the rule definition, the network topology separating the rule definition into a plurality of nodes, the plurality of nodes comprising at least one select node, at least one join node, and at least one terminal node;
- distributing a plurality of nodes of the network topology for execution by a plurality of computing instances;
- identifying a root node of the network topology;
- and
- configuring a queueing application to output a plurality of inputs to the network topology to the root node.
Dependencies are inferred from the claim text.