Re: draft-ietf-impp-cpim-pidf-06.txt (was: WG Last Call on multip le documents (deadline Jan 12))
Dave Crocker <[email protected]> Tue, 11 Feb 2003 18:41:49 -0700
| Newsgroups | gmane.ietf.impp |
|---|---|
| Organization | Brandenburg InternetWorking |
| Message-ID | <[email protected]> |
Jon, Saturday, January 25, 2003, 4:53:33 PM, you wrote: PJ> ... I think the concepts of <status> and <contact> are equally PJ> applicable to voice, video, Internet gaming, and what have you. So PJ> I don't think these elements really are specific to IM. In other PJ> words, I think <status> and <contact> are valid normative concepts PJ> for presence. Yes, that makes sense. I am more concerned that the core Presence spec be independent of IM than I am about the particular, common elements that are part of the core. Any reasonable, minimal set is fine, as long as the spec permits registering extensions. So, again we agree: A common set of core elements that are defined as presence functions with generic values. They can be mapped to any and all specific presence "media" (or contexts, profiles, environments -- I am not sure what to call each of these "places" in which a participant can have presence.) And there might be other elements that are media-specific. These other elements need to be defined in separate media-specific addenda. PJ> It is also important to note that <contact> is optional in PIDF. PJ> There could conceivably be forms of <presence> that would not need PJ> a <contact> address. It would not surprise me to see a "generic" addendum that is part of many media-specific profiles. However perhaps the right idea is, instead, to make such common elements simply be optional parts of the core. That is, they have common, generic definitions in the core document, but a particular medium (context, profile, environment, ...) might not support them. That would leave us with a core that has a set of defined elements. Some are mandatory. All environments must support them. Others are optional. If an environment can support an optional element, it must support it as defined in the core. However an environment is not required to have the function defined by the element. PJ> However, I don't think this means that we need to field this out to PJ> non-normative status. The concept of a communications address is, I think, PJ> pretty integral to presence. I continue not to understand what a "communication address" is, relative to the URL being employed in the presence entry. This needs to be made concrete, with examples, so there is some way to know why it is required and what it will accomplish. How is it different from a URL? How will it be used, differently from a URL? >> >> It's fine to cite the others documents at the beginning and explain ... >> 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. PJ> The references largely appear in a section called 'Design Decisions' - it PJ> uses RFC2778/RFC2779 to show our methodology, and why we've built the format PJ> 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. >> PJ> Again, I think this is a very common practice, and one that I believe the PJ> IESG appreciates. Whereas I am more concerned what implementors will appreciate. And they certainly will NOT appreciate having to bounce back and forth among different documents to find a coherent, core specification. >> 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 >> PJ> Here are all the references to 2778/2779 in cpim-pidf-07 after section 2 PJ> that I was able to find: PJ> Section 4.1.2 references 2778 for the definition of 'tuple'. PJ> Section 4.1.4 references 2778 for the definition of OPEN and CLOSED. put the definitions into the spec. PJ> Section 4.2 references 2779 for the extensibility requirement of PIDF. This PJ> could probably refer back to Section 2.1 (d) instead, agreed. PJ> None of these are 'normative' references, as far as I understand the term. definitions of syntactic constructs are normative. PJ> I think it would be perhaps more troubling if PIDF defined OPEN and CLOSED PJ> in a way that conflicted with the definition in RFC2778 - a reference is PJ> preferable. So forgive me for thinking that requirements documents were for guidance in developing a specification and that specifications... well, specify. Apparently, requirements documents specify, and specification documents cite. Believe it or not, implementors do not care about requirements documents. They care about specifications. We should try to satisfy our customers. >> PJ> I agree that the title and remainder of the document should not use PJ> this >> PJ> older notation of 'CPIM'. I don't think we need to remove all PJ> 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. >> PJ> Certainly we agree that the document should introduce no normative text that PJ> restricts the applicability of PIDF to IM. Looking through the document, PJ> though, I'm having a hard time seeing how it does. PJ> Assuming that we purge the term 'CPIM' and replace with 'CPP', the term 'IM' PJ> doesn't appear in section of PIDF after Section 2, except in 4.2.5 as one of PJ> a list of potential communication means that might be cited when registering PJ> status extensions. The IM URI scheme appears in PIDF document examples (like PJ> 4.2.4). Even the usage of the term 'IM' in Section 2 is a citation from PJ> RFC2779, and one that I think does not bias PIDF towards the IM application. PJ> Can you point to any particular passage(s) in the existing draft where you PJ> think this is a real concern? >>PJ> Actually, I think these words are still quite necessary. We still PJ> intend >> PJ> that there might be gateways that presence information will pass PJ> through. >> PJ> PIDF provides a format that can be shared end-to-end by different PJ> 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. >> PJ> This is something we've discussed before. I agree there is an important PJ> semantic distinction between gateways and relays. However, I think what we PJ> are doing falls well within the definition of gateways as the term is used PJ> in other Internet applications. A specification that imposes an end-to-end syntactic requirement -- especially one that is imposed without regard to the details of dominant, existing systems, is not a specification of a gateway. It is a specification of an end-to-end service. The fact that this working group has restricted the scope of applicability to be for related IETF efforts, rather than including non-IETF efforts, is a very clear indicator that we are not doing gatewaying. PJ> A presence gateway that converts SIMPLE into PJ> APEX, say, without changing the PIDF body, is still a gateway, not a relay. PJ> I think a 'relay' would be the term for a SIMPLE-to-SIMPLE broker (just PJ> like a mail relay is SMTP-to-SMTP). You appear to believe that relaying requires that all of the details be the same on both sides of the exchange. They don't. IP runs over lots of different media. The details are quite different. Internet mail -- RFC822 objects -- has run over lots of different email transfer protocols. If the object is the same, it is very, very tenuous to count the exchange between the two protocols a "gateway", since it is not doing any significant translating. PJ> Consider, for example, a mail-to-news gateway. Mail and news have independent specification efforts. They have different addressing. They have different packaging. They have different content. The fact that there is overlap is essential for translation to succeed. The fact that the details are under independent control and have divergent details, means that this is more than relaying. PJ> Both mail and news (typically) use MIME. MIME is not messaging. THe discussion is about message translation. MIME is a component of a message. It is not the message. PJ> The job of a gateway is to convert the protocols PJ> (SMTP/NNTP), while passing through the message body carried by these PJ> protocols unchanged. Should this be called a "mail-to-news gateway" (hits on PJ> Google: 11500) or a "mail-to-news relay" (hits on Google: 2)? See above. It's called gatewaying because it is translating between independent, heterogeneous services. What this working group is specifying constitutes essentially no translation. The message and the object and the addressing are dictated on an end-to-end basis. PJ> I think our document in line with the accepted use of the term 'gateway'. nope. >> PJ> I think we want URI, actually. We define IM, for example, as a URI in PJ> 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. >> PJ> Um... I'm not sure I would necessarily discount even a URN. Some URNs PJ> resolved through the DDDS process, for example, could represent PJ> communications addresses. On the assumption that we are trying to make the specification concrete and practical, please note that pres: is an address. It is a URL. It says where to go to get the rest interpreted. THe fact that the 'location' is relevant and that the rest is 'interpreted' make this an address. URL means address. URI means... gosh... identifier. An identifier is significant for its uniqueness, not is semantics. PJ> If we call IM addresses IM URIs, telephone addresses tel URIs, SIP addresses PJ> SIP URIs, then I think saying that <contact> contains a URI is appropriate. If you call IM addresses roses, they are still addresses, not identifiers. >> >> - Communication address: communication means and contact >> >> address of this tuple. (optional) >> >> 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? PJ> A pres URI is the address to which you send a subscription operation (and PJ> from which notifications are received in the form of the presentity URL). PJ> This isn't the address to which one sends instant messages, for example. The PJ> point of having a separate contact address is that it is usually populated PJ> with a URI appropriate for communicating: this could be a tel URI, an IM PJ> URI, a SIP URI, etc. I definitely think these need to be distinct in PIDF. well, indeed that makes sense. now I have to figure out why something that straightforward was so hard for me to see, just in case I am not the only dense reader who needs help. >> >> >> [[ 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 PJ> idea >> PJ> that some forms of presence do not describe a communications PJ> disposition. >> >> Sorry but I do not understand what this means. It would help to see >> something concrete as an example of use. >> PJ> So, geographical location is an example of a form of presence that might not PJ> include a <contact> address. Your location might be known to your PUA PJ> because it contains a GPS chip, say, and you want to publish this location PJ> information as presence. Well, if geographical location were in a <status> PJ> element (assuming some new extension to <status> specified this), it's PJ> pretty clear that this form of presence information would not necessarily be PJ> associated with a communications address (you might not have an IM client or PJ> any other communications application on your GPS device), whereas the status PJ> of, say, a telephone is correlated with a communications address (i.e. a PJ> telephone number). The fact that there are possible forms of <status> that PJ> are not associated with a contact is why <contact> is optional in <tuple>. >> >> 4.1.3. The <status> element >> >> PJ> [snip] >> >> >> >> PJ> It is essential to allow something beyond OPEN and CLOSED if we hope PJ> it to >> PJ> be useful, yes. >> >> The complexity I was referring to was "multiple status values". >> PJ> Actually, I think if you allow extended status values, you are pretty much PJ> already committed to multiple status values, because you may want to supply PJ> <basic> status to ensure interoperability. If I define a richer status PJ> vocabulary in an extension (consisting of: AWAY, IDLE, BUSY, etc), then PJ> whenever I provide a rich status, I would also want to provide <basic> so PJ> that watchers that do not support my presence extension will have at least a PJ> rudimentary sense of my presence. This doesn't necessarily mean that all PJ> rich status values have to reduce to OPEN or CLOSED (it's possible that some PJ> would not), the fact that some could be reduced to OPEN or CLOSED suggests PJ> 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 PJ> requirement >> PJ> makes sense. We've all no doubt seen commercial IM&P systems with a PJ> richer >> PJ> status vocabulary. This extensibility allows individual services PJ> employing >> PJ> PIDF to choose richer statuses to their liking, while maintaining PJ> 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. >> PJ> Actually, as I hopefully made more clear in the paragraph above, I think it PJ> allows extensibility with interoperability, which is exactly what RFC2779 PJ> asks us to do: PJ> 3.1.4. There MUST be a means of extending the common presence format PJ> to represent additional information not included in the common PJ> format, without undermining or rendering invalid the fields of the PJ> 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 PJ> NOT be >> PJ> used instead of <status>. 'Parent' above refers to XML parent. If PJ> <note> >> PJ> appears in <tuple> (<tuple> is its parent), then <note> should not be PJ> used >> PJ> as a substitute for <status>. In other words, it's arguing exactly PJ> what you >> PJ> are, I think. >> >> I guess that proves that, the current language in the spec needs to be >> easier to understand... >> PJ> Well, you may have been a little foxed by your reading of 'parent'. But how PJ> about this text: PJ> The <note> element SHOULD NOT be used to express presence status instead of PJ> the <status> element - an arbitrarily populated block of text does not PJ> provide an interoperable solution for sharing presence information. PJ> [snip] >> >> [[ How does a timestamp provide security? >> >> /d ]] >> >> >> >> >> >> >> PJ> It provids some limited replay protection. If you turn to the last PJ> paragraph >> PJ> of the Sec Cons, as the paragraph above suggests, you will see some PJ> 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. >> PJ> This is obviously true - and although the paragraph in the Sec Cons above PJ> the paragraph on <timestamp> discussed applying cryptographic properties to PJ> PIDF, I suppose I agree that we should add something to the second paragraph PJ> that makes it clear that the <timestamp> only provides replay protection if PJ> 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 >> PJ> [reminder: [email protected] for non-technical discussions, please] 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]