One of the challenges in SOA is to identify the services that can be used to build a service process. An SOA infrastructure must provide an efficient and effective way to select compatible web service(s) and compose them into a functional service process that satisfies a user's needs. Moreover, the web services(s) selected may be integrated with structures such as branches and merges to fulfill a task. This paper describes our system architecture and strategies on web services composition based on semantic matching. Our strategies include backward service composition using a breadth-first search tree and heuristic prioritization.