[Nsi-wg] Message Delivery Layer
Jerry Sobieski
jerry at nordu.net
Wed Dec 12 19:22:46 EST 2012
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 at 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 at ogf.org
> https://www.ogf.org/mailman/listinfo/nsi-wg
More information about the nsi-wg
mailing list