Extensible messaging and presence protocol: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
Line 1: Line 1:
<pageby nominor="false" comments="false"/>
<pageby nominor="false" comments="false"/>
{{Stub}}


== Introduction ==
== Introduction ==
Line 5: Line 6:
The '''Extensible Messaging and Presence Protocol''' (XMPP) also known as '''Jabber''' is an instance messaging protocol.
The '''Extensible Messaging and Presence Protocol''' (XMPP) also known as '''Jabber''' is an instance messaging protocol.


{{quotation|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.}} ([http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol Wikipedia], retrieved 14:33, 3 September 2009 (UTC)).
{{quotation|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.}} ([http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol Wikipedia], retrieved 15:02, 3 September 2009 (UTC)).
 
Jabber can be used (with the XEP-0045 extension) as multi-user chat (MUC).


== Architecture ==
== Architecture ==
Line 22: Line 25:
XMPP servers also may connect to other protocols like ICQ and also transport messages through HTTP to avoid Firewalls.
XMPP servers also may connect to other protocols like ICQ and also transport messages through HTTP to avoid Firewalls.


[http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol Wikipedia] (retrieved 14:33, 3 September 2009 (UTC)) summarizes the most important XMPP RFCs:
[http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol Wikipedia] (retrieved 15:02, 3 September 2009 (UTC)) summarizes the most important XMPP RFCs:
# RFC 3920, Extensible Messaging and Presence Protocol (XMPP): Core which describes client-server messaging using two open-ended XML streams. XML streams consist of &lt;presence/&gt;, &lt;message/&gt; and &lt;iq/&gt; (info/query). A connection is authenticated with Simple Authentication and Security Layer (SASL) and encrypted with Transport Layer Security (TLS).
# RFC 3920, Extensible Messaging and Presence Protocol (XMPP): Core which describes client-server messaging using two open-ended XML streams. XML streams consist of &lt;presence/&gt;, &lt;message/&gt; and &lt;iq/&gt; (info/query). A connection is authenticated with Simple Authentication and Security Layer (SASL) and encrypted with Transport Layer Security (TLS).
# RFC 3921, Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence describes instant messaging (IM), the most common application of XMPP.
# RFC 3921, Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence describes instant messaging (IM), the most common application of XMPP.
Line 29: Line 32:


XMPP extensions.
XMPP extensions.
* [http://xmpp.org/extensions/xep-0045.html XEP-0045: Multi-User Chat]  {{quotation|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))
* [http://xmpp.org/extensions/xep-0045.html XEP-0045: Multi-User Chat]  {{quotation|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 15:02, 3 September 2009 (UTC))
 
On of top of XMPP, various applications can be built. E.g. [http://www.virtual-presence.org/notes/VPTN-4.txt VPTN] is a "virtual presence protocol" that can be embedded in multi-user virtual environments.


== Technology ==
== Technology ==
Line 35: Line 40:
=== Servers ===
=== Servers ===


* [http://en.wikipedia.org/wiki/Gizmo_Project Gizmo Project]
* [http://www.process-one.net/en/ejabberd/ ejabberd] Free and Open Source distributed fault-tolerant Jabber server. (http://www.process-one.net/en/ejabberd/downloads/ download).
* [http://en.wikipedia.org/wiki/Nimbuzz Nimbuzz]
 
* [http://en.wikipedia.org/wiki/Google_Talk Google Talk]
=== Clients ===
 
; Stand-alone clients
 
* [http://www.gajim.org/ Gajim] is a popular Jabber client for Linux (Also runs under Windows). Supports the MUC protocol and has some nice extra features like: tabbed chat, speller, support for multiple accounts, an XML console, etc.
 
* [http://sourceforge.net/projects/psi/ Psi] aims to be a feature-rich Jabber/XMPP client for novice and experienced Jabber users. There are builds available for Windows, Linux, and MacOS X.
 
; Web Widgets
 
 
 
; Desktop Gadgets
 
 
; Clients for particular servers
 
* [http://www.google.com/talk/ Google Talk gadget] (standalone client)
* [http://talkgadget.google.com/talkgadget/popout Google Talk Gadget] (web client, aka gmail chat)
* [http://www.google.com/talk/labsedition/index.html Google talk labs edition


=== Clients ===
=== Clients ===

Revision as of 17:02, 3 September 2009

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

Draft

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 15:02, 3 September 2009 (UTC)).

Jabber can be used (with the XEP-0045 extension) as multi-user chat (MUC).

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 15:02, 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 15:02, 3 September 2009 (UTC))

On of top of XMPP, various applications can be built. E.g. VPTN is a "virtual presence protocol" that can be embedded in multi-user virtual environments.

Technology

Servers

Clients

Stand-alone clients
  • Gajim is a popular Jabber client for Linux (Also runs under Windows). Supports the MUC protocol and has some nice extra features like: tabbed chat, speller, support for multiple accounts, an XML console, etc.
  • Psi aims to be a feature-rich Jabber/XMPP client for novice and experienced Jabber users. There are builds available for Windows, Linux, and MacOS X.
Web Widgets


Desktop Gadgets


Clients for particular 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