Developing a reusable workflow engine Diogo M.R. Ferreira a, * , J.J. Pinto Ferreira b a INESC Porto, Campus da FEUP, Rua Dr. Roberto Frias, 378, 4200-465 Porto, Portugal b Faculty of Engineering U.P., Rua Dr. Roberto Frias, 4200-465 Porto, Portugal Received 14 February 2002; received in revised form 30 July 2003; accepted 24 September 2003 Available online 27 November 2003 Abstract Every time a workflow solution is conceived there is a large amount of functionality that is eventually reinvented and redeveloped from scratch. Workflow management systems from academia to the commercial arena exhibit a myriad of approaches having as much in common as in contrast with each other. Efforts in standardizing a workflow reference model and the gradual endorsement of those standards have also not precluded developers from designing workflow systems tailored to specific user needs. This article is written in the belief that an appropriate set of common workflow functionality can be abstracted and reused in forthcoming systems or embedded in applications intended to become workflow-enabled. Specific requirements and a prototype implementation of such functionality, named Workflow Kernel, are discussed. Ó 2003 Elsevier B.V. All rights reserved. Keywords: Workflow management systems; Workflow engines; Component reuse 1. Introduction The workflow reference model proposed by the workflow management coalition [17] defines a framework for relating workflow management systems and their capabilities. Within this frame- work, supporting tools, execution services, client applications and external applications interact according to a set of interfaces. At the heart of this framework is the workflow enactment service, an execution service comprising one or more work- flow engines. According to the reference model, a workflow engine is ‘‘a software service that pro- vides the run time execution environment for a process instance’’ [17]. In this sense every workflow product, prototype or approach entails a workflow engine in one way or another. Interpreting a process definition, cre- ating process instances from those definitions, and managing the execution of those instances are es- sential chores of every workflow management system. These capabilities represent functionality that is coded and embedded in every workflow solution. Notwithstanding, workflow systems are usually portrayed by supporting tools such as process editors or audit trail viewers. The impor- tant workflow functionality, however, is the one * Corresponding author. Tel.: +351-22-209-4329; fax: +351- 22-209-4050. E-mail addresses: dmf@inescporto.pt (D.M.R. Ferreira), jjpf@fe.up.pt (J.J. Pinto Ferreira). 1383-7621/$ - see front matter Ó 2003 Elsevier B.V. All rights reserved. doi:10.1016/j.sysarc.2003.09.004 Journal of Systems Architecture 50 (2004) 309–324 www.elsevier.com/locate/sysarc