Pelion Device Management Edge
Device Management Edge (from now on, just Edge) is a product that enables you to connect a variety of devices to Device Management. Examples of such devices are:
- Existing legacy devices that use a protocol, such as BACNet, Modbus and Zigbee.
- Non-IP based devices, such as Bluetooth LE.
- Devices with a limited memory footprint that cannot host a full Device Management Client.
Edge lets you connect all these devices to Device Management, so you can manage them and their resources remotely and locally. The Edge Protocol Translator API is protocol agnostic, so anything your gateway connects with can be connected to Edge. The Edge Management API can be used to create local management applications which can manage connected devices with and without Device Management connectivity.
Supported operating systems
Currently, only Linux operating system is supported.
Edge consists of three major components:
- Edge Core.
- Protocol translator(s).
- Local management application(s).
Edge Core hosts Device Management Client, which represents:
- An Edge device in Device Management.
- The connected devices as LwM2M devices in Device Management.
Edge also aggregates all the device connections into one secure DTLS/TLS connection to Device Management.
The firmware update to an Edge device uses the firmware update capability of Device Management Client in Edge Core.
Edge Core separates and hides the Device Management communication from the protocol translators. The protocol translators are interacting only with Edge Core. It is intended that the build end system can work without the Device Management connection when for example network issues are encountered. Therefore, the protocol translator is Device Management agnostic.
Proprietary protocol translators (PT) handle all the communication of the devices that Edge hosts using their native protocol. The protocol translators also map the connected devices' resources to LwM2M Objects and Resources following the IPSO object model and the OMA LwM2M specification.
- For example, a thermometer would be represented as Object
- The Objects have instances. For example, you can have multiple thermometers in one device, one for internal and one for external temperature. The numbering begins at 0. For example,
/3303/0is the first thermometer on the device.
- The current temperature is the resource
5700. For example, the current temperature from the first thermometer would map as
- You can use additional Resources for indicating, for example, the temperature unit. In this example, the Resource
/3303/0/5701could contain a string
Cfor Celsius or
You can run multiple protocol translators in one Edge device.
Edge has two APIs for the protocol translators, C-API and JSON-RPC API. The former is language binding and uses the same JSON-RPC API that Edge Core exposes. See the
pt-example for the C-API example and
simple-js-examples/simple-js-example for the JSON-RPC API example. Both examples are in the Edge examples code repository.
Note: You need to implement the protocol translator yourself because Arm does not know the protocol you intend to use or the objects and resources you want to map to it.
Local management application
Edge exposes a local management API for proprietary management applications. There is an example in Edge examples code repository. See the
simple-js-examples/simple-mgmt-example for the management API example.
The management API provides the connected device list and the device resource operations. The API is a JSON-RPC API like the protocol translator API and the devices and their Resources are represented in similar way.
As Edge is exposed to the internet, it is extremely important to take the necessary security precautions. There is a separate document on the Edge security aspects. Please familiarize yourself with it.
Detailed design of Edge
A detailed view on the design of Edge: