fp-dag 20091 pimp my workflow system a tool preview of itasks 2.0 bas lijnse
Post on 19-Dec-2015
212 views
TRANSCRIPT
FP-dag 2009 1
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
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
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
FP-dag 2009 5
iTasks architecture
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
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)
FP-dag 2009 8
User experience impression
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
FP-dag 2009 10
Enter stage left: itasks 2.0
FP-dag 2009 11
Goals
• Separation between workflow calculation and UI
• Create a better user experience
• Standardize communication
• Clean up the codebase
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
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
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
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
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)
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
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
FP-dag 2009 19