node package manager

profoundjs

Profound.js modernizes your IBM i with an agile, iterative, and low risk approach that taps into the capabilities of Node.js.

This Profound.js Framework and Server is part of an overall solution that also includes Profound.js Connector, Profound UI, and an automated RPG to Node.js converter provided by Profound Logic.

Features include:

  • Ability for legacy code to start utilizing any Node.js module, and immediately realize the benefits of the open source ecosystem, including the use of Web services, npm, IoT, and Watson in your applications
  • Ability to modernize RPG to Node in a step by step iterative manner, rather than using an “all or nothing” approach
  • IBM i DB2 Node.js driver for both Record Level Access and SQL operations, including support for overrides and QTEMP in an interactive job
  • Ability to code Node.js logic in a top-down manner suitable for transactional business applications (“callback hell” is automatically avoided)
  • Integration with Profound UI’s Rich Display or HTML-based user interface technologies
  • Ability for Node.js modules to act like native ILE programs on IBM i
  • Ability to call RPG, CL, and COBOL programs seamlessly
  • Capability to call 5250 green-screen interactive commands from Node, and having them render as HTML5 on-the-fly
  • Ability for Node.js to be called from RPG, CL, or the command line using a standard IBM i CALL
  • Support for all native IBM i data types and seamless handling of parameters between native programs and Node.js
  • Ability to call any service program procedure on IBM i from Node, including operating system API
  • Ability to automatically expose any existing legacy logic as SOA web services, even when legacy programs are not well-modularized and screen logic is intermingled with business logic
  • Converter can automatically modularize existing code, make it more readable, introduce modern object-oriented concepts, and remove dead code

Installation

Profound.js relies on Profound UI (the framework for Rich User Interfaces on IBM i). You should install Profound UI from Profound Logic prior to installing Profound.js.

To install Profound.js, create a new directory and issue the command "npm install profoundjs" as follows:

mkdir profoundjs
cd profoundjs
npm install profoundjs

Npm install will prompt you for the Profound UI static files directory. If you installed Profound UI into its default installation directory on IBM i, simply press enter to accept the default; otherwise, type the path of your Profound UI htdocs directory. If installing outside of IBM i, you should copy the Profound UI htdocs directory from IBM i into your directory.

When installing Profound.js on IBM i, you will also be prompted to install Profound.js Connector IBM i ILE components. These components are required for many of the features provided by Profound.js. Profound.js Connector requires a valid license key. You can request a trial license key by contacting Profound Logic.

Usage

The Profound.js installation process will create a start.js file in your directory. It will look something like this:

#!/usr/bin/env node
 
// Load Profound.js 
var profoundjs = require("profoundjs");
 
// Get command line arguments 
var argv = require("minimist")(process.argv.slice(2));
var port = argv["p"] || argv["port"] || 8081;
var host = argv["h"] || argv["host"] || "0.0.0.0";
profoundjs.rlog = process.argv.includes("-rlog");
profoundjs.tlog = process.argv.includes("-tlog");
 
// Apply configuration 
var config = require("./config.js");
profoundjs.applyConfig(config);
 
// Start Profound.js server 
profoundjs.server.listen(port, host);
 
console.log('Profound.js server running at http://%s:%d/', host, port);

Using Node, the server can be started as follows:

node start.js

Or, it can be submitted as an IBM i job.

For more detailed information on how to install and use Profond.js, visit the Profound.js Documentation site.