Dependency-based impact analysis using multidimensional models of software offerings
The disclosed embodiments provide a system that facilitates the maintenance and execution of a software offering. During operation, the system obtains model data associated with a multidimensional model of the software offering. Next, the system uses the model data to calculate a set of dependency scores representing levels of dependency among a set of service components and a set of resources used by the software offering. Finally, the system uses the dependency scores to facilitate management of the software offering.
1. A computer-implemented method for facilitating the maintenance and execution of a software offering, comprising:
obtaining, by computer, model data associated with a multidimensional model of the software offering;
using the model data to calculate, by computer, a set of dependency scores representing levels of dependency among a set of service components and a set of resources used by the software offering by:
calculating a set of centrality scores for a set of nodes in the multidimensional model, and
using the set of centrality scores as the set of dependency scores;
using the dependency scores to facilitate, by computer, management of the software offering by:
using the dependency scores to determine a set of recovery costs associated with the service components and the resources, and
using the dependency scores to determine a recovery sequence for the software offering, wherein the recovery sequence corresponds to a decreasing sequence of the dependency scores; and
presenting, by computer, the recovery sequence for the software offering to an administrator.
2. The computer-implemented method of claim 1 , further comprising:
obtaining an update to the multidimensional model; and
recalculating the dependency scores based on the update.
3. The computer-implemented method of claim 1 , wherein calculating the set of centrality scores for the set of nodes in the multidimensional model involves:
obtaining an adjacency matrix for the set of nodes;
calculating an eigenvector associated with a greatest eigenvalue of the adjacency matrix; and
obtaining the centrality scores from a set of elements in the eigenvector.
4. The computer-implemented method of claim 3 , wherein the eigenvector is calculated using at least one of an iterative technique and an algebraic technique.
5. A system for facilitating the maintenance and execution of a software offering, comprising:
a memory;
a processor;
a dependency-analysis mechanism configured to:
obtain model data associated with a multidimensional model of the software offering; and
use the model data to calculate a set of dependency scores representing levels of dependency among a set of service components and a set of resources used by the software offering by:
calculating a set of centrality scores for a set of nodes in the multidimensional model, and
using the set of centrality scores as the set of dependency scores; and
a management apparatus configured to use the dependency scores to facilitate management of the software offering by:
using the dependency scores to determine a set of recovery costs associated with the service components and the resources,
using the dependency scores to determine a recovery sequence for the software offering, wherein the recovery sequence corresponds to a decreasing sequence of the dependency scores, and
presenting the recovery sequence for the software offering to an administrator.
6. The system of claim 5 , wherein the dependency-analysis mechanism is further configured to:
obtain an update to the multidimensional model; and
recalculate the dependency scores based on the update.
7. The system of claim 5 , wherein calculating the set of centrality scores for the set of nodes in the multidimensional model involves:
obtaining an adjacency matrix for the set of nodes;
calculating an eigenvector associated with a greatest eigenvalue of the adjacency matrix; and
obtaining the centrality scores from a set of elements in the eigenvector.
8. The system of claim 7 , wherein the eigenvector is calculated using at least one of an iterative technique and an algebraic technique.
9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating the maintenance and execution of a software offering, the method comprising:
obtaining model data associated with a multidimensional model of the software offering;
using the model data to calculate a set of dependency scores representing levels of dependency among a set of service components and a set of resources used by the software offering by:
calculating a set of centrality scores for a set of nodes in the multidimensional model, and
using the set of centrality scores as the set of dependency scores; and
using the dependency scores to facilitate management of the software offering by:
using the dependency scores to determine a set of recovery costs associated with the service components and the resources, and
using the dependency scores to determine a recovery sequence for the software offering, wherein the recovery sequence corresponds to a decreasing sequence of the dependency scores; and
presenting the recovery sequence for the software offering to an administrator.
10. The non-transitory computer-readable storage medium of claim 9 , the method further comprising:
obtaining an update to the multidimensional model; and
recalculating the dependency scores based on the update.
11. The non-transitory computer-readable storage medium of claim 9 , wherein calculating the set of centrality scores for the set of nodes in the multidimensional model involves:
obtaining an adjacency matrix for the set of nodes;
calculating an eigenvector associated with a greatest eigenvalue of the adjacency matrix; and
obtaining the centrality scores from a set of elements in the eigenvector.
12. The non-transitory computer-readable storage medium of claim 11 , wherein the eigenvector is calculated using at least one of an iterative technique and an algebraic technique.