Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
Achten, P.: Clean for Haskell98 programmers - A quick reference guide (July 13-21, 2007), http://www.st.cs.ru.nl/papers/2007/achp2007-CleanHaske11Quick-Guide.pdf
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
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)
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)
Brabrand, C., Møller, A., Schwartzbach, M.: The <bigwig> project. In: ACM Transactions on Internet Technology, TOIT 2002 (2002)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37, 67–111 (2000)
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
Meijer, E.: Server side web scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)
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)
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)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Plasmeijer, R., Achten, P., Koopman, P., Lijnse, B., van Noort, T. (2009). An iTask Case Study: A Conference Management System. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds) Advanced Functional Programming. AFP 2008. Lecture Notes in Computer Science, vol 5832. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04652-0_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-04652-0_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04651-3
Online ISBN: 978-3-642-04652-0
eBook Packages: Computer ScienceComputer Science (R0)