Let’s continue to discuss Rational Open Access: RPG Edition and its most well-known vendors.
If you read the previous TechTip, you should know by now that Rational Open Access: RPG Edition (ROA) provides a great way to modernize the UI of your IBM i–based application by extending the frontend of it to “Browsers, Mobile devices, Cloud computing resources, Web services, External databases, XML files, Spreadsheets and more,” according to IBM.
ROA uses the native I/O capabilities to allow you to interact with all these “modern” UIs. However, it’s not something that sits between an untouched RPG program and a web browser, reinterpreting the green-screen as an HTML page. As an IBMer once put it, “That’s like putting lipstick on a pig and expecting it to look beautiful.”
Personally, I have nothing against screen scraping, but I don’t think this type of solution is truly viable, because the quantity of data and flow logic in a green-screen and a web page are very different. Typically, 5250 screens work asynchronously, while web pages react dynamically to changes. For instance, selecting a value from a list on a green-screen is, usually, a two-step process: First you select the value, and then you press Enter. Yes, you can argue that it’s possible to simulate the Enter key press with a keyword in the field, but that’s not the most common implementation. On the other hand, selecting the same value on a web page requires only one step: You click the value, and something happens.
This is just one example, but the point is that just changing the UI is not enough. ROA is useful indeed, but it requires you to change the flow of the program as well, so that the interaction resembles a web page interaction instead of a green-screen interaction. You’ll use the same building blocks (procedures and functions) as before, but you’ll be arranging them in a different way. That’s why it’s so important to have everything in its proper place by implementing, for instance, an MVC approach in your programs, as explained a couple of TechTips ago.
In short, to take full advantage of ROA, you might need to change the way your programs’ flows work. You’ll be rewriting them, picturing your display record formats as web pages. This means rewriting the part of your programs that corresponds to the view layer in the MVC pattern. From an RPG programmer’s perspective, the only big change here is the “thing” that’s going to replace the display file: the handler. This “thing” is a program, written in RPG or some other language that can serve the same purpose as a display file; it can show data to the user and receive his or her commands.
You can write your own handler. (There’s a very interesting article in the July 2010 issue of IBM Systems magazine, entitled “Getting a Handle on RPG’s Open Access,” that explains how you can write a handler program to manipulate files in the IFS.) However, it’s probably less time-consuming and more cost-effective to use one of the UI modernization tools based on ROA that are currently on the market. Here’s a quick overview of these tools.
Tools to Modernize the UI Using ROA
Let me start with a disclaimer: I don’t have any sort of relation to the companies/products presented next. This is not a sales pitch; the objective is simply to show you what’s currently available and how it can help you modernize your application’s UI. This list of tools was created some time ago, and is not a comprehensive list of UI modernization tools. It can be seen as my favorite UI modernization tools list. Here are the tools, in alphabetical order:
- Asna has a product suite called Wings, which includes a browser-based emulator named BTerm. In their own words, its purpose is “to display those programs you don’t want to (or can’t) modernize.” It also has an intelligent ROA handler, which allows significant UI customization.
- BCD’s Presto suite (now part of Fresche Solutions) includes both a screen scraper and an ROA handler. This handler offers a high degree of customization. It can easily generate web and mobile GUIs from display files. Presto is part of BCD’s modernization suite, which includes WebSmart (for new web app development), Clover Query (for web-based reports), and Catapult (for report distribution), among other products.
- Fresche Solutions also offers a suite of GUI modernization tools based on ROA named Openlook (it used to be a Looksoftware product). You can go from the basic, almost screen-scraping approach for quick results or try a complete and complex UI multi-device modernization approach, which will allow your legacy application to “run” on web and mobile devices, for instance, with customized interfaces for each platform.
- Profound Logic also offers an interesting set of products, under the Profound UI banner, which includes a screen-scraping tool named Genie, a complete ROA handler, and a DDS-to-rich-display-file conversion tool. This last tool is particularly interesting, because it’s a DDS-to-GUI conversion tool that creates a GUI based on your original green-screens, but it’s enhanced to be more “web-like.” It’s highly flexible and easy to use.
You have probably heard of or even tried other tools. I couldn’t find an ultimate UI modernization tool, because all of them have pros and cons. It all boils down to the characteristics of the application being modernized. You can try most, if not all, of these tools for free, so again “think big, start small” and do a proof of concept of those that seem more appealing to you.
That’s all I have for now. See you next time!