2. 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
3. What is BPM? Management discipline Software engineering
4. BPM As A Management Discipline Make your company more efficient Analysing Documenting Optimising Business processes
5. What do you need for BPMAAMD? Many tools Napkin, Whiteboard, Word, Excel,… Many model types Process modeling Good BPMN drawing Descriptions Notes Versioning Collaboration
6. 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
7. What do you need for BPMASE? Runtime engine Executable processes as input Coordinates executions Keeps track of state
8. 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
9. 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
14. 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);
15. A human task activity BPMS Runtime Engine Tasklist Manager var a = 1; startProcessInstance John Doe | Approve Process Instance approve event println(a);
16. 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
17. 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
18. Timers Create a timer when activity is entered Cancel timer when activity is left Fire timer when duedate arrives approve escalate
20. 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
21. BPMS DB contents Process definitions repository Versioned Process instances Runtime state History Statistics
30. Bring BPM to where it’s used Activiti Engine Enterprise Apps Cloud ECM
31. 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
33. Activiti Probe Management console for sys admins Manage deployments Manage versioning See deployed process sources View database tables
34. 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
35. Process In The Dev Cycle Developer Analyst Sys Admin Model Repo Alfresco SVN MVN Tomcat Activiti Activiti Cycle