Declarative Ajax and client side evaluation of workflows using iTasks

  • Authors:
  • Rinus Plasmeijer;Jan Martin Jansen;Pieter Koopman;Peter Achten

  • Affiliations:
  • Radboud University Nijmegen, The Netherlands;Netherlands Defence Academy, Den Helder, The Netherlands;Radboud University Nijmegen, The Netherlands;Radboud University Nijmegen, The Netherlands

  • Venue:
  • Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Workflow systems coordinate tasks of humans and computers. The iTask system is a recently developed toolkit with which workflows can be defined declaratively on a very high level of abstraction. It offers functionality which cannot be found in commercial workflow systems: workflows are constructed dynamically depending on the outcome of earlier work, workflows are strongly typed, and they can be of higher order. From the specification, a web-based multi-user workflow system is generated. Up until now we could only generate thin clients. All information produced by a worker triggers a round trip to the server. For real world workflows this is unsatisfactory. Modern Ajax web technology to update part of a web page is required, as well as the ability to execute tasks on clients. The architecture of any system that supports such features is complex: it manages distributed computing on clients and server which generally involves the collaboration of applications written in different programming languages. The contribution of this paper is that we integrate partial updates of web pages and client side task evaluation within the iTask system, while retaining its approach of a single language and declarative nature. The workflow designer uses light-weight annotations to control the run-time behavior of work. The iTask implementation takes care of all the hard work under the hood. Arbitrary tasks (functional programs) can be evaluated at web clients. When such a task cannot be evaluated on the client for some reason, the system switches to server side evaluation. All communication and synchronization issues are handled by the extended iTask system