HP Labs Technical Reports
Click here for full text:
Quality-of-Service Specification in Distributed Object Systems
Frolund, Svend; Koistinen, Jari
Keyword(s): quality-of-service specification; distributed object systems; software design; quality-of-service-enabled systems
Abstract: Traditional object-oriented design methods deal with the functional aspects of systems, but they do not address quality of service (QoS) aspects, such as reliability, availability, performance, security, and timing. However, deciding which QoS properties should be provided by individual system components is an important part of the design process. Different decisions are likely to result in different component implementations and system structures. Thus, decisions about component-level QoS should commonly be made at design time, before the implementation is begun. Since these decisions are an important part of the design process, they should be captured as part of the design. We propose a general Quality-of-Service specification language, which we call QML. In this paper we show how QML can be used to capture QoS properties as part of designs. In addition, we extend UML, the de-facto standard object-oriented modeling language, to support the concepts of QML. QML is designed to integrate with object-oriented features, such as interfaces, classes, and inheritance. In particular, it allows specification of QoS properties through refinement of existing QoS specifications. Although we exemplify the use of QML to specify QoS properties within the categories of reliability and performance, QML can be used for specification within any QoS category--QoS categories are user-defined types in QML. Sometimes, QoS characteristics and requirements change dynamically due to changing user preferences, or changes in the environment. For such situations static specification is insufficient. To allow for dynamic systems that change and evolve over time, we provide a QoS specification run-time representation. This representation enables systems to create, manipulate, and exchange QoS information, and thereby negotiate and adapt to changing QoS requirements and conditions.
Back to Index