SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a ruote stockholm 2008

Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
Amit Solanki
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
ahkjsdcsadc
 
Practical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in GroovyPractical Domain-Specific Languages in Groovy
Practical Domain-Specific Languages in Groovy
Guillaume 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
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
Ross Lawley
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorial
oscon2007
 

Semelhante a 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)
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

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...