IBM and Red Hat — the next chapter of open innovation. Learn more ›
by Steve Perry Published August 30, 2017
You’ve probably heard of Node-RED. You know, that super awesome, browser-based, draw-the-flows and connect-the-nodes tool for integrating IoT devices with applications? Yeah, that one.
Maybe you’ve considered using it, maybe not. In this post, I’ll show you the top five reasons you should be using Node-RED in your applications. Right now.
Because it’s mature, and used so heavily, you can trust it to work. But don’t take my word for it. Ask PayPal. Or Netflix. Or Wal Mart (I could go on).
Is Web Browser technically part of a technology stack? I dunno, maybe I’m taking creative liberties here. But I do so to make this point: writing GUIs is tough (especially good ones like the ones you and I write).
Oh, and web browsers are ubiquitous. You like Safari? Great! Firefox? Awesome! Chromium? Opera? All are welcome (sigh, even you, Chrome).
I’m no fan of XML. XML is incredibly flexible, powerful, and expressive, but I don’t like XML because it can be so easily twisted and contorted into a huge steaming pile of hard-to-read application metadata.
When an application developer has fallen prey to the “let’s describe ALL our metadata in XML!” there is no talking them out of it. They are spellbound. Determined to turn the application configuration into a tangled mess (usually right before they leave the team, or worse, the company).
What the heck is “flow-based programming?” Only a super cool way to visualize an application’s functionality. Created in the 1970s by J. Paul Morrison for a Canadian bank, Flow-Based Programming (FBP) is a different way of thinking about programming that breaks the problem up into data, processes that operate on that data, and the network that connects processes together.
Processes are grouped together in a flow in order to accomplish an objective. Similarly, flows can be logically grouped together to accomplish higher-order objectives, and so on. Data in, data out.
And (no surprise) FBP lends itself well to visual programming. So you can draw code. Yes. Draw. Code. That runs. How cool is that?
Ah, the edge of the network. Yep, that’s where a lot of innovation happens. Why? Because that’s where a lot of the data is being created. Huge gobs of it. All the time. Data from sensors, cameras, and GPS data from mobile devices like phones and wearables. And don’t even get me started on all the data from self-driving cars (it’s coming, believe it).
Need to innovate using all that data? Well, my friend, that’s the “edge” and that’s where Node-RED shines.
How? Since Node-RED was designed and built by the IBM Emerging Technology Services team as a way to visualize sending and receiving Message Queue Telemetry Transport (MQTT) messages to and from hardware devices, connecting hardware (and their data streams) to applications is baked into Node-RED’s DNA. If you need to build a prototype to show off your idea, why not use one that was designed for the edge?
So you’ve built a prototype in Node-RED and your customer is impressed. Now what?
Now you build on that prototype to create the finished product of course. But stay in Node-RED! Whether what you need to build is a single new function, a collection of new functionality, or an entire application from browser to database, Node-RED has you covered from prototype to production.
And if you can’t find a component to fit your needs from the thousands that are freely available, you can write your own!
Check out IBM’s Node-RED Starter, for example, that will put you on the path to building some serious functionality.
Node-RED allows you to create functionality by wiring together flows of data between nodes using a browser. And it has gained tremendous popularity in the IoT space, by modeling bits of application functionality between IoT devices like sensors, cameras, and wireless routers.
But it’s so much more than an IoT technology (if you’re feeling creative). There are BAJILLIONS of ready-made nodes from flows.nodered.org. Don’t like those? Code your own!
The point is, a node is a block of code that can do pretty much whatever you want. Need to read in some data from Twitter? Check. Need to bump that tweet against a sentiment matcher to see if the tweet is happy/sad/indifferent? Check. Need to read in data from a web form? Check. Execute a serverless function running in OpenWhisk? Check.
You get my point. It’s SUPER flexible. And powerful.
Get the Code »
Learn how to build a real-time chat application in a few minutes by simply dragging and dropping components and wiring…
Back to top