If you are following Internet of Things, you must have heard about CoAP, OMALWM2M, IPSO smart objects, etc. and have wondered how all these new protocols fits together in a stack. In this post we will look at how these protocols relate to existing world wide web and how they fit in an IoT stack.
Before we go into details, first let us look into the problems are we trying to address in the IoT space?
Now if we look at the world wide web today, most of these problems are already solved.
Let us look at how we achieved these qualities for world wide web.
So how can we apply these qualities in IoT?
By applying internet protocol on constrained devices, we can achieve same qualities in IoT as world wide web.
Let us look at the communication stack that enables IP to run on the constrained devices. Following figure shows the IP stack for the constrained devices and their non-constrained counterpart.
On the right, we have a communication stack for non constrained devices. HTTP is an application protocol running on IPV4 or IPV6. IP provides the addressing and routing. Below IP layer we can have WiFi or Ethernet for local network. The hardware, for the most part, runs on microprocessors. The equivalent stack for constrained environments is on the left. We have microcontrollers for the hardware which can be running some kind of low power, low bandwidth local area network, for example 802.15.4 provides low-power and low bandwidth network that can run on battery powered devices. Other examples are Bluetooth Low Energy or Thread (which actually runs on 802.15.4). The routing is handled by 6LowPAN which is a compressed header version and IPV6 that provides full IPV6 functionality on constrained networks. For application layer, we have CoAP – Constrained Application Protocol – a light weight protocol specifically developed for constrained devices and machine to machine communication. It provides compressed binary mapping of REST API’s. Some additional features like Asynchronous notifications, CoRE link-format for hyperlinks are supported for machine to machine use cases.
Note that we can still use HTTP for less constrained networks.
We also have some common object models and data models for semantic interoperability. These models are used for exposing the resources in the IoT devices in a standard way. IPSO smart objects defines these models - a self-contained self describing objects that have URI and a well-defined schema. It is compatible with CoAP and HTTP.
For device management objects we have OMALWM2M protocol that is build upon CoAP. It defines simple reusable object models, REST APIs for on boarding and device life cycle management.
Other special interest groups like UPnP (Universal Plug & Play group), the industrial internet consortium, W3C and the open interconnect consortium are also working on common data models and the “thing” discovery.
In summary, CoAP, OMALWM2M and IPSO smart objects provides a communication stack for IoT that enables interoperability, scalability, re-usability and innovation. Following figure sums up how above mentioned protocols maps in world wide web and internet of Things.