1
votes
  • We have around 9000 devices in field.
  • This devices are at groups of 1-100 at customers on prem.
  • The devices are not capable of azure-iot-sdk integration.
  • The devices have a webservice API.
  • The devices should appear as first-class devices in azure.

We like the iot edge module provisiong feature. We want to evaluate if modules could gather data from the devices and send them to IoTHub for further processing.

We found this feature overview of IoTEdge: https://docs.microsoft.com/de-de/azure/iot-edge/iot-edge-as-gateway

Pattern Transparent and Protocol translation are out of scope due to above facts. Pattern Identity translation seems to fit.

We want a 1 to 1 relationship between module and real device.

Therefor we assume the following POC with the hope of clarification and best practise:

  • we implement a iot edge module (azure-iot-sdk-java)
  • we open module connection to iotedge and suscribe to desired properties
  • the module identity gets as desired property the ip of the real device and the azure device identitiy connection string.
  • we open device connection to iotedge by adding GatewayHostName to the device connection string as described here https://docs.microsoft.com/de-de/azure/iot-edge/iot-edge-as-gateway
  • we request data from the real device and send them via azure device identity.

This somewho mixes up two patterns and seems kind of odd to us. Can you point out best practises and risks with this approach?

1

1 Answers

1
votes

Yes, I agree with that Pattern Identity translation could fit your scenario. There are three patterns for using an IoT Edge device as a gateway: transparent, protocol translation, and identity translation, you can refer to this link to get more introduction about these three pattern.