Copyright Springer Verlag Berlin Heidelberg 2004 The interaction between clients and services is often formed by a set of operation invocations (i.e., it is a conversation). A service provider may support some conversations while disallowing others. customer (client) supplier (Web service) 1: requestQuote 2: orderGoods 3: makePayment The internal business logic of clients and Web services must support the conversation, and maintain the state across different operation invocations belonging to the same conversation. Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 requestQuote quote requested orderGoods goods ordered cancelOrder makePayments order canceled order completed Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 1:requestQuote customer 2:orderGoods supplier 3:confirmOrder 4:makePayment Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 1:requestQuote customer 2:orderGoods supplier 4:confirmOrder 5:makePayment 7:getShipmentDetail 3:checkShipAvailable 6:orderShipment warehouse 8:confirmShipment 9:confirmShipment Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 customer supplier warehouse requestQuote orderGoods checkShipAvailable confirmOrder makePayment orderShipment getShipmentDetail confirmShipment confirmShipment Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 customer supplier warehouse requestQuote (to supplier) orderGoods (to supplier) checkShipAvailable (to warehouse) warehouse confirms warehouse cancels confirmOrder (to customer) cancelOrder (to customer) makePayment (to supplier) orderShipment (to warehouse) getShipmentDetails (to customer) confirmShipment (to warehouse) confirmShipment (to supplier) Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 customer supplier warehouse requestQuote (to supplier) orderGoods (to supplier) warehouse confirms warehouse cancels confirmOrder (to customer) cancelOrder (to customer) makePayment (to supplier) getShipmentDetails (to customer) confirmShipment (to warehouse) Copyright Springer Verlag Berlin Heidelberg 2004
service provider manufacturing health care telecom finance … Copyright Springer Verlag Berlin Heidelberg 2004 service provider Web services executing vertical protocols. The main focus of standards such as RosettaNet, xCBL, and part of ebXML is to describe protocols at this level. manufacturing health care telecom finance … middleware for horizontal protocols provides properties and guarantees to the execution vertical protocols. Standards such as WS-Coordination, WS-Transaction, and part of ebXML fit here. support for protocols such as transactionality, reliability, security,… other Web services middleware (e.g., SOAP routers) SOAP messages
Copyright Springer Verlag Berlin Heidelberg 2004 service requestor P1 service provider P2, P3 service requestor P4, P5 service requestor Copyright Springer Verlag Berlin Heidelberg 2004
service provider Copyright Springer Verlag Berlin Heidelberg 2004 object for P1 P1 service requestor P1 object for P2 P2 conversation controller P3 P2, P3 service requestor object for P3 P4 P4, P5 P5 object for P4 service requestor object for P5 the controller dispatches messages to the appropriate implementation object clients invoke operations at the same address Copyright Springer Verlag Berlin Heidelberg 2004
service provider EJB EJB EJB EJB container SOAP router (with conversation controller) conversation ID/object mapping HTTP server SOAP messages on HTTP transport Copyright Springer Verlag Berlin Heidelberg 2004
service provider Copyright Springer Verlag Berlin Heidelberg 2004 object (Web service implementation) object (Web service implementation) H B horizontal protocol implementation B service requestor horizontal protocol implementation conversation routing, compliance verification H H B: conversation compliant with a business protocol H: conversation compliant with an horizontal protocol Copyright Springer Verlag Berlin Heidelberg 2004
horizontal protocol handler (A) horizontal protocol handler (B) object (W1) horizontal protocol handler (A) object (W2) horizontal protocol handler (B) A’s port reference B’s port reference A’s role B’s role conversation controller protocol messages Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 Web service Web service Web service coordinator (a) central coordination Web service Web service Web service coordinator coordinator coordinator (b) distributed coordination Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 ActivationRequestorPortType Web service CreateCoordinationContext - ... - coordination type - current context CreateCoordinationContextResponse - ... - coordination context - identifier - coordination type - registration service ActivationCoordinatorPortType coordinator Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 RegistrationRequestorPortType Web service register - ... - protocol identifier - participant protocol service registerResponse - ... - coordinator protocol service RegistrationCoordinatorPortType coordinator Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 XParticipantPortType Web service protocol-specific messages from participant to coordinator protocol-specific messages from coordinator to participant XCoordinatorPortType coordinator Copyright Springer Verlag Berlin Heidelberg 2004
activation coordinator registration coordinator coordinator C activation coordinator registration coordinator protocol coordinator Web service A Web service B activation participant protocol participant activation participant protocol participant registration participant Web service implementation Web service implementation registration participant 1. create CC 2. X1 3. register 4. protocol coordinator 5. operational message 6. register 7. protocol coordinator 8. protocol-specific message 9. protocol-specific message Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 Web service A coordinator Ca Web service B coordinator Cb 1. create CC 2. X1 3. register 4. protocol coordinator 5. operational message 6. create CC 7. X2 8. register 9. register 10. protocol coordinator 11. protocol coordinator 12. protocol message 13. protocol message 14. protocol message 15. protocol message Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 XParticipantPortType Web service n + 1 XParticipantPortType XParticipantPortType coordinator n coordinator n + 1 XCoordinatorPortType XCoordinatorPortType Copyright Springer Verlag Berlin Heidelberg 2004
WS-Coordination interfaces ActivationCoordinatorPortType RegistrationCoordinatorPortType WS-Transaction interfaces CompletionParticipantPortType CompletionCoordinatorPortType CompletionWithAckParticipantrPortType CompletionWithAckCoordinatorPortType atomic transaction coordinator PhaseZeroParticipantrPortType PhaseZeroCoordinatorPortType 2PCParticipantPortType 2PCCoordinatorPortType OutcomeNptificationParticipantPortType OutcomeNptificationCoordinatorPortType WS-Transaction interfaces needed for chaining RegistrationParticipantPortType WS-Coordination interfaces needed for chaining Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 Web service A coordinator Ca Web service B coordinator Cb create CC T1 register for Completion completion coordinator operational message create CC T2 register for PhaseZero register for PhaseZero PhaseZero coordinator PhaseZero coordinator register for 2PC register for 2PC 2PC coordinator 2PC coordinator complete Copyright Springer Verlag Berlin Heidelberg 2004 PhaseZero PhaseZero PhaseZeroComplete PhaseZeroComplete prepare prepare prepared prepared commit commit committed committed completed
WS-Coordination interfaces ActivationCoordinatorPortType RegistrationCoordinatorPortType WS-Transaction interfaces BusinessAgreementParticipantPortType BusinessAgreementCoordinatorPortType BusinessAgreementWithCompleteCoordinatorPortType BusinessAgreementWithCompleteParticipantrPortType business activity coordinator WS-Transaction interfaces needed for chaining RegistrationParticipantPortType WS-Coordination interfaces needed for chaining Copyright Springer Verlag Berlin Heidelberg 2004
Copyright Springer Verlag Berlin Heidelberg 2004 Web service A Web service B Web service C Coordinator R create CC A1 operational message operational message register for BusinessAgreement BusinessAgreement coordinator register for BusinessAgreement BusinessAgreement coordinator completed faulted compensate forget Copyright Springer Verlag Berlin Heidelberg 2004
:customer :product supplier start <<SecureFlow>> price and availability response <<RequestResponseActivity>> request price and availability process price and availability request <<SecureFlow>> price and availability request [ fail ] [ success ] end failed Copyright Springer Verlag Berlin Heidelberg 2004
transport protocols (TCP/IP and others) HTTP SMTP other (future) HTTPS SSL preamble header delivery header service header service content attachment 1 attachment n MIME multipart/related envelope headers business process payload Copyright Springer Verlag Berlin Heidelberg 2004