IOT Internet of Things are the next technological revolution that will invest every area such industrial, transportation, building constructions, manufacturing, agriculture, healthcare, energy on everyday life, etc. IOT promises to connect every things all together enable them to exchange information like, home devices, smart objects, wearable devices, smart phones, etc. All this information is gathered and analyzed to improve our life. If you are new to IOT you should read this article.
How the devices send and receive data?
We all know how HTTP Protocol works, how we browse or surf the net opening websites and etc. HTTP still used in IOT but there are other IOT protocols that can be more efficient and suitable for low power devices, such as Microcontrollers & Micro Computers.
List of IOT Protocols
There are several IOT protocols that are at the base of IOT, below are the comparison and service you can find for most important IOT protocol used in IOT ecosystem.
CoAP ( Constrained Application Protocol)
This protocol was designed by IETF and it is Machine to Machine protocol it is defined by RFC7252 and it is web transfer protocol. This protocol is similar to HTP it uses document transfer paradigm. It uses request/response model and support built-in services discovery. Compare to HTTP protocol, CoAP is lightweight lighter packets transmission. CoAP uses UDP as underlying network protocol. It is a type of client and server protocol where the client taking a request and the server reply back a response as it the same happing in HTTP. The method used by CoAP are the similar used in HTTP.
Continua HDP (Health Device Profile) Protocol
Continua is a Health Alliance Certified to a Bluetooth Enable Medical Devices for Interoperability. Which enable the users to know at the point of purchase that their medical devices will be able to connect with each other which is also can be interconnected to mobile devices or computers to implement a profiling health care service. See the diagram below.
DDS (Data Distribution Service)
The DDS (Data Distribution Service) is middleware protocol and API standard for data centric connectivity that integrates the devices and components of a system together providing a low latency data connectivity, extreme reliability and scalable architecture that business applications need. Distribution System the middleware is the software layer that lies between the operating system and application, it enable the various components of a system more easily communicate and shares data. It simplifies the development of distribution system by letting software developer’s focus of the specific purpose of their application rather than the mechanics of passing information between application and system.
DPWS (Devices Profile for Web Services )
The DPWS (Devices Profile for Web Services) enable a secure web service capabilities on resource-constrained devices. The DPWS was mainly developed by Microsoft and some printer device manufacturers. DPW allow you sending secure messages from web services, discovering web service dynamically, describing a web service, subscribing and receiving events from a web service.
DPWS is based on several other Web Services Specifications, WS-Addressing / WS-Policy / WS-Security / WS-Discovery / WS-Transfer / WS-Eventing
DPWS is also partially based on W3C Web Services Architecture. SOAP / WSDL / XML-Schema
HTTP/ReST (Representational State Transfer)
REST is a straightforward approach to sort out communications between autonomous frameworks. It’s been developing in notoriety since 2005, and motivates the plan of administrations, for example, the Twitter API. This is because of the way that REST permits you to interface with insignificant overhead with customers as differing as cell phones and different sites. In principle, REST is not attached to the web, but rather it’s quite often executed thusly, and was motivated by HTTP. Therefore, REST can be utilized wherever HTTP can.
The option is building generally complex traditions on top of HTTP. Regularly, this takes the state of whole new XML-based dialects. The most distinguished illustration is SOAP. You need to take in a totally new arrangement of traditions, however you never utilize HTTP to its fullest power. Since REST has been motivated by HTTP and plays to its qualities, it is the most ideal approach to figure out how HTTP functions.
MQTT (Message Queue Telemetry Transport)
MQTT (Message Queuing Telemetry Transport) Protocol is a M2M (Machine to Machine) lightweight messaging protocol widely used in IOT (Internet of Things) that provides a resource constrained network clients. Almost IOT cloud platform support MQTT protocol to send and receive data from smart objects in other words it is a simple way to distribute telemetry information which uses a publish & subscribe communication pattern together with your favorite microcontrollers & Open GPIO microcomputers.
MQTT was created and develop way back 1999 the main goal of this projects is to create a protocol that capable of transmitting an efficient, power saving, very simple to implement, low overhead, TCP stack as transmission substrate and the most important on MQTT is open source. All of this aspect contribute to its large adoption in IOT. Click here for implementation using Mosquitto. Official Site
SNMP (Simple Network Management Protocol)
Simple Network Management Protocol (SNMP) is a popular protocol for network management. It is used for collecting information from, and configuring, network devices, such as servers, printers, hubs, switches, and routers on an Internet Protocol (IP) network. Microsoft Windows Server 2003 provides SNMP agent software that works with third-party SNMP management software to monitor the status of managed devices and applications.
UPnP (Universal Plug and Play) Protocol
The Universal Plug and Play Forum defines UPnP Device and Service Descriptions (originally called Device Control Protocols or DCPs) according to a common device architecture contributed by Microsoft. The Universal Plug and Play Forum is a group of companies and individuals across the industry that intend to play a leading role in the authoring of specifications for UPnP devices and services. Formed on October 18, 1999, it is an association of more than 200 vendors who are industry leaders in consumer electronics, computing, home automation and security, home appliances, computer networking, and mobile devices. Related Site
XMPP(Extensible Messaging and Presence Protocol)
The Extensible Messaging and Presence Protocol (XMPP) is a protocol for streaming XML [XML] elements in order to exchange messages and presence information in close to real time. The core features of XMPP are defined in Extensible Messaging and Presence Protocol (XMPP): Core [XMPP‑CORE]. These features — mainly XML streams, use of TLS and SASL, and the <message/>, <presence/>, and <iq/> children of the stream root — provide the building blocks for many types of near-real-time applications, which may be layered on top of the core by sending application-specific data qualified by particular XML namespaces [XML‑NAMES]. This memo describes extensions to and applications of the core features of XMPP that provide the basic functionality expected of an instant messaging (IM) and presence application as defined in RFC 2779 [IMP‑REQS]. Official Site
ZeroMQ ( ØMQ, 0MQ, ZMQ) Protocol
ZeroMQ (also known as ØMQ, 0MQ, or zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. It’s fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems. ZeroMQ is from iMatix and is LGPLv3 open source. Official Site