Automatic Detection of Business Process Interference
Nick van Beest, Eirini Kaldeli, Pavel Bulanov, Hans Wortmann, Alexander Lazovik University of Groningen, Netherlands KIBP 2012 15-06-2012
Automatic Detection of Business Process Interference Nick van Beest - - PowerPoint PPT Presentation
Automatic Detection of Business Process Interference Nick van Beest , Eirini Kaldeli, Pavel Bulanov, Hans Wortmann, Alexander Lazovik University of Groningen, Netherlands KIBP 2012 15-06-2012 Context Distributed or service-oriented
Nick van Beest, Eirini Kaldeli, Pavel Bulanov, Hans Wortmann, Alexander Lazovik University of Groningen, Netherlands KIBP 2012 15-06-2012
Distributed or service-oriented information systems Knowledge-intensive External stakeholders Assumption of process independence Concurrent business process execution
A1 [D = X] A3 [D ≠ X] A2 A4 B1 Change D
t
Single process verification Analysis of failing process instances Run-time vs design-time
Awareness of dependencies of a process Define special sections in the business process that are
vulnerable for external changes → Dependency Scope: A section in the business process whose correct execution relies on the accuracy of a volatile process variable. A volatile process variable is a process variable that can be changed externally during execution of the process.
Automatic execution of compensation activities
A1 A3 A2 A4 A5 [D = X] [D ≠ X]
Dependency Scope DS1 [D]
A1 A3 A4 A5 [D = X] [D ≠ X] A2: Halt
Dependency Scope DS1 [D]
Activity P Activity Q Continue A3 A4
Dutch Law for Societal Support
Home modifications Wheelchair provision Domestic help
[Approved]
Request Payment
[Appeal] [Affirm decision] [Revise decision] [No appeal] [Rejected]
Terminate Terminate
Provision
+
Research and Decision
+
[Domestic help] [Approved] [Else] [Wheelchair] [Home Modification]
Tender procedure Check tender with decision
[Tender not ok] [Tender ok]
Acquire requirements
[Personal budget] [Care in kind]
Send request to supplier Receive delivery confirmation Handle Invoice
+
Send order to supplier Send order confirmation to selected supplier Receive delivery confirmation Handle Invoice
+
[Domestic help] [Approved] [Else] [Wheelchair] [Home Modification]
Tender procedure Check tender with decision
[Tender not ok] [Tender ok]
Acquire requirements
[Personal budget] [Care in kind]
Send request to supplier Receive delivery confirmation Handle Invoice
+
Send order to supplier Send order confirmation to selected supplier Receive delivery confirmation Handle Invoice
+
DS1: {Address, Medical Condition} DS2: {WMO Eligibility Criteria} DS3: {Address, Medical Condition}
Send order to supplier Home visit Receive delivery confirmation Acquire requirements
a) b)
Send order to supplier Resume order Home visit [Requirements Unchanged] [New Requirements] Acquire requirements Cancel order Pause order Receive delivery confirmation Home visit Decision [Different situation] [Similar situation]
c)
[Approved] [Rejected] Tender procedure Check tender with decision Send order to supplier Receive delivery confirmation [Tender not ok] [Tender ok]
Terminate
Home visit Cancel order
d)
Decision [Different situation] [Similar situation] [Approved] [Rejected] Tender procedure Check tender with decision Send order to supplier Receive delivery confirmation [Tender not ok] [Tender ok]
Terminate
Cancel order Notify city hall
e)
Sub-process in the BP to be monitored
A number of events to react upon
A number of intervention processes to be triggered Guard block: specifies the sub-process of the BP Verify block: specifies the types of events that require intervention
<ds> <guard> <variables> <variable name="address" dataType="dt:address"/> <variable name="medCond" dataType="dt:medInfo"/> </variables> <!– Sub-process covered by DS1 as in Figure 2 --> </guard> <verify> <case condition="address.county!='Groningen'"> <terminate> <invoke name="IPa"/> </terminate> </case> <case condition="address.county='Groningen' && medCond!='deceased'"> <invoke name="IPb"/> </case> <case condition="medCond='deceased'"> <terminate> <invoke name="IPc"/> </terminate> </case> </verify> </ds>
Service Repository Business Process Modeller
BP specification DS specification IP specification
Process Executor
BP execution IP execution
Environment
Process Executor Service Repository
Service Descriptions
Process Modeller Environment Design Time Runtime
BP Specification Service Descriptions
Service Repository Business Process Modeller
BP specification DS specification IP specification
Process Executor
BP execution IP execution
Environment CSP-based Planner
IP generation
DS generator
DS specification
Process Executor Service Repository
Service Descriptions
CSP-based Planner Process Modeller Environment Compose Planning Domain Domain Generator Design Time Runtime
Goal Planning Domain BP Specification BP Specification Service Descriptions + Initial State Intervention Process
Compose DSs
BP Specification DS definition
DS Generator
DSs cover all activities that are directly or indirectly
dependent on a certain volatile variable (VV), i.e.:
using the VV as input using the output of another activity, which is dependent on that VV. part of an XOR-construct with a condition over VV.
Any part of the process in a potential execution path
between two activities dependent on the same VV should also be covered by the respective DS.
a) b) c)
TR DEP TR TR TR DEP
Branching End Branching Start
Demonstrated and tested on the e-Government case study Three volatile variables were identified:
Address Medical condition Eligibility criteria
Five dependency scopes:
Three for provision (as shown) Two regarding the decision
Data is scattered No single ownership Cloud etc. A lot of work to be done in this area Continuity of the process can be ensured in an
automated way
Easy integration with existing BPMS platforms
Service Repository
prec: eff:
Generate IP
CSP-based Planner Process Executor Process Modeller
Process Specific ConstraintsDS
+ +
Verifier
Environment Compose Planning Domain Domain Generator Design Time Runtime
Goal Planning Domain BP Specification + Atomic actions BP Specification Service Descriptions Planning Domain + Goal + Initial State
prec: eff:goal: Initial state: + Initial State Intervention Process
Compose DSs
BP Specification DS definition
DS Generator
CSP Knowlege-level representation
XOR, sensing, replanning
Domain independent Supports extended goals
temporal maintainability
The goal to be achieved has to be specified in
No use of high-level declarative goals The adaptation process has to be pre-
Arduous hand-coding by a human expert.
HomeVisit(hvIn_cid, hvIn_address) Prec: hvIn_cid = bpCid hvIn_address = bpAddress known(itOut_prov) Eff: sense(hvOut_homeInfo) sense(hvOut_maRequired) AcquireRequirements(arIn_cid, arIn_homeInfo) Prec: (itOut_prov = 3 OR itOut_prov = 4) itOut_prov = 3 arIn_cid = bpCid arIn_homeInfo = hvOut_homeInfo known(dcOut_approvalCheck) dcOut_approvalCheck = true Eff: sense(arOut_requirements)
[Approved]
Request Payment
[Appeal] [Affirm decision] [Revise decision] [No appeal] [Rejected]
Terminate Terminate
Provision
+
Research and Decision
+
Home visit Decision Medical advice
[Medical advice] [No medical advice]