2Problem StatementIHE XDS.b implies synchronous communication between actors: Document consumers, sources, registries and repositories.While this can work in a tightly controlled environment, it is generally sub-optimal in environments where multiple intermediaries are present or where a high latency occurs.
3Key Use CasesScenario 1: Async XDS allows for scenarios where actors are not simultaneously connected (off-line) making store-and-forward scenarios possible through the use of intermediaries.Scenario 2 (on demand query): In the integrated document source/document repository the XDS document is retrieved from off-line storage and persisted. Allowing for Async responses reduces the time that the document source is left hanging waiting for a response.Scenario 3: Async XDS allows for multiple responses for the same request: pagination of results (return x records at a time), streaming of documents (return x Kilobytes at a time).Scenario 4: In XCA, the gateway can issue separate queries to the federated affinity domains in parallel without having to hang until each one is satisfied. Responses can be received asynchronously and collated for the requestor. The response time will be shortened as the results are retrieved in parallel instead of sequentially.
4Standards & SystemsThe XDS.b Asynchronous Profile uses the same standards as the XDS.b Profile. Key enabler for Async communication is WS-Addressing that allows for:Specification of the reply-to endpoint where responses should be sentSpecification of the SOAP message id to allow for correlation of responses to the original requests
5Summary Technical Approach TransactionsThe XDS.b Async profile uses the same transactions specified in the XDS.b profile without changing the message format. Async XDS changes the WSDL definition of the messages decoupling the request from the response, allowing the two to be executed asynchronously.Existing actorsWhile the actors defined in XDS.b still maintain the same role, the technical details of how transactions are implemented will differ.New actorsNo new actors are necessary.Existing transactionsExisting transactions in XDS.b will not be touched. XDS.b can be coupled with Async XDS, that is the same actor can expose both sync and async versions of the same transaction at the same time (on different ports/endpoints).