Service-oriented system quality is not just a function of the quality of a provided service, but the interdependencies between services, the resource constraints of the runtime environment and network outages. This makes it difficult to anticipate how the consequences of these factors might influence system behaviour, which in turn makes it difficult to specify the right system environment in advance. Current quality management schemes for service-oriented systems are inadequate for assuring system quality as they rely largely on static service properties to predict system quality. Secondly, they offer the consumer only limited control over the quality of service. This paper describes a self-managing, consumer-centred approach based on a brokerage architecture that allows different monitoring, negotiation, forecasting and provider reputation schemes to be integrated into a runtime quality assurance framework for service-oriented systems. We illustrate our solution with a small service-oriented application.