RPG Gets Custom Data Streams with Open Access
April 19, 2010 Timothy Prickett Morgan
Of all the things that are coming out with the new i For Business 7.1 operating system for Power Systems, perhaps the most exciting to both end users and software developers is what was called Open I/O when it was in development, was briefly called Open Access for RPG in the months ahead of the i 7.1 launch (when that operating system was lovingly referred to as “i Next”), and what we now know as Rational Open Access: RPG Edition. Call it what you will, it is all the same good thing.
As The Four Hundred has been hinting for months based on rumors I have been hearing about what Big Blue is up to, with Open Access, the RPG compiler and runtime now has a set of open APIs that allow companies to create custom data streams and not use the old 5250 green-screen protocol to have RPG applications talk to the screens and browsers of the outside world.
There’s nothing wrong with the 5250 protocol, of course. It is fast and efficient, and in a world without mice, the means that 5250 midrange and 3270 mainframe screens presented application fields and allowed you to tab quickly around them and page through screens and screens of the applications fast was not only reasonable, but the best possible way to solve the problem. In a point-and-click client/server world, this was annoying, in a Web 1.0 world it was difficult, and in the mashed-up world of Web 2.0 where applications are much more malleable and are run on a variety of computers, phones, and other devices, it is downright cumbersome to make RPG applications talk to all these different screens. There’s just too much transformation going on, and that eats up CPU, memory, and I/O resources, as well as making programmers–or their tool vendors–spend a lot of time creating specific transforms tuned to specific devices.
With Open Access, IBM is taking a more direct approach, as you can see from this pretty picture:
The top shows how IBM’s Host Application Transformation Services (HATS) tool, one of a large array of application modernization tools available in the market (all of which go a long way to making this very newsletter possible thanks to the advertising support we get from tool vendors), intercept the 5250 data stream and bend it to suit the needs of applications coded to display in Web browsers or mobile devices with their proprietary or open screens, as well as in Web Services that mash up application streams from many different kinds of servers and databases to make something that looks all unified and pretty.
The bottom of the chart shows that Open Access APIs have been added to the RPG compilers and to the RPG runtime environments so systems-level programmers can create their own baby data streams–what IBM calls handlers–to interface RPG applications more directly with XML documents and interfaces, Web services used by applications running on PC operating systems but increasingly within a Web browser, and mobile devices with their own browsers and application runtimes.
In a way, IBM is finally doing what Jacada tried to do with its Interface Server a decade ago. But Jacada did not control the RPG compiler and runtime, so using the Jacada product to get around the 5250 protocol and building client/server and Web extensions to applications meant having to insert Jacada calls into the RPG code itself. Customers were understandably hesitant to do this, and stuck to products that transformed the 5250 data stream rather than replacing it. But IBM thinks the idea has merit now, perhaps because the programming model for applications has changed so much in the past decade and there is, practically speaking, no other alternative than what IBM has done.
To be very precise about what Rational Open Access: RPG Edition does, it takes the native I/O access methods that allow an RPG program to access DB2 for OS/400 and i databases and output information to screens or other applications written in other languages and allows that input to come from or output to go to something other than a 5250 screen. This doesn’t just happen magically. IBM and third-party tool vendors, as well as some bigger IT shops who might want to code their own data streams, have to create their own handlers to interface to XML docs, Web services, spreadsheet programs, databases, or even cloud computing facilities that are external to the data center where the Power Systems iron runs RPG applications. The Open Access is a full-featured version of the RPG SPECIAL files command, and it allows RPG programmers to use the I/O access methods they are familiar with to get data into and out of RPG applications. RPG applications get tweaked with Handler keywords, and when an RPG application is compiled with these, the compiler generates code to use the handling procedure for any I/O device, such as PRINTER, DISK, or WORKSTN. The handler is used to map a new device–a spreadsheet, an iPhone–to an RPG I/O device.
According to Ian Jarman, manager of Power Systems software at IBM, the expectation is that programmers will use the C or C++ compilers for Power-based systems from IBM to create these handlers. IBM’s own Lab Services organization is readying a set of handlers to convert RPG application output to XML documents, says Steve Will, the chief architect for the i software stack at IBM. Profound Logic Software, looksoftware, and Vormittag Associates have all created handlers, and others are sure to follow.
Open Access V1.1, which is known by the product number 5733-OAR, will work with i 6.1 or i 7.1 and has to be present in any logical partition or on any machine where the open I/O methods are employed by the RPG applications. It will work on any iSeries or Power Systems machine that runs either of these operating systems and has a Power5, Power5+, Power6, Power6+, or Power7 processor. The old iSeries 800, 810, 825, 870, and 890 machines based on Power4 and Power4+ chips can also use Open Access in conjunction with i 6.1, but i 7.1 is not supported on this older iron. Forget about running Open Access on i5/OS V5R4. Open Access requires the appropriate RPG runtime environments for i 6.1 (5761-SS1) and i 7.1 (5770-SS1), as well as Rational Development Studio for either i 6.1 (5761-WDS) or i 7.1 (5770-WDS).
The Open Access tool is priced based on the traditional OS/400 software tiers, running from P05 on small iron to P60 on big boxes. What you will not be able to get from IBM’s announcement letters is the pricing for Open Access, which is why you keep me around. On a P05 system, the feature costs $500; on a P10 system, $1,000; on a P20 system, $2,500; and on P30 through P60 systems, $5,000. This seems very reasonable. Now, we’ll have to see what handlers cost.
Open Access: RPG Edition will ship on April 23, concurrently with i 7.1 itself. Jarman says that IBM is mulling over the possibility of doing a COBOL Edition and is looking for feedback from customers who use COBOL as well as partners in the tool community that support it.
One last thing: IBM has not in any way changed the 5250 data stream, nor does it have any intention, so far as I know, of changing it or, heaven forbid, eliminating it. So applications you have modernized that depend on the 5250 protocol will still work fine.
It will be interesting to see if Open Access gives better performance than transformed 5250 apps. As you start playing with this in testing and production, take notes and let me know how they compare.