nstant messaging services are really just turbocharged e-mail systems. While the protocols, clients, and servers are very different, the result is very similar to an on-the-fly exchange of short e-mail messages. Of course, many instant messaging systems have gone far beyond this, integrating with video conferencing software, allowing voice messages, avatar-based chat, and many additional features. Jabber is one of the most quickly growing instant messaging applications. It offers users a wide range of platform support and easy extendibility; its open-source nature makes it a perfect platform for developers who are looking to create a custom solution.
In fact, next to the Linux operating system, Jabber represents the most successful open-source project to hit the big time, and it’s only been available for a few months. Overall, the Jabber project has shown the true strengths of the open-source development model. A loose-knit group of programmers came together to create a truly extraordinary product. Jabber offers just the right mix of new features and wide platform support, while also providing an easy upgrade path and simplified communication with users of other systems via its transport server system.
If you’re a developer looking to contribute to a good open-source project, or if you are in the market for a new and improved way to handle instant messaging, Jabber is definitely worth a close look. The rest of this story explains why.
Proprietary Nature of Most IMs a Major Issue
The biggest problem with the many existing instant messaging platforms is their proprietary nature. Users of one system cannot communicate with those of another system. In the end, users are forced to run multiple clients on their machine and keep track of who is on which service. Also, the providers of these proprietary services rarely develop clients for any but the most popular operating systems. Linux users, for instance, don’t have a vendor-supplied client for AIM, MSN, or Yahoo. Instead, developers must develop clients for these unsupported platforms (such as GAIM or GICU), often with vastly reduced functionality.
As far as platform support goes, there are Jabber clients for most any platform out there. Several client packages are available for Linux and Windows environments, and there is one for Macintosh–even a client for the Newton MessagePad! In its current state, Jabber allows users to connect to servers and exchange messages with other Jabber users. Various Jabber clients (such as Gabber and Jarl for Linux, and WinJab and JabberIM for the Windows platform) offer different features, and each is at a different stage of development.
Jabber is designed to easily integrate with other instant messaging systems. Currently, there is support for the ICQ and AIM protocols from America Online, Yahoo! Instant Messenger, MSN Messenger, and others. While it’s always great for users to move from these other systems to Jabber, we can’t all convince our grandparents to switch once they’re actually hooked up to one of these systems. Also, many companies standardize on one of the existing systems, and the migration to an in-house Jabber-based system takes time. But the ease with which users can communicate with multiple instant messaging systems via a Jabber client can help this process along greatly. The benefits of Jabber can be realized, while users continue to communicate with those outside the company as they always have.
This interoperability with other Instant messaging systems is one of the biggest strengths of Jabber. By handling translations on a server with which all other Jabber clients and servers can communicate, there is no need to alter the end-user’s Jabber client configuration or distribute a new version of the Jabber server whenever a new service is added. Instead, the new service can be added, and users can add users of that service to their roster.
In the background, some nifty procedures take place. A “transport” server works to translate messaging information coming from a Jabber server to a foreign instant messaging protocol, such as ICQ. To other users on the ICQ network, the Jabber user appears to be just another ICQ user. That person will have an ICQ account number, and their client will be set up to log in to ICQ in addition to Jabber when they are online.
Anyone Can Set It Up
Jabber clients, servers, and transports communicate via XML (Extensible Markup Language). Jabber doesn’t rely on a centralized server to keep the system running. Anyone can set up their own Jabber server and transport servers. And new Jabber clients don’t need to deal with the headaches of communicating with various other messaging systems. They simply encode the message, send it along to a server, and it is translated to the other messaging system via a transport server.
By standardizing on XML, Jabber has become the most highly flexible and easily customizable messaging system around. And since new messaging systems can be added to Jabber by simply bringing up another transport, the development costs for Jabber clients and servers is minimized.
Of course, everyone who connects to the system needs a unique user ID. With Jabber, this ID looks very similar to an e-mail address. The Jabber ID is composed of a username and the hostname of the Jabber server, looking like “[email protected]” or something similar. In many cases, this can be identical to a user’s e-mail address, greatly simplifying things for those who want to give their Jabber info to friends and business contacts.
Lots of Subprojects
There are quite a number of Jabber subprojects, ranging from clients and servers to custom-built transport server applications and various Jabber development tools. The Jabber movement seems to be quickly picking up speed, with more than 50 active subprojects currently in the works and an increasing number of Jabber client and server downloads.