SlideShare a Scribd company logo
Stockholm University - 2008/10/08
ruote
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
•   ruote-fluo
•   ruote-web & ruote-rest
sub-projects

•   ruote : as a ruby project
•   ruote-fluo : how ruote sees processes
•   ruote-web & ruote-rest : ruote + web
ruote
ruote

•   open source
•   ruby
•   workflow engine
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 avoid
    such 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 representing
     business 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)
workflow engine

•   process definition interpreter
•   process definition language ?
•   many grails
many grails

•   visual grail
•   “no code” / no programming grail
•   standard grail
•   (formal grail)
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 not
    programming
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
ruote-fluo

•   is a javascript library
•   fluo-can :
    renders process definitions graphically
•   fluo-tred :
    online process definition edition
fluo-can
fluo-tred
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
a




process-
definition         b
   0

                             c

            sequence
     g                           participant
               0.0
                             d     0.0.0
                                                         quot;alphaquot;
                                   alpha
                         e

              f
  apply
                       participant
                         0.0.1                 quot;bravoquot;
  reply
                         bravo
ruote

•   simplistic / naive
•   that’s a strength when things go wrong
    (it should not play tricks on you)
•   ...
ruote & web
ruote & web


•   a process definition is a document
•   a document, a URI
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
web standards
•   HTTP
•   XML, JSON
•   Atom, RSS
•   AtomPub (content oriented maybe)
•   iCal, ...
ruote-rest

•   process server
•   embedded vs external
•   state machine vs process server
next spins
next
•   better ruote-web2 (2008/11)
•   more in-flight edition
•   better migrations / batch migrations
•   more documentation
•   more...
ruote stockholm 2008

More Related Content

Similar to ruote stockholm 2008

When To Use Ruby On Rails
When To Use Ruby On RailsWhen To Use Ruby On Rails
When To Use Ruby On Rails
dosire
 
The Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With RubyThe Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With Ruby
mattmatt
 
Let's go
Let's go Let's go
Let's go
CATReloaded
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
Michael MacDonald
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
Tamir Khason
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
Adam Goucher
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRubyAmit Solanki
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcampahkjsdcsadc
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
Matt Aimonetti
 
Practical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in GroovyPractical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in GroovyGuillaume Laforge
 
So gelingt der Umstieg von PHP4 auf PHP5: Erneuerung von Geschäftsanwendung...
So gelingt der Umstieg von PHP4 auf  PHP5: Erneuerung von  Geschäftsanwendung...So gelingt der Umstieg von PHP4 auf  PHP5: Erneuerung von  Geschäftsanwendung...
So gelingt der Umstieg von PHP4 auf PHP5: Erneuerung von Geschäftsanwendung...Lars Jankowfsky
 
I35s
I35sI35s
I35s
ujihisa
 
Amoocon May 2009 Germany
Amoocon May 2009   GermanyAmoocon May 2009   Germany
Amoocon May 2009 Germany
Adhearsion Foundation
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 NotesRoss Lawley
 
Working With People Adl Uni
Working With People Adl UniWorking With People Adl Uni
Working With People Adl Uni
Matthew Landauer
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorialoscon2007
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
Ivo Jansch
 

Similar to ruote stockholm 2008 (20)

When To Use Ruby On Rails
When To Use Ruby On RailsWhen To Use Ruby On Rails
When To Use Ruby On Rails
 
The Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With RubyThe Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With Ruby
 
Let's go
Let's go Let's go
Let's go
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
 
Practical Groovy DSL
Practical Groovy DSLPractical Groovy DSL
Practical Groovy DSL
 
re7olabini
re7olabinire7olabini
re7olabini
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Practical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in GroovyPractical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in Groovy
 
So gelingt der Umstieg von PHP4 auf PHP5: Erneuerung von Geschäftsanwendung...
So gelingt der Umstieg von PHP4 auf  PHP5: Erneuerung von  Geschäftsanwendung...So gelingt der Umstieg von PHP4 auf  PHP5: Erneuerung von  Geschäftsanwendung...
So gelingt der Umstieg von PHP4 auf PHP5: Erneuerung von Geschäftsanwendung...
 
I35s
I35sI35s
I35s
 
Bpm & activiti
Bpm & activitiBpm & activiti
Bpm & activiti
 
Amoocon May 2009 Germany
Amoocon May 2009   GermanyAmoocon May 2009   Germany
Amoocon May 2009 Germany
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
 
Working With People Adl Uni
Working With People Adl UniWorking With People Adl Uni
Working With People Adl Uni
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorial
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

ruote stockholm 2008

  • 3. ruote • open source project • “ruote” is a nickname • formal name is “openwferu” http://openwferu.rubyforge.org
  • 4. ja to ru • OpenWFE project started in late 2001 • became OpenWFEru late 2006 • java to python ruby • nicknamed Ruote (keep the ru)
  • 5. sub-projects • ruote • ruote-fluo • ruote-web & ruote-rest
  • 6. sub-projects • ruote : as a ruby project • ruote-fluo : how ruote sees processes • ruote-web & ruote-rest : ruote + web
  • 8. ruote • open source • ruby • workflow engine
  • 9. ruby • ruby is slow • yes, but development time is shorter • yes, but hardware gets faster • yes, but interpreters get stronger and faster
  • 10. 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 avoid such a tool ? (non-usage cost)
  • 11. 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”
  • 12. act_as_a_state_machine • ruby on rails plugin • attach states (and transitions) to rails entities • virtual entities representing business processes • still 1 web application • ruote : target is ruby, not just rails
  • 13. ruby and workflow my endeavour : • bring a workflow engine to ruby or • leverage ruby to write a better workflow engine ?
  • 14. ruby • ruby is one of the fastest language (shortest development time) • less code to write • less code to maintain
  • 15. 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)
  • 16. workflow engine • process definition interpreter • process definition language ? • many grails
  • 17. many grails • visual grail • “no code” / no programming grail • standard grail • (formal grail)
  • 18. 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
  • 19. “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 not programming
  • 20. 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 ?
  • 21. programming business processes • building abstractions / raising the abstraction level • provide a language • a process definition language
  • 22. language • a language and its interpreter • 4 main constructs • process-definition • participant • sequence • concurrence
  • 23.
  • 24. 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
  • 25. requirements • the workflow control patterns • directly and indirectly • community • feedback and requests
  • 26.
  • 27. participants • workflow resource patterns • orchestrating : • BPEL and web services • ruote and ‘participants’ • participants usually change less often than processes • users, roles, systems, services, ...
  • 28. workitems • issuing workitems to participants • serializable as JSON / XML / YAML • payload : reference is better than raw content • apply / reply workitems as well
  • 30. ruote-fluo • is a javascript library • fluo-can : renders process definitions graphically • fluo-tred : online process definition edition
  • 33. formats • so you have XML, Ruby and this online tool • it’s manipulating ASTs • exp := [ exp_name, { attribute* },[ child_exp* ]]
  • 34.
  • 35.
  • 36. 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
  • 37. 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
  • 38. a process- definition b 0 c sequence g participant 0.0 d 0.0.0 quot;alphaquot; alpha e f apply participant 0.0.1 quot;bravoquot; reply bravo
  • 39. ruote • simplistic / naive • that’s a strength when things go wrong (it should not play tricks on you) • ...
  • 41. ruote & web • a process definition is a document • a document, a URI
  • 42.
  • 43. ruote & web • workflow things as web resources • processes / errors / workitems • launch : POST /processes • cancel : DELETE /processes/3425ba2
  • 44.
  • 45.
  • 46. ruote-rest • trying to be RESTful • trying to stick to web standards • trying hard for connectedness
  • 47. web standards • HTTP • XML, JSON • Atom, RSS • AtomPub (content oriented maybe) • iCal, ...
  • 48. ruote-rest • process server • embedded vs external • state machine vs process server
  • 50. next • better ruote-web2 (2008/11) • more in-flight edition • better migrations / batch migrations • more documentation • more...