One of the challenges in SOA is to provide an efficient and effective way to identify compatible Web service(s) and compose them into a service process that satisfies a userpsilas functional and non-functional needs. Quality of service (QoS), like response time or throughput, might need to be optimized for the selected service process. This paper describes a system architecture and strategies Web services composition with QoS optimization. The strategies include a uniform cost backward search for optimizing response time and an improved greedy search for optimizing throughput.