Node-RED

Last updated
Node-RED
Original author(s) IBM Emerging Technology
• Nick O'Leary
• Dave Conway-Jones
Developer(s) JS Foundation
Initial release2013 [1]
Stable release
3.1.0 / September 6, 2023;5 months ago (2023-09-06) [2]
Repository
Written in JavaScript
Operating system Cross-platform
Platform Node.js
Type Flow-based programming for wiring the Internet of things
License Apache License 2.0
Website nodered.org

Node-RED is a flow-based, low-code development tool for visual programming developed originally by IBM for wiring together hardware devices, APIs and online services as part of the Internet of things. [3]

Contents

Node-RED provides a web browser-based flow editor, which can be used to create JavaScript functions. Elements of applications can be saved or shared for re-use. The runtime is built on Node.js. The flows created in Node-RED are stored using JSON. Since version 0.14, MQTT nodes can make properly configured TLS connections. [4]

In 2016, IBM contributed Node-RED as an open source OpenJS Foundation project. [5] [6] [7]

Node-RED projects

NameDescription
Node-REDA visual tool for wiring the Internet of things
Node-RED DashboardA dashboard user interface (UI) for Node-RED
Node generator Command-line tool to generate Node-RED node modules from several various sources, including Open API document and function node's source
Node-RED Command Line ToolCommand-line tool that allows for remotely administering a Node-RED instance

Flows

Node-RED Flow refers to the connection and sequencing of various input, output, and processing nodes within the Node-RED platform. Each node within a flow performs a unique and specific task. When data is transmitted to a node, the node processes it according to its designated function, before passing it on to the subsequent node in the flow. This system allows for the controlled execution and regulation of a wide range of operations, offering significant flexibility in creating real-time applications. Node-RED flows represent the main mechanism of this visual programming tool.

Node-RED Flow Node-RED Example.png
Node-RED Flow

Adoption

Node-RED has gained significant traction in the industrial internet of things (IIoT) and edge computing sectors. [8] [9] [10] Node-RED's open-source nature and large community have led to the creation of over 4000 connectors [11] supporting a wide range of data sources and protocols such as Modbus, OPC-UA, Siemens S7, and MQTT. Several PLC and IoT vendors [12] have adopted Node-RED as a standard.

Community survey

The 2023 Node-RED Community Survey [13] provided valuable insights into the usage patterns, preferences, and feedback from 780 individuals who are part of the Node-RED community. The survey, conducted in March 2023, revealed that Node-RED's usage extends beyond DIY home automation, with a growing trend towards professional use in a variety of industries. Over half of the respondents have been using Node-RED for over two years, indicating a well-established community. Notably, the most common messaging technologies used in conjunction with Node-RED are MQTT and HTTP, while InfluxDB emerged as the most popular database within the community. The survey also shed light on perceived barriers to adoption, pointing towards the perception of Node-RED as a proof of concept tool and the lack of certain key features. Despite these challenges, the survey highlighted a high level of satisfaction within the community, with over two-thirds of respondents rating Node-RED a 5 out of 5.

Commercial offerings

FlowFuse [14] (former known as FlowForge [15] ) is an open-core company investing in Node-RED. Nick O’Leary, co-creator of Node-RED is FlowFuse co-founder and CTO. FlowFuse adds to Node-RED collaborative development, management of remote deployments, support for DevOps delivery pipelines and the ability to host Node-RED applications on FlowFuse Cloud. FlowFuse is the DevOps platform for Node-RED application development and delivery.

See also

Related Research Articles

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

IBM Developer is a global community of coders, developer advocates, and digital resources that help developers learn, build, and connect. The IBM Developer website hosts a wide range of resources, tools, and subject matter expert conversations that help developers build and reinforce the open source, artificial intelligence AI, and cloud-based skills that are needed in hybrid cloud environments.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

<span class="mw-page-title-main">Message broker</span> Computer program module

A message broker is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Message brokers are a building block of message-oriented middleware (MOM) but are typically not a replacement for traditional middleware like MOM and remote procedure call (RPC).

The Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communications networks. The Internet of things encompasses electronics, communication, and computer science engineering. "Internet of things" has been considered a misnomer because devices do not need to be connected to the public internet; they only need to be connected to a network and be individually addressable.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

MQTT is a lightweight, publish-subscribe, machine to machine network protocol for message queue/message queuing service. It is designed for connections with remote locations that have devices with resource constraints or limited network bandwidth, such as in the Internet of Things (IoT). It must run over a transport protocol that provides ordered, lossless, bi-directional connections—typically, TCP/IP, but also possibly over QUIC It is an open OASIS standard and an ISO recommendation.

<span class="mw-page-title-main">OpenShift</span> Cloud computing software

OpenShift is a family of containerization software products developed by Red Hat. Its flagship product is the OpenShift Container Platform — a hybrid cloud platform as a service built around Linux containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. The family's other products provide this platform through different environments: OKD serves as the community-driven upstream, Several deployment methods are available including self-managed, cloud native under ROSA, ARO and RHOIC on AWS, Azure, and IBM Cloud respectively, OpenShift Online as software as a service, and OpenShift Dedicated as a managed service.

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc.

<span class="mw-page-title-main">MEAN (solution stack)</span> JavaScript software stack

MEAN is a source-available JavaScript software stack for building dynamic web sites and web applications. A variation known as MERN replaces Angular with React.js front-end, and another named MEVN use Vue.js as front-end.

Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Node.js.

<span class="mw-page-title-main">NodeMCU</span> Open-source IoT platform

NodeMCU is a low-cost open source IoT platform. It initially included firmware which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which was based on the ESP-12 module. Later, support for the ESP32 32-bit MCU was added.

ESP Easy is a free and open source MCU firmware for the Internet of things (IoT). and originally developed by the LetsControlIt.com community. It runs on ESP8266 Wi-Fi based MCU platforms for IoT from Espressif Systems. The name "ESP Easy," by default, refers to the firmware rather than the hardware on which it runs. At a low level, the ESP Easy firmware works the same as the NodeMCU firmware and also provides a very simple operating system on the ESP8266. The main difference between ESP Easy firmware and NodeMCU firmware is that the former is designed as a high-level toolbox that just works out-of-the-box for a pre-defined set of sensors and actuators. Users simply hook up and read/control over simple web requests without having to write any code at all themselves, including firmware upgrades using OTA updates.

<span class="mw-page-title-main">Cisco DevNet</span>

Cisco DevNet is Cisco's developer program to help developers and IT professionals who want to write applications and develop integrations with Cisco products, platforms, and APIs. Cisco DevNet includes Cisco's products in software-defined networking, security, cloud, data center, internet of things, collaboration, and open-source software development. The developer.cisco.com site also provides learning and sandbox environments as well as a video series for those trying to learn coding and testing apps.

The industrial internet of things (IIoT) refers to interconnected sensors, instruments, and other devices networked together with computers' industrial applications, including manufacturing and energy management. This connectivity allows for data collection, exchange, and analysis, potentially facilitating improvements in productivity and efficiency as well as other economic benefits. The IIoT is an evolution of a distributed control system (DCS) that allows for a higher degree of automation by using cloud computing to refine and optimize the process controls.

MQTT is an ISO standard publish–subscribe-based messaging protocol. It works on top of the Internet protocol suite TCP/IP. It is designed for connections with remote locations where a "small code footprint" is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

The OpenJS Foundation is an organization that was founded in 2019 from a merger of JS Foundation and Node.js Foundation. OpenJS promotes the JavaScript and web ecosystem by hosting projects and funds activities that benefit the ecosystem. The OpenJS Foundation is made up of 38 open source JavaScript projects including Appium, Dojo, jQuery, Node.js, Node-RED and webpack. Founding members included Google, Microsoft, IBM, PayPal, GoDaddy, and Joyent.

<span class="mw-page-title-main">PWCT</span> Visual programming language

PWCT is an free open source visual programming language for software development. The project was founded in December 2005 as a free-open source project that supports designing applications through visual programming then generating the source code. The software supports code generation in many textual programming languages.

<span class="mw-page-title-main">Thing Description</span>

The Thing Description (TD) (or W3C WoT Thing Description (TD)) is a royalty-free, open information model with a JSON based representation format for the Internet of Things (IoT). A TD provides a unified way to describe the capabilities of an IoT device or service with its offered data model and functions, protocol usage, and further metadata. Using Thing Descriptions help reduce the complexity of integrating IoT devices and their capabilities into IoT applications.

References

  1. nodered.org
  2. O'Leary, Nick. "Releases". GitHub . Retrieved September 6, 2023.
  3. Heath, Nick (March 13, 2014). "How IBM's Node-RED is hacking together the Internet of things". techrepublic.com . CBS Interactive . Retrieved January 16, 2017.
  4. Community staff writer (June 14, 2016). "Version 0.14 released". nodered.org/blog. Node-RED. p. 1. Retrieved July 6, 2016. MQTT with TLS support
  5. Diaz, Angel Luis (October 17, 2016). "IBM and partners launch JS Foundation - Cloud computing news". IBM . Retrieved October 20, 2017.
  6. Powers, Calvin; Watson, Todd; Lewis, Ashley (October 17, 2016). "Node-RED Joins the JS Foundation". IBM developerWorks TV/video channel. YouTube . Retrieved October 20, 2017.
  7. Lewis, Karen (October 17, 2016). "Node-RED visual programming for the Internet of Things (IoT) is now a JS Foundation Project". IBM Internet of Things blog. IBM . Retrieved February 7, 2017.
  8. "Node-RED in Industrial IoT: a growing standard". UMH Learning Center. 2021-07-13. Retrieved 2023-10-21.
  9. GmbH, TeDo Verlag (2022-03-30). "Node-Red im Industrial IoT - IT&Production". www.it-production.com (in German). Retrieved 2023-10-21.
  10. "#38 Visuelle Programmierung mit Node-RED | Die Open-Source Low-Code-Plattform | Teil 1 von 2 by Einfach Komplex - Der Podcast für Software- und IT-Laien". Spotify for Podcasters. Retrieved 2023-10-21.
  11. "Library - Node-RED". flows.nodered.org. Retrieved 2023-07-14.
  12. "Node-RED: The Integration Platform for IIoT Edge Computing & PLCs • FlowFuse". flowfuse.com. Retrieved 2023-10-21.
  13. "2023 Node-RED Community Survey : Node-RED". nodered.org. Retrieved 2023-07-02.
  14. "FlowForge • DevOps for Node-RED". flowforge.com. Retrieved 2023-07-02.
  15. "FlowForge is now FlowFuse • FlowFuse". flowfuse.com. Retrieved 2023-09-06.