Web Services Choreography Description Language - PowerPoint PPT Presentation

About This Presentation
Title:

Web Services Choreography Description Language

Description:

Specify a declarative language that describes collaborations ... Document types, toke types, toke locator types, role types, relationship types, channel types ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 43
Provided by: list6
Learn more at: https://lists.w3.org
Category:

less

Transcript and Presenter's Notes

Title: Web Services Choreography Description Language


1
Web Services Choreography Description Language
W3C Choreography WG 21 Sept 2003
Jeff Mischkinsky jeff.mischkinsky_at_oracle.com Nick
olas Kavantzas nickolas.kavantzas_at_oracle.com Goran
Olsson goran.olsson_at_oracle.com
2
Agenda
  • Goal
  • Web Services Platform
  • Web Services Choreography Description Language

3
Goal
  • Specify a declarative language that describes
    collaborations of Web Services participants by
    defining their complementary observable behavior

4
Current Web Services platform
  • Core communication framework bridging
    heterogeneous computational models
  • Loosely-coupled, stateless
  • Exchange of type checking information

5
Emerging Web Services platform
6
Emerging Web Services platform
  • Reliable Messaging layer
  • Guaranteed delivery
  • Message ordering
  • Exactly once
  • Context, Coordination, Transaction layer
  • Bridge heterogeneous coordination protocols
  • Business Process Language layer
  • Implements Web Services based applications
  • Models non-observable (internal) behavior
  • BPEL, BPML, XPDL
  • Define control flows
  • Manage private data

7
WS-CDL Design Goals
  • Model the complementary observable behavior of
    Web Services participating in a common business
    transaction
  • Based on a formal model
  • pi-calculus variation

8
WS-CDL Concepts
  • Web Services participants interact and align
    their shared information
  • Synchronized document exchanges
  • Progress is guarded by commonly defined ordering
    rules
  • Interactions with common behavioral
    characteristics are combined to form a behavioral
    unit
  • Enables re-usability in different business
    contexts

9
WS-CDL Concepts
  • Information Typing
  • Identifying Coupling of WS participants
  • Information driven collaboration
  • State
  • Activities
  • Reaction
  • Choreography
  • Packaging

10
Information Typing
  • Document type
  • Aliases WSDL message type, XSD type, XSD element
  • Supports future type systems
  • Token type
  • Specify name and type of piece of information
  • Uses WS-CDL Document type of the attribute
  • Token Locater type
  • Specify rules for selecting a piece of
    information
  • WS-CDL Document type
  • WSDL message part
  • XPATH query of document

11
Static coupling Roles Relationships
  • Role type
  • Specify the observable behavior, in terms of the
    operations, a WS participant can perform
  • One or more WSDL interface type(s) named as
    behavior type
  • Relationship type
  • Specify the mutual commitments, in terms of the
    Roles, two WS participants are required to
    provide
  • Two WSDL interface types

12
Dynamic coupling Channel
  • Identify a contact-point, through which two WS
    participants interact
  • A contact-point describes
  • the service type of a participant, using Token
    type(s) within a reference marker
  • the business process type implementing a WS
    participant, using Token type(s) within an
    identity marker
  • Identify a conversation between two or more WS
    participants
  • A conversation groups a set of related document
    exchanges, using Token type(s) within an identity
    marker

13
State
  • Capture information shared between WS
    participants
  • Affect the progress of their common business
    transaction
  • State definitions
  • Define Documents
  • Typed with a documentType
  • Define Channels
  • Typed with a channel type
  • Specify the Role of the WS participant the state
    resides in

14
Activities Interact
  • Enable WS participants to communicate and align
    their shared state
  • Synchronized document exchange between two roles
    within a relationship
  • Atomic, request accept of an operation through
    a channel
  • WSDL One way or request-response
  • Information flow
  • request direction fromRole towards toRole
  • response direction toRole towards fromRole

15
Activities Interact (2)
  • Align state that resides in one role with state
    that resides in the other role
  • The aligned states are made available at the two
    roles

16
Activities
  • Declare
  • Create and make available new state at a Role
  • Repeat
  • Sleep
  • Inact
  • Compensate

17
Reaction
  • Guard a set of activities
  • Express interest on the availability of zero, one
    or more state information
  • When the state is/become available and a guard
    condition evaluates to true, the enclosed
    activities are enabled
  • In parallel or sequentially
  • Repeat marks the re-enablement of a reaction
  • reaction group marks the mutual-exclusive
    enablement of a set of activities

18
Choreography
  • Interactions with common behavioral
    characteristics are combined to form a behavioral
    unit
  • Enumerate all the binary relationships
    interactions act in
  • Localize the visibility of state
  • Using state definitions
  • Prescribe alternative patterns of behavior
  • Using reactions
  • Enable Recovery
  • Backward handle exceptional conditions
  • Forward compensate already completed activities
  • Recursively combine Choreographies to form new
    Choreographies

19
Packaging
  • Aggregate Import
  • Document types, toke types, toke locator types,
    role types, relationship types, channel types
  • One or more choreographies
  • Import XSD, WSDL types

20
WS-CDL Example
  • The example is a multi-participant choreography
  • Illustrates a simple purchase sequence
  • It involves four participants, Roles
  • Buyer, Seller, Credit Checking Service, and
    Inventory Service
  • Main choreography involves 3 relationships
  • Buyer-Seller
  • Seller-Credit Checking Service
  • Seller-Inventory Service

21
WS-CDL Example cont.
  • The Buyer initiates an interact and the
    Choreography 
  • With the Seller to align the Purchase Order
  • The Seller, when the Purchase Order is available,
    initiates 3 interactions
  • With the Buyer to acknowledge receipt of the
    Purchase Order
  • With the Credit Checking Service to check Buyers
    credit
  • With the Inventory Service for product
    availability

22
WS-CDL Example cont.
  • The Seller reaction is guarded by the response
    interactions from Credit Checking Service and
    Inventory Service
  • If both interactions result are positive, the
    order is processed and the Purchase Order
    Response is sent
  • If either interaction indicate a negative result
    a Purchase Order Reject message is sent to the
    Buyer

23
WS-CDL Example cont.
24
WS-CDL Example cont.
  • Buyer interacts with Seller to create a Purchase
    Order
  • Seller acknowledges the Purchase Order in an
    interact
  • Seller interacts with Credit Service and
    Inventory service
  • Credit and Inv. Services interacts with Seller
    with results
  • Seller interacts with Buyer creating PO Response

25
WS-CDL Example cont.Some Basic Constructs

26
WS-CDL Example cont.Documents
  • ltdocumentType name"purchaseOrderDocType"
  • messageType"ponspurchaseOrderMsg"/gt
  • ltdocumentType name"purchaseOrderAckDocType
  • messageType"ponspurchaseOrderAckMsg"/
    gt
  • ltdocumentType name"purchaseOrderRejectDocType"
  • messageType"ponspurchaseOrderRejectMs
    g"/gt
  • ltdocumentType name"purchaseOrderResponseDocType
  • messageType"ponspurchaseOrderResponse
    Msg"/gt
  • ltdocumentType name"creditCheckRequestDocType"
  • messageType"ponscreditCheckRequestMsg
    "/gt

27
WS-CDL Example cont.Tokens
  • lttokenType namewarehouseRef" type"xsdanyUri"/gt
  • lttokenType name"purchaseOrderID"
    type"xsdint"/gt
  • lttokenLocator tokenName"snspurchaseOrderID"
  • documentType "purchaseOrderDocType"
  • part"PO"
  • query"/PO/Order"/gt

28
WS-CDL Example cont.roleType
  • ltroleType name"Seller"gt
  • ltbehaviorType name"sellerForBuyer"
  • interfaceType"snsSellerPOP
    T"/gt
  • ltbehaviorType name"sellerForCredit"
  • interfaceType"snsSellerCre
    ditPT"/gt
  • ltbehaviorType name"sellerForInventory"
  • interfaceType"snsSellerInv
    entoryPT"/gt
  • lt/roleTypegt

29
WS-CDL Example cont.Relationships
  • ltrelationshipType name"BuyerSellerBinding"gt
  • ltrole type"Buyer"/gt
  • ltrole type"Seller"/gt
  • lt/relationshipTypegt

30
WS-CDL Example cont.Channels
  • ltchannelType name"purchaseOrderCHT"gt
  • ltchannelDefinitionsgt
  • ltchannel typepurchaseOrderResponseCHT
  • directionrespondgt
  • lt/channelDefinitionsgt
  • ltrole type"Seller"/gt
  • ltreferencegt
  • lttoken name"warehouseRef"/gt
  • lt/referencegt
  • ltidentitygt
  • lttoken name"purchaseOrderID"/gt
  • lt/identitygt
  • lt/channelTypegt

31
WS-CDL Example cont.State Definitions
  • ltstateDefinitions name"purchaseOrderChoreography
    State"gt
  • ltstateType name"purchaseOrderAckDoc"
  • documentType"purchaseOrderAckDocType"/gt
  • ltstateType name"purchaseOrderDocAtBuyer"
  • documentType"purchaseOrderDocType"
  • roleType"Buyer"/gt
  • lt/stateDefinitionsgt

32
WS-CDL Example cont.Interacts
  • ltinteract name"inventoryCheck"
  • onChannel"inventory-channel"
  • operation"inventoryCredit"
  • initiateChoreography"true"gt
  • ltparticipate
  • relationship"SellerInventoryBindin
    g"
  • fromRole"Seller"
  • toRole"Inventory"/gt
  • ltalign state"inventoryRequestDoc"
  • with-state"inventoryRequestDoc"/
    gt
  • lt/interactgt

33
WS-CDL Example cont.Reactions
  • ltreact name"creditApprovalInventoryApproval"
  • group"ApproveOrReject
  • relationshipTypeBuyerSellerBinding
  • guard
  • "cdlgetState(CreditCheckResponseDocAtSeller,
  • \/Customer/Credit\)text() 'success'
  • cdlgetState(InventoryResponseDocAtSeller,
  • \/Order/Inventory\)text()'available'"gt
  • ltinteract name"createOrderResponse
  • lt/interactgt
  • lt/reactgt

34
WS-CDL Example cont.Choreography
  • ltchoreography name"inventoryCheckChoreography"gt
  • ltrelationship type"SellerInventoryBinding"/gt
  • ltstateDefinitions
  • nameinventoryCheckChoreographyStategt
  • ltstateType name"inventoryCheckRequestDoc
  • documentType"inventoryCheckRequestDocType"
    /gt
  • ltstateType name
  • "inventoryCheckResponseDocAtInventory
  • documentType"inventoryCheckResponseDocType
    "
  • roleType"Inventory"/gt
  • ltstateType name"seller-channel-for-inventory
  • channelType"inventoryCheckResponseCHT"/gt
  • lt/stateDefinitionsgt
  •  

35
WS-CDL Example cont.Choreography
  • ltreact name"purcaseDocAvailibility
  • relationshipTypeSellerInventoryBinding
  • sequentialtrue
  • guard"purchaseOrderDocAtSeller"gt
  • ltinteract name"inventoryCheck
  • onChannel"inventory-channel
  • operation"inventoryCredit"
  • initiateChoreography"true"gt
  • ltparticipate
  • relationship"SellerInventoryBind
    ing
  • fromRole"Seller
    toRole"Inventory"/gt
  • ltalign state"inventoryRequestDoc"
  • with-state"inventoryRequestDoc"/
    gt
  • ltalign state"seller-channel-for-inventor
    y"
  • with-state"seller-channel-for-inventor
    y"/gt
  • lt/interactgt
  •   lt/reactgt

36
WS-CDL Example cont.Choreography
  • ltrecover name"ncname"gt
  • ltexception name"ncname"gt
  • ChoreographyNotation
  • lt/exceptiongt?
  • ltcompensation name"ncname"gt
  • ChoreographyNotation
  • lt/compensationgt?
  • lt/recovergt?
  • lt/choreographygt

37
WS-CDL Example cont.
  • ltchoreography name"purchaseOrderChoreograpy"
    root"true"gt
  •   ltchoreography name"buyerSellerChoreograp
    hygt
  • ltinteract name"createOrderInteract/gt
  • ltinteract name"createOrderAckInteract/gt
  • ltchoreography name"sellerResponseChoreogra
    phy"gt
  • ltinteract name"createOrderResponse/gt
  • lt/choreographygt
  • ltchoreography name"sellerRejectChor
    eography"gt
  • ltinteract name"createOrderReject/gt
  • lt/choreographygt
  • lt/choreographygt
  •   ltchoreography namecreditCheckChoreograp
    hygt
  • ltinteract name"creditCheck/gt
  • ltinteract name"creditCheckResponse
    /gt
  • lt/choreographygt
  •   ltchoreography name"inventoryCheckChoreog
    raphy"gt
  • ltinteract name"inventoryCheck/gt
     
  • ltinteract name"inventoryResponse
    /gt
  • lt/choreographygt

38
WS-CDL Example cont.
  • ltchoreography name"purchaseOrderChoreograpy"
    root"true"gt
  •   ltchoreography name"buyerSellerChoreography
    gt
  • ltinteract name"createOrderInteract/gt
     
  • ltinteract name"createOrderAckInteract/gt
  • ltchoreography name"sellerResponseChoreogra
    phy"gt
  • ltinteract name"createOrderResponse/gt
  • lt/choreographygt
  • ltchoreography
    name"sellerRejectChoreography"gt
  • ltinteract name"createOrderReject/gt
  • lt/choreographygt
  • lt/choreographygt
  •   ltchoreography namecreditCheckChoreogra
    phygt
  • ltinteract name"creditCheck/gt
  • ltinteract name"creditCheckResponse/gt
  • lt/choreographygt
  •   ltchoreography name"inventoryCheckChore
    ography"gt
  • ltinteract name"inventoryCheck/
    gt  

39
WS-CDL Example cont.
  • ltchoreography name"creditCheckChoreography"gt
  • ltrelationship type"SellerCreditBinding"/gt
  • ltstateDefinitions namecreditCheckChoreographySt
    ategt
  • ltstateType name"creditCheckRequestDoc
    documentType"creditCheckRequestDocType"/gt
  • ltstateType name"creditCheckResponseDocAtCred
    it documentType"creditCheckResponseDocType
    roleType"Credit"/gt
  • ltstateType name"seller-channel-for-credit
    channelType"tnscreditCheckResponseCHT"/gt
  • lt/stateDefinitionsgt

40
WS-CDL Example cont.
  • ltreact name"purcaseDocAvailibility
  • relationshipTypeSellerCreditBinding
  • sequentialtrue guard"purchaseOrderDocAt
    Seller"gt
  •  
  • ltinteract name"creditCheck
    onChannel"credit-channel
  • operation"checkCredit
  • initiateChoreography"true"gt
  • ltparticipate relationship"SellerCre
    ditBinding
  • fromRole"Seller
    toRole"Credit"/gt
  • ltalign state"creditCheckRequestDoc"
  • with-state"creditCheckReques
    tDoc"/gt
  • ltalign state"seller-channel-for-cre
    dit"
  • with-state"seller-channel-fo
    r-credit"/gt
  • lt/interactgt
  •  

41
WS-CDL Example cont.
  • ltinteract name"creditCheckResponse
  • onChannel"seller-channel-for-credit
  • operation"creditResponse"gt
  • ltparticipate relationship"SellerCreditBinding
  • fromRole"Credit
    toRole"Seller"/gt
  • ltalign state"creditCheckResponseDocAtCredit"
  • with-state" creditCheckResponseDocAtSel
    ler"/gt
  • lt/interactgt
  • lt/reactgt
  • lt/choreographygt

42
WS-CDL
  • Questions???
  • Comments!!!
Write a Comment
User Comments (0)
About PowerShow.com