200 likes | 354 Views
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.
E N D
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 Provide and Register Document Set-b [ITI-41] Document Source Document Repository
Provide and Register Document Set-b ASync Provide and Register Document Set-b [ITI-41] (Request) Document Source Document Repository Provide and Register Document Set-b [ITI-41] (Response)
Examples of Synchronous and Asynchronous Message Exchange Patterns Synchronous Asynchronous Email exchanges Discussion boards Voice mails • Phone conversations • Meetings • Instant Messaging
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 Request Queue Provide and Register Document Set-b [ITI-41] (Request) Document Source Document Repository Provide and Register Document Set-b [ITI-41] (Response) Response Queue
Reliable Messaging Provide and Register Document Set-b [ITI-41] (Request) Intermediaries Document Source Document Repository 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 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 • 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 Feed [ITI-8] Patient Identity Feed HL7v3 [ITI-44] Registry Stored Query [ITI-18] New WSDL Document Registry Document Consumer Register Document Set-b [ITI-42] Provide and Register Document Set-b [ITI-41] Retrieve Document Set [ITI-43] New WSDL Document Source Document Repository Integrated Document Source/Repository
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:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap: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:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap: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:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Header> <wsa:Actionsoap: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:Tosoap:mustUnderstand="1">http://localhost:9080/XDS/SourceReceiver</wsa:To> </soap:Header> <soap:Body> </soap:Body> </soap:Envelope>