Training at Stockholm University (2008 02 07 - 02 27) Martynas Lelis.
ruote stockholm 2008
-
Upload
john-mettraux -
Category
Technology
-
view
3.425 -
download
2
description
Transcript of ruote stockholm 2008
ruote
• open source project
• “ruote” is a nickname
• formal name is “openwferu”http://openwferu.rubyforge.org
ja to ru
• OpenWFE project started in late 2001
• became OpenWFEru late 2006
• java to python ruby
• nicknamed Ruote (keep the ru)
sub-projects
• ruote : as a ruby project
• ruote-fluo : how ruote sees processes
• ruote-web & ruote-rest : ruote + web
ruby
• ruby is slow
• yes, but development time is shorter
• yes, but hardware gets faster
• yes, but interpreters get stronger and faster
workflow
• ruote is a workflow engine
• incidentally BPM, BPM the discipline
• do you have the discipline to integrate such a tool ? (usage cost)
• do you have the discipline to avoidsuch a tool ? (non-usage cost)
ruby and workflow
• ruby is well-known, because of Ruby on Rails
• rails people are able to build web application very quickly
• “workflow” for them is spelled “act_as_state_machine”
act_as_a_state_machine• ruby on rails plugin
• attach states (and transitions) to rails entities
• virtual entities representingbusiness processes
• still 1 web application
• ruote : target is ruby, not just rails
ruby and workflow
my endeavour :
• bring a workflow engine to ruby
or
• leverage ruby to write a better workflow engine
?
ruby
• ruby is one of the fastest language (shortest development time)
• less code to write
• less code to maintain
ruby people
• lots of ex-{PHP|Perl|Java} people
• different perspective(enterprise wide vs web wide)
• true community (not big guns driven)
• ruby people seem to be going in the right direction (trust)
visual and standard
• in 2001-2002, there were XPDL and BPML
• visual is hard, lots of noise info
• trying to come up with a language
“no code” grail
• defining a process is not programming
• redacting a mission statement is not programming
• specifying a series of task to be executed by a machine is notprogramming
programming
• I firmly believe that defining a process is programming (modeling)
• I firmly believe that issues raised by process execution are better solved by people with an understanding of programming and systems (managing)
• no coder and no admin ?
programming business processes
• building abstractions / raising the abstraction level
• provide a language
• a process definition language
language• a language and its interpreter
• 4 main constructs
• process-definition
• participant
• sequence
• concurrence
language
• conciseness(process def vs context)
• no “box and arrow position” noise
• graphical representation can be derived from such a language
• XML parsers were/are available
requirements
• the workflow control patterns
• directly and indirectly
• community
• feedback and requests
participants• workflow resource patterns
• orchestrating :
• BPEL and web services
• ruote and ‘participants’
• participants usually change less often than processes
• users, roles, systems, services, ...
workitems
• issuing workitems to participants
• serializable as JSON / XML / YAML
• payload : reference is better than raw content
• apply / reply workitems as well
ruote-fluo
• is a javascript library
• fluo-can :renders process definitions graphically
• fluo-tred :online process definition edition
formats
• so you have XML, Ruby and this online tool
• it’s manipulating ASTs
• exp := [ exp_name, { attribute* },[ child_exp* ]]
languages, trees• a tree at the heart
• direct interpretation, no compilation (not so low level interpretation)
• (-) slower
• (+) graspable, directly modifiable (in-flight)
• (+) easy to add new expressions
expressions• ruote is a very patient (long running)
interpreter
• interprets trees of expressions
• expressions come in two flavour : raw / applied
• they reply to 3 messages : apply / reply / cancel
process-
definition
0
sequence
0.0 participant
0.0.0
alpha
participant
0.0.1
bravo
a
b
c
d
e
f
g
apply
reply
"alpha"
"bravo"
ruote
• simplistic / naive
• that’s a strength when things go wrong (it should not play tricks on you)
• ...
ruote & web
• workflow things as web resources
• processes / errors / workitems
• launch : POST /processes
• cancel : DELETE /processes/3425ba2
ruote-rest
• trying to be RESTful
• trying to stick to web standards
• trying hard for connectedness
next
• better ruote-web2 (2008/11)
• more in-flight edition
• better migrations / batch migrations
• more documentation
• more...