Extensible messaging and presence protocol

The educational technology and digital learning wiki
Jump to navigation Jump to search

<pageby nominor="false" comments="false"/>

Introduction

The Extensible Messaging and Presence Protocol (XMPP) also known as Jabber is an instance messaging protocol.

“XMPP is an open, XML-based protocol originally aimed at near-real-time, extensible instant messaging (IM) and presence information (e.g., buddy lists), but now expanded into the broader realm of message oriented middleware.[1] It remains the core protocol of the Jabber Instant Messaging and Presence technology. Built to be extensible, the protocol has been extended with features such as Voice over Internet Protocol and file transfer signaling. Unlike most instant messaging protocols, XMPP is an open standard. Like e-mail, it is an open system where anyone who has a domain name and a suitable Internet connection can run their own Jabber server and talk to users on other servers. The standard server implementations and many clients are also free and open source software.” (Wikipedia, retrieved 14:33, 3 September 2009 (UTC)).

Architecture

The Internet Engineering Task Force has formalized XMPP 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.

XMPP networks are server-based and anyone can run his/her own Jabber server. Each users has his unique Jabber Identification (JID). It has the form:

Username@domain.name

Furthermore, Jabber IDs may include a resource, i.e. identification of a particular client. These can be use to define various identities for various clients with a given priority, e.g.

Username@domain.name/mobile

Messages from one user (identified by Jabber IDs) to another is achieved through a chain of client a - server A - server B - client B chain. I.e. a user@domainA.org sending a message to user@domainB.org would first send the message to XMPP server domainA.org, which in turn forwards the message to domainB server (unless server B blocks serva A), which finally forwards the message to client B.

XMPP servers also may connect to other protocols like ICQ and also transport messages through HTTP to avoid Firewalls.

Wikipedia (retrieved 14:33, 3 September 2009 (UTC)) summarizes the most important XMPP RFCs:

  1. RFC 3920, Extensible Messaging and Presence Protocol (XMPP): Core which describes client-server messaging using two open-ended XML streams. XML streams consist of <presence/>, <message/> and <iq/> (info/query). A connection is authenticated with Simple Authentication and Security Layer (SASL) and encrypted with Transport Layer Security (TLS).
  2. RFC 3921, Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence describes instant messaging (IM), the most common application of XMPP.
  3. RFC 3922, Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) relates XMPP and the Common Presence and Instant Messaging (CPIM) specifications.
  4. RFC 3923, End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) describes end to end encryption of XMPP messages using S/MIME. Conflicting this proposal, many clients currently use GPG for encrypting messages.

XMPP extensions.

  • XEP-0045: Multi-User Chat “defines an XMPP protocol extension for multi-user text chat, whereby multiple XMPP users can exchange messages in the context of a room or channel, similar to Internet Relay Chat (IRC). In addition to standard chatroom features such as room topics and invitations, the protocol defines a strong room control model, including the ability to kick and ban users, to name room moderators and administrators, to require membership or passwords in order to join the room, etc.” (retrieved 14:33, 3 September 2009 (UTC))

Technology

Servers

Clients

According to Wikipedia, popular client applications include the freeware clients offered by Google, Nimbuzz and the Gizmo Project, multi-protocol instant messengers such as iChat and Pidgin (formerly Gaim), and free dedicated clients such as Psi and Gajim. Google Talk provides XMPP gateways to its service. Google Wave's federation protocol is an open extension to the XMPP protocol.

Links

Overviews

Implementations

Standards

  • RFC 3920, RFC 3921, RFC 3922, RFC 3923, RFC 4622, RFC 4854, RFC 4979