Ublu: A Modern Band-Aid for Legacy i Ills
August 17, 2016 Alex Woodie
In a perfect world, companies would hire and retain technology professionals who possess the requisite skills for working on the IBM i server. However, that is clearly not the case, as an IBM i skills shortage has bubbled up as one of the platform’s most pressing issues. For those jack-of-all-trades who are struggling with this thing called the IBM i, the open source tool Ublu offers a bridge to familiarity.
Ublu is an interpretive scripting language designed for automating IBM i tasks from any remote platform capable of running Java, which includes Windows, Mac, Linux, OpenBSD, and other desktop operating systems. The results of Ublu jobs typically reside on the remote system that’s running Ublu, thereby bypassing the need to somehow extract the information from green-screen 5250 sessions.
Jack Woehr, the Colorado-based programmer and consultant who developed Ublu, says he created the product as a way to consolidate a number of individual utility programs he developed for consulting clients over the past two decades using JTOpen, the open source version of the IBM Toolbox for Java.
JTOpen is useful for any number of system-, program-, and data-related tasks on the IBM i server, including accessing the database and IFS, calling RPG and service programs, executing commands, accessing data queues and data areas, accessing spool files and job logs, reading messages and message queues, and accessing system values and system status. This gives you an indication of the types of tasks for which Ublu can be used.
“I’ve been using JTOpen since 1997 to do things remotely on the AS400 and iSeries,” Woehr tells IT Jungle via email. “Over the past few years, in the course of writing JT400-based utilities to support consulting clients–in particular supporting pretty sophisticated teams who were unfortunately not terribly familiar with OS/400 and IBM i OS–I started weaving utilities together into a scripting language, which became Ublu.”
Ublu is essentially the JTOpen system turned into “a somewhat clunky but pretty easy to use interactive interpreter and scripting language,” Woehr says. “There’s stuff you can’t do easily on IBM i itself that’s easy in Ublu.”
There are a variety of tasks that you can perform in Ublu–which sports capabilities commonly found in full-featured languages, such as flow control, exception handling, debugging, and multi-tasking–such as:
Once a user has written an Ublu function to perform a particular task, he can use Ublu’s “gensh” command to automatically generate a shell script wrapper for the code, which can be put into a Linux cron job. In this manner, information and processes that are tied to the IBM i server can be made available to a wider audience who lack the skills to accomplish the same tasks in the 5250 environment.
Woehr, who contributed code to the /qc directory of JTOpen (qc stands for “Quatre Cent,” or “400”), compares Ublu to a Band-Aid that can ease the suffering of clients who rely on the IBM i server, but lack the technical and practical knowledge to sufficiently navigate the proprietary platform.
“Ublu for me is a tool for triage in these modern times where the legacy apps are just barely hanging in there and the clients are living in an IT environment where they no longer maintain enough staff to count on possessing in-house understanding of every corner of their own mission-critical computerized business processes,” he says.
Ublu won’t solve all of your IBM i-related problems, but it offers enough functionality to alleviate some of the most pressing problems that are impacting IBM i shops, according to Woehr, who is witnessing the same kind of skills shortage in the z/OS and zVM mainframe world.
“We’ve arrived at a juncture in this decade where those staying with IBM i, willingly or unwillingly, no longer can count on IBM or vendors for timely tools, no longer can wait, are struggling to put together hand-crafted solutions and stopgaps from open source, are bailing the boat as fast as they can,” Woehr writes. “You cannot expect going forward that there will be a grand solution to your particular problems on the traditional IBM record-based systems.”
Ublu is not currently–and probably will never be–fully complete, according to Woehr. But the software has proven itself useful in many production environments already, and is constantly being improved through the Ublu project on Github.
Anybody can use Ublu, which is distributed under the BSD-2 license. Ublu can be downloaded from github.com/jwoehr/ublu. Professional support for the product can obtained from the Colorado-based company Absolute Performance, which sponsored the development of Ublu.