Profound Logic Taps Node.js and COBOL For New Directions
June 1, 2016 Dan Burger
We’re hearing a lot about Node.js as open source topics are discussed with greater frequency in the IBM i community. On the other hand, COBOL gets far less attention than it deserves considering that 80 percent of enterprise business applications run on this sturdy code. Profound Logic, one of several IBM i vendors leading the way in modernization efforts, is including both these languages in its product roadmap. Profound’s CEO Alex Roytman explains why and why now.
Let’s begin with Node.js. IBM i support for open source software has increased in recent years, but open source is not new to IBM i. The Apache HTTP Server, Java, PHP, MySQL, and Ruby are a few well-known examples. Compared with other languages, Node.js has one advantage none of the other languages have: It can be used for both the client and the server. That eliminates separate development teams for the backend and the front end. You might recognize this as a benefit of green-screen development. The difference, of course, is that green screens are only efficient in certain data processing situations and the rest of the time they are persona non grata.
“We support RPG and consider it a strong language, but some companies are deciding that RPG is not the environment for them. They are looking to migrate code where it makes sense,” Roytman says.
What make sense to these companies is less time spent maintaining old RPG code and less time spent searching for programmers with the skills to deal with RPG, which many companies will tell you is tied with goat roping on the list of most frustrating tasks. In a survey conducted by Profound Logic in late 2015, IBM i shops had these two items–code maintenance and difficulty finding RPG skills–as top concerns.
Roytman predicts Node.js will have a noticeable impact in the IBM i community.
“I wouldn’t say every RPG shop should start converting all their code to Node, but it might be a good fit for a subset of RPG shops,” he says. Integration is one of the keys to success. And the key to integration, as Roytman sees it, is the Node.js framework Profound created for IBM i shops.
Profound’s Node.js framework allows 5250 programs to call graphical applications within a single development paradigm, as opposed to different silos with different types of development.
An RPG or CL program can directly call a Node program or a Node program can call an RPG or CL program. It’s there because new apps developed in Node.js are likely to depend on existing apps developed in RPG as either green screen displays or with graphical user interfaces, which in Profound terminology are referred to as rich interfaces.
“There’s not that type of integration out of the box with Node.js,” Roytman contends. “Node generally lives in a separate environment on IBM i. It can call RPG programs outside of a 5250 session, but a big app with hundreds or thousands of screens built in a stateful environment, doesn’t allow Node to just be plugged into it. We have figured out how to move pieces from an existing IBM i system while that system still operates.”
The Node development community, in typical open source fashion, makes use of code created by the community and these “packages” packages are available to be used in IBM i development. The benefit is using packages of code that reduce the amount of overall code necessary to write and test. It avoids the reinventing the wheel steps that often take place in writing code from scratch.
The framework isn’t the only Node.js tool Profound has been developing. It also has an RPG to Node.js conversion tool under construction.
Because RPG is the development language of the back end, it’s not uncommon to find cases where the code is monolithic and incapable of accomplishing what modern code accomplishes. This is the high maintenance code that drives IBM i shops to consider migration as an option to the existing efforts to keep that old code running.
Converting existing code to Node code makes it easier to maintain and understand if an organization has the Node skills.
The automatic conversion of RPG code to Node.js code isn’t at the push-button stage just yet.
“It sounds like an impossible task, but we are doing it,” Roytman says, while noting the conversion capability is not fully ready today. Profound says the tool will be used by Profound staff during customer services engagements. It can be demonstrated and used in proof of concepts, Roytman says.
“Because there will inevitably be exceptions, the automatic conversion will only handle 90 percent of the code. The remaining 10 percent will need manual conversion,” Roytman says.
“We will be talking to customers one-on-one rather than packaging a product and telling them to hit the convert button and go for it,” Roytman says about the conversion tool. “We have demo’ed it to interested parties, to show the capabilities. We expect to do proof of concepts and have companies do evaluations soon.
After years in the modernization business, Profound has been in conversations with IT managers in IBM i shops where COBOL development remains critical to business functions. It occurred often enough for Profound to make COBOL modernization a business objective.
“With our COBOL pre-processor, businesses can extend the benefits of Rich UI and Open Access to their COBOL applications,” says Roytman. “By simply using an alternate ‘compile’ command and our Open Access Handler, these businesses can now easily build the same modern, web and mobile graphical interfaces that they can create for their RPG applications.”
Several Profound Logic customers are currently beta testing the COBOL pre-processor.
Managing Active Instances and Sessions
Customer feedback often leads software developers to incorporate new features into existing products. In this case, Profound customers directly influenced the development of software that assists with managing and deploying Profound UI implementation. The enhancement available to all Profound UI customers is a command line interface tool for managing active instances and sessions. Scott Klement, a familiar name to all RPG programmers who are paying even the slightest attention, is the project lead on this enhancement, which the company calls Work with Profound UI.
In many respects, it is similar to IBM’s Work with Active Jobs command, which should be familiar to many IBM i users. Those familiar with Work with Active Jobs will recognize it as good for managing green-screen sessions. Profound recognized it was not ideal for managing Web and mobile interface sessions, which launch different types of jobs for various tasks. So Klement set out to design a tool to manage, organize, and differentiate among HTTP instances, 5250-scraped interactive jobs, application jobs, controller jobs, and stateless jobs.
Its capabilities include a view of what’s going on with Profound’s apps–such as which users are using it, when they are using it, what resources are being used. For instance, it can manage HTTP instances and determine how Profound UI operates in any given system. That’s useful to the customers, but Roytman also noted that Profound uses it in supporting its customers by gathering information for support requests.
“This stems from Profound customers searching for system performance issues like CPU usage,” Roytman says. “It provides the necessary detail that work active job does not.”
The Work with Instances tool is available at no additional cost to existing Profound UI customers.