NISHIYAMA Hiroyasu (Center for Technology Innovation – Digital Technology / Data Science Research Dept. / Chief Researcher)
YOKOI Kazuhito (Center for Technology Innovation – Digital Technology / Cloud Research Dept. / Researcher)
In the era of the Internet of Things (IoT), there is a need more than ever before to be able to connect numerous things and to carry out myriads of programs. That is, an environment is required where everyone can easily create programs equipped with necessary functions. Node-RED is an open source software (OSS) tool that allows people to create programs through the simple creation of “Flows” on the screen by connecting “Nodes,” which describe functions, all without the use of code. Not only has Hitachi actively contributed to OSS initiatives through Node-RED, but it has also declared its intention to utilize it in Lumada. In this article, Hiroyasu Nishiyama, Chief Researcher and Kazuhito Yokoi, Researcher, from the Center for Technology Innovation - Digital Technology (CTI-DT), explain the value derived from collaborative creation in OSS initiatives.
(March 13, 2019)
NISHIYAMAI conducted research on compilers in my university days and started working on compilers for supercomputers upon joining Hitachi. Compilers are tools which enable computers to execute programs that people write, and they enable efficient calculations by mediating between humans and computers. However, when Hitachi’s supercomputer operations ran into a roadblock, I started engaging in research on program execution environment for service platforms such as Cosminexus. In terms of execution research, this belongs in the same stream as Node-RED initiatives.
YOKOIIn my university days, I conducted research on bioinformatics, a field which fuses biology with informatics. In general, many bioinformatics researchers come from informatics, and they analyze data that they obtain from biological researchers. However, I was involved in both of these processes in that I raised organisms, gathered data, and then analyzed this information. I raised ascidians, also known as sea squirts, an organism that is near Vertebrata. In seeking employment, I inquired multiple companies with research facilities with system integrators. Only Hitachi seriously listened to my overly enthusiastic and perhaps maniacal ideas about bioinformatics during an interview. This stuck out to me and I decided to join Hitachi. Upon joining the company, I was assigned to a department that deals with matters related to storage, and have conducted research on how to improve the performance of information retrieval systems for companies.
YOKOIWithin Hitachi, there was an invitation for submissions to a cloud application development contest around 2015. This was around the time when cognitive computing Application Programming Interface (API) started being used on the cloud, so this intrigued me and I decided to enter the competition. This was how I ended up encountering Node-RED. In order to create a program and participate in the contest, I needed to learn about cloud services as I knew next to nothing. I began participating in seminars that the Japanese community hosted, and I learned about how to develop cloud applications. About half of the things that I learned were about the programming tool, Node-RED. The more I learned, the more I became interested, and I started to talk about it at Hitachi.
NISHIYAMAI encountered Node-RED when I started participating in a joint project between the laboratory and the department in January 2017. Usually, projects start in April. However, this project started in January as there was a three-month warmup period. I joined the project from January because Hitachi’s Node-RED evangelist Masaaki Iwasaki (Chief Engineer of the Research & Development Group and Laboratory Manager of the OSS Technology Laboratory) reached out to me saying he wanted an expert informatics compiler on the team to create a new platform utilizing Node-RED.
Node-RED was developed mainly by IBM’s UK laboratory group. However, as it has become open sourced, people can freely use it and develop it. Although Hitachi conducted OSS initiatives through Linux, etc., there is a strong sense of corporate culture that wants products to be created inside the company. In the midst of all of this, I interacted with people that are well-known in the OSS world and started participating in Node-RED OSS initiatives.
YOKOIA special feature of Node-RED is that you can create programs without having to code. Node-RED is comprised of the pieces of the program called "Nodes" and lines called "Flows" which give instructions to computers. You can create programs by connecting the Nodes that contain functions that you wish to execute. Specifically, when summoning APIs, which summon and use various web services, etc., with programs, you often end up needing high-level knowledge of conventional programming languages. However, with Node-RED, all you need to do to execute functions is to select the Node with the functions that you would like to use with an API and connect it to a Flow. It is a programming tool with a particularly high development efficiency.
Being able to easily create programs will come in handy, for example, when wanting to conduct a Proof-of-Concept (PoC) upon designing an IoT service. That is, PoCs would become smooth as people who are not programming experts will be able to create programs to test functions quickly. We believe this is a huge benefit that this provides.
On the other hand, Node-RED’s feature characteristic which allows people to easily create programs, is occasionally mistaken as a tool for nonprofessionals. In fact, because it is so easy to create programs, I once swore off Node-RED for a while, fearing that my coding ability would stagnate. Despite the fact that Node-RED allows for the easy creation of programs, it is not a tool to be used by nonprofessionals as a hobby, but it has sufficient functions which allow it to be used in practice. Its power can be found in the fact that many people love Node-RED, including those who have high capacities in programming and experts in the industry. In particular, the ability to use it as a client that summons various systems’ APIs is extremely useful in practice.
NISHIYAMAFrom the perspective of having researched compilers and seen many programming languages, I found the style of creating programs by sticking Nodes on the screen extremely odd. However, I found it pretty interesting when I actually used it to create a program. There is room for creativity in how to allocate the Nodes and how to connect them using Flows. The Nodes have many functions and expand greatly by how one combines them. In addition, whenever you come up with an idea of a new function that could be useful, you can suggest it to Node-RED community because it is an OSS and it may be incorporated.
Initially, when I was conducting research on compilers, I was pursuing 10% increases in execution speed. However, with Node-RED, I was able to deal with a wide variety of aspects including programming language design. As such, I am able to be involved in the entire process of the program creation, which has led me to enjoy my research activities.
A screen shot of Node-RED
YOKOIApproximately a year and a half have passed since Hitachi started its formal Node-RED OSS initiative. In this time, Hitachi has made large contributions to Node-RED OSS initiatives. Recently, about half of the monthly program submissions for Node-RED come from Hitachi. This means that a little over 10% of contributions come from Hitachi when looking at the grand scheme of things. When we can submit programs at this rate, we are able to sufficiently demonstrate to the Node-RED community that Hitachi has program development ability. This also leads to trust from our clients.
NISHIYAMABy company, the developer IBM has contributed the most to Node-RED, followed by Hitachi. In many cases, Hitachi and other Japanese companies often joined after the community would become large. When Hitachi contributes to large OSS communities such as Linux Foundation, the percentage of contribution remains low when viewing it in its entirety. However, with Node-RED, we have been able to demonstrate our capabilities because we were able to join the OSS initiative at an early stage. Other Japanese companies have started to use Node-RED, but it seems they have yet to contribute to the OSS community in a large way. If Japanese companies use Node-RED more, we anticipate further vitalization.
YOKOIOne of our contributions to OSS initiatives was creating a Japanese version of Node-RED. As it is easier for Japanese people to use Node-RED in Japanese than in English, we started the process of making it compatible with Japanese. Hitachi’s Node-RED evangelists published a book called "Tsunaide, Tsunaide Programming ~ Node-RED de Tsukuru Hajimete no Apuri (Connect, Programming ~ Making Your First App with Node-RED) through Ric Telecom in August 2017, and we worked to make the program compatible with Japanese in time for this book. Hitachi’s laboratories contain many non-Japanese members, and we have contributed to making Node-RED compatible with Chinese as well. As of September 2018, Node-RED’s community includes a source code compatible with French which is in the proposal stage, and future versions may be compatible with German. As Node-RED is expected to be used for IoT, we anticipate the proliferation of use in Germany in the future where IoT platforms are flourishing.
NISHIYAMAIn addition to multilingualization, Hitachi has contributed to adding other functions such as version control. Most people who use Node-RED are not experts in the programming field, but rather people who create programs to serve another purpose. We hope to continue our initiatives by proposing new Node-RED features so that people can easily program things.
NISHIYAMAAlthough you could say that Node-RED is a kind of visual programming language, I feel that it is different from other languages of the same type due to its balance. When comparing it to other languages, the balance between usability and functionality is very good. For example, there is a data flow orchestration tool for professionals in the same category of visual programming language. This also uses a web interface where you can allocate objects and connect them with lines to automate dataflows between systems. However, when you actually try it, it is quite difficult to use. Having an abundance of functions, it requires settings that are tedious even for professionals, and it is often impossible to use for people who are not professional programmers. On the other hand, Node-RED has a simple web interface, and has a fresh look. In addition, you can create complex programs with extreme simplicity. The balance between these two factors is superb.
YOKOINode-RED has become pre-installed software for the single board computer, Raspberry Pi, and has become easily accessible for community users. When using other visual programming languages for the purpose of PoC, etc., it is difficult to apply tasks to program development unless your designs and plans are solid. However, with Node-RED, it is both easy and flexible.
In addition, the developers decide upon functions that they will add through a simple majority in the community. This means that the developers of Node-RED and the actual users’ needs are directly connected without limits. This may be the reason for the fast spread of Node-RED’s utilization.
NISHIYAMAHitachi has not only contributed to Node-RED OSS initiatives, but it is also working towards using it in Hitachi’s own Lumada. When establishing IoT solutions, how you connect the inward system tasked with analysis to the outside system where IoT devices consolidate is important. People who provide solutions are often involved in development, and professional programmers are not always involved in this process. The origins of our ideas lie with the fact that we thought that Node-RED would be compatible for the sections where these systems are joined together. Thus, we started using Node-RED when we were connecting Hitachi’s systems with other companies’ systems. Node-RED is not a tool that is difficult to use even for non-professionals, and anyone can easily create a program that connects different companies’ systems. When establishing various solutions with Lumada, Node-RED’s balance between ease of use with abundant systems is on full display.
YOKOIIf there are insufficient functions to use Node-RED for Lumada, we can always look to add new functions through our OSS initiative. This is where the advantages of how Hitachi’s contributions through OSS activities come into play in a specific way.
NISHIYAMAI have worked in the laboratories for many years. We usually only interact with Hitachi’s departments that interact with customers requesting product development, and occasionally with the clients themselves. However, with Node-RED’s OSS initiatives, we communicate a lot with communities outside of the company, in addition to other departments that we are working with. Within the company there is active communication and we say things such as, "Do you think we should propose this kind of function in our OSS initiative?" and "I would like to start over as I do not think it will be implemented using this method." We also actively communicate with community members from overseas. In fact, we just had a teleconference with members from the UK yesterday (the day before the interview). However, this includes making sacrifices such as conducting the conference at night in Japan so it is morning in the UK.
YOKOIIt is extremely difficult that coordinating time to have discussions among three parties in Japan, the US, and the UK. Despite this, because we have an active community in addition to developments that take place in front of a computer, we try to ensure that we can disseminate as much information about our activities to parties both in and outside of our companies. In fact, not only has Hitachi been able to present how it has engaged in initiatives and what it has created with Node-RED within Japan, but it has also been able to do so at conferences held in San Francisco and Las Vegas. People who attend such sessions often give great feedback, making it worthwhile.
NISHIYAMABy participating in the OSS initiative, I have personally felt the joy of collaborative creation. In addition to being able to directly communicate with developers from various companies and situations, the ability to obtain comments from users and developers who have different perspectives has vastly differed from conventional R&D. We had travelled to the UK to propose a function to Node-RED. Our turning point was when this function was incorporated in June 2017. The function that Hitachi had submitted was incorporated into a major function of Node-RED and this gave us motivation, which I believe has led to our active participation since.
YOKOIThe UK’s development team conducted bootcamp-style development on site. We as Hitachi also joined them for about two weeks and conducted development together. Interpersonal relationships for collaborative creation are difficult to establish exclusively online. By developing together, it helped us establish interpersonal relationships within the community. In addition, when we develop in Japan, the time difference is often a problem. However, as we were on site, we were able to work together from 9 am to until 5 pm. It was a good experience as we had access to an extremely efficient work environment.
NISHIYAMAAt Hitachi, we suggest many new functions to improve the usability of Node-RED. We hope to consult community members in order to implement these well. One of our goals is to make programming easier. Although nonprofessionals can use the current version of Node-RED, having a background in programming is extremely beneficial. We hope to remove barriers that disadvantage people without a background, and continue to make it accessible by anyone. Through this process, we hope to enhance Hitachi’s high reliability and achieve "Node-RED that can easily realize high reliability."
YOKOII participated in the bootcamp and learned many things. In the future, I hope to take on the role of the teacher. I believe that a diverse set of companies should join the Node-RED community in addition to Hitachi. At Hitachi Open Lab Yokohama, you can now view a demo on Node-RED. Because Node-RED is an OSS, my wish is that many companies would be introduced to it, even if we compete against the company in other areas.