ABSTRACT
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.
- Artem Alimarine. Generic Functional Programming - Conceptual Design, Implementation and Applications. PhD thesis, University of Nijmegen, The Netherlands, 2005. ISBN 3-540-67658-9.Google Scholar
- David Atkins, Thomas Ball, Michael Benedikt, Glenn Bruns, Kenneth Cox, Peter Mataga, and Kenneth Rehor. Experience with a Domain Specific Language for Form-based Services. In Usenix Conference on Domain Specific Languages, October 1997. Google Scholar
Digital Library
- Claus Brabrand, Anders Møller, Mikkel Ricky, and Michael I. Schwartzbach. Powerforms: Declarative client-side form field validation. World Wide Web Journal, 3(4):205--314, 2000. Google Scholar
Digital Library
- Claus Brabrand, Anders Møller, and Michael I. Schwartzbach. The<bigwig> Project. In ACM Transactions on Internet Technology (TOIT), 2002. Google Scholar
Digital Library
- Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Proceedings of the 5th International Symposium on Formal Methods for Components and Objects (FMCO'06), CWI, Amsterdam, The Netherlands, 7-10 November 2006. Springer-Verlag. to appear. Google Scholar
Digital Library
- Stéphane Ducasse, Adrian Lienhard, and Lukas Renggli. Seaside - A Multiple Control Flow Web Application Framework. In St&3233;phane Ducasse, editor, Proceedings ESUG 2004 International Conference - Research Track, volume Technical Report IAM-04-008, pages 231--254. Institut für Informatik und Angewandte Mathematik, University of Bern, Switzerland, November 7 2004.Google Scholar
- Martin Elsman and Niels Hallenberg. Web programming with SML server. In Fifth International Symposium on Practical Aspects of Declarative Languages (PADL'03). Springer-Verlag, January 2003. Google Scholar
Digital Library
- Martin Elsman and Ken Friis Larsen. Typing XHTML Web applications in ML. In International Symposium on Practical Aspects of Declarative Languages (PADL'04), volume 3057 of LNCS, pages 224--238. Springer-Verlag, June 2004.Google Scholar
Cross Ref
- Paul Graunke, Shriram Krishnamurthi, Robert Bruce Findler, and Matthias Felleisen. Automatically Restructuring Programs for the Web. In M. Feather and M. Goedicke, editors, Proceedings 16th IEEE International Conference on Automated Software Engineering (ASE'01). IEEE CS Press, September 2001. Google Scholar
Digital Library
- M. Hanus. High-Level Server Side Web Scripting in Curry. In Proc. of the Third International Symposium on Practical Aspects of Declarative Languages (PADL'01), pages 76--92. Springer LNCS 1990, 2001. Google Scholar
Digital Library
- Ralf Hinze. A new approach to generic functional programming. In The 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 119--132. Boston, Massachusetts, January 2000. citeseer.nj.nec.com/hinze99new.html. Google Scholar
Digital Library
- John Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000. Google Scholar
Digital Library
- Jan Martin Jansen, Pieter Koopman, and Rinus Plasmeijer. Efficient Interpretation by Transforming Data Types and Patterns to Functions. In H. Nilsson, editor, Proceedings Seventh Symposium on Trends in Functional Programming, TFP 2006, pages 157--172, Nottingham, UK, The University of Nottingham, April 19-21 2006.Google Scholar
- Erik Meijer. Server Side Web Scripting in Haskell. Journal of Functional Programming, 10(1):1--18, 2000. Google Scholar
Digital Library
- Rinus Plasmeijer and Peter Achten. The Implementation of iData - A Case Study in Generic Programming. In A. Butterfield, editor, Proceedings Implementation and Application of Functional Languages - Revised Selected Papers, 17th International Workshop, IFL05, LNCS 4015, Department of Computer Science, Trinity College, University of Dublin, September 19-21 2006a. Google Scholar
Digital Library
- Rinus Plasmeijer and Peter Achten. iData For The World Wide Web -Programming Interconnected Web Forms. In Proceedings Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), volume 3945 of LNCS, Fuji Susono, Japan, Apr 24-26 2006b. Springer-Verlag. Google Scholar
Digital Library
- Rinus Plasmeijer and Peter Achten. A Conference Management System based on iData. In Z. Horvath and V. Zsok, editors, Proceedings of the 18th International Symposium on Implementation and Application of Functional Languages, IFL'06, Budapest, Hungary, Eotvos Lorand University, Faculty of Informatics, Department of Programming Languages and Compilers, Sept 4-6 2006c. To appear in Springer LNCS. Google Scholar
Digital Library
- Christian Queinnec. The influence of browsers on evaluators or, continuations to program web servers. In Proceedings Fifth International Conference on Functional Programming (ICFP'00), September 2000. Google Scholar
Digital Library
- Manuel Serrano, Erick Gallesio, and Florian Loitsch. Hop, a language for programming the web 2.0. In Proceedings ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2006), pages 975--985, Portland, Oregon, USA, October 22-26 2006. Google Scholar
Digital Library
- Peter Thiemann. WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms. In S. Krishnamurthi and C. R. Ramakrishnan, editors, Practical Aspects of Declarative Languages: 4th International Symposium, PADL 2002, volume 2257 of LNCS, pages 192--208, Portland, OR, USA, January 19-20 2002. Springer-Verlag. Google Scholar
Digital Library
- W. M. P. van der Aalst, A. H. M. ter Hofstede, B. Kiepuszewski, and A. P. Barros. Workflow patterns. QUT Technical report, FIT-TR-2002-02, Queensland University of Technology, Brisbane, 2002.Google Scholar
Index Terms
iTasks: executable specifications of interactive work flow systems for the web
Recommendations
iTasks: executable specifications of interactive work flow systems for the web
Proceedings of the ICFP '07 conferenceIn 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 ...
Declarative Ajax and client side evaluation of workflows using iTasks
PPDP '08: Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programmingWorkflow systems coordinate tasks of humans and computers. The iTask system is a recently developed toolkit with which workflows can be defined declaratively on a very high level of abstraction. It offers functionality which cannot be found in ...
An Introduction to iTasks: Defining Interactive Work Flows for the Web
Central European Functional Programming SchoolIn these lecture notes we present the <Emphasis FontCategory="SansSerif">iTasks</Emphasis>system: a set of combinators to specify <em>work flows</em>in a pure functional language at a very high level of abstraction. Work flow systems are automated ...







Comments