3.1 Dependency hierarchy
The dispersion of a software solution is based on transitional virtual components, as mentioned in section Physical components category. These transitional virtual components, when implemented in a solution, create a graph of components where the parent component depends on one or more children components. Software solutions with dependency cycles constitute models that are not addressed as part of this study, as explained in section Public Interface of a solution. In such a component graph, all children components must be available for the parent component to be functional. A parent component with all the information required to provide services to the rest of the software solution does not need to add child components as dependencies.

As shown in figure above, only the incapacity of a single component to serve all of the services provokes the addition of transitional virtual components and of a communication link towards child components in order to complete the information of the parent component. These child components also have their own characteristics and their own dependencies; a parent component depends transitively on the whole hierarchy of logic and virtual child components.
Contents · 16/26
- Design for High Availability
- Introduction
- 1 Hardware Abstraction
- 1.1 Isolating the levels of abstraction
- 1.2 Physical components category
- 1.3 Virtual Layer
- 1.4 Abstraction of virtual components
- 1.5 Characteristics of virtual components
- 2 High Availability Mecanisms
- 2.1 Framework for analysis of the mechanisms and assumptions
- 2.2 Public interface of a solution
- 2.3 Risk Control
- 2.4 One approach: duplication
- 2.5 Limits of replication of immutable virtual components
- 3 Evaluation of downtime risks
- 3.1 Dependency hierarchy
- 3.2 Bottlenecks
- 3.3 Method for calculating availability
- 3.4 Methodology of analysis
- 4 Evaluation in real cases
- 4.1 Basic software solution
- 4.2 Analysis without assumptions
- 4.3 Evaluation with addition of availability assumptions
- 4.4 Assumption in a cloud scenario
- Conclusion
- References