CNX Welcomes 5250 Apps Into Valence Framework
June 12, 2019 Alex Woodie
For years, CNX has prided itself on providing the IBM i community with development tools for creating modern Web applications on the platform. The company looked unapologetically to the future, and encouraged customers to move on from their green-screen pasts. But in response to strong customer demand, the company has relented and decided to allow green screens into the framework via an innovative new Web-based emulator dubbed Fusion5250.
Fusion5250 is all about giving customers choice, CNX says. The software, which is a core new feature in Valence 5.2+, lets Valence customers access a modern application developed with CNX’s Nitro App Builder at one moment, and then seamlessly slide into a 5250 session to interact with a legacy RPG program, all without leaving the Valence Portal.
Keeping customers within the Valence Portal was a key design point for Fusion5250, says CNX principal Richard Milone, who spearheaded the development of the new feature.
“Customers have told us over the years, and more so recently, that they want to be able to run old applications that they have no intention of modernizing in the same interface that they run new applications,” Milone told IT Jungle at the recent POWERUp 2019 conference in Anaheim, California. “They don’t want their end users to have to go to an emulator outside another application. They don’t want the burden of installing that and maintaining that. They just want to do everything in the browser.”
A lot of CNX’s customers have utilized other products, like IBM i Access for Web, to deliver that 5250 emulator in a Web browser. And customers can even run IBM i Access for Web within the Valence Portal. “But the interface is kind of clunky,” Milone says. “It’s slow to startup. It’s not a great experience. So we decided we would create a customer experience that was totally integrated with Valence.”
CNX demo’d the new software, and it delivered that familiar green on black user experience that so many people are familiar with. A user can be interacting with a modern Web application running on the IBM i at one moment, and with a few clicks of the mouse, fire up a Fusion5250 session with the click of a button from the Valence “launch pad,” all without leaving Valence.
Nothing seemed out of place with the demo, except for one thing: The screen response times were unusually fast. The lag that many folks experience when using a browser-based terminal emulator just wasn’t there.
That was part of the design spec, Milone says. “It works like the user would expect the terminal to work,” he says. “I can get break messages. I can do debug sessions. You can use PDM if you want. Everything works exactly like a terminal would work. Because of the Web socket, I have a direct two-way communication.”
CNX spent months developing Fusion5250, and put a lot of effort into making it run as fast as possible. He gave us the low down on what’s going on inside Fusion5250, which is really quite interesting and innovative.
“We’ve decided to create a lightweight proxy job on the IBM i,” Milone says. “The browser cannot communicate with Telnet directly. Modern browsers have something called Web sockets, but they cannot communicate with a traditional socket. Web sockets uses a special protocol. So we’ve created a proxy job written totally in RPG and using IBM i APIs that runs as part of the Valence installation to communicate with the browser via Web sockets. Then that job will communicate and translate that to an actual socket to the Telnet service.
“So this very lightweight job that we include as part of Valence is allowing the browser to access the 5250 data stream directly,” he continues. “We don’t do any type of translation to that other than Web socket to socket in that lightweight proxy job. The magic happens in the Valence user interface. So the Valence user interface is just getting direct access to the 5250 datastream. This 5250 datastream hits the Fusion5250 application in the browser completely unmodified. It’s a raw hexadecimal stream . . . Fusion5250 decodes the stream and converts it to UTF8 Unicode and renders the screen. So the magic is all on the front end. It doesn’t put any burden on the server. All of the processing happens in the browser. And it sort of spread the workload around to each individual users’ browser.”
There are a lot of different directions the company can go with Fusion5250, which is still in beta. Because the 5250 datastream is converted into a JSON object, it could be used to call or respond to all sorts of Web services or external applications. There are also options to include links to Fusion5250 screens in modern applications developed with the Nitro App Builder.
Those are some of the options that CNX is considering, Milone says, including possibly selling it as a stand-alone product. “It does open up a lot of possibilities, but we want customer feedback first,” he says. “Customers don’t know what to ask for until they get their hands on it.”
The other major feature in Valence 5.2+ is support for the Japanese language. The Chicago company enabled its software for the double-byte character (DBCS) and worked with a Japan-based partner to translate the software. The Japanese version of Valence is only available through its Japanese partner.
“This has been a three-year process of us penetrating the Japanese market with Valence,” MIlone says. “There have been a lot of technical challenges. This is what keeps vendors out of Japan. It’s acutely quite difficult. You have to invest a lot in Japanese support.
CNX was tempted to put the new features in Valence version 5.3, but customers did not want the company to issue a new release. So instead the company is bundling these features in Valence 5.2+, which is sort of a “technology refresh,” if you will.
RELATED STORIES
CNX Opens Up Valence to Non-IBM i Platforms
CNX always had a good product with Valence. This new feature looks very promising to me for the kinds of shops I’ve worked with. I know it’ll gain momentum as they blaze into this important area of seemless 5250 migration.