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

  • Rinus Plasmeijer
  • Peter Achten
  • Pieter Koopman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5161)


In these lecture notes we present the iTasks 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 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 and subsequently 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.


Client Side Core System Functional Language Task Number Push Button 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alimarine, A.: Generic Functional Programming - Conceptual Design, Implementation and Applications. PhD thesis, University of Nijmegen, The Netherlands (2005) ISBN 3-540-67658-9Google Scholar
  2. 2.
    Atkins, D., Ball, T., Benedikt, M., Bruns, G., Cox, K., Mataga, P., Rehor, K.: Experience with a Domain Specific Language for Form-based Services. In: Usenix Conference on Domain Specific Languages (October 1997)Google Scholar
  3. 3.
    Brabrand, C., Møller, A., Ricky, M., Schwartzbach, M.: Powerforms: Declarative client-side form field validation. World Wide Web Journal 3(4), 205–314 (2000)zbMATHCrossRefGoogle Scholar
  4. 4.
    Brabrand, C., Møller, A., Schwartzbach, M.: The <bigwig> Project. ACM Transactions on Internet Technology (TOIT) (2002)Google Scholar
  5. 5.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: Web programming without tiers. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Ducasse, S., Lienhard, A., Renggli, L.: Seaside - A Multiple Control Flow Web Application Framework. In: Ducasse, S. (ed.), Proceedings ESUG 2004 International Conference – Research Track, volume Technical Report IAM-04-008, pp. 231–254. Institut für Informatik und Angewandte Mathematik, University of Bern, Switzerland, November 7 (2004)Google Scholar
  7. 7.
    Elliot, C.: Tangible Functional Programming. In: Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP 2007), Freiburg, Germany, October 1–3, pp. 59–70. ACM, New York (2007)CrossRefGoogle Scholar
  8. 8.
    Elsman, M., Hallenberg, N.: Web programming with SMLserver. In: Dahl, V., Wadler, P. (eds.) PADL 2003. Springer, Heidelberg (2003)Google Scholar
  9. 9.
    Elsman, M., Larsen, K.F.: Typing XHTML Web applications in ML. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 224–238. Springer, Heidelberg (2004)Google Scholar
  10. 10.
    Graunke, P., Krishnamurthi, S., Findler, R.B., Felleisen, M.: Automatically Restructuring Programs for the Web. In: Feather, M., Goedicke, M. (eds.) Proceedings 16th IEEE International Conference on Automated Software Engineering (ASE 2001). IEEE CS Press, Los Alamitos (2001)Google Scholar
  11. 11.
    Hanna, K.: A Document-Centered Environment for Haskell. In: Butterfield, A., Grelck, C., Huch, F. (eds.) IFL 2005. LNCS, vol. 4015. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Hanus, M.: High-Level Server Side Web Scripting in Curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  13. 13.
    Hinze, R.: A new approach to generic functional programming. In: The 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Massachusetts, Boston, pp. 119–132 (January 2000)Google Scholar
  14. 14.
    Hughes, J.: Generalising Monads to Arrows. Science of Computer Programming 37, 67–111 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Jansen, J., Koopman, P., Plasmeijer, R.: Efficient Interpretation by Transforming Data Types and Patterns to Functions. In: Nilsson, H. (ed.) Proceedings Seventh Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, April 19-21, 2006, pp. 157–172. The University of Nottingham (2006)Google Scholar
  16. 16.
    Meijer, E.: Server Side Web Scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)CrossRefMathSciNetGoogle Scholar
  17. 17.
    Plasmeijer, R., Achten, P.: A Conference Management System based on the iData Toolkit. In: Horváth, Z., Zsók, V., Butterfield, A. (eds.) IFL 2006. LNCS, vol. 4449, pp. 108–125. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  18. 18.
    Plasmeijer, R., Achten, P.: iData For The World Wide Web - Programming Interconnected Web Forms. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  19. 19.
    Plasmeijer, R., Achten, P.: The Implementation of iData - A Case Study in Generic Programming. In: Butterfield, A., Grelck, C., Huch, F. (eds.) IFL 2005. LNCS, vol. 4015, pp. 106–123. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  20. 20.
    Pointon, R., Trinder, P., Loidl, H.: The Design and Implementation of Glasgow distributed Haskell. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  21. 21.
    Queinnec, C.: The influence of browsers on evaluators or, continuations to program web servers. In: Proceedings Fifth International Conference on Functional Programming (ICFP 2000) (September 2000)Google Scholar
  22. 22.
    Serrano, M., Gallesio, E., Loitsch, F.: 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), Portland, Oregon, USA, pp. 975–985, October 22-26 (2006)Google Scholar
  23. 23.
    Thiemann, P.: WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Form. In: Krishnamurthi, S., Ramakrishnan, C. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  24. 24.
    van der Aalst, W., ter Hofstede, A., Kiepuszewski, B., Barros, A.: Workflow patterns. QUT Technical report, FIT-TR-2002-02, Queensland University of Technology, Brisbane (2002)Google Scholar
  25. 25.
    Zsók, V., Hernyák, Z., Horváth, Z.: Distributed Pattern Design in D-Clean. In: Central-European Functional Programming School, CEFP 2005, oldal, vol. 33 (2005),

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Rinus Plasmeijer
    • 1
  • Peter Achten
    • 1
  • Pieter Koopman
    • 1
  1. 1.Radboud University NijmegenNetherlands

Personalised recommendations