From: greg andruk (gja@meowing.net)
Date: Fri Oct 11 2002 - 21:20:56 CDT
In local.usefor you wrote:
> In <3DA506DB.6060206@meowing.net> greg andruk <gja@meowing.net> writes:
>
>>Charles Lindsey wrote:
>>> Yes, when you introduce a brand new feature into a protocol, you do not
>>> expect it to interoperate with the existing base.
>>If it's been done right, a new feature does interoperate, providing
>>graceful degradation. That involves reducing functionality for the
>>older components rather than outright breaking it.
> Read what I wrote.
Write what you mean.
> You do not expect the "new feature" to interoperate
> with the existing base (though naturally it should also ause no harm). You
> DO expect the "old features" to continue operating as before.
In networking, when we say that things interoperate, we mean that they can
successfully communicate with one another. That's the entire *point* of
using a layered namespace, to ensure that each and every article can be
successfully transmitted intact across old and new software alike.
When we say that a feature does not interoperate, we mean that using it
breaks stuff, that two agents won't be able to communicate. Putting 8-bit
characters into a field that is used as a mailing address breaks stuff. It
can prevent the successful transmission of data, and if delivery is
successful there is a real risk that the data will not be delivered intact.
A layered namespace doesn't cause those interoperability problems, because
the article transmission format is not changed.
If you mean that new clients would not be able to get the new names from
old servers, that isn't really an interoperability issue either. That's
why NNTP is adding an extension mechanism, to allow software to
interoperate. It can use additional features when available and still
being fully capable of reading and posting when those features are not
supported.