This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Stateless Queries"

From HL7Wiki
Jump to navigation Jump to search
 
Line 1: Line 1:
 
{{INM Workitem}}
 
{{INM Workitem}}
  
HL7 Sweden has brought forward a use-case for a stateless query. The current query mechanism is based on the fact that it is assumed that the receiving application maintains the state of the result set. A query continuation message need not contain more than the queryID, the responding system needs to derive everything from that ID.
+
HL7 Sweden has brought forward a use-case for a stateless query. The current query mechanism is based on the fact that it is assumed that the receiving application maintains the state of the result set. A query continuation message (part of the [[Query Transmission Pattern]]) need not contain more than the queryID, the responding system needs to derive everything from that ID.
  
 
The argument against a stateful implementation is that the server side query session state would complicate load balancing and fail over (large server farms using SOAP to serve a multitude of clients). The query mechanism in HL7 is essentially 20 years old, which means it has a proven track record, but we also have to realize that 20 years ago issues such as "load balancing" were probably not a design consideration.
 
The argument against a stateful implementation is that the server side query session state would complicate load balancing and fail over (large server farms using SOAP to serve a multitude of clients). The query mechanism in HL7 is essentially 20 years old, which means it has a proven track record, but we also have to realize that 20 years ago issues such as "load balancing" were probably not a design consideration.
  
 
Possible solution: Add a new (optional D-MIM) attribute in the queryAck and queryContinuation classes, called something like "continuationToken".  This allows the server to send back a continuationToken containing the continuation state (which those that brougth the use case forward envision to be the relational database id of the last "record" returned). A stateless server could then conceptually add this id to the selection conditions.
 
Possible solution: Add a new (optional D-MIM) attribute in the queryAck and queryContinuation classes, called something like "continuationToken".  This allows the server to send back a continuationToken containing the continuation state (which those that brougth the use case forward envision to be the relational database id of the last "record" returned). A stateless server could then conceptually add this id to the selection conditions.

Revision as of 17:17, 23 August 2006

HL7 Sweden has brought forward a use-case for a stateless query. The current query mechanism is based on the fact that it is assumed that the receiving application maintains the state of the result set. A query continuation message (part of the Query Transmission Pattern) need not contain more than the queryID, the responding system needs to derive everything from that ID.

The argument against a stateful implementation is that the server side query session state would complicate load balancing and fail over (large server farms using SOAP to serve a multitude of clients). The query mechanism in HL7 is essentially 20 years old, which means it has a proven track record, but we also have to realize that 20 years ago issues such as "load balancing" were probably not a design consideration.

Possible solution: Add a new (optional D-MIM) attribute in the queryAck and queryContinuation classes, called something like "continuationToken". This allows the server to send back a continuationToken containing the continuation state (which those that brougth the use case forward envision to be the relational database id of the last "record" returned). A stateless server could then conceptually add this id to the selection conditions.