Re: Comments on CPIM draft 03

"Athanassios Diacakis" <[email protected]>
Newsgroups gmane.ietf.impp
Message-ID <002301c25487$c5d03530$fe3f9e40@paranoia>
Folks,

This is lengthy (and I aplogize in advance), and contains nothing really
new.  We've discussed this on the list and in person before, but hopefully
should clear any confusion, or more likely, generate lively conversation :-)

Transaction IDs are there to uniquely identify a particular "transaction"
which is a request, followed by zero or more requests and/or replies.  I
think in CPIM this is usually just a request-reply, but may be just a
request.  I do not recall anything more complicated than that.  The purpose
of the identifier is to (a) match the reply to the request, and (b) to
distinguish it from other transactions (i.e. request replies).  The
transaction ID is unique for a particular session of exchanges between two
entities.

[Sidenote: Actually, this is a place where CPIM is weak because it is not a
protocol, the idea of a session is not exactly defined.  This is not too bad
because we could define a session to be an exchange between two entities of
infinite duration. Essentially this means that a transaction ID can never be
re-used between a given pair of To: From: addresses (though if it does, it
shouldn't cause any problems as long as the two uses are not close enough to
eachother so that some entity has some recollection of the first transaction
when it sees the second transaction).]

Transaction IDs shouldn't be used for anything else (semantically
unrelated), because if they do it gets complicated and we get into
discussions such as this :-).  More on this further down.

Now, in London we discussed the need to be able to place multiple
subscriptions to a particular presentity.  Every time that one wants to
subscribe, fetch or unsubscribe, they need to specify which subscription
they want to affect (as now they can be many).  This is done by introducing
a new identifier (subscription ID) that indicates which subscription we are
talking about.  Actually, Notify requests need that too, as mutliple
notifications will take place when you have multiple subscriptions.
Subscription IDs are unique for a particular To: From: combination, meaning
the same SubId for a given pubisher/subscriber pair, is semanticlly the same
subscription.  Of course the same SubID for different pub/sub pairs is a
different subscription.

BTW, there is some text in 3.1 about a watcher having only one subscription
to a presentity that needs to be fixed.

Having said that, there are a few remaining points:

1. Jon is correct in stating you need the subscription ID in order to make
fetch to work (without an explicit fetch), but I think incorrect in stating
that this is the motivation for subscription IDs.  The actual motivation is
to have the ability to have multiple subscriptions, and there are various
reasons as to why that is useful that I can rant about separately.

2. John's thinking about having message ids, subscription ids and
notification ids, is feasible, but I will argue, not desirable, for two
reasons:

(a) The fact that notifications to not have replies to match to the requests
doesn't alleviate the need for a transaction identifiers.  The receiver
still needs the transaction id to differentiate between different
notifications.
(b) all three identifiers have the same purpose - why have 3 instead of one
? - particularly keeping in mind that in implementations you want to keep
the transaction ids at a lower layer than that of the separate transactions
(such as sub, notify, etc), so you can deal with them once, in one place.

3. This issue is orthogonal to the issue of having one or more ids, but here
goes anyway:  Recovering the subscription ID (or whatever ID) should not be
an issue.  The entity that will issue, say, an unsubscribe command, better
know that it earlier had issued a subscribe command, and similarly it will
remember the subscription id.  (Really it needs to "remember" the whole
subscription, id and everything).

Thanos
---
Athanassios Diacakis, CTO
Personity, Inc.
[email protected]

----- Original Message -----
From: "John D. Ramsdell" <[email protected]>
To: "Peterson, Jon" <[email protected]>
Cc: "'Athanassios Diacakis'" <[email protected]>; <[email protected]>
Sent: Wednesday, September 04, 2002 6:51 AM
Subject: Re: Comments on CPIM draft 03


> "Peterson, Jon" <[email protected]> writes:
>
> > The justification given in London for having a separate transaction ID
and
> > subscription ID, as far as I can gather from the minutes, was to
>
> ....
>
> > Is there some other motivation for differentiating the two IDs?
>
> >From the write up, I'm not quite sure.  Please answer this question.
> Suppose we replaced transaction IDs in the CPIM document by three
> other IDs.  For instant messages, we use message IDs, for
> subscriptions we use subscription IDs, and for notifications, we use
> notification IDs.  Have we changed the intent of CPIM?  Is there an
> essential reason why the IDs for the three different CPIM operations
> have the same name, or is the reason simply a matter of economy of
> keystrokes?  It appears that transaction IDs are used for different
> purposes by the three operations.  For example, sometimes they are
> used to match responses with requests, but in the case of
> notifications, this use makes no sense.
>
> John







  [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.