A strategy-proof auction mechanism for service composition based on user preferences