XMPP Is an open standard published by the Internet Engineering Task Force (IETF), the main authority for Internet standards. The principal documents are found in RFC 6120, 6121 and 6122.
XMPP helps protect privacy. It originated in the Jabber project as a protocol for Instant Messaging (IM), where privacy is a big concern. This has made sure important privacy and data protection mechanisms have been built into the protocol by design. My presentation Privacy for IoT with XMPP contains more information about this.
XMPP solves the topology problem. It allows devices and services to communicate across firewall boundaries and domains in a secure, authenticated and authorized manner, without the need to develop proprietary or bespoke server software.
XMPP is extensible. It can be safely extended by anyone controlling a domain name through the use of namespaces in XML. The XMPP Standards Foundation (XSF) works on standardizing extensions for XMPP. They publish a lot of interesting extensions.
XMPP is very flexible. It supports most important communication patterns used within IoT (such as asynchronous messaging, request/response, publish/subscribe, etc.). This makes XMPP great for use as a backbone protocol. It also solves the latency problem, allowing messages to be asynchronously transported across the network in near real-time.
XMPP clients connect to a federated set of brokers. These brokers provide things with distributed authentication and authorization services. The federated nature also provides global scalability.
You can also use existing server software to host your own broker or brokers. The XSF publishes links to a small selection of server software.
I provide an IoT XMPP broker that provides things with decision support in accordance with the desires of their corresponding owners. You can choose to use one of my brokers, let me host a broker for you, or license the software to host your own brokers.
A lot of libraries for XMPP exist for many different languages.
Client software for XMPP also exist in abundance for a lot of different platforms. These can be good for testing, konfiguration, administration and troubleshooting.
I provide a series of protocol bridges that bridge other protocols to XMPP. This allows you to interact and provision devices using protocols that do not natually support such features.
Mastering Internet of Things
Many of the topics presented here are described in more detail in the book Mastering Internet of Things. Source code examples are available on GitHub. The book is available on Amazon, Packt, Bokus(2), or other online book stores.
If you have any questions or comments, if you would like to request more information, or if you would like to license the software, please go to the Feedback page.