Quality-of-service (QoS) in Web services encompasses various non-functional issues such as performance, dependability and security, etc. As more and more Web services become available. QoS capability is becoming a decisive factor to distinguishing services. This study proposes an efficient service selection scheme to help service requesters select services by considering two different contexts: single QoS-based service discovery and QoS-based optimization of service composition. Based on QoS measurement metrics, this study proposes multiple criteria decision making and integer programming approaches to select the optimal service. Experimental results show that the scheme is not only efficient, but also works well for complicated scenarios. (C) 2009 Elsevier Inc. All rights reserved.