IP Library › Granted Patent US 12,182,626
Granted Patent B2
US 12,182,626 · App. 17/297,963 · Granted Dec 31, 2024

Rule-based assignment of event-driven application

Inventors: Paul Butterworth (Alamo, CA); Evan Zhang (San Francisco, CA); Steve Langley (Walnut Creek, CA)
Assignee: VANTIQ, INC.
G06F9/5066G06F8/10G06F8/433G06F8/60G06F8/75
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,182,626
App. No.
17/297,963
Granted
Dec 31, 2024
Kind
B2
Abstract

A method to deploy a plurality of event-driven application components of an event-driven application in a distributed computing environment is described. The method includes automatically analyzing application source code of the event-driven application, using one or more processors, to identify relationships between the plurality of event-driven application components. Thereafter, a set of rules are applied to, based on the automatic analysis, generate assignment data recording assignments of event-driven application components to a plurality of computational nodes in the distributed computing environment. The set of rules is also applied to determine component requirements for each of the plurality of event-driven application components required to support execution at an assigned computational node in the distributed computing environment.

Claims (57)

1. A method to deploy a plurality of event-driven application components of an event-driven application in a distributed Internet of Things (IoT) computing environment, the event-driven application configured to receive event data from a plurality of sensors within the distributed Internet of Things (IoT) computing environment, the method comprising:

automatically analyzing application source code of the event-driven application, using one or more processors, the automatic analyzing comprising:

identifying relationships between a plurality of event-driven application components,

determining component requirements of the plurality of event-driven application components to be supported at an assigned computational node,

identifying an abstract node set of a plurality of node sets for assignment to the plurality of event-driven application components, the identifying of the abstract node set comprising identifying a notational declaration of a remote reference by each event-driven application component in a subset of the plurality of event-driven application components, and

assigning the plurality of event-driven application components to the abstract node set based on the component requirements of the plurality of event-driven application components, on the identified relationships between the plurality of event-driven application components, and on assignment rules comprising general rules and rules specific to component types of the event-driven application components, the component types comprising one of at least an event component type, a rule component type, or a type component type;

assigning an actual node set of the distributed Internet of Things (IoT) computing environment to the abstract node set;

using one or more processors, automatically deploying the plurality of event-driven application components to the actual node set of the distributed Internet of Things (IoT) computing environment, the actual node set having been assigned to the abstract node set; and

causing execution of at least one of the deployed plurality of event-driven application components.

2. The method of claim 1 , wherein each remote reference represents an abstract set of computing resources that satisfy a logical computing resource constraint, and wherein the notational declaration of the remote reference comprises a declaration of a logical computing resource constraint of the remote reference.

3. The method of claim 1 , wherein:

the identifying of relationships between the plurality of event-driven application components comprises identifying a reference by a first event-driven application component to a second event-driven application component;

the identifying of component requirements for the plurality of event-driven application components comprises identifying the component requirements for the first event-driven application component; and

the identifying of the abstract node set comprises the identifying of a notational declaration of a first remote reference by the first event-driven application component.

4. The method of claim 3 , wherein:

the assigning of the plurality of event-driven application components to the abstract node set comprises:

assigning the first event-driven application component to the abstract node set based on the first event-driven application component requirements; and

assigning the second event-driven application component to the abstract node set based on a general assignment rule and on the reference by the first event-driven application component.

5. The method of claim 3 , wherein the second event-driven application component is a procedure component or a type component.

6. The method of claim 1 , wherein:

the identifying of relationships between the plurality of event-driven application components comprises identifying a production of an event component by a third event-driven application component; and

the assigning of the plurality of event-driven application components to the abstract node set comprises:

assigning the event component to the abstract node set; and

assigning the third event-driven application component to the abstract node set based on an assignment rule specific to the event component type and on the identified production by the third event-driven application component.

7. The method of claim 1 , wherein the assigning of the plurality of event-driven application components to the abstract node set further comprises assigning a common set of event-application components to each node of a respective abstract node set of the plurality of node sets.

8. The method of claim 1 , wherein the abstract node set to which a respective event-driven application component is assigned is identified based on a determination of minimal code that may be assigned to the respective event-driven application component.

9. The method of claim 1 , wherein the analyzing of the application source code includes determining a resource that operationally triggers execution of a specific event-driven application component.

10. The method of claim 1 , wherein the analyzing of the application source code includes determining a resource referenced by a specific event-driven application component.

11. The method of claim 1 , wherein the analyzing of the application source code includes identifying a dependency of an identified code segment of a specific event-driven application component.

12. A computing apparatus, the computing apparatus comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, configure the apparatus to:

automatically analyze application source code of an event-driven application in a distributed Internet of Things (IoT) computing environment, the event-driven application configured to receive event data from a plurality of sensors within the distributed Internet of Things (IoT) computing environment, the automatic analyzing comprising:

identifying relationships between a plurality of event-driven application components of the event-driven application, determining component requirements of the plurality of event-driven application components to be supported at an assigned computational node, identifying an abstract node set of a plurality of node sets for assignment to the plurality of event-driven application components, the identifying of the abstract node set comprising identifying a notational declaration of a remote reference by each event-driven application component in a subset of the plurality of event-driven application components, and

assigning the plurality of event-driven application components to the abstract node set based on the component requirements of the plurality of event-driven application components, on the identified relationships between the plurality of event-driven application components, and on assignment rules comprising general rules and rules specific to component types of the event-driven application components, the component types comprising one of at least an event component type, a rule component type, or a type component type;

assigning an actual node set of the distributed Internet of Things (IoT) computing environment to the abstract node set;

using one or more processors, automatically deploying the plurality of event-driven application components to the actual node set of the distributed Internet of Things (IoT) computing environment, the actual node set having been assigned to the abstract node set; and

causing execution of at least one of the deployed plurality of event-driven application components.

13. The computing apparatus of claim 12 , wherein each remote reference represents an abstract set of computing resources that satisfy a logical computing resource constraint, and wherein the notational declaration of the remote reference comprises a declaration of a logical computing resource constraint of the remote reference.

14. The computing apparatus of claim 13 , wherein:

the identifying of relationships between the plurality of event-driven application components comprises identifying a reference by a first event-driven application component to a second event-driven application component; and

the identifying of component requirements for the plurality of event-driven application components comprises identifying the component requirements for the first event-driven application component.

15. The computing apparatus of claim 14 , wherein:

the assigning of the plurality of event-driven application components to the abstract node set comprises:

assigning the first event-driven application component to the abstract node set based on the first event-driven application component requirements; and

assigning the second event-driven application component to the abstract node set based on a general assignment rule and on the reference by the first event-driven application component.

16. A non-transitory computer storage medium, the computer storage medium including instructions that when executed by at least one computer, cause the at least one computer to perform operations comprising:

automatically analyzing application source code of an event-driven application in a distributed Internet of Things (IoT) computing environment, the event-driven application configured to receive event data from a plurality of sensors within the distributed Internet of Things (IoT) computing environment, the automatic analyzing comprising:

identifying relationships between a plurality of event-driven application components of the event-driven application,

determining component requirements of the plurality of event-driven application components to be supported at an assigned computational node,

identifying an abstract node set of a plurality of node sets for assignment to the plurality of event-driven application components, the identifying of the abstract node set comprising identifying a notational declaration of a remote reference by each event-driven application component in a subset of the plurality of event-driven application components, and

assigning the plurality of event-driven application components to the abstract node set based on the component requirements of the plurality of event-driven application components, on the identified relationships between the plurality of event-driven application components, and on assignment rules comprising general rules and rules specific to component types of the event-driven application components, the component types comprising one of at least an event component type, a rule component type, or a type component type;

assigning an actual node set of the distributed Internet of Things (IoT) computing environment to the abstract node set;

using one or more processors, automatically deploying the plurality of event-driven application components to the actual node set of the distributed Internet of Things (IoT) computing environment, the actual node set having been assigned to the abstract node set; and

causing execution of at least one of the deployed plurality of event-driven application components.

17. The method of claim 1 , wherein the plurality of node sets comprises a default node set, and each event-driven application component is assigned to the default node set prior to the automatic analyzing.

18. The computing apparatus of claim 12 , wherein the plurality of node sets comprises a default node set, and each event-driven application component is assigned to the default node set prior to the automatic analyzing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2021
From: BUTTERWORTH, PAUL; ZHANG, EVAN; LANGLEY, STEVE
To: VANTIQ, INC.
Reel/Frame 057062/0476 →
Continuity (2)
Provisional Application 62773142 · Nov 29, 2018
Related Publication 20220091897A1 · Mar 24, 2022