220 likes | 362 Vues
WS-CDL: the GOOD the BAD the UGLY. Outline. Composition Viewpoints WS-CDL overview Specific features Research activities Composition Verification monitoring. Viewpoints: orchestration. Orchestration focuses on the behavior of a single participant
E N D
Outline • Composition Viewpoints • WS-CDL overview • Specific features • Research activities • Composition • Verification • monitoring
Viewpoints: orchestration • Orchestration focuses on the behavior of a single participant • Controller-based • Process is locally enforced by the process’s logic • BPEL Internal Behavior Observable Behavior Buyer decide PO send PO 2 buy or not 2 buy receive offer send Ack send Reject
Viewpoints: behavioral interfaces • Behavioral interface defines the behavior of a single participant observed from outside • Hide the internal detail • Composition is defined as a set of participants interfaces: bottom-up approach • Abstract BPEL Buyer Seller send PO receive PO receive offer send offer send Ack receive Ack send Reject receive Reject
Viewpoints: choreography • Choreography focuses on the global collaboration of a multiple participants • Peer-2-peer-based collaborations • The business logic is distributed across the peers • Global view on the composition: top-down approach • WS-CDL request PO check availabie B S S W provide offer S B B S P payment cancel confirm initiate shipment B S B S S W
WS-CDL • Pure Choreography language • Stateful model of composition • Definition of both Data Flow and Control Flow • Rich and easy-to-use modeling language • Recursive compositionality – reuse • Formal basis – Global Model Formalism • Declarative coordination, information alignment, compensation, exception handling
WS-CDL: actor view <Participant>s: Physical Entities <Behavior>s: WSDL interfaces Customer Buyer Requesting Payment Addresser Shipment <Role>s: Abstract Entities
WS-CDL: global view Shop Customer Seller Buyer Addresser Warehouse Shipper <Channel>s: Collaboration points <Relationship>s: Binary relations
WS-CDL: channel • Realizes Dynamic point of collaboration • Where and how messages are sent • Role of the target participant, reference to the participant instance • Identity of channel, identity of conversation Channel name action = request | respond | request-respond passing= list of passing channels role = target of the channel reference = variable storing the reference to the participant identity = unique ID descriptors – correlation
WS-CDL: data view • Data types • XML Schema • Variables • Described in the context of the choreography • local to roles • Variable usage • Information exchange capturing • State capturing • Channel capturing • Exception capturing • Availability • Result of interaction • Interaction recording • Locally through assignment • Tokens and token locators Variable name type mutable = true | false free = true | false silent = true | false roles = list of roles
WS-CDL: choreography view • Collaboration unit of work • Combines and orders activities • Scopes variables • Recovery: exceptions, compensations Choreography name complete = boolean expression - rule for explicit completion isolation = true | false - visibility of parallel modifications root = true | false - main or subordinate coordination = true | false - external coordination is used relationship+ - participating relations variableDefinitions? - local variables choreography* - local choreographies ActivityDefinition - behavior exceptionBlock finalizerBlock
WS-CDL: choreography lifecycle exception handled Unsuccessfully completed initiating interaction Finished, complete=true Closed inactive enabled finalized Successfully completed
WS-CDL: behavior • Structured activities • Sequence • Parallel • Choice • Workunit • Interactions • Composition of choreographies • perform • Basic activities • noAction • silentAction • finilize • assign
WS-CDL: interaction • Global communication collaboration • Defines information exchanges • Defines possibility for timeout • Declares the requirements for the information alignment interaction name channel operation align = true | false initiate = true | false relationshipfromto exchange* type action = request | respond send receive timeout time record when = before | after | to sourcetarget
WS-CDL: workunit • Activity unit that prescribes reactionrules that specify constraints to be satisfied to made normal/abnormal progress • Combines data-driven and event-driven reaction rules • Refer to data events • Blocking patterns workunit name guard = boolean expression repetition = boolean expression block = true | false Blocking when (guard) { body }until (not repetition) Non-blocking while (guard) { body }until (not repetition)
WS-CDL: expressions • Expressions • XPath 1.0 • WS-CDL specific • WS-CDL Functions • Current time/date functions, channel references • hasDurationPassed / hasDeadlinePassed – measure time from the beginning of the condition evaluation • getVariable / isVariableAvaileable – get value/check the data event • variablesAligned – whether the participants of the relationship have common knowledgeon the variables information • globalizedTrigger – set of expressions evaluated separately at different roles • hasExceptionOccured / hasChoreographyCompleted / getChoreographyStatus
WS-CDL: summary GOOD • Expressive and rich language for modeling global view of the composition • W3C standardization • Formal basis • Still work-in-progress • Draft state • No support from MS and IBM • Not fully formalized – parallel formalization effort • A lot of open problems • How, where, and when the coordination protocols are to be used • How to ensure/check information alignment, choreography coordination • How to analyze choreography correctness and conformance • How to generate correct behavioral interfaces BAD UGLY
WS-CDL: composition task • Given • a set of behavioral interfaces • Choreography specification • Set of predefined requirements, like alignment, no message loss, atomicity etc. • Generate • A set of executable processes • with a set of low-level coordination processes • Apply KL techniques • For ensuring information alignment: K(role1.var = role2.var) • For management of arbitrary data types
WS-CDL: verification task • Given • Choreography specification • Set of predefined requirements, like alignment, no message loss, atomicity etc. • Verify that the choreography is realizable • It is possible to generate peers that, collaborating in a distributed manner, will conform to the specification • Challenges • Services are loosely-coupled • Message crossing is possible • Message losses are possible • Arbitrary communication mechanism request PO B S cancel PO Provide offer B S S B
WS-CDL: verification task (2) • Given • Choreography specification • Set of predefined requirements, like alignment, no message loss, atomicity etc. • And set of peer implementations (e.g. BPEL processes, coordination protocol) • Verify that the composition of implementations conforms • The requirements are satisfied (e.g. alignment is guaranteed, coordination is guaranteed) • Challenges • Arbitrary communication mechanism • Message crossing and losses are possible • Formalization and verification of coordination and alignment requirements – application of KL techniques
WS-CDL: monitoring task • Given • a set of deployed participants • Choreography specification • Set of predefined requirements, like alignment, no message loss, atomicity etc. • Run-time check • Choreography conformance • … • … • …
? Questions