RE: draft-ietf-impp-cpim-pidf-06.txt (was: WG Last Call on multip le documents (deadline Jan 12))
"Peterson, Jon" <[email protected]> Sat, 25 Jan 2003 17:53:33 -0500
| Newsgroups | gmane.ietf.impp |
|---|---|
| Message-ID | <15A2739B7DAA624D8091C65981D7DA8101214D51@stntexch2.va.neustar.com> |
inline. Jon Peterson NeuStar, Inc. > -----Original Message----- > From: Dave Crocker [mailto:[email protected]] > Sent: Friday, January 24, 2003 10:29 PM > To: Peterson, Jon > Cc: [email protected] > Subject: Re: draft-ietf-impp-cpim-pidf-06.txt (was: WG Last Call on > multip le documents (deadline Jan 12)) > > [snip] > He said: > > a) a format to carry any type of presence data (generally > speaking that is the <presence> and <tuple> elements) > > b) a set of attributes or presence schema pertaining to > IM or perhaps more broadly interpreted "communications > presence" (that is nearly everything inside the tuple, > except e.g. timestamp) > > The key point is to separate normative text for Presence that is independent of any > particular medium like IM or email, and to specify normative text for > medium-specific Presence information somewhere else. Thanos cites > another document. I cited an Appendix. The difference is not > significant, for the point I was making and, apparently, he was > making. > Well, as I suggested, we had a thread then about how <status>, for example, was not specific to IM at all. Nor is the concept of <contact>. Presence concerns communications status, and the disposition of a presentity towards particular avenues of communication. I think the concepts of <status> and <contact> are equally applicable to voice, video, Internet gaming, and what have you. So I don't think these elements really are specific to IM. In other words, I think <status> and <contact> are valid normative concepts for presence. It is also important to note that <contact> is optional in PIDF. There could conceivably be forms of <presence> that would not need a <contact> address. However, I don't think this means that we need to field this out to non-normative status. The concept of a communications address is, I think, pretty integral to presence. > > >> It's fine to cite the others documents at the beginning and explain > >> that they provide requirements and definitions. However the current > >> specification need not reference those other documents for validity or > >> for details. This is a specification document and it > >> should try to provide a specification as independently as possible. > > > PJ> Well, RFC2779 contains a lot of text that is intended to be requirements for > PJ> a presence information data format. Showing how this document satisfies > PJ> those requirements is important. > > For a judicial review, yes it is important. However that is not the > job of a technical specification. It needs to specify. It needs > enough pedagogy to aid understanding and implementation. That's all. > The references largely appear in a section called 'Design Decisions' - it uses RFC2778/RFC2779 to show our methodology, and why we've built the format we did. > Having the document serve multiple purposes (specification vs. defense > against claims that it does not match the requirements) reduces its > effectiveness for both. > Again, I think this is a very common practice, and one that I believe the IESG appreciates. > As I said, it is one thing to have the introduction contain some > explanatory text and reference to the requirements document. It is an > entirely different matter to have the entire text sprinkled with cross > references > Here are all the references to 2778/2779 in cpim-pidf-07 after section 2 that I was able to find: Section 4.1.2 references 2778 for the definition of 'tuple'. Section 4.1.4 references 2778 for the definition of OPEN and CLOSED. Section 4.2 references 2779 for the extensibility requirement of PIDF. This could probably refer back to Section 2.1 (d) instead, agreed. None of these are 'normative' references, as far as I understand the term. I think it would be perhaps more troubling if PIDF defined OPEN and CLOSED in a way that conflicted with the definition in RFC2778 - a reference is preferable. > [snip]... > > In fact the document makes normative references to the requirements > documents in a number of places. > [snip]... > > I would not have cited the issue unless I thought it did, as well as > being distracting. > Again, I don't think three references are very distracting, nor are these references normative as far as I undersand the term (the don't appear in sentences with any 2119 text). > > PJ> I agree that the title and remainder of the document should not use this > PJ> older notation of 'CPIM'. I don't think we need to remove all references to > PJ> IM, however - I think it is valid to refer to IM as an example of a > PJ> communication means used in the <contact> element. > > Glad we agree that references to IM should be in examples, rather than > normative text. > Certainly we agree that the document should introduce no normative text that restricts the applicability of PIDF to IM. Looking through the document, though, I'm having a hard time seeing how it does. Assuming that we purge the term 'CPIM' and replace with 'CPP', the term 'IM' doesn't appear in section of PIDF after Section 2, except in 4.2.5 as one of a list of potential communication means that might be cited when registering status extensions. The IM URI scheme appears in PIDF document examples (like 4.2.4). Even the usage of the term 'IM' in Section 2 is a citation from RFC2779, and one that I think does not bias PIDF towards the IM application. Can you point to any particular passage(s) in the existing draft where you think this is a real concern? > [snip] > > PJ> Actually, I think these words are still quite necessary. We still intend > PJ> that there might be gateways that presence information will pass through. > PJ> PIDF provides a format that can be shared end-to-end by different presence > PJ> protocols that interconnect through a gateway. > > Sorry, no. The current effort has nothing at all to do with > gatewaying. This is an end-to-end object. It does not get > translated. Gateways do translation. Relaying is what is done to > this object, not gatewaying. > This is something we've discussed before. I agree there is an important semantic distinction between gateways and relays. However, I think what we are doing falls well within the definition of gateways as the term is used in other Internet applications. A presence gateway that converts SIMPLE into APEX, say, without changing the PIDF body, is still a gateway, not a relay. I think a 'relay' would be the term for a SIMPLE-to-SIMPLE broker (just like a mail relay is SMTP-to-SMTP). Consider, for example, a mail-to-news gateway. Both mail and news (typically) use MIME. The job of a gateway is to convert the protocols (SMTP/NNTP), while passing through the message body carried by these protocols unchanged. Should this be called a "mail-to-news gateway" (hits on Google: 11500) or a "mail-to-news relay" (hits on Google: 2)? I think our document in line with the accepted use of the term 'gateway'. > > PJ> I think we want URI, actually. We define IM, for example, as a URI in the > PJ> impp-srv document. > > Except for the few places where the UR* is simply used as a unique > identifier (eg., <id>) it is a locator. Hence they all need to say > URL, because that what they are. Saying URI means, for example, that > a URN might qualify, and that would be incorrect. > Um... I'm not sure I would necessarily discount even a URN. Some URNs resolved through the DDDS process, for example, could represent communications addresses. If we call IM addresses IM URIs, telephone addresses tel URIs, SIP addresses SIP URIs, then I think saying that <contact> contains a URI is appropriate. I wouldn't want to restrict it to resources that identify themselves as URLs, anyway, since that could be read to disqualify all of the options I just enumerated. [snip] > > PJ> Last I checked, SHOULD and RECOMMENDED were synonymous in RFC2119. > > amazing. never saw that. > > why keep things simple when we can have so much fun juggling > alternatives? And, of course, the "strongly" helps the semantics > quite a lot. > I think the idea of having both SHOULD and RECOMMENDED is 2119 is to facilitate phrasing requirements in the passive voice, Strunk and White be damned. Agreed that STRONGLY is invariably a no-op. [snip] > >> > >> o PRESENTITY URL: specifies the "pres" URL of the PRESENTITY. > >> o List of presence tuples > >> - Status: OPEN/CLOSED for Instant Messaging or status for > >> other communication means. > >> - Communication address: communication means and contact > >> address of this tuple. (optional) > >> > >> << ??? >>> > >> > > PJ> ? > > So much for my proofreading efforts. Meant to add text asking what > the heck a communication address is, compared with the presentity's > URL? How are the two different in specification and use? > A pres URI is the address to which you send a subscription operation (and from which notifications are received in the form of the presentity URL). This isn't the address to which one sends instant messages, for example. The point of having a separate contact address is that it is usually populated with a URI appropriate for communicating: this could be a tel URI, an IM URI, a SIP URI, etc. I definitely think these need to be distinct in PIDF. > > >> [[ What does it mean to have no communications means? How is the > >> tuple used? > >> /d]] > >> > > PJ> The example that is constantly held up is geo-location - there is an idea > PJ> that some forms of presence do not describe a communications disposition. > > Sorry but I do not understand what this means. It would help to see > something concrete as an example of use. > So, geographical location is an example of a form of presence that might not include a <contact> address. Your location might be known to your PUA because it contains a GPS chip, say, and you want to publish this location information as presence. Well, if geographical location were in a <status> element (assuming some new extension to <status> specified this), it's pretty clear that this form of presence information would not necessarily be associated with a communications address (you might not have an IM client or any other communications application on your GPS device), whereas the status of, say, a telephone is correlated with a communications address (i.e. a telephone number). The fact that there are possible forms of <status> that are not associated with a contact is why <contact> is optional in <tuple>. > >> 4.1.3. The <status> element > >> [snip] > >> > > PJ> It is essential to allow something beyond OPEN and CLOSED if we hope it to > PJ> be useful, yes. > > The complexity I was referring to was "multiple status values". > Actually, I think if you allow extended status values, you are pretty much already committed to multiple status values, because you may want to supply <basic> status to ensure interoperability. If I define a richer status vocabulary in an extension (consisting of: AWAY, IDLE, BUSY, etc), then whenever I provide a rich status, I would also want to provide <basic> so that watchers that do not support my presence extension will have at least a rudimentary sense of my presence. This doesn't necessarily mean that all rich status values have to reduce to OPEN or CLOSED (it's possible that some would not), the fact that some could be reduced to OPEN or CLOSED suggests that there is value in providing both, and hence multiple values. > > >> [[ How is the requirement for minimality served by permitting > >> alternative, equivalent values? > >> /d > >> >> > >> > > PJ> Again, we inherit this from RFC2779. Personally, I think this requirement > PJ> makes sense. We've all no doubt seen commercial IM&P systems with a richer > PJ> status vocabulary. This extensibility allows individual services employing > PJ> PIDF to choose richer statuses to their liking, while maintaining baseline > PJ> OPEN/CLOSED functionality with other providers when both speak PIDF. > > Having two different representations for the same semantics is not > "richer". It is, in fact, an invitation to greater complexity and, > therefore, more bugs and less interoperability. > Actually, as I hopefully made more clear in the paragraph above, I think it allows extensibility with interoperability, which is exactly what RFC2779 asks us to do: 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. > > >> > >> > >> Note that, wherever it appears, a <note> element SHOULD NOT be used, > >> and interpreted, as a non-interoperable substitute for status of its > >> parent element. > >> << > >> [[ You mean that it might be ok for a comment field, like <note> to > >> be used for something semantic, like status of parent??? This is > >> inviting non-interoperable. Either the field is a human readable > >> content or it is machine-readable and needs to permit formal > >> definition. (Anyone want me to cite yet another bit of experience > >> from email? > >> /d ]] > >> >> > > PJ> I think this sentence says exactly the opposite - that <note> SHOULD NOT be > PJ> used instead of <status>. 'Parent' above refers to XML parent. If <note> > PJ> appears in <tuple> (<tuple> is its parent), then <note> should not be used > PJ> as a substitute for <status>. In other words, it's arguing exactly what you > PJ> are, I think. > > I guess that proves that, the current language in the spec needs to be > easier to understand... > Well, you may have been a little foxed by your reading of 'parent'. But how about this text: The <note> element SHOULD NOT be used to express presence status instead of the <status> element - an arbitrarily populated block of text does not provide an interoperable solution for sharing presence information. [snip] > >> [[ How does a timestamp provide security? > >> /d ]] > >> >> > >> > > PJ> It provids some limited replay protection. If you turn to the last paragraph > PJ> of the Sec Cons, as the paragraph above suggests, you will see some more > PJ> text about it. > > I don't think so, since an attacker can modify it. > > Without encryption-based data integrity added to the timestamp, the > timestamp adds nothing to security. > This is obviously true - and although the paragraph in the Sec Cons above the paragraph on <timestamp> discussed applying cryptographic properties to PIDF, I suppose I agree that we should add something to the second paragraph that makes it clear that the <timestamp> only provides replay protection if the PIDF body is integrity-protected. > > d/ > -- > Dave <mailto:[email protected]> > Brandenburg InternetWorking <http://www.brandenburg.com> > t +1.408.246.8253; f +1.408.850.1850 > [reminder: [email protected] for non-technical discussions, please]