In 1800, it took one or two years to send a message from London to Calcutta and receive a reply. You needed to find a ship’s captain you trusted, who piloted his sailing ship around the Cape of Good Hope and probably stopped in various ports along the way. Then your contact in Calcutta needed to write a reply and send it back to London in a similar fashion. Not exactly instant messaging!
With the invention of the steamship and the opening of the Suez Canal, the time was reduced to a month or two. Air mail reduced the time further to a week or two, and eventually to a few days (“when it absolutely, positively has to be there overnight”). The deployment of commercial email systems introduced us to wait times of only a few minutes (depending on how often you polled your server). And instant messaging (IM) systems such as ICQ® took communication to its logical conclusion: nearly immediate interaction.
As a result of these developments, the useful half-life of information has shrunk sig- nificantly, in many cases to mere seconds. For many people, IM trumps email. Blogging trumps newspapers and magazines. Microblogging trumps blogging. Groupchat trumps email discussion lists. Shared editing and whiteboarding trump carefully crafted presentations. Immediate notifications trump once-a-day updates. And the list goes on.
What all these technologies have in common is that the interactions happen in close to real time. To make this possible, we need technologies for real-time communication. Ideally such technologies would be open standards providing the real-time equivalent of HTTP, HTML, and the other building blocks of today’s Internet, because over the long term open standards provide stronger security, greater extensibility, and the pos- sibility for more innovation at the edges than do closed technologies.
The Extensible Messaging and Presence Protocol (XMPP) is just such an open tech- nology for real-time interaction. Consider some of its advantages:
•XMPP is proven. Over 10 years of development has resulted in a stable, widely deployed, seriously tested, Internet-scale technology, with dozens of interoperable codebases, tens of thousands of deployed services, and millions of end users.
•XMPP is secure. It provides built-in support for channel encryption and strong authentication, inherent resistance to many forms of malware, a diverse ecosystem of implementations, a decentralized network without a single point of failure, and significant deployment at some of the most security-conscious financial organiza- tions and government agencies worldwide. Work on more advanced features (such as user-friendly end-to-end encryption) continues so that XMPP will be even more secure.
• XMPP is decentralized. Unlike standalone communication silos, XMPP technolo- gies are deployed in a decentralized client-server architecture with an unlimited number of servers. Any person or organization can run their own XMPP server and connect it to the rest of the network using standard Internet infrastructure such as the Domain Name System (DNS), and certificates are freely available through the XMPP Standards Foundation (XSF) to enable secure federation of XMPP traffic.
• XMPP is extensible. Because XMPP is at its core a technology for rapidly delivering XML from one place to another, it has been used for a wide range of applications beyond instant messaging, including gaming, social networking, Voice over IP (VoIP), real-time collaboration, alerts and notifications, data syndication, geolo- cation, intelligent workflows, machine-to-machine communication, and custom applications.
• XMPP is scalable. The “push” model of information transfer used in XMPP solves serious scaling problems associated with traditional HTTP-based polling ap- proaches; as a result, it enables you to build applications that were literally im- possible until now.
• XMPP is a standard. The core aspects of XMPP have undergone rigorous public review within the Internet Engineering Task Force (IETF), and extensions to XMPP are published in an open, developer-oriented standards process run by the XSF. This approach has resulted in strong technologies that can be freely implemented under any licensing terms, from open source to shareware to proprietary code.
• XMPP is a community. Open standards, a large number of software products, and a communications network are all good, but the “secret sauce” of XMPP may be its vibrant and friendly community of technologists, developers, open source projects, commercial software companies, service providers, and end users. This community is committed to working together to solve problems and build great new applications.
For these reasons, more and more software developers and service providers are using XMPP to build real-time applications or add real-time interfaces to existing applica- tions. And you can, too, because XMPP provides a simple but powerful set of tools that can help you solve real-world problems.
Preface of XMPP: The Definitive Guide
Building Real-Time Applications with Jabber Technologies
by Peter Saint-Andre, Kevin Smith, and Remko Tronçon, O’Reilly 2009