Gents,

IBM native programs are not compiled to machine code but to the TIMI (MI)
layor that then converts it to SLIC instructions that then converts it to
processor instructions, PASE works different since it is compiled to the
AIX interface that is partly unix SYSCALL/SLIC or direct.

http://ibmsystemsmag.com/getattachment/b44d4a03-a8fe-4c99-9282-be6c6b14ea62/

nodeJS runs on top of Google V8 javascriot engine that compiles javascript
into whatever the version of the V8 is portet to run on. V8 has not one but
4 compilers that does JIT compilations on load time. The reason for the 4
compilers are that V8, based on the javascript code it compiles, can
produce more or less efficient binary code - the fastest code done by the
Turbofan compiler outperforms Java binaries on any platform and runs side
by side with new Webassemply binary modules passed to the browser.

V8 is primarly, like many base modules in nodeJs, written in C while
Turbofan is written in assembler since C doesn't produce code that runs
fast enough. An overview of V8 compilers is here:

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSIjJvEXwaoyh6Sj30fW9KBhs-dynUHtGvV6NixQloPGG0-jiQb

I hope this clarifies some of the topics discussed and can conclude that we
do not in any of the environments compile application programs to
machinecode.

On Tue, Apr 10, 2018 at 9:07 PM, Kelly Cookson <KCookson@xxxxxxxxxxxx>
wrote:

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


--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/web400.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.