[JDEV] Jabber as Application Middleware

eric at openthought.net eric at openthought.net
Mon Mar 5 13:19:34 CST 2001


Hello all,

I am interested in using Jabber as a sort of middleware for several
applications at my place of work.

The details:
Currently, we have two sets of programmers.  The first set develops
applications in Foxpro and Visual Basic for in-house use.  The second develops
applications in Perl and HTML for web use.

At first, the applications were all unique.  However, it has gotten to the
point where both sets of develops are creating the same programs.  The only
difference at all is the method it is viewed.  Before it becomes a game of cat
and mouse trying to keep the programs the same, we need to find a way to reuse
the code base.

The proposed solution:
We would like to use some sort of middleware system where we can have a single
backend for our applications (would object server be an appropriate term?), and
two front ends to handle the visual part of the apps.

After exploring several different avenues, the Jabber project came to mind.
And as two people can easily talk to each other, why not two applications?  The
idea would be to have the 3 parts of these applications log in to the Jabber
server (2 frontends + 1 backend).  An example of a front end might be a Perl
script on a webserver.  A web based user might request a particular page
containing some data that needs to be pulled out of a database.  The frontend
-- routing through the Jabber server, queries a particular function on the
backend, who would respond with the appropriate data.  In this case, querying a
function means sending an IM to the JID the backend is logged in as.

My questions:
1. Is Jabber currently up to this type of usage?

2. What protocol would be the recommended method of handling the style of query
I mentioned?  Some ideas I had were embedding a CORBA message within the IM
that the applications send to each other.  The same could probably be done with
XML-RPC.  However, is there a method already in use for a task like this in
Jabber?  And if not, is there a better method then CORBA/XML-RPC?

3. Speed -- upon proposing a system like this, the first question my boss asked
was what kind of performance hit were we going to take for having a distributed
system.  The web based system isn't really the issue, it's the internal one.
Currently, users are able to use their up and down arrow keys to scroll through
a list of names.  Every time they hit the down arrow key, it grabs a list of
data for that particular person from the database.. meaning every action they
do requires a full round trip to and from the DB.  Since there are almost a
million records, grabbing every entry at once isn't an option.  Is it a
reasonable goal to expect every round trip to take under 500ms with Jabber, if
it currently takes 100-200ms in it's stand-along form?  Purchasing hardware is
not a problem -- we are perfectly willing to get gigabyte ethernet or whatever
if it would make a difference.

4. Just to have some comparisons, what are your opinions on why a system like
this using Jabber would be better then something like Oracle Application
Server, xmlBlaster, and other such products?  And if Jabber isn't the right
tool here, what is?

5. Are there any other projects out there that are trying to do anything like
this?

Assuming we use Jabber, we'll be putting a lot of development effort into our
apps.  I am intending on making at least some of what we develop open source,
so we can get this stuff out into the community.  Maybe that'll inspire some
people to assist in getting us pointed in the right direction :-)

I look forward to your opinions and insight.  Thanks!
  -Eric




More information about the JDev mailing list