1. A method of traversing a directed graph for selecting services of a business process for execution, the method comprising the computer implemented steps of: reading a directed graph comprising a plurality of nodes and plurality of edges, wherein each of the plurality of nodes is representative of a business service, and each of the plurality of edges links two related nodes of the plurality of nodes, wherein each of the plurality of edges has a respective weight assigned thereto that defines a service preference; responsive to reading the directed graph, selecting a first subset of the plurality of nodes, wherein the first subset includes a first start node; responsive to selecting the first subset, traversing edges of the plurality of edges that link the start node with other nodes of the first subset by evaluating weights assigned to the edges; selecting another node of the other nodes; responsive to selecting the another node, repeating the traversing step and the selecting another node step from the another node until a predefined number of nodes including a last node have been selected; selecting a second subset of the plurality of nodes, wherein the second subset includes the last node; repeating the traversing step and the selecting another node step for the second subset of the plurality of nodes beginning from the last node; and recording state data of each node encountered during the traversing step.