Top Banner
WS-CDL: the GOOD the GOOD the BAD the BAD the UGLY the UGLY
22

The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

Jan 04, 2016

Download

Documents

Maurice Rose
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: the GOOD the GOOD the BAD the BAD the UGLY the UGLY

Page 2: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

Outline

• Composition Viewpoints

• WS-CDL overview

• Specific features

• Research activities• Composition

• Verification

• monitoring

Page 3: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

Viewpoints: orchestration

• OrchestrationOrchestration focuses on the behavior of a single participantsingle participant• Controller-based

• Process is locally enforced by the process’s logic

• BPEL

BuyerBuyer

decide PO

send PO

receive offer

2 buy or not 2 buy

send Ack

sendReject

Internal Behavior Observable Behavior

Page 4: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

SellerSeller

Viewpoints: behavioral interfaces

• Behavioral interfaceBehavioral interface defines the behavior of a single participant single participant observed from outside

• Hide the internal detail

• Composition is defined as a set of participants interfaces: bottom-up approachbottom-up approach

• Abstract BPEL

BuyerBuyer

send PO

receive offer

send Ack

sendReject

receive PO

send offer

receive Ack

receiveReject

Page 5: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

Viewpoints: choreography

• ChoreographyChoreography focuses on the global collaboration of a multiple multiple participantsparticipants• Peer-2-peer-based collaborations

• The business logic is distributed across the peers

• Global view on the composition: top-down approachtop-down approach

• WS-CDL

request PO

check availabie

provide offer

confirmcancel

payment

initiateshipment

B S

B

B

B B

S

S

S

S SS

W

W

P

Page 6: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL

• Pure Choreography 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

Page 7: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

CustomerCustomer

WS-CDL: actor view

BuyerBuyer

RequestingRequesting

PaymentPayment

AddresserAddresser

<Behavior>s:

WSDL interfaces

<Role>s:

Abstract Entities

ShipmentShipment

<Participant>s:

Physical Entities

Page 8: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: global view

CustomerCustomer

BuyerBuyer

AddresserAddresser

WarehouseWarehouseShipperShipper

ShopShop

SellerSeller

<Relationship>s:

Binary relations

<Channel>s:

Collaboration points

Page 9: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: channel

• Realizes Dynamic 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

Page 10: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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

Page 11: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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

Page 12: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: choreography lifecycle

initiating interaction

inactive enabled

Unsuccessfullycompleted

exception

Finished,complete=true

Successfullycompleted

Closed

finalized

handled

Page 13: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: behavior

• Structured activities• Sequence

• Parallel

• Choice

• Workunit

• Interactions

• Composition of choreographies• perform

• Basic activities• noAction

• silentAction

• finilize

• assign

Page 14: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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 relationship from to exchange* type action = request | respond send receive

timeout time

record when = before | after | to source target

Page 15: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: workunit

• Activity unit that prescribes reactionreaction rules rules 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)

Page 16: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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 common knowledgeknowledge on the variables information

• globalizedTrigger – set of expressions evaluated separately at different roles

• hasExceptionOccured / hasChoreographyCompleted / getChoreographyStatus

Page 17: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

WS-CDL: summary

• 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 coordinationinformation alignment, choreography coordination

• How to analyze choreography correctnesscorrectness and conformanceconformance

• How to generate correct behavioral interfacesgenerate correct behavioral interfaces

GOOD

BAD

UGLY

Page 18: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the 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

Page 19: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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

Provideoffer

cancel PO

S

B S

B

S B

Page 20: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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 alignmentcoordination and alignment requirements – application of KL techniques

Page 21: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

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

• …

• …

• …

Page 22: The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.

QuestionsQuestions??