How Artifacts allow to describe processes where multiple instances of data objects interact with each other. A talk given by Dirk Fahland in the group of David Harel at the Weizmann Institute of Science.
2. activities to reach a specific goal, e.g. deliver books involves several participants any kind of process (not tied to business)goal = termination in a specific state PAGE 1 A Distributed Process
3. activities to reach a specific goal, e.g. deliver books involves several participants any kind of process (not tied to business)goal = termination in a specific state PAGE 2 A Distributed Process
4. activities to reach a specific goal, e.g. deliver books involves several participants any kind of process (not tied to business)goal = termination in a specific state PAGE 3 A Distributed Process
5. PAGE 4 Services: Process Modularity order service an environment has an interface assumption: unconstrained and slower than services i.e. services wait for interaction which eventually happens wiring to compose services
6. PAGE 5 A process that needs multiple instances 1 2
7. PAGE 6 A process that needs multiple instances 2 1 complex relations between service instances
8. PAGE 7 A process that needs multiple instances 2 1
9. PAGE 8 A process that needs multiple instances 2 1
10. PAGE 9 A process that needs multiple instances 2 1 complex relations between service instances
11. Artifacts Creating a complete artifact model A new paradigm Research problems PAGE 10 Describe Multi-Instance Processes
12. delivery tour order load create PAGE 11 Describe Services split deliver next retry undeliv. notify finish bill
13. PAGE 12 An example execution service model: incomplete delivery tour order c s n b load create l deliv1 r f d n l f d u n deliv2 split c s n b deliver next retry undeliv. notify finish bill
14. Data each process is founded in its (data) objects an order a delivery tour objects can be in complex relationships PAGE 13 The reason of complex relations + order delivery tour * * follow-up *
15. encapsulate each class of objects in a service service behavior = object life-cycle service interface = object interaction delivery tour order PAGE 14 Artifacts life-cycle life-cycle + order delivery tour * * follow-up * [Nigam, Caswell 2003], [Cohn, Hull 2009]
16. objects in complex relationships relationships lift to service wiring:how many instances interact with each other PAGE 15 Service wiring inherits relationships delivery tour order + * life-cycle life-cycle * + * order delivery tour
17. delivery tour load deliver next retry undeliv. PAGE 16 Cardinalities between events order create * * each occurrence of split 1..n occurrence of load each occurrence of load 0..n occurrences of split split + 1 1 1 notify * finish bill * each occurrence of deliver an occurrence of bill each occurrence of bill 0..n occurrences of deliver
18. PAGE 17 Cardinalities constrain allowed executions delivery tour order c s n b 2nd packagenot returned load create * * l d f n r deliv1 l u f n d deliv2 split + c s n b deliver next 1 retry undeliv. 1 1 notify violatedconstraint * finish bill *
19. PAGE 18 Cardinalities are not enough incomplete model delivery tour order c s n b 2nd packageincomplete load create * * l d f n r deliv1 l f d deliv2 split + c s n b deliver next 1 retry undeliv. 1 1 notify * finish bill *
20. Artifacts Creating a complete artifact model Active and passive artifacts Research problems PAGE 19 Outline
21. PAGE 20 Conversation c s n b l d f n r deliv1 l u f n d deliv2 c s n b a set of corresponding communication events between a fixed set of instances C1: order1, delivery1 C2: order2, delivery1, delivery2 C3: order1, delivery2 conversations can overlap
22. by interaction scenarios between instances PAGE 21 Specify Conversations S0 S1 S2 orderX deliveryY orderX deliveryY orderX deliveryY split split split load load load deliver undeliv. bill bill
23. by interaction scenarios between instances PAGE 22 Specify Conversations S4 S2 orderX deliveryY orderX deliveryY deliveryZ split split load load retry undeliv. load bill deliver bill
24. PAGE 23 Synthesize Conversation Artifact package split 1 load 1 orderX deliveryY orderX deliveryY orderX deliveryY retry 1 split split split load load load deliver 1 bill 1 undeliv. 1 deliver deliver deliver bill bill bill scenarios of the conversation artifact model of the conversation
25. PAGE 24 Refine Process Model delivery tour order load create * * package split 1 load 1 split + retry deliver next 1 1 deliver 1 retry undeliv. 1 1 bill 1 notify undeliv. 1 * finish bill *
27. Artifacts Creating a complete artifact model Active and passive artifacts Research problems PAGE 26 Outline
28. PAGE 27 1st Observation: Refined Class Model + + + 1 * order delivery tour package
29. PAGE 28 2nd Observations: Active and Passive + + + 1 * order delivery tour package active active passive
30. PAGE 29 Active and Passive Artifacts Active Active Active Active Active Active Artifact “service”: activities, performed by agents driving the process,e.g. split an order, write an invoice, … can communicate (asynchronously)
31. PAGE 30 Active and Passive Artifacts Active Active Active passive passive Active passive Active “channel” Active Artifact “service”: activities, performed by agents driving the process,e.g. split an order, write an invoice, … can communicate (asynchronously) Passive Artifact “data object”: attributes, can be updated, e.g. a package order of updates is constrained, triggered from outside restricts interaction between several active artifact instances
32. PAGE 31 Services and Artifacts Service Service Service artifact artifact Service artifact Service “channel” Service activities, performed by agents driving the process,e.g. split an order, write an invoice, … can communicate (asynchronously) Artifact = “data object” attributes, can be updated, e.g. a package order of updates is constrained, triggered from outside restricts interaction between several service instances
33. PAGE 32 Relation to Behavioral Programming Artifact package restricts service behavior of order and delivery package load only after split, i.e. load is blocked in any other state split 1 load 1 listen for event load retry 1 deliver 1 bill 1 listen for event split undeliv. 1
34. PAGE 33 Relation to Behavioral Programming Artifact package restricts service behavior of order and delivery package split in order advances several package instances order create split 1 load 1 retry 1 split + deliver 1 bill 1 notify undeliv. 1 bill + bill in orderonly after all package instances listen for bill event
35. Artifacts Creating a complete artifact model Active and passive artifacts Research problems PAGE 34 Outline
36. PAGE 35 1) Artifact Synthesis S1 S2 package split 1 load 1 S3 orderX deliveryY orderX deliveryY orderX deliveryY service choreography retry 1 split split split load load load deliver 1 bill 1 undeliv. 1 deliver deliver deliver bill bill bill artifact model of the conversation scenarios of the conversation
37. PAGE 36 1b) Service + Artifact Synthesis S S S A orderX deliveryY orderX deliveryY orderX deliveryY A split split split load load load S A S deliver deliver deliver scenarios between objects process model of services + artifacts bill bill bill
38. PAGE 37 2) Service Synthesis solved for single-instance setting [Lohmann, Wolf 2010] delivery tour order “by order” “by delivery” load create * * package split 1 load 1 split + retry 1 deliver next 1 deliver service models 1 retry undeliv. 1 1 bill 1 notify s.t. artifacts + services always reach the goal states undeliv. 1 A1 A1 A1 A1 A1 A1 A C G + + * finish bill annotated artifacts behavioralconstraints * goal states(e.g. bill occurred)
39. 3) Adapter Synthesis given services and artifactswhere composition not always terminates synthesize an adapter (artifact or service)s.t. the extended composition terminates 4) Service/Artifact Discovery given an actual information system: writes log files synthesize artifacts + servicess.t. the composition describes behavior in the log files PAGE 38 More Problems
40. Process = Services + Artifacts paradigm to capture multi-instance processes based on an object model one artifact describes a conversation between several service instances bears similarities to behavioral programming Research Problems extend known problem by multi-instance dimension PAGE 39 Wrap Up