Under Service Oriented Architecture (SOA), service composition is used to integrate service components together to meet new business needs. In this paper, we propose a novel data-driven method to provide service composition guidance to implement given requirements. Based on the relations between business domain data and service domain data, we generate additional data mediations according to three composition rules. With these data relations and composition rules, we propose a Petri-net based approach to the composition of services. In our approach, all the in/output messages of the service operations are modeled as colored places, and service operations themselves are modeled as transitions with input/output places. We first generate a Service Net (SN) that contains all operations in a given service portfolio, and then use Petri-net decomposition techniques to derive a subnet of SN, and this subnet meets the need of the business requirement. Our work can be seen as an effort to bridge the gap between business and service domains. © 2010 IEEE.