1 / 42

Formal Models for Choreography and Orchestration

CS 290C: Formal Models for Web Software Lectures 15: Choreography Modeling with Message Sequence Charts and Collaboration Diagrams Instructor: Tevfik Bultan. Formal Models for Choreography and Orchestration.

Télécharger la présentation

Formal Models for Choreography and Orchestration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 290C: Formal Models for Web Software Lectures 15: Choreography Modeling with Message Sequence Charts and Collaboration Diagrams Instructor: Tevfik Bultan

  2. Formal Models for Choreography and Orchestration • Existing modeling formalisms for behavior and interaction modeling have been applied to modeling of choreography and orchestration • Some examples are: • Use of message sequence charts (UML sequence diagrams) for choreography modeling • Use of UML collaboration diagrams for choreography modeling • Use of process algebras for orchestration modeling • Use of Petri nets for orchestration modeling

  3. Modeling and Analysis • Typically this type of modeling languages are supported by analysis and verification tools • So using these modeling languages for choreography or orchestration specification also leads to analysis and verification tools

  4. Using Message Sequence Charts for Choreography • An MSC shows a particular sequence of messages exchanged between a number of processes (or objects) • MSCs show behavior by showing the ordering of message exchanges • This is also what we expect a choreography specification to do

  5. MSCs • An MSC shows the ordering of message send and receive events • The lifeline represents the time flow and time progresses from top of the page to the bottom of the page Seller MarketPlace Buyer offerProduct requireProduct Lifeline Message receive Message send

  6. MSC extensions • MSCs can be extended with more constructs to specify conditional or iterative behavior

  7. Sequence Diagrams • Focus of control (or activation) can be shown in sequence diagrams as a thin rectangle put on top of the lifeline of an object • Shows the period of time during which the given object is in control of the flow • From an implementation point of view, you can think of it as showing how long an activation record stays in the control stack • It is optional to use focus of control rectangles in a sequence diagram • use it when it adds to clarity :Order :ProductOrder :StockItem *prepare() check() Iteration [check=“true”] remove() message condition focus of control or activation lifeline

  8. MSC Frames Client Bank AccountDB • Frames can be used to specify conditional behavior (as seen in the example), loops, optional behavior etc. in sequence diagrams withdrawal requestBalance balance alt [balance>=withdrawal] updateAccount [else] insufficientFund

  9. MSC Realizability • The realizability problem we mentioned for conversation protocols also exist for MSCs • An MSC may not be realizable, • There may not be any possible implementation for the peers that strictly conform to the event orderings given by the MSC specification

  10. MSC Realizability A B C D   • An unrealizable MSC

  11. MSC Realizability • There are some results that show that • Realizability of MSCs can be determined • For unrealizable MSCs one can determine the implied scenarios when added to the MSC specfication, makes the set of MSCs realizable

  12. MSCs and Implied Scenarios • The scenario specified by one of these MSCs implies the scenario specified by the other one Seller MarketPlace Buyer Seller MarketPlace Buyer offerProduct requireProduct offerProduct requireProduct

  13. MSCs and MSC graphs • MSCs are useful for visualizing message exchanges • However, sometimes a single MSC may not be able to express all possible interactions • There are generalizations of MSCs which allow combination of MSCs as nodes in a graph • Individual MSCs are joined with transitions • When two MSCs are joined with a transition, this means that after the interaction in the source MSC is finished the interactions in the destination MSC will be executed

  14. MSC graphs A B  • An MSC vs an MSC graph • MSC graphs can specify infinite sequences of interactions • For some versions of the MSC graphs the realizability problem is undecidable A B   

  15. MSCs and Choreography • MSCs can be a useful tool for specification of choreographies • After writing some MSC specifications for a choreography, we can use automated analysis techniques for MSCs to determine the implied scenarios • This analysis will identify any interaction sequences that are not yet specified but implied by the existing specification

  16. MSC Realizability • Earlier work on realizability of MSCs and MSC extensions can be applied to choreography analysis • If a choreography is specified using an MSC, then these results can be applied to the MSC specification to determine the realizability of the MSC specification

  17. An Analysis Tool: LTSA-WS • LTSA-WS is a model based web service analysis tool • Supports: • Specification of choreographies using MSCs • Specification of orchestrations in a process algebra called FSP • Supports BPEL to FSP translation • Supports synthesis of FSP specifications from MSCs • Allows the developer to check the correspondence between the BPEL specification and the MSC specification

  18. Choreography specification with Collaboration Diagrams • It is also possible to use collaboration diagrams for specification of choreographies • Collaboration diagrams also specify interactions among processes but they provide a different perspective compared to MSCs

  19. Example Sequence Diagram :OrderEntryWindow :Order :ProductOrder :StockItem prepare() *prepare() check() [check=“true”] remove() needsToReorder() [needsToReorder=“true”] <<create>> :ReorderItem [check=“true”] <<create>> :DeliveryItem

  20. Corresponding Collaboration Diagram Sequence numbers are used to show the time ordering among the messages object :OrderEntryWindow 1:prepare() message sequence number link :Order 1.1.2.1:needsToReorder() 1.1:*prepare() :ProductOrder :StockItem 1.1.1:check() 1.1.2:[check==true]remove() 1.1.2.2:new 1.1.3:[check==true]new :DeliveryItem :ReorderItem

  21. Collaboration Diagrams and Choreography • Collaboration Diagrams can also be used as a visual choreography specification language • Moreover, collaboration diagrams can be converted to state machine models and analyzed

  22. An Example • Assume four peers (individual services): • Customer, Store, CDSupplier, BookSupplier • Workflow: • Customer sends an order to the Store • Store checks the availability of the CDs and the books in the order by sending a cdInquiry message to CDSupplier and a bookInquiry message to BookSupplier • CDSupplier and BookSupplier send the cdAvailability and bookAvailibility back to the Store • Store sends orderReply to the Customer

  23. A Model for Composite Web Services • A composite web service consists of • a finite set of peers • Customer, Store, CDSupplier, BookSupplier • and a finite set of messages • Customer  Store: order • Store  CDSupplier: cdInquiry • Store  BookSupplier: bookInquiry • CDSupplier  Store: cdAvailability • BookSupplier  Store: bookAvailability • Store  Customer: orderReply

  24. Specifying Conversations • There are lots of allowed conversations: • There are also lots of un-allowed conversations: … order cdInq cdAvail … order bookInq bookAvail … order bookInq cdInq … order cdInq bookInq … order cdAvail cdInq … order bookInq cdAvail … bookInq cdInq cdAvail

  25. Specifying Conversations via Collaboration Diagrams must precede sequence label :Customer message 1/A1:cdInquiry :CDSupplier 1:order A2,B2/2:orderReply A2:cdAvailability :Store 1/B1:bookInquiry :BookSupplier B2:bookAvailability

  26. More On Collaboration Diagrams sequence label must precede message A2, B2 / 2 : orderReply asynchronous communication conditional send cdInquiry [has CD] synchronous communication iterative send order*

  27. Dependency Among Message Send Events • Message send events are ordered based on two rules • Implicit: The sequence labels that have the same prefix must be ordered based on their sequence number • Explicit: The events listed before “/” must precede the current event initial event 1:order 1/A1:cdInquiry 1/B1:bookInquiry A2:cdAvailability B2:bookAvailability A2,B2/2:orderReply final event

  28. 1:order Automata (Conversation Protocol) Construction {1,2,A1,A2,B1,B2} 1/A1:cdInquiry 1/B1:bookInquiry 1:order A2:cdAvailability B2:bookAvailability {2,A1,A2,B1,B2} A1:cdInquiry B1:bookInquiry A2,B2/2:orderReply {2,A2,B1,B2} {2,A1,A2,B2} B2:bookAvailabililty A2:cdAvailability B1:bookAvailability A1:cdInquiry {2,B1,B2} {2,A2,B2} {2,A1,A2} A2:cdAvailability B2:bookAvailability B1:bookInquiry A1:cdInquiry {2,B2} {2,A2} :Customer A2:cdAvailability B2:bookAvailability 1:order A2,B2/2:orderReply {2} 1/A1:cdInquiry A2:cdAvailability :CDSupplier 2 : orderReply :Store  :BookSupplier 1/B1:bookInquiry B2:bookAvailability

  29. Implementation with Finite State Machines Store Customer ?order ?orderReply !cdInquiry !bookInquiry !order !bookInquiry !cdInquiry CDSupplier ?cdAvailability ?bookAvailability !cdAvailability !bookInquiry !cdInquiry ?cdInquiry ?cdAvailability ?bookAvailability ?bookAvailability BookSupplier ?cdAvailability !bookAvailability !orderReply ?bookInquiry

  30. Realizability of Collaboration Diagrams • Not all collaboration diagrams are realizable! • It is possible to specify interactions that cannot be realized by any peer implementation • This is a problem! • Assume that we want to specify how several services should interact with each other • If we write a specification that is not realizable • the implementation will not be faithful to the specification no matter what we do

  31. Realizability of Collaboration Diagrams Not Realizable Realizable 1:order 1:order :Customer :Store :Customer :Store 2:orderInfo 2:ship :Shipping :Depot 3:ship :Shipping :Depot

  32. Realizability of Collaboration Diagrams Not Realizable Realizable 1:order 1:order :Customer :Store :Customer :Store 2:bill 3:bill 2:orderInfo :Accounting :Accounting

  33. A Sufficient Condition for Realizability • We call a send event e well informed • If e is an initial event • Otherwise, let e’ be an immediate predecessor of e • If e’ is a synchronous send or not conditional or iterative • sender for e should be either the receiver or sender for e’ • If e is an asynchronous send and conditional or iterative • sender for e should be the sender for e’, • e should not be conditional or iterative, • e and e’ should not send the same message • A collaboration diagram is realizable if all its events are well-informed

  34. Realizability of Collaboration Diagrams Not Realizable Realizable 1:order 1:order :Customer :Store :Customer :Store 2:orderInfo 2:ship :Shipping :Depot 3:ship :Shipping :Depot this send event is not well-informed

  35. Realizability of Collaboration Diagrams Not Realizable Realizable 1:order 1:order :Customer :Store :Customer :Store this send event is not well-informed 2:bill 3:bill 2:orderInfo :Accounting :Accounting

  36. Collaboration Diagram Extensions • Collaboration Diagram Sets • The conversation set if the union of the conversation sets of each collaboration diagram in the collaboration diagram set • Collaboration Diagram Graphs • Conversation set is obtained by concatenating the conversation sets of different collaboration diagrams according to the collaboration diagram graph

  37. Collaboration Diagram Sets • Collaboration diagram sets are more expressive than individual collaboration diagrams 1:x 2:y :P :Q PQ: x PQ: z 3:z PQ: y PQ: x 2:x 3:y PQ: z PQ: y :P :Q 1:z Corresponding conversation protocol This collaboration diagram set specifies a set of interactions that cannot be specified by any single collaboration diagram

  38. Collaboration Diagram Graphs • Collaboration diagram graphs are more expressive than collaboration diagram sets PQ: x 1:x :P :Q  2:y QP: y Corresponding conversation protocol This collaboration diagram graph specifies a set of interactions that cannot be specified by any collaboration diagram set

  39. Analyzing Collaboration Diagram Extensions • Realizability of collaboration diagram sets and collaboration diagram graphs cannot be determined using the well-informed event rule we discussed earlier • However, collaboration diagram sets and collaboration diagram graphs can be converted to conversation protocols • We can use the earlier results on realizability of conversation protocols to determine realizability of collaboration diagram sets and collaboration diagram graphs

  40. A Tool for Analyzing Collaboration Diagrams • The tool is implemented as an Add-In to Sparx Systems Enterprise Architect UML Editor Promela Translator LTL Model Checking with SPIN Dependency Graph Constructor Automata Constructor Peer Synthesizer Collaboration Diagrams Realizability Analyzer Conversation Protocol Translator Realizability Analysis with WSAT

  41. Experiments

  42. Order Item Example orderWindow: OrderEntryWindow 1:prepareOrder order:Order 2:prepareOrderLine 5:needToReorder 3:check macallanLine: OrderLine macallanStock: StockItem 4:remove? 6:newReOrder 7:newDelivery? deliveryItem: DeliveryItem reorderItem: ReOrderItem

More Related