PASE Versus ILE: Which Is Best For Open Source?
October 22, 2018 Alex Woodie
Open source has emerged as a driver of innovation in the past 20 years, and has greatly accelerated technological innovation. The proprietary IBM i platform has also benefited from this trend, thanks in large part to the capability to run Linux applications in the PASE runtime. But some members of the IBM i community are concerned that the fruits of the open source innovation have not tasted quite as sweet as they do on other platforms.
Linux was the original breakout star in open source software, and so it should be no surprise that the vast majority of software developed with the open source method is designed to run on the Linux operating system and associated open source componentry, including the Apache Web Server, MySQL database, and PHP, the so-called LAMP stack (although you can substitute other pieces, like the Postgres and MariaDB databases and languages like Perl, Python, and Node.js to create other clever acronyms).
The IBM i operating system can run Linux applications through PASE, the AIX runtime that IBM brought to OS/400 so many years ago. Getting Linux applications to run on PASE requires that they’re first ported to AIX, which is often not too much work, since Linux is a variant of Unix, just like AIX.
Much of this porting work is done by IBM, which has made it a priority to bring a variety of open source tools, languages, and frameworks to IBM i via PASE (the number of full-bore applications brought to the platform via PASE, for some reason, has been low).
The existence of PASE ultimately has been responsible for sizable waves of open source innovation pouring into the IBM i installed base. PASE is how IBM i is able to run PHP, Python, Git, and Node.JS, and how it can run the MySQL and MariaDB databases. IBM has even taken to running important system software components in PASE, including the Java Virtual Machine (JVM) and VIOS, everybody’s favorite Virtual I/O Server, which controls the flow of data from external SAN arrays to IBM i machines and back.
IBM productized much of this open source software innovation in a licensed program it introduced in 2015 called 5733-OPS. Eventually, the 5733-OPS product grew to 38 options, but IBM i shops found the IBM i-esque delivery method (i.e. PTFs) difficult to manage, especially when it came to using assuring all the dependencies for a successful deployment of open source software are met.
So earlier this year IBM brought about a new delivery method for open source products that relies on the Red Hat Package Manager (RPM) and Yum. The new Yum and RPM approach even lets you download open source componentry from a GUI in Access Client Solutions (ACL). The early feedback on RPM and Yum has been quite positive, leading IBM i Champion Liam Allan to declare that Yum is “probably going to save the operating system.”
Which is all to say that PASE has opened up IBM i to a whole host of open source technologies that ostensibly would likely never have been brought to the platform were it not for PASE. According to Jesse Gorzinski, IBM’s business architect of open source technologies, there are more than 200 packages running on IBM i thanks to PASE. Getting all those software products to run in IBM i’s native Integrated Language Environment (ILE) development and runtime paradigm is just not realistic, he says.
“To put it simply, the technology is just not there in ILE to support the amount of open source that we can do in PASE,” Gorzinski told IT Jungle earlier this year. “We could invest in ILE-based open source. We had iSeries Python that was made by a third-party. That was kind of native. That’s been available for years. We know it can be done. A number of things we shipped in 5733-OPS we were actually able to put in ILE as well. But it’s very apparent that PASE is just a much more sustainable place to do this development, to deliver the quantity of things we’re delivering.”
However, the PASE approach has not pleased everybody, most notably those who say PASE-based programs don’t leverage the true benefits that the IBM i platform can provide. One of the most vocal opponents of the PASE approach to open source innovating is Chris Hird, the president of Shield Advanced Solutions and a principle developer of the new open source ERP application that was introduced last week at the Fall COMMON show.
“The fact that everybody is pushing for PASE seems to be off kilter to me because it it’s not using anything that we tell the marketplace the IBM i is good at,” Hird said. “The big strength of IBM i is its integration.”
The new intERPrise ERP package that Hird spearheaded with TEMBO Tech Lab‘s Marinus van Sandwyke was created by taking Synon 2E models behind a successful IBM i-based ERP package and re-generating them as free-form ILE RPG IV code. When paired with a SQL-based database on Db2 for i to enforce referential constraints and native JSON output — all governed within a model-view-controller (MVC) architecture — the ERP package, you could say, is just about as modern as you can get with IBM i.
intERPrise has all the other trappings of a modern open source project – an Apache 2 license and a GitHub code repository – but it’s really the native ILE aspect that Hird hopes will resonate in the minds of IBM i enthusiasts.
It’s good that open source software is coming to IBM i, even if it’s via PASE, Hird says. “But in my view the thing we really need to push with the IBM i its database, and the integration with the IBM language,” he said. “And therefore we started this project.”
The problem with running applications in PASE is that they don’t run like traditional ILE programs run. The programs typically store components in IFS instead of the native IBM i library system, and tracking a PASE’s application setup “is a nightmare,” Hird has said before. What’s more, administrators can’t use familiar tools like WRKACTJOB to see how PASE applications are running, which can lead to potentially serious performance issues.
Hird says he doesn’t expect IBM to promote intERPprise – or any native ILE open source approaches, for that matter – because it could detract from the PASE message.
“They don’t have enough resources to split their attention between native and PASE-based,” he said. “There’s a lot of re-writing being done by IBM for the ports that are going into PASE. But it’s not as easy as we can just link up and go and download a package manager. We have to wait for IBM to do a lot of work up front. And that is taking a long time.”
The tradeoff between ILE and PASE essentially boils down to quantity versus quality. On the one hand, you can have a lot open source packages ported to IBM i via PASE, but the applications won’t run like traditional IBM i applications. On the other side, IBM could put in the time to create native ILE ports of open source applications, which everybody seems to agree would be higher quality from an IBM i point of view, but IBM would only be able to do a few of them.
According to Gorzinski, who we talked to some time ago about this, IBM’s focus will remain on quantity and pumping out as many open source packages via PASE for the foreseeable future.
“In not much time, we got to 200 open source package running in PASE. To do that same thing in ILE and have these same open source package running in ILE would have taken a much greater investment,” he said. “It’s definitely possible, but in our perspective right now, it just doesn’t make sense. We can deliver much more business value leveraging what we have already in PASE because PASE is there to enable open source technology, so that’s what we’re using it for.”
Gorzinski concedes that the administrative experience of PASE-based applications is different than traditional ILE applications. But in his estimation, it’s a price that’s worth paying.
“Absolutely, it does change the dynamics of the platforms, because the stuff that’s running in PASE it’s using a different file system, different semantics, different ways of doing things across the board,” he said. “I think it’s definitely going to change the face of the platform. Its’ going to change the dynamics quite a bit.”
RELATED STORIES
New Open Source ERP Suite Written In ILE RPG
RPM And Yum Are A Big Deal For IBM i. Here’s Why
Yum, Liam Allan, and the Future of the Platform
Q&A With IBM i’s AppDev Architect
More Transparency Needed For Open Source Running on IBM i
Native Open Source: Why It’s Time for IBM i
Several key features that are unique to the ILE environment vs PASE include TIMI, the Technology Independent Machine Interface; the Object based operating system which enhances integrity, reliability and security; Integration including database, security, communications. The only thing that PASE seems to have inherited from the advanced architecture of i is Single Level Storage. PASE applications are prone to the same problems as Linux / Unix apps, especially when moving to new hardware ie POWER9. Just my humble opinion.
It’s fascinating that this report believes one IBM i developer with an opinion.
When you write “The problem with running applications in PASE is that they don’t run like traditional ILE programs run”, that’s actually NOT a problem. It is for people who are unfamiliar with open source or PASE, and there are a lot of RPG developers pushing back because they have some fear of that.
Also, you tell us that “tracking a PASE’s application setup “is a nightmare””. Again, it is for those who are unfamiliar. A similar story happened when managing VIOS on Power – because it was a Linux based app, it was harder for IBM i admins to learn it.
And, performance with PASE is definitely an issue. However, that can be overcome with some truly basic understanding of work management, prestart jobs, and memory pools. Out of the box, IBM i is tuned for interactive and batch resource allocation, and if you are an IBM i developer deciding to use PASE, you will also pay attention to how to configure the system to handle the workload you are adding.
“Open source” for IBM i has been a sharing of code and applications for years. It remains the same today, and is as problematic as open source out in the non-IBM i world. You interviewed Chris Hird about his “open source” initiative, yet you failed to mention that the “standards” they are using for their IBM i open source ERP are already outdated. While they continue to use and promote fixed-format D-specs, there won’t be many new people attracted to the platform. PASE open source on the other hand means you can bring whatever you want, rather than try and fork someone else’s opinion with which you disagree..
Trevor,
I am fully aware of PASE and how to manage it, unfortunately the average IBM i programmer is not. I have done a lot of work with it and can tell you very clearly that PASE does not perform as well and Linux or AIX natively. The IFS is also not the easiest to work with in comparison to the IBM i library structure, not to say which is best but we are using the IBM i, not AIX.
You have mentioned that we have outdated standards due to our use of fixed D-SPEC. You should be aware that the issue is still open and is being discussed by a number of people who have developed on this platform for a number of years. You should also be aware (not sure what level of RDi you have?) that not everyone has access to a version of RDi which supports **FREE, which is causing us to debate the actual need to implement something which offers no benefits over the fixed format other than ‘modern coding’ yet will cause the developer community to have to upgrade to the latest version of RDi. We want to allow as many developers to contribute as possible so making decisions based on modern being best will not happen.
I believe ITJ interviewed us because we have done something and not just said something, if you have a project you would like to share with the community I am sure ITJ would love to hear from you and most likely give you the same opportunities to give your perspectives.
This is something good for IBM i so we are going to continue to do what we do and not be swayed by one person perspective either way.
Nobody will buy an i to run PASE applications.
Why does RPG suck? Because the code that performs functional and nonfunctional requirements is intermingled and not discernible. Because naming in RPG is the worst. Because the more modular RPG programmers make it, the higher the logical IO goes. Because there is no layered architecture. Etc, etc. See https://rpgcheatsheet.blogspot.com/2018/10/functional-non-functional-requirements.html
Greg,
RPG is just a language? ILE allows code to be generated from other supported languages just as easily. I will be using ‘C’, but that is made by my choice and by not feature comparison. We are using the tools we have to do something that has not been done in many years, hopefully it will grow into a modern code base made up of many different languages.
I have no idea why you make the Logical IO comment, I don’t see anything in our plans which will make this a single layer architecture? Maybe I am not understanding your point?
The other languages part might be worthwhile to some but that is the least of what ILE should be used for. What was introduced with ILE 24 yrs ago are the “new” parts that allow RPG subprocedures to be called with arguments and to return values. So, ILE is a good thing but (I was saving this for Halloween) it can be used for EVIL!
Logical IO goes up because RPG programmers write each subproc like a little program, doing IO (native or SQL, it doesn’t matter) to get another copy of the data. Most RPGers have no concept of using the data the program already retrieved from the DB. They think they are writing reusable subprocedures and that reusable means entirely independent. Hence, almost every subproc performs IO as tho it is a stand-alone program.
A big organization was three years into a DB modernization project – almost ready for QA – before they addressed the performance problem coming from the high logical IO. To address the problem, they would have had to start over from scratch on all the program coding so, they cancelled the project and laid off a bunch of people. I was there to do Java so I kept my job.
I like RPG & subprocedures. AFAIK, I was the first to develop throw and catch for RPG; it was just subprocs that wrapped messaging APIs. The website that published my article about it is now offline but there is reference to it on some forum archives.
Don’t conflate the language with programmers who are stuck in the past. Your blog post has the same problem. RPG doesn’t suck because there are bad or stuck RPG programmers. And in fact, I would say categorically that modern RPG doesn’t suck. There are bad Ruby programmers as well, and if Ruby sticks around as long as RPG has, the jury is still out on that, it inevitably will have programmers who are just as stuck in the past as some RPG programmers are now. Would that mean Ruby sucks? I don’t think so.
OK, RPG the language doesn’t suck, RPG the code that people write sucks.
I will always conflate the language with its developers. If Ruby coders were horrible I’d say Ruby is horrible. If a company is going to invest in technology they should be able to hire good people to use & manage it. LISP is a great language but would you want to have everyone in your shop start writing LISP tomorrow?
The modern RPG that has been written this year is nothing more than1980s RPG coded in free-form minus Ln control breaks, matching records and the cycle. Look at 100 RPG developers’ code and I’ll be right 98% of the time.
The market agrees with me. Nobody is going to buy an IBM i tomorrow and hire a bunch of RPGers. And especially not as a means of addressing their quality or time-to-market issues.