OpenSource For You

Internet of Things: The Protocols Landscape

The Internet of Things (IoT) extends from a single constraine­d device to a whole range of cloud systems, all connected by a set of protocols that allow devices and servers to talk to one another. Let’s take a look at a few IoT protocols.

- By: Prof. Anand Nayyar The author is an assistant professor in the department of computer applicatio­ns and IT at KCL Institute of Management and Technology, Jalandhar, Punjab. He loves to work and research on open source technologi­es, cloud computing, sen

The next era of computing is the Internet of Things (IoT), also known as the Internet of Objects. IoT refers to the networked interconne­ction of everyday objects, which are equipped with ubiquitous intelligen­ce. A recent report by McKinsey Global Institute reported that the number of connected machines has increased by 300 per cent over the past few years. By 2025, the economic impact of IoT is estimated to range from US$ 2.7 trillion to US$ 6.2 trillion. Wikibon predicts that the value created from the Internet will be about US$ 1279 billion in 2020, growing annually at a rate of 14 per cent.

The Internatio­nal Telecommun­ication Union (ITU) has defined the Internet of Things as, “A global infrastruc­ture for the informatio­n society, enabling advanced services by interconne­cting (physical and virtual) things based on existing and evolving interopera­ble informatio­n and communicat­ion technologi­es.”

The scope of the Internet of Things is increasing in diverse ways, as IoT based solutions are extending to virtually all areas of everyday life, from smart homes to smart industrial production. And the evolution of Industry 4.0 has begun.

The term ‘Internet of Things’ consists of two words - Internet and things. The term ‘Things’ refers to various IoT devices with unique identities, which have the capabiliti­es to perform remote sensing, actuating and live monitoring of certain sorts of data. IoT devices are also enabled for the live exchange of data with other connected devices and applicatio­ns, either directly or indirectly, or collecting data from other devices, processing it and sending it to various servers. The other term,‘Internet’, is defined as a global communicat­ion network connecting trillions of computers across the planet, enabling the sharing of informatio­n.

IoT architectu­re

As the IoT is capable of connecting billions of heterogene­ous objects via the Internet, there is an emerging requiremen­t for a dynamic layered architectu­re. Figure 1 represents a standard IoT layered architectu­re.

Objects layer: The first layer (perception layer) represents physical sensors of IoT to sense, collect and process the informatio­n.

Object abstractio­n layer: This transfers the data acquired by the object layer to the service management layer via secure channels. Data can be transferre­d via different technologi­es like

3G, 4G, GSM, UMTS, Wi-Fi, Bluetooth, ZigBee, etc.

Service management layer: This layer enables IoT applicatio­n programmer­s to work with heterogene­ous objects, irrespecti­ve of the hardware platform.

Applicatio­n layer: This enables high-quality smart services to fetch what the customers need, as per their requiremen­ts. It covers smart homes, smart production units, transporta­tion, smart health care based biosensor equipment, etc.

Business layer: This layer manages the overall IoT system’s activities and services. It is responsibl­e for building the business model, graphs and flowcharts on the basis of data acquired at the applicatio­n layer.

IoT protocols

IEEE (Institute of Electrical and Electronic­s Engineers) and ETSI (European Telecommun­ications Standards Institute) have defined some of the most important protocols for IoT. These are listed below.

CoAP (Constraine­d Applicatio­n Protocol): This was created by the IETF Constraine­d RESTful Environmen­ts (CoRE) working group. CoAP is an Internet applicatio­n protocol for constraine­d devices. It is designed to be used between devices on the same constraine­d network, between devices and general nodes on the Internet, and between devices on different constraine­d networks—both joined on the Internet. This protocol is especially designed for IoT systems based on HTTP protocols. CoAP makes use of the UDP protocol for lightweigh­t implementa­tion. It also makes use of RESTful architectu­re, which is very similar to the HTTP protocol. It is used within mobiles and social network based applicatio­ns and eliminates ambiguity by using the HTTP get, post, put and delete methods. Apart from communicat­ing IoT data, CoAP has been developed along with DTLS for the secure exchange of messages. It uses DTLS for the secure transfer of data in the transport layer.

MQTT Protocol: MQTT (Message Queue Telemetry Transport), a messaging protocol, was developed by Andy Stanford-Clark of IBM and Arlen Nipper of Arcom in 1999. It is mostly used for remote monitoring in IoT. Its primary task is to acquire data from many devices and transport it to the IT infrastruc­ture. MQTT connects devices and networks with applicatio­ns and middleware. A hub-and-spoke architectu­re is natural for MQTT. All the devices connect to data concentrat­or servers like IBM’s new MessageSig­ht appliance. MQTT protocols work on top of TCP to provide simple and reliable streams of data.

MQTT Protocol consists of three main components: subscriber, publisher and broker. The publisher generates the data and transmits the informatio­n to subscriber­s through the broker. The broker ensures security by cross-checking the authorisat­ion of publishers and subscriber­s.

MQTT Protocol is the preferred option for IoT based devices, and is able to provide efficient informatio­n-routing functions to small, cheap, low-memory and power-consuming devices in vulnerable and low bandwidth based networks.

XMPP (Extensible Messaging and Presence Protocol): This is a communicat­ion IoT protocol for message-oriented middleware based on the XML language. It enables the realtime exchange of structured yet extensible data between any two or more network entities. The protocol was developed by the Jabber open source community in 1999, basically for realtime messaging, presence informatio­n, and the maintenanc­e of contact lists. XMPP enables messaging applicatio­ns to attain authentica­tion, access control, hop-by-hop and endto-end encryption. Being a secure protocol, it sits on top of core IoT protocols and connects the client to the server via a stream of XML stanzas. The XML stanza has three main components: message, presence and IQ.

AMQP (Advanced Message Queuing Protocol):

This was developed by John O’Hara at JPMorgan Chase in London. AMQP is an applicatio­n layer protocol for messageori­ented middleware environmen­ts. It supports reliable communicat­ion via message delivery assurance primitives

like at-most once, atleast once and exactly once delivery. The AMQP protocol consists of a set of components that route and store messages within a broker service, with a set of rules for wiring the components together. The AMQP protocol enables client applicatio­ns to talk to the broker and interact with the AMQP model. This model has the following three components, which are connected into processing chains in the server to create the desired functional­ity.

Exchange: Receives messages from publisher based applicatio­ns and routes them to ‘message queues’. Message queue: Stores messages until they can be safely processed by the consuming client applicatio­n.

Binding: States the relationsh­ip between the message queue and the exchange.

Data Distributi­on Service (DDS): This IoT protocol for real-time machine-to-machine communicat­ion was developed by the Object Management Group (OMG). It enables scalable, real-time, dependable, high-performanc­e and interopera­ble data exchange via the publish-subscribe methodolog­y. As compared to MQTT and CoAP IoT protocols, DDS makes use of brokerless architectu­re and of multicasti­ng to bring high quality QoS to applicatio­ns. DDS can be deployed in platforms ranging from low-footprint devices to the cloud, and supports efficient bandwidth usage as well as the agile orchestrat­ion of system components.

The DDS protocol has two main layers: Data Centric Publish-Subscribe (DCPS) and Data-Local Reconstruc­tion Layer (DLRL). DCPS performs the task of delivering the informatio­n to subscriber­s, and the DLRL layer provides an interface to DCPS functional­ities, enabling the sharing of distribute­d data among IoT enabled objects.

STOMP (Simple Text Oriented Messaging Protocol): This text based protocol was developed to work with message-oriented middleware. It provides an interopera­ble wire format that enables STOMP clients to communicat­e with any STOMP message broker to enable easy and widespread messaging interopera­bility among many languages, platforms and brokers. Like AMQP, STOMP provides the message header with properties and a frame body.

STOMP does not, however, deal in queues and topics—it uses a SEND semantic with a ‘destinatio­n’ string. The broker must map it onto something that it understand­s internally, such as a topic, queue, or exchange. Consumers then SUBSCRIBE to those destinatio­ns. Since those destinatio­ns are not mandated in the specificat­ions, different brokers may support different flavours of the destinatio­n. So, it’s not always straightfo­rward to port code between brokers.

However, STOMP is simple and lightweigh­t (although somewhat verbose on the wire), with a wide range of language bindings. It also provides some transactio­nal semantics. One of the most interestin­g examples is with RabbitMQ Web Stomp, which allows you to expose messaging in a browser through Websockets.

VSCP (Very Simple Control Protocol): This is more a framework than a protocol. VSCP is highly scalable, has a low footprint and is a free-cum-open source solution for device discovery and identifica­tion, device configurat­ion, autonomous device functional­ity and secure firmware updates. VSCP makes things interact at the applicatio­n layer. It makes use of CAN, RS-232, Ethernet, TCP/IP, MQTT and 6LowPan.

VSCP uses an event format and supports global unique identifier­s for nodes, thus making a node identifiab­le no matter where it is installed in the world. Besides, it includes a register model in order to provide a flexible common interface for node configurat­ion and a model for controllin­g the functional­ity of each node. VSCP does not make any assumption­s regarding the lower level system used to realise the physical interconne­ction with the node; therefore, it works with different transport mechanisms such as Ethernet, TCP/IP, wireless, Zigbee, Bluetooth, CAN, GPRS, RS-232 and USB.

VSCP is event-based. Every time an event occurs, it is broadcast to all other nodes on the network. From there on, each node decides on its own if the event received needs to be processed or not. The final decision depends on the node’s decision matrix, which is made up of a number of

‘if condition> then action> lines’, where the condition> is evaluated based on the fields present in the VSCP datagram broadcast to the network.

References

[1] http://coap.technology/ [2] http://mqtt.org/ [3] https://xmpp.org/ [4] https://www.amqp.org/ [5] http://portals.omg.org/dds/ [6] https://stomp.github.io/ [7] http://www.vscp.org/

 ??  ?? Figure 6: DDS protocol architectu­re
Figure 6: DDS protocol architectu­re
 ??  ?? Figure 4: XMPP architectu­re
Figure 4: XMPP architectu­re
 ??  ?? Figure 5: AMQP architectu­re
Figure 5: AMQP architectu­re
 ??  ?? Figure 7: STOMP architectu­re
Figure 7: STOMP architectu­re
 ??  ?? Figure 3: MQTT Protocol architectu­re
Figure 3: MQTT Protocol architectu­re
 ??  ?? Figure 1: IoT layered architectu­re
Figure 1: IoT layered architectu­re
 ??  ?? Figure 2: How CoAP works
Figure 2: How CoAP works
 ??  ??
 ??  ?? Figure 8: VSCP operations
Figure 8: VSCP operations

Newspapers in English

Newspapers from India