A Model-driven framework for managing the QoS of collaborative P2P service-based applications