[JDEV] Re: jabber; what would you like to see?

Bernino Lind lind at hlgroup.dk
Thu Sep 25 03:39:56 CDT 2003

Dear sirs,

I would like to see jabber move in a direction where LDAP and RDBM is a
robust integrated part of the infrastructure.

Also and in extension I would like to see a non-agent'ified middleware
component - ie. that a programmer can pick any packet or piece of packet
and apply whatever program to this packet with no restrictions - aka the
way FORMs are to http->html and php is to html.

Right now I have tweaked the current xdb_sql so that it meets my
requirements (ie. I have some processing in the C code related to my and
only my project which manipulates the packets I receive, for example "if
username == bernino { printf 'woooo'; }" - what I call middleware, since
it is not backend nor frontend).

I do not like prototyping in C - it reminds me too much of my days in
astrophysics doing models of the universe in Fortran 77 on a
supercomputer - damn it takes so much time. I like prototyping in Perl
or other highlevel language.

So I have made my own xdb method, namely opening for an external
component, which then handles packets in the namespaces I have told it
to, and passing the data the packets might contain to forexample DBI.
Just like the xdb_perl project.

In this work I have met one really irritating limitation: passing data
along is not very easy in a iq-get packet. I dont know if it is me who
is lame, but I simply cant find any examples of a iq-get packet that
sends more data than the username and xmlns.

Lets say I would like to make a query where I fetch entries in my roster
groups that have been online within the last day. This is where the
current limiation lies within Jabber - its not possible in any other way
than creating an external component, a specific xmlns and have this
specific xmlns coded with static information, in this case the distance
in time from last login.

What I picture is that one could have a scripting languague within the
packets, for example:

<iq type="get">
<query xmlns="bla bla">
for ($i=0; $i<$@#users) {
   echo "<message to=@user[$i]> In my new roster bla bla ";
createrostergroup(@users, "newrostergroup");
return @users;

And a backend language, jabberlang:

<iq type="get">
<query xmlns="jabberlang">

When jabber sees the jabberlang packet it know to fire off the test.jab
file, which is say a python program or whatever and it passes the value1
and value2 to the program. The test.jab does whatever to this data with
the full access to jabber at hand, ie. xdb etc. is available, and then
it returns whatever result to the client.

In this way one it would be trivial to create a groupware project, voip
... whatever utility out of the infrastructure, since in this way what
we have achieved is completely generalised generic xml socket server -
in difference to what it is now: a more or less specific project aimed
at messengers.

It is not that it is not possible doing tricks with jabber - I myself
have created a multiuser gameplatform via flash and web and with a
PostgreSQL backend - its just that when one works out such a project it
becomes evident that the rationale behind jabber is not a generic set of
building blocks, as stated in the DJ Adams book, but rather a specific
messenger project which can be tweaked to behave as you would like it

Best regards,
Bernino Lind

-----Original Message-----
From: jdev-admin at jabber.org [mailto:jdev-admin at jabber.org] On Behalf Of
Sent: Wednesday, September 24, 2003 12:16 PM
To: jdev at jabber.org
Subject: [JDEV] Re: jabber; what would you like to see?

Personally, I'd love to see Jabber making inroads into the 
groupware/collaboration scene (maybe along the lines of Groove).

-- GuruJ.

milk wrote:

> out of interest, i was just wondering what everyone thinks about what 
> the
 > most important current/upcoming jabber features are, what features do
> you personally think need to be developed/expanded, and what 
 > would you like to see jabber doing/working with in say, one or two  >
years time?

jdev mailing list
jdev at jabber.org

More information about the JDev mailing list