Preface

What is Jabber? Depending on who you ask, the answer to that question could be any one (or all) of the following:

  • Jabber is a technology.

  • Jabber is a protocol (or set of protocols).

  • Jabber is an XML-based Instant Messaging (IM) system.

  • Jabber is an implementation of the set of protocols.

  • Jabber is an idea whose time has come.

In fact, all these answers are right. Jabber is a set of protocols expressed within XML that allow people and applications to converse with one another. Sure, TCP sockets, STDIN/STDOUT, infrared, voice input, and teletype mechanisms all allow people and applications to converse; the difference is that Jabber provides a structured, extensible framework for exchanging all kinds of information.

This is all rather abstract, so what do we mean by “extensible framework for exchanging information”? Taking it one word at a time:

Extensible

Jabber’s substrate is XML. XML is inherently extensible in the sense that tags can be added in a hierarchical sequence. Namespaces in XML allow us to keep track of the meaning and organization of these tags.

Framework

You can put together a system for exchanging information using many different tools. The point about the “framework” is that the information exchanged and the entities that are exchanging it are contextualized, bringing meaning and structure to the interactions.

Exchanging

Conversation is two-way, and it takes many forms: question and answer, notification, compartmentalized discussion, and simple chat. Jabber supports all these different types of conversation and more.

Information

One doesn’t really say that information is exchanged in a conversation, but when you bring applications into the mix of conversing entities, it may well be the case. And it’s not just information exchanged in the form of conversations but also information about the entities themselves that flows across this context framework.

It goes without saying: Jabber is an instant messaging (IM) system.

Instant messaging was Jabber’s original raison d'être. Many deployments of Jabber software are to provide IM services, but Jabber is more than IM—certainly more than the phrase “instant messaging” represents. In this book you’ll find out why this is so and how you can deploy solutions with Jabber that are more than mere chat. But most importantly, Jabber is fun!

Like chess, which has a small set of rules but countless game possibilities, the technologies employed in Jabber and the Jabber protocol itself are straighforward. The possibilities are almost limitless. Furthermore, because of a fundamental design feature[1] (you might call it a “philosophical” angle), implementing Jabber-based solutions to your problems can be fun—really!



[1] The complexity of a Jabber implementation should always remain in the server, leaving the clients simple and clean.

Get Programming Jabber now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.