In this age of web, cloud, and mobile applications, hybrid IT is the norm. These CICS applications need to fully participate. But integrating these terminal-oriented CICS applications in a manner that doesn’t require knowing all the intricacies of the terminal interactions is difficult. Many organizations developed integrations that did screen-scraping under the covers to grab data from row-column coordinates. Such integrations are notoriously brittle, perform poorly, and don’t scale well.
Node.js is Already in Your Organization
Our experience is that almost every enterprise is already using Node. However, the team that manages the mainframe may not know this. Those outside the mainframe environment, however, are quite familiar with Node. Indeed, Node is pervasive in applications that run in the middle-tier or in the cloud, and this is not a new development. What is relatively new is the presence of Node on the mainframe. Now that Node runs inside CICS on the mainframe, the caretakers of the mainframe and the applications that run there have some compelling reasons to care.
At HostBridge, we have advised customers on CICS integration for decades. An unchanging principle of creating high-performing integrations is to keep the data, applications, and integration layer as close to each other as possible. With this principle in mind, the thinking about putting Node on the mainframe probably goes something like this:
- You already have Node in your environment (most enterprises do), and
- You need integration between Node applications off the host with host applications,
Are Node.js and HB.js Interchangeable?
Node does not have roots on the mainframe. It comes to the mainframe from the outside, not having been purpose-built for z/OS and CICS environments. The only interface that Node supports for a calling services in the region in which Node is running is cics.invoke. This interface can call any program that can be described by a URIMAP which maps to a WEBSERVICE, then to a PIPELINE and finally to a PROGRAM. The data must be passed in a JSON format. The credentials the program runs under can be handled by the URIMAP. It is unclear if credentials can be managed any other way.
How Node and HB.js Can (and Should) Work Together