How should I link a backend solution to an IoT Hub

So, I am working on an IoT solution on Azure, we have been using a partner solution where we had the partner's devices linked to his cloud solution that exposes the data to us Via REST services. Right now we want to have our own IoT Cloud Solution on Azure.

At first, I am planning to build a Bridge between our IoT Solution and the partner's cloud solution via its REST Services that will link to our IoT Hub in order to ingest the data to our cloud.

Also, the data will not be only telemetry data but we'll have to send commands as well to those devices.

My question: I would like to know what would be the appropriate technology/solution to use a gateway (Data Grid, Azure Function, Azure WebJob)

Overview of the architecture

The numbers in the picture represent the step that I am considering to tackle this problem.

1- First we are implementing an Application gateway that will have to get the data from the partner's system and sending commands to their system. It will allow us to first build the other components of our system and make sure that it can handle what is in place right now.

2- Second, the partner's devices will connect directly to a device gateway that is connected to our IoT Hub. In this case, we will not be using the gateway made in 1 anymore.

3- Finally, we will have our own devices connected to our IoT Hub, the partner's devices will always be connected to our IoT Hub via the gateway built in 2.

Upvotes: 1

Views: 865

Answers (2)

After some time working on the subject, I did implement an AZURE Function app for the following reasons :

  • Supports Continuous Deployment and Integration Even though Azure Functions is serverless architecture, it still supports Continuous Deployment and Continuous Integration
  • Capabilities for implementing code - Being event-driven, the application platform has capabilities to implement code triggered by events occurring in any third-party service or on-premise system.
  • Compute-on-demand: This delivery model ensures that computing resources are available to the users as per their demand.

I have also used Azure Table Storage as database storage technology.

Upvotes: 1

Ravi Upadhyay
Ravi Upadhyay

Reputation: 41

Let me try to answer your questions in the order you have asked.

  1. For application gateway, where you are trying to pull data through REST, you can use Azure functions and then you use Cosmos DB or any storage to save data. I see , after getting device data from Partner network, you are routing it to IoT-Hub (I would not say, its incorrect), however once we pull data through Rest, we can directly put into DB. So my Answer is to use Azure functions to pull data from Partner solutions and put into DB.
  2. If partner device is capable of running Azure IoT sdks or can be provisioned to send data to IoT Hub directly, this will ease lot of things and you would be able to send D2C and C2D messages easily. further, here you can route data to DB by using configuration from IoT Hub.
  3. For your devices you can use IoT Hub Directly or can use Azure IoT Edge (device gateway as you pointed ), both are fine , depends on use case and also if we want to do some edge computation or analytics at device side. And one important suggestions, use Azure functions where ever you find that you have to integrate devices data through Rest. Most cost effective in such scenarios.

Let me know if it clears your doubts.

Upvotes: 4

Related Questions