Bi-Directional Device and Data Source Management

Blog - Bi-Directional Device and Data Source Management

icon_crosshair-inwards2In a previous post about MachineShop's IoT ingestion service, we discussed the value of centralized translation from proprietary protocols into JSON to enable universal inspection of messages for rules and application enablement. In this installment, we explore outbound communication to devices and data sources - things like command and configuration.

Spoiler alert: We apply the same exact concepts to outbound communication as we do to inbound communication, but in reverse. Specifically, we unify the language of commands with JSON over a REST interface and translate it into proprietary protocol for the “last mile”. Commands are assigned transactions that trigger HTTP callbacks for status and completion. Alternatively, applications can subscribe to status updates using web sockets.

Let’s say you want to change the configuration of a connected device through your application. As with any technological challenge, you have options:

1.) Read the manual for the device to understand the format of the configuration command and then execute against that spec. Maybe it’s some binary format transmitted over UDP.

2.) Buy a Platform, read its manual to understand how to use it and write the code it understands to configure the device. (It’s worth noting that acquisition of that Platform is only 10% of your solution cost.)

3.) Make a HTTP POST to a self-documenting RESTful endpoint with key-value pairs that intrinsically make sense to you, the developer...Something like: 
/data_sources/1234/commands/config  { “params” : { “frequency” : 5000 } }

One of these approaches costs less, gets you to market more quickly and makes life much easier for your developers. MachineShop APIs give you the most value for the vast majority of applications by creating intuitive interfaces to universally-understandable data formats.