Yesterday a new book showed up at my house: Programming Jabber. So after the kids were asleep, I picked it up and read a few chapters (and skimmed much of the rest).
I’m not really an IM or chat guy; you’ll rarely see me conversing with others online (except through email). But I’m really excited to be learning about Jabber. Why? Because it goes far beyond idle chitchat. I think Jabber is an ideal solution for a system I’ve been wanting to build—and for other similar systems.
Peer-to-peer systems are wonderful for ad hoc sharing of information of all kinds—not just music. But true P2P systems need to solve two big problems: location and authentication.
Any random computer user can start up a P2P program as, say, a persistent shared data store. But in many (if not most) cases, it will be hard to tell others where it is, and it may be impossible for others to access it. For it to work well, it has to be a machine that’s always on the network, not behind a restrictive firewall, with a fixed domain name. And many computer users today simply don’t have access to such a machine.
Enter Jabber. By writing your peer as a Jabber client, you can quickly register a new, persistent, friendly name (e.g., email@example.com) that will point to your peer no matter where it’s running. If you need to move it to another machine for some reason, there’s no problem at all, and the name follows it.
The other problem is authentication. You may not want to share this information with just anyone, but you still don’t want to be in the business of setting up userids, managing passwords, answering “I forgot my password” queries, and the like. And the last thing your friends or coworkers need is another service-specific userid.
Jabber can help with this problem, too. Many people will already have Jabber IDs, and those that don’t probably won’t mind getting one, because it will be useful for many things. You just tell your peer about authorized Jabber IDs and the Jabber network takes care of the authentication. (It’s not ultra-secure, but it’s as secure as the email-based authentication that many websites and mailing lists use—and it’s easier.)
Jabber can help us build new classes of P2P systems and lightweight server applications.
Do you think Jabber’s the right choice for this role?