skip to main content
10.1145/1291151.1291174acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

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

Published:01 October 2007Publication History

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.

References

  1. Artem Alimarine. Generic Functional Programming - Conceptual Design, Implementation and Applications. PhD thesis, University of Nijmegen, The Netherlands, 2005. ISBN 3-540-67658-9.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Claus Brabrand, Anders Møller, and Michael I. Schwartzbach. The<bigwig> Project. In ACM Transactions on Internet Technology (TOIT), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. John Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. Erik Meijer. Server Side Web Scripting in Haskell. Journal of Functional Programming, 10(1):1--18, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar

Index Terms

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

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
                October 2007
                346 pages
                ISBN:9781595938152
                DOI:10.1145/1291151
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 42, Issue 9
                  Proceedings of the ICFP '07 conference
                  September 2007
                  331 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/1291220
                  Issue’s Table of Contents

                Copyright © 2007 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 October 2007

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Author Tags

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate333of1,064submissions,31%

                Upcoming Conference

                ICFP '23

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!