XMPP: An Open Messaging Protocol

Now you’re probably thinking “Oh great… ANOTHER instant messenger.” If you’re like most IM fans you probably have a long list of IM accounts on many different networks. Of course everyone has their favorite (be it AIM, MSN, ICQ, the list goes on…) but rarely do you and all of your friends agree on a favorite. These networks are all closed in nature meaning that a person with an MSN account cannot converse with a person on the AIM network. There ARE IM clients out there that allow you to connect to many different networks simultaneously but still you’re stuck remembering account information for half a dozen networks.
The Extensible Messaging and Presence Protocol, or XMPP, is an open protocol that aims to replace closed instant messaging networks of the past. The XMPP protocol is actually a formalization of the IM protocol used by a messenger known as Jabber. The protocol was standardized by the IETF in 2004 and has since seen enormous growth in use. XMPP being an open standard allows for anyone to write both clients and servers which can be used to offer instant messaging.
The biggest example of XMPP’s recent growth would be GTalk, Google’s instant messenger service. Since 2006 Google has used the XMPP standard in both it’s embedded GMail IM client and it’s download-able client. Anyone who has a GMail account already has an XMPP account as well.
Aside from developers being free to openly create software using the protocol, it also allows for servers running XMPP to communicate with one another. Take the example of MSN and AIM, if I tried to send a message using AIM to a friend using MSN the AIM server would probably be really confused. However, if I were to have a GTalk account and my friend were to have a Jabber account we could both still communicate because both services implement XMPP!
Because anyone can run an XMPP server this opens up the possibility of using XMPP as a communication tool on a local network as well. Any business could install a small server that would allow everyone in the office or even between remote offices to quickly communicate through IM. If the business decided it was useful the service could even be extended to the internet allowing employees to communicate with others using the protocol (GTalk, Jabber, other businesses).
XMPP isn’t just limited to presence and messaging. There are a long list of optional standards and extensions. Most of the features you’re accustomed to in other instant messengers are available in either the core standard or through extensions. This includes multi-user chat, avatars, invisibility, file transfer, and a long list of others. Some of these extensions may not be present with all services but the basic functionality offered by the core standard should be. For example GTalk, at the time of this writing, does not support file transfers. However, it is believed that this will change in the future.
Whether you are looking for intra or inter-office messaging or just an easy, open way to chat with friends XMPP is an incredibly useful protocol. If you would like to try it out you can do so by either creating a GMail account or by creating an account at Jabber.org. These are the most popular but by no means the only services. Setting up a server for use on your own domain is a bit beyond the scope of this article but is also possible. If you have any questions you can contact us using XMPP at support@dinocore.net.
Posted by Chad Jablonski on Oct 03, 2009