IP Library › Granted Patent US 10,467,002
Granted Patent B2
US 10,467,002 · App. 15/400,735 · Granted Nov 5, 2019

Validating interoperability of installed components of a computer system

Inventors: Hui Li (Fremont, CA); Michael Toback (Saratoga, CA)
Assignee: VMware, Inc.
G06F8/71
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,467,002
App. No.
15/400,735
Granted
Nov 5, 2019
Kind
B2
Abstract

In a computer-implemented method for validating interoperability of installed components of a computer system, site data identifying the installed components of the computer system and a version of each of the installed components is received, component dependency data identifying at least one component of the installed components requiring installation of another component of the installed components is received and component interoperability data identifying versions of a component of the installed components that are interoperable with versions of another component of the installed components is received. A version dependency compatibility acyclic graph is generated based at least on the installed components, the component dependency data and component interoperability data. It is determined whether the installed components are interoperable based on the version dependency compatibility acyclic graph.

Claims (55)

1. A computer-implemented method for validating interoperability of installed components of a computer system, the method comprising:

receiving site data identifying the installed components of the computer system and a version of each of the installed components;

receiving component dependency data identifying at least one component of the installed components requiring installation of another component of the installed components;

receiving component interoperability data identifying versions of a component of the installed components that are interoperable with versions of another component of the installed components;

generating a version dependency compatibility acyclic graph based at least on the installed components, the component dependency data and component interoperability data, wherein nodes of the version dependency compatibility acyclic graph represent the installed components, wherein directed edges connecting a pair of nodes identify an ancestor component and a dependent component, the directed edges comprising at least one version interoperability pair identifying compatible versions of the ancestor component and dependent component; and

determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph, the determining whether the installed components are interoperable comprising:

comparing the at least one version interoperability pair for the ancestor component and dependent component of a current installation; and

determining whether the ancestor component and dependent component are interoperable based on the comparing the at least one version interoperability pair; and

presenting an indication regarding interoperability of the installed components of the current installation on the computer system.

2. The computer-implemented method of claim 1 , wherein a version interoperability pair comprises a first value representing a version of the ancestor component and a second value representing a version of the dependent component.

3. The computer-implemented method of claim 1 , wherein the at least one version interoperability pair comprises versions of the dependent component that are not less than an installed version of the dependent component.

4. The computer-implemented method of claim 1 , wherein the site data comprises site metadata.

5. The computer-implemented method of claim 1 , wherein the site data comprises the component dependency data.

6. The computer-implemented method of claim 1 , wherein the component dependency data and the component interoperability data are maintained in a knowledge base repository.

7. The computer-implemented method of claim 1 , wherein the computer system comprises a hyper-converged appliance.

8. The computer-implemented method of claim 1 , wherein the determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph comprises:

determining whether pairs of installed components are interoperable, wherein a first installed component of a pair is dependent on a second installed component of the pair.

9. The computer-implemented method of claim 1 , wherein the determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph comprises:

provided a first plurality of installed components are dependent on a first installed component, determining whether each pair of the first plurality of installed components and the first installed component are interoperable; and

provided a second plurality of installed components are ancestors to a second installed component, determining whether each pair of the second plurality of installed components and the second installed component are interoperable.

10. The computer-implemented method of claim 1 , further comprising:

storing the version dependency compatibility acyclic graph in a knowledge base repository.

11. The computer-implemented method of claim 1 , further comprising:

responsive to a change in the installed components of the computer system, updating the version dependency compatibility acyclic graph to reflect the change.

12. The computer-implemented method of claim 1 , wherein the presenting an indication regarding interoperability of the installed components of the current installation on the computer system comprises:

responsive to a determination that the installed components are interoperable, presenting an indication that a current installation of the installed components on the computer system is valid.

13. The computer-implemented method of claim 1 , wherein the presenting an indication regarding interoperability of the installed components of the current installation on the computer system comprises:

responsive to a determination that at least two of the installed components are not interoperable, presenting an indication that a current installation of the installed components on the computer system is not valid, the indication identifying the at least two of the installed components that are not interoperable.

14. A non-transitory computer readable storage medium having computer readable program code stored thereon for causing a computer system to perform a method for validating interoperability of installed components of a computer system, the method comprising:

receiving site data identifying the installed components of the computer system and a version of each of the installed components;

receiving component dependency data identifying at least one component of the installed components requiring installation of another component of the installed components;

receiving component interoperability data identifying versions of a component of the installed components that are interoperable with versions of another component of the installed components;

generating a version dependency compatibility acyclic graph based at least on the installed components, the component dependency data and component interoperability data, wherein nodes of the version dependency compatibility acyclic graph represent the installed components, wherein directed edges connecting a pair of nodes identify an ancestor component and a dependent component, the directed edges comprising at least one version interoperability pair identifying compatible versions of the ancestor component and dependent component, wherein a version interoperability pair comprises a first value representing a version of the ancestor component and a second value representing a version of the dependent component; and

determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph, the determining whether the installed components are interoperable comprising:

comparing the at least one version interoperability pair for the ancestor component and dependent component of a current installation; and

determining whether the ancestor component and dependent component are interoperable based on the comparing the at least one version interoperability pair; and

presenting an indication regarding interoperability of the installed components of the current installation on the computer system.

15. The non-transitory computer readable storage medium of claim 14 , wherein the at least one version interoperability pair comprises versions of the dependent component that are not less than an installed version of the dependent component.

16. The non-transitory computer readable storage medium of claim 14 , wherein the determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph comprises:

determining whether pairs of installed components are interoperable, wherein a first installed component of a pair is dependent on a second installed component of the pair.

17. The non-transitory computer readable storage medium of claim 14 , wherein the determining whether the installed components are interoperable based on the version dependency compatibility acyclic graph comprises:

provided a first plurality of installed components are dependent on a first installed component, determining whether each pair of the first plurality of installed components and the first installed component are interoperable; and

provided a second plurality of installed components are ancestors to a second installed component, determining whether each pair of the second plurality of installed components and the second installed component are interoperable.

18. The non-transitory computer readable storage medium of claim 14 , further comprising:

storing the version dependency compatibility acyclic graph in a knowledge base repository.

19. A hyper-converged appliance comprising:

one or more data processors;

one or more networking components;

one or more data storage components having computer readable program code stored thereon for causing the one or more data processors to:

receive site data identifying installed components of the hyper-converged appliance and a version of each of the installed components;

receive component dependency data identifying at least one component of the installed components requiring installation of another component of the installed components;

receive component interoperability data identifying versions of a component of the installed components that are interoperable with versions of another component of the installed components;

generate a version dependency compatibility acyclic graph based at least on the installed components, the component dependency data and component interoperability data, wherein nodes of the version dependency compatibility acyclic graph represent the installed components, wherein directed edges connecting a pair of nodes identify an ancestor component and a dependent component, the directed edges comprising at least one version interoperability pair identifying compatible versions of the ancestor component and dependent component, wherein a version interoperability pair comprises a first value representing a version of the ancestor component and a second value representing a version of the dependent component, and wherein the at least one version interoperability pair comprises versions of the dependent component that are not less than an installed version of the dependent component;

determine whether the installed components are interoperable based on the version dependency compatibility acyclic graph, wherein the at least one version interoperability pair for the ancestor component and dependent component of a current installation are compared, and a determination whether the ancestor component and dependent component are interoperable is based on comparing the at least one version interoperability pair; and

present an indication regarding interoperability of the installed components of the current installation on the computer system.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2017
From: LI, HUI; TOBACK, MICHAEL
To: VMWARE, INC.
Reel/Frame 040878/0086 →
Continuity (2)
Provisional Application 62354505 · Jun 24, 2016
Related Publication 20170371649A1 · Dec 28, 2017