Francais | English | Espanõl

Jabber

From Wikipedia, the free encyclopedia

Jump to: navigation, search
This article is about a communications protocol. For information relating to overloading a computer network, see Jabber (networking)
Image:Jabber logo.svg
Official logo of the Jabber Software Foundation

Jabber is a collection of open, real-time communication technologies built on the Extensible Messaging and Presence Protocol (XMPP). It addresses instant messaging, presence information, publish/subscribe, Voice over IP, remote procedure call and other uses. Jabber-based software is deployed on thousands of servers across the Internet and by 2003 was used by over ten million people worldwide, according to the Jabber Software Foundation.[1]

Unlike most instant messaging protocols, Jabber is based on open standards. As with e-mail, an account on any Jabber server can communicate with users on other Jabber servers.

Contents

[edit] History

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.

This early Jabber protocol formed the basis for the IETF standards-track protocol named XMPP, published as 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;[citation needed] however, the design of XMPP is intended to provide a more general-purpose XML-based inter-application middleware facility.[citation needed]

As of 2005, about half a dozen XMPP server software implementations written in different programming languages and targeting different use cases existed.[citation needed]

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.

[edit] Features

Decentralization 
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 standards 
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.
History 
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.
Security 
Jabber servers may be isolated from the public Jabber network (e.g., on a company intranet), and robust security (via SASL and TLS) has been built into the core XMPP specifications.
Flexibility 
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.

[edit] How it works

The Jabber network is server-based (i.e. clients do not talk directly to one another) but decentralized; by design 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:

  1. 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.
  2. The Capulet.com Jabber server opens a connection to the Montague.net Jabber server.
  3. 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.
Juliet
Capulet.com
Montague.net
Romeo

[edit] 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 Jabber client users of other IM software such as MSN Messenger. This can be done by changing the "@" character of the foreign account with a "%".

For example if the username of a MSN Messenger account is msnUser@example.com and the Msn gateway is msn.jabberserver.com, the resulting Jabber ID will be msnUser%example.com@msn.jabberserver.com.

[edit] Connecting to other protocols

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.

[edit] Jabber and HTTP

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. This push-model of notification is more efficient than polling, where many of the polls return no new data; however, it can affect the scalability of the server on operating systems which don't gracefully scale in handling open file-descriptors or if the server is not carefully written to handle many tens of thousands of open descriptors.

Because the client uses HTTP, most firewalls would allow the client to fetch and post messages without any hindrance. Thus, in scenarios where the TCP port used by Jabber is blocked, a server can listen on the normal HTTP port and the traffic should pass without problems. There also are various websites which allow people to signin to Jabber via their browser.

[edit] Regional Jabber communities

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:

[edit] Jabber service providers

Notable Jabber providers are:

[edit] See also

[edit] External links

bg:Jabber ca:Jabber cs:Jabber da:Jabber de:Jabber et:Jabber el:Jabber es:Jabber eo:Jabber fr:Jabber it:Jabber lt:Jabber nl:Jabber ja:Jabber no:Jabber pl:Jabber pt:Jabber ru:Jabber sk:Jabber sl:Jabber sr:Jabber fi:Jabber sv:Jabber tl:Jabber vi:Jabber tr:Jabber uk:Jabber wa:Jabber zh:Jabber

Personal tools