Extensible Messaging and Presence Protocol

From Computing and Software Wiki

(Difference between revisions)
Jump to: navigation, search
Line 4: Line 4:
The technology was originally developed in the Jabber open-source community to provide an open, secure, and decentralized alternative to the closed instant messaging services at the time. As of 2004, the core XMPP technology has been approved by the Internet Engineering Task Force (IETF) and Internet Engineering Steering Group (IEGS) as formal implementations of instant messaging and presence technology.  These core technologies are published under several specifications including [http://www.ietf.org/rfc/rfc3920.txt?number=3920 RFC 3920] and [http://www.ietf.org/rfc/rfc3921.txt?number=3921 RFC 3921]. The technology is continuously being expanded by the standards process of the [http://xmpp.org XMPP Standards Foundation].
The technology was originally developed in the Jabber open-source community to provide an open, secure, and decentralized alternative to the closed instant messaging services at the time. As of 2004, the core XMPP technology has been approved by the Internet Engineering Task Force (IETF) and Internet Engineering Steering Group (IEGS) as formal implementations of instant messaging and presence technology.  These core technologies are published under several specifications including [http://www.ietf.org/rfc/rfc3920.txt?number=3920 RFC 3920] and [http://www.ietf.org/rfc/rfc3921.txt?number=3921 RFC 3921]. The technology is continuously being expanded by the standards process of the [http://xmpp.org XMPP Standards Foundation].
   
   
-
 
Today XMPP is deployed on thousands of servers around the internet and is being used by many popular instant messaging clients like iChat and Google Talk.
Today XMPP is deployed on thousands of servers around the internet and is being used by many popular instant messaging clients like iChat and Google Talk.
 +
 +
 +
 +
== History ==
 +
 +
The Extensible Messaging and Presence Protocol (XMPP) emerged from the Jabber open-source community in 1999 after a year of development by the technology's original author, Jeremie Miller. The development of the Jabber technologies was initiated by Jeremie's frustration over having to use multiple instant messaging clients to communicate with his contacts.
 +
 +
Jeremie released the first version of the Jabber technology in January of 1999. The open-source community then responded by developing an open-source server, called jabberd, as well as several open-source clients and code libraries.
 +
 +
To achieve cohesive communication between the clients, server, and other entities being created, it was decided that a common protocol for real-time XML streaming be used. This protocol then evolved into what is now the Extensible Messaging and Presence Protocol.
 +
 +
In February 2000, the IETF published a model for instant messaging and presence systems and requirements for such systems. The publishing was a result of the work done by the Instant Messaging and Presence Protocol Working Group.
 +
 +
In August 2001, the Jabber Software Foundation was formed. The goal of the foundation was to organize and coordinate between the various projects building or using Jabber Technologies.
 +
 +
In late 2001 and early 2002, members of the Jabber community decided to submit the base Jabber protocols to IETF. The XMPP Working Group was formed and approved by the Internet Engineering Steering Group (IESG) to formalize the base Jabber protocols. By 2003, the XMPP Working Group completed their work on formalizing the protocols. They were submitted and subsequently approved as Proposed Standards in early 2004 and by October 2004 these documents were published as [http://www.ietf.org/rfc/rfc3920.txt?number=3920 RFC 3920], [http://www.ietf.org/rfc/rfc3921.txt?number=3921 RFC 3921], [http://www.ietf.org/rfc/rfc3922.txt?number=3922 RFC 3922], and [http://www.ietf.org/rfc/rfc3923.txt?number=3923 RFC 3923].
 +
 +
The Jabber Software Foundation was renamed to the XMPP Standards Foundation in January 2007.
 +
 +
 +
== How it works ==
 +
 +
XMPP, like other instant messaging and presence protocols, allows for communication between client and server. Unlike most, however, it also allows for communication between one server and another server. XMPP Clients are registered to a particular server and communicate with that server although client to client communication is also possible as described below.
 +
 +
When a client registers with a server, they are named similar to an email address (john@example.com), where @example.com is the name of the XMPP server.
 +
 +
The XMPP messages used for communication are extensible meaning that they can be used to transmit different types of data such as instant messaging, presence information, etc.
 +
 +
When a client sends a message to another client, the message is first sent to the XMPP server to which the client is registered with. If the recipient is also registered on the same server, the message is passed directly to the recipient. If however the recipient is on another server, the message is first sent to that server and then passed on to the client.
 +
 +
The above scenario assumes that the recipient is currently online. XMPP provides presence information that announces whether a registered client is online and whether they are available to receive messages. In the event that a client is offline, the XMPP server to which the client is registered with can be setup to provide temporary storage for messages that will be delivered when the client comes online.
 +
 +
XMPP also supports client to client communication which is being used more and more for more data intensive communication like voice and video calling.

Revision as of 04:19, 11 April 2009

Extensible Messaging and Presence Protocol (XMPP) is an open standard technology aimed at real-time communication. As part of the Internet Protocol suite, the technology has a number of uses including: instant messaging; presence information (shows the ability and willingness of a user to communicate); multi-client chat; voice and video calls; collaboration; and general routing of XML data.

The technology was originally developed in the Jabber open-source community to provide an open, secure, and decentralized alternative to the closed instant messaging services at the time. As of 2004, the core XMPP technology has been approved by the Internet Engineering Task Force (IETF) and Internet Engineering Steering Group (IEGS) as formal implementations of instant messaging and presence technology. These core technologies are published under several specifications including RFC 3920 and RFC 3921. The technology is continuously being expanded by the standards process of the XMPP Standards Foundation.

Today XMPP is deployed on thousands of servers around the internet and is being used by many popular instant messaging clients like iChat and Google Talk.


History

The Extensible Messaging and Presence Protocol (XMPP) emerged from the Jabber open-source community in 1999 after a year of development by the technology's original author, Jeremie Miller. The development of the Jabber technologies was initiated by Jeremie's frustration over having to use multiple instant messaging clients to communicate with his contacts.

Jeremie released the first version of the Jabber technology in January of 1999. The open-source community then responded by developing an open-source server, called jabberd, as well as several open-source clients and code libraries.

To achieve cohesive communication between the clients, server, and other entities being created, it was decided that a common protocol for real-time XML streaming be used. This protocol then evolved into what is now the Extensible Messaging and Presence Protocol.

In February 2000, the IETF published a model for instant messaging and presence systems and requirements for such systems. The publishing was a result of the work done by the Instant Messaging and Presence Protocol Working Group.

In August 2001, the Jabber Software Foundation was formed. The goal of the foundation was to organize and coordinate between the various projects building or using Jabber Technologies.

In late 2001 and early 2002, members of the Jabber community decided to submit the base Jabber protocols to IETF. The XMPP Working Group was formed and approved by the Internet Engineering Steering Group (IESG) to formalize the base Jabber protocols. By 2003, the XMPP Working Group completed their work on formalizing the protocols. They were submitted and subsequently approved as Proposed Standards in early 2004 and by October 2004 these documents were published as RFC 3920, RFC 3921, RFC 3922, and RFC 3923.

The Jabber Software Foundation was renamed to the XMPP Standards Foundation in January 2007.


How it works

XMPP, like other instant messaging and presence protocols, allows for communication between client and server. Unlike most, however, it also allows for communication between one server and another server. XMPP Clients are registered to a particular server and communicate with that server although client to client communication is also possible as described below.

When a client registers with a server, they are named similar to an email address (john@example.com), where @example.com is the name of the XMPP server.

The XMPP messages used for communication are extensible meaning that they can be used to transmit different types of data such as instant messaging, presence information, etc.

When a client sends a message to another client, the message is first sent to the XMPP server to which the client is registered with. If the recipient is also registered on the same server, the message is passed directly to the recipient. If however the recipient is on another server, the message is first sent to that server and then passed on to the client.

The above scenario assumes that the recipient is currently online. XMPP provides presence information that announces whether a registered client is online and whether they are available to receive messages. In the event that a client is offline, the XMPP server to which the client is registered with can be setup to provide temporary storage for messages that will be delivered when the client comes online.

XMPP also supports client to client communication which is being used more and more for more data intensive communication like voice and video calling.

Personal tools