How we extended our RPG business logic expertise to the Web 2.0 world IBM i developers face a myriad of options when looking for the best way to get their RPG applications to work effectively in a web browser. Just evaluating all the options (i.e., WebSphere, Java, EGL, JSP, third-party tools, etc.) can take months! It goes without saying that the technology supporting browser interfaces has evolved considerably over the years. If you’ve paid attention, you’ve probably noticed the best web sites have moved from relatively static pages to interactive programs that run more like traditional PC applications. The “Web 2.0” user interface on Google Maps, introduced in 2005, is a fantastic case-in-point -- the ability to move a map around the browser screen dynamically using familiar “drag and drop” actions was truly revolutionary. And with the explosion of mobile apps running on smartphones and tablets taking the IT world by storm, it’s clear that the user interface of choice today is anything but a text-based 5250 screen.
So how can a traditional RPG shop choose the correct path to overhaul its green screen-centric user interfaces to the latest and greatest, like Google Maps? How can the shop be assured that its investment will result in a browser interface that doesn’t look like it’s pinned to yesterday’s technology? And most importantly, how can the shop guarantee the speed and efficiency of its green screen applications won’t be lost once the programs are moved into the browser? These are the same dilemmas we faced with modernizing our own green screen applications. Valence is the result of many iterations of searching for the best way to migrate our green screen RPG programs into the web world. We literally spent years trying everything from Web Facing/HATS to CGIDEV2/HTML to WebSphere and various third party tools in an attempt to find the “Goldilocks” solution to our quest for a suitable browser interface. Ultimately, as a dedicated RPG shop, we found each solution came up short. To summarize our findings:
The resulting applications from this approach were, in a word, “clunky.” The user experience left much to be desired. Though some degree of customization was possible, the user interface still had the underpinnings of a green screen application and never really took full advantage of the browser’s capabilities. Ultimately, these screen-scraping tools offered little more than temporary solutions, suitable perhaps for rarely-used applications, but definitely not for our core user programs.
Quite an improvement over Web Facing, but rather labor-intensive on the coding front. And though the user interfaces in HTML were certainly better looking than the 5250 screens we’d been using for years, they still had a sluggish “repaint the whole page” feel that has become passé when compared to modern “Web 2.0” websites.
We tried to force ourselves to go this route for quite some time, creating and deploying a number of applications under WebSphere. But the WebSphere option was fraught with complications — from a very difficult server setup to the fact that Java is a tough transition for dedicated RPG programmers to embrace. Ultimately we felt the pain involved just simply wasn’t worthy of the resulting output.
Other 3rd party tools
We tried almost all the web development tools available in the IBM i community that purportedly target RPG developers. While most of the packages were capable of generating simple front-ends to our RPG programs, none were optimized for the true Web 2.0 look-and-feel we desired, and all carried a price tag that would’ve been difficult to justify to our green screen users. Additionally, many of the packages required use of proprietary programming languages or tools that would only work so long as that package was retained. We were looking for a more industry-standard approach to developing the front end, one that would foster development of a skill-set that could be used on or off the IBM i. Beyond the “webification” of our green screen programs themselves, we also needed a robust menuing system to manage these newly browser-enabled applications in a cohesive fashion. In other words, we needed a browser-based replacement for the green screen menu system used to control access to our programs. None of the options we tried (commonly referred to as “portals”) offered all the features we needed without excessive additional cost or complexity.
After exhausting all conventional options, it became clear that to provide the best possible browser interface for our users we would simply have to build the solution ourselves. So in late 2006 we selected a leading provider of front-end web components (Ext JS, now Sencha) and invested a substantial amount of our development resources to create a brand new set of programming tools, a collection that would be ideally suited to an RPG shop like ours. The result of this effort, Valence, was launched in the summer of 2008 and has undergone regular enhancements ever since.
Today, Valence equips RPG programmers with all the components necessary to create robust web and mobile applications on IBM i using the latest in Web 2.0 technology. Included with Valence is an intuitive portal for logging in to the IBM i and launching applications on a customizable navigation tree – a point and click interface that is quickly understood and embraced by IBM i users. The Valence Portal retains all the requisite security features and controls you expect on IBM i, resulting in an experience is intuitive, elegant and efficient for both developers and end-users alike.
Going well beyond reengineering existing green screens, RPG programmers will find Valence’s amazingly versatile front-end components open up countless opportunities to create brand new applications on both desktops and mobile devices. Collectively, these features offer user interface functionality that isn’t even conceivable to program in the text-based 5250 world. In fact, many of your users won’t believe the Valence applications you create are still running directly on your good old IBM i! Leapfrog Static HTML – Dynamic Web Pages for IBM i, iSeries, & AS/400 »