Post on 26-Jan-2015
description
Consolidating the BPM market
Agenda What is Business Process Management? What is Activiti? What can Activiti do for you?– As a business person– As a developer– As system admin
What is BPM? Management discipline Software engineering
BPM As A Management Discipline Make your company more efficient Analysing Documenting Optimising Business processes
What do you need for BPMAAMD? Many tools– Napkin, Whiteboard, Word, Excel,…
Many model types Process modeling– Good BPMN drawing– Descriptions– Notes– Versioning– Collaboration
BPM As Software Engineering Draw execution flow in a tool Decorate diagram with technical details Run process on BPMS BPMS – Keeps track of state– Acts as central coordinator– Executes automatic pieces
Essentially a state machine
What do you need for BPMASE? Runtime engine– Executable processes as input– Coordinates executions– Keeps track of state
Getting it wrong Typical product
– We can start from a business level diagram– And then execute it on a system
So many hidden options– Notation vs execution language– General purpose complex language– Specific simple language– Context
• Web services / SOA / ESB• Java • ECM• Human tasks
Result– Graphical programming for business analysts– A lot of niche products– Fragmentation
Activiti’s pragmatical approach Business people don’t write software Executable processes – Combines diagram and tech details– It’s software– Under control of developers – Inside software project
Facilitate collaboration– Diagram provides common language– Level of business people
An example
var a = 1;
a = a + 1;
println(a);
Deploy the executable process
var a = 1;
a = a + 1;
println(a);
BPMS Runtime Engine
Start a new process instance
BPMS Runtime EnginestartProcessInstance
var a = 1;
a = a + 1;
println(a);
BPMS as the central coordinator
A human task activity Create entry in task list Wait– Store state in DB
When task completes– Send event to process instance– Process instance continues
var a = 1;
approve
println(a);
A human task activity
BPMS Runtime Engine
var a = 1;
approve
println(a);
startProcessInstance
event
Tasklist Manager
ProcessInstance
John Doe | Approve
State machines and transactions BPMS acts as coordinator External actor means wait state for BPMS
Examples– Human tasks– Webservice principle: “I’ll call you back”– Wait for arrival of some asynchronous message
Approve
State machines and transactions Upon arrival of execution in wait state– Store current execution state • Position• Context variables
– Commit transaction While waiting– No blocked threads / resources
Upon resume– Load execution from DB– Continue executing
Timers Create a timer when activity is entered Cancel timer when activity is left Fire timer when duedate arrives
approve
escalate
Asynchronous Continuations
pdf-g
Transaction 1 Transaction 2
JobExecutor
Transactional Control Flow Specify overal execution flow Analyse where the external triggers are Activiti wil juggle with – Execution state– Timers– Messages
And call your POJO beans where needed
BPMS DB contents Process definitions repository– Versioned
Process instances– Runtime state
History– Statistics
A Process
An Execution
Execution
History
HISTORY_PROCESS_INSTANCE
ID START END …PROCESS
HISTORY_ACTIVITY_INSTANCE
ID START END …HPI ACTIVITY
2 09:391 Check Credit09:39
3 09:421 Accept Quote09:42
4 10:031 Charge Customer10:0310:04
10:041 09:38Order-1
1 09:381 Calculate Quote
History
What is Activiti New project created by Alfresco BPMN 2.0 BPMS Lead by jBPM founders Apache license Run as independent project
Who’s behind Activiti Alfresco SpringSource Camunda Signavio Next Level Integration Mimacom MuleSoft
jBPM
Activiti
Your Application
Embedded BPM
BPMS History Your domain model
Tasklist ManagerBPMS Runtime Engine
Bring BPM to where it’s used
Activiti Engine
EnterpriseApps CloudECM
Activiti is a complete BPM Suite Activiti Engine– Process repository– Process instances runtime state– Process execution history– Identity component– Tasklist component
Activiti Probe Activiti Explorer Activiti Cycle
Activiti Explorer End user
task list Manage my
tasks Execute
workflows
Activiti Probe
Management console for sys admins
Manage deployments
Manage versioning
See deployed process sources
View database tables
Activiti Modeler
Activiti branded and powered by Signavio
Browser-based design and control tools
Targetted at Business Analysts
Easy to use AJAX tools
Customized file based model repository
Easy scripting
Activiti Cycle
Process In The Dev Cycle
DeveloperAnalyst Sys Admin
ModelRepo
Alfresco SVN MVN Tomcat Activiti
Activiti Cycle (Mockup)
Q&A