[standards-jig] disco, x:data, etc...

Peter Saint-Andre stpeter at jabber.org
Wed Feb 19 00:11:35 UTC 2003


Matt's explanation is correct. A disco node is not globally addressable.
In fact, the whole point of a node is that it is not addressable at all --
it is an object that an addressable entity knows about, but is not itself
addressable. As Matt says, you cannot communicate directly with a node,
it's just some object that a system or application knows about, and to
which the system or application provides the only interface.

Hope that helps.

Peter

--
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.php

On Sun, 16 Feb 2003, Matthew A. Miller wrote:

> Hola,
> 
> First, the use of x:data you have is not "as spec". x:data is not meant 
> to "stand alone" in the form you are using it.  Rather, this usage is 
> exactly what x-commands (JEP-0050) was designed for.  You should look 
> into using x-commands where you have stand-alone x:data forms.
> 
> As for making "node" part of the globally addressing system, I don't 
> think it necessary. "node" was not intended as part of the global 
> addressing.  It was intended as a way to report non-addressible items 
> via disco.  I made each command a disco node because they are not 
> directly addressible, but wanted to make better use of disco for 
> discovery and reporting.  You address the entity, not the command.  To 
> explicitly synchronize with disco, x-commands uses "node" to identify 
> the specific command.
> 
> If you find the need to address a "node" globally, it would be better to 
> make it an addressible entity (use only the JID) and leave the use of 
> "node" for items that should not be directly communicated with.
> 
> 
> -  LW
> 
> Alexey Shchepin wrote:
> > Hi!
> > 
> > When I implement online interface in ejabberd [1] to configure and monitor it,
> > I try to use modern things like disco, x:data and "statistics gathering"
> > (JEP-0039).  Also I try to make as less changes as possible in Tkabber to see
> > how generic this combination can be.
> > 
> > I show below example of how it works to better show problem:
> > 
> > Client requests disco items:
> > <iq id='3'
> >     to='e.localhost'
> >     type='get'>
> >   <query xmlns='http://jabber.org/protocol/disco#items'/>
> > </iq>
> > 
> > Server sends disco items:
> > <iq from='e.localhost'
> >     to='test at e.localhost/tkabber'
> >     id='3'
> >     type='result'>
> >   <query xmlns='http://jabber.org/protocol/disco#items'>
> >     <item jid='echo.e.localhost'/>
> >     <item jid='vjud.e.localhost'/>
> >     <item jid='e.localhost'
> >           name='Configuration'
> >           node='config'/>
> >     ...
> >   </query>
> > </iq>
> > 
> > Client discoverings node "config":
> > <iq id='5'
> >     to='e.localhost'
> >     type='get'>
> >   <query xmlns='http://jabber.org/protocol/disco#items'
> >          node='config'/>
> > </iq>
> > 
> > Server sends disco items in node "config":
> > <iq from='e.localhost'
> >     to='test at e.localhost/tkabber'
> >     id='5'
> >     type='result'>
> >   <query xmlns='http://jabber.org/protocol/disco#items'
> >          node='config'>
> >     <item jid='e.localhost'
> >           name='Host Name'
> >           node='config/hostname'/>
> >     <item jid='e.localhost'
> >           name='ACLs'
> >           node='config/acls'/>
> >     <item jid='e.localhost'
> >           name='Access Rules'
> >           node='config/access'/>
> >     <item jid='e.localhost'
> >           name='Remove Users'
> >           node='config/remusers'/>
> >   </query>
> > </iq>
> > 
> > Client requests disco info in node "config/acls":
> > <iq id='8'
> >     to='e.localhost'
> >     type='get'>
> >   <query xmlns='http://jabber.org/protocol/disco#info'
> >          node='config/acls'/>
> > </iq>
> > 
> > Server replies:
> > <iq from='e.localhost'
> >     to='test at e.localhost/tkabber'
> >     id='8'
> >     type='result'>
> >   <query xmlns='http://jabber.org/protocol/disco#info'
> >          node='config/acls'>
> >     <feature var='jabber:x:data'/>
> >   </query>
> > </iq>
> > 
> > Client requests x:data form from "config/acls" node:
> > <iq id='9'
> >     to='e.localhost'
> >     type='get'>
> >   <query xmlns='jabber:x:data'
> >          node='config/acls'/>
> > </iq>
> > 
> > Server replies:
> > <iq from='e.localhost'
> >     to='test at e.localhost/tkabber'
> >     id='9'
> >     type='result'>
> >   <query xmlns='jabber:x:data'
> >          type='form'
> >          node='config/acls'>
> >     <title>ACLs Configuration</title>
> >     ...
> >   </query>
> > </iq>
> > 
> > You can see some screenshots of how this looks in Tkabber here: [2].
> > 
> > The problem is that "node" attribute inserted in "query" tag, and not only in
> > disco or in x:data namespaces, but in all other namespaces (e.g. in
> > http:/jabber.org/protocol/stats).  And JEP-0050 also use such convention.  This
> > works for IQ stanzas, but what to do if we will need to send message to node?
> > IMHO "node" attribute must be on the same level as "jid" attribute.  And we can
> > define that "jid" is an address of Jabber entity and that "node" is an address
> > inside this entity.  So we will have something like this:
> > 
> > <iq id='9'
> >     to='e.localhost'
> >     node='config/acls'
> >     type='get'>
> >   <query xmlns='jabber:x:data'/>
> > </iq>
> > 
> > Or we can define that node must be fourth element in a JID,
> > e.g. user at server/resource:node/subnode/subsubnode... and deny to use in
> > resource ":".
> > 
> > Any thoughts?
> > 
> > 1. http://www.jabber.ru/projects/ejabberd/
> > 2. http://www.jabber.ru/projects/ejabberd/guide.html
> > 
> > _______________________________________________
> > Standards-JIG mailing list
> > Standards-JIG at jabber.org
> > http://mailman.jabber.org/listinfo/standards-jig
> 
> 
> -- 
> Matt "linuxwolf" Miller
> JID:	linuxwolf at outer-planes.net
> E-MAIL:	linuxwolf at outer-planes.net
> 
> - Got "JABBER"? (http://www.jabber.org/)
> 
> _______________________________________________
> Standards-JIG mailing list
> Standards-JIG at jabber.org
> http://mailman.jabber.org/listinfo/standards-jig
> 




More information about the Standards mailing list