iTasks: executable specifications of interactive work flow systems for the web

In this paper we introduce the iTask system: a set of combinators to specify work flows in a pure functional language at a very high level of abstraction. Work flow systems are automated systems in which tasks are coordinated that have to be executed by humans and computers. The combinators that we propose support work flow patterns commonly found in commercial work flow systems. Compared with most of these commercial systems, the iTask system offers several 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 iTask system, useful work flows can be defined which cannot be expressed in other systems: work can be interrupted and subsequently directed to other workers for further processing. The implementation is special as well. It is based on the Clean iData toolkit which makes it possible to create fully dynamic, interactive, thin client web applications. Thanks to the generic programming techniques used in the iData toolkit, the programming effort is reduced significantly: state handling, form rendering, user interaction, and storage management is handled automatically. The iTask system allows a task to be regarded as a special kind of persistent redex being reduced by the application user via task completion. The combinators control the order in which these redexes are made available to the application user. The system rewrites the persistent task redexes in a similar way as functions are rewritten in lazy functional languages.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[24]  Rinus Plasmeijer,et al.  A Conference Management System based on iData (abstract) , 2006 .