Articles Weblogs Books School Short Cuts Podcasts  

XML Messaging with Jabber
Pages: 1, 2, 3

"Well that's interesting," I hear you saying, "But what kind of fun stuff can Jabber do for me now?" The existing applications of Jabber are mostly centered around person-to-person messaging: individual and group chat, IRC, and connecting to other IM systems (currently AIM, ICQ, MSN, and Yahoo!), although Jabber also supports handy functionality like receiving news headlines via RSS:

Headlines in Jabber.

Headlines in Jabber.

Future applications of Jabber will include:

  • More person-to-person features, such as collaborative work environments (e.g., distributed whiteboards), gaming, robust message filtering and forwarding, and maybe even an SMTP transport so you can read your email in Jabber
  • Machine-to-person communications, for example, the ability to remotely monitor the state of a webserver via Jabber -- the server or a server log could be a Jabber resource with its own JabberID, to which you would subscribe for up-to-the-minute status information
  • Farther in the future, machine-to-machine communication applications which might be similar to remote procedure calls (RPC) -- these could range from the serious (let's say, automated pipeline monitoring) to the frivolous (e.g., your car could message your garage door opener when you get within 100 feet of your house)

As noted, the Jabber system was designed so that clients would be simple to create. This design philosophy has yielded good results, since clients are currently available for Linux/Unix, Windows, Macintosh, and several other platforms. In addition, efforts are underway to enable Jabber access for handheld devices, cell phones, and all manner of embedded systems. And, not to ignore the Web, several clients are in the works that use Java applets, Mozilla integration, and plain old HTML/JavaScript to enable Jabber communications over HTTP, which will be especially appealing to users behind restrictive firewalls.

Main Jabber websites: -- open source project site, mainly geared to developers. -- a commercial entity offering Jabber consulting, customization, hosting, etc. -- a news and support site focused on end users.

Useful documentation:

Jabber Technical Whitepaper -- lots of juicy technical info.

Jabber Programmers Guide -- even more juicy technical info.

Jabber RFC -- the Jabber project's submission to the IETF.

Speaking of firewalls, the Jabber developers definitely have issues of privacy and security at the top of their minds. For instance, your presence on Jabber is available only to those whose subscriptions you approve. In addition, Jabber supports SSL in communications between client and server, and PGP/GnuPG is being built into several Jabber clients (although it is not yet available at this date). Finally, the ability to run your own server (and mess with the source code if you want to) separates Jabber from the raft of proprietary IM systems out there, and is a big selling point with security-conscious individuals and organizations across the net.

At present the Jabber server runs on Linux/Unix only, and the installation process is, shall we say, not as simple as it could be. However, the forthcoming 2.0 server will be much improved in this and other respects (including much more robust scalability). Despite the setup challenges, there are currently over 1000 Jabber servers running throughout the world, with more coming online every day at a seriously accelerating rate. While Jabber is still a young technology, open source software is well-known for spreading like wildfire -- and the Jabber messaging platform may be experiencing the same kind of explosive growth that e-mail servers did in the early days of the Web. Only time will tell whether Jabber's open technology fulfills its promise to become a ubiquitous system for real-time, XML-based communication.

Peter Saint-Andre has been contributing to the Jabber/XMPP developer community since late 1999 and is currently Executive Director of the XMPP Standards Foundation.

Return to the P2P DevCenter.