PPT - ASTRO

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
•
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
B
request
PO
S
check
availabie
S
provide
offer
S
W
B
B
S
P
payment
cancel
B
confirm
S
B
S
S
initiate
shipment
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:
<Behavior>s:
Physical Entities
WSDL interfaces
Customer
Buyer
Requesting
Payment
Addresser
Shipment
<Role>s:
Abstract Entities
WS-CDL: global view
Shop
Customer
Buyer
Seller
Addresser
Warehouse
Shipper
<Channel>s:
<Relationship>s:
Binary relations
Collaboration points
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
isolation = true | false
root = true | false
coordination = true | false
relationship+
variableDefinitions?
choreography*
ActivityDefinition
exceptionBlock
finalizerBlock
-
rule for explicit completion
visibility of parallel modifications
main or subordinate
external coordination is used
-
participating relations
local variables
local choreographies
behavior
WS-CDL: choreography lifecycle
exception
handled
Unsuccessfully
completed
initiating
interaction
inactive
enabled
Finished,
complete=true
Closed
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
relationship from to
exchange* type
action = request | respond
send
receive
timeout
time
record
when = before | after | to
source target
WS-CDL: workunit
• Activity unit that prescribes reaction rules that specify constraints
to be satisfied to made normal/abnormal progress
•
Combines data-driven and event-driven
reaction rules
•
Refer to data events
workunit
name
guard = boolean expression
repetition = boolean expression
block = true | false
• Blocking patterns
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
knowledge on the variables information
•
globalizedTrigger – set of expressions evaluated separately at different roles
•
hasExceptionOccured / hasChoreographyCompleted / getChoreographyStatus
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 coordination
•
How to analyze choreography correctness and conformance
•
How to generate correct behavioral interfaces
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
B
B
cancel
PO
S
request
PO
S
S
Provide
offer
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