model. Albeit this did not include systematic model-
ing of dependencies in terms of hierarchies, it can be
expected for upcoming versions of SID.
In sum, it can be concluded that dependency mod-
eling cannot be regarded as a solved research issue
with respect to the requirements of service manage-
ment.
4 DEPENDENCY
SPECIFICATION
METHODOLOGY
In this section a generic model for the dependency
specification is developed striving to fulfill the re-
quirements delineated in Section 2. We also show,
how the model helps in addressing the service fault
diagnosis.
Dependency Modeling Dependencies which are
encountered in practice usually form a hierarchy
which results from the composition of resources and
subservices into more complex higher-level services.
Therefore, the structural design pattern composite is
used as basis for the modeling.
Figure 2 depicts the proposed dependency model.
The object Dependency reflects the component object
of the pattern and declares the interface for objects in
the composition CompositeDependency (the compos-
ite object).
Some attributes characterize the Dependency class:
antecedent has the type ServiceBuildingBlock (ab-
stract superclass of services and resources) and is
the antecedent, dependent represents the dependent of
a dependency also having the type ServiceBuilding-
Block. The strength attribute (string) represents the
importance of the dependency with the values weak,
medium, strong, mandatory which means that is de-
scribes the redundancy relation. The last attribute sta-
tusLifeCycle is an indicator for the state of the de-
pendency along the service lifecycle using the values
planned, active, inactive, withdrawn.
Usually, a service exhibits a set of functionalities.
These functionalities can in turn be divided into sub-
functionalities and can represent the whole service
(global functionality) as well as a single functionality
or a partial functionality of the service. This kind of
modeling allows to find a trade-off between the mod-
eling effort and its benefit in a given scenario.
A set of operations are defined: the add opera-
tion adds a new dependency to the container, whereas
the remove operation removes a dependency from the
container. The operation getChild returns the n-th
child of the dependency, getChildList lists all the di-
rect children. The operations getDependent, getAn-
tecedent, testPresence, and getImpact are designed
for fault management (see below).
The leaves of the composite pattern are formed by
the three kinds of dependencies. Inter-Resource-Dep
represents inter-resource dependencies with the inher-
ited attributes strength, antecedent, dependent, status-
LifeCycle defined as in the component class Depen-
dency. The type of the attributes antecedent and de-
pendent is Resource. The operations will implement
the abstract operations from the class Dependency.
The Service-Resource-Dep class represents the
service-resource dependency and has also the at-
tributes and operations inherited from class Depen-
dency. Besides of the different implementation of
operations, the attribute antecedent has the type Re-
source and the attribute dependent the type Function-
ality.
Inter-service dependencies are formalized as in-
stances of the Inter-Service-Dep class which has the
same attributes and implements the same operations
as class Dependency. The type of the attributes an-
tecedent and dependent is Functionality. This class
contains many hierarchically structured instances re-
sulting from the functionality definition. Dependen-
cies can exist between two services, between a service
and a service functionality (i.e. one service is decom-
posed into its functionalities, while this decomposi-
tion is not made for the other service), or between two
service functionalities.
The composite class in this pattern is the class
CompositeDependency. It defines behavior for depen-
dencies having children, it stores this children (leaves
or composite components) and implements operations
relating on child component (add, remove, getChild,
getChildList) in the Dependency interface.
Methods for Fault Management Application In
addition to the child oriented operations there are op-
erations which facilitate the navigation in a system
and which are useful for fault diagnosis and/or for im-
pact analysis.
The operation getDependent returns all the Ser-
viceBuildingBlock objects which are dependent from
the actual dependency and getAntecedent returns all
the ServiceBuildingBlock objects the actual depen-
dency depends on. Depending on the element in
which it occurs (leaves or composite elements) it has
another return value (functionality or resource). The
operation testPresence returns the status of the depen-
dency for a given point in time representing whether
the dependency was in effect at that moment (as a
boolean).
5 CONCLUSION
We have presented a systematic modeling approach
that allows the specification of complex, dynamic and
SPECIFICATION OF DEPENDENCIES FOR IT SERVICE FAULT MANAGEMENT
259