The Distributed Management Task Force’s (DMTF) Redfish API is designed to replace IPMI. It could be useful for IoT management.
The number of Internet of Things (IoT) devices is growing astronomically. Managing even a subset of these is a challenge. Commercial and industrial IoT applications (CIoT and IIoT, respectively) often incorporate hundreds to thousands of identical devices that need to be managed in a coordinated fashion.
Many IoT frameworks have their own management support but this is often proprietary. At this point there is no single standard. Designing your own is probably not a good idea. One alternative might be the Distributed Management Task Force's (DMTF) Redfish API (see figure).
DMTF is a standards organization. Redfish targets the enterprise and cloud space, and is designed to replace the Intelligent Platform Management Interface (IPMI). IPMI is used on many embedded platforms in addition to enterprise network devices.
Redfish is designed to handle thousands of devices to taking on an array of IoT devices is not a stretch. Redfish is built on the Representational State Transfer (REST) web-based interface. Secure connections can utilize HTTPS, and the Redfish protocols include additional security support that is more advanced than that found in IPMI.
The Storage Networking Industry Association (SNIA) is using Redfish as the basis for Swordfish. Swordfish is a Redfish extension for management of storage and servers in hyperscale and cloud infrastructure environments. There is also a Redfish Open Compute Project (OCP) profile.
Redfish may not be applicable to all IoT devices—especially compact microcontrollers—but it they support HTTPS, they are candidates for Redfish. The initial Redfish standard was specifically targeting servers but subsequent work has expanded the types of supported devices. IoT support is important as integrated management of all networked devices becomes a requirement. It is a bit early for a Redfish IoT extension, but its scalable and extensible API makes it a desirable target.