This paper surveys recent research on the application of Petri net models to the analysis and synthesis of controllers for discrete event systems. Petri nets have been used extensively in applications such as automated manufacturing, and there exists a large body of tools for qualitative and quantitative analysis of Petri nets. The goal of Petri net research in discrete event systems is to exploit the structural properties of Petri net models in computationally efficient algorithms for computing controls. We present an overview of the various models and problems formulated in the literature focusing on two particular models, the controlled Petri nets and the labeled nets. We describe two basic approaches for controller synthesis, based on state feedback and event feedback. We also discuss two efficient techniques for the on-line computation of the control law, namely the linear integer programming approach which takes advantage of the linear structure of the Petri net state transition equation, and path-based algorithms which take advantage of the graphical structure of Petri net models. Extensions to timed models are briefly described. The paper concludes with a discussion of directions for future research.