An iTask Case Study: A Conference Management System

  • Rinus Plasmeijer
  • Peter Achten
  • Pieter Koopman
  • Bas Lijnse
  • Thomas van Noort
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5832)


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 multi-user 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.


Expressive Power Client Side Functional Language Program Chair Functional Programming Language 
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.
    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, Australia (2002)Google Scholar
  2. 2.
    Achten, P.: Clean for Haskell98 programmers - A quick reference guide (July 13-21, 2007),
  3. 3.
    Alimarine, A.: Generic functional programming - Conceptual design, implementation and applications. PhD thesis, Institute for Computing and Information Sciences. Radboud University Nijmegen, The Netherlands (2005); ISBN 3-540-67658-9 Google Scholar
  4. 4.
    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
  5. 5.
    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)CrossRefzbMATHGoogle Scholar
  6. 6.
    Brabrand, C., Møller, A., Schwartzbach, M.: The <bigwig> project. In: ACM Transactions on Internet Technology, TOIT 2002 (2002)Google Scholar
  7. 7.
    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, pp. 266–296. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Ducasse, S., Lienhard, A., Renggli, L.: Seaside - A multiple control flow web application framework. In: Ducasse, S. (ed.) Proceedings of the 12th International Smalltalk Joint Conference, ESUG 2004, Technical Report IAM-04-008, Koethen, Germany, November 7, pp. 231–254. Institut für Informatik und Angewandte Mathematik, University of Bern, Switzerland (2004)Google Scholar
  9. 9.
    Elliot, C.: Tangible functional programming. In: Proceedings of the 12th International Conference on Functional Programming, ICFP 2007, Freiburg, Germany, October 1-3, pp. 59–70. ACM Press, New York (2007)CrossRefGoogle Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    Elsman, M., Hallenberg, N.: Web programming with SMLserver. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol. 2562, pp. 74–91. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Graunke, P., Krishnamurthi, S., Findler, R., Felleisen, M.: Automatically restructuring programs for the web. In: Feather, M., Goedicke, M. (eds.) Proceedings of the 16th International Conference on Automated Software Engineering, ASE 2001. IEEE CS Press, Los Alamitos (2001)Google Scholar
  13. 13.
    Hanna, K.: A document-centered environment for Haskell. In: Butterfield, A., Grelck, C., Huch, F. (eds.) IFL 2005. LNCS, vol. 4015, pp. 196–211. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  14. 14.
    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
  15. 15.
    Hinze, R.: A new approach to generic functional programming. In: Proceedings of the 27th International Symposium on Principles of Programming Languages, POPL 2000, Boston, Massachusetts, USA, January 2000, pp. 119–132 (2000)Google Scholar
  16. 16.
    Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37, 67–111 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Jansen, J., Koopman, P., Plasmeijer, R.: Efficient interpretation by transforming data types and patterns to functions. In: Nilsson, H. (ed.) Proceedings of the 7th Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, April 19-21, pp. 157–172 (2006), ISBN 978-1-84150-188-8 Google Scholar
  18. 18.
    Meijer, E.: Server side web scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)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.
    Plasmeijer, R., Achten, P., Koopman, P.: An introduction to iTasks: defining interactive work flows for the web. In: Horváth, Z., Plasmeijer, R., Soós, A., Zsók, V. (eds.) Central European Functional Programming School. LNCS, vol. 5161, pp. 1–40. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  21. 21.
    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, pp. 53–70. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Queinnec, C.: The influence of browsers on evaluators or, continuations to program web servers. In: Proceedings of the 5th International Conference on Functional Programming, ICFP 2000 (September 2000)Google Scholar
  23. 23.
    Serrano, M., Gallesio, E., Loitsch, F.: Hop, a language for programming the web 2.0. In: Proceedings of the 11th International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, Portland, Oregon, USA, October 22-26, pp. 975–985 (2006)Google Scholar
  24. 24.
    Thiemann, P.: WASH/CGI: server-side web scripting with sessions and typed, compositional forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  25. 25.
    Zsók, V., Hernyák, Z., Horváth, Z.: Distributed pattern design in D-Clean. In: Proceedings of the 1st Central European Functional Programming School, CEFP 2005, Budapest, Hungary, vol. 33 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Rinus Plasmeijer
    • 1
  • Peter Achten
    • 1
  • Pieter Koopman
    • 1
  • Bas Lijnse
    • 1
  • Thomas van Noort
    • 1
  1. 1.Radboud University NijmegenNetherlands

Personalised recommendations