What’s New In Open Source With The Latest TRs
April 27, 2020 Alex Woodie
New technology is exciting. And when it can help you run your business more profitably or efficiently, well, it becomes very exciting. With IBM i, the open source community is arguably the biggest contributor of new technology to the platform. IT Jungle recently checked in Jesse Gorzinski, the IBM i open source architect, to hear how the open source story has improved with the recent technology refreshes.
Arguably the biggest open source-related enhancement with IBM i 7.4 TR2 and 7.3 TR8 revolves around a change in RPM, the new delivery method that IBM adopted two years ago to distribute new and updated open source libraries to IBM i users.
Up until now, IBM i shops had to connect their IBM i server to the Internet to access the RPM repository that contains IBM i distributions of open source software, such as Node.js, Python, and PHP. But thanks to the new support for SSH tunneling in this month’s unveiling of 7.4 TR2 and 7.3 TR8, customers can now shuttle the open source libraries from an adjacent PC workstation running ACS, eliminating the need to expose the IBM i server to the Internet.
Tunneling support will remove an obstacle to adopting open source, Gorzinski says. “When it comes to installing the RPMs, that was one of the most common obstacles we’ve seen our clients hitting,” he says. “We say, go install Nginx or Node.js, or whatever, and it fails because their IBM i system doesn’t have that outbound access to the Internet.”
Now these IBM i shops can partake of the RPM open source goodness without putting their crown jewels in danger’s path. “Some of our clients know how to work around that well,” Gorzinski says. “You don’t have to have your IBM i exposed for incoming connections in order to be able to talk out. But depending upon security rules and auditing requirements and so on, that was a challenge for some of our clients.”
There isn’t a lot in the way of new open source packages in IBM i 7.4 TR2 and 7.3 TR8. The one exception to that is the addition of jq, a popular command line utility for working with JSON data. According to Gorzinski, jq likely will become the go-to tool for IBM i folks who want to quickly get stuff done with JSON.
“Over the past several years, we’ve found clients having a greater and greater need for interacting somehow with JSON,” the IBM business architect says. “Some people are talking to public APIs that return JSON. Maybe they’re getting data from a vendor or supplier or partner in JSON format. Maybe they need to manipulate JSON fields. Maybe they need to integrate JSON into the database.”
Those are some of the scenarios where the user may reach into her bag of tools and pull out jq, which was written in C and released for the first time back in 2013. The most recent release of jq was in 2018, with version 1.8, according to the jq Github page.
“With jq, if you’re running this open source stack, you might find yourself in a situation where just having a powerful command line utility is the right tool for the job,” Gorzinski says. “It can create JSON. It can digest things. You can query things out of JSON. You can reformat JSON. It’s a pretty powerful little tool and it’s actually pretty simple to get started.”
The OpenSSL encryption libraries have also been refreshed with IBM i 7.4 TR2 and 7.3 TR8. Gorzinski’s team spent time ensuring that IBM i shops have access to the latest and greatest OpenSSL release, which is version 1.1.
On IBM i, OpenSSL is used primarily to encrypt data flowing into or out of applications developed with open source technologies, such as Node.js or Python. Customers that are doing “native” (i.e. traditional ILE) development or are hosting traffic from the integrated HTTP server (the one powered by Apache) are encouraged to use the system security libraries.
It’s important to get customers to upgrade to OpenSSL 1.1, Gorzinski says, because it supports the latest ciphers, including those contained in TLS 1.3, the current standard for securing Web traffic.
“We actually had OpenSSL 1.1 and TLS 1.3 running on IBM i the day that the TLS 1.3 protocol was finalized, in the open source stack at least,” he says. “Version 1.0 is completely end-of-life in the open source community. So we moved everybody up to 1.1 and have been working to make sure that everything works with 1.1.”
Python also sees some Db2 connectivity enhancements with IBM i 7.4 TR2 and 7.3 TR8, which are slated to become available on May 15. Specifically, IBM has added an adapter that allows for development and deployment of IBM i applications through SQL Alchemy.
SQLAlchemy is a Python SQL toolkit that helps developers get the most out of databases, according to the SQLAlchemy website. One way it does this is by using an Object Relational Mapper that allows Python classes to be mapped to the database “in open ended, multiple ways – allowing the object model and database schema to develop in a cleanly decoupled way from the beginning.” In short, SQLAlchemy supposedly gives developer the benefits of both object and relational development paradigms, without compromising on either.
IBM has also added pyodbc, a popular Python ODBC bridge, to the RPM delivery method. Pyodbc implements the DB API 2.0 specification and is designed to simplify the process of connecting a Python application to a database. “By installing the python3-pyodbc package, you can now use the IBM i Access ODBC driver to communicate with Db2 for i from Python programs,” IBM says.
There is more open source stuff coming to IBM i in the months to come, Gorzinski says. Python may have been the focus with these TRs, but Node.js will be the focus next.
“There are a couple things we’re announcing in this TR in the Python ecosystem but you can imagine we are continuing to invest in the Node ecosystem as well,” he says. “The stuff that’s coming down the pike are more IBM i integrations and probably some extra frameworks that are out there. We have had in the works for a while the i toolkit library for Node.js, which is the way you integrate with RPG code straight from a Node.js application or CL commands or SQL. We’ve had an alpha release that’s been in the works for quite some time, and that has some powerful improvement as well that we’re going to see released in the coming months.”
For more information on the open source aspects of the latest TRs, check out the IBM i YUM repository at ibm.biz/ibmi-rpms. To read the IBM Software Announcement for IBM i 7.3 TR8, click here. To read the IBM Software Announcement for IBM i 7.4 TR2, click here.