Jabber
|
Official logo of the Jabber Software Foundation |
Jabber is a collection of
open,
XML-based protocols for
instant messaging and
presence information. Jabber-based software is deployed on thousands of servers across the Internet and is used by over ten million people worldwide, according to the Jabber Software Foundation [
1].
Unlike
most instant messaging protocols, Jabber is an
open standard. As with
e-mail, an account on any Jabber server can communicate with users on other Jabber servers.
Jeremie Miller began the project in
1998; its first major public release occurred in May
2000. The project's main product was
jabberd, a
Jabber server.
The basis of the Jabber
protocol, now managed by the
Jabber Software Foundation, has been accepted by the
IETF in October
2004 as a standards-track protocol under the name
XMPP, with RFC 3920. It has often been regarded as being in competition with
SIMPLE, based on the
SIP protocol, as the standard protocol for instant messaging and presence notification; however, the design of XMPP is intended to provide a more general-purpose XML-based inter-application middleware facility.
In
2005, about half a dozen XMPP server software implementations written in different programming languages and targeting different use cases exist.
In August
2005 Google introduced
Google Talk, a combination
VoIP and IM system which uses Jabber/XMPP for its instant messaging function. The initial launch did not include server-to-server communications, but as of
January 17,
2006, it has server-to-server communications enabled.
Decentralized : The architecture of the Jabber network is similar to email; anyone can run their own Jabber server and there is no central master server. Open Standard : The Internet Engineering Task Force has formalized Jabber's core XML streaming protocols as an approved instant messaging and presence technology under the name of XMPP, and the XMPP specifications have been published as RFC 3920 and RFC 3921. No royalties are required to implement support of these specifications and their development is not tied to a single vendor.; Proven : Jabber technologies have been in use since 1998. Multiple implementations of Jabber's standards exist for clients, servers, components, and code libraries, with the backing of large companies such as
Sun Microsystems and
Google.
Secure : Jabber servers may be isolated from the public Jabber network (e.g., on a company intranet), and robust security using SASL and TLS has been built into the core XMPP specifications.; Flexible : Custom functionality can be built on top of Jabber's core protocols; to maintain interoperability, common extensions are managed by the Jabber Software Foundation. Jabber applications beyond IM include network management, content syndication, collaboration tools, file sharing, gaming, and remote systems monitoring.
The Jabber network is server-based (i.e. clients do not talk directly to one another) but decentralized; there is no central authoritative server, as there is with services such as
AOL Instant Messenger or
MSN Messenger. Some confusion often arises on this point as there is, in fact, a public Jabber server being run at "Jabber.org", to which a large number of users subscribe. However, anyone may run their own Jabber server on their own domain.
A user is identified with a user name and a server name. The two fields are separated by the @ sign. This identifier is called a
Jabber ID or
JID.
Suppose
juliet@capulet.com wants to chat with
romeo@montague.net. Juliet and Romeo each respectively have accounts on the Capulet.com and Montague.net servers. When Juliet types in and sends her message, a sequence of events is set in action:# Juliet's Jabber client sends her message to the Capulet.com Jabber server#* If Montague.net is blocked on Capulet.com the message is dropped.# The Capulet.com Jabber server opens a connection to the Montague.net Jabber server.# The Montague.net Jabber server delivers the message to Romeo#* If Capulet.com is blocked on Montague.net, the message is dropped.#* If Romeo is not currently connected, the message is stored for later delivery.
Jabber ID
A Jabber ID or
JID is the
username or account name used to access a Jabber account. It usually takes the form
user@domain/resource, in a way that is similar to
email addresses. The resource component enables a user to contact a particular access point logged into each account, e.g.
user@domain.com/work and
user@domain.com/home. The resource component is not necessary in order to contact a Jabber user.
Transports, agents, and other automated parts of the Jabber network may not have a user part to the JID. A common example would be the
AIM transport, where the transport itself has a JID along the lines of
aim.domain.com, and contacts on AIM would appear as
screenname@aim.domain.com.
In a similar way to
Sendmail, accessing other protocols is possible with
Jabber transports. Users can then contact from a client such as
MSN Messenger using the JID form
user%msn.com@msn.jabberserver.com.
A unique feature of the Jabber system is that of
transports, also known as
gateways, which allow users to access networks using other protocols. This can be other
instant messaging protocols, but also protocols such as
SMS or
E-mail. Unlike
multi-protocol clients, Jabber provides this access at the server level by communicating via special gateway services running on a remote computer. Any Jabber user can "register" with one of these gateways by providing the information needed to log on to that network, and can then communicate with users of that network as though they were Jabber users. This means that any client which fully supports the Jabber protocol can be used to access any network to which a gateway exists, without the need for any extra code in the client.
Another interesting aspect of the Jabber protocol and server is the
HTTP binding for users behind restricted
firewalls. Jabber can use HTTP in two ways:
polling and
binding. HTTP polling essentially implies messages stored on a server-side database being fetched (and posted) regularly by a Jabber client by way of HTTP 'GET' and 'POST' requests. With the binding, the client uses longer-lived HTTP connections to receive messages as soon as they are sent; it is much more efficient than polling.
Because the client uses HTTP, most firewalls would allow the client to fetch and post messages without any hindrance. Thus, in scenarios where opening a native Jabber
TCP connection is not possible, clients can use HTTP to stay connected and provide instant messaging. This aspect of Jabber protocol has also made it popular with some users.
In a few places around the world, communities have evolved where the main focus is advocating Jabber and bringing Jabber closer to the end user. Usually services are offered, such as a Jabber server, a web portal to assist users with signing up to Jabber and forums.
Some examples of these Jabber communities include:
*
Jabber Australia (Australia) - http://www.jabber.org.au/
*
Jaim.at (Austria) - http://www.jaim.at/
*
Jabber Brasil Grupo de Usuários Jabber do Brasil - http://guj.codigolivre.org.br/
*
Äeskýjabber (Czech Republic) - http://www.jabber.cz/
*
jabber.dk (Denmark) - http://www.jabber.dk/
*
jabber.ee (Estonia) - http://www.jabber.ee/
*
JabberFR (France) - http://www.jabberfr.org/
*
amessage (Germany/International) - http://web.amessage.info/
*
Jabber.hu (Hungary) - http://www.jabber.hu/
*
Jabber.or.id (Indonesia) - http://www.jabber.or.id/
*
Jabber Norge (Norway) - http://www.jabber.no/
*
JabberPL (Poland) - http://www.jabberpl.org/
*
Jabber.ro (Romania)- http://www.jabber.ro/
*
Jabber.ru (Russia) - http://www.jabber.ru/
*
Jabber.se (Sweden) - http://www.jabber.se/
*
Jabber.snc.ru (Russia, Far East) - http://www.jabber.snc.ru/
*
Jabber.sk (Slovakia) - http://www.jabber.sk/
*
JabberES (Spain) - http://www.jabberes.org/
*
swissjabber (Switzerland) - http://web.swissjabber.ch/
*
jabber.kiev.ua (Ukraine) - http://www.jabber.kiev.ua/
*
ijabber.com (United States) - http://www.ijabber.com/
*
Comparison of instant messaging clients*
XMPP specifications*
List of Jabber client software*
List of Jabber server software*
Off-the-record messaging*
Secure communication*
Jabber Software Foundation*
Jabber User Guide - End user introduction to Jabber.
*
Jabber Enhancement Proposals (JEPs)*
List of Jabber servers by country or domain