Service oriented architecture (SOA) lends itself to model the application components to coarse-grained services in such a way that the composition of different services could be feasible. Service composition fulfills numerous service requirements by constructing composite applications with various services. As it is the case in many real-world applications, different users have diverse QoS demands issuing for composite applications. In this paper, we present a service composition framework for a typical service overlay network (SON) considering both multiple QoS constraints and load balancing factors. Moreover, a service selection algorithm based on niching technique and particle swarm optimization (PSO) is proposed for the service composition problem. It supports optimization problems with multiple constraints and objective functions, whether linear or nonlinear. Simulation results show that the proposed algorithm results in an acceptable level of efficiency regarding the service composition objective under different circumstances.