XMPP: Extensible Messaging and Presence Protocol
XMPP stands for Extensible Messaging and Presence Protocol. It is a communication protocol, based on Extensible Markup Language (XML), for real-time communication. It supports a wide range of applications including presence, collaboration, instant messaging, multi-party chat etc. It is maintained by XSF, the XMPP Standards Foundation.
To understand what this really means, let’s go on a journey from P back to X…
P — Protocol
XMPP is a protocol; a set of standards that allows systems to talk to each other. XMPP is used widely across the web, but is often unadvertised. The protocol (or standards) are looked after by the XSF (link).
P — Presence
The presence indicator tells the servers that you are online / offline / busy. In technical terms, presence determines the state of an XMPP entity; in layman terms, whether you are there and ready to receive messages or not.
M — Messaging
The ‘messaging’ part of XMPP is the ‘piece’ you see; the Instant Message (IM) sent between clients. XMPP has been designed to send all messages in real-time using a very efficient push mechanism; whereas existing web based mechanisms often make many unnecessary requests introducing network load, and are consequently not real-time.
X — eXtensible
Defined in an open standard and using an open systems approach of development and application, XMPP is designed to be extensible. In other words, it has been designed to grow and accommodate changes.
- The original open instant messaging technology was Jabber, invented by Jeremie Miller in 1998. Later, Jabber was formalized as the XMPP, an internet standard for messaging and presence, by the IETF.
- Jabber’s version 1.0 was released in May 2000. In the same year, Jabber protocols like XML streaming, messaging, presence etc, were established. In October 2000, jabbered 1.2 was released and the server dialback protocol was introduced to stop address spoofing.
- In August 2001, the Jabber Software Foundation was established to coordinate the open source projects and commercial entities dependent on the Jabber technologies.
- In October 2002, Internet Engineering Steering Group (IESG) approved the formation of the XMPP Working Group. In November, the first meeting of this group was held at IETF 55.
- In 2004, the IETF published the core XMPP specifications: RFC 3920 and RFC 3921. It resulted in widespread adoption of XMPP.
- In August 2005, Google Talk IM and Voice over Internet Protocol (VoIP) service were launched over XMPP. Later, reputed software companies like Apple, Cisco, IBM etc, started using XMPP in their products. For example, in 2010, Facebook introduced XMPP for its chat.
- In 2008, Jabber Inc. was acquired by Cisco Co. Later, in 2011, it was modified by IETF.
- It is free and decentralized which means anyone can set up an XMPP server.
- It is based on open standards.
- It supports multiple implementations of clients and servers.
- It is flexible, XML-based and can be extended. So, suitable for both instant messaging features and custom cloud services.
- Security is supported via SASL and TLS.
- It is efficient, can support millions of concurrent users on a single service such as GTalk.