• 5 min read

Introducing the Azure IoT Gateway SDK Beta

The Azure IoT Gateway SDK, available in beta today, eases the development process for any solution where on-premises computation is necessary to augment functionality provided by cloud services.

Azure IoT Gateway SDK has evolved into Azure IoT Edge on May 10, 2017. To learn more, click here.

We recently announced the Azure IoT Gateway SDK beta, which enables developers and ISVs to easily build and deploy gateway intelligence tailored to their specific scenario. Our SDK achieves this by providing code that reduces the necessary work required for the development of gateway logic. Any reduction in time to market is a huge advantage in an industry as competitive as IoT.

The Azure IoT Gateway SDK does not place restrictions on the type of gateway solution that can be created. Our IoT philosophy is to support the many different types of operating systems and hardware developers use, so we’ve built the gateway with ANSI C on top of a platform abstraction layer, providing a high performance gateway framework with a portable and cross-platform library that runs on both Windows and Linux. We’ve also integrated standards like LWM2M for device management and posted the entire gateway codebase on GitHub as on open source project as part of our ongoing support for open source SDKs. In the Azure IoT ecosystem, developers are free to extend and contribute functionality as needed.

Today a developer can use the Azure IoT Gateway SDK beta to build a gateway which solves many of the canonical gateway scenarios we will explore below: supporting legacy devices, running edge analytics, minimizing latency, conserving network bandwidth, supporting reliable operations, and addressing security concerns. These solutions are a combination of developer written logic and SDK code. At launch, the Azure IoT SDK beta contains:

  • A framework to create extensible gateway solutions
  • Code which sends data from multiple devices over gateway to cloud connection
  • An example of how to connect a non-TCP/IP enabled device to the cloud via protocol translation on the gateway.

As we continue development, we plan to implement additional gateway features which:

  • Enable developers to use high level languages (e.g. Node, Java, C#) when creating their custom gateway solution
  • Increase the productivity of developers using the SDK
  • Make more complex scenarios like cloud management of gateways a reality

Why IoT gateway devices are important

While many developers are already benefitting from connecting IoT devices directly to the cloud, some scenarios require edge intelligence to get the most out of an IoT solution. Buildings, for example, often have sensors that are not TCP/IP-enabled and cannot connect to the cloud on their own. The Azure IoT Gateway SDK, available in beta today, eases the development process for any solution where on-premise computation is necessary to augment functionality provided by cloud services. Canonical examples of IoT gateway scenarios include:

Support for legacy devices: There are millions of sensors and actuators already deployed that are not capable of sending data directly to the cloud. These devices either use a protocol that is not suited for the internet, do not implement encryption, or can’t store identity certificates. Using an IoT gateway reduces the burden and cost of connecting these devices.

Run edge analytics: There are a plethora of operations that can be done locally to ease cloud communication. Examples include data filtering, batching, and compression. Additionally, some computations like data cleansing or scoring a machine learning model with real time data may be better suited for being done on premise.

Minimize latency: Milliseconds matter when you are trying to prevent manufacturing line shutdowns or restore electrical service. Analyzing data close to the device that collected the data can make the difference between averting disaster and a cascading system failure.

Conserve network bandwidth: A typical offshore oil platform generates between 1TB and 2TB of data each day. A Boeing 787 creates half a terabyte of data per flight. It is not practical to transport vast amounts of data from thousands or hundreds of thousands of edge devices to the cloud. Nor is it necessary, because many critical analyses do not require cloud – scale processing and storage.

Operate reliably: IoT data is increasingly used for decisions affecting citizen safety and critical infrastructure. The integrity and availability of the infrastructure and data cannot be compromised by intermittent cloud connections. Capabilities like store and forward, collecting and acting upon data locally and then sending it up to the cloud when appropriate, help developers create reliable solutions.

Address security concerns: IoT devices, and the data they produce, need to be protected at a number of levels. Gateways can add a layer of security by isolating devices from the open internet, provide encryption and identity for devices that are not capable of doing it themselves, secure data that is locally buffered or stored, and much more.

Get started today

Creating a gateway solution that solves your specific end-to-end scenario, runs on the operating system of your choice, and is powered by the exact configuration of hardware demanded by your environment is only half the battle. Deploying your gateway solution, configuring it, monitoring it, and maintaining it can be just as much work, if not more work, than creating it in the first place.

For instance, take the example of creating a gateway solution to be run on an oil rig in the middle of the ocean. Writing the logic to talk to the correct machines in a protocol they understand, doing some analysis on the data, and sending it to the cloud is a lot of work. That logic, and the hardware on which it runs, must be shipped out to the oil rig. Ideally it would work like a charm from the first time it’s booted up, but that doesn’t happen in the real world. The software must be tweaked during initial deployment and probably updated as time goes on. In the best case, this maintenance happens remotely via SSH and copying files down to the gateway hardware. In the worst case, a human must be sent out to modify the software as necessary.

Imagine the SDK providing logic to have a cloud interface where you can configure the software that will power a gateway, test it before sending it to the physical machine, deploy it from the cloud, monitor the health of the software, and even update it using the same cloud portal.

The Azure IoT Gateway SDK has been tested during a private preview and enters public Beta today. We invite you to go check it out on GitHub. Inside the repo you will find documentation to get you started with the SDK, and samples to get your own gateway up and running in no time. We look forward to hearing what you think about the SDK: how does it work for you, what are the things you would like to see added to the SDK? Please join us on the Azure IoT Suite forum or on the Yammer IoT Advisors group.