XMPP and JabberFeb 18, 2013 · 2 minute read
Jabber was originally invented by Jeremie Miller in 1998 who was sick of using many different closed protocol instant messenger clients. To begin fixing this situation he created jabberd as an open source server in 1999 and by May of the next year version 1.0 was released.
Over the course of the last twelve or so years Jabber has evolved into a standards organisation (XMPP Standards Foundation) and developed an open industry standard for instant messaging called the Extensible Messaging and Presence Protocol (XMPP). As the name suggests XMPP is created using XML, which forms the basis for the systems message stanzas.
The protocol has been stable for sometime and now enables projects to take advantage of instant messaging, presence, conference and video chat. With all this on tap Google are not the only ones working with XMPP.
AOL Instant Messenger, Skype and Facebook have dabbled with the protocol although more recently Microsoft have announced that the Windows Live APIs support XMPP. This will allow any software to communicate with Windows Live Messenger via Live Connect. Apple, Cisco, IBM, Nokia (Ovi) and Sun have also made use of XMPP in one way or another in various projects.
More recently Google and XMPP have added a draft extension to the protocol called Jingle, which enables voice over IP and video conferencing. Whilst it is yet to be fully approved it is at a stage where it is ready for deployment with the libjingle library used by Google Talk freely available under a BSD licence.
One surprising implementation that demonstrates the flexibility of the protocol is RemoteVNC (an application to remotely control a computer), which uses Jingle to share desktops between users.
Some other implementations of the system include team collaboration, geo location and vehicle tracking, data syndication, identity services and even games.
The XMPP website (http://xmpp.org) maintains a large catalogue of client applications, server software and code API libraries along with full specifications for each aspect of the protocol so it is an excellent place to start learning more about the standard.
Join in the conversation about this article on Hacker News.
The accompanying tutorial to create a Google Talk bot with Node.js is also published on my blog.
In tandem with the Google bot tutorial I wrote four smaller articles: