This is the second of a series of blog posts about the main building blocks of an IOT platform. As mentioned before, the capabilities of an IOT platform can be classified in two main groups: centralized and decentralized. At a high level, the following figure illustrates some of the fundamental features of an IOT platform:
In this blog post we will cover one of the fundamental capabilities of a centralized IOT topology: the device discovery service.
What Is It?
The device discovery service abstracts the dynamic registration and de-registration of smart devices in an IOT topology. This service keeps a up to date directory of devices in an IOT network.
The device discovery service should enable some of the following key capabilities:
- Registering a Smart Device: This capability should enable the dynamic registration of a smart device in an IOT topology. With the registration, the device should communicate relevant information such as capabilities, SLAs, etc.
- De-Registering a Smart Device: This capability should facilitate removing a smart device from an IOT topology.
- Device Discovery Queries: This capability should facilitate the inspection of devices in an IOT topology via queries.
How to Implement it?
There are several technologies available in the market that can facilitate the implementation of device discovery capabilities in an IOT solution. The most important aspect of implementing such a capability is the fact that devices should dynamically register with the central hub as they are join the IOT network. The following technologies might serve as inspiration of how to implement an IOT device discovery service:
- IBM IOT Foundation Device Management Service(https://developer.ibm.com/iotfoundation/recipes/api-documentation/#registerDevice ): IBM’s IOT Foundation provides a series of services that facilitates the registration and management of devices using the IOT Foundation Cloud.
- IOTivity Device Discovery Service(https://www.iotivity.org/documentation/linux/programmers-guide/registering-resource ): Intel’s led open source IOTivity platform provides a service that abstracts the registration of devices in an IOT network.
- XMPP Discovery Extensions(http://xmpp.org/extensions/xep-0128.html ): This protocol adds discovery capabilities to services communicating through XMPP
- Consul.io(https://consul.io/ ): Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. Consul.io capabilities also work in a cross-datacenter topology.