Projectnaam iTask – Dynamisch Interaktief Workflow Management Systeem Product Open source applicatie

Doelgroep Studenten en onderzoekers van Universiteiten, R&D afdelingen bedrijven. UitvoerendenModel Based Software Development Department, Institute for Computing and Information Sciences, Radboud Univesiteit Nijmegen (in concreto Jeroen Henrix en Steffen Michels). Startdatum 01-01-2011 Geplande opleverdatum 01-5-2011 Website http://wiki.clean.cs.ru.nl/ITasks Contactpersoon project prof. Rinus Plasmeijer, tel 024-3652644, email: rinus@cs.ru.nl

Projectbeschrijving iTask – Dynamisch Interaktief Workflow Management Systeem.

Sinds 2007 doen wij onderzoek naar Workflow Management Systemen (WFMS). Dit n.a.v. een verzoek uit het bedrijfsleven waar men de bestaande commerciële systemen te rigide vond. Het onderzoek wordt mede gefinancierd door STW en het Ministerie van Defensie (de Marine). In dit onderzoek maken we gebruik van moderne programmeertaaltechnieken (functionele technieken, generieke technieken, typeringssystemen). Het onderzoek heeft geresulteerd in een werkend prototype: het iTask systeem (zie http://wiki.clean.cs.ru.nl/ITasks).

Het iTask systeem is een domein specifieke taal ingebed in onze bekende functionele taal Clean (zie http://wiki.clean.cs.ru.nl/Clean). In een iTask workflow beschrijft men de taken die mensen en computers samen moeten doen, alsmede de afhankelijkheden tussen die taken. In tegenstelling tot de meeste bestaande systemen, kan uit een beknopte iTask beschrijving een volledig werkend, multi-user, web-based applicatie gegenereerd worden. De gegenereerde applicatie ziet er uit als een mail programma, waar mailtjes nu af te handelen interactieve taken zijn (zie plaatje):

 

Taken zijn getypeerd. Een basis taak is een eenheid werk (bv een formulier in te vullen in een browser, een vraag aan een web-server, een system-call), die uiteindelijk een waarde oplevert van een bepaald type. Men kan taken op verschillende manieren (opeenvolging, parallel) combineren tot nieuwe taken. Het gedrag van een taak kan afhangen van het resultaat van vorige taken. Men kan eenvoudige waardes doorgeven (getallen, records, lijsten), of hele documenten, maar ook door het systeem geconstrueerde nieuwe taken / workflows, die eventueel later ergens uitgevoerd kunnen worden. Het gedrag is dus niet statisch, maar dynamisch (at run-time) bepaald.

Status Het iTask systeem is nu nog in prototype fase, waarmee we case study’s doen. Zo wordt het systeem begin dit jaar getest als centrale schakel in een medisch thuiszorg experiment waarbij patiënten informatie aanleveren via hun mobiele telefoon. Een andere grotere case study waar aan gewerkt wordt is de beschrijving van de Search And Rescue operaties door de Nederlandse Kustwacht. Omdat elk incident op zee anders is, kon men tot nu toe het reddingswerk niet vangen in een workflow. In ons dynamische systeem kan het wel. Een iTask systeem kan dus worden gebruikt om dit soort van complexe operaties in te toekomst te coördineren.

Er moet echter nog veel werk verzet worden voordat het systeem commercieel kan worden ingezet.

Doel van deze projectaanvraag.

Doel van deze project aanvraag is om Henrix en Michels de gelegenheid te geven hun beide prototype implementaties (korte beschrijving hieronder) af te maken en te integreren in het iTask workflow systeem. Het resulterende geïntegreerde systeem komt vrij beschikbaar op het internet.

Deelproject 1 (Henrix)

Het iTask systeem is flexibel, maar heeft als nadeel dat de tekstuele representatie moeilijk leesbaar is voor niet-programmeurs, zoals domein experts en managers die veelal grafische representaties gewend zijn. Henrix heeft daarom een Grafische iTask Notatie (Gin) bedacht, en een prototype editor hiervoor geimplementeerd. Het is een hybride systeem: typische workflow onderdelen worden grafisch weergegeven, Clean expressies zijn tekstueel. Een Gin workflow wordt vertaald naar Clean, eventuele fouten terugvertaald naar het grafische niveau. Is de flow correct bevonden, dan wordt de vertaling omgezet naar een executable workflow die dynamisch kan worden toegevoegd aan het lopende systeem.

 

Gin is een proof-of-concept implementatie met een aantal beperkingen zoals aangegeven in het paper (er kunnen o.a. geen nieuwe types worden gedefinieerd). Doel van dit project is deze beperkingen op te heffen en het systeem te integreren en toe te voegen aan de standaard iTask distributie op het net.

Status Update 28-6-2011

De Grafische iTask Notatie is aangepast om beter aan te sluiten bij conventies in de workflowgemeenschap. Zo is er nu beperkte ondersteuning voor ongestructureerde en cyclische workflows, die worden vertaald naar Clean expressies.

De grafische component is nu geintegreerd in het iTask systeem. Workflowdefinities zijn nu volledig compositioneel: grafisch gedefinieerde workflows kunnen arbitraire tekstuele workflows aanroepen en vice versa. Dit maakt het mogelijk om naar keuze delen van een workflow tekstueel, en andere delen grafisch te modelleren.

De editor draait nu als onderdeel van de iTask webapplicatie en is toegankelijk vanuit vrijwel elke moderne webbrowser, zonder dat daarvoor plugins nodig zijn.

De resultaten zijn gepresenteerd op de Trends in Functional Programming Conferentie (http://dalila.sip.ucm.es/tfp11/).
Deelproject 2 (Michels)

Een workflow specificatie in een iTask systeem is heel compact. Zoveel mogelijk code wordt automatisch gegenereerd. Zo wordt, door gebruik te maken van generische functies, uit de type informatie automatisch een web formulier gegenereerd, en de afhandeling en updating ervan geregeld. Michels heeft deze techniek verder verfijnd zodat nu ook GUI-elementen zoals menu’s, dialogen, windows en de interaktie daartussen eenvoudig kan worden beschreven via types en hun relatie. Het systeem zorgt wederom voor de automatische afhandeling.

Doel van dit deelproject is om ook deze proof-of-concept implementatie af te maken en te integreren in het iTask systeem. We kunnen dan een gebruiker een taak geven die in feite bestaat uit een hele applicatie ter ondersteuning van die taak. Ook faciliteiten zoals b.v. multi-user chat-programma’s en deskboard informatie ter ondersteuning van de besluitvorming laat zich dan eenvoudig realiseren.

Status Update 28-6-2011

In this subproject the extensions to iTask needed to define distributed GUI applications were improved and integrated into the system. The result is a more powerful, more flexible and more usable system.

One goal while redesigning the system was to build the entire system based on few very general and powerful primitives. Actually the new system is based on two basic tasks: a general task for user interaction and a general task for composing those tasks in parallel.

The general task for user interaction can be used to define multiple views on local data (e.g. a chat message a user is entering at the moment) and shared data (e.g. the list of chat messages of all users) at the same time. The way such tasks are terminated (by triggers or user actions) has been extended and simplified. Tasks waiting for certain
events (e.g. some data becoming available) can be expressed in terms of this basic task and need no special treatment any more.

The general parallel composition task is a general way to compose tasks working on the same shared state. Those can be tasks rendered inside the same GUI (for example several windows giving different views on the same data) but also detached tasks assigned to different users (like tasks to chat with others). Furthermore tasks in such a parallel set have a view on and can change other tasks inside the same set. So tasks like monitoring the state of another tasks assigned to someone can be expressed with this basic construction and are not built into the system in a fixed way any more.

Other improvements are general layout functions, which can be changed by the user, allowing custom layouts for (parts of) the application and compositional shared references making it possible to compose data out of different sources, defining lenses on this data and restricting the way this data can be changed. Those shared references also provide a
general way to define global data sources giving information about the system, like users, running processes or the current time.

The new system made it possible to define a high-level API for writing readable workflow specifications on top of it, which is much easier to use, but even more powerful, than the previous one. The number of tasks for user interaction is dramatically reduced. Instead of having many similar variants of a task, the user gets a default behaviour which can
be changed using option lists and combinators. For example a task for entering information normally has an Ok-button to yield the entered information as result of the task. But it is possibly to define a number of possible continuations (like different tasks for a cancel and ok action) using a special combinator. Those actions can also be menu items. The structure of the menu is automatically generated based on the names of those actions.

The new system was presented and used by students at CEFP 2011. The feedback about the new system and especially the usability of the new API was very positive.

Publikaties over iTasks. (http://www.st.cs.ru.nl/Onderzoek/Publicaties/publicaties.html)

1. Jan Martin Jansen, Rinus Plasmeijer, Pieter Koopman, Peter Achten. Embedding a Web-Based Workflow Management System in a Functional Language – Experience paper. In Claus Brabrand, Pierre-Etienne Moreau, Eds. Proceedings 10th Workshop on Language Descriptions, Tools and Applications, LDTA 2010, Paphos, Cyprus, March 27-28, 2010, pp. 79-93.

2. Jan Martin Jansen, Bas Lijnse, Rinus Plasmeijer. Towards Dynamic Workflows for Crisis Management. In Simon French, Brain Tomaszewski, Cristopher Zobel, Eds. Proceedings of the 7th International Conference on Information Systems for Crisis Response and Management, ISCRAM’10, Seattle, WA, USA, may 2010.

3. Jan Martin Jansen, Bas Lijnse, Rinus Plasmeijer. Web Based Dynamic Workflow Systems for C2 of Military Operations. Accepted in 15th ICCRTS, Santa Monica, California, June 22-24, 2010.

4. Bas Lijnse, Rinus Plasmeijer. iTasks 2: iTasks for End-users. In Marco T. Morazán, Ed. Proceedings 21st Symposium on Implementation and Application of Functional Languages, September 23-25, 2009, Seton Hall University, South Orange, NJ, USA. To appear in LNCS.

5. Jan Martin Jansen, Rinus Plasmeijer, Pieter Koopman. iEditors: Extending iTask with Interactive Plug-ins. To appear in Selected Papers Proceedings 20th International Symposium on the Implementation and Application of Functional Languages, University of Hertfordshire, United Kingdom, 10-12 September, 2008, Springer, LNCS 5836.

6. Pieter Koopman, Rinus Plasmeijer, Peter Achten. An Executable and Testable Semantics for iTasks. To appear in Selected Papers Proceedings 20th International Symposium on the Implementation and Application of Functional Languages, University of Hertfordshire, United Kingdom, 10-12 September, 2008, Springer, LNCS 5836.

7. Rinus Plasmeijer, Peter Achten, Pieter Koopman, Bas Lijnse, Thomas van Noort. An iTask case study: a conference management system. In Koopman, P., Plasmeijer, R., Swierstra, D. Eds. Advanced Functional Programming, 6th International School, AFP 2008, Revised Lectures, Center Parcs “Het Heijderbos”, The Netherlands, May 19-24 2008, LNCS 5832, Springer, pp. 306-329.

8. Jan Martin Jansen, Pieter Koopman, Rinus Plasmeijer. Web based Dynamic Workflow Systems and Applications in the Military Domain. In Hupkens, Th. and Monsuur, H. Eds. NL ARMS, Netherlands Annual Review of Military Studies 2008, Sensors, Weapons, C4I and Operations Research, ISSN: 0166-9982, pp. 43-59. bib

9. Rinus Plasmeijer, Peter Achten, Pieter Koopman, Bas Lijnse, Thomas van Noort. Specifying Interactive Work Flows for the Web. In Koopman, P., Plasmeijer, R., Swierstra, D. Eds. Draft Proceedings of the Sixth Advanced Functional Programming School (AFP’08), May 19-24 2008, Center Parcs “Het Heijderbos”, The Netherlands, pp. 7-47.

10. Rinus Plasmeijer, Jan Martin Jansen, Pieter Koopman, Peter Achten. Declarative Ajax and Client Side Evaluation of Workflows using iTasks. In Proceedings 10th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP’08). July 15-17 2008, Valencia, Spain, pp.56-66.

11. Rinus Plasmeijer, Peter Achten, Pieter Koopman. iTasks: Executable Specifications of Interactive Work Flow Systems for the Web. In Ramsey, N. Ed. Proceedings of the 2007 ACM SIGPLAN International Conference on Functional Programming (ICFP’07), Freiburg, Germany, October 1-3, 2007, ACM, ISBN 978-1-59593-815-2, pp. 141-152. bib

 

 

P: 22