Download presentation
Presentation is loading. Please wait.
Published byIivari Penttilä Modified over 6 years ago
1
Enabling Ad-Hoc Changes to Object-aware Processes
Kevin Andrews, Sebastian Steinau, Manfred Reichert Institute of Databases and Information Systems Ulm University EDOC 2018
2
What are Ad-Hoc Changes?
3
What are Ad-Hoc Changes?
Clerk Must Approve Transfer >10000 Determine Transfer Amount ≤10000
4
What are Ad-Hoc Changes?
Clerk Must Approve Transfer Manager Must Approve Transfer >10000 Determine Transfer Amount ≤10000
5
How can Object-aware Processes support Ad-Hoc Changes?
6
What are Object-aware Processes?
7
What are object-aware processes?
From: Date Until: Date Approved: Bool Initialized Decision Pending Approved Rejected From Until Comment: String Comment Approved == true Approved == false Vacation Request Lifecycle Attributes Assignment: Employee Assignment: Manager Vacation Request Form (real-world business object) Vacation Request Process [1] Künzle, Vera and Reichert, Manfred PHILharmonicFlows: towards a framework for object-aware process management Journal of Software Maintenance and Evolution: Research and Practice [2] Künzle, Vera Object-Aware Process Management PhD thesis, University of Ulm.
8
What are object-aware processes?
Vacation Request Approved Initialized Decision Pending Approved From Until Comment Approved == true Rejected Approved == false Assignment: Employee Assignment: Manager Lifecycle Attributes From: Date Until: Date Approved: Bool Comment: String Vacation Request – Decision From Until Approved Submit Comment Vacation Request – Init From Until Submit true Ok. Fine with me.
9
What are object-aware processes?
10
What are object-aware processes?
11
What are object-aware processes?
21
How can Object-aware Processes support Ad-Hoc Changes?
22
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes to individual object instances
23
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes to individual object instances How can Object-aware Processes support Ad-Hoc Changes?
24
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes to individual object instances How can Object-aware Processes support Ad-Hoc Changes? Amount : Integer Date Approved: Bool Initialized Decision Pending Approved Rejected Comment: String Approved == true Approved == false Transfer With Comment Lifecycle Attributes Assignment: Customer Assignment: Checking Account Manager Comment
25
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances Apply to all Ad - Hoc changes to individual object instances
26
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Data Model Employee Customer Checking Savings Stock Depot Account Account Transfer
27
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Data Model Instance Data Model Employee Employee 1 Customer Checking Savings Stock Depot Account Account Customer 1 Customer 2 Transfer Checking Checking Checking Account 1 Account 2 Account 3 Transfer 2 Transfer 1 Transfer 3
28
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Data Model Instance Data Model Employee Employee 1 Customer Checking Savings Stock Depot Account Account Customer 1 Customer 2 Transfer Insert new Attribute “Comment” Checking Checking Checking Account 1 Account 2 Account 3 Transfer 2 Transfer 1 Transfer 3
29
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Data Model Instance Data Model Employee Employee 1 Customer Checking Savings Stock Depot Account Account Customer 1 Customer 2 Transfer Checking Checking Checking Account 1 Account 2 Account 3 Insert new Attribute “Comment” Transfer 2 Transfer 1 Transfer 3
30
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Transfer 1 Transfer 2 Transfer 3
31
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Transfer 1 Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : Integer Date : Date Approved: Bool Insert new Attribute “Comment” Transfer 2 Transfer 3 Approved Approved Initialized Decision Pending Initialized Decision Pending Approved Approved Amount Date Amount Date Approved == true Approved == true Rejected Approved == false Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Assignment: Customer Assignment: Checking Account Manager Lifecycle Lifecycle Attributes Attributes Amount : Integer Date : Date Approved: Bool Amount : Integer Date : Date Approved: Bool Insert new Attribute “Comment” Insert new Attribute “Comment”
32
How can Object-aware Processes support Ad-Hoc Changes?
Hoc changes evolve all object instances How can Object-aware Processes support Ad-Hoc Changes? Transfer 1 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Comment: String Amount : Integer Date : Date Approved: Bool Transfer 2 Transfer 3 Approved Approved Initialized Decision Pending Initialized Decision Pending Approved Approved Amount Date Comment Approved == true Amount Date Comment Approved == true Rejected Approved == false Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Assignment: Customer Assignment: Checking Account Manager Lifecycle Lifecycle Attributes Comment: String Attributes Amount : Integer Date : Date Approved: Bool Amount : Integer Date : Date Approved: Bool Comment: String
33
How can we implement support for such Ad-Hoc Changes?
34
Object Instance Level Changes
Transfer Lifecycle Attributes Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Amount : Integer Date : Date Approved: Bool Graphical Representation
35
Object Instance Level Changes
Transfer Lifecycle Attributes Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Amount : Integer Date : Date Approved: Bool Graphical Representation Log of Modeling Operations
36
Object Instance Level Changes
+Object (“Transfer”) +Attribute (“Amount”, Integer) +Attribute (“Date”, Date) +Attribute (“Approved”, Bool) +State (“Initialized”) +Step (Amount, Initialized) +Step (Date, Initialized) +Transition (Amount, Date) +State “DecisionPending” +Step (Approved, DecisionPending) +Predicate (Approved, Approved=T) +Predicate (Approved, Approved=F) +Transition (Date, Approved) +State (“Approved”) +State (“Rejected”) +Transition (Approved=T, Approved) +Transition (Approved=F, Rejected) Transfer Lifecycle Attributes Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Amount : Integer Date : Date Approved: Bool Graphical Representation Log of Modeling Operations
37
Object Instance Level Changes
+Object (“Transfer”) +Attribute (“Amount”, Integer) +Attribute (“Date”, Date) +Attribute (“Approved”, Bool) +State (“Initialized”) +Step (Amount, Initialized) +Step (Date, Initialized) +Transition (Amount, Date) +State “DecisionPending” +Step (Approved, DecisionPending) +Predicate (Approved, Approved=T) +Predicate (Approved, Approved=F) +Transition (Date, Approved) +State (“Approved”) +State (“Rejected”) +Transition (Approved=T, Approved) +Transition (Approved=F, Rejected) +Attribute (“Comment”, String) -Transition (Date, Approved) +Step (Comment, DecisionPending) +Transition (Date, Comment) +Transition (Comment, Approved) Insert new Attribute “Comment” Ad-Hoc Change Delta
38
Object Instance Level Changes
+Attribute (“Comment”, String) -Transition (Date, Approved) +Step (Comment, DecisionPending) +Transition (Date, Comment) +Transition (Comment, Approved) Ad-Hoc Change Delta Apply to Object Transfer Lifecycle Attributes Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Amount : Integer Date : Date Approved: Bool Comment: String
39
Object Instance Level Changes
+Attribute (“Comment”, String) -Transition (Date, Approved) +Step (Comment, DecisionPending) +Transition (Date, Comment) +Transition (Comment, Approved) Ad-Hoc Change Delta Apply to Object Transfer Lifecycle Attributes Approved Initialized Decision Pending Approved Amount Date Comment Approved == true Rejected Approved == false Amount : Integer Date : Date Approved: Bool Comment: String
40
Data Model Level Changes
+Attribute (“Comment”, String) -Transition (Date, Approved) +Step (Comment, DecisionPending) +Transition (Date, Comment) +Transition (Comment, Approved) Ad-Hoc Change Delta Apply to multiple Objects Transfer 1 Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : Integer Date : Date Approved: Bool Transfer 2 Transfer 3 Approved Approved Initialized Decision Pending Initialized Decision Pending Approved Approved Amount Date Amount Date Approved == true Approved == true Rejected Rejected Approved == false Approved == false Assignment: Customer Assignment: Checking Account Manager Assignment: Customer Assignment: Checking Account Manager Lifecycle Lifecycle Attributes Attributes Amount : Integer Date : Date Approved: Bool Amount : Integer Date : Date Approved: Bool
41
Data Model Level Changes
+Attribute (“Comment”, String) -Transition (Date, Approved) +Step (Comment, DecisionPending) +Transition (Date, Comment) +Transition (Comment, Approved) Ad-Hoc Change Delta Apply to multiple Objects Transfer 1 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Comment: String Amount : Integer Date : Date Approved: Bool Transfer 2 Transfer 3 Approved Approved Initialized Decision Pending Initialized Decision Pending Approved Approved Amount Date Comment Approved == true Amount Date Comment Approved == true Rejected Approved == false Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Assignment: Customer Assignment: Checking Account Manager Lifecycle Lifecycle Attributes Amount : Integer Date : Date Approved: Bool Comment: String Attributes Amount : Integer Date : Date Approved: Bool Comment: String
42
Migrating Running Instance Data
Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Approved == true 27000 03.06. Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : 27000 Date : 03.06. Approved: true
43
Migrating Running Instance Data
Amount : 27000 Date : 03.06. Approved: true Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes
44
Migrating Running Instance Data
Amount : 27000 Date : 03.06. Approved: true Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes
45
Migrating Running Instance Data
Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true 27000 03.06. Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : 27000 Date : 03.06. Approved: true
46
Migrating Running Instance Data
Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true 27000 03.06. Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : 27000 Date : 03.06. Approved: true Bank Transfer – Decision Amount € Date Comment* Approved True Submit
47
Migrating Running Instance Data
Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true 27000 03.06. “Fine” Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : 27000 Date : 03.06. Approved: true Comment: “Fine” Bank Transfer – Decision Amount € Date Comment* Fine. Approved True Submit
48
Migrating Running Instance Data
Transfer Instance#776123 Approved Initialized Decision Pending Approved Amount Date Comment Approved == true 27000 03.06. “Fine” Rejected Approved == false Assignment: Customer Assignment: Checking Account Manager Lifecycle Attributes Amount : 27000 Date : 03.06. Approved: true Comment: “Fine”
49
Summary Object-aware processes are split into many individual object instances Data driven logic allows re-executing objects after ad-hoc changes to ensure consistent process state Changes are applied as modeling action logs, can be applied to all objects of a certain type at once, same logic Effects on runtime state can be previewed by creating copies of objects and applying the ad-hoc changes to them first, warning users of state changes Anything that can be modelled can be applied as an ad-hoc change Outlook: Schema Evolution More Information => Demo Session!
50
Please feel free to ask your questions and give remarks!
Thank you for your kind attention! Please feel free to ask your questions and give remarks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.