[JDEV] What's the best way to build a custom Jabber server?

GuruJ GuruJ at mbox.com.au
Fri Apr 11 08:32:12 CDT 2003


Hi everyone,

I've been tossing around the idea of building a new Jabber client/server 
  application suite that is specifically targetted for use in internal 
group environments.

The basic distinguishing ideas for this would be:
(1) Everyone is visible to everyone else (ie. complete public directory 
listing).
(2) People are assigned to groups ('departments', 'project teams', 
whatever descriptor seems appropriate).  Group membership is a primary 
determinator of who sends 'presence' messages to who.
(3) Each group can create 'tasks' or 'projects' that become the primary 
focus for collaboration.  Whenever an IM conversation takes place, it 
gets logged within the context of a selected task.
(4) The application may include some facility for collaborative text 
editing, or it may simply allow users to mark useful resources (via 
hyperlinking or some other method).

Ideally I would like to use a logical combination of open architectures 
to do this (ie. Jabber/XMPP for messaging, LDAP for directories, SQL or 
just a vanilla filesystem for conversation logging)...

Now the big question: what's the best way to start this?

In the opinion of anyone out there, do you think my best shot is to:
(1) Grab the jabberd code and hack at it directly;
(2) Grab the jabberd code and look at extending it through .so components?
(3) Start from scratch using a Jabber toolkit (don't know which one, all 
toolkits I have discovered thus far all seem aimed at building Jabber 
*clients*, not servers)?
(4) Start from scratch and code the server from the ground up?

If I had to go with option (3) or (4), I'd prefer to code the server in 
a high-level language such as Perl or Python.  I'm not necessarily 
aiming to make this commercial-quality, highly-scalable code; I just 
want to demonstrate a proof-of-concept Jabber server that uses IM in a 
way which isn't attempting to clone ICQ or AIM.

(I know some of you will say that I am attempting to clone Groove 
instead.  Well, yes and no.  While there are some similarities, I had 
this idea before I ever *heard* of Groove; I'm actually trying to build 
something that would have filled a niche in a company I worked for in a 
past life.)

Sorry for my long-winded e-mail, but I'm really keen to get some 
feedback from Jabber people about the best way to get started, and I 
guess to know whether you think the idea is even worth pursuing.

Thanks for your patience,

Stephen.





More information about the JDev mailing list