Modeling and Reasoning about Service-Oriented Applications via Goals and Commitments