Abstract-Service is a network addressable software component to perform a specific task. A service discovery mechanism can be used to find services that can be executed to satisfy a service request. A service composition generates a composition plan and a composite service to satisfy a service request. Static composition process consumes considerable amount of time and effort. It is also vulnerable to changes in input/output of services. A dynamic composition algorithm can automatically select services involved in composite plan and generate a composite service on-the-fly. Composition time taken by the algorithm to generate a composite service is the main issue with dynamic composition algorithms. Dynamic composition algorithms presented in previous work mainly follow either forward chaining approach (FCA) or backward chaining approach (BCA) to generate a composite service. Their performance suffers for certain cases to generate a composite service where the number of services explored increases exponentially as number of iterations increases. This work proposes a dynamic composition algorithm that gives consistent performance across all the cases. Proposed algorithm approaches from two directions alternatively, one follows FCA and another follows BCA. Proposed algorithm explores less number of services and takes less composition time compared to algorithms FCA or BCA.