Hi Vern,
So I'm just looking for some clarification, if you please!!
We have been looking at the .NET wrappers for XMLSERVICE that Richard developed. These run by calling XMLSERVICE as CGI in Apache.
We have also been looking at Node.JS, which (from what I understand) can be used in two ways: Node Toolkit for i, and DB2 for i CLI. Here is where I see this:
https://www.ibm.com/developerworks/ibmi/library/i-native-js-app-ibmi-with-nodejs/index.html
The YiPs wiki seems to confirm this:
http://yips.idevcloud.com/wiki/index.php/nodejs/nodejs
According to the wiki:
"nodejs toolkit
The nodejs tool kit has multiple transports:
* http rest request - iConn using 'host' keyword to XMLSERVICE configured as a RPG CGI.
* Pro: This interface allows for best asynchronous behaviour for node toolkit. Http rest is an easy interface for 2 tier node toolkit applications (client/server). You may copy IBM i node toolkit code to client and call IBM i from anywhere. The Bluemix toolkit sample below demonstrates using rest calls to IBM i XMLSERVICE configured Apache using node toolkit (copied from IBM i os400/xstoolkit/lib).
* Con: The http interface is obviously slower than DB2 below.
* db2 stored procedure - iConn default without 'host' keyword to XMLSERVICE via stored procedure call."
Will a Node.JS server using the DB2 stored procedure transport perform faster under higher loads of concurrency than CGI (CGIDEV2 or .NET wrappers for XMLSERVICE)? (The YiPs wiki suggests that the DB2 transport will be faster than the HTTP interface using XMLSERVICE called as CGI.)
Node also performs well because of worker threads (via libuv), spawned child processes, and load balancing with clusters. Do these provide equal or better performance than the procedures used to scale CGI applications on the IBM i?
I don't have any evidence that node performs better than CGI on the IBM i. I also don't have any evidence that CGI can perform as well as node when using the DB2 transport, efficient asynchronous programming with worker threads, spawned child processes, and load balanced clusters.
BTW - I'm a little skeptical about all of the claims made on the YiPs wiki. The wiki says "You may copy IBM i node toolkit code to client and call IBM i from anywhere." That has not been my experience. If anyone believes this claim is correct, please let me know. I could use some help!
Thanks,
Kelly Cookson
IT Project Leader
Dot Foods, Inc.
217-773-4486 ext. 12676
www.dotfoods.com<
http://www.dotfoods.com>
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Vernon Hamberg
Sent: Tuesday, April 10, 2018 1:02 PM
To: Web Enabling the IBM i (AS/400 and iSeries) <web400@xxxxxxxxxxxx>
Subject: Re: [WEB400] [EXTERNAL] Re: ibm_db node module and IBM Data Server Driver
Kelly - I have to ask - when you say CGI, just what do you mean? CGIDEV2
as implemented on IBM i, or the general meaning of CGI as "common
gateway interface"?
So far as I know, everything that writes interactive apps to the web is
using CGI in the latter sense. PHP, ASP.Net, classic ASP, CGIDEV2, the
CGI APIs on IBM i, they all generate a text stream with the various CGI
operations (whatever they're to be called).
So I'm just looking for some clarification, if you please!!
Vern
As an Amazon Associate we earn from qualifying purchases.