View
40
Download
1
Category
Tags:
Preview:
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
Chapter 12:Coordination Frameworks for Web Services
Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
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
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!)
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]
Chapter 12 5Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Parts of a WSCL SpecificationWSCL: 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
Chapter 12 6Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Concepts in WSCL
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
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
InvalidLoginRSInvalidLoginRS
ValidLoginRS
<<ReceiveSend>>Quote
in: QuoteRQout: QuoteRS
InvalidPaymentRS
<<ReceiveSend>>Purchase
in: PurchaseRQout: PurchaseAcceptedRSout: InvalidPaymentsRS
out: OutOfStockRS
PurchaseAcceptedRS
OutOfStockRSInvalidPaymentRS
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>
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>
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)
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>
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>
Chapter 12 14Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
WS-Coordination WS-Coordination specifies a service that
coordinates the activities of Web services Meant to be combined with another
standard that describes the specific coordination needed
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
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
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
Chapter 12 17Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
WS-AtomicTransaction:Protocol for an Atomic TransactionThe 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) Prepared
CoordT
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
PreparePrepared
Confirm(context)Confirm(context)
Cancel(context) Cancel(context)
Confirmed(context)Confirmed(context)
Cancelled(context)Cancelled(context)
Confirmed(context)
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
Recommended