Internet of Things (IoT) is being developed rapidly and applied widely in our society. A large number of network nodes with different attributes join in the network and makes the structure of the network rather complex. Traditional research about network routing concentrates on a few network attributes as routing metrics like energy and bandwidth. However, the network performance may be decreased when concentrating on one or few metrics. In this paper, a service oriented routing is proposed based on Polychromatic Sets theory. A scheme of crosslayer design and virtual nodes is applied to improve the network performance. Therefore, the network performance could be balanced on multiple metrics based on the different requirements of application. The simulation results on NS-3 prove that the scheme is effectively able to improve the performance of network when considering multiple network metrics.