Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Extensible Messaging and Presence Protocol

Extensible Messaging and Presence Protocol

Discussion
Ask a question about 'Extensible Messaging and Presence Protocol'
Start a new discussion about 'Extensible Messaging and Presence Protocol'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
Extensible Messaging and Presence Protocol (XMPP) is an open-standard
Open standard
An open standard is a standard that is publicly available and has various rights to use associated with it, and may also have various properties of how it was designed . There is no single definition and interpretations vary with usage....

 communications protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

 for message-oriented middleware
Message-oriented middleware
Message-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...

 based on XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 (Extensible Markup Language). The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

, extensible
Extensibility
In software engineering, extensibility is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension...

 instant messaging
Instant messaging
Instant Messaging is a form of real-time direct text-based chatting communication in push mode between two or more people using personal computers or other devices, along with shared clients. The user's text is conveyed over a network, such as the Internet...

 (IM), presence information
Presence information
In computer and telecommunications networks, presence information is a status indicator that conveys ability and willingness of a potential communication partner—for example a user--to communicate...

, and contact list
Contact list
A contact list is a collection of screen names in an instant messaging or e-mail program or online game or mobile phone. It has various trademarked and proprietary names in different contexts....

 maintenance. Designed to be extensible, the protocol today also finds application in VoIP
Voice over IP
Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

 and file transfer signaling.

Unlike most instant messaging protocols, XMPP uses an open systems
Open system (computing)
Open systems are computer systems that provide some combination of interoperability, portability, and open software standards. The term was popularized in the early 1980s, mainly to describe systems based on Unix,...

 approach of development and application, by which anyone may implement an XMPP service and interoperate with other organizations' implementations. The software implementation and many client applications are distributed as free and open source software
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

.

The Internet Engineering Task Force
Internet Engineering Task Force
The Internet Engineering Task Force develops and promotes Internet standards, cooperating closely with the W3C and ISO/IEC standards bodies and dealing in particular with standards of the TCP/IP and Internet protocol suite...

 (IETF) formed an XMPP Working Group in 2002 to formalize the core protocols as an IETF instant messaging and presence technology. The XMPP WG produced four specifications (RFC 3920, RFC 3921, RFC 3922, RFC 3923), which were approved by the Internet Engineering Steering Group
Internet Engineering Steering Group
The Internet Engineering Steering Group is a body composed of the Internet Engineering Task Force chair and area directors.It provides the final technical review of Internet standards and is responsible for day-to-day management of the IETF...

 as Proposed Standards in 2004. The XMPP Standards Foundation
XMPP Standards Foundation
XMPP Standards Foundation is the foundation in charge of the standardization of the protocol extensions of XMPP, the open standard of instant messaging and presence of the IETF.- History :...

 (formerly the Jabber Software Foundation) is active in developing open XMPP extensions.
In 2011, RFC 3920 and RFC 3921 have been superseded by RFC 6120 and RFC 6121 respectively, and RFC 6122 comes to specify the XMPP address format.

XMPP-based software is deployed widely across the Internet, and by 2003, was used by over ten million people worldwide, according to the XMPP Standards Foundation
XMPP Standards Foundation
XMPP Standards Foundation is the foundation in charge of the standardization of the protocol extensions of XMPP, the open standard of instant messaging and presence of the IETF.- History :...

.

Apache Wave's federation protocol is an extension to the XMPP protocol.

History


Jeremie Miller
Jeremie Miller
Jeremie Miller is the inventor of Jabber/XMPP technologies and was the primary developer of jabberd 1.0, the first XMPP server. He also wrote one of the very first XML parsers, in JavaScript. He began working on Jabber in 1998....

 began working on the Jabber technology in 1998 and released the first version of the jabberd server on January 4, 1999. The early Jabber community focused on open-source software, mainly the jabberd server (e.g., version 1.0 in May 2000, version 1.2 in October 2000, and version 1.4 in February 2001), but its major outcome proved the development of the XMPP protocol.

The early Jabber protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

, as developed in 1999 and 2000, formed the basis for XMPP as published in RFC 3920 and RFC 3921 (the primary changes during formalization by the IETF's XMPP Working Group were the addition of TLS
Transport Layer Security
Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...

 for channel encryption and SASL
Simple Authentication and Security Layer
Simple Authentication and Security Layer is a framework for authentication and data security in Internet protocols. It decouples authentication mechanisms from application protocols, in theory allowing any authentication mechanism supported by SASL to be used in any application protocol that uses...

 for authentication). XMPP has often been regarded as a competitor to SIMPLE
SIMPLE
SIMPLE, the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, is an instant messaging and presence protocol suite based on Session Initiation Protocol managed by the IETF...

, based on the Session Initiation Protocol
Session Initiation Protocol
The Session Initiation Protocol is an IETF-defined signaling protocol widely used for controlling communication sessions such as voice and video calls over Internet Protocol . The protocol can be used for creating, modifying and terminating two-party or multiparty sessions...

 (SIP) protocol, as the standard protocol for instant messaging and presence notification.

The first IM service based on XMPP was Jabber.org, which has operated continuously since 1999 and has offered free accounts to users of XMPP. From 1999 until February 2006, the service used jabberd as its server software, at which time it migrated to ejabberd
Ejabberd
ejabberd is an XMPP application server, written mainly in the Erlang programming language.It can run under several Unix-like operating systems such as Mac OS X, GNU/Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris...

 (both of which are free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 application servers). In January 2010, the service plans to migrate to proprietary
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

 M-Link software produced by Isode Ltd
Isode Limited
Isode Limited is a software company based in the United Kingdom. Isode develops and markets messaging and directory server software based on the LDAP and X.500 protocols and SMTP, IMAP, POP3, XMPP and X.400 protocols .-History:...

.

In August 2005, Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

 introduced Google Talk
Google Talk
Google Talk is a freeware voice over Internet protocol client application offered by Google Inc. The first beta version of the program was released on August 24, 2005...

, a combination VoIP
Voice over IP
Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

 and IM system that uses XMPP for instant messaging and as a base for a voice and file transfer signaling protocol. (The initial launch did not include server-to-server
Inter-server
In computer network protocol design, inter-server communication is an extension of the client–server model in which data are exchanged directly between servers...

 communications; Google enabled that feature on January 17, 2006).

In September 2008, Cisco Systems
Cisco Systems
Cisco Systems, Inc. is an American multinational corporation headquartered in San Jose, California, United States, that designs and sells consumer electronics, networking, voice, and communications technology and services. Cisco has more than 70,000 employees and annual revenue of US$...

 acquired Jabber, Inc., the creators of the commercial product Jabber XCP.

In February 2010, the social-networking site Facebook
Facebook
Facebook is a social networking service and website launched in February 2004, operated and privately owned by Facebook, Inc. , Facebook has more than 800 million active users. Users must register before using the site, after which they may create a personal profile, add other users as...

 opened up its chat feature to third-party applications via XMPP. The Facebook developers' site notes that Facebook Chat does not actually run an XMPP server internally, but merely presents an XMPP interface to clients; consequently, some server-side features like roster editing cannot be done via XMPP.

In addition to Google Talk, many other public IM services use XMPP, including
  • LiveJournal
    LiveJournal
    LiveJournal is a virtual community where Internet users can keep a blog, journal or diary. LiveJournal is also the name of the free and open source server software that was designed to run the LiveJournal virtual community....

    's "LJ Talk"
  • Nokia's Ovi
    Ovi (Nokia)
    Ovi by Nokia is the brand for Nokia's Internet services. The Ovi services can be used from a mobile device, computer or via the web. Nokia focuses on five key service areas: Games, Maps, Media, Messaging and Music. Nokia's aim with Ovi is to include third party developers, such as operators and...



Furthermore, several enterprise IM software products that do not natively use XMPP nevertheless include gateways to XMPP, including
  • IBM Lotus Sametime
    IBM Lotus Sametime
    IBM Sametime is a client–server application and middleware platform that provides real-time, unified communications and collaboration for enterprises. Those capabilities include presence information, enterprise instant messaging, web conferencing, community collaboration, and telephony capabilities...

  • Microsoft Lync Server (formerly named Microsoft Office Communications Server – OCS)

Strengths


Decentralization
The architecture of the XMPP network is similar to email; anyone can run their own XMPP server and there is no central master server.

Open standards
The Internet Engineering Task Force
Internet Engineering Task Force
The Internet Engineering Task Force develops and promotes Internet standards, cooperating closely with the W3C and ISO/IEC standards bodies and dealing in particular with standards of the TCP/IP and Internet protocol suite...

 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. No royalties are required to implement support of these specifications and their development is not tied to a single vendor.

History
XMPP technologies have been in use since 1998. Multiple implementations of the XMPP standards exist for clients, servers, components, and code libraries, with the backing of large companies such as Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 and Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

.

Security
XMPP servers may be isolated from the public XMPP network (e.g., on a company intranet), and robust security (via SASL
Simple Authentication and Security Layer
Simple Authentication and Security Layer is a framework for authentication and data security in Internet protocols. It decouples authentication mechanisms from application protocols, in theory allowing any authentication mechanism supported by SASL to be used in any application protocol that uses...

 and TLS
Transport Layer Security
Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...

) has been built into the core XMPP specifications. To encourage use of channel encryption, the XMPP Standards Foundation currently runs an intermediate certification authority
Certificate authority
In cryptography, a certificate authority, or certification authority, is an entity that issues digital certificates. The digital certificate certifies the ownership of a public key by the named subject of the certificate...

 at StartSSL (formerly at xmpp.net) offering free digital certificates
Public key certificate
In cryptography, a public key certificate is an electronic document which uses a digital signature to bind a public key with an identity — information such as the name of a person or an organization, their address, and so forth...

 to XMPP server administrators under the auspices of the StartCom Certification Authority (which is the root CA for the intermediate CA).

Flexibility
Custom functionality can be built on top of XMPP; to maintain interoperability, common extensions are managed by the XMPP Software Foundation. XMPP applications beyond IM include groupchat, network management, content syndication, collaboration tools, file sharing, gaming, remote systems control and monitoring, geolocation, middleware and cloud computing, VoIP and Identity services.

Weaknesses


In-band binary data transfer is inefficient
Because XMPP is not yet encoded as Efficient XML Interchange
Efficient XML Interchange
Efficient XML Interchange is a proposed data format from the Efficient XML Interchange Working Group of the World Wide Web Consortium...

 but as a single long XML document, binary data must be first base64
Base64
Base64 is a group of similar encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation...

 encoded before it can be transmitted in-band. Therefore any significant amount of binary data (e.g., file transfer
File transfer
File transfer is a generic term for the act of transmitting files over a computer network or the Internet. There are numerous ways and protocols to transfer files over a network. Computers which provide a file transfer service are often called file servers. Depending on the client's perspective the...

s) is best transmitted out-of-band, using in-band messages to coordinate. The best example of this is the Jingle XMPP Extension Protocol
Jingle (protocol)
Jingle is an extension to the Extensible Messaging and Presence Protocol . It implements peer-to-peer session control for multimedia interactions such as in Voice over IP or videoconferencing communications. It was designed by Google and the XMPP Standards Foundation. The multimedia streams are...

, XEP-0166.

Decentralization and addressing


The XMPP network uses a client–server architecture (clients do not talk directly to one another). However, it is decentralized—by design, there is no central authoritative server, as there is with services such as AOL Instant Messenger
AOL Instant Messenger
AOL Instant Messenger is an instant messaging and presence computer program which uses the proprietary OSCAR instant messaging protocol and the TOC protocol to allow registered users to communicate in real time. It was released by AOL in May 1997...

 or Windows Live Messenger
Windows Live Messenger
Windows Live Messenger is an instant messaging client created by Microsoft that is currently designed to work with Windows XP , Windows Vista, Windows 7, Windows Mobile, Windows CE, Xbox 360, Blackberry OS, iOS, Java ME, S60 on Symbian OS 9.x and Zune HD...

. Some confusion often arises on this point as there is a public XMPP server being run at jabber.org, to which a large number of users subscribe. However, anyone may run their own XMPP server on their own domain.

Every user on the network has a unique Jabber ID (usually abbreviated as JID). To avoid requiring a central server to maintain a list of IDs, the JID is structured like an e-mail address
E-mail address
An email address identifies an email box to which email messages are delivered. An example format of an email address is lewis@example.net which is read as lewis at example dot net...

 with a username and a domain name
Domain name
A domain name is an identification string that defines a realm of administrative autonomy, authority, or control in the Internet. Domain names are formed by the rules and procedures of the Domain Name System ....

 (or IP address
IP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...

) for the server where that user resides, separated by an at sign
At sign
The at sign , also called the ampersat, apetail, arroba, atmark, at symbol, commercial at or monkey tail, is formally an abbreviation of the accounting and commercial invoice term "at the rate of"...

 (@), such as username@example.com.

Since a user may wish to log in from multiple locations, they may specify a resource. A resource identifies a particular client belonging to the user (for example home, work, or mobile). This may be included in the JID by appending a slash followed by the name of the resource. For example, the full JID of a user's mobile account would be username@example.com/mobile.

Each resource may have specified a numerical value called priority. Messages simply sent to username@example.com will go to the client with highest priority, but those sent to username@example.com/mobile will go only to the mobile client. The highest priority is the one with largest numerical value.

JIDs without a username part are also valid, and may be used for system messages and control of special features on the server. A resource remains optional for these JIDs as well.

Connecting to other protocols



Another useful feature of the XMPP 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
SMS
SMS is a form of text messaging communication on phones and mobile phones. The terms SMS or sms may also refer to:- Computer hardware :...

 or Email
Email
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...

. Unlike multi-protocol clients
Multiprotocol instant messaging application
A multiprotocol instant messaging application is client software composed of an IM application which may connect to multiple IM networks. The networks supported include: AOL Instant Messenger, ICQ, XMPP , MSN Messenger, QQ, Yahoo! Messenger, as well as specialized networks such as Novell GroupWise...

, XMPP provides this access at the server level by communicating via special gateway services running on a remote computer. Any 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 XMPP users. This means any client that fully supports XMPP can access any network with a gateway without extra code in the client, and without the need for the client to have direct access to the Internet. This may violate terms of service on the protocol used—but such terms of service are not legally enforceable in several countries. This also requires sending your IM username and password to the third-party site that operates the transport, which may raise privacy concerns.

XMPP via HTTP transport


Another aspect of XMPP is the HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

 binding for users behind restricted firewalls
Firewall (computing)
A firewall is a device or set of devices designed to permit or deny network transmissions based upon a set of rules and is frequently used to protect networks from unauthorized access while permitting legitimate communications to pass....

. In the original specification, XMPP could use HTTP in two ways: polling and binding. The polling method, now deprecated, essentially implies messages stored on a server-side database are being fetched (and posted) regularly by an XMPP client by way of HTTP 'GET' and 'POST' requests. With HTTP 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.

Because the client uses HTTP, most firewalls allow clients to fetch and post messages without any hindrances. Thus, in scenarios where the TCP port used by XMPP is blocked, a server can listen on the normal HTTP port and the traffic should pass without problems. Various websites let people sign in to XMPP via a browser. Furthermore, there are open public servers that listen on standard http (port 80) and https (port 443) ports, and hence allow connections from behind most firewalls.

Implementations


XMPP is implemented by a large number of XMPP clients, servers, and code libraries.

Development


The IETF XMPP working group has produced a number of RFC
Request for Comments
In computer network engineering, a Request for Comments is a memorandum published by the Internet Engineering Task Force describing methods, behaviors, research, or innovations applicable to the working of the Internet and Internet-connected systems.Through the Internet Society, engineers and...

 protocol documents:
RFC 3920, RFC 3921, RFC 3922, RFC 3923, RFC 4622, RFC 4854, RFC 4979
  • RFC 3920, Extensible Messaging and Presence Protocol (XMPP): Core, which describes client–server messaging using two open-ended XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     streams. XML streams consist of <presence/>, <message/> and <iq/> (info/query). A connection is authenticated with Simple Authentication and Security Layer
    Simple Authentication and Security Layer
    Simple Authentication and Security Layer is a framework for authentication and data security in Internet protocols. It decouples authentication mechanisms from application protocols, in theory allowing any authentication mechanism supported by SASL to be used in any application protocol that uses...

     (SASL) and encrypted
    Encryption
    In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...

     with Transport Layer Security
    Transport Layer Security
    Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...

     (TLS).
  • RFC 3921, Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence describes instant messaging
    Instant messaging
    Instant Messaging is a form of real-time direct text-based chatting communication in push mode between two or more people using personal computers or other devices, along with shared clients. The user's text is conveyed over a network, such as the Internet...

     (IM), the most common application of XMPP.
  • 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.
  • RFC 3923, End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) describes end to end encryption
    Encryption
    In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...

     of XMPP messages using S/MIME
    S/MIME
    S/MIME is a standard for public key encryption and signing of MIME data. S/MIME is on an IETF standards track and defined in a number of documents, most importantly RFCs. S/MIME was originally developed by RSA Data Security Inc...

    . Conflicting this proposal, many clients currently use GPG
    GNU Privacy Guard
    GNU Privacy Guard is a GPL Licensed alternative to the PGP suite of cryptographic software. GnuPG is compliant with RFC 4880, which is the current IETF standards track specification of OpenPGP...

     for encrypting messages.


The XMPP Standards Foundation
XMPP Standards Foundation
XMPP Standards Foundation is the foundation in charge of the standardization of the protocol extensions of XMPP, the open standard of instant messaging and presence of the IETF.- History :...

 (XSF) develops and publishes extensions to XMPP through a standards process centered on XMPP Extension Protocols (XEPs, previously known as Jabber Enhancement Proposals/JEPs). The following extensions are in especially wide use:
  • Data Forms
  • Service Discovery
  • Multi-User Chat
  • XHTML-IM
  • File Transfer
  • Entity Capabilities
  • HTTP Binding
  • Personal Eventing Protocol


XMPP is currently being extended to handle signaling / negotiation for VoIP
Voice over IP
Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

 and other media sessions. This signaling protocol is called Jingle
Jingle (protocol)
Jingle is an extension to the Extensible Messaging and Presence Protocol . It implements peer-to-peer session control for multimedia interactions such as in Voice over IP or videoconferencing communications. It was designed by Google and the XMPP Standards Foundation. The multimedia streams are...

. Jingle is designed to be consistent with the Google Talk
Google Talk
Google Talk is a freeware voice over Internet protocol client application offered by Google Inc. The first beta version of the program was released on August 24, 2005...

 service and bridgeable with the Session Initiation Protocol
Session Initiation Protocol
The Session Initiation Protocol is an IETF-defined signaling protocol widely used for controlling communication sessions such as voice and video calls over Internet Protocol . The protocol can be used for creating, modifying and terminating two-party or multiparty sessions...

.

See also

  • Comparison of instant messaging clients
    Comparison of instant messaging clients
    The following tables compare general and technical information for a number of instant messaging clients. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date...

  • Comparison of instant messaging protocols
  • Comparison of XMPP server software
    Comparison of XMPP server software
    - Comparison by RFC implementation status :- Comparison by XEP implementation status :...

  • Secure communication
    Secure communication
    When two entities are communicating and do not want a third party to listen in, they need to communicate in a way not susceptible to eavesdropping or interception. This is known as communicating in a secure manner or secure communication...

  • SIMPLE
    SIMPLE
    SIMPLE, the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, is an instant messaging and presence protocol suite based on Session Initiation Protocol managed by the IETF...

  • jabber.to

External links