Presentation is loading. Please wait.

Presentation is loading. Please wait.

Enabling Ad-Hoc Changes to Object-aware Processes

Similar presentations


Presentation on theme: "Enabling Ad-Hoc Changes to Object-aware Processes"— Presentation transcript:

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?

12

13

14

15

16

17

18

19

20

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!


Download ppt "Enabling Ad-Hoc Changes to Object-aware Processes"

Similar presentations


Ads by Google