2021 Call for Code Awards: Live from New York, with SNL’s Colin Jost! Learn more

Using Node.js to modernize a business-critical operating system

Node.js is the most popular JavaScript framework, with numerous users across all industries. In this article, I talk about the value that Node.js brings to the IBM i user base and ways that it has helped us serve our clients better.

If you haven’t heard of IBM i, it’s an operating system built for business computing. The IBM i platform is a great platform for Node.js, serving as a mainstay in industries that rely on stability, security, and data integrity such as banking/finance, trucking, healthcare, and the like.

Why Node.js is a great fit for IBM i

Node.js offers revolutionary functionality for IBM i users. Many IBM i programs have older user interfaces, some still relying on telnet-based text screens. While several independent software vendors provide solutions for modernizing the interface, Node offers a path to modernize without the need for a vendor product. IBM i clients can write new, modern user interfaces using the latest JavaScript technologies while still accessing the existing business application code.

Beyond that, Node.js enables cutting-edge technology to easily augment IBM i’s trusted core business logic. Using Node.js, IBM i clients can leverage the strengths of IBM i while integrating with Internet of Things (IoT) devices, REST APIs, microservices, and so on. A recent IDC study shows that many modernization initiatives on the platform are well-suited for Node.js.

flow

Another benefit of using JavaScript to augment IBM i is that you are better able to acquire and retain programming talent. According to the most recent IBM i Marketplace Survey, 87% of IBM i shops use the RPG programming language for new development. Many qualified RPG programmers exist, and RPG’s latest version is easy to learn. However, adding JavaScript to the application stack means you’re able to attract a broader range of software engineers. Now, any JavaScript developer can be a successful IBM i programmer. A new team member can contribute to new solutions immediately, and very quickly learn the other languages indigenous to the platform. Not only is this beneficial for IBM i shops looking to grow their staff, it also provides new and lucrative opportunities to JavaScript developers.

Bringing Node.js to the IBM i ecosystem

IBM has been an active player in the success of Node.js, helping to found the Node.js Foundation (now the OpenJS Foundation) and participating in the Technical Steering Committee for a number of years. IBM also helps with the day-to-day maintenance and makes numerous technical contributions with things like ICU support, the Node-API effort, diagnostic reports, and much more. Even with all those contributions, it wasn’t enough to enable the IBM i ecosystem on its own.

Enabling the IBM i ecosystem

IBM also worked to deliver value specifically for the IBM i customer base. To enable tight JavaScript integration with the IBM I platform, IBM created the itoolkit module, which allows JavaScript to directly call legacy IBM i constructs. This integration allows Node.js applications to talk to any program on the system, including core business logic written in the RPG, a highly specialized, data-centric programming language.

Node.js integration with databases is also important. Clearly, Node.js applications needs to communicate with the embedded database, Db2 for i. To satisfy this need, IBM created npm packages ( idb-connector and its promises-based idb-pconnector counterpart). These packages provide a zero-config, highly-performant library for running database operations.

IBM also took on leadership of the Node.js ODBC library, which allows users of any platform to leverage existing ODBC drivers for connectivity. For IBM i users, this is convenient because there are ODBC drivers that run on Windows, Linux, Mac, and IBM i itself.

The result: Rapid Node.js adoption

With the key components in place (environment integration and database integration) Node.js put down roots and grew quickly in the IBM i community. The IBM i community has user groups all around the world (the largest being the COMMON North America user association). Before long, Node.js was a highly discussed technology at meetups and conferences. It also became a regular discussion topic in social media channels. In its first year on the platform, Node was already used by 8% of the IBM i customer set. As you can see, it has taken a stronger foothold each year.

Node.js use in IBM i companies growing from 8% in 2017 to 25% in 2020

Customer success stories

The success of Node.js in the IBM i ecosystem is reflected in the number of customers willing to talk about their solutions built with Node.js.

Some examples include:

  • Cras Woodgroup successfully deployed Node-RED to integrate with programmable logic controllers (PLCs) throughout their manufacturing process. Their next-gen solution reduced lead times by 66%. Read the case study.
  • H/T Bendix, a Danish distributor of furniture fittings, was able to use new skills and Node.js to build their web presence and product catalog. Read the customer story.
  • SAIB, a wood manufacturer from Italy, integrated IBM i with Amazon Alexa to improve the efficiency of sales staff. Read the customer story.
  • FormaServ created a digital gateway to streamline companies’ use of the UKs digitized tax collection system (“Making Tax Digital”). Read the story.

Looking ahead to the future

IBM is committed to the success of Node.js on IBM i. Not only does IBM continue to be an active participant in the open source community, the company continues to provide community support for Node.js and the various integration libraries mentioned in this article. On top of that, IBM offers premium support so that clients can call on IBM for assistance at any time, and from anywhere.

With IBM’s support, the momentum of the community, and the fantastic synergy with the IBM i operating system, I expect Node.js will be a critical part of companies’ IT solution for many years to come. That’s what I call an ecosystem success story!

Learn more

If you’d like to catch up on the other things that IBM and Red Hat are doing on the Node.js front, you can check out: