Subject: [tsv-area] reliable sequenced message delivery

From: Greg Woodhouse <[email-masked]>
Date: Tue, 17 Oct 2006 09:15:24 -0700 (PDT)

I'm not sure whether this is the right place to pose this question, but the discussion of fairness reminds me of another issue I've been thinking about likely. Health Level 7 (aka HL7) is a messaging protocol that is widely used in the healthcare community. Typically, with HL7 2.x all messages being sent to the same facility will be sent in strict sequential order (in ARQ fashion). This strikes me as incredibly wasteful, due to the potential of head of line blocking. In fact, I've seen errant programs fail to process a message, leading to huge queues building up on the sender's side, and a subsequent deluge of messages (often reytransmissions). Why on earth is this all being done at the application level? Well, it seems that HL7 was often run over serial lines, and at least some implementations have almost copied the same "stop and wait" protocol and run it over TCP.
 
I've argued for a different approach, allowing transport to be pushed down the stack (something I jokingly refer to as HL5), but have encountered a lot of resistance. The argument is that applications have been built around the assumption of sequnced delivery, and that out of rder messages may not be properly handled, leading to database inconsistencies. An obvious option is to use explicit signaling (something like SIP) to set up message flows within which sequenced message delivery is required. Now, getting back to fairness: HL7 messages can be very large, though some implementations may require fragmentation. This means a situation could easily arise where one flow always has large amounts of data, potentially a full PMTU or more, to send, effectively "locking out" other flows. A related issues is that applications may send messages intermittently, in response to specific events (for example, ADT_A01 is a generic admission/discharge/transfer) making it uneconomical to
 try and allocate a term to a long lived, but lightly used flow.
 
=== 
Gregory Woodhouse 
 
"Mathematics is the science of patterns."
--Lynn Arthur Steen, 1988