QML(ID:4967/qml001)


Language for Quality of Service Specification


References:
  • Frolund, Svend; Koisten, Jari "QML: A Language for Quality of Service Specification" HP Tech Report HPL-98-10 980210 1998 view details External link: Online copy Abstract: To be competitive, future software system must provide not only the correct functionality, but also an adequate level of quality of service (QoS). By QoS, we refer to non-functional properties, such as reliability, performance, timing, and security. To provide an adequate level of QoS, software systems need to include capabilities such as QoS negotiation, monitoring, and adaptation. These capabilities all require the expected and the provided QoS levels to be explicitly specified. QoS can be specified statically at the time of implementation, design, or dynamically at deployment or runtime. To facilitate QoS specification, we present a general Quality of service Modeling Language (QML) for defining multi-category QoS specifications for components in distributed object systems. QML is designed to support QoS in general, encompassing QoS categories such as reliability, performance, security, and timing. QoS specification in QML facilitate the static decomposition of a software system into components with precisely specified QoS boundaries. They also facilitate dynamic QoS functions, such as negotiations, monitoring, and adaptation. QML is designed for a good fit with object-oriented distributed architectures and concepts such as interfaces and inheritance. It also allows specification at a fine-grained level for operations, operation arguments, and attributes. QML enables user- defined QoS categories, and allows specifications within those categories to be associated with component interface definitions. In addition, checks can be made dynamically to determine whether one QML specification satisfies another. This mechanism allows us to dynamically match QoS requirements and offers. Categories and Subject Descriptors: D.2.1 [Software Engineering]: Requirements/Specification - languages; D.3.2 [Programming Languages]: Language Classifications - design languages; F.3.1 [Theory of Computation]: Specifying and Verifying and Reasoning about Programs - specification techniques