Profound Digs Deeper Into Node.js
May 10, 2017 Dan Burger
All things considered, most IBM i shops would prefer to retain and enhance their investments in a stable, secure and proven system than accept the risk and expense of rewriting applications in another language or migrating from the platform. And why not? The IBM i is a modern business computing system capable of handling sought after technologies such as mobile, analytics, open source and cognitive.
For companies aiming to enhance their IBM i environments, Profound Logic Software has just released Profound.js 2.0, a methodology for enhancing applications that uses a combination of Node.js and RPG in an agile development environment.
“The benefits of using Node.js on IBM i are numerous,” says Roytman. “With Profound.js, companies will be able to integrate new or converted Node.js applications with their existing RPG applications, as well as open up a whole new world of open-source possibilities on IBM i, including Watson and the Internet of Things.”
Profound.js provides a toolset to leverage Node.js, which Roytman describes as server-side JavaScript that supports an agile, iterative approach to modernizing IBM i applications. That approach means choosing certain code to be modernized in a prioritized fashion rather than tackling an entire application modernization effort all at once.
Profound.js 2.0 is a standalone, downloadable product that includes three modules. The Node.js Framework is available as a free NPM package that gives RPG-like capabilities to JavaScript. Examples are IBM i data types and the capability to code business applications in a transactional top-down manner. A Visual Designer tool for building browser and mobile interfaces using Node.js is also included. It is powered by Node.js, and allows development offline.
IBM i developers who are used to coding in a transactional style would typically find coding in Node.js somewhat difficult because of its “callback” style, which is a separate thread or callback, which doesn’t work well with procedural logic used by most RPG programmers. Developers in the Node.js community refer to this with the term “Callback Hell.”
The Profound.js framework eliminates the callback hell problem, allowing Node.js and JavaScript to be used as the backend language without using callbacks.
“It’s a mental hurdle or paradigm shift that developers must hurdle. We have a way of making that simple,” Roytman says.
Also in the framework is a Web server, which avoids building programs from scratch. Error handling, module caching, and hot reloading are also built in. It’s built for business application development.
The Profound.js Conversion Module is licensed software that converts RPG programs to Node.js. The conversion brings use of any open source NPM component without removing the existing capabilities of RPG and IBM i. The Connector module adds the capability for existing RPG programs to directly call Node.js modules, and integrates Node.js, RPG, PHP, and Java. It also allows the direct integration between Node.js user interfaces and RPG program displays. Database drivers that support robust, top-down integration with SQL or Record Level Access methods are built in. And access to IBM i resources, such as data areas and low-level system APIs, is also part of the package.
The previous version of Profound.js, which was introduced a year ago, was not downloadable. It was a product that Profound worked with customers on a one-on-one basis. The converter module continues as a product that Profound works with customers to deploy.
“It allowed us to perfect some of the capabilities and processes,” Roytman says. “We have plans for this tool, but we will go through more iterations before this becomes a conversion tool that can be put in the hands of a customer. But what is provided is a tool that can do interconnected development that allows Node.js to call RPG and RPG to call Node.js. We are making Node.js act like an ILE IBM i language. That means the compatibility is preserved and small portions of the applications can be moved to Node.js incrementally without affecting dependencies.”
JumpStart is a module within the Profound UI suite that enables developers to quickly generate RPG or PHP application code. Prior to Profound UI 5.8, released two weeks ago, this module only generated code to operate on a single file. Now it generates code to handle multiple files in a file-maintenance, or CRUD, program. This new feature allows a program to use lookup fields in grids and detail screens.
Additional improvements to JumpStart includes the ability to handle null database fields in the RPG program and support for alternative field names to be used in the display file and RPG or PHP program.
RELATED STORIES
Profound Logic Taps Node.js and COBOL For New Directions
Profound Logic, ARCAD Partnership Targets Modernization Projects