Design and run-time quality of service management techniques for publish/subscribe distributed real-time and embedded systems

The proliferation of publish/subscribe (pub/sub) middleware for distributed, real-time, and embedded (DRE) systems has increased dramatically in recent years due to the separation of concerns afforded by decoupling senders and receivers. Pub/sub middleware platforms often provide many configurable policies that affect end-to-end quality of service (QoS). These QoS policies are relevant for areas of concern such as fault tolerance, timeliness requirements, data reliability, and security. Although the flexibility and functionality of pub/sub middleware platforms has increased, configuring their QoS policies in semantically compatible ways has become more complex. Developing a QoS configuration can be complicated not only by the number and type of parameters for a single policy, the number of policies available, and the policy interactions but also by the accidental complexity inherent in accurately transforming a QoS configuration design into appropriate implementation artifacts. Moreover, this same complexity is present whether an initial QoS configuration is being developed or an existing QoS configuration is being updated or modified. Even when a system’s QoS configuration is correctly designed and transformed into implementation artifacts, implementation mechanisms for achieving specified QoS in one particular operating environment might not achieve specified QoS for a different operating environment. Moreover, implementation mechanisms to support diverse QoS requirements can adversely affect each other, e.g., mechanisms for reliability and mechanisms for low latency, which can increase the complexity of achieving specified QoS for a given operating environment. Furthermore, perturbations in the environment during run-time, e.g., increase in network latency or packet loss, can cause specified QoS not to be met. The initial environment in which the system was deployed and for which the specified QoS was maintained can change causing discontinuity in QoS. This thesis resolves the challenges of developing QoS configurations and supporting run-time QoS in the following ways. First, it presents the Distributed QoS Modeling Language (DQML)—a domain specific modeling language for pub/sub DRE systems—that automates development, analysis, and synthesis of semantically compatible QoS policy configurations for pub/sub middleware. DQML eases the development of new QoS configurations as well as modifications to existing QoS configurations. Second, it presents FLEXible Middleware And Transports (FLEXMAT), which integrates and enhances standards-based pub/sub middleware with a network transport framework, along with composite QoS metrics to support quantitative performance analysis in determining the most appropriate QoS mechanisms for a given environment. FLEXMAT provides developers with an evaluation framework to determine apppropriate middleware mechanisms in light of specified QoS. FLEXMAT also provides flexibility in the creation, selection, and use of transport protocols to support specified QoS. Finally, this thesis proposes ADAptive Middleware And Network Transports (ADAMANT) to enable autonomic adaptation of middleware mechanisms to maintain specified QoS in dynamic environments. ADAMANT proposes to use machine learning techniques trained on quantitative performance analysis to determine appropriate settings so that QoS is supported as changes in the environment occur. The hypothesis is that ADAMANT will be able to consistently improve QoS provided for a given QoS configuration over manual methods for dynamic environments. Furthermore, ADAMANT will be able to provide the timely adapation crucial for DRE systems.