Workflow systems are automated systems in which tasks are coordinated by assigning them to either humans or computers. Contemporary workflow systems are static and not very flexible. In these lecture notes, we discuss the iTask system: a combinator library for specifying workflows in the functional language Clean. This system offers several advantages when compared to commercial systems: tasks are statically typed, tasks can be higher order, the combinators are fully compositional, and dynamic and recursive workflow can be specified. Moreover, the specification is an executable specification offering a web-based multiuser workflow system. In this paper we describe the iTask system using a conference management system as the running example to illustrate the expressive power of functional and generic programming in a real-world domain.
Rinus Plasmeijer, Peter Achten, Pieter W. M. Koopm