Difference between revisions of "Asynch XDS.b Profile Detailed"

From IHE Wiki
Jump to navigation Jump to search
 
(19 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
* Proposal Editor: ''Vassil Peytchev/Roberto Ruggeri''
 
* Proposal Editor: ''Vassil Peytchev/Roberto Ruggeri''
* Profile Editor: ''Vassil Peytchev/Roberto Ruggeri''  
+
* Profile Editor: ''Teddy Bachour''
 
* Date:    N/A (Wiki keeps history)
 
* Date:    N/A (Wiki keeps history)
 
* Version: N/A (Wiki keeps history)
 
* Version: N/A (Wiki keeps history)
Line 8: Line 8:
  
 
===Summary===
 
===Summary===
''<Summarize in a few lines the existing problem . E.g. "It is difficult to monitor radiation dose for individual patients and almost impossible to assemble and compare such statistics for a site or a population.">''
+
IHE 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.
  
''<Demonstrate in a line or two that the key integration features are available in existing standards. E.g. "DICOM has an SR format for radiation dose events and a protocol for exchanging them.">''
+
One of the standards at the basis of XDS.b, WS-Addressing, supports asynchronous communication by specifying the endpoint where responses should be sent (wsa:ReplyTo) and the correlation between request and response (wsa:MessageID).
  
''<Summarize in a few lines how the problem could be solved.  E.g. "A Radiation Dose profile could require compliant radiating devices to produce such reports and could define transactions to actors that collect, analyze and present such information.">''
+
This profile proposes a solution to allow for asynchronous communications among the XDS.b actors by levaraging the WS-Addressing standard.
 
 
''<Summarize in a line or two market interest & available resources.  E.g. "Euratom and ACR have published guidelines requiring/encouraging dose tracking.  Individuals from SFR are willing to participate in Profile development.">''
 
 
 
''<Summarize in a line or two why IHE would be a good venue to solve the problem. E.g. "The main challenges are dealing with the chicken-and-egg problem and avoiding inconsistent implementations.">''
 
  
 
==2. The Problem==
 
==2. The Problem==
Line 24: Line 20:
 
==3. Key Use Cases==
 
==3. Key Use Cases==
  
Scenario 1: 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.
+
Scenario 1: asynch 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 2: asynch xds allows for scenarios where actors are not connected at the same time (off-line) making store-and-forward scenarios possible through the use of intermediaries.
 +
 
 +
Scenario 3: in the integrated document source/document repository the xds document (medical summary, allergy list…) is retrieved from off-line storage and persisted. Allowing for asynch responses reduces the time that the document source is left hanging waiting for a response
 +
 
 +
''RR: edit this scenario #4 to rephrase the "waiting for" issue.''
 +
 
 +
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.
  
 
'''How it works:''' The XCA Initiating Gateway (IG) issues a request to the Receiving Gateway (RG) and hangs waiting for a response or for a timeout to occur. Once the response has been received the IG moves on to another RG and repeats the process.
 
'''How it works:''' The XCA Initiating Gateway (IG) issues a request to the Receiving Gateway (RG) and hangs waiting for a response or for a timeout to occur. Once the response has been received the IG moves on to another RG and repeats the process.
Line 30: Line 34:
 
'''How it should work:''' The IG issues queries to all known RG in parallel without waiting for an immediate response. Responses from the RGs are received from the IG on another port and correlated to the initial query via message IDs stored in the WS-Addressing headers. Requests that timeout do not bloik the IG.
 
'''How it should work:''' The IG issues queries to all known RG in parallel without waiting for an immediate response. Responses from the RGs are received from the IG on another port and correlated to the initial query via message IDs stored in the WS-Addressing headers. Requests that timeout do not bloik the IG.
  
Scenario 2 (on demand query): in the integrated document source/document repository the xds document (medical summary, allergy list…) is generated on the fly instead and persisted. Allowing for asynch responses reduces the time that the document source is left hanging waiting for a response
+
==4. Standards & Systems==
  
Scenario 3: asynch 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)…
+
The XDS.b Asynchronous Profile uses the same standards as the XDS.b Profile.
  
Scenario 4: asynch xds allows for scenarios where actors are not connected at the same time (off-line) making store-and-forward scenarios possible through the use of intermediaries.
+
Key enabler for Async communication is WS-Addressing that allows for:
  
==4. Standards & Systems==
+
* 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
 +
 
 +
==5. Technical Approach==
 +
The XDS.b Asynch (AXDS) profile uses the same transactions specified in the XDS.b Profile without changing the message format. AXDS changes the WSDL definition of the messages decoupling the request from the response, allowing the two to be executed asynchronously.
  
''<List existing systems that are/could be involved in the problem/solution.>''
+
For each transaction in XDS.b two transactions will be defined:
 +
* one one-way transaction with the same input message of the original XDS.b transaction with no response message. This transaction is exposed by the destination actor
 +
* one one-way transaction with the input message format being the same as the output message of the original XDS.b transaction with no response message. This transaction is exposed by the source actor
  
''<List relevant standards, where possible giving current version numbers, level of support by system vendors, and references for obtaining detailed information.>''
+
In practice this translates into the following for the RetrieveDocumentSet [ITI-43] transaction:
  
 +
''Before:''
  
==5. Technical Approach==
+
'''Document Repository WSDL:'''
''<This section can be very short but include as much detail as you like. The Technical Committee will flesh it out when doing the effort estimation.>''
+
<pre>
 +
<message name="RetrieveDocumentSet_Message">
 +
<documentation>Retrieve Document Set</documentation>
 +
<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
 +
</message>
 +
<message name="RetrieveDocumentSetResponse_Message">
 +
<documentation>Retrieve Document Set Response</documentation>
 +
<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
 +
</message>
 +
...
 +
<operation name="DocumentRepository_RetrieveDocumentSet">
 +
<input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/>
 +
<output message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/>
 +
</operation>
 +
...
 +
</pre>
  
''<Outline how the standards could be used/refined to solve the problems in the Use Cases.  The Technical Committee will be responsible for the full design and may choose to take a different approach, but a sample design is a good indication of feasibility.>''
+
''After:''
  
''<If a phased approach would make sense indicate some logical phases. This may be because standards are evolving, because the problem is too big to solve at once, or because there are unknowns that won’t be resolved soon.>''
+
'''Document Repository WSDL:'''
 +
<pre>
 +
<message name="RetrieveDocumentSet_Message">
 +
<documentation>Retrieve Document Set</documentation>
 +
<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
 +
</message>
 +
...
 +
<operation name="DocumentRepository_RetrieveDocumentSet">
 +
<input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/>
 +
</operation>
 +
...
 +
</pre>
 +
'''Document Consumer WSDL:'''
 +
<pre>
 +
<message name="RetrieveDocumentSetResponse_Message">
 +
<documentation>Retrieve Document Set Response</documentation>
 +
<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
 +
</message>
 +
...
 +
<operation name="DocumentRepository_RetrieveDocumentSet">
 +
<input message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/>
 +
</operation>
 +
...
 +
</pre>
  
 +
As shown in the previous sample, new WSDL will have to be defined for the Document Source and Document Consumer actors.
 
===Existing actors===
 
===Existing actors===
''<Indicate what existing actors could be used or might be affected by the profile.>''
+
While the actors defined in XDS.b still maintain the same role, the technical details of how transactions are implemented will differ.
  
 
===New actors===
 
===New actors===
''<List possible new actors>''
+
No new actors are necessary.
  
 
===Existing transactions===
 
===Existing transactions===
''<Indicate how existing transactions might be used or might need to be extended.>''
+
Existing transactions in XDS.b will not be touched. XDS.b can be coupled with AXDS, that is the same actor can expose both synch and asych versions of the same transaction at the same time (on different ports/endpoints).
  
===New transactions (standards used)===
+
===New transactions===
''<Describe possible new transactions (indicating what standards would likely be used for each. Transaction diagrams are very helpful here. Feel free to go into as much detail as seems useful.>''
+
Requests and responses for the existing XDS.b transactions will be decoupled, creating new transactions. This is a list of transactions by actor:
 +
* Document Source
 +
** Provide and Register Document Set-b Response [ITI-41-Response]
 +
* Document Repository
 +
** Provide and Register Document Set-b Request [ITI-41-Request]
 +
** Register Document Set-b Response [ITI-42-Response]
 +
** Retrieve Document Set Request [ITI-43-Request]
 +
* Document Registry
 +
** Register Document Set-b Request [ITI-42-Request]
 +
** Registry Stored Query Request [ITI-18-Request]
 +
* Document Source
 +
** Registry Stored Query Response [ITI-18-Response]
 +
** Retrieve Document Set Response [ITI-43-Response]
 +
 
 +
Requests and responses for the new transactions follow the same formats as the request and responses for the corresponding XDS.b transactions.
 +
 
 +
Profiles that reuse the XDS.b transactions such as XCA, will inherit the ability to use the asynch versions.
  
 
===Impact on existing integration profiles===
 
===Impact on existing integration profiles===
''<Indicate how existing profiles might need to be modified.>''
+
No impact on existing XDS.b profiles. XCA will take advantage of the new asynch transactions.
  
 
===New integration profiles needed===
 
===New integration profiles needed===
''<Indicate what new profile(s) might need to be created.>''
+
No new integration profiles are needed.
 
 
===Breakdown of tasks that need to be accomplished===
 
''<A list of tasks would be helpful for the technical committee who will have to estimate the effort required to design, review and implement the profile.>''
 
  
 
==6. Support & Resources==
 
==6. Support & Resources==
''<List groups that have expressed support for the proposal and resources that would be available to accomplish the tasks listed above.>''
+
AXDS is very applicable to XCA and is at the basis of [[IHE XDS Publish/Subscribe Profile]].  
  
 
==7. Risks==
 
==7. Risks==
''<List technical or political risks that will need to be considered to successfully field the profile.>''
+
AXDS is self-contained and does not require changes in current XDS.b implementations.
  
 
==8. Open Issues==
 
==8. Open Issues==
''<Point out any key issues or design problems.  This will be helpful for estimating the amount of work and demonstrates thought has already gone into the candidate profile.>''
+
* XDR off-line mode can now be updated to use the AXDS
  
 
==9. Tech Cmte Evaluation==
 
==9. Tech Cmte Evaluation==
Line 91: Line 155:
  
 
Candidate Editor:
 
Candidate Editor:
: TBA
+
: Teddy Bachour
 
 
 
 
 
 
''<Delete this Category Templates line since your specific Profile Proposal page is no longer a template.>'' [[Category:Templates]]
 

Latest revision as of 09:29, 21 February 2008

1. Proposed Profile: Asynch XDS.b

  • Proposal Editor: Vassil Peytchev/Roberto Ruggeri
  • Profile Editor: Teddy Bachour
  • Date: N/A (Wiki keeps history)
  • Version: N/A (Wiki keeps history)
  • Domain: IT Infrastructure

Summary

IHE 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.

One of the standards at the basis of XDS.b, WS-Addressing, supports asynchronous communication by specifying the endpoint where responses should be sent (wsa:ReplyTo) and the correlation between request and response (wsa:MessageID).

This profile proposes a solution to allow for asynchronous communications among the XDS.b actors by levaraging the WS-Addressing standard.

2. The Problem

IHE 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.

3. Key Use Cases

Scenario 1: asynch 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 2: asynch xds allows for scenarios where actors are not connected at the same time (off-line) making store-and-forward scenarios possible through the use of intermediaries.

Scenario 3: in the integrated document source/document repository the xds document (medical summary, allergy list…) is retrieved from off-line storage and persisted. Allowing for asynch responses reduces the time that the document source is left hanging waiting for a response

RR: edit this scenario #4 to rephrase the "waiting for" issue.

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.

How it works: The XCA Initiating Gateway (IG) issues a request to the Receiving Gateway (RG) and hangs waiting for a response or for a timeout to occur. Once the response has been received the IG moves on to another RG and repeats the process.

How it should work: The IG issues queries to all known RG in parallel without waiting for an immediate response. Responses from the RGs are received from the IG on another port and correlated to the initial query via message IDs stored in the WS-Addressing headers. Requests that timeout do not bloik the IG.

4. Standards & Systems

The 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 sent
  • specification of the SOAP message id to allow for correlation of responses to the original requests

5. Technical Approach

The XDS.b Asynch (AXDS) profile uses the same transactions specified in the XDS.b Profile without changing the message format. AXDS changes the WSDL definition of the messages decoupling the request from the response, allowing the two to be executed asynchronously.

For each transaction in XDS.b two transactions will be defined:

  • one one-way transaction with the same input message of the original XDS.b transaction with no response message. This transaction is exposed by the destination actor
  • one one-way transaction with the input message format being the same as the output message of the original XDS.b transaction with no response message. This transaction is exposed by the source actor

In practice this translates into the following for the RetrieveDocumentSet [ITI-43] transaction:

Before:

Document Repository WSDL:

<message name="RetrieveDocumentSet_Message">
	<documentation>Retrieve Document Set</documentation>
	<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
</message>
<message name="RetrieveDocumentSetResponse_Message">
	<documentation>Retrieve Document Set Response</documentation>
	<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
</message>
...
<operation name="DocumentRepository_RetrieveDocumentSet">
	<input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/>
	<output message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/>
</operation>
...

After:

Document Repository WSDL:

<message name="RetrieveDocumentSet_Message">
	<documentation>Retrieve Document Set</documentation>
	<part name="body" element="ihe:RetrieveDocumentSetRequest"/>
</message>
...
<operation name="DocumentRepository_RetrieveDocumentSet">
	<input message="ihe:RetrieveDocumentSet_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSet"/>
</operation>
...

Document Consumer WSDL:

<message name="RetrieveDocumentSetResponse_Message">
	<documentation>Retrieve Document Set Response</documentation>
	<part name="body" element="ihe:RetrieveDocumentSetResponse"/>
</message>
...
<operation name="DocumentRepository_RetrieveDocumentSet">
	<input message="ihe:RetrieveDocumentSetResponse_Message" wsaw:Action="urn:ihe:iti:2007:RetrieveDocumentSetResponse"/>
</operation>
...

As shown in the previous sample, new WSDL will have to be defined for the Document Source and Document Consumer actors.

Existing actors

While the actors defined in XDS.b still maintain the same role, the technical details of how transactions are implemented will differ.

New actors

No new actors are necessary.

Existing transactions

Existing transactions in XDS.b will not be touched. XDS.b can be coupled with AXDS, that is the same actor can expose both synch and asych versions of the same transaction at the same time (on different ports/endpoints).

New transactions

Requests and responses for the existing XDS.b transactions will be decoupled, creating new transactions. This is a list of transactions by actor:

  • Document Source
    • Provide and Register Document Set-b Response [ITI-41-Response]
  • Document Repository
    • Provide and Register Document Set-b Request [ITI-41-Request]
    • Register Document Set-b Response [ITI-42-Response]
    • Retrieve Document Set Request [ITI-43-Request]
  • Document Registry
    • Register Document Set-b Request [ITI-42-Request]
    • Registry Stored Query Request [ITI-18-Request]
  • Document Source
    • Registry Stored Query Response [ITI-18-Response]
    • Retrieve Document Set Response [ITI-43-Response]

Requests and responses for the new transactions follow the same formats as the request and responses for the corresponding XDS.b transactions.

Profiles that reuse the XDS.b transactions such as XCA, will inherit the ability to use the asynch versions.

Impact on existing integration profiles

No impact on existing XDS.b profiles. XCA will take advantage of the new asynch transactions.

New integration profiles needed

No new integration profiles are needed.

6. Support & Resources

AXDS is very applicable to XCA and is at the basis of IHE XDS Publish/Subscribe Profile.

7. Risks

AXDS is self-contained and does not require changes in current XDS.b implementations.

8. Open Issues

  • XDR off-line mode can now be updated to use the AXDS

9. Tech Cmte Evaluation

<The technical committee will use this area to record details of the effort estimation, etc.>

Effort Evaluation (as a % of Tech Cmte Bandwidth):

  • 35% for ...

Responses to Issues:

See italics in Risk and Open Issue sections

Candidate Editor:

Teddy Bachour