[jdev] Using Jabber as service management infrastructure

Steve Fink sfink at reactrix.com
Wed Feb 25 21:00:22 CST 2004

I apologize in advance for the naivete of these questions, but I have 
been having a very difficult time dipping my toes into the Jabber 
waters, even though I have been religously reading as much of the 
documentation I can find.

If I wanted to have some "services" available on my Jabber network, 
should they be Jabber clients, or server components/plugins/whatever? 
For example, I'd like to expose a couple of build servers and a combo 
DNS/DHCP server as a service that I can send messages to from gaim, and 
have them kick off builds, add another MAC/IP pairing, or whatever.

I will assume they are clients.

Then how can I make them automatically visible in my buddy list when 
they are created and come up? I haven't quite grasped the whole presence 
& roster models yet. I'd like to be able to subscribe to "all services" 
and be informed about new services as they are added, rather than 
needing to find out about them through some other channel.

Should I (for example -- I don't know if I am making any sense here) 
create a client which is a service discovery node, and add it to my 
buddy list, and then have it send out roster exchange messages when 
services are created?

I am using the perl Net::Jabber module; how do I have a service 
automatically accept a roster addition with it (or with anything; I 
assume the APIs will be similarish.)?

Is there a good document describing the roster model? Or, even better, 
where can I find a good "Jabber overview" document that describes the 
various jabber concepts from the standpoint of someone who is trying to 
use it for network infrastructure, rather than IM?

I downloaded the default jabberd-2.0s2, but most online documentation 
appears to be for the 1.4 series. Is there a good place to find v2 docs?

In general, should I get used to reading wads of XML when trying to 
figure out what the heck is going on? I'm more accustomed to thinking in 
terms of API calls that should be made, but I'm getting the feeling that 
Jabber people think of API calls as merely a means to produce the 
appropriate glop of XML. (I suppose I think the same way about HTTP, so 
I won't complain.)

If I'm looking at a wad of example code, what's an easy way to figure 
out whether it's written for/going to work with jabber v2? Is there a 
good document on the API differences? (Should I downgrade to v1?)

Sorry for the flurry of probably dumb questions. I have read through the 
server admin's guide, which helped get me started, and the user's guide, 
which was only good for setting up IM, and various other bits of 
documentation. Oh, and the article "Instant Messaging As A Programmer's 
Tool" in Dr. Dobb's Journal. Are there other canonical docs that might 
be helpful here? I'm feeling like Jabber was very much originally 
intended for the sorts of things I'd like to do, but I haven't yet been 
very successful in finding something that presents how to do these 
things and think about in them in a way that fits within my limited 
mental capacity.

Many thanks in advance,

More information about the JDev mailing list