Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Artifacts - Processes with Multiple Instances

917 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Bildung, Business, Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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 />

×