XMPP overview

XMPP (Extensible Messaging and Presence Protocol) is a compilation of open–source communications that enable instant messages exchange, presence, multi–user chat, video chat, and usual calls. XMPP also offers collaboration, light middleware, web–content syndication, and XML data integrated routing.


Initially, XMPP was a part of Jabber open–source. It was aimed at becoming a more available, divided option for centralized and closed instant messaging. XMPP has a range of benefits to provide in contrast to closed type technology. Here are some:


1. XMPP technology is available and accessible to people, easy in function and cooperation. Also, it has different forms of representation, like servers and its components, clients, and libraries.


2. Nowadays, XMPP is a standard technology. The core of XML streaming protocols serves as a standard for such messaging. It was documented by IETF. RFC 3920 and 3921 are the specifications of the XMPP issued in 2004. Since then, the XMPP foundation has also released lots of extension protocols, but in 2011, they refreshed their RFC, creating the most modern versions of RFC: 6120, 6121, 7622.


3. This technology is well–known and many people use it. The first version of XMPP or, back then, Jabber technology, was created in the end of the 90s by Jeremie Miller. Nowadays, it is tested and many experienced professionals have worked on it and improved it and continue to do so. Thousands of servers are working on the Internet every minute. It has millions of users all over the world, through the use of this technology by LiveJournal or Google Talk etc.


4. XMPP technology is independent. The structure of the XMPP network reminds of email, so anybody can create and lead its own XMPP server. It gives an opportunity to people and companies to create and control their chat processes.


5. XMPP is safe. If there is a need to make the XMPP less public, its server can be isolated. The XMPP’s core has built–in security protocols and frameworks, like TLS and SASL. Nowadays, XMPP specialists are working on improved encryption to make communication even safer.


6. It is easily extensible. With the help of XML, it is possible for anyone to customize the use of XMPP, as its core protocols are highly cooperative. To keep this technology this customizable, lots of extensions are released, often as XEP series. However, each company can develop their type of extension and work with it on the core of XMPP.


7. XMPP is also adaptable. Most XMPP apps support network control, web–content syndication, instruments for cooperation, content sharing, distant monitoring of the systems, light middleware, games, cloud and so on.


8. XMPP can be transformed to suit any user. It is popular among different companies and open–source projects that built their services and apps based on XMPP technology. XMPP always provides a space for creativity.



The main technologies of XMPP include:


- Core: provides information about the main types of XMPP technology for XML streaming.

- Jingle: enables communication via different ways with other XMPPs, is compatible with session initiation protocol, and can be used with a great number of voice or video chat applications, content share, and other types.

- Multi–User Chat: adjustable chat that can involve many users in negotiations.

- PubSub: ‘public-subscribe’ protocol function with notifications. It can work as a basis for many apps that need notification service.

- BOSH: HTTP binding extension.





Core


Simply, XMPP allows streaming XML over a network. Initially, a Jabber open-source community started this open-source, independent, flexible, and user–friendly technology. Its main aim was to create instant messaging for online clients, like ICQ or MSN, but is now available to everybody. It was created in 1999, and later, in 2004, it was documented as XMPP (Extensible Messaging and Presence Protocol). The main technologies are:


- The main XML streaming layer;

- TLC channel encryption;

- Better and more powerful authentication through SASL;

- UTF–8, so it is compatible with Unicode and supports internationalized addresses;

- Presence information is included;

- To ensure 2–way authorization, XMPP has presence subscriptions;

- Presence produces rosters.