Download - WS Technology - Service Coordination
![Page 1: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/1.jpg)
WS Technology - Service Coordination
• [ACKM04] Ch 6, 7
![Page 2: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/2.jpg)
WSDL Specifications
• Abstract part
• signatures, operations
• like traditional IDL
• Concrete part
• bindings / services / ports
WSDL specification
abstract part
types
messages
operations
port types
concrete part
bindings
services andports
![Page 3: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/3.jpg)
Concrete Part
• Interface Bindings
• message encoding & protocol bindings
• Ports
• interface binding + network address
• Services
• logical groupings of ports
![Page 4: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/4.jpg)
A WSDL Service Specification <?xml version="1.0"?> <definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" >
<message name="OrderMsg"> <part name="productName" type="xs:string"/> <part name="quantity" type="xs:integer"/> </message>
<portType name="procurementPortType"> <operation name="orderGoods"> <input message = "OrderMsg"/> </operation> </portType>
<binding name="ProcurementSoapBinding" type="tns:procurementPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="orderGoods"> <soap:operation soapAction="http://example.com/orderGoods"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>
<service name="ProcurementService"> <port name="ProcurementPort" binding="tns:ProcurementSoapBinding"> <soap:address location="http://example.com/procurement"/> </port> </service></definitions>
port and service
binding
operation and port type
messages
abstract part
concrete part
![Page 5: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/5.jpg)
Automatic Generation of WSDL
service providerservice requestor
application object(client)
application object(service provider)
stub skeleton
WSDL of service provider
WSDL compiler(server side)
WSDL compiler(client side)
SOAP-based middleware
SOAP-based middlewareSOAP messages
WSDL generator
12
![Page 6: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/6.jpg)
Universal Description Discovery and Integration
• The Web Services Directory Service
• Service Registry
• for browsing by developers
• for dynamic binding
• Business registry
• original goal: global registry, every business and exported service registered there
• now: support interaction between private and public UDDI registries
![Page 7: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/7.jpg)
Information in UDDI
• Business entity
• an organization that provides Web services
• Business Service
• group of Web Services that cooperate in performing some business process
• bindingTemplate
• technical information needed to use the service
• tModel
• general container for a specification
![Page 8: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/8.jpg)
Information in UDDIbusinessEntityname contactsdescriptionidentifierscategories
businessServiceservice key namedescriptioncategories
bindingTemplatebinding key descriptionaddressdetailed inforeferences to tModels
tModelkeynamedescriptionoverviewDocidentifierscategories
tModelkeynamedescriptionoverviewDocidentifierscategories
Specs stored at the
provider’s site
Stored in the UDDI registry
tModelkeynamedescriptionoverviewDocidentifierscategories
tModelkeynamedescriptionoverviewDocidentifierscategories
tModelkeynamedescriptionoverviewDocidentifierscategories
![Page 9: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/9.jpg)
tModel Description
• Note overviewDoc has URL - refers to specification stored outside UDDI server
• Multiple overviewDocs are allowed
<tModel tModelKey=”uddi:uddi.org:v3_publication”> <name>uddi-org:publication_v3</name> <description>UDDI Publication API V3.0</description> <overviewDoc> <overviewURL useType=”wsdlInterface”> http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding </overviewURL> </overviewDoc> <overviewDoc> <overviewURL useType=”text”> http://uddi.org/pubs/uddi_v3.htm#PubV3 </overviewURL> </overviewDoc>
<categoryBag> <keyedReference keyName=”uddi-org:types:wsdl” keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types”/> <keyedReference keyName=”uddi-org:types:soap” keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types”/> <keyedReference keyName=”uddi-org:types:xml” keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types”/> <keyedReference keyName=”uddi-org:types:specification” keyValue="specification" tModelKey="uddi:uddi.org:categorization:types”/> </categoryBag>
</tModel>
overviewDoc(refer to WSDL specs and to API specs)
classification information (specifies that this tModel is about XML, WSDL, and SOAP specs)
![Page 10: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/10.jpg)
Sharing of tModels
• Each tModel is assigned a GUID when it is registered
• The tModels may be shared by multiple bindingTemplates
• Software can use UDDI to search for all instances of a given GUID
![Page 11: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/11.jpg)
UDDI Registry API
• Inquiry
• search
• Publisher
• register and unregister operations
![Page 12: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/12.jpg)
UDDI Registry API - II
• Security
• Custody and Ownership Transfer
• create/destroy/move objects
• Subscription
• monitor for changes in UDDI data
• Replication
• readonly except at “owner” site
![Page 13: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/13.jpg)
Architecture of Distributed UDDI
service requestor
service descriptions
Web service interface
SOAP/HTTP
Inquiry API Publishers API
service provider
SOAP/HTTPS
UDDI registry A
service descriptions
Web service interface
Inquiry API Publishers API
UDDI registry B
Subscription, Replication, and Custody transfer APIs(SOAP/HTTPS)
![Page 14: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/14.jpg)
WSDL in UDDI
service descriptions
Web service interface
Inquiry API Publishers API
UDDI registry
service requestor service provider
WSDL service descriptions
SOAP/HTTP SOAP/HTTPS
tModel
businessEntitybusinessService
bindingTemplate
![Page 15: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/15.jpg)
Private UDDI Registries
• Public Universal Business Registry not required for Web apps that are intra-enterprise or between trusted partners
• Three categories
• public
• private
• shared
• Must support replication between registries where appropriate
![Page 16: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/16.jpg)
Example: Database stored procedures
service provider
service implementation
HTTP engine
server stub
SOAP router
WSDL generator
1
Inquiry API
UDDI registry
WSDL service descriptions
WSDL compiler 2
UDDI publisher
3
Publishers API
tModel
businessEntitybusinessService
bindingTemplate
![Page 17: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/17.jpg)
“Advances” in SOAP
• BLOBs
• now Web Services description yields interaction sequence but not data formats, which are agreed to by communicating applications
• Document exchange
• constructing WSDL requires semantic understanding of the documents
![Page 18: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/18.jpg)
Dynamic Binding
• Fully general
• e.g. CORBA DII
• now we have run-time types, introspection
• Restricted
• e.g. all services using a given tModel
• but enterprises usually won’t accept a program effectively signing a contract ...
![Page 19: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/19.jpg)
Service Coordination
• Not Yet Implemented!
• But needed - business transactions comprise multiple method invocations that are not independent
• How specify valid and invalid sequences of invocations?
![Page 20: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/20.jpg)
A Simple Conversation
• How ensure e.g. requestQuote happens before orderGoods?
1: requestQuote
2: orderGoods
3: makePayment
customer(client)
supplier (Web service)
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.
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.
![Page 21: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/21.jpg)
State Machine Approach
• boxes = states
• edge labels = operation calls
quote requested
goods ordered
requestQuote
cancelOrder
order canceled order completed
orderGoods
makePayments
![Page 22: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/22.jpg)
Multiple Servers?
suppliercustomer
1:requestQuote
2:orderGoods
5:makePayment
warehouse
3:checkShipAvailable7:getShipmentDetail
8:confirmShipment9:confirmShipment
6:orderShipment
4:confirmOrder
![Page 23: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/23.jpg)
Sequence Diagram
• Simple and intuitive ...
• Drawback: cannot handle alternatives
requestQuote
orderGoods
confirmOrder
getShipmentDetail
confirmShipment
suppliercustomer warehouse
checkShipAvailable
makePayment
orderShipment
confirmShipment
![Page 24: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/24.jpg)
Activity Diagram
requestQuote (to supplier)
checkShipAvailable(to warehouse)
confirmOrder(to customer)
orderGoods(to supplier)
cancelOrder(to customer)
makePayment(to supplier)
orderShipment(to warehouse)
getShipmentDetails(to customer)
confirmShipment(to warehouse)
confirmShipment(to supplier)
supplier warehousecustomer
warehouse confirms
warehouse cancels
Boxes are messages
![Page 25: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/25.jpg)
Activity Diagram Slice
requestQuote (to supplier)
confirmOrder(to customer)
orderGoods(to supplier)
cancelOrder(to customer)
makePayment(to supplier)
getShipmentDetails(to customer)
confirmShipment(to warehouse)
supplier warehousecustomer
warehouse confirms
warehouse cancels
Consider only actions that will affect customer ...
![Page 26: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/26.jpg)
Conversation Controller
• Conversation routing
• Protocol compliance checking
• Example: many clients all use protocol P
service provider
service requestorP1
P2, P3
P4, P5
service requestor
service requestor
![Page 27: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/27.jpg)
Conversation Controller - Routing
P1
P2, P3
P4, P5
conversation controller
object for P1
object for P2
object for P3
object for P4
object for P5
P1
P2
P3
P4
P5
service requestor
service requestor
service requestor
service provider
clients invoke operations at the same address
the controller dispatches messages to the appropriate implementation object
![Page 28: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/28.jpg)
Conversation Controller in SOAP Router
service provider
HTTP server
SOAP router(with conversation controller)
SOAP messages on HTTP transport
EJB EJB EJB
EJB container
conversation ID/object mapping
![Page 29: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/29.jpg)
Identity of Conversation
• Web services must communicate port references and role information to the conversation controller infrastructure
object (W1)
horizontal protocolhandler (A)
object (W2)
horizontal protocolhandler (B)
A’s port reference
B’s port referenceB’s port reference A’s port referenceA’s role B’s role
conversationcontroller
conversationcontroller
protocol messages
![Page 30: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/30.jpg)
WS-coordination
• A framework for supporting coordination
• Standardizes:
• passing GUID between interacting Web services
• informing protocol handler about ports
• informing protocol handler about roles
![Page 31: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/31.jpg)
Coordinators and Participants
• Coordinators and participants
• Central or distributed coordinator
Web service Web service Web service
coordinator coordinator coordinator
Web service Web service Web service
coordinator
(a) central coordination
(b) distributed coordination
![Page 32: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/32.jpg)
Terminology
• Coordination protocol
• e.g. 2PC
• Coordination type
• e.g. atomic transaction
• Coordination context
• data structure identifying messages as belonging to a conversation
![Page 33: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/33.jpg)
Interactions
• Activation
• participant requests new context
• Registration
• participant registers self with coordinator
• Protocol specific interactions
• interactions specific to the protocol :-)
![Page 34: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/34.jpg)
Activation
CreateCoordinationContext - ... - coordination type - current context CreateCoordinationContextResponse
- ... - coordination context - identifier - coordination type - registration service - ...ActivationCoordinatorPortType
coordinator
ActivationRequestorPortType
Web service
![Page 35: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/35.jpg)
Registration
register - ... - protocol identifier - participant protocol service
registerResponse - ... - coordinator protocol service
RegistrationCoordinatorPortType
coordinator
RegistrationRequestorPortType
Web service
![Page 36: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/36.jpg)
Protocol-Specific
• Convention for protocol specific messages
protocol-specific messagesfrom participant to coordinator
protocol-specific messagesfrom coordinator to participant
XCoordinatorPortType
coordinator
XParticipantPortType
Web service
![Page 37: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/37.jpg)
Central Coordinator
Web service Aactivationparticipant
registrationparticipant
protocolparticipant
coordinator Cactivationcoordinator
registrationcoordinator
protocolcoordinator
Web service Bactivationparticipant
registrationparticipant
protocolparticipant
1. create CC
2. X13. register
4. protocol coordinator5. operational message
6. register7. protocol coordinator
8. protocol-specific message
9. protocol-specific message
Web service implementation
Web service implementation
![Page 38: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/38.jpg)
Distributed Coordinator
Web service A coordinator Ca Web service B coordinator Cb
1. create CC
2. X13. register
4. protocol coordinator5. operational message
6. create CC
7. X28. register
9. register10. protocol coordinator
11. protocol coordinator12. protocol message
13. protocol message14. protocol message
15. protocol message
![Page 39: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/39.jpg)
Coordinator Chaining
coordinator n
XCoordinatorPortType
XParticipantPortType
coordinator n + 1
XCoordinatorPortType
XParticipantPortType
Web servicen + 1
XParticipantPortType
![Page 40: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/40.jpg)
Summary of WS-Coordination
• Defines needed SOAP extensions
• Metaprotocols
• activation
• registration
• Middleware for central or distributed coordination
![Page 41: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/41.jpg)
WS-Transaction
• Extension/Use of WS-coordination
• Two flavors:
• Atomic transaction
• Business activity
![Page 42: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/42.jpg)
Atomic Transaction - Ports
atomic transactioncoordinator
CompletionCoordinatorPortType
CompletionWithAckCoordinatorPortType
PhaseZeroCoordinatorPortType
2PCCoordinatorPortType
OutcomeNptificationCoordinatorPortType
CompletionParticipantPortType
CompletionWithAckParticipantrPortType
PhaseZeroParticipantrPortType
2PCParticipantPortType
OutcomeNptificationParticipantPortType
ActivationCoordinatorPortType RegistrationCoordinatorPortType
RegistrationParticipantPortType
WS-Coordination interfaces
WS-Coordination interfacesneeded for chaining
WS-Transaction interfaces
WS-Transaction interfacesneeded for chaining
![Page 43: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/43.jpg)
Atomic Transaction - ProtocolWeb service A coordinator Ca Web service B coordinator Cb
create CC
T1 register for Completioncompletion coordinator
operational messagecreate CC
T2register for PhaseZero
register for PhaseZeroPhaseZero coordinator
PhaseZero coordinator
completePhaseZero
PhaseZero
register for 2PC2PC coordinator
2PC coordinator
register for 2PC
PhaseZeroCompletePhaseZeroComplete
![Page 44: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/44.jpg)
PhaseZeroPhaseZero
PhaseZeroCompletePhaseZeroCompleteprepare
prepareprepared
prepared
commitcommitcommitted
committedcompleted
Atomic Transaction - Protocol
![Page 45: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/45.jpg)
Business Activities
• Business Agreeement (with Complete)
• participant initiates by informing the coordinator of its status:
• exited/completed/faulted
• Coordinator replies
• close/complete/compensate/forget
![Page 46: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/46.jpg)
Port Types
business activitycoordinator
BusinessAgreementCoordinatorPortType
BusinessAgreementWithCompleteCoordinatorPortType
BusinessAgreementParticipantPortType
BusinessAgreementWithCompleteParticipantPortType
ActivationCoordinatorPortType RegistrationCoordinatorPortType
RegistrationParticipantPortType
WS-Coordination interfaces
WS-Coordination interfacesneeded for chaining
WS-Transaction interfaces
WS-Transaction interfacesneeded for chaining
![Page 47: WS Technology - Service Coordination](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb4af62e268c58cd5c72f6/html5/thumbnails/47.jpg)
Execution
Web service A Web service B Web service C Coordinator R
create CC
A1operational message
register for BusinessAgreement
BusinessAgreement coordinator
operational message
register for BusinessAgreementBusinessAgreement coordinator
completed
faultedcompensate
forget