The Internet of Things (IoT) is coming, and while issues around standards and protocols are still being ironed out, a growing number of developers, companies and entrepreneurs are flocking to the space in the hopes of staking a claim in what many believe will be technology's next great frontier.
IBM is attempting to help them with Node-RED, an open source tool "for wiring together hardware devices, APIs and online services in new and interesting ways," the website says. Node-RED offers a browser-based visual interface in which users can select from a palette of prebuilt nodes, which are functional components, and wire them together to create flows. These flows, which represent "if this, then that" workflows, can be deployed to a Node.js run time with a single click.
Node-RED's palette offers a wide range of node types. There are hardware nodes for devices like the Raspberry Pi; network nodes for protocols like HTTP, TCP and MQTT; social nodes for APIs from providers including Twitter and Twilio; and storage nodes for various file systems and databases. Because Node-RED is open source, developers can build and contribute their own nodes.
Built to Scratch an Itch
Dave Conway-Jones of IBM's Emerging Technology Group says that one of the reasons his team developed Node-RED was "to scratch an itch." As he explained to SD Times' Alex Handy, "We were doing increasingly more and more things that seemed to be this similar pattern where we would connect some device into some network that connects to some back end and get the data from A to B."
There had to be an efficient way to deal with this pattern, so Conway-Jones and his colleagues set out to build a tool that would make it easier to deal with IoT workflows. The result, Node-RED, largely eliminates the need for its users to become familiar with the technical intricacies and integration approaches of supported devices and functional components. That in turn speeds the process of iterating and responding to feedback and new requirements, and it also makes it possible to efficiently perform experiments that previously may have been prohibitively time-consuming.
On its own, Node-RED appears to be on its way to establishing itself as an important tool for the burgeoning IoT ecosystem. By giving technical and nontechnical users alike a visual means of connecting devices, APIs and other functional components, Node-RED can significantly reduce the complexity common to IoT workflows.
But one of Node-RED's most promising characteristics is its ability to support collaboration. The flows the software produces are represented in JSON, so they're easily shared. The Node-RED website even offers a flow library where users can upload flows they've created and download flows created by others. There 's already a wide range of flows. One shared flow, for instance, takes the RSS weather feed from the BBC and sends it to Twilio SMS and to a printer using MQTT. Another shared flow obtains input from an energy monitor and changes the color of an LED display based on a user-defined threshold.
If Node-RED's popularity grows, this collaboration-friendly approach could help shape the way we develop for the IoT.