IP Library Granted Patent US 8,301,755
Granted Patent B2
US 8,301,755 · App. 11/956,507 · Granted Oct 30, 2012

Impact propagation in a directed acyclic graph

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 8,301,755
App. No.
11/956,507
Granted
Oct 30, 2012
Kind
B2
Abstract

A method, system and medium for efficiently propagating service impact data in a directed acyclic graph. One or more service components, impact rules and business rules will be grouped together into a directed acyclic graph and a related metadata array. Impact propagation uses related metadata array to minimize traversal of the graph. As nodes of the graph are updated to propagate impact data a determination is made as to when no further impact propagation is required and calculations are terminated without having to traverse the entire graph. This method will allow a system or business administrator to maintain real-time notification and visualization of, the impacted state of all objects in the graph.

Claims (35)

1. A service model impact propagation method, comprising:

creating a data structure of a service impact model, the data structure having nodes representing components of the service impact model and having impact relationships between at least some of the nodes, each of the nodes having one of at least two states, wherein the at least two states are respectively indicative of at least two operational statuses for their respective node;

associating one or more counts with at least some of the nodes, each count of the one or more counts for a given one of the nodes representing a number of the nodes having impact relationships with the given node with a respective one of the at least two states, wherein each state of the at least two states comprises one of a respective discrete operational status, a respective range of percentage availability or a respective range of throughput levels;

changing a state of a first of the nodes;

propagating impact of the change to counts associated with one or more second nodes having impact relationships with the first node to reflect the change of the state of the first node; and

determining a state of the one or more second nodes with the counts.

2. The method of claim 1 , wherein the data structure comprises a directed acyclic graph having the nodes for the components and having directed edges for the impact relationships.

3. The method of claim 1 , wherein associating counts with at least some of the nodes comprises dynamically allocating storage for the counts when needed.

4. The method of claim 1 , wherein associating the count for a given one of the nodes is performed only when at least one of the nodes having an impact relationship with the given node has one of the states designated as being tracked.

5. The method of claim 1 , wherein each discrete operational status is selected from the group consisting of a warning status, an alarm status, and an OK status.

6. The method of claim 1 , wherein propagating impact of the change terminates along the impact relationships at a given one of the second nodes when the state determined for the given node remains unchanged.

7. The method of claim 1 , wherein propagating impact of the change to the counts comprises counting, for a given one of the second nodes, a number of other nodes having a given state and having an impact relationship with the given node.

8. The method of claim 1 , wherein determining the state of the one or more second nodes with the counts comprises determining the state for a given one of the second nodes from the associated count tracking the state having a highest value.

9. The method of claim 1 , wherein determining the state of the one or more second nodes with the counts comprises determining the state for a given one of the second nodes from the associated count tracking the state representing a worst of the at least two states.

10. The method of claim 1 , wherein propagating impact of the change comprises generating one or more tasks, each of the tasks based on a depth of the one or more second nodes in the data structure.

11. The method of claim 10 , further comprising: collecting the tasks into a work list by depth; and processing each depth in the work list in prioritized order.

12. A program storage device, readable by a programmable control device, comprising instructions stored on the program storage device for causing the programmable control device to implement the method of claim 1 .

13. A service model impact propagation method, comprising:

creating a directed acyclic graph having nodes and directed edges, the nodes representing components of a service impact model, the directed edges representing impact relationships between at least some the components, each of the nodes having one of at least two states, wherein the at least two states are respectively indicative of at least two operational statuses for their respective node;

associating one or more counts with at least some of the nodes, each count of the one or more counts for a given one of the nodes representing a number of the nodes having impact relationships with the given node with a respective one of the at least two states, wherein each state of the at least two states comprises one of a respective discrete operational status, a respective range of percentage availability or a respective range of throughput levels;

receiving information about a state change in one or more first nodes;

propagating impact of the state change to one or more second nodes along the directed edges with the one or more first nodes by:

updating counts associated with the one or more second nodes to reflect the state change in the one or more first nodes, and determining a state for the one or more second nodes from the updated counts.

14. The method of claim 13 , wherein associating the count for a given one of the nodes is performed only when at least one of the nodes having an impact relationship with the given node has one of the states designated as being tracked.

15. The method of claim 13 , wherein each discrete operational status is selected from the group consisting of a warning status, an alarm status, and an OK status.

16. The method of claim 13 , wherein propagating impact of the change terminates along the directed edges at a given one of the second nodes when the state determined for the given node remains unchanged.

17. The method of claim 13 , wherein updating the counts associated with the one or more second nodes comprises counting, for a given one of the second nodes, a number of other nodes having a given state and having an impact relationship with the given node.

18. The method of claim 13 , wherein determining the state for the one or more second nodes from the updated counts comprises determining the state for a given one of the second nodes from the associated count tracking the state having a highest value.

19. The method of claim 13 , wherein determining the state for the one or more second nodes from the updated counts comprises determining the state for a given one of the second nodes from the associated count tracking the state representing a worst of the at least two states for the given node.

20. The method of claim 13 , wherein propagating impact of the change comprises generating one or more tasks, each of the tasks based on a depth of the one or more second nodes in the directed acyclic graph.

21. The method of claim 20 , further comprising: collecting the tasks into a work list based on depth; and processing each of the depths in the work list in prioritized order.

22. The method of claim 13 , further comprising reducing storage requirements for the counts by using a technique selected from the group consisting of sparse arrays, hash tables, and hash tables keyed on state.

23. The method of claim 22 , wherein propagating impact of the change comprises buffering state changes to the one or more first nodes in a batch window.

24. The method of claim 23 , wherein buffering the state changes in the batch window comprises grouping the state changes together, and processing the state changes in a single pass of propagation through the directed acyclic graph.

25. A program storage device, readable by a programmable control device, comprising instructions stored on the program storage device for causing the programmable control device to implement the method of claim 13 .

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2007
From: DE PEUTER, GEERT; BONNELL, DAVID
To: BMC SOFTWARE, INC.
Reel/Frame 020259/0037 →