Alex Woodie, IT Jungle Old habits are hard to break. Just try to take away the green-screen applications and tools from an IBM i shop entrenched in this mode of operation, and you'll see sparks fly. But to be competitive in this world, IBM i shops must break the 5250 habit and develop for the Web. Luckily, IBM i Web development tools are maturing rapidly, and some of them, such as CNX's JavaScript-based toolkit, called Valence, are available under the free and open source distribution model. CNX made the switch to free and open source software earlier this year with the version 2.1 launch of Valence, its Web 2.0 framework and toolkit specifically designed for creating AJAX-based Web applications that run on the IBM i server and its integrated Apache Web server.

CNX gives customers unlimited internal use for Valence, which is available for download from For external production apps, CNX gives customers the option of using the open source license, as long as they contribute their work back to the Valence community, or purchase an unlimited production license for about $600. The change in business model--from selling pricey licenses to basically giving away the software and making money through services--is paying off nicely for the Chicago company, says Robert Swanson, a CNX principal. "We have tons of work, and are in hiring mode" he tells IT Jungle. There is a big cultural gap between traditional IBM i programmers and today's Web programmers, but it's starting to narrow, Swanson says. "I think it's an awareness thing," he says. "The concept of a free open source development platform is kind of foreign [to IBM i shops].

Most companies that run on i are big institutions that want to be licensed on everything they use. They want to be as official as they can be. "But I think it's catching on," he continues. "The Web is rife with all these different free or virtually free development frameworks. EXT, Dojo, JQuery, Yahoo, and Google all have free or virtually free components out there. We're swimming in the same direction as they are now." And hopefully IBM i shops will start catching on, too.

Get Thee Some JavaScript

Here's another technology direction that IBM i shops would do well to align themselves with: JavaScript. JavaScript is the secret sauce that's common to all of those snazzy AJAX Web applications. Valence provides an IBM i "retrofit" for EXT, one of the most common JavaScript libraries. Valence customers must learn JavaScript to become proficient with the tool. But that's a small price to pay for developing killer Web apps that are native to the IBM i platform and even use RPG for back-end logic, according to Swanson. "On Valence, the only new thing you're learning is JavaScript, and that's applicable to any platform," he says. "I don't think anybody should be shy about learning this stuff. It's not that hard and it increases employment value."

As it ramps up its technical services business, CNX looks far and wide for RPG developers it can hire who are also skilled in JavaScript. "But most are gainfully employed, so we end up hiring JavaScript people and we teach them RPG," Swanson says. The next best thing to a single programmer who's proficient in both RPG and JavaScript is a team composed of one RPG programmer and one JavaScript writer. "The two paired together can whip out apps real fast," Swanson says. "Kids with JavaScript can do the razzle dazzle displays, and the RPG programmer provides the database logic, so the application functions quickly and efficiently. It's a good team. That's what I encourage. And the two can learn from each other."

Valence 2.2

By the way, CNX recently shipped Valence 2.2. The new release features improvements in single sign-on, performance, and testing. This release adds support for IBM's Enterprise Identity Mapping (EIM) technology and Kerberos, which EIM also uses. Customers can now use EIM Kerberos credentials to sign into the Valence portal. Similarly, support for IBM i IDs and passwords will make it easier for some customers to use Valence. Some customers may not want to use their IBM i IDs for Valence for security reasons. But there is nothing stopping customers with version 2.2 from associating one or more Valence user IDs with an IBM i user ID. On the performance front, user requests for data from the IBM i will be returned a tad faster as the result of a tweak CNX made with the code.

With this release, CNX enables multiple data sets to be sent simultaneously from the IBM i server to the Web browser, using the VVIN call. Previously, the data sets were sent down to the Web browser one at a time, as RPG fetched the data from DB2/400 and then sent it to the HTTP server for delivery. Swanson says the result will be a savings of several hundred microseconds for a typical transaction that is reduced from five AJAX calls down to one. While relatively small, the result will be noticeable, especially on the faster Power Systems servers. "The performance on these things is beastly, so it screams," he says. (This isn't the be-all, end-all for performance, as many other factors, such as the number of CGI jobs the Apache server is configured to have running, have a big influence on Web app performance, too.)

CNX also delivered a new capability for testing the back-end RPG component of a Valence application separately from the JavaScript-based front-end. Being able to test the RPG logic before the user interface is complete will allow the RPG programmers to complete their parts of the project separate from the user interface developers. "Sometimes the guy doing the business logic finishes first, and doesn't want to wait around to test it," Swanson says. "With this new feature, they can launch the business logic, fill in some variables, and see how it responds." Lastly, Valence 2.2 gains support for Ext version 3.2.2, the latest release of the JavaScript toolkit, which is now distributed by Sencha. Original Article