Your SlideShare is downloading. ×
Apps thatworkandflow
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apps thatworkandflow


Published on

Published in: Technology, Education

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Apps that “Work” and “Flow” Kenneth Geerts Koen Handekyn
  • 2. Positioning of the d’Ox platform Solution Development Hosting Partner d’Ox Platform Blueprint UP-IO Blueprint eContract Blueprint UP-Archive Virtual Machine Object Store Database Process Workflow Store
  • 3. Overview ‣ d’Ox-Process Batch and Realtime Document and Message Processing ‣ d’Ox-Tasks High Volume Searchable Human Task Workflow ‣ d’Ox-Store Scalable Enterprise Content Management foundation for the Cloud (CMIS) ‣ d’Ox-Apps Reusable application components and HTML5 app framework Open API’s facilitate deep integration within existing applications and solutions: CMIS, REST,WS Missing some functionality?You can easily extend the platform with your own functionality.
  • 4. ‣ OpenWFE was a Java open source workflow engine. Later it was rewritten in Ruby and renamed Ruote. ‣ Other popular engines are • JBPM • Activiti • Enhydra Shark • ...
  • 5. Why a WFE ? Uncoupling / Flexibility / Versioning (Process Definition + State) Business Process Administration / Monitoring (List, Find, Cancel, Replay) Why Route? Expressive DSL
  • 6. “Related” (confused) Standards ‣ (WS-)BPEL • short for Web Services Business Process Execution Language (WS-BPEL) is an OASIS[1] standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively. [ this is an ‘orchestration’ language ] ‣ BPMN • A standard Business Process Model and Notation (BPMN) will provide businesses with the capability of understanding their internal business procedures in a graphical notation and will give organizations the ability to communicate these procedures in a standard manner.
  • 7. BPMN example
  • 8. What is a Workflow engine? A Workflow Engine is NOT a State Machine
  • 9. What is a Workflow engine? A Workflow Engine is an execution system for business processes
  • 10. What is a Workflow engine? A “workflow” can be translated into a state machine however each relevant workflow would correspond to very complex state model due to combinatorial explosion
  • 11. What is a Workflow engine? A Workflow Engine Understands and Executes a Workflow Language that describes a “flow” of “tasks”
  • 12. What is aTask? ATask represents a piece of work that is typically executed by a Human person but some tasks might be handled by a piece of software In “Ruote” this is called a “participant” HUMAN | AUTOMATED
  • 13. What is aTask? id + participant + type + meta-data Key Actions (verbs) reserve delegate update proceed cancel
  • 14. Patterns
  • 15. Sequence sequence do   participant :ref => 'alpha', :activity => 'write'   participant :ref => 'bravo', :activity => 'fix typos' end sequence do alpha :activity => 'write'   bravo :activity => 'fix typos' end
  • 16. Concurrence concurrence do iron watch_tv end
  • 17. Structured Discrimantor sequence do concurrence count: 1 do    kiss hug end smile end
  • 18. Choice sequence do   participant 'alpha', :activity => 'request further info', :if => '${f:decision} == accepted'   participant 'alpha', :activity => 'send refusal note', :if => '${f:decision} == refused' end
  • 19. Multi Choice concurrence do   regular_service :if => '${f:price} < 50'   premium_service :if => '${f:price} > 40'   extra_service :if => '${f:extra_ordered}' end
  • 20. Cursor cursor do   participant 'a'   participant 'b'   participant 'c'   jump :to => 'b', :if => '${f:back_to_b}'   participant 'd'   jump :to => 'c', :if => '${f:back_to_c}'   participant 'e' end ‘skip’, ‘back’, ‘jump’, ‘rewind’, ‘continue’, ‘reset’ and ‘break’
  • 21. Break if cursor :break_if => '${f:rejected}' do employee line_manager ceo, :if ‘${f:amount}>1000’ end
  • 22. :) Let’s go Live :)
  • 23. Merci