The Distributed Management Task Force (DMTF) developed the Redfish API as a replacement for the Intelligent Platform Management Interface (IPMI), which provides out-of-band (OOB) system management. Redfish provides a simple and secure management system for the Software Defined Data Center (SDDC).
PICMG, a standards body for embedded systems, is the source of numerous standards such as CompactPCI, CompactPCI Serial, COM Express, SHB Express, AdvancedTCA, AdvancedMC, MicroTCA, and the venerable PCI-ISA bus. PICMG 2.9 specifies the use of IPMI with CompactPCI.
Though DMTF originally targeted Redfish at the data center, PICMG is looking to incorporate it into embedded systems, including smaller nodes that would allow it to be part of the industrial Internet of Things (IIoT). The collaboration is still a work in progress, but they’re working to extend and optimize Redfish to support IIoT and PICMG’s collection of bus standards.
The Redfish API is used to communicate information about systems and their components.
IPMI has a number of limitations, ranging from security issues to complex implementations. It’s designed to run on a Baseboard Management Controller (BMC) and provide monitoring and control capabilities. It uses a binary interface that’s efficient but not as extensible as many of the protocols utilized in the IoT space.
The original Redfish API employs the text-based JSON encoding scheme used with the web-based RESTful APIs, which leverage representational state transfer (REST) technology. REST is a lightweight remote-procedure-call (RPC) mechanism that uses human-readable and machine-capable JSON. This allows for flexible implementations that tend to be easier to debug and maintain. The flipside is that JSON and REST are generally more complex to implement. However, that’s typically a minor issue on larger systems, where compute and storage resources are plentiful.
One change to Redfish will be a binary version of JSON that’s more compact. Likewise, there will be some limitation on what an embedded node will do with this binary support, enabling much more compact code for IIoT nodes. It should be possible to use this version of Redfish on microcontrollers. The reduced protocol overhead due to binary encoding will also make implementations more efficient when it comes to data exchange.
The advantage of Redfish over other protocols is the possibility of generic system management that includes all aspects of a network from cloud and enterprise servers through gateways and IIoT end nodes.
Redfish has already been adopted by enterprise data-center and cloud-server environments. It uses HTTPS, and security is part of the protocol. Embedded developers should keep an eye on Redfish as it transforms to accommodate embedded systems and applications.