Web Services are interfaces that describe a collection of operations that are network-accessible through standardized web protocols. When a required operation is not found, several services can be compounded to get a composite service that performs the desired task. To find this composite service a search process in a, generally, huge search space must be performed. The algorithm that composes the services must select the adequate atomic processes and, also, must choose the correct way to combine them using the different available control structures. In this paper a genetic programming algorithm for web services composition is presented. The algorithm has a context-free grammar to generate the valid structures of the composite services and, also, it includes a method to update the attributes of each node. Moreover, the proposal tries to minimize the number of services, and looks for compositions with the minimum execution path. A full experimental validation with four different repositories with up to 1,090 web services has been done, showing a great performance in all the tests as the algorithm finds a valid solution with a short execution path.
Keywords: Web services composition, Genetic programming, Evolutionary algorithms