Node-RED

Node-RED is a tool for wiring together hardware devices, APIs and online services to carry out tasks. It uses a visual programming approach that allows developers to connect predefined code blocks, known as ‘nodes’, together to perform a task. The connected nodes, usually a combination of input nodes, processing nodes and output nodes, when wired together, make up ‘flows’.

Node-RED uses a Flow Based Programming (FBP) model. FBP describes a graph of nodes, which exchange messages containing data via the edges. The edges are defined outside the nodes, in others words nodes have no control on where the data comes from and where it goes to.

Different categories of nodes are defined: Input: to process incoming events. Output: to serve or send outgoing events. * Functions: to manipulate messages and message payloads.

Using Node-RED provides several advantages for INTER-IoT:

  • Node-RED is an application/service composition tool.
  • There is already an active community regularly producing new nodes and the Node-RED platform is an open-source project hosted on GitHub.
  • Node-RED flows are represented in JavaScript Object Notation or JSON and can be easily exported to the clipboard to be imported into Node-RED or shared online.
  • IBM is also considering making it simpler to build on the work of others in Node-RED by introducing sub-flows. Sub-flows would allow users to collapse flows of multiple linked nodes into a single node, allowing more complex logic to be abstracted into a single node.
  • Provides a lightweight proof of concept runtime.
  • It’s easy to use for simple tasks.
  • It’s simple to extend and to add some new capabilities and types of integration.
  • It’s capable of creating the back-end glue between IoT applications.
  • Extensively used in the domain of IoT. A large number of nodes is developed to interoperate with the main IoT platforms.
  • It has been used in IoT interoperability projects, such as COMPOSE. Furthermore, it is one of the most used tools in the EPI projects.
  • There are many ways to run Node-RED e.g. under Docker.