[jdev] Single host, multi service.

Ralph Meijer jabber.org at ralphm.ik.nu
Tue Sep 27 10:32:58 CDT 2005

On Sun, Sep 25, 2005 at 04:43:55PM +1000, Trejkaz wrote:
> On Sun, 25 Sep 2005 09:47, Tijl Houtbeckers wrote:
> > The problem I can see is that if you "disco" to a server, it will list all
> > the MUC channels. Though I think this can be solved by using resources.
> > Instead of pointing from example.org to conf.example.org, you can point to
> > example.org/conf, which can than give a list AFAIK of rooms @example.org
> > with no problem.
> Easier yet.  It could return a node of the very same JID, without using up a 
> resource. :-)
> Sometimes I think it would have been neat if nodes were part of JIDs in the 
> first place... then each service could have been a node off the server's own 
> JID, and everything would be happy.  Well, maybe.

For pubsub, JEP-0060 section 4 (Addressing), mentions how you can do
this by putting the node identifier in the resource part of the service's
JID. Any pubsub node identified by NodeID at pubsub service example.com
would be addressable using the JID example.com/NodeId. If you have a
personal pubsub services (virtual?) for user at example.com, then you could
have user at example.com/NodeID point to the NodeID node for this user.

The idea of running multiple service off of one domain does not sound too
bad to me. As mentioned before this is done in other application
domains, too. Mailing lists often share the same namespace as 'end
users' (jdev at jabber.org vs. ralphm at jabber.org), and websites URL
hierarchies almost never represent the directory structure of the actual
files/scripts/etc. that are served. Also think mod_rewrite in apache.

One may argue if we should really distinguish between different types of
Jabber entities with regard to grouping them in different domains. We
have MUC rooms, IM users (and by extension their client instances using
a particular resource), bots (which now usually share the same namespace
as IM users), pubsub services, gateways, etc, etc.

For gateways it makes sense to use another domain since you are
importing the gatewayed service's namespace. For most other services,
the distinction is really an implementation detail and/or namespace policy.

If I ever get to implement a 'Jabber Server' I might just integrate
services under one domain, basically multiplexing the namespace across
those services. Note the a 'Jabber Server' is really just some entity
that provides a s2s service. For example, a pubsub service could just as
well be an application that implements s2s.



More information about the JDev mailing list