IP Library Granted Patent US 11,620,177
Granted Patent B2
US 11,620,177 · App. 17/304,826 · Granted Apr 4, 2023

Alerting system having a network of stateful transformation nodes

Inventor: Dmytro Melanchenko (Trinity, FL)
G06F11/0772
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 11,620,177
App. No.
17/304,826
Granted
Apr 4, 2023
Kind
B2
Abstract

An alerting system is provided that includes a network of transformation nodes, and a state change processors. The transformation nodes include input transformation nodes, output transformation nodes, and intermediate nodes that connect the input and output transformation nodes. Each input transformation node can receive an events stream, and is coupled to one of the output transformation nodes by one or more intermediate transformation nodes. Each transformation node (except the input transformation nodes) can receive state updates from those transformation nodes that it subscribes to. Each output transformation node can generate a check result when stored state information for each of the transformation nodes that the output transformation node subscribes to collectively indicates that the check result should be generated. Each output transformation node is coupled to one of the state change processors that can determine whether the check results should trigger an action, and if so, can then perform an action.

Claims (83)

1. An alerting system that is configured to run on a server system comprising processing hardware, the alerting system comprising:

a streams transformer comprising: a network of transformation nodes comprising: an input transformation node configured to receive events generated by an events producer as part of an events stream, process the events to generate state updated that indicates state information, and communicate the state information to all transformation nodes that subscribe to the input transformation node; an output transformation node; and at least one intermediate transformation node coupled between the input transformation node and the output transformation node,

wherein each of the intermediate transformation nodes comprise for each particular transformation node that the intermediate transformation node subscribes to:

a state module being configured to store current state information for a particular transformation node that the intermediate transformation node subscribes to; and

a state updater being configured to update the current state information indicated in a state update for a particular transformation node that the intermediate transformation node subscribes to with new state information,

wherein the output transformation node is configured to: generate a check result when stored state information for each of the transformation nodes that the output transformation node subscribes to collectively indicates that the check result should be generated; and

a state change processor configured to: perform an action when it is determined that the check result is to trigger the action, wherein the action causes a consumer system to react to the action.

2. The system of claim 1 , wherein the intermediate transformation node subscribes to at least the input transformation node and is configured to receive state updates from at least the input transformation node, and

wherein the output transformation node subscribes to at least the intermediate transformation node and is configured to receive state updates from at least the intermediate transformation node.

3. The system of claim 2 , wherein the input transformation node comprises:

an input connector that is configured to receive the events stream from the events producer that the input transformation node subscribes to, wherein the events stream includes time series of events received from the events producer, wherein each event represents something that has happened; and

a transformation rule, for that input transformation node, that is configured to:

process the events and compute state information for the input transformation node in accordance with the transformation rule, and

provide state updates that indicate the state information to all transformation nodes that subscribe to the input transformation node.

4. The system of claim 1 , wherein the intermediate transformation node and the output transformation node are both configured to maintain state information for each transformation node that they subscribe to, wherein the state information is updated each time a state update is received from another transformation node.

5. The system of claim 4 , wherein the intermediate transformation node is further configured to:

determine whether state information for that intermediate transformation node should be updated based on state information for each of the transformation nodes that the intermediate transformation node subscribes to each time a state update is received from at least one of the transformation nodes that the intermediate transformation node subscribes to, and generate a state update when stored state information for each of the transformation nodes that the intermediate transformation node subscribes to collectively indicates that the state update should be generated, and

wherein the output transformation node is further configured to: receive state updates from any of the transformation nodes the output transformation node is subscribed to, and store each of the state updates as state information.

6. The system of claim 1 , wherein each state module of each of the intermediate transformation nodes is configured to: receive state updates from any of the transformation nodes that the intermediate transformation node is subscribed to; store each of the state updates as state information; and update state information for each transformation node that the intermediate transformation node is connected to each time a state update is received from another transformation node that the intermediate transformation node is connected to.

7. The system of claim 6 , wherein the state updater of each state module of each of the intermediate transformation nodes comprises:

a memory element that stores current state information for a particular transformation node that the intermediate transformation node subscribes to, and

wherein the state updater of each state module of each of the intermediate transformation nodes is configured to:

receive state updates from the particular transformation node;

compare, each time a state update is received, the new state information that is indicated in the state update with the current state information stored at the memory element; and

update the current state information that is stored at the memory element with the new state information that is indicated in the state update.

8. The system of claim 6 , wherein each intermediate transformation node further comprises:

a transformation rule for that intermediate transformation node; and

a re-computation trigger function for that intermediate transformation node that is configured to: determine, based on current state information stored by each of the state modules for each of the transformation nodes that the intermediate transformation node subscribes to, whether state information for that intermediate transformation node is to be updated only when state information stored by any of the state modules changes each time a state update is received from at least one of the transformation nodes that the intermediate transformation node subscribes to; and call the transformation rule to re-compute the state information for that intermediate transformation node in accordance with the transformation rule,

wherein the transformation rule is configured to communicate a state update comprising the re-computed state information to all transformation nodes that subscribe to the intermediate transformation node.

9. The system of claim 8 , wherein the transformation rule is a rule that describes how state information for each transformation node that the intermediate transformation node subscribes to is to be transformed into state information for the intermediate transformation node.

10. The system of claim 8 , wherein the transformation rule of the intermediate transformation node is defined based on one or more operations.

11. The system of claim 10 , wherein the one or more operations that define the transformation rule of the intermediate transformation node comprise at least one of: logical operations; mathematical operations; analytic operations; filter-based operations; buffered operations; or any combination thereof.

12. The system of claim 1 , wherein the output transformation node, comprises:

a state module for each transformation node that the output transformation node subscribes to, wherein each state module is configured to: receive state updates from any of the transformation nodes the output transformation node is subscribed to; store each of the state updates as state information; and update state information for each transformation node that the output transformation node is connected to each time a state update is received from another transformation node that the output transformation node is connected to;

a transformation rule; and

a re-computation trigger function that is configured to:

determine, based on the current state information stored by each of the state modules when state information stored by any of the state modules changes, whether state information of the output transformation node is to be updated; and

call the transformation rule to: re-compute the state information of the output transformation node in accordance with the transformation rule of the output transformation node, and output the check result that corresponds to the re-computed state information,

wherein the transformation rule is configured to communicate the check result to the state change processor when the stored state information for each of the transformation nodes that the output transformation node subscribes to collectively indicates that the check result should be generated,

wherein the state change processor is further configured to: receive the check results from the output transformation node; determine, each time the check result is received, whether that check result should trigger the action; and then perform the action when it is determined that the check result should trigger the action.

13. The system of claim 1 , wherein the state change processor comprises:

a state module that is configured to receive the check result from a transformation rule of the output transformation node; and to store and update check results from the output transformation node each time the check result is received;

an action trigger function configured to: determine whether the check result or the updated check results provided from the state module should trigger the action; and communicate a trigger command when it determines that the check result or the updated check results should trigger the action; and

an action function that performs the action in response to the trigger command.

14. The system of claim 13 , wherein the action performed by the action function comprises:

(1) generation and communication of an alert signal or message;

(2) generation and communication of command to trigger the action;

(3) the action triggered from a signal, message or command; or

(4) a call to an application programming interface (API).

15. The system of claim 1 , wherein a path that includes the input transformation node, the intermediate transformation node and the output transformation node defines a check performed that produces the check result.

16. An alerting system that is configured to run on a server system comprising processing hardware, the alerting system comprising:

a streams transformer comprising:

a network of transformation nodes comprising:

a plurality of input transformation nodes each being configured to receive an events stream generated by an events producer, process the events to generate state updated that indicates state information, and communicate the state information to all transformation nodes that subscribe to the input transformation node;

a plurality of output transformation nodes; and

a plurality of intermediate transformation nodes coupled between the plurality of input transformation nodes and the plurality of output transformation nodes, wherein each of the intermediate transformation nodes and output transformation nodes subscribe to and receive state updates from one or more of the transformation nodes that are part of the network,

wherein each of the intermediate transformation nodes comprise for each particular transformation node that the intermediate transformation node subscribes to: a state module being configured to store current state information for a particular transformation node that the intermediate transformation node subscribes to; and a state updater being configured to update the current state information indicated in a state update for a particular transformation node that the intermediate transformation node subscribes to with new state information,

wherein each of the output transformation nodes is configured to: generate a check result when stored state information for each of the transformation nodes that the output transformation node subscribes to collectively indicates that the check result should be generated; and

a plurality of state change processors each being configured to: perform an action when that state change processor determines, based on the check result received from a corresponding output transformation node, that the check result is to trigger the action, wherein the action causes a consumer system to react to the action.

17. The system of claim 16 , wherein the network of transformation nodes comprises a plurality of different paths, wherein each path comprises:

a particular input transformation node, one or more of the intermediate transformation nodes and a particular output transformation node, wherein each path defines a check performed that produces the check result.

18. The system of claim 16 , wherein each the input transformation node comprises:

a transformation rule that is configured to: compute state information, based on events received in an events stream from the events producer, and provide state updates that indicate the state information to all transformation nodes that subscribe to that input transformation node, and

wherein each of the intermediate transformation nodes and the output transformation nodes are configured to:

store and update state information for each transformation node that they subscribe to, wherein the state information is updated each time a state update is received from one of the transformation nodes that they subscribe to;

receive state updates from any of the transformation nodes that each is subscribed to, store each of the state updates as state information; and

determine whether state information for that intermediate transformation node or the check result for that output transformation node should be updated based on state information for each of the transformation nodes that the intermediate transformation node or output transformation node subscribes to, respectively.

19. The system of claim 18 , wherein each intermediate transformation node comprises:

a state module for each transformation node that the intermediate transformation node subscribes to, wherein each state module is configured to: receive state updates from any of the transformation nodes that the intermediate transformation node is subscribed to; store each of the state updates as state information; and update state information for each transformation node that the intermediate transformation node is connected to each time a state update is received from another transformation node that the intermediate transformation node is connected to;

a transformation rule for that intermediate transformation node; and

a re-computation trigger function for that intermediate transformation node that is configured to:

determine, based on current state information stored by each of the state modules for each of the transformation nodes that the intermediate transformation node subscribes to, whether state information for that intermediate transformation node is to be updated only when state information stored by any of the state modules changes each time a state update is received from at least one of the transformation nodes that the intermediate transformation node subscribes to; and

call the transformation rule to re-compute the state information for that intermediate transformation node in accordance with the transformation rule,

wherein the transformation rule re-computes the state information when current state information, stored at that intermediate transformation node for transformation nodes that the intermediate transformation node subscribes to, indicates that state information of that intermediate transformation node is to be updated,

wherein the transformation rule is configured to communicate a state update comprising the re-computed state information to all transformation nodes that subscribe to the intermediate transformation node,

wherein the output transformation node, comprises: a transformation rule configured to: re-compute state information of that intermediate transformation node in accordance with the transformation rule of that output transformation node, wherein the transformation rule re-computes the state information when current state information, stored at that intermediate transformation node for transformation nodes that the intermediate transformation node subscribes to, indicates that state information of that intermediate transformation node is to be updated; and communicate the check result to a corresponding state change processor, wherein the check result comprises the re-computed state information.

20. In an alerting system comprising at least one input transformation node that is configured to receive an events stream of events generated by an events producer, an output transformation node, and a plurality of intermediate transformation nodes coupled between the at least one input transformation node and the output transformation node, wherein each of the intermediate transformation nodes comprise for each particular transformation node that the intermediate transformation node subscribes to: a state module and a state updater, a method performed by the alerting system, the method comprising:

processing the events at the at least one input transformation node the events to generate state updates that indicates state information;

communicating the state information from the at least one input transformation node to all transformation nodes that subscribe to the at least one input transformation node;

at each state module of one of the intermediate transformation nodes: storing current state information for a particular transformation node that the intermediate transformation node subscribes to;

at each state updater of one of the intermediate transformation nodes: updating the current state information indicated in a state update for a particular transformation node that the intermediate transformation node subscribes to with new state information;

at the output transformation node: generating a check result when stored state information for each of the transformation nodes that the output transformation node subscribes to collectively indicates that the check result should be generated; and

at a state change processor: performing an action when it is determined that the check result is to trigger the action, wherein the action causes a consumer system to react to the action.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0529 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2022
From: MELANCHENKO, DMYTRO
To: SALESFORCE.COM, INC.
Reel/Frame 061960/0397 →
Continuity (3)
Continuation 16298285 · Mar 11, 2019
Continuation 15291858 · Oct 12, 2016
Related Publication 20210390013A1 · Dec 16, 2021