Web service contracts: specification, selection and composition