New Open Source ERP Suite Written In ILE RPG
October 15, 2018 Alex Woodie
There’s something quite novel being introduced today at the Fall COMMON conference in Pittsburgh: An open source ERP package written in free-form RPG. Dubbed intERPprise, the software project is intended to harness core IBM i strengths – its integrated database and ILE environment – but above all, provide an example for what modern and native open source software can look like on IBM i.
The intERPrise project (www.i-nterprise.org) was spearheaded by a group of IBM i advocates, including Chris Hird and Marinus van Sandwyk, who wanted to demonstrate what a modern business application would look like – and above all, what a modern application could do – on the IBM i platform.
“We wanted something that we could get the general RPG developer involved in and really get them to start modernizing their applications from the ground up, instead of putting flashy front-ends over databases that are, to say the least, suspect in a lot of instances,” says Chris Hird, the president of Shield Advanced Solutions in Ontario, Canada. “We wanted to start from scratch and build this as a good, solid application that really shows where the IBM i shines, that is, its database and its RPG environment and ILE.”
The intERPprise project currently consists of core financial modules, including general ledger, cashbook, accounts payable, and accounts receivable. Anybody can download the software, which is currently in alpha, and use it freely under an Apache 2 license. The project founders intend for other IBM i ILE developers to build upon the base and potentially offer other modules (such as for manufacturing, etc.) which could be also open source or sold under a premium distribution model. The project will be maintained on GitHub.
The business logic behind the product is based on the Info-Logic ERP system from Axiom Systems, a South African company that developed in the Synon 2E fourth-generation language (4GL) environment and compiled it as RPG III code. The business logic expressed in Axiom’s Synon models was “harvested” using tools from van Sandwyk’s TEMBO Technology Lab and re-generated as new free-form ILE RPG objects that govern the application from within the Db2 for i database.
“All of the validations are enforced by way of triggers in the database, all the resulting processing is done by way off alter trigger, and all the relationships are enforced by way of constraints,” says van Sandwyk, who is CEO and founder of South Africa-based TEMBO and a staunch advocate for adoption of the model-view-controller (MVC) architectures and, specifically, modernizing monolithic RPG code stacks by re-engineering it to work within Db2 i’s enforcement paradigms and to leverage its SQL Query Engine, which is used by intERPrise.
“So there’s total and absolute separation between the database and a very thin what we call orchestrator layer that some people will refer to as your controller, and then basically rendering JSON as the initial delivery mechanism,” van Sandwyk says. “We do not intend to support display files in any way shape or form. It’s absolutely separation, and we’ll render a JSON payload that can be consumed by other services on other platform or an HTML Web page.”
The group is working with Healdsburg, California-based e-PFR Technologies and its IBM i-based iWebSrv product to deliver a graphical interface for intERPrise using the JSON output.
The ILE aspect of intERPrise cannot be overstated, says Hird, who has criticized IBM’s open source approach, which leans heavily on porting applications, tools, and technologies from Linux to run on IBM i under its AIX-based PASE runtime environment.
“They’re doing ports to AIX and then it runs in PASE. Unfortunately there’s a lot of stuff that just doesn’t work naturally in PASE, and we’re not taking advantage of any of the IBM i’s strengths, which is its integrated database and ILE,” Hird says. “PASE doesn’t talk very well to Db2. It’s not connected between PASE and Db2, so any open source that you download for PASE is written for Linux and Linux applications generally don’t have a Db2 database. And if it does, it tends not to be open source because IBM doesn’t ship Db2 in the open source market.”
Hird, who developed his HA4i application mostly in the ILE C environment, emphasized that, by pushing the free-form ILE RPG logic into the database with intERPrise, better business results will emerge for the business that uses it.
“We’re pushing the business logic into the database, and saying, ‘OK then, we’re not going to let anything touch that data unless it follows those constraints and those drivers, and that means we’re not going to get bad data in the database,'” he says. “If you leave it in the application level, the application developer can say, ‘OK, I’m going to push this data into the database because it can fit. I can shove binary data into a character field, and it will store it.’ If we put constraints in, it won’t allow it to happen. It will say, no that doesn’t match our criteria.”
Van Sandwyk stressed that he has no interest in the commercial potential of intERPrise, and that his intention is to help the IBM i community see what modern applications on the platform can look like. “We have not even touched the commercialization of this,” he says. “This is really a gift to the community in terms of what we believe a new native IBM i application should look like.”
Too many IBM i shops are struggling with just maintaining legacy code, let alone thinking about re-architecting their systems using better concepts, such as MVC and data-driven development paradigms, such as Synon 2E, which Van Sandwyk maintains was decades ahead of its time.
“It come back to old discussion – why the heck would I buy a Rolls Royce and drive it around like a scotch cart,” van Sandwyk says, using a South African term for a wheelbarrow. “We believe so much in the platform, let’s leverage its inherent strengths, because we know that we can deliver commercial transaction processing at a fraction of the cost other platforms can do, with a level of security and a level of integration that the other platforms can only dream about.”
The plan calls for intERPrise to progress from alpha to beta code over the next six month, and emerge as a generally available product next spring, in time for COMMON’s POWERUp conference in Anaheim, California. The code is still rather pliable at the moment, and the architecture could change between now and then, which is why project supporters want to get the input of other IBM i developers and architects.
What will not change, however, is the determination to show the IBM i world what a modern and native IBM i application can do.
“We’re trying to get a grassroots movement to say, this is how it should be written,” Hird says. “The fact that it’s open source means you can take it and you can follow that same pattern in your own development.”
Showing ILE developers – most of whom code in RPG – that an open source project IBM i doesn’t have to mean falling down the PASE rabbit hole is another goal.
“We’re trying to provide to a lot of people who know RPG and nothing else the ability to build something special from the ground up,” Hird says. “This is just the start. This is the alpha release, which is just going to be the core in it. We will develop that further before the general release at COMMON next year, but it all depends on what people need to see, and what you need to do.”