Skip to Main Content
In previous column, we discussed how to build distributed systems from quality-of-service (QoS)-aware software components. We also described a design by which individual components can engage in QoS negotiation and perform admission control so that new incoming requests don't violate committed QoS requirements. But what happens in a distributed application made up of several QoS-aware components and if the application has a global service-level agreement (SLA) for maximum end-to-end execution time. The problem we discuss in this paper is how to determine which SLAs should be negotiated at the component level so that the global SLA is satisfied at the minimum possible cost.