QoS awareness and adaptation in service composition