One of the challenges in SOA is to 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 customizable and adaptive composition strategy, query optimization, and heuristic prioritization.