Overview
The Edge Device Management package provides support for management of gateways and devices equipped with the Bosch IoT Edge software stack. This Remote Manager-Edge integration is implemented almost entirely on the Remote Manager side. This means that the same Bosch IoT Edge Agent, which provides connectivity to Bosch IoT Device Management, can connect to Remote Manager without any changes or extensions.
Communication Mechanism
The package also enables easy integration with other services, in particular Bosch IoT Rollouts. Thanks to this integration Rollouts may act as a central software repository to multiple Remote Manager instances, which act as a targets (devices) in Rollouts.
The Edge Device Management package enables Bosch IoT Rollouts to distribute new software artifacts to multiple on-premise deployments of Bosch IoT Remote Manager located on multiple customer sites. Each location has its own Remote Manager setup installed, through which many devices running Bosch IoT Edge, deployed at the particular location, can be managed. Basically, the Bosch IoT Rollouts service distributes updates to a number of Remote Manager instances, from where they can be further deployed on the edge devices:
Architecture diagram
The diagram below goes deeper and depicts the basic architecture and data transferring route when using the Edge Device Management package and how this feature is realized:
Basic components
The basic components of the Edge Device Management architecture are described below:
Generic Device Management framework - Provides the functionality for management of devices of arbitrary types.
Bosch IoT Edge Device Adapter - The device protocol adapter enabling the connection to Edge. It speaks the Ditto over MQTT protocol of Bosch IoT Things and Bosch IoT Hub services.The adapter enables management of edge-based devices by Remote Manager such as any other supported type of device.
Connection lifecycle - Establishes the connection behavior between Remote Manager and the edge devices i.e. reflecting whether the device is online/offline, handling device reconnects upon sudden or planned Remote Manager restarts.
Ditto-CU mapping - Provides the corresponding mapping between the Ditto digital twin model of Things and the Control Unit model of Remote Manager.
SoftwareUpdatable - Server-side contract of the SoftwareUpdatable Vorto model, used by Bosch IoT Rollouts, to perform software updates on devices. By implementing it, Remote Manager is able to deploy and update software, firmware, components, applications and OCI containers, basically everything supported by Bosch IoT Edge.
Vert.x MQTT Server - used by the Bosch IoT Edge Device Adapter to enable MQTT connectivity. It runs within the Remote Manager runtime, meaning that no external MQTT broker is required in order to deploy and use this functionality.
Software Repository - Provides the unified representation of deployment units which can be delivered to different devices and a common way to manage them.
OCI Container Artefact Plugin - Simplifies importing and downloading of JSON-based OCI container descriptors supported by Bosch IoT Edge.
OCI Image Artefact Plugin - Enables importing of OCI-compliant container images as tar archives to be downloaded via the OCI registry.
Download server - Enables downloading artifacts from the Software Repository via HTTPS.
OCI registry - Implements the OCI distribution specification pull workflow, meaning that the registry is read only.

