Uncertainty-Aware Adaptive Service Composition in Cloud Computing