[JDEV] What's the best way to build a custom Jabber server?
Matthew A. Miller
linuxwolf at outer-planes.no-ip.COM
Sat Apr 12 08:58:43 CDT 2003
In your particular case, starting from jabberd or starting from scratch
will probably take the same amount of blood, sweat, tears, and time. On
the one hand, most libraries expect to be connected to a running
jabberd/JCP/TIMP/<insert favorite jabber server here>. On the other
hand, jabberd was developed with the general populace in mind, and its
myriad of components reflect that.
<plug type='shameless'>
However, if you're not afraid of using a Java library, I would suggest
you take a look at JSO. It is quite capable of running as a socket
acceptor, and takes advantage of non-blocking I/O so that a number of
Jabber connections can be pooled into the same thread.
While most of its dependencies are packaged within the jso-full.jar, the
one requirement left is J2SE 1.4 or above. However, I've been seeing
this become less and less of an issue.
</plug>
- LW
GuruJ wrote:
> 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.
>
>
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
--
Matt "linuxwolf" Miller
JID: linuxwolf at outer-planes.net
E-MAIL: linuxwolf at outer-planes.net
- Got "JABBER"? (http://www.jabber.org/)
More information about the JDev
mailing list