Abstract:Service is becoming the main carrier of the software development because of its flexible application mechanism. Since the emergence of a large number of services with the same or similar functionalities but different QoS (quality of service), how to quickly and accurately locate the right services user need remains a very challenging task. In this paper, a service selection approach based on the folding of service functionality is proposed. Abstract services with associated functions are folded into a coarse-grained service-level abstract service, based on which the service discovery and combinatorial optimization are performed. The efficiency of the algorithm is improved dramatically because of the reduced number of both abstract services and candidate services. Experimental results show that the presented approach is more efficient than other traditional heuristic algorithms, and exhibits better scalability on the scale of abstract services and candidate services.