[Standards] Proposed XMPP Extension: Service Discovery Notifications

Peter Saint-Andre stpeter at stpeter.im
Mon Jan 7 14:27:31 CST 2008


Joe Hildebrand wrote:
> 
> On Jan 7, 2008, at 10:53 AM, Peter Saint-Andre wrote:
> 
>>> I would expect that to only be there if the original request had a 
>>> node (in the disco sense) in it.  The node is required in the XEP-60 
>>> schema, so there has to be something, but it would be nice to be able 
>>> to distinguish the "no node" case from a disco publish (see section 5 
>>> of XEP-30).
>>
>> I think the MUST in XEP-0060 is a spec bug, because when you subscribe 
>> to the root collection node you don't include a 'node' attribute.
> 
> I'm not sure.  Notifications there come in a collection tag, not an item 
> tag.

Oh, I thought you meant the subscribe, not the notify.

>>> Looking at the proto-xep this morning, I realized that I think we 
>>> should allow this for disco#info as well. The use case is that the 
>>> admin reconfigures a component at run time with connected clients.
>>
>> Isn't disco#info handled by caps? It *could* be handled by this 
>> mechanism if presence isn't shared, but we're assuming that presence 
>> is shared.
> 
> You often won't get caps from a component.  I'm imagining that I want to 
> get the disco#info of a groupchat service, and get notified when the 
> admin modifies the config.  I never did get presence from the groupchat 
> service.

Well if I'm going to send presence to the groupchat service I might like 
to receive presence in return (what if the service goes offline?). I see 
this as similar to sharing directed presence in a one-to-one chat with 
someone who's not in your roster. But I suppose there's no guarantee 
that the service will reciprocate.

>>> On the implicit/explicit bit, after thinking about it some more, I 
>>> really don't want to have to implement caps in all of the components 
>>> that are going to use this.
>>
>> Simple clients, complex servers?
> 
> Small change to clients that have to be modified, large change to lots 
> of different places in servers, including caching, hashing, and state 
> management.

"One small step for clients, one giant step for the network."

Explicit subscribe would still require changes to lots of components, 
but the changes would not be as significant in scope as adding PEP 
everywhere.

>>> I can't think of a way to have both, either, since you would have to 
>>> include the explicit subscription in all requests;
>>
>> What might break if clients (and other entities) start including the 
>> <subscribe/> element in all their disco query requests? I suppose 
>> we'll find out (and any responding entity that breaks has a bug, since 
>> it must ignore elements it doesn't understand according to RFC 3920).
> 
> +1.  The biggest issue I would expect is programs that expect the query 
> to be empty swapping to/from, and adding to the existing query element.  
> In that case, you'll receive the subscribe element back, which is why 
> I'm glad that we look for "subscription" in the response.

Heh, true.

>> I'm still pondering. :)
> 
> Me too.

Another consideration is that a newly-connected client might send a very 
large number of service discovery requests. E.g., I have 1711 people in 
my roster. Will my client send a service discovery request to each one? 
If so, will include the <subscribe/> in each one? I don't see how it 
will determine whether to include the <subscribe/> (it can't do so based 
on the service discovery identity because we're saying that it might 
want to include the <subscribe/> in the disco#info request) so I assume 
it will do so in every request. Is that acceptable? Or is it better to 
go the PEP route? (Yes, there is more work involved on the component 
side, but clients can be relatively dumb yet get this functionality at a 
low cost. Perhaps there could be code re-use from servers that do PEP to 
components that want to. And this moves us a step closer to things like 
PEP in chatrooms.)

As I mentioned, it seems to me that we already have caps for dynamic 
communication of disco#info data. In my experience it's disco#items 
where we have the gap (the main use case I've heard about is wanting to 
find out about newly-created chatrooms at a groupchat service, but there 
may be others).

But I'm still pondering... :)

Peter

-- 
Peter Saint-Andre
https://stpeter.im/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7338 bytes
Desc: S/MIME Cryptographic Signature
Url : http://mail.jabber.org/pipermail/standards/attachments/20080107/8a2df04d/attachment.bin 


More information about the Standards mailing list