TweetFollow Us on Twitter

Jun 01 MacTech Online

Volume Number: 17 (2001)
Issue Number: 06
Column Tag: MacTech Online


by Jeff Clites

Last month we began our coverage of P2P (peer-to-peer) technologies. The P2P field is being fueled by open-source projects which have sprung up in response to the popularity of specific proprietary applications in this genre, by generalizing, improving, or simply imitating them. Last month we discussed Gnutella, an open-source protocol for peer-to-peer sharing of files and other resources. Gnutella was inspired by Napster, generalizing the concept to support sharing of things other than music files, and decentralizing searches to avoid any one critical point which could be attacked, by either technological or legal means. This month we are going to look into Jabber, which takes its cue from instant messaging (IM) and chat products such as AIM (AOL Instant Messenger), Yahoo Pager, MSN Messenger, ICQ, and IRC. Jabber's goal is to provide a "universal" XML-based platform for instant messaging, which can bridge to other protocols as well as support new applications of messaging.

Jabber originated with Jeremie Miller's frustration with having to use multiple pieces of IM software in order to keep up with all of his friends, who were using a variety of different IM systems. His response to this proliferation was to come up with a protocol which was designed to both serve as a messaging platform on its own and to transparently bridge to others, so that he could use one protocol (and one client application) to communicate with all of his friends. Unsurprisingly, he chose XML as the basis for Jabber. So what is Jabber, exactly?

Jabber in a Nutshell

Jabber isn't a specific application, and the Jabber community likes to point out that it isn't a protocol either—they prefer to call it a platform. In truth, Jabber represents a collection of XML-based message formats, and the protocol for communicating them.

Jabber is completely XML-based, and communicates over client-server based TCP/IP connections, modeled on the email system. Users are identified by Jabber IDs, which resemble email addresses, and are of the form user@server/resource. (The "resource" portion allows the same user to connect multiple times from different applications or locations, and so the name of the client application or location, such as "home" or "laptop", is often used.) Jabber users begin a session by connecting to their local Jabber server. Messages are sent by addressing them to other Jabber IDs and handing them off to the local server, which routes them to the remote user's server in a manner similar to how email is routed and delivered. The remote user then receives the message via a connection to his local server.

Jabber's design philosophy takes XML seriously, and also sees as fundamental the placing of the bulk of the logic on the server. As mentioned above, one of Jabber's original goals was to bridge to other IM system, so that Jabber users could talk to other IM users without either really having to care or fully realize that they are using different systems. The technology which allows this accordingly lives on the server side, and Jabber users bridge to other IM systems by having the server act as their proxy—from the point of view of the foreign IM system, the server is the AIM client (for example), and it takes care of translating Jabber messages into AIM messages, and vice versa. This translation is done by components of the server called "transports" (or more recently, just "components"). The value of this approach is that it makes the creation of Jabber clients relatively simple, and additional functionality can be added by upgrading Jabber servers, without requiring a widespread client upgrade.

But Jabber doesn't just bridge to other systems—in the ideal situation, everyone could just use Jabber natively. As an IM technology in its own right, Jabber is full-featured: it supports "buddy lists" as well as notification of whether these users are currently online. It goes a step further than most other IM systems, in that buddy lists (called "rosters") are stored server-side, which facilitates notification of online status (called "presence"), as well as allowing users to connect to Jabber server from different machines using different client software without having to keep separate rosters in sync. Additionally, notification under Jabber occurs only with consent—a user must "subscribe" to another user in order to receive notification of whether they are online, and the other user has to authorize the subscription. This affords additional privacy, and could be used to combat spammers (by refusing messages from users to which one is not already subscribed, for instance). Also, Jabber supports the concept of traditional IM messages (which Jabber calls "chat"), group chats similar to IRC (called "group chat"), and more passive messages.

Strengths and Weaknesses

In additional to serving as a traditional human-to-human communication technology, Jabber is aspiring to serve as a mechanism for facilitating application-to-application (A2A) communication, or as a middleware to transport other types of messages. Fanciful potential applications include "smart" appliances which communicate in order to negotiate for resources (such as a coffee pot which turns itself on when the alarm clock goes off). As of yet, there don't seem to be any applications in this arena, and it isn't clear if this is a reasonable goal—other technologies such as Java's Jini have not seemed to take off in the "smart appliance" area, and for more traditional application-to-application communication there is already a great deal of underutilized technology out there, and the idea of an AI-like communication between desktop applications isn't realistically on the horizon. As a transport mechanism for other forms of inter-process communication there is potential, but Jabber doesn't have a clear advantage over the alternatives already available, and for some applications a protocol more directly designed for this task might work better.

In general, Jabber seems to suffer a little from what I would call the "premature need for generalization", and this is just one of the symptoms. Although Jabber is trying to be general-purpose, it's clear that it was designed with instant messaging in mind—for instance, its message types are "chat", "groupchat", "default", and "error". In truth, many of the new XML-based protocols today are trying to fill some perceived general need at the same time they are trying to fill a specific one. In general, I'd prefer to see a strong solution to a particular problem (such as the need for an open instant messaging protocol), and have generalization come later, if it's really needed and after some experience has been gained with the concrete application. Then, the original use could become one application of a more general technology, possibly after reimplementation.

Jabber is composed of open protocols and formats, and there are open-source implementations of clients and servers as well. The importance of this shouldn't be underestimated, in light of the proliferation of mutually incompatible, restrictive IM technologies. But the most valuable and immediately useful aspects of Jabber, in my opinion, aren't really the direct consequence of the "open source" approach: they are actually security-related. First, it's straightforward for companies to set up a private Jabber server behind the corporate firewall. This is actually more significant than it may sound, because despite the inherent insecurity of using AIM (for instance) for communication of confidential material, it's so useful that people often do it anyway. With Jabber, all of this communication can happen without the need for it to pass through an external server, whose security isn't under the control of its users. In the same vein, Jabber is incorporating support for encryption, both PGP-like procedures for the encryption of message content, and SSL for encryption of client-server and server-server communication. They do get points off, however, for not incorporating this from the start; we have enough insecure protocols which originated while the internet was a safe, private playground, and anyone developing new protocols today has no excuse for ignoring the need for some level of encryption as a fundamental component.

Jabber Resources

If you're interested in Jabber from a developer's perspective (or as a user, for that matter), the central hub of all things Jabber is Here you can find developer documentation, as well as FAQs, user guides, and links to client implementations. Developers will want to look at the Technology Overview, the Protocol Overview, and the Programmers Guide, as well as the links to available code libraries. Also, those implementing Jabber clients in particular will want to check out The Jabber Client Developer's Cheat Sheet, which will help steer you around the "gotchas". For examples of some alternative uses of Jabber, take a look at DJ Adams' articles on the O'Reilly Network, or on his own Fun with Jabber site. Adams' applications use the Net::Jabber Perl module, which makes this sort of experimentation a snap, and you'll want to get your hands on this if you are Perl-savvy. He also has an experimental implementation of doing XML-RPC over Jabber. O'Reilly has some additional general coverage of Jabber, both on their portal site and in their Peer-to-Peer book, the Jabber chapter of which is available online. Finally, try Eric Peyton's Fire IM client for Mac OS X, which supports Jabber as well as a variety of other IM protocols, and keep an eye on JabberCentral for coverage of current related news.

Jabber - Open Source XML-Based Interoperable Instant Messaging and Presence Platform

Jabber FAQ

Jabber Technology Overview

Jabber Protocol Overview

Jabber Programmer's Guide

Jabber Projects - Jabber libraries

Jabber Client Developer's Cheat Sheet

You Have Mail! [Mar. 09, 2001]

A More Sensitive Mail Notifier [Apr. 13, 2001]

Fun With Jabber


XMLRPC over Jabber

XML Messaging with Jabber [Oct. 06, 2000]

Jabber Works: Here's How [Oct. 06, 2000]

Peer-to-Peer: Chapter 6: Jabber

epicware: Fire



Community Search:
MacTech Search:

Software Updates via MacUpdate

World of Tanks Generals guide - Tips and...
World of Tanks Generals is a brand new card game by the developer behind the World of Tanks shooter franchise. It plays like a cross between chess and your typical card game. You have to keep in consideration where you place your tanks on the board... | Read more »
TruckSimulation 16 guide: How to succeed...
Remember those strangely enjoyable truck missions in Grand Theft Auto V whereit was a disturbing amount of fun to deliver cargo? TruckSimulation 16 is reminiscent of that, and has you play the role of a truck driver who has to deliver various... | Read more »
The best GIF making apps
Animated GIFs have exploded in popularity recently which is likely thanks to a combination of Tumblr, our shorter attention spans, and the simple fact they’re a lot of fun. [Read more] | Read more »
The best remote desktop apps for iOS
We've been sifting through the App Store to find the best ways to do computer tasks on a tablet. That gave us a thought - what if we could just do computer tasks from our tablets? Here's a list of the best remote desktop apps to help you use your... | Read more »
Warhammer 40,000: Freeblade guide - How...
Warhammer 40,000: Freebladejust launched in the App Store and it lets you live your childhood dream of blowing up and slashing a bunch of enemies as a massive, hulking Space Marine. It's not easy being a Space Marine though - and particularly if... | Read more »
Gopogo guide - How to bounce like the be...
Nitrome just launched a new game and, as to be expected, it's a lot of addictive fun. It's called Gopogo, and it challenges you to hoparound a bunch of platforms, avoiding enemies and picking up shiny stuff. It's not easy though - just like the... | Read more »
Sago Mini Superhero (Education)
Sago Mini Superhero 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: KAPOW! Jack the rabbit bursts into the sky as the Sago Mini Superhero! Fly with Jack as he lifts impossible weights,... | Read more »
Star Wars: Galaxy of Heroes guide - How...
Star Wars: Galaxy of Heroes is all about collecting heroes, powering them up, and using them together to defeat your foes. It's pretty straightforward stuff for the most part, but increasing your characters' stats can be a bit confusing because it... | Read more »
The best cooking apps (just in time for...
It’s that time of year again, where you’ll be gathering around the dinner table with your family and a huge feast in front of you. [Read more] | Read more »
Square Rave guide - How to grab those te...
Square Rave is an awesome little music-oriented puzzle game that smacks of games like Lumines, but with its own unique sense of gameplay. To help wrap your head around the game, keep the following tips and tricks in mind. [Read more] | Read more »

Price Scanner via

Cyber Monday: Apple MacBooks on sale for up t...
Apple resellers have MacBook Pros, MacBook Airs, and MacBooks on sale for up to $250 off MSRP for Cyber Monday 2015. The following is a roundup of the lowest prices available for new models from any... Read more
Cyber Monday: 15% off Apple products, and sto...
Use code CYBER15 on Cyber Monday only to take 15% on Apple products at Target, and store-wide. Choose free shipping or free local store pickup (if available). Sale prices for online orders only, in-... Read more
iPad Air 2 And iPad mini Among Top Five Black...
Adobe has released its 2015 online shopping data for Black Friday and Thanksgiving Day. The five best selling electronic products on Black Friday were Samsung 4K TVs, Apple iPad Air 2, Microsoft Xbox... Read more
All-in-one PC Shipments Projected To Drop Ove...
Digitimes’ Aaron Lee and Joseph Tsai report that all-in-one (AIO) PC shipments may drop a double-digit percentage on-year in 2015 due to weaker-than-expected demand, although second-largest AIO make... Read more
Sprint Offers iPad Pro
Sprint now offers Apple’s new iPad Pro with Wi-Fi + Cellular, featuring a 12.9-inch Retina display with 5.6 million pixels. Customers can pick up iPad Pro at select Sprint retail locations. It can... Read more
Cyber Monday: Target offers 15% discount on A...
Target has discounted Apple Watches by 15% for Cyber Monday. Choose free shipping or free local store pickup (if available). Sale prices for online orders only, in-store prices may vary: - Apple... Read more
Sunday roundup of Holiday weekend Mac sales:...
Take up to $500 off MSRP on the price of a new Mac at B&H Photo today as part of their Black Friday/Holiday weekend sale. Shipping is free, and B&H charges NY tax only. These prices are... Read more
Holiday weekend: Apple Watch on sale for $50-...
B&H Photo has the Apple Watch on sale today for $50-$100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - Apple Watch Sport: $50 off - Apple Watch: $50-$100 off Read more
Holiday weekend: iPad Air 2s on sale for up t...
B&H Photo has iPad Air 2s on sale for up to $80 off MSRP including free shipping plus NY sales tax only: - 16GB iPad Air 2 WiFi: $459 $40 off - 64GB iPad Air 2 WiFi: $569 $30 off - 128GB iPad Air... Read more
Holiday weekend Mac sales roundup: B&H Ph...
B&H Photo continues to have all new Macs on sale for up to $500 off MSRP as part of their Black Friday/Holiday weekend sale. Shipping is free, and B&H charges NY tax only: - 15″ 2.2GHz Retina... Read more

Jobs Board

Technical Program Manager, Strategic Merchant...
# Technical Program Manager, Strategic Merchants - Apple Pay Job Number: 44001177 Santa Clara Valley, Califo ia, United States Posted: Oct. 30, 2015 Weekly Hours: 40.00 Read more
Frameworks Engineer, *Apple* Watch - Apple...
# Frameworks Engineer, Apple Watch Job Number: 41403122 Santa Clara Valley, Califo ia, United States Posted: Jul. 1, 2015 Weekly Hours: 40.00 **Job Summary** Join the Read more
Software Engineer - *Apple* Pay - Apple (Un...
# Software Engineer - Apple Pay Job Number: 44003246 Santa Clara Valley, Califo ia, United States Posted: Nov. 16, 2015 Weekly Hours: 40.00 **Job Summary** Apple Pay Read more
Merchant Operations Manager: *Apple* Pay -...
# Merchant Operations Manager: Apple Pay Job Number: 43593822 Santa Clara Valley, Califo ia, United States Posted: Nov. 10, 2015 Weekly Hours: 40.00 **Job Summary** The Read more
Product Design Engineer - *Apple* Watch - A...
# Product Design Engineer - Apple Watch Job Number: 41727161 Santa Clara Valley, Califo ia, United States Posted: Jul. 22, 2015 Weekly Hours: 40.00 **Job Summary** Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.