In Search Of Next Gen IBM i Apps
June 28, 2021 Alex Woodie
What will become of our RPG and COBOL applications? If IBM i chief architect Steve Will has his way, the core elements of them will evolve into what he calls “next gen” applications that can run in the cloud, if necessary.
“We are not just focusing anymore on trying to help clients get past green screens to mobile interfaces or Web interfaces,” Will said during his recent COMMON NAViGATE session, titled IBM i PLUS Cloud is the Answer. “There are still clients and applications that need to get there. We understand that. But you can’t just stop there now. You have really got to be preparing yourself for the next generation.”
So what is a next gen application? According to Will’s presentations, there are several characteristics that define them. Perhaps most importantly, instead of monolithic swaths of code, next gen apps utilize smaller chunks of code, or modules, that can exist independently.
“You’ve got to take the old legacy code that was built for the monolithic structures and you’ve got to modularize,” Will said. “You know that. We’ve told you to do that for 20 years, that you’ve got to modularize. That’s why ILE was invented.”
Next gen apps can still be written in RPG or COBOL. The business logic defined in these languages is indelibly linked to the IBM i platform (especially RPG, which doesn’t really exist off of it). A next gen app isn’t limited to one of the ILE languages, but a next gen RPG or COBOL app must be able to interact with other next gen apps that are written in other languages.
The various module that compose a next gen app are written in the language that makes the most sense for whatever function it’s called upon to do, Will said
“In modularizing your code, you need to focus your individual modules on the things that they do best,” he said. “You probably write your code that does database access in RPG or SQL, because those languages are perfect for that. But you’re probably going to write the things that reach out to user interfaces or reach out the cloud in languages that are better built for that. Node.js or PHP do services relay, really well.”
Next gen apps that frequently communicate with external applications will likely use APIs to communicate with them. Next gen apps that exist mostly within the four walls of the organization (whether or not they’re on the cloud) could use APIs, but they can also use service calls. This gives next gen developers more freedom to compose applications in the way that makes sense for them, according to Will.
“IBM i next gen application are modular. They typically have mixed programming languages where those programming languages are doing what they’re very good at. They produce and consume services. So if they’re staying on one system, they’re doing service calls instead of API calls.”
The cloud is a key part of the next gen application, as Will sees it. While it doesn’t really matter whether a company’s given IBM i environment runs on prem or in the cloud, the user of next gen apps will frequently be tapping into cloud services to handle certain things.
“This is about taking the value of what you have in your application that’s running your business today, extremely valuable stuff, but making it a next gen app that can interact with all the different things that are available to you today,” he said. “Many of those things will be within your own data center. Many of them may well be outside of your data center, and so while you protect the investment that you have in IBM i -based business data and business processes that you have, you’ve got to be able to add the value coming from somewhere else, and that somewhere else might be the cloud.”
The shift to next gen apps is part and parcel of the developer movement towards more rapid iteration, as encapsulated in DevOps, CI/CD, and other disciplines. As companies start the process of breaking up their monolithic codebases and re-configuring the business logic within smaller modules, they will often find that a more rapid delivery cadence is amenable to the modernization work.
The most important element is to keep moving forward. Stagnation is a terrible thing when it comes to business applications, particularly in our uber competitive environment.
“When you modernize, you extend that value by taking the new value from that technology,” Will said. “Many clients have spent time over the last 10 to 15 years modernization their user interface. That provides new value. But you can also modernize getting services from other software, doing things with your data that you’ve never done before. So modernizing holds the stability and the value of the things that you had before, and it adds new value from existing technology that’s coming in from the marketplace.”