19
Chapter 12: Coordination Frameworks for Web Services Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005

Chapter 12: Coordination Frameworks for Web Services

  • Upload
    kaori

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Chapter 12: Coordination Frameworks for Web Services. Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005. Highlights of this Chapter. WSCL: Web Services Conversation Language WSCI: Web Service Choreography Interface WS-Coordination - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 12: Coordination Frameworks for Web Services

Chapter 12:Coordination Frameworks for Web Services

Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005

Page 2: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 2Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Highlights of this Chapter

WSCL: Web Services Conversation Language

WSCI: Web Service Choreography Interface

WS-Coordination Web service transaction types BTP: Business Transaction Protocol

Page 3: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 3Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Achieving Business Interoperation

The parties must Know each other’s identity and location

(presumes suitable directories) Agree on the low-level transport protocols and

encoding formats Agree on the syntax and semantics of

documents to be exchanged Agree on their expectations about when

different documents will be sent and received This specification is termed a business protocol An instance of a business protocol is a conversation

(but sometimes the term is used to mean protocol – watch out!)

Page 4: Chapter 12: Coordination Frameworks for Web Services

Chapter 13 4Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

A Process Is … [Abstractions]

Orchestration: A partial order of actions (activity graph, script) under the control of a central conductor; akin to a workflow [Global view; central]Workflow: narrower concept than process; emphasizes

control and data flows from a central perspective; usually tool-specific and focused on human tasks

Choreography: An exchange of messages among participants; akin to a conversation as described by WSCL, WS-CDL, ebBP [Global view; distributed]

Collaboration: A joint set of activities among business partners [Local views; distributed]

Page 5: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 5Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Parts of a WSCL Specification

WSCL: Web Services Conversation Language Document Type Definitions: specify what types of XML documents will

be exchanged Interaction Types: Send, Receive, SendReceive, ReceiveSend, Empty

<Interaction interactionType="SendReceive" id="Payment"> <OutboundXMLDocument id="Invoice" hrefSchema="http://sc.edu/InvoiceRS.xsd"/> <InboundXMLDocument id="Payment" hrefSchema="http://ncsu.edu/Payment.xsd"> </InboundXMLDocument></Interaction>

Transitions: order of the interactions<Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="Purchase"/></Transition><Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="CatalogInquiry"/></Transition>

Conversation: a name for the protocol and a list of its interactions and transitions; this is one party’s perspective

Page 6: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 6Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Concepts in WSCL

                                                                                                                            

                   

Page 7: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 7Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Well-Formed Conversations All interactions are reachable from the

initial interaction The final interaction is reachable from all

interactions If a transition from interaction A to

interaction B specifies a SourceInteractionCondition, then all transitions from A to B do so

The final interaction and transitions to the final interaction unambiguously clarify for each participant when a conversation is finished

Page 8: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 8Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Example Conversation Definition

<<ReceiveSend>>Registration

in: RegistrationRQout: RegistrationRS

<<ReceiveSend>>Login

in: LoginRQout:ValidLoginRS

out: invalidLoginRS

<<ReceiveSend>>CatalogInquiryin: CatalogRQout: CatalogRS

<<Send>>Shipping

out: ShippingInformation

<<ReceiveSend>>Logout

in: LogoutMessage

InvalidLoginRS

InvalidLoginRS

ValidLoginRS

<<ReceiveSend>>Quote

in: QuoteRQout: QuoteRS

InvalidPaymentRS

<<ReceiveSend>>Purchase

in: PurchaseRQout: PurchaseAcceptedRSout: InvalidPaymentsRS

out: OutOfStockRS

PurchaseAcceptedRS

OutOfStockRSInvalidPaymentRS

Page 9: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 9Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Example WSCL Specification: 1

<Conversation name="StoreFrontServiceConversation" xmlns="http://www.w3.org/2002/02/wscl10" initialInteraction="Start" finalInteraction="End" >

<ConversationInteractions> <Interaction interactionType="ReceiveSend" id="Login"> <InboundXMLDocument hrefSchema=“http://conv1.org/LoginRQ.xsd

” id="LoginRQ"/> <OutboundXMLDocument hrefSchema=“

http://conv1.org/ValidLoginRS.xsd” id="ValidLoginRS"/> <OutboundXMLDocument id="InvalidLoginRS"

hrefSchema=“http://conv1.org/InvalidLoginRS.xsd”/> </Interaction> … <Interaction interactionType="Empty" id="Start" /> <Interaction interactionType="Empty" id="End" /> </ConversationInteractions>

Page 10: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 10Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Example WSCL Specification: 2

<ConversationTransitions> <Transition> <SourceInteraction href="Start"/> <DestinationInteraction href="Login"/> </Transition>

… <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Registration"/> <SourceInteractionCondition href="InvalidLoginRS"/> </Transition> <Transition> <SourceInteraction href="Logout"/> <DestinationInteraction href="End"/> </Transition> </ConversationTransitions></Conversation>

Page 11: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 11Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WSCI: Web Service Choreography Interface

Choreography refers to a global view of how messages are exchanged

WSCI describes the flow of messages exchanged by a Web service that is interacting with other services

WSCI is viewed as an enhancement to WSDL (inserted within a WSDL description)

Page 12: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 12Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Example WSCI Add-In to WSDL

<correlation name="quotationCorrelation“ property="tns:quotationID“/> <interface name="StockQuoteWS"> <process name="ProvideStockQuote" instantiation="message"> <sequence> <action name="ReceiveLogin“ role="tns:StockQuoteWS“ operation="tns:QuoteToUser/LogIn"/> <action name="ReceiveStockQuoteRequest" role="tns:StockQuoteWS" operation="tns:QuoteToUser/ProvideQuote"> <correlate correlation="tns:quotationCorrelation"/> <call process="tns:LookupPrice"/> </action> <action name="ReceiveLogout“ role="tns:StockQuoteWS“ operation="tns:QuoteToUser/LogOut"/> </sequence> </process>

<process name="LookupPrice" instantiation="other"> <action name="QueryNYSE" role="tns:StockQuoteWS“ operation="tns:QuoteToUser/QueryNYSE"/> </process> </interface>

Page 13: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 13Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WSCI Example for Transaction Compensation

<sequence> <context> <transaction name="buyStock" type="atomic"> <compensation> <action name="NotifyUnavailable" role="NYSE“

operation="tns:NYSEtoBroker/NotifyUnavailable"/> </compensation> </transaction> </context> <action name="BuyShare" role ="Broker“ operation="tns:BrokerToNYSE/BuyShare"/> <while name="BuyShares"> <condition>defs:fundsRemain</condition> <action name="BuyShare" role ="Broker“ operation="tns:BrokerToNYSE/BuyShare"> <correlate correlation="defs:buyingCorrelation"/> </action> </while></sequence><!-- Compensating Behavior for the Above Transaction --><exception> <onTimeout property="tns:expiryTime" type="duration"

reference="tns:BuyShares@end"> <compensate transaction="tns:buyStock"/> </onTimeout></exception>

Page 14: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 14Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WS-Coordination WS-Coordination is the specification for

a service whose job is to coordinate the activities of the Web services that are part of a business process

A coordination service is an aggregation of three services: Registration: for parties to register with the

coordinator Activation: to create an instance of a

coordination context Coordination protocol: to define the specific

protocol to be followed

Page 15: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 15Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WS-Coordination Service

Coordinator

ActivationService

RegistrationService

ProtocolService X

ProtocolService Y

CreateCoordinationContext Register

Protocol YProtocol X

Page 16: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 16Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WS-Coordination ServiceWStravel CoordinatorT CoordinatorH WShotel

CreateCoordContext(ACIDTrans)

Ct(A1,ACIDTrans,RSt)

ReserveRoom(Ct)

CreateCoordContext(Ct)

Ch(A1,Ct,RSh)

Reg(2PC,PortH)

Register(2PC,PortPSh)

RegisterResponse(AddACK,PortPSt)

RegResponse(RemoveACK,PortPSh)

ActivationService

ActivationService

RegistrationService

RegistrationService

ProtocolService

ProtocolService RoomConfirmation(2PC)

2PC Protocol

ReservationConfirmed

Page 17: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 17Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

WS-AtomicTransaction:Protocol for an Atomic Transaction

The travel agency and the airline can perform 2PC; the airline makes commits; the museum does not care

WSmuseum

Pm-2PC-v

Museum Server

WStravel

Pb-CP

Ct-CP

Ct-2PC-d

Travel Agency Server

WSairline

Pc-2PC

CoordA

Ca-2PC

Pa-2PC-d

Airline Server

Ct-2PC-v

(10) Committed

(9) Commit

(2) Prepare

(7) ReadOnly

(1) Commit T

(12) Committed T (4) Prepare

(5) Prepared

(8) Commit

(11) Committed

(3) Prepare

(6) PreparedCoordT

Page 18: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 18Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Business Transaction Protocol (BTP)

InvestmentManager

BTPComposer

Dell StockPreferred

Ford StockPreferred

IBM StockPreferred

FederalTBond

CenturyReal Estate

Begin

Begun(context)

BuyStockRequest(context)

BuyBondRequest(context)

BuyRealEstateRequest(context)

EnrollPrice

Enroll EnrollEnroll

Price Price Price

Confirm Dell & Century

Cancel Ford & TBond

Prepare

Prepared

Confirm(context)Confirm(context)

Cancel(context) Cancel(context)

Confirmed(context)Confirmed(context)

Cancelled(context)Cancelled(context)

Confirmed(context)

Page 19: Chapter 12: Coordination Frameworks for Web Services

Chapter 12 19Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and

Michael Huhns

Chapter 12 Summary

SOC needs an ability to specify interactions among business partners in a manner that respects the partners’ autonomy and heterogeneity: conversations are a natural way to do so

SOC needs support for transactions The more relaxed varieties are preferable,

but there is a place for traditional transactions as well

The transactions are based on a small set of primitives