[standards-jig] Future direction for the protocol

DJ Adams dj.adams at pobox.com
Thu Apr 18 07:04:09 UTC 2002


On Thu, Apr 18, 2002 at 10:45:54AM +0530, Ashvil wrote:
> This is how I view the use of the three elements
> 
> 1. iq for telling the server what do you have, What I want, etc. Subscribe
> to data and Publish to Server

yup

> 
> 2. Presence to tell the server - Hey I am online now, please send me stuff

yup, although it's important to see that the use of presence here is an
optional part of the pubsub dance, rather than an integral part (that's
why JEP0024 describes it as optional)

> 
> 3. Message to send the actual data. The message element already supports
> 'headline'.

This is where our paths divide. But it's not that there's a 'right' and
a 'wrong' way to go about it. Of course, a <message/> element seems
appropriate to send data. That's what we do all the time in
conversations, right? There were a number of reason for going for an
IQ-set over a message:

- the publishing is done by an IQ set; the pubsub component is
  philosophically a 'transparent' component in many senses, so why
  change the traffic container as it's passing through?

- the IQ-set implies (to me) slightly more of a 'contractual' or 
  'with-intention' feel to me; sending a message is (again, to me)
  a more 'take-it-or-leave it' thing, whereas an IQ-set is 'here is
  what you asked for, be grateful!'. Well, of course, these are very
  wishy-washy terms, I'm just trying to explain the contents of my
  gut on this, as it's as much a gut-feel as anything else

- there is precedent for IQ-set used in 'pushing' data; witness the
  way that search results can be obtained in two different ways in
  an iq:search context, for example; also (although this is somewhat
  up in the air at the moment in other recent threads here :) look at
  'live' browsing, where IQ-sets are used for pushing data.

- the IQ-set pushes could (again, philosophically) be seen as a 
  continuation of the conversation that the _subscriber_ had with the
  pubsub component:

  subscriber: what am I subscribed to at the moment? [IQ-get]
  pubsubcomp: these things [IQ-result]
  subscriber: I'd like to subscribe to this as well [IQ-set]
  pubsubcomp: ok [IQ-result]
  ...
  pubsubcomp: here you are (published data) [IQ-set]
  ...
  pubsubcomp: here's some more (published data) [IQ-set]
  ...
  ad nauseam [*]



[*] actually, regarding ad nauseam, I've seen that at least two
pubsub-like systems that I've looked at are set up so that subscriptions
automatically expire after X hours/days/whatever. Is this something
we ought to consider as an extra option?


Anyway, sorry for going on, but I thought I'd try and explain our (my?)
reason for IQ-set. I think (personally) there's a much stronger case
for IQ-set than message. (And although it was perhaps only an example,
where you talked about headlines, pubsub isn't restricted to what 
'headline' may (or may not ;-) imply).

Cheers
dj



More information about the Standards mailing list