Microsoft has released the beta version of its Azure IoT Gateway software developer kit (SDK), allowing developers to build and deploy gateway intelligence for Internet of Things (IoT) projects. The company also released a preview of its device management tool specifically for the Azure IoT Gateway Hub.
In a blog post, Microsoft said it built the Azure Gateway SDK using ANSI C on top of a platform abstraction layer, so it would not restrict developers from using any type of operating system or hardware. “Our IoT philosophy is to support the many different types of operating systems and hardware developers use,” wrote Sam George, partner director with Azure IoT.
George said that the company posted the SDK on GitHub as on open source project so developers can contribute functionality as needed.
At launch, the Azure IoT SDK beta contains:
- A framework to create gateway solutions
- Code that sends data from multiple devices over the gateway to the cloud
- An example of how to connect a non-TCP/IP-enabled device to the cloud via protocol translation on the gateway
George also said the company plans to add more features such as letting developers use high-level languages like Node, Java, and C# to create custom gateway solutions.
In a separate blog post about the device management tool, George said that the tool enables Azure-based IoT solutions to organize, query, configure, and update devices. It also lets developers add the following capabilities:
- Device twin, which allows users to represent a physical device in an Azure-based IoT solution. It also provides users with status updates of the device such as its firmware version, battery level, and connected state. The device twin can be accessed by the existing device registry management API.
- Device queries, which let users find device twins and generate an aggregate view of device twins. An advice query is structured as a JSON object that can provide a filter, projection, aggregate, and list of sort expressions.
- Device jobs, which enable users to run actions on devices such as a firmware update, reboot, or factory reset. For example, the firmware update device job coordinates multiple devices as they download the firmware package, apply the firmware, and reboot and reconnect to the IoT Hub using the new firmware. The device job ensures the device follows the necessary steps, independent of connection state or constraints in the network used by device.
Microsoft first announced its Azure IoT Hub in September 2015. Shortly thereafter, Amazon announced its own IoT service, called AWS IoT. The service packages networking and security functions for the devices, making it easier for hardware designers to hook their products into AWS’s processing capabilities.
AWS’s IoT platform supports HTTP, WebSockets, and MQTT, which is a communication protocol specifically designed to tolerate intermittent connections, minimize the code footprint on devices, and reduce network bandwidth requirements.