An Introduction to iTasks: Defining Interactive Work Flows for the Web

In these lecture notes we present the iTasks system: a set of combinators to specify work flowsin a pure functional language at a very high level of abstraction. Work flow systems are automated systems in which tasksare coordinated that have to be executed by either humans or computers. The combinators that we propose support work flow patterns commonly found in commercial work flow systems. In addition, we introduce novel work flow patterns that capture real world requirements, but that can not be dealt with by current systems. Compared with most of these commercial systems, the iTasks system offers several further advantages: tasks are statically typed, tasks can be higher order, the combinators are fully compositional, dynamic and recursive work flows can be specified, and last but not least, the specification is used to generate an executable web-based multi-user work flow application. With the iTasks system, useful work flows can be defined which cannot be expressed in other systems: a work can be interrupted andsubsequently directed to other workers for further processing. The iTasks system has been constructed in the programming language Clean , making use of its generic programming facilities, and its iData toolkit with which interactive, thin-client, form-based web applications can be created. In all, iTasks are an excellent case of the expressive power of functional and generic programming.

[1]  Erik Meijer Server side web scripting in Haskell , 2000, J. Funct. Program..

[2]  Peter Thiemann,et al.  WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms , 2002, PADL.

[3]  Hans-Wolfgang Loidl,et al.  The Design and Implementation of Glasgow Distributed Haskell , 2000, IFL.

[4]  Rinus Plasmeijer,et al.  The Implementation of iData - A Case Study in Generic Programming , 2006 .

[5]  Michael Hanus,et al.  High-Level Server Side Web Scripting in Curry , 2001, PADL.

[6]  Claus Brabrand,et al.  PowerForms: Declarative client-side form field validation , 2004, World Wide Web.

[7]  Ralf Hinze,et al.  A new approach to generic functional programming , 2000, POPL '00.

[8]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2003, Distributed and Parallel Databases.

[9]  Martin Elsman,et al.  Web Programming with SMLserver , 2003, PADL.

[10]  Marinus J. Plasmeijer,et al.  The Implementation of iData , 2005, IFL.

[11]  Claus Brabrand,et al.  The bigwig Project , 2000 .

[12]  Artem Alimarine,et al.  Generic functional programming conceptual design, implementation and applications , 2005 .

[13]  Christian Queinnec,et al.  The influence of browsers on evaluators or, continuations to program web servers , 2000, ICFP '00.

[14]  Keith Hanna A Document-Centered Environment for Haskell , 2005, IFL.

[15]  Erick Gallesio,et al.  Hop: a language for programming the web 2.0 , 2006, OOPSLA Companion.

[16]  Jan Martin Jansen,et al.  Efficient interpretation by transforming data types and patterns to functions , 2006, Trends in Functional Programming.

[17]  Werner Kluge,et al.  Implementation of Functional Languages , 1996, Lecture Notes in Computer Science.

[18]  Michael Benedikt,et al.  Experience with a Domain Specific Language for Form-based Services , 1997, DSL.

[19]  John Hughes,et al.  Generalising monads to arrows , 2000, Sci. Comput. Program..

[20]  Stéphane Ducasse,et al.  Seaside — a Multiple Control Flow Web Application Framework , 2004 .

[21]  Matthias Felleisen,et al.  Automatically Restructuring Programs for the Web , 2004, Automated Software Engineering.

[22]  Juan-Carlos Cano,et al.  HOP: achieving efficient anonymity in MANETs by combining HIP, OLSR, and pseudonyms , 2006, OOPSLA 2006.

[23]  Ken Friis Larsen,et al.  Typing XHTML Web Applications in ML , 2004, PADL.

[24]  Marinus J. Plasmeijer,et al.  iData for the World Wide Web - Programming Interconnected Web Forms , 2006, FLOPS.

[25]  Frank D. Valencia,et al.  Formal Methods for Components and Objects , 2002, Lecture Notes in Computer Science.

[26]  Marinus J. Plasmeijer,et al.  A Conference Management System Based on the iData Toolkit , 2006, IFL.

[27]  Philip Wadler,et al.  Links: Web Programming Without Tiers , 2006, FMCO.

[28]  Conal Elliott Tangible functional programming , 2007, ICFP '07.