I am writing a prototype health information integration engine which is supposed to facilitate data sharing between clinics and other sources of health data such as research organizations. Data will be exchanged in HL7v3 format, which is based on XML and will be sent via HTTP. The problem is that this is happening across a unstable network necessitating a store and forward mechanism. As such a HTTP request sent from Computer A (the client) to Computer B (the server) cannot be satisfied by returning an immediate response because the network may not be up at that time. Once the store and forward mechanism does its thing at various routing points between Computer A and Computer B, the response to the original request comes back as a separate request originating from Computer B. How can I tell, without adding some extra metadata into the messages, which response is associated with which original request? I have seen something like using Java IDL to facilitate a kind of callback routine for Computer B (the server) to use when it has something for Compute A (the client), but I'm finding all this quite a hard to digest. Could anyone in the know point me in a promising direction? Links to candid tutorials and examples of this or any other technology I could use will be highly appreciated. Let me know if there is something you would like me to clarify.