Sunday, October 30, 2005

Jabber

AOL, MSN, ICQ, and Yahoo! all have instant messaging networks. About 6 years ago, a superior alternative known as Jabber (or XMPP) was developed. It is now a published standard. Jabber is superficially very similar to other instant messaging systems. Each user has a Jabber ID and a roster of some other Jabber users. The online presence of those on the list can be seen, and they can be messaged. But Jabber is different:

  • Anyone can run a Jabber server. Users are not reliant upon the continuing beneficence of a large corporate entity. Users with accounts on different servers can communicate, just as with e-mail. My Jabber ID is jeff@jgarrett.org and my home server is jgarrett.org, but any Jabber user can message me, and vice versa.

  • There is not a privileged (often buggy, bloated, and poorly integrated) "official" client. All have access to the standards defining Jabber, so -- in theory -- all clients are created equal. Those who aren't on the most popular platform have access to a first-class client with the same features. Even those on the most popular platform have a choice of client.

  • Authorization is required to view a Jabber user's online presence. This authorization is neither permanent (it may be revoked) nor reciprocal. In fact, more fine-grained control is possible. A user -- though online and available -- can choose to be "invisible" to some or all.

  • Users may be signed into their accounts multiple times. Inbound messages go through the connection with the highest priority. This is especially useful for nomadic computer users. Forgetting to close a connection will not affect the ability to use Jabber as usual on another machine.

  • A user's roster is stored on the server. It's therefore protected from data loss, and in a single central location.

  • Users may opt to have their basic information listed in the Jabber user directory. Other users can then find them more easily.

  • Gateways to other instant messaging networks exist. Not everyone uses Jabber instant messaging yet. :-)

  • Security was a priority from the start. The whole interaction with the server can be encrypted. Even more, using the magic of public key encryption, individual messages can be signed or encrypted.

  • The basic Jabber protocol was developed 6 years ago and has (almost) completed the Internet standards process. It has been widely used during this time, and is both stable and mature. Google is deploying its Google Talk based on the same technology. (Note however that not all of the features I mention are available on Google Talk. For example, Google Talk users cannot talk to most Jabber users not themselves using Google Talk.)

  • Despite the rigidity of the basic protocol, its structure allows for easy extensibility. Features not yet imagined or codified in the standard can be developed relatively quickly and share many of the advantages of the "standard" features. There is a body who oversees this process, and publishes these enhancements.



Convinced? The first step is to find a client here and a server here or use jgarrett.org. In the latter case, be sure to read this. Your Jabber ID will be of the form username@servername. Once you've chosen a server, you are free to choose the username portion. Then you use your client register the new account. (The server will tell you if the username conflicts with another preexisting one, or is otherwise disallowed.) Now you can sign into your Jabber account and start talking. If your browser is configured properly, you can even follow this link to message me.

For more information on Jabber, check out the Jabber user guide.