9. Hitachi’s contributions to Node-RED
8
We have added over 200 commits and
20,000 lines of code to Node-RED project
0
3,000
6,000
9,000
12,000
15,000
May-16 Sep-16 Jan-17 May-17 Sep-17 Jan-18 May-18
IBM
Hitachi
OtherHitachi started
contribution
Line of code
Line of codes in Node-RED repository
17. Demo: Tracking space station on map
16
Node-RED can easily get data via REST API and
visualize it on the browser
The demonstration program gets location of space station
and plots it on the map
1. Get latitude
and longitude
2. Handle
location data
Web browser
3. Plot pins on map
Space station
Node-RED
REST API
Hello everyone. My name is Kazuhito Yokoi form Hitachi. I’m very glad to be here today.
I’m one of the contributors in OSS Node-RED project.
In my session, I’d like to talk about how to join OSS community.
(0:20)
First of all, let me start from what I will deliver in my presentation.
I’ll talk about why OSS contribution is important activity in companies.
Second, I’ll introduce an OSS visual programing tool, called “Node-RED” which was mainly contributed by IBM and Hitachi.
Next, based on our own experiences in joining Node-RED community, I will talk about contribution know-how. Especially, for Japanese companies.
Finally, I will introduce new OSS project, “Node generator” which Hitachi started contributing to.
(0:48)
In the next slide, I'll explain about advantages of OSS.
As you know, there are many advantages of using OSS in a company.
I think that user company has four points as follows.
First, ”Low cost and delivery speed”.
Everyone can easily download the OSS on the internet for free.
Second, “Reliable source code”
Entire source code is available on the internet.
Therefore, if there is an error in the system, engineers can easily check the source code and come up with solutions.
Third, “Long term support without vender lock-in”
Sometimes vender lock-in has benefits for both vendor and engineers.
But when the vendor stop their software, engineers need to migrate the software to others.
On the other hand, if system uses OSS instead of the vender software, they don’t have to face that problem.
Fourth, “Standard technologies”
For example, Docker, kubernetes and Cloud Foundry are available as OSS.
Because the system using OSS has compatibility, it can easily connect to other systems.
OSS contributor company has more advantages over user company.
First, they can add new functionalities related to their business.
In the company, there are requirements about the software. If a company becomes a contributor, they can easily customize the software by themselves.
Second, companies can advertise their abilities to their customers.
Usually, companies can reach their customers through only their sales people.
If a company becomes a contributor, they can reach their customers through OSS online activities.
Actually, in my case, because of the online visibility, there are a lot of inquiries from customers after we started our contributions.
Finally, engineers can learn development skills from community members.
In traditional development style, engineers always need to solve the software problem inside their company.
On the other hand, in OSS community, engineers can ask their questions on the internet and other engineers will help them.
In my experience, I learned JavaScript coding methods, GitHub and Travis CI from community members.
For these reasons, I encourage a lot of companies to be a contributor.
(3:04)
In this slide, I’d like to explain about “What is Node-RED?”.
Node-RED is visual programing tool for IoT applications.
The screenshot is development environment of Node-RED flow editor.
There are a lot of connectors on the left side of the flow editor.
After an engineer selects the connectors, he or she drags and drops them to the central workspace.
Then the engineer wires connectors in the processing order.
Once clicking the deploy button, the IoT application will run immediately.
Because of the flow-based programing, it realizes quick development without coding.
And there are various connectors to add functionalities.
Node-RED is open source software under Linux Foundation project.
A lot of companies including IBM and Hitachi have contributed to Node-RED.
(1:20)
This slide shows history of Node-RED.
About four years ago, Node-RED was developed by IBM UK and released in Qcon London.
As soon as the announcement was made, the beta version of IBM Cloud bundled Node-RED on the default catalog.
Since the end of two thousand fifteen, Node-RED has been pre-installed on Raspberry Pi Linux OS.
At the end of two thousand sixteen, the management of Node-RED project was transferred to Linux Foundation.
As shown on the line chart, the number of downloads has increased gradually.
Currently, Node-RED is downloaded fifty thousand times per month.
As I have explained, Node-RED has been more open and popular as open source software for both edge and cloud environments.
(1:13)
Next, let me talk about “Who uses Node-RED?”.
Major companies have used Node-RED in their productions.
There are three types of the approaches.
The first is cloud services.
AT&T, Fujitsu, Hitachi and IBM have Node-RED environment on their cloud services.
The second is connectors.
IBM, Microsoft and NEC have published connectors for their services.
The third is edge devices.
GE, Intel, NEC, Samsung, Siemens and Toshiba have their edge devices which include Node-RED.
RED means DevRelCon speaker’s companies.
(1:00)
Next slide is “Benefits of Node-RED”.
There are three reasons why I recommend Node-RED.
The first is “Rapid development for IoT applications”.
Using Node-RED, IT and factory engineers can easily create their IoT application within couple of hours without coding.
Same development style in both edge and cloud environments is also useful because IoT application tends to use both environments.
The second is standard technologies in industrial IoT.
Node-RED supports essential IoT technologies like REST API, WebSocket and MQTT protocols.
As I said in the previous slide, a lot of standard edge devices including Raspberry Pi have Node-RED as their development environments.
The third is open community.
Eighty contributors are developing Node-RED on GitHub.
You can join and suggest new features on GitHub.
There are a lot of third party connectors on public npm repository.
You can use the connectors to suit your needs.
(1:30)
In this slide, I’ll explain about “Node-RED key features”.
In the typical IoT system, Node-RED has seven key features.
(1) The first is Edge analytics. Edge devices have functionalities to connect sensor, camera, microphone and speaker via GPIO or serial port. After retrieving the data, Node-RED can filter or analyze them. For example, Open CV connector can locally detect human faces from image data.
(2)(3) The second and third are Data collection and Device control.
As the default, Node-RED has connectors for MQTT and WebSocket protocols.
Via the protocols, Node-RED on cloud can collect data and control devices.
(4) The fourth is dashboard.
Using the dashboard, IoT application can visualize sensor data and notify alert when abnormal sensor data is detected.
(5) The fifth is connection to data lake.
Node-RED has connectors for major databases and object storages like MySQL, PostgreSQL, MongoDB and Amazon S3 compatible object storage.
(6)(7) The sixth and seventh are connections to other systems.
If other systems have REST API, Node-RED can easily connect to the system.
(2:55)
Let me talk about how much Hitachi has contributed to Node-RED project.
In just a year, we have added over two hundred commits and twenty thousand lines of code to Node-RED project.
As shown in the chart, Hitachi follows IBM as the second biggest contributor company.
(0:30)
When we decided to start contribution activity, we encountered the problem.
We are not sure about the first step for the contribution.
Our solution was face to face meeting with core developers.
To create relationship with Node-RED core developers, Hitachi members visited IBM UK office and had technical discussion.
The pictures on the right are IBM UK office and a snap with core developers.
(0:35)
After the face to face meeting, we understood the technical side of Node-RED.
However, we were not familiar with the contribution procedures on GitHub because only a few Hitachi members used GitHub.
As the solution, we suggested on-site development with core developers.
And Hitachi engineers worked in IBM UK office for two weeks to learn contribution procedures.
In the IBM office, We had discussion and coding.
As shown in the picture, we sometimes had dinner together.
(0:48)
Next, “How to continue to connect with developers?”.
Continuous connection with developers in foreign countries is important for online development.
Therefore, we hold monthly teleconference with core developers.
Recently we started biweekly teleconference with all developers in UK, Canada, the US and Japan.
To communicate with community members, we are using discourse forum like this.
On the forum, we always suggest new functionality and have discussions before we submit our pull request.
(0:52)
Next ,“How to establish presence in the community”
I think that number of users is important to be major OSS.
To realize it, we published five thousand introductory books in Japan.
And we give presentations in global conferences.
These activities were very effective in establishing our presence in the community.
(0:35)
Lastly, “What is the best for the first contribution?”.
In terms of Japanese companies, I recommend some contributions as the first step.
The first is “Documentation”.
Because sometimes official documents do not contain the latest information.
And Japanese have abilities to write documentation in English if they have a lot of time to write.
The second is “Quality improvement”.
I think that Japanese can concentrate on quality improvement by adding test cases and bug fix.
The third is “internationalization” of the software.
As you know, Japanese language tend to be used only in Japan.
Therefore, in general, foreign engineers cannot translate into Japanese.
In the Node-RED project, our first step was Japanese translation.
If you change browser language setting, you can see other languages on Node-RED flow editor.
(1:34)
Finally, I will introduce a new OSS project which Hitachi is contributing to
It is “node generator”, command line tool under Linux Foundation project.
Using the tool, engineers can easily create Node-RED connectors from Swagger definition or JavaScript code.
You can see the project on the following URL.
(0:34)
In the project, to add the functionalities, we have open discussion using the following tools.
Slack is for real time discussion with community members.
Currently, over forty members joined the node generator channel.
To share development roadmap, we are using GitHub Kanban board.
If you are interested in the project, please visit the web site.
That’s all. Thank you for your listening. Have a nice day.
(0:44)
Let me demonstrate Node-RED.
Node-RED can easily get data via REST API and visualize it on your browser.
I’ll demonstrate simple example to get location data of space station and plots them on map.
The demonstration consists of three steps.
First, Node-RED gets location data of the space station from REST API.
Second, Node-RED converts the data format for map framework.
Finally, Node-RED plots the pins on the map in the browser.
(0:46)