Dirk Fahland<br />about.me/dirk.fahland<br />ArtifactsProcesseswith Multiple Instances<br />
activities to reach a specific goal, e.g. deliver books<br />involves several participants<br />any kind of process (not t...
activities to reach a specific goal, e.g. deliver books<br />involves several participants<br />any kind of process (not t...
activities to reach a specific goal, e.g. deliver books<br />involves several participants<br />any kind of process (not t...
PAGE 4<br />Services: Process Modularity<br />order<br />service<br />an environment<br />has an interface <br />assumptio...
PAGE 5<br />A process that needs multiple instances<br />1<br />2<br />
PAGE 6<br />A process that needs multiple instances<br />2<br />1<br />complex relations between service instances<br />
PAGE 7<br />A process that needs multiple instances<br /><br />2<br />1<br />
PAGE 8<br />A process that needs multiple instances<br /><br />2<br />1<br />
PAGE 9<br />A process that needs multiple instances<br /><br /><br />2<br />1<br /><br />complex relations between serv...
Artifacts<br />Creating a complete artifact model<br />A new paradigm<br />Research problems<br />PAGE 10<br />Describe Mu...
delivery tour<br />order<br />load<br />create<br />PAGE 11<br />Describe Services<br />split<br />deliver<br />next<br />...
PAGE 12<br />An example execution<br />service model: incomplete<br />delivery tour<br />order<br />c<br />s<br />n<br />b...
Data<br />each process is founded in its (data) objects<br />an order<br />a delivery tour<br />objects can be in complex ...
encapsulate each class of objects in a service<br />service behavior = object life-cycle<br />service interface = object i...
objects in complex relationships<br />relationships lift to service wiring:how many instances interact with each other<br ...
delivery tour<br />load<br />deliver<br />next<br />retry<br />undeliv.<br />PAGE 16<br />Cardinalities between events<br ...
PAGE 17<br />Cardinalities constrain allowed executions<br />delivery tour<br />order<br />c<br />s<br />n<br />b<br />2nd...
PAGE 18<br />Cardinalities are not enough<br />incomplete model<br />delivery tour<br />order<br />c<br />s<br />n<br />b<...
Artifacts<br />Creating a complete artifact model<br />Active and passive artifacts<br />Research problems<br />PAGE 19<br...
PAGE 20<br />Conversation<br />c<br />s<br />n<br />b<br />l<br />d<br />f<br />n<br />r<br />deliv1<br />l<br />u<br />f<...
by interaction scenarios between instances<br />PAGE 21<br />Specify Conversations<br />S0<br />S1<br />S2<br />orderX<br ...
by interaction scenarios between instances<br />PAGE 22<br />Specify Conversations<br />S4<br />S2<br />orderX<br />delive...
PAGE 23<br />Synthesize Conversation Artifact<br />package<br />split<br />1<br />load<br />1<br />orderX<br />deliveryY<b...
PAGE 24<br />Refine Process Model<br />delivery tour<br />order<br />load<br />create<br />*<br />*<br />package<br />spli...
interaction: synchronouswith dynamic number of events<br />PAGE 25<br />Refine Process Model<br />+<br />
Artifacts<br />Creating a complete artifact model<br />Active and passive artifacts<br />Research problems<br />PAGE 26<br...
PAGE 27<br />1st Observation: Refined Class Model<br />+<br />+<br />+<br />1<br />*<br />order<br />delivery tour<br />pa...
PAGE 28<br />2nd Observations: Active and Passive<br />+<br />+<br />+<br />1<br />*<br />order<br />delivery tour<br />pa...
PAGE 29<br />Active and Passive Artifacts<br />Active<br />Active<br />Active<br />Active<br />Active<br />Active Artifact...
PAGE 30<br />Active and Passive Artifacts<br />Active<br />Active<br />Active<br />passive<br />passive<br />Active<br />p...
PAGE 31<br />Services and Artifacts<br />Service<br />Service<br />Service<br />artifact<br />artifact<br />Service<br />a...
PAGE 32<br />Relation to Behavioral Programming<br />Artifact package restricts service behavior of order and delivery<br ...
PAGE 33<br />Relation to Behavioral Programming<br />Artifact package restricts service behavior of order and delivery<br ...
Artifacts<br />Creating a complete artifact model<br />Active and passive artifacts<br />Research problems<br />PAGE 34<br...
PAGE 35<br />1) Artifact Synthesis<br />S1<br />S2<br />package<br />split<br />1<br />load<br />1<br />S3<br />orderX<br ...
PAGE 36<br />1b) Service + Artifact Synthesis<br />S<br />S<br />S<br />A<br />orderX<br />deliveryY<br />orderX<br />deli...
PAGE 37<br />2) Service Synthesis<br />solved for single-instance setting [Lohmann, Wolf 2010]<br />delivery tour<br />ord...
3) Adapter Synthesis<br />given services and artifactswhere composition not always terminates<br />synthesize an adapter (...
Process = Services + Artifacts<br />paradigm to capture multi-instance processes based on an object model<br />one artifac...
Dirk Fahlandabout.me/dirk.fahland<br />ArtifactsProcesseswith Multiple Instances<br />
Upcoming SlideShare
Loading in...5
×

Artifacts - Processes with Multiple Instances

551

Published on

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.

Published in: Education, Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
551
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Artifacts - Processes with Multiple Instances

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

×