Web services are rapidly emerging as a popular standard for sharing data and functionality among heterogeneous systems. We propose a general purpose Web Service Management System (WSMSME) that enables executing composite services through multiple engines. This paper tackles a first basic WSMSME problem: execution optimization for composite services through multiple engines. Our main result comprises two dynamic programming algorithms. One helps minimizes the number of engines required to complete a composite service when computational capability of each engine is relatively changeless; the other optimally minimizes the heaviest load of engines by segmenting a pipelined execution plan into sub-sequences before they are dispatched and executed; Both of the two can obtain optimal solutions in polynomial time. Experiments with an initial prototype indicate that our algorithms can lead to significant performance improvement over more straightforward techniques.