Keep Your IBM i Baby, Not The Bathwater
May 7, 2018 Alex Woodie
In the quest to modernize computer systems, some IBM i shops cease being IBM i shops. Wholesale migrations or complete rewrites of applications on different operating systems are sometimes necessary and beneficial, and sometimes they do more harm than good. When King III Solutions set out to enhance its advanced replenishment system, it managed to create a modern Web front-end that resonates with millennials without giving up its rock-solid IBM i back-end.
Based in Marietta, Georgia, King III Solutions, or K3S, develops software that helps wholesale distributors and retailers better manage their inventory, in part through a collection of proprietary algorithms and in part through relentless customer training. The company was founded in 1990 by King Harrison III, who was employee number one at E3 Associates, the Atlanta-area inventory management software company that JDA acquired in September 2001.
Just as E3’s software was developed originally on the AS/400, K3S’s software was developed for the AS/400 back in 1990, and today runs exclusively on IBM i. “We absolutely love the machine,” says King Harrison IV, who works at K3S with his father, his sister, and a handful of other employees. “It’s an awesome server.”
However, despite all the things that make the IBM i so powerful – an integrated Db2 database, investment protection in RPG business logic, security, scalability, reliability, and so forth – one can’t paper over the not-so-great aspects of the platform. K3S customers let the company know exactly what they thought about the 5250 green-screen interface.
“Where it’s been weak is the interface,” Harrison IV tells IT Jungle. “It isn’t bad how fast it is. It’s just not extremely user friendly. It has a learning curve, and the learning curve has gotten steeper since the millennials, the newer users, aren’t used to that kind of interface.”
Addressing GUI Weakness
The company realized it had to do something around the year 2009. So the Harrisons did what any normal progressive-thinking IBM i professional would do – they pointed their Web browsers to IT Jungle and got busy with some product research. It found inspiration in the form of the Presto re-facing tool from BCD (now owned by Fresche).
K3S couldn’t have been more satisfied with how Presto worked with K3S-Replenish, its advanced warehouse replenishment system. “We knew when we set it up and developed it that it was a stopgap solution, but it was fantastic,” Harrison IV says. “It helped us learn what modernization is going to do.”
But the Presto days would not last forever. About three years ago, a potential client told K3S that they really liked the software, and said its features compared quite well against other competitors. “They liked everything about it,” Harrison IV says. “The interface just looked a little too simple.”
The Harrisons were a little distraught. “When someone says ‘Your product looks like it’s the best, it’s going to work the best, but it doesn’t look complex enough,’ that’s a little tough,” Harrison IV admits. “So we knew we were going to be facing a little bit of an image thing. We had to have a system where the look matched the functionality.”
So the Harrisons did some more research and began exploring PHP, and specifically Zend Technologies‘ PHP runtime for IBM i (Rogue Wave Software bought Zend in 2016). Harrison IV began working with PHP-on-IBM i guru Alan Seiden to develop a plan over the next year.
Segregation Of Interfaces
The plan Harrison IV and Seiden came up with centered around a concept called CQRS, or command and query responsibility of segregation, which basically means that the operations that read data (or queries) will be separate from the operations that update data (or commands).
For K3S, CQRS meant that that application’s graphical user interface (GUI) would be completely separate from its underlying business logic through the use of application programing interfaces (APIs). The plan called for K3S to build a series of RPG-based API programs that exposed K3S-Replenish business logic. The front-end GUI developer would then tap into those APIs to access business functions, such as adding a vendor or adding a customer to the database.
This eliminated the need for the RPG developer to have anything to do with the front-end GUI, and likewise, eliminated the need for the front-end GUI developer to know anything at all about the back-end business logic. The company’s RPG developer has created about 260 APIs that provide access to all the RPG business logic in K3S-Replenish. Harrison IV also found a developer outside the US who, for a relatively low price, created a series of CSS templates that gave K3S a professional-looking theme.
“So now I can hire PHP developers who know nothing about RPG to write my front end to develop screens for the newer generation,” Harrison IV says. “It’s awesome. The last person we sold couldn’t believe it. They said ‘This runs on the IBM i?’ We said ‘Yes it runs on the IBM i!’ It’s great!”
The company has upgraded about one-third of its K3S-Replenish customers to the new system, dubbed R6. Customers can still use the Presto version if they want. And of course, they can still use the 5250 greenscreen interface too. The plan calls for the company to use this technique to modernize its other core application, K3S-Restore, in 2019.
The CQRS approach provides a technology buffer that insulates the core IBM i system from changing user interface technologies. In addition to PHP, the company uses a mix of tools and techniques, including HTML, CSS, Twitter Bootstrap, AJAX, and JQuery, to develop its Web interface.
“I think you have to use the right tool for the right job,” Harrison IV says. “Business logic and interface design are completely different, with different job abilities and skills. Once you learn that it’s smarter to do things separately, it gives you a lot more flexibility.”
The flexibility inherent in the CQRS approach allows K3S to use other technologies in the future, without the need to even touch the RPG, since the APIs provide the only interface into the business logic.
“We developed this backend that we can put any front-end on that we want,” Harrison IV says. “Node.JS was the hot thing. Then PHP was the hot thing. Then Ruby is the hot thing. Maybe some other language becomes the hot thing. But all our intelligence is now wrapped up in these APIs.”
With form to match the function, the company is able to compete with bigger vendors on a level playing field. The fact that K3S also sells access to its IBM i-based software as a cloud-based software as a service (SaaS) only adds to the modernization story.
K3S, like every vendor does at some stage in its life, faced adversity and suffered from a poor perception of its product. The IBM i, for better or worse, is a big factor in driving perceptions for ISVs. Harrison IV realizes that vendors may feel pressure to get a fresh start on another platform.
“When things have not gone as efficiently as they should, people look at it and say, ‘We’ve got to modernize and throw out the baby with the bathwater and we’ve got to start completely new,'” he says. “We wanted to stick with the IBM i.”