Skip to Main Content
Real-time middleware services must guarantee predictable performance under specified load and failure conditions, and ensure graceful degradation when these conditions are violated. Guaranteed predictable performance typically entails reservation of resources and use of admission control. Graceful degradation, on the other hand, requires dynamic reallocation of resources to maximize the application-perceived system utility while coping with unanticipated overload and failures. We propose a model for quality-of-service (QoS) negotiation in building real-time services to meet both of the above requirements. QoS negotiation is shown to 1) outperform "binary" admission control schemes (either guaranteeing the required QoS or rejecting the service request), 2) achieve higher application-perceived system utility, and 3) deal with violations of the load and failure hypotheses. We incorporated the proposed QoS-negotiation model into an example real-time middleware service, called RTPOOL, which manages a distributed pool of shared computing resources (processors) to guarantee timeliness QoS for real-time applications. In order to guarantee timeliness QoS, the resource pool is encapsulated with its own schedulability analysis, admission control, and load-sharing support. This support differs from others in that it adheres to the proposed QoS-negotiation model. The efficacy and power of QoS negotiation are demonstrated for an automated flight control system implemented on a network of PCs running RTPOOL. This system is used to fly an F-16 fighter aircraft modeled using the Aerial Combat (ACM) F-16 Flight Simulator. Experimental results indicate that QoS negotiation, while maintaining real-time guarantees, enables graceful QoS degradation under conditions in which traditional schedulability analysis and admission control schemes fail.