Boutique Footwear Company Finds A Great Fit With Node.js
August 19, 2019 Alex Woodie
As one of the premier providers of winter footwear in North America and Europe, Kamik knows what it takes to run a successful manufacturing operation. But when its custom RPG-based ERP system started to show its age, the company turned to Node.js to help modernize production systems, and found that it improved application integration and developer productivity along the way.
“Legacy” is a word that the folks at Kamik can take pride in. Founded in Quebec in 1898, Kamik remains a family owned business to this day, with factories located in Canada and the United States. Through its brand-name and white-label operations, Kamik is the world’s largest supplier of winter footwear for children, with distribution through major retailers as well as directly to consumers via e-commerce sites.
Like many midsize American and Canadian manufacturers, Kamik has relied on the IBM midrange server to run its business decades, starting with the System/3X line and continuing with the AS/400 and the iSeries. Recently, the 400-person outfit upgraded to a Power Systems box based on a Power9 processor, which powers highly modified ERP developed years ago in RPG.
Those RPG apps have served the company quite well over decades of production use. But as the Internet changed user expectation and opened new opportunities in recent years, it became evident that Kamik’s old RPG code was not keeping up with emerging business requirements, especially as it relates to user and application interfaces. In response, the company hatched a plan to modernize its systems in 2014.
A Three-Part Plan
According to Kamik’s director of information technology, Trevor McCullough, the first step in the modernization plan was to convert the RPG-III code into free format ILE RPG code and to make more use of SQL for database access. The company executed the plan using ARCAD Software‘s code conversation tool to transform the RPG-III source code.
Almost all new RPG development work at Kamik now utilizes SQL access, while native record-level access is maintained for many existing processes – a pragmatic approach for a relatively small IT department with a lot on its plate. “Our goal was not to go in and start ripping out record-level access to add SQL,” McCullough tells IT Jungle. “We have too many new projects to focus on.”
The code modernization phase was critical, but it didn’t really impress Kamik users and executives. While an IT director knows the importance of using modern languages, it’s hard for the general public to get excited over syntax. But the next phase – user interface modernization – gave Kamik stakeholders something more to bite into.
The company selected Profound Logic‘s ProfoundUI to convert green screen interfaces generated from 1980s-era RPG-III code into enriched display files utilizing Profound’s RPG Open Access handler. Again, not every 5250 screen needed to be converted into a Web or mobile user interface, but Kamik transformed enough to keep users and executives happy.
It was a big decision to select ProfoundUI for phase two of Kamik’s modernization project in 2015, McCullough says.
“That was a big deal for us because we were going to spend a lot of resources developing under their project,” he says. “The good news on that is that partnership has gone very well. I was very happy with ProfoundUI.”
The third phase of the modernization project would arguably be even more impactful. The company was doing more work with Web services for ecommerce, shipping, and order management. Over the years, the company had augmented its core RPG-based systems with homegrown apps developed in other languages, such as a .NET-based WMS.
“First we started with .NET and that worked quite well,” he says. “And then we decided Java was the way to go, so we moved over to Java and developed some apps in Java. Some of them we’re still using now. When Node.js came out, I decided to take a step a back and look at what we wanted to do in short, medium, and long term.”
McCullough realized how rock-solid the RPG applications were, and would continue to be. But at the same time, he realized Kamik needed a more dynamic technology environment going forward to help it develop applications in a more connected world. RPG, .NET, and Java would still have their place, but Kamik was looking for something more.
Those answers would be found in open source. “Phase three for modernization was finding a good open source player, finding a tool to help move our open source effort forward,” McCullough says. “I think every company should have an open source strategy. We really didn’t at that point.”
Opening A Node
A focus on open source inevitably runs headlong into the reality of RPG, which is a closed and proprietary language. But that means working with existing production systems, not replacing them with something written in an open source technology, McCullough points out.
“What we’re looking to do is extend the platform,” he says. “I’m not trying to get rid of my RPG ERP system. I’m trying to breathe new life into it. That’s the goal.”
The rapid evolution of Node.js had caught the eye of McCullough, who quickly decided that it should be the focus of Kamik’s open source strategy. Thanks to the existing relationship with Profound around phase two, McCullough was receptive to hearing the software firm’s pitch for the next phase. The Dayton, Ohio-based company demonstrated Profound.js, its new application development and runtime environment for Node.js on IBM i.
Profound.js immediately piqued McCullough’s interest.
“When I saw what they were demoing and what the concept was — the simplicity of access to the open source, the access to Node Package Manager environment, and with a team of development experts who know our platform – there were some huge plusses for me,” he says. “Once I looked at what they’re doing and how their framework and APIs were working in integration, it really swung me their way.”
With the subscription for Profound.js signed and the tool loaded into their virtualized Microsoft Visual Studio development environment (the setup recommended by Profound), McCullough and his developers began their Node.js journey.
Node.js In Action
Kamik’s first target: developing an integration between the ERP system and its ecommerce site managed on Amazon Marketplace Web Services.
The company’s inventory procedures run on the IBM i server, so Kamik used Profound.js to develop a Node application that takes that inventory data from the IBM i and sends it to Amazon via REST-based technologies. “That went extremely well,” McCullough says.
Next up, McCullough’s team developed a Node application to process orders coming from multiple locations, including Amazon, EDI, and its Magento application, which handles B2B and B2C orders.
“Once it gathers all the information from all these different inputs,” McCullough says, “it goes through the process of integrating the orders automatically through the ERP system and actually allocating picking and going down to our WMS.”
The Node application developed in Profound.js serves as an interface to the Magento ecommerce application. “It allows us to access, from our Profound.js program, our ERP system and organize the information in such a way that calling the APIs is extremely straightforward,” McCullough says. “It works fantastic.”
The company also uses Profound.js with a UPS integration project, which involved working with the .NET-based WMS and the ERP system. That integration is handled by using data queues on the IBM i server, McCullough says. “The RPG program is calling Node. Node is integrating with UPS and then coming back to the RPG application,” he says. “It’s almost seamless the way you can call back and forth.”
McCullough is particularly impressed with how Profound.js works with other Node.js applications that can be discovered, downloaded, and installed into the IBM i environment from the NPM.
In one case, he discovered an NPM package that handles SOAP Web services, which is the preferred integration method for working with Canada Post, the Canadian post office. Utilizing this package simplified the project a great deal, McCullough says.
“You don’t even have to use the XML,” he says. “It’s transforming all of this for you. All these [XML] structures are being created dynamically for you. It’s just really amazing.”
The company continues to work with Profound.js to develop new Node applications to run on IBM i. While Node.js is open source, McCullough doesn’t necessarily feel comfortable going it alone. In that manner, Profound.js shields the company from a learning curve that would otherwise be steeper than it is.
“They develop the framework. They develop the APIs to integrate with databases and front-end solutions. It basically gave us a running start,” McCullough says. “We’re a footwear business. We’re not a software company. We need to solve business problems, obviously through the use of technology. But we don’t have the time to develop technology from the ground up.”