[JDEV] How to handle multiple clients

Aron Atkins atkins at chrysalis.com
Tue Jan 12 14:25:21 CST 1999

> >  . client sends jabber message to john at doe.org.. the message is
> >    first sent to whatever machine handles jabber queries (jabber.doe.org).
> >    if that user is not currently running jabber, a deny reply is sent
> >    back to the client.
> Well, firstly, the Jabber server at doe.org _should_ be storing those
> incoming messages so that when john comes online with Jabber, he gets them
> presented to him, similiar to how ICQ works when someone isn't online(send
> through server).

i think this is a bad mode of operation. if the server stores the message,
then we move away from having the server simply be in charge of funneling
messages. make jabber ( & its protocol ) simple by design and by intent.
client sends message. server pushes message to proper receiver. if there
is no receiver or if the receiver denies the message, then server sends
a message back to the client announcing the denial. the client is responsible
for handling all types of errors. we'll avoid quite a few problems in the
future if we make as little as possible happen at the server.

it seems we have to make a decision -- jabber is just another implementation
of ICQ and has to behave according to spec OR we improve on some of the parts
of ICQ we don't like.

> Since Jabber and email can easily step on each others toes, make sure to
> avoid any crossover when it's not clear and benificial to both.  Right now
> I see two ways of doing this:  one is to have a module in the Jabber
> transport, so that a user can have messages sent to their email address
> when they are offline, and two is to allow for convience purposes only a
> *simple* way of having a Jabber message be forwarded to a non-Jabber user
> that does use email, and for them to reply.  Even the second one is
> questionable and may be too much.

if you have the client receive a deny request from the server, the client
can then do whatever you want. the deny types could be:
  . no such user
  . user not logged into jabber server (no receiving client)
  . user denied message

in all of the three cases, you can call the same module / external email
sender to send a mail message to the recepient.

> Probably also the best... BUT, I think it would be cool/good if the mail
> clients added direct support for Jabber :)

this gets into a chicken-egg contest. i don't think we'll _ever_ convince
mail clients to add direct support for jabber. we _can_, however, design
jabber to be extendable so we can plug-in or interface with whatever
mail reader we want to.

i guess i'm still unchanged in my opinion:
 . servers should do minimal work.
 . handling messages for resend or sending as an email message
   should be done by the client.
 . jabber (client or server) should not perform email operations,
   but dispatch then to some user-configurable program for sending

another advantage to the first point is that if we maintain that servers
will do minimal work, it will be easier for us to convince people to 
install servers at their sites. if jabber is complicated (with either
setup, security, or other issues), people will not be willing to install
it so easily.

 aron atkins                                 (atkins@{chrysalis.com,wpi.edu})
 * j a d e d *               <A HREF="http://www.gweep.net/~jaded/">jaded</A>

More information about the JDev mailing list