Variability management is an efficient solution to support service's reuse, but most of the existing variability models pay attention to service's functions and care little about the service's behavior that how these functions are invoked. In this paper, we provide a variability model based on Petri net that both the variable functions and the invocation constraint of these functions are handled. We use general service to refer the service developed with variability for reuse; by variability binding service instance will be generated for use. Variable functions are modeled by transitions of Petri net; the service behavior is shown by the firing of transitions.