IP Library Granted Patent US 10,333,820
Granted Patent B1
US 10,333,820 · App. 13/658,724 · Granted Jun 25, 2019

System for inferring dependencies among computing systems

Inventors: Xiangrui Wang (Burlington, CA); Joseph Vaughn Rustad (Toronto, CA); Gia Duong Diep (Toronto, CA)
Assignee: Quest Software Inc.
H04L45/02H04L41/12H04L43/045
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,333,820
App. No.
13/658,724
Granted
Jun 25, 2019
Kind
B1
Abstract

Systems and methods are described for identifying, tracking, and customizing dependencies between components of a computing environment. By providing greater insight and transparency into dependencies, the systems and methods can facilitate modeling the underlying architecture of applications and computer hardware. As a result, IT personnel can better track relationships between components. Custom filtering tools can also provide IT personnel with tools to switch from different types of dependency views that focus on application-oriented views, hardware-oriented views, or other custom views. Model annotation tools can also enable IT personnel to customize a dependency model to reflect real-world application and hardware monitoring conditions.

Claims (53)

1. A method of providing information about dependencies in a computing environment, the method comprising, by a computer system comprising computer hardware:

receiving monitoring data obtained from a plurality of monitored resources in a computing environment;

transforming the monitoring data into a topology model comprising a plurality of interconnected topology objects, the plurality of interconnected topology objects representing the plurality of monitored resources, wherein interconnections between the plurality of interconnected topology objects reflect existing relationships between the plurality of monitored resources in the computing environment; and

storing the topology model in a data store within the computing environment;

detecting a first dependency between first and second processes corresponding to first and second topology objects of the interconnected topology objects based, at least in part, on an observed communication between the first and second processes, the observed communication between the first and second processes being at least partially different from the existing relationships represented in the stored topology model, and wherein the first process is running on a first virtual machine and the second process is running on a second virtual machine;

responsive to the detecting the first dependency, looking up the first and second processes in the stored topology model to determine related model objects, the looking up comprising following at least one of ancestor and descendant links of the first and second topology objects during a traversal of the stored topology model;

responsive to the looking up, identifying a third topology object that is at least one of an ancestor and a descendant of the first topology object and a fourth topology object that is at least one of an ancestor and a descendant of the second topology object, wherein the third topology object corresponds to the first virtual machine on which the first process is running and the fourth topology object corresponds to the second virtual machine on which the second process is running;

inferring, based at least in part on the observed communication and the traversal of the stored topology model, a second dependency between the first and second virtual machines corresponding to the third and fourth topology objects of the interconnected topology objects;

storing data representing the first and second dependencies in a dependency graph; and

outputting a user interface comprising at least a portion of the dependency graph.

2. The method of claim 1 , comprising ignoring selected topology objects of the interconnected topology objects during the traversal of the stored topology model when inferring the second dependency in response to detecting a registry setting specifying that the selected topology objects are to be ignored.

3. The method of claim 1 , wherein the outputting comprises outputting a registry user interface configured to enable users to annotate the dependency graph to adjust one or both of the first and second dependencies represented in the dependency graph to thereby produce a modified dependency graph.

4. The method of claim 3 , comprising:

receiving via the registry user interface a time-sensitive registry setting, the time-sensitive registry setting indicating a scheduled period during which selected ones of the interconnected topology objects are scheduled to be offline;

inferring that any child or descendent objects from the selected ones of the interconnected topology objects are also offline during the scheduled period; and

outputting a portion of the modified dependency graph for presentation to a user, wherein the selected ones of the interconnected topology objects and the inferred child or descendent objects are not provided in the outputted portion of the modified dependency graph during the scheduled period due to the time-sensitive registry setting.

5. The method of claim 4 , comprising outputting the portion of the dependencies in a graph or a table.

6. The method of claim 3 , wherein the dependency graph comprises a tree data structure configured to link the interconnected topology objects in ancestor-descendent relationships, and wherein the registry user interface is further configured to provide functionality that enables users to adjust the ancestor-descendent relationships.

7. The method of claim 3 , comprising enabling a user to select a subset of the modified dependency graph for presentation.

8. The method of claim 3 , comprising overriding at least one registry variable based on a custom filter to further modify a view of the dependency graph.

9. The method of claim 3 , wherein the dependency graph comprises selected interconnected topology objects of the interconnected topology objects arranged in a hierarchical data structure.

10. The method of claim 9 , wherein the registry user interface is further configured to enable users to modify relationships between the selected interconnected topology objects in the hierarchical data structure.

11. A system comprising a processor and memory, wherein the processor and memory in combination are operable to implement a method comprising:

receiving monitoring data obtained from a plurality of monitored resources in a computing environment;

transforming the monitoring data into a topology model comprising a plurality of interconnected topology objects, the plurality of interconnected topology objects representing the plurality of monitored resources, wherein interconnections between the plurality of interconnected topology objects reflect existing relationships between the plurality of monitored resources in the computing environment; and

storing the topology model in a data store within the computing environment;

detecting a first dependency between first and second processes corresponding to first and second topology objects of the interconnected topology objects based, at least in part, on an observed communication between the first and second processes, the observed communication between the first and second processes being at least partially different from the existing relationships represented in the stored topology model, and wherein the first process is running on a first virtual machine and the second process is running on a second virtual machine;

responsive to the detecting the first dependency, looking up the first and second processes in the stored topology model to determine related model objects, the looking up comprising following at least one of ancestor and descendant links of the first and second topology objects during a traversal of the stored topology model;

responsive to the looking up, identifying a third topology object that is at least one of an ancestor and a descendant of the first topology object and a fourth topology object that is at least one of an ancestor and a descendant of the second topology object, wherein the third topology object corresponds to the first virtual machine on which the first process is running and the fourth topology object corresponds to the second virtual machine on which the second process is running;

inferring, based at least in part on the observed communication and the traversal of the stored topology model, a second dependency between the first and second virtual machines corresponding to the third and fourth topology objects of the interconnected topology objects;

storing data representing the first and second dependencies in a dependency graph; and

outputting a user interface comprising at least a portion of the dependency graph.

12. The system of claim 11 , the method comprising ignoring selected topology objects of the interconnected topology objects during the traversal of the stored topology model when inferring the second dependency in response to detecting a registry setting specifying that the selected topology objects are to be ignored.

13. The system of claim 11 , wherein the outputting comprises outputting a registry user interface configured to enable users to annotate the dependency graph to adjust one or both of the first and second dependencies represented in the dependency graph to thereby produce a modified dependency graph.

14. The system of claim 13 , the method comprising:

receiving via the registry user interface a time-sensitive registry setting, the time-sensitive registry setting indicating a scheduled period during which selected ones of the interconnected topology objects are scheduled to be offline;

inferring that any child or descendent objects from the selected ones of the interconnected topology objects are also offline during the scheduled period; and

outputting a portion of the modified dependency graph for presentation to a user, wherein the selected ones of the interconnected topology objects and the inferred child or descendent objects are not provided in the outputted portion of the modified dependency graph during the scheduled period due to the time-sensitive registry setting.

15. The system of claim 14 , the method comprising outputting the portion of the dependencies in a graph or a table.

16. The system of claim 13 , wherein the dependency graph comprises a tree data structure configured to link the interconnected topology objects in ancestor-descendent relationships, and wherein the registry user interface is further configured to provide functionality that enables users to adjust the ancestor-descendent relationships.

17. The system of claim 13 , the method comprising enabling a user to select a subset of the modified dependency graph for presentation.

18. The system of claim 13 , the method comprising overriding at least one registry variable based on a custom filter to further modify a view of the dependency graph.

19. The system of claim 13 , wherein the dependency graph comprises selected interconnected topology objects of the interconnected topology objects arranged in a hierarchical data structure.

20. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method on a particular recording device in a peer-to-peer recording system comprising a plurality of networked recording devices, the method comprising:

receiving monitoring data obtained from a plurality of monitored resources in a computing environment;

transforming the monitoring data into a topology model comprising a plurality of interconnected topology objects, the plurality of interconnected topology objects representing the plurality of monitored resources, wherein interconnections between the plurality of interconnected topology objects reflect existing relationships between the plurality of monitored resources in the computing environment; and

storing the topology model in a data store within the computing environment;

detecting a first dependency between first and second processes corresponding to first and second topology objects of the interconnected topology objects based, at least in part, on an observed communication between the first and second processes, the observed communication between the first and second processes being at least partially different from the existing relationships represented in the stored topology model, and wherein the first process is running on a first virtual machine and the second process is running on a second virtual machine;

responsive to the detecting the first dependency, looking up the first and second processes in the stored topology model to determine related model objects, the looking up comprising following at least one of ancestor and descendant links of the first and second topology objects during a traversal of the stored topology model;

responsive to the looking up, identifying a third topology object that is at least one of an ancestor and a descendant of the first topology object and a fourth topology object that is at least one of an ancestor and a descendant of the second topology object, wherein the third topology object corresponds to the first virtual machine on which the first process is running and the fourth topology object corresponds to the second virtual machine on which the second process is running;

inferring, based at least in part on the observed communication and the traversal of the stored topology model, a second dependency between the first and second virtual machines corresponding to the third and fourth topology objects of the interconnected topology objects;

storing data representing the first and second dependencies in a dependency graph; and

outputting a user interface comprising at least a portion of the dependency graph.

Assignments (27)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2013
From: WANG, XIANGRUI; RUSTAD, JOSEPH VAUGHN; DIEP, GIA DUONG
To: QUEST SOFTWARE, INC.
Reel/Frame 031211/0956 →
CHANGE OF NAME Recorded Aug 19, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031035/0914 →
Cited By (14)
US 12,261,750 US 12,401,709 US 12,517,907 US 12,591,218 US 12,591,506 US 12,621,205 US 12,634,202 US 12,646,026 US 12,647,324 US 12,663,974 US 12,675,099 US 12,681,775 US 12,710,987 US 12,717,701