[Council] meeting log 2006-11-29, PEP
Ian Paterson
ian.paterson at clientside.co.uk
Thu Nov 30 03:48:12 CST 2006
Hi,
I'm +1 for PEP enabling multiple nodes under one namespace. This will be
useful for some use cases (e.g. several blog feeds per person).
However, IMHO we *also* need to keep the possibility of well-known node
names (and well-known item IDs). Well-known is good because it eliminates
unnecessary discovery steps.
Discovery is fine when users are browsing data. But for cases where the
client already knows exactly what it needs, if it has to perform discovery
steps before it can actually request the data then IMO that is bad:
1. The need for asynchronus code goes against our simple client mantra
2. Introduces delays (bad for users)
3. More network traffic (especially if you need to disco#info multiple
items)
For example, imagine we were to write a Web of Trust XEP based on PEP. If we
allow well-known node names then, to discover if Peter is reliable I can
make a single request to each contact on my roster (see stanzas below). This
would not be possible if nodes (and item IDs) are not well-known.
<iq type='get' to='ralphm at ik.nu' id='pep1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:xmpp:wot'>
<item id='stpeter at jabber.org'/>
</items>
</pubsub>
</iq>
<iq type='result' to='ian at zoofy.com' from='ralphm at ik.nu' id='pep1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:xmpp:wot'>
<item id='stpeter at jabber.org'/>
<level xmlns='urn:xmpp:wot'>9</level>
</item>
</items>
</pubsub>
</iq>
Another example might be if Peter sends me a signature and the fingerprint
of his public key, but I have no copy of his public key, then it is easiest
for me to make a straight request for the public key
(node:'urn:xmpp:pubkeys', id='thefingerprint'). I can only do this if PEP
allows the pubkeys XEP to specify well-known node names and item ID values.
Note: For these two example use cases we need to be able to persist more
than one publish event. i.e. persist multiple items independently of when
they were published. Do people think this requirement could be added to PEP?
Finally, can I please also get people's feedback on the idea for PEP and/or
pubsub posted to the list on Nov 19th:
"To make PEP-based Private Data Storage easy for clients, we
would need to allow automatic node creation for persistent as well as
transient nodes (in addition to for any access model). For example by
supporting a <configure/> sibling of the <publish/> element (see stanza
below)? The <configure/> element would be ignored if the node already
exists. This would also be a nice short-cut for clients to use in cases
other than Private Data Storage."
<iq from='juliet at capulet.com/balcony' type='set' id='create-bookmarks'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://jabber.org/protocol/prefs'>
<item id="fje98djh2j9s">
<storage xmlns='storage:bookmarks'>
<url name='Complete Works of Shakespeare'
url='http://the-tech.mit.edu/Shakespeare/'/>
</storage>
</item>
</publish>
<configure>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#node_config</value>
</field>
<field var='pubsub#access_model'><value>whitelist</value></field>
<field var='pubsub#persist_items'><value>1</value></field>
</x>
</configure>
</pubsub>
</iq>
- Ian
More information about the Council
mailing list