The OpenSpime protocol is a set of custom XMPP protocol extensions. The OpenSpime Core protocol defines the XMPP protocol extension that can be used to enable physical devices to communicate.
The OpenSpime protocol consists of:
- the core protocol itself, which is an extensible Extensible Mark-up Language (XML) container;
- the core protocol extensions, i.e. a set of extensions which extend the core protocol, and are already available to be used for a series of functionalities.
As just said, the OpenSpime core protocol is a container, and a container only, which takes care of essential security and practical issues, regardless of the content which is transmitted over the OpenSpime network. More in particular, it allows to:
- encrypt the content sent between two entities (end-to-end encryption);
- digitally sign the content sent between two entities;
- claim the authority to perform operations in the name of another entity.
This means that encryption, digital signature and management rights are taken care of once and for all at core protocol level. On top of this, it is then possible to build extensions which take advantage of these to build X-internet functionalities.
The OpenSpime protocol already comes with 3 protocol extensions (therefore known as core protocol extensions), which allow:
- data reporting from an entity to another entity;
- SpimeSeek, i.e. the process which allows to seek for entities' data across the network;
- claiming, i.e. the mechanism which authorizes an entity of the OpenSpime network to perform trustful operations in the name of another entity which has allowed it.
The Core protocol extensions are just a start, and it is extremely easy to build other custom OpenSpime protocol extensions which can be used for specific needs. These custom extension would then immediately benefit from all the encryption, digital signature and management rights handling that comes with the OpenSpime core protocol.
But this is not all.
The OpenSpime protocol is an extension of XMPP, the Extensible Messaging and Presence Protocol, which is an open XML protocol for near-real-time messaging, presence, and request-response services.
XMPP comes with some great advantages, which are leveraged by the OpenSpime protocol:
- it allows both synchronous and asynchronous communication, which enable both 'event-driven' and 'data-polling' software and hardware architectures;
- it can handle both one-way communications (direct messaging) and two-way communications (request-response mechanisms, which allow to ask, for instance, for a sent message receipt confirmation);
- it handles the presence, i.e. online status, of clients and its notification to the clients' authorized parties;
- XMPP servers are well-known robust applications, some of which are entirely open source;
- it comes with a mechanism which allows for message broadcasting to lists of subscribers (PubSub);
- it is based on unique identity handling;
- it already has a series of extensions which are essential when considering industrial applications, such as file transfer, and remote ad-hoc commands.
The OpenSpime protocol is a custom XMPP protocol extension.
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 3920), and XMPP IM (RFC 3921) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined within OpenSpime has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
