asynchronous web services exchange teddy bachour microsoft corporation august 11, 2008
TRANSCRIPT
Asynchronous Web Services Exchange
Teddy Bachour
Microsoft Corporation
August 11, 2008
Agenda
• What is Asynchronous Web Services Exchange
• Why Asynchronous Web Services Exchange
• Scope of Asynchronous Web Services Exchange Supplement
• Updates to Standards & Systems
• Updates to WSDL & SOAP
What is Asynchronous Web Services Exchange
• A request-response message exchange pattern (aka mep) between a Requestor and a Provider of service
• Provider may not be available at the time the request is sent
• Provider will ‘eventually’ receive and process the request and send a response back to the Requestor
Provide and Register Document Set-b Sync
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b [ITI-41]
Document Source
Document Source
Provide and Register Document Set-b ASync
Document RepositoryDocument Repository
Provide and Register Document Set-b [ITI-41](Request)
Provide and Register Document Set-b [ITI-41](Response)
Examples of Synchronous and Asynchronous Message Exchange Patterns
Synchronous
• Phone conversations• Meetings• Instant Messaging
Asynchronous
• Email exchanges• Discussion boards• Voice mails
Why Asynchronous Web Services Exchange
• Current XDS.b and XCA implementation profiles imply synchronous communication between actors
• This works well in tightly controlled environments• Asynchronous Web Services Exchange further enables support for
network infrastructures where– Transports are unreliable– Systems are not always available– Variable or high communication latency is present
• Asynchronous Web Services Exchange opens the options – For using intermediaries for store and forward or offline communication modes– Using reliable messaging mechanisms to address the reliability and availability
challenges that these types of network infrastructures present
Store & Forward, Offline
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b [ITI-41] (Request)
Provide and Register Document Set-b [ITI-41] (Response)
Request Queue
Request Queue
Response Queue
Response Queue
Intermediaries
Reliable Messaging
Document RepositoryDocument Repository
Document Source
Document Source
Provide and Register Document Set-b [ITI-41](Request)
Provide and Register Document Set-b [ITI-41] (Response)
Scope of Asynchronous Web Services Exchange Supplement
• Volume I and Volume II
• Appendix V
• XDS.b
• XCA
Asynchronous Web Services Exchange for XDS.b Actors
Actor Options Vol & SectionDocument Source Multiple Document Submission ITI TF-1:10.2.1
Document Life Cycle Management ITI TF-1:10.2.2Folder Management ITI TF-1:10.2.3Asynchronous Web Services Exchange
ITI TF-1:10.2.4
Document Repository Asynchronous Web Services Exchange
ITI TF-1:10.2.4
Document Registry Patient Identity Feed (Note 1) ITI TF-2:3.8Patient Identity Feed HL7v3 (Note 1) ITI TF-2:3.44Asynchronous Web Services Exchange
ITI TF-1:10.2.4
Integrated Document Source / Repository
Multiple Document Submission ITI TF-1:10.2.1Document Life Cycle Management ITI TF-1:10.2.2Folder Management ITI TF-1:10.2.3Asynchronous Web Services Exchange
ITI TF-1:10.2.4
Document Consumer Asynchronous Web Services Exchange
ITI TF-1:10.2.4
Patient Identity Source Patient Identity Feed (Note 1) ITI TF-2:3.8Patient Identity Feed HL7v3 (Note 1) ITI TF-2:3.44
Asynchronous Web Services Exchange for XDS.b Actors
XDS.b Actors that support this option shall support the following:• Document Source Actor shall support Asynchronous Web Services
Exchange for the Provide & Register Document Set – b [ITI-41] transaction
• Document Consumer Actor shall support Asynchronous Web Services Exchange for the Registry Stored Query [ITI-18] and Retrieve Document Set [ITI-43] transactions
• Document Repository Actor shall support Asynchronous Web Services Exchange for the Provide & Register Document Set – b [ITI-41] and Register Document Set – b [ITI-42], and Retrieve Document Set [ITI-43] transactions
• Document Registry Actor shall support Asynchronous Web Services Exchange for the Registry Stored Query [ITI-18] and Register Document Set – b [ITI-42] transactions
Use of Synchronous or Asynchronous Web Services Exchange is dictated by the individual install environment and affinity domain policy
Asynchronous Web Services Exchange for XCA
Actor Options Vol & SectionInitiating Gateway XDS Affinity Domain
Option
Asynchronous Web Services Exchange
ITI TF-1:18.2.1
ITI TF-1:18.2.2
Responding Gateway No options defined - -
Asynchronous Web Services Exchange for XCA
• Initiating Gateways which support Asynchronous Web Services Exchange shall support Asynchronous Web Services Exchange on the Cross Gateway Query [ITI-38] and Cross Gateway Retrieve [ITI-39] transactions
• If the Initiating Gateway supports both the XDS Affinity Domain Option and the Asynchronous Web Services Option it shall support Asynchronous Web Services Exchange on the Registry Stored Query [ITI-18] and Retrieve Document Set [ITI-43] transactions
Standards & Systems
• Asynchronous Web Services Exchange uses the same standards as the Synchronous Web Services Exchange
• The key enabler for Asynchronous Web Services Exchange is WS-Addressing that allows for: – Specification of the reply-to endpoint where
responses should be sent – Specification of the SOAP message id to allow
for correlation of responses to the original requests
Updates to WSDL and SOAP
Patient Identity Source
Patient Identity Source
Document Registry
Document Registry
Document ConsumerDocument Consumer
Document RepositoryDocument Repository
Document Source
Document Source
Patient Identity Feed [ITI-8]Patient Identity Feed HL7v3 [ITI-44]
Registry Stored Query [ITI-18]
Register Document Set-b [ITI-42]
Retrieve Document Set [ITI-43]Provide and Register Document Set-b [ITI-41]
Integrated Document Source/Repository
New WSDL
New WSDL
Sample WSDL Update
Document Repository Sync
<portType name="DocumentRepository_PortType">
<operation name="DocumentRepository_ProvideAndRegisterDocumentSet">
<input message="ihe:ProvideAndRegisterDocumentSet-b_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b"/>
<output message="ihe:ProvideAndRegisterDocumentSet-bResponse_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bResponse"/>
</operation>
. . .
</portType>
Document Repository Async
<portType name="DocumentRepository_PortType"> <operation name="DocumentRepository_ProvideAndRegisterDocumentSetAsync"> <input message="ihe:ProvideAndRegisterDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-
bAsync"/> </operation> . . . </portType>
Document Source Async (New)
<portType name="DocumentSource_PortType"> <operation name="DocumentSource_ProvideAndRegisterDocumentSet-bAsyncResponse"> <input message="ihe:ProvideAndRegisterDocumentSet-bResponse_Message"
wsaw:Action="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-bAsyncResponse"></input> </operation></portType>
How SOAP Headers Change
Document Source Sync - ProvideAndRegisterDocumentSet-b Request
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soap:Header>
<wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action>
<wsa:MessageID>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:MessageID>
<wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/RepositoryReceiver</wsa:To>
</soap:Header>
<soap:Body>
</soap:Body>
</soap:Envelope>
Document Source Async - ProvideAndRegisterDocumentSet-b Request (Updated)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soap:Header>
<wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action><wsa:MessageID>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:MessageID><wsa:ReplyTo>
<wsa:Address> http://IPAddress:Port#/XDS/DocumentSourceReceiver</wsa:Address></wsa:ReplyTo><wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/RepositoryReceiver</wsa:To>
</soap:Header><soap:Body></soap:Body></soap:Envelope>
How SOAP Headers Change (2)
Document Repository - ProvideAndRegisterDocumentSet-b Response (New)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soap:Header><wsa:Action soap:mustUnderstand="1">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</wsa:Action><wsa:MessageID>urn:uuid:aaaabbbb-cccc-dddd-eeee-wwwwwwwwwww</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:67cd539a-87ca-2684-4e54-00016c82368a</wsa:RelatesTo><wsa:To soap:mustUnderstand="1">http://localhost:9080/XDS/SourceReceiver</wsa:To>
</soap:Header><soap:Body></soap:Body></soap:Envelope>
QUESTIONS