Apps that “Work” and “Flow”
Kenneth Geerts
Koen Handekyn
Positioning of the d’Ox platform
Solution
Development
Hosting
Partner
d’Ox
Platform
Blueprint
UP-IO
Blueprint
eContract
Bl...
Overview
‣ d’Ox-Process
Batch and Realtime Document and Message
Processing
‣ d’Ox-Tasks
High Volume Searchable Human Task
...
‣ OpenWFE was a Java open source workflow engine. Later it was
rewritten in Ruby and renamed Ruote.
‣ Other popular engines...
Why a WFE ?
Uncoupling / Flexibility / Versioning
(Process Definition + State)
Business Process
Administration / Monitoring...
“Related” (confused) Standards
‣ (WS-)BPEL
• short for Web Services Business Process Execution Language (WS-BPEL) is an OA...
BPMN example
What is a Workflow engine?
A Workflow Engine
is
NOT
a
State Machine
What is a Workflow engine?
A Workflow Engine
is
an execution system for
business processes
What is a Workflow engine?
A “workflow”
can be translated into a state machine
however
each relevant workflow
would correspon...
What is a Workflow engine?
A Workflow Engine
Understands and Executes
a Workflow Language
that describes
a “flow” of “tasks”
What is aTask?
ATask
represents a piece of work
that is typically executed by a Human person
but some tasks might be handl...
What is aTask?
id + participant + type + meta-data
Key Actions (verbs)
reserve
delegate
update
proceed
cancel
Patterns
Sequence
sequence do
  participant :ref => 'alpha', :activity => 'write'
  participant :ref => 'bravo', :activity => 'fix ...
Concurrence
concurrence do
iron
watch_tv
end
Structured Discrimantor
sequence do
concurrence count: 1 do
   kiss
hug
end
smile
end
Choice
sequence do
  participant 'alpha', :activity => 'request further info',
:if => '${f:decision} == accepted'
  partic...
Multi Choice
concurrence do
  regular_service
:if => '${f:price} < 50'
  premium_service
:if => '${f:price} > 40'
  extra_...
Cursor
cursor do
  participant 'a'
  participant 'b'
  participant 'c'
  jump :to => 'b', :if => '${f:back_to_b}'
  partic...
Break if
cursor :break_if => '${f:rejected}' do
employee
line_manager
ceo, :if ‘${f:amount}>1000’
end
:) Let’s go Live :)
Merci
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Apps thatworkandflow
Upcoming SlideShare
Loading in …5
×

Apps thatworkandflow

358 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
358
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apps thatworkandflow

  1. 1. Apps that “Work” and “Flow” Kenneth Geerts Koen Handekyn
  2. 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. 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. 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. 5. Why a WFE ? Uncoupling / Flexibility / Versioning (Process Definition + State) Business Process Administration / Monitoring (List, Find, Cancel, Replay) Why Route? Expressive DSL
  6. 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. 7. BPMN example
  8. 8. What is a Workflow engine? A Workflow Engine is NOT a State Machine
  9. 9. What is a Workflow engine? A Workflow Engine is an execution system for business processes
  10. 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. 11. What is a Workflow engine? A Workflow Engine Understands and Executes a Workflow Language that describes a “flow” of “tasks”
  12. 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. 13. What is aTask? id + participant + type + meta-data Key Actions (verbs) reserve delegate update proceed cancel
  14. 14. Patterns
  15. 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. 16. Concurrence concurrence do iron watch_tv end
  17. 17. Structured Discrimantor sequence do concurrence count: 1 do    kiss hug end smile end
  18. 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. 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. 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. 21. Break if cursor :break_if => '${f:rejected}' do employee line_manager ceo, :if ‘${f:amount}>1000’ end
  22. 22. :) Let’s go Live :)
  23. 23. Merci

×