fp-dag 20091 pimp my workflow system a tool preview of itasks 2.0 bas lijnse

19
FP-dag 2009 1 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

Post on 19-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 1

Pimp my workflow system

A tool preview of iTasks 2.0

Bas Lijnse

Page 2: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 2

Some context

• iTasks is a workflow management system– Web based– Based on functional combinators– Heavily type driven (generic programming)

• History– Initiated by Rinus Plasmeijer in 2005– Improved by Pieter Koopman, Peter Achten, Jan

Martin Jansen, John van Groningen, Thomas van Noort and Bas Lijnse

Page 3: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 3

What is this talk about?

• Share what is going on with our iTasks research

• Show a nice demo

• Invite you all to comment on the new developments

Page 4: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 4

Status Quo

• Combinator language has stabilized– Can express all common workflow patterns

• Framework capable of supporting many workflow scenarios– Task execution on the client (SAPL)– Support for editor plugins (iEditors)

• Well defined semantics of combinators

Page 5: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 5

iTasks architecture

Page 6: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 6

Single source specification

• Developer only specifies workflows by means of combinator expressions

• Everything else is either available or generated– User interface– Data communication– Identity/user management

Page 7: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 7

Example task expressions

enterNameAndAge :: Task (String,Int)enterNameAndAge = [Text “Enter your name and age”] ?>> editTask “Done” createDefault doubleCheckedTask :: (Task a) -> Task (Bool,a)doubleCheckedTask t = t =>> \result -> [Text “Are you sure?”] ?>> verdictTask =>> \verdict -> return_V (verdict,result)where verdictTask :: Task Bool verdictTask = (buttonTask “Yes” #>> return_V True) -||- (buttonTask “No” #>> return_V False)

Page 8: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 8

User experience impression

Page 9: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 9

However…

• User interface has been neglected– Focus on developing combinators instead

of user experience

• Framework has collected cruft– Features have been added, nothing

removed– Many parts have become intertwined

Page 10: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 10

Enter stage left: itasks 2.0

Page 11: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 11

Goals

• Separation between workflow calculation and UI

• Create a better user experience

• Standardize communication

• Clean up the codebase

Page 12: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 12

Challenges

• User interface and workflow heavily intertwined

• Changes needed almost everywhere in the framework

• Not always clear which parts will be redundant in the new architecture

Page 13: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 13

Concrete changes

• Separation between workflow and UI– Client is primary driver– Only data structures are communicated

• ExtJS javascript Ajax GUI– But we maintain generic user interface generation

for tasks

• Communication standardized on JSON format

• New user management framework

Page 14: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 14

Time for action

• Demo of a simple workflow

• Which is…– Multi-user– Part sequential, part parallel

• Aimed to demonstrate the improvements, not complex workflow

Page 15: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 15

Informal “bidding” workflow

• A description of a product to be purchased is made• A number of potential suppliers is selected from a

pool of suppliers• Each supplier is asked to quote a price for the

requested product• The cheapest supplier is automatically suggested• This suggestion is either accepted or another

suppliers is selected manually• A confirmation is sent to the chosen supplier

Page 16: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 16

iTasks “bidding” workflow

purchaseTask :: Task VoidpurchaseTask = definePurchase =>> \purchase -> selectSuppliers =>> \suppliers -> collectBids purchase suppliers =>> \bids -> selectBid bids =>> \bid -> confirmBid purchase bid

collectBids :: String [(Int,String)] -> Task [((Int,String),Real)]collectBids purchase suppliers = andTasks [("Bid for " +++ purchase +++ " from " +++ name, uid @: ("Bid request regarding " +++ purchase, collectBid purchase supplier)) \\ supplier =: (uid,name) <- suppliers]where collectBid :: String (Int,String) -> Task ((Int,String),Real) collectBid purchase bid = [ Text "Please make a bid to supply ",ITag [] [Text purchase] , HrTag [] ] ?>> editTask "Ok" createDefault =>> \price -> return_V (bid, price)

Page 17: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 17

What is next?

• Tie up the loose ends in the GUI– Support for concurrent workflows– Integration of the SAPL interpreter

• Interaction with the (SOA) world– Publishing workflows as webservices and

embedding external services in workflows

• Do more with workflow meta and management information

Page 18: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 18

What is next?

• Use in course on Business Rules and Business Process Management– Information science students– Practical exercises

• Investigate how the system can be applied in crisis management and military planning

Page 19: FP-dag 20091 Pimp my workflow system A tool preview of iTasks 2.0 Bas Lijnse

FP-dag 2009 19