IP Library Granted Patent US 10,979,288
Granted Patent B2
US 10,979,288 · App. 16/744,742 · Granted Apr 13, 2021

Distributed rules engine for processing events associated with internet of things devices

Inventors: Anand Balasubramanian (Bangalore, IN); Gangadhar Nittala (Bangalore, IN)
Assignee: VMware, Inc.
H04L41/0803G06N5/00H04L41/04H04L41/06H04L41/00H04L67/12
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 10,979,288
App. No.
16/744,742
Granted
Apr 13, 2021
Kind
B2
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.

Claims (44)

1. 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 identifying 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 definition identifies at least one condition referencing at least one of the population of devices and at least one action taken on 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, or at least one terminal node;

distribute a plurality of nodes of the network topology for execution by a plurality of computing instances; and

identify a root node of the network topology.

2. The system of claim 1 , wherein execution of the root node in response to receiving a first input causes a first data output to be sent to the at least one select node, and wherein the at least one select node determines that the first input is associated with the rule definition.

3. The system of claim 2 , wherein execution of the at least one select node causes a second data output to be sent to the at least one join node, and wherein the at least one join node determines whether the rule definition applies to the first input.

4. The system of claim 3 , wherein execution of the at least one join node causes a third data output to the at least one terminal node, and wherein the at least one terminal node causes the at least one action to be taken.

5. The system of claim 1 , wherein the plurality of nodes are executed in separate computing devices in a cluster of computing devices.

6. The system of claim 1 , wherein the instructions, when executed, further cause the at least one computing device to:

obtain an update to the rule definition;

generate a new network topology based upon the update to the rule definition; and

distribute a plurality of updated nodes for execution by the plurality of computing instances.

7. The system of claim 1 , wherein the instructions, when executed, further cause the at least one computing device to:

associate a respective network address with the plurality of nodes, wherein respective ones of the plurality of nodes are addressable by another one of the plurality of nodes using the respective network address.

8. A non-transitory computer-readable medium embodying instructions executable in at least one computing device for deploying a rules engine for processing events received from a population of devices, wherein when executed the instructions cause the at least one computing device to:

obtain a rule definition identifying 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 definition identifies at least one condition referencing at least one of the population of devices and at least one action taken on 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, or at least one terminal node;

distribute a plurality of nodes of the network topology for execution by a plurality of computing instances; and

identify a root node of the network topology.

9. The non-transitory computer-readable medium of claim 8 , wherein execution of the root node in response to receiving a first input causes a first data output to be sent to the at least one select node, and wherein the at least one select node determines that the first input is associated with the rule.

10. The non-transitory computer-readable medium of claim 9 , wherein execution of the at least one select node causes a second data output to be sent to the at least one join node, and wherein the at least one join node determines whether the rule applies to the first input.

11. The non-transitory computer-readable medium of claim 10 , wherein execution of the at least one join node causes a third data output to the at least one terminal node, and wherein the at least one terminal node causes the at least one action to be taken.

12. The non-transitory computer-readable medium of claim 8 , wherein the plurality of nodes are executed in separate computing devices in a cluster of computing devices.

13. The non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, further cause the at least one computing device to:

obtain an update to the rule definition;

generate a new network topology based upon the update to the rule definition; and

distribute a plurality of updated nodes for execution by the plurality of computing instances.

14. The non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, further cause the at least one computing device to:

associate a respective network address with the plurality of nodes, wherein respective ones of the plurality of nodes are addressable by another one of the plurality of nodes using the respective network address.

15. A method for deploying a rules engine for processing events received from a population of devices, comprising:

obtaining a rule definition identifying 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 definition identifies at least one condition referencing at least one of the population of devices and at least one action taken on the at least one of the population of devices;

generating 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, or at least one terminal node;

distributing a plurality of nodes of the network topology for execution by a plurality of computing instances; and

identifying a root node of the network topology.

16. The method of claim 15 , wherein execution of the root node in response to receiving a first input causes a first data output to be sent to the at least one select node, and wherein the at least one select node determines that the first input is associated with the rule.

17. The method of claim 16 , wherein execution of the at least one select node causes a second data output to be sent to the at least one join node, and wherein the at least one join node determines whether the rule applies to the first input.

18. The method of claim 17 , wherein execution of the at least one join node causes a third data output to the at least one terminal node, and wherein the at least one terminal node causes the at least one action to be taken.

19. The method of claim 15 , wherein the plurality of nodes are executed in separate computing devices in a cluster of computing devices.

20. The method of claim 15 , further comprising:

obtaining an update to the rule definition;

generating a new network topology based upon the update to the rule definition; and

distributing a plurality of updated nodes for execution by the plurality of computing instances.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2020
From: BALASUBRAMANIAN, ANAND; NITTALA, GANGADHAR
To: VMWARE, INC.
Reel/Frame 054492/0291 →