Open-Source Workflow Evaluation an Evaluation of the Activiti BPM Platform
Total Page:16
File Type:pdf, Size:1020Kb
Mid Sweden University The Department of Information Technology and Media (ITM) Author: Mikael Nilsson E-mail address: [email protected] Study programme: M. Sc. In engineering – computer engineering, 240 ECTS Examiner: Tingting Zhang, [email protected] Tutors: Anders Trollås, Cybercom Group, [email protected] Fredrik Håkansson, Mid Sweden University, [email protected] Scope: 29901 words inclusive of appendices Date: 2012-06-29 M.Sc. Thesis within Computer Engineering AV, 30 ECTS Open-source Workflow Evaluation An evaluation of the Activiti BPM Platform Mikael Nilsson Open-source Workflow Evaluation - An evaluation of the Activiti BPM Platform Abstract Mikael Nilsson 2012-06-29 Abstract The aim of this thesis is to evaluate the newly released open-source business process management platform Activiti. The platform is evalu- ated in the first instance by implementing the control-flow patterns which will be used at a later stage as a comparison with other platforms that have already been evaluated. Activiti comes with a web application called Activiti Explorer which is a graphical user interface between the process engine and the user. As all the desired features commissioned by the Cybercom Group were not available in the Activiti Explorer its source-code was extended. These extended features included support for several companies per installation and the ability to customize the layout of the components in user task forms. The report is concluded with a comparison between Activiti, jBPM, OpenWFE and Enhydra shark with regards to the control-flow patterns. Keywords: Open-source, Workflow, BPM, BPMN 2.0, Activiti, Work- flow patterns, Control-flow patterns ii Open-source Workflow Evaluation - An evaluation of the Activiti BPM Platform Acknowledgements Mikael Nilsson 2012-06-29 Acknowledgements Thanks to... Anders Trollås, my tutor from Cybercom Group, for your help, guidance and support during this thesis. Fredrik Håkansson, my tutor from Mid Sweden University, for your help, reviews and valuable advice for my report. iii Open-source Workflow Evaluation - An evaluation of the Activiti BPM Platform Table of Contents Mikael Nilsson 2012-06-29 Table of Contents Abstract ............................................................................................................. ii Acknowledgements ....................................................................................... iii Terminology .....................................................................................................ix 1 Introduction ............................................................................................ 1 1.1 Background and problem motivation ...................................... 4 1.2 Overall aim and verifiable goals ............................................... 5 1.3 Scope ............................................................................................. 6 1.4 Outline .......................................................................................... 6 1.5 Contributions ............................................................................... 7 2 Theory ...................................................................................................... 8 2.1 BPMN 2.0 ...................................................................................... 8 2.2 Activiti Designer .......................................................................... 8 2.3 Workflow Patterns ...................................................................... 9 2.4 Control-flow patterns ................................................................. 9 2.4.1 Basic Control Flow Patterns ............................................ 9 2.4.2 Advanced Branching and Synchronization Patterns 10 2.4.3 Multiple Instance Patterns ............................................ 11 2.4.4 State-based Patterns ....................................................... 11 2.4.5 Cancellation and Force Completion Patterns ............. 12 2.4.6 Iteration Patterns ............................................................ 12 2.4.7 Termination Patterns ..................................................... 12 2.4.8 Trigger Patterns .............................................................. 12 2.5 Activiti source code ................................................................... 13 2.6 Activiti Explorer ........................................................................ 13 2.6.1 Spring Framework .......................................................... 13 2.6.2 Vaadin .............................................................................. 14 2.6.3 Activiti Process Engine .................................................. 16 iv Open-source Workflow Evaluation - An evaluation of the Activiti BPM Platform Table of Contents Mikael Nilsson 2012-06-29 3 Methodology ........................................................................................ 18 3.1 Literature studies ....................................................................... 18 3.2 Workflow patterns initiative.................................................... 18 3.3 Workflow patterns evaluation ................................................. 18 3.3.1 Implementing the patterns ............................................ 18 3.4 Product comparison .................................................................. 19 3.5 Building the extended version of Activiti Explorer ............. 19 4 Implementation ................................................................................... 21 4.1 Control-flow patterns ............................................................... 21 4.1.1 Pattern 1 – Sequence....................................................... 21 4.1.2 Pattern 2 – Parallel split ................................................. 21 4.1.3 Pattern 3 – Synchronization .......................................... 22 4.1.4 Pattern 4 - Exclusive Choice .......................................... 22 4.1.5 Pattern 5 - Simple Merge ............................................... 23 4.1.6 Pattern 6 - Multi-Choice ................................................ 23 4.1.7 Pattern 7 - Structured Synchronizing Merge .............. 24 4.1.8 Pattern 8 - Multi-Merge ................................................. 24 4.1.9 Pattern 9 - Structured Discriminator ........................... 25 4.1.10 Pattern 10 – Arbitrary Cycles ........................................ 25 4.1.11 Pattern 11 - Implicit Termination ................................. 25 4.1.12 Pattern 12 - Multiple Instances without Synchronization .............................................................. 26 4.1.13 Pattern 13 - Multiple Instances with a priori Design- Time Knowledge ............................................................ 26 4.1.14 Pattern 14 - Multiple Instances with a priori Run-Time Knowledge ...................................................................... 27 4.1.15 Pattern 15 - Multiple instances without a priori run- time knowledge .............................................................. 27 4.1.16 Pattern 16 - Deferred Choice ......................................... 27 4.1.17 Pattern 17 - Interleaved Parallel Routing .................... 28 4.1.18 Pattern 18 – Milestone .................................................... 28 4.1.19 Pattern 19 - Cancel Activity .......................................... 28 v Open-source Workflow Evaluation - An evaluation of the Activiti BPM Platform Table of Contents Mikael Nilsson 2012-06-29 4.1.20 Pattern 20 - Cancel Case ................................................ 29 4.1.21 Pattern 21 - Structured Loop ......................................... 29 4.1.22 Pattern 22 - Recursion .................................................... 30 4.1.23 Pattern 23 - Transient Trigger ....................................... 30 4.1.24 Pattern 24 - Persistent Trigger ...................................... 30 4.1.25 Pattern 25 - Cancel Region ............................................ 30 4.1.26 Pattern 26 - Cancel Multiple Instance Activity .......... 31 4.1.27 Pattern 27 - Complete Multiple Instance Activity ..... 31 4.1.28 Pattern 28 - Blocking Discriminator ............................. 32 4.1.29 Pattern 29 - Cancelling Discriminator ......................... 32 4.1.30 Pattern 30 - Structured Partial Join .............................. 32 4.1.31 Pattern 31 - Blocking Partial Join .................................. 32 4.1.32 Pattern 32 - Cancelling Partial Join .............................. 33 4.1.33 Pattern 33 - Generalized AND-Join ............................. 33 4.1.34 Pattern 34 - Static Partial Join for Multiple Instances 33 4.1.35 Pattern 35 - Cancelling Partial Join for Multiple Instances .......................................................................... 33 4.1.36 Pattern 36 - Dynamic Partial Join for Multiple Instances .......................................................................... 33 4.1.37 Pattern 37 - Acyclic Synchronizing Merge .................. 33 4.1.38 Pattern 38 - General Synchronizing Merge ................. 33 4.1.39 Pattern 39 - Critical Section ........................................... 33 4.1.40 Pattern 40 - Interleaved Routing .................................. 34 4.1.41 Pattern 41 - Thread Merge ............................................. 34 4.1.42 Pattern 42 - Thread Split ................................................ 34 4.1.43 Pattern 43 - Explicit Termination ................................. 34 4.2 Support for multiple companies