udmi

UDMI

UDMI Overview

The Universal Device Management Interface (UDMI) provides a high-level specification for the management and operation of physical IoT systems. This data is typically exchanged with a cloud entity that can maintain a “digital twin” or “shadow device” in the cloud.


By design, this schema is intended to be:

See the associated UDMI Tech Stack for details about transport mechanism outside of the core schema definition. Nominally meant for cloud-based MQTT-bridge providers, it can also work locally with standard docker-hosted local MQTT brokers.

The recommended workflow for UDMI covers using the registrar and validator tools to configure and test a cloud project. Additionally, the pubber tool is instrumental in setting up and testing the system independent of actual device setup.

Use Cases

The essence behind UDMI is an automated mechanism for IoT system management. Many current systems require direct-to-device access, such as through a web browser or telnet/ssh session. These techniques do not scale to robust managed ecosystems since they rely too heavily on manual operation (aren’t automated), and increase the security exposure of the system (since they need to expose these management ports).

UDMI is intended to support a few primary use-cases:

All these situations are conceptually about management of devices, which is conceptually different than the control or operation. These concepts are similar to the management, control, and data planes of Software Defined Networks. Once operational, the system should be able to operate completely autonomously from the management capabilities, which are only required to diagnose or tweak system behavior.

Design Philosophy

In order to provide for management automation, UDMI strives for the following principles:

Subsystem Blocks

UDMI provides a means to multiplex multiple functional subsystems through the same shared communication channel. There are a number of subsystems that make up the core UDMI spec:

Schema Structure

Schemas are broken down into several top-level sub-schemas that are invoked for different aspects of device management:

A device client implementation will typically only be aware of the state, config, and one or more telemetry messages (e.g. pointset), while all others are meant for the supporting infrastructure.

An interactive view of the schema is available at gencode/docs/.

Metadata Registration and Validation

Using UDMI on a project entails not only the base device and server implementations, but also properly registering and validating device configuration. The registrar tool and validator tool provide a means to configure and check site installations, respectively.