RE: comments on draft-ietf-impp-cpim-pidf-05

Graham Klyne <[email protected]>
Newsgroups gmane.ietf.impp
Message-ID <[email protected]>
[For those who don't want to read the details, I later suggest compromising 
on mustUnderstand being used only within optional extensions.]

Jon,

I fear this discussion is ratholing.  I don't have the motivation or 
commitment to my suggestion to argue this indefinitely, but I'll make one 
more attempt and then consent to whatever the WG decide.

You make a number of reasonable points with respect to the current 
specification:  according to the immediate requirements, it fairly clearly 
does not need mustUnderstand, so there is a clear argument for dropping it.

But, and this is my real concern here, if one assumes that the 
specification will be extended in the future, defining mustUnderstand now 
provides a safeguard for future extensions that must be understood, or 
incur undetected mis-interpretation.

Here's a hypothetical scenario (applied to instant messaging):

Let us suppose that a future extension of instant messaging is required to 
provide confirmation of receipt of a notification -- for example, in 
support of a real-time auction application.  In the absence of a 
mustUnderstand mechanism, an enhanced client requesting confirmation from a 
legacy client has no way to determine whether or not the message was 
received, thus defeating the purpose of the extension.  (We encountered 
just such problems when trying to define email enhancements in the Internet 
Fax working group:  the availability of a UA-to-UA mustUnderstand type 
mechanism would have made life very much easier.)

I agree with your other point that this presumes a failure reporting 
mechanism.  But note my earlier comment about independent development of 
format and protocol.  You may argue that this isn't an important issue for 
presence notification -- maybe, but it's difficult to predict the future.

So my case ultimately rests on the assertion that a mustUnderstand type of 
mechanism, in conjunction with allowing new extension elements in the 
protocol, is a cheap and increasingly adopted mechanism for laying a path 
to future extensibility without trying to second-guess what extensions may 
be required.

I think including this is a minimal route to satisfying the spirit, if not 
the letter, of the extensibility requirement in RFC 2779:
[[
    3.1.4. There MUST be a means of extending the common presence format
    to represent additional information not included in the common
    format, without undermining or rendering invalid the fields of the
    common format.
]]
which makes it clear that future extension beyond the current functionality 
is clearly envisaged by the requirements.  If we presume, now, that such 
extensions can always be ignored by unextended clients we may be creating 
difficulties for future designers of these extensions.

Some further comments inline...

At 06:24 AM 8/29/02 -0400, Peterson, Jon wrote:
> > Maybe, my comment should have been:
> > [[
> > A possible fourth approach, which I prefer, is to say that an essential
> > presence notification MUST NOT contain top-level mandatory-to-understand
> > extensions in the absence of explicit knowledge that the intended
>recipient
> > can understand them, or some other mechanism to recover from a recipient's
>
> > failure to udnerstand the message.  This effectively combines your first
> > and third options, but with a defined hook for future extension without
> > adding any new mechanism at this  time.
> > ]]
> >
>
>In your notes below, I haven't seen any further defense of the 'explicit
>knowledge' condition described above. I think this 'explicit knowledge'
>concept is potentially a significant threat to interoperability for reasons
>I have previously outlined. That alone removed from the paragraph above
>would go a long way for me. We should not be encouraging out-of-band
>presence capability negotiation that is specific to using
>protocols/providers rather than a component of the CPIM system.

What is out of band?  A system may be built from several distinct protocols 
to perform complementary purposes -- indeed, that's what I understand to be 
underlying presumption of the IMPP model (separate protocols for IM and 
presence, used together to create an IMPP system).  I think it's a hallmark 
of successful IETF protocols that they have been assembled from small 
largely independent pieces rather than built as single monolithic structures.

> > There are three get-outs here:
> > (a) top-level (mandatory elements may still be nested in optional
>extensions)
>
>It makes more sense to me that a nested element could be mandatory. In fact,
>I would be fine with mustUnderstand if it were ONLY allowed in nested
>elements defined by extensions. Any extension could just define its own
>version of mustUnderstand if we didn't do so.

I guess that might be workable in the case of presence, particularly in 
light of RFC 2779 requirement 3.1.1, even if I'm wary about trying to 
second-guess the future:
[[
    3.1.1. All ENTITIES MUST produce and consume at least a common base
    format for PRESENCE INFORMATION.
]]
(particularly the "MUST ... consume" bit).  Maybe this is a suitable basis 
for compromise?

[...]

[The rest is not really relevant to my argument ... bored readers may skip]

> > But, FWIW, the Internet fax specifications took this approach in the
>first,
> > simplest version of the specification and then went on to define
> > mechanisms.  It was a very effective process device for getting consensus
> > around the first, very simple, version of the specification.
> >
>
>Though I admittedly haven't really followed Internet fax, I'm not sure that
>fax has quite the same interoperability concerns - unless I'm mistaken they
>weren't defining an abstract protocol that would be run over multiple
>underlying protocols and operated by multiple camps with a history of
>exclusionary behavior.

Actually, I think Internet fax faced a quite similar position:  forging 
consensus among quite distinct world-views of how to achieve some 
goal.  Not based in different protocols, but in deep differences of view 
about how an existing suite of protocols could be used and extended.  The 
logjam was eventually broken by focusing an initial effort an a *very* 
basic core functionality which had a mandatory-to-implement baseline that 
was guaranteed to be understood by all compliant parties, but leaving open 
possibilities for deploying additional functionality which absolutely 
*could* result in non-operability of the kinds you describe.  Enhancements 
that build on that initial basic specification have since proposed 
mechanisms to allow desired extended behaviours to be deployed without 
causing undetected non-interoperability.  But, to date, it's only the very 
basic specification that is advancing to Draft Standard.

(If there is a difference from Internet Fax here, I think it is that most 
of this WG currently believe that the requirements set out in RFC2779 are 
sufficient for the foreseeable goals of IMPP.  That sense of sufficiency 
was clearly not widely held for the initial target of Internet Fax.)

>.... mustUnderstand is a tool that seems like it will
>likely be used to hamper interoperability, if only as a matter of expedience
>rather than a conscious effort to be closed. If we can avoid it, I'd rather
>not have to build this tool into the protocol.

I agree that would be a very undesirable outcome.  If you really believe it 
would be used that way then I agree you are bound to oppose my 
suggestion.  I suppose I don't expect developers to use it capriciously (as 
with the scope for incompatible extension in Internet fax) because to do so 
would clearly be defeating the purpose of using a standard in the first place.

#g


-------------------
Graham Klyne
<[email protected]>




  [reminder: [email protected] for non-technical discussions, please]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.