I think we need the MDL/MTL layer - it does things the traditional transport protocol layers do not. Fundamentally, it notifies the NSI layer that a message was unable to be sent within a specified time. That Timer needs to be specified by NSI...i'm not sure you can even specify such a timeout for the other transport protocols. And if that send timer expires, the sending NSI layer needs to recover somehow. The timeout may be different for different messages, and the recovery action will very likely be different depending on the message that failed to send. So, if a response timer expires that says the remote NSA did not respond in a reasonable amount of time, the local NSA's first question should be: Did the remote NSA even get the message? Are we sure? and when? If the message was not sent and acknowledged, then the remote NSA does not know about it so the local NSA can recover unilaterally. If the message *was* sent and acknowledged, then the remote NSA is processing it somehow and the local NSA needs to take that into consideration in recovering. How does web services deal with this? On a connection by connection basis, messages are processed serially. Thus messages must be queued if a prior message has not been processed. Thus, a crash could occur after receipt but before processing losing the queued message. Thus the sending NSA thinks a messages was being processed and the remote NSA has lost it over the crash. A custom MDL could make sure such messages are written to a persistent store before achnowledging the receipt of the message. At the very least - I think we need to define clearly how we expect/want the message delivery process to function in order that the NSI protocols can be deterministic about the distributed state of a connection. If there are existing layers that can do this, perhaps we can use just existing layers. I know there are packages out there that have explicit MDLs - some I think are even defined as web services themselves. So the issues is not unique to this NSI effort - many distributed WS based systems have had similar problems to address. Perhaps these is exsiting library out there to do this..? But we need to define what we think we need first, then decide if the MDL is something new or something that already exists. My thoughts... Jerry On 12/12/12 5:55 AM, Jeroen van der Ham wrote:
Hi,
On 12 Dec 2012, at 11:34, Inder Monga <imonga@es.net> wrote:
Jeroen,
What solution are you proposing - it is not clear? I'm proposing to simplify things, to not introduce another layer, and simply describe that the NSI expects the NSA to make an effort in delivering a message. It should use the reliable MTL (which we've defined to be SOAP). If that fails, then it is up to the NSAs discretion to fail directly, or to make an extra effort and try again. Ultimately, it will either fail or it will succeed.
To me, it seems like a simple statement that can be added to the document. For example where you describe when you go from a state to the failed state.
Jeroen. _______________________________________________ nsi-wg mailing list nsi-wg@ogf.org https://www.ogf.org/mailman/listinfo/nsi-wg