iTasks 2: iTasks for End-users
Workflow management systems (WFMSs) are systems that generate, coordinate and monitor tasks performed by human workers in collaboration with automated (information) systems. The iTask system (iTask) is a WFMS that uses a combinator language embedded in the pure and lazy functional language Clean for the specification of highly dynamic workflows. iTask workflow specifications are declarative in the sense that they only specify (business) processes and the types of data involved. They abstract from user interface and storage issues, which are handled generically by the workflow engine.
Earlier work has focused on the development of the iTask combinator language. The workflow language was implemented as an engine that evaluated task combinator expressions and generated interactive web pages. Although suitable for its original purpose, this architecture has proven to be less so for generating practically usable workflow support systems.
In this paper we present a new implementation of the iTask system that implements the combinator library using a service based architecture that exposes the workflow and a user friendly Ajax client. Because user interface issues are outside the scope of workflow specifications, and cannot be specified explicitly, it is crucial that the generic operationalization of the declarative interaction primitives is of adequate quality. We explain the novel generic libraries we have developed for this purpose.
KeywordsUser Interface Data Path Basic Task Task List Task Tree
Unable to display preview. Download preview PDF.
- 2.Django framework, http://www.djangoproject.com/
- 3.ExtJS framework, http://www.extjs.com/
- 5.Jacobson, A.: Haskell application server (2006), http://happs.org/
- 6.Koopman, P., Plasmeijer, R., Achten, P.: An executable and testable semantics for iTasks. In: Scholz, S.-B. (ed.) Proceedings of the 20th International Symposium on the Implementation and Application of Functional Languages, IFL 2008. Technical Report, vol. 474, pp. 53–64. Univeristy of Hertfordshire, UK (2008)Google Scholar
- 7.Meyerovich, L., Guha, A., Baskin, J., Cooper, G., Greenberg, M., Bromfield, A., Krishnamurthi, S.: Flapjax: A programming language for ajax applications. Tech report, CS-09-04, Brown University, Providence, RI (April 2009)Google Scholar
- 9.Plasmeijer, R., Achten, P., Koopman, P.: iTasks: executable specifications of interactive work flow systems for the web. In: Proceedings of the 12th International Conference on Functional Programming, ICFP 2007, Freiburg, Germany, October 1-3, pp. 141–152. ACM Press, New York (2007)CrossRefGoogle Scholar
- 10.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.) CEFP 2007. LNCS, vol. 5161, pp. 1–40. Springer, Heidelberg (2008)Google Scholar
- 12.Plasmeijer, R., Jansen, J.M., Koopman, P., Achten, P.: Declarative Ajax and client side evaluation of workflows using iTasks. In: Proceedings of the 10th International Conference on Principles and Practice of Declarative Programming, PPDP 2008, Valencia, Spain, July 15-17, pp. 56–66 (2008)Google Scholar
- 13.Ruby on Rails, http://rubyonrails.org/