XMPP: Open Source And Flexible, To Boot
Many people aren't ready to give on IM software, but also don't want to accept the kinds of terms and conditions described in the preceding section of this article. Those who want free choice of IM client software without such onerous restrictions should take a look at Jabber.
Jabber is an open, well-documented protocol based on open XML standards XMPP (Extensible Messaging and Presence Protocol) and XEP (XMPP Extension Protocol). XMPP's very roots lie in the Jabber Project, started in 1998 with the goal of providing free alternatives to proprietary IM solutions. XMPP was granted Internet Standard status by the IETF in early 2004, as RFCs 3920 and 3921. As an XML-derived protocol, XMPP is also programmer-friendly and easily extensible. A complete list of XMPP extensions is available at http://www.xmpp.org
Jabber is on the march; business acceptance and use of Open Source Software is widespread, and becoming more so all the time.
Jabber In Production Use
Google offers an IM service called Google Talk, introduced in August 2005. It also runs on a Jabber server. At the outset, Google's Jabber server was restricted only to users of Google Talk, so that they could communicate only with each other. In January 2006, however, Google opened its system so that any Jabber users could communicate with Google Talk users and vice-versa.
Google also extended the Jabber protocol with VoIP functions. The company published the source code for this programming library, known as Jingle, in mid-December, 2005. Because Jingle has been integrated into other third-party Jabber clients, Google Talk users are not the only one who have access to VoIP capabilities.
United Internet, with its brand names Marken GMX, Web.de, and 1&1, is another widely-known effort built around Jabber for IM support. A person with a GMX or web.de e-mail account automatically gains access to a Jabber IM account as well.
Google's Google Talk represents one of the first large-scale IM implementations built around XMPP.
The Jabber Network's Infrastructure And Function
As with AIM, ICQ and Windows Live Messenger, Jabber is based on a client/server architecture. As a rule, however, connections between Jabber clients and servers are protected by SSL or StartTLS encryption.
It's also possible to set up a Jabber server on your own local network. This makes it particularly appealing to businesses, because subsequent in-house use of Jabber-based chat never leaves the LAN. Local administrators can manage registration and access to Jabber services, and restrict its use to specific designated users or groups.
The public Jabber network on the Internet, on the other hand, consists of numerous independent Jabber servers, each of which manages its users' identity information. Servers communicate with one another using a special server-to-server protocol, which can also be encrypted if desired. Such server-to-server communications only become necessary when a user registered on Server 1 wishes to establish a chat session with one registered on Server 2. Because server-to-server messaging protocols for Jabber are similar to e-mail, such communications can even use the Domain Name System (DNS) to resolve addresses, and enable Server 1 to determine if it can contact Server 2, and if so, at what address.