nodejs / evangelism

Letting the world know how awesome Node.js is and how to get involved!
243 stars 44 forks source link

Porting : Nodejs as a native product on the z/OS system (IBM Mainframe), running from CICS #198

Closed OwenBrotherwood closed 7 years ago

OwenBrotherwood commented 8 years ago

Node.js was ported to Windows, how about some thoughts as to if there is a case for porting to the Mainframe

"The Mainframe" has one hell of a bandwidth for data, allowing nodejs to sit as close to the hardware as possible, without JVM/Linux, could be "exciting"

Website: http://nodeonmainframe.org Storyboard: https://waffle.io/NodeOnMainframe/NodeOnMainframe

I guess "evangelism" is the best place to air the idea.

The process is to achieve running node.js as close to bare bones mainframe is "challenging".

Edit: 7 jan 2016 To clarify, when reading the heading, one could thing I meant Mainframe LinuxOne or some other name for linux s390(x) arch. When I refer to mainframe, I mean not Linux or some JVM but a ported node.js (v8) that supplies another "OS" level of support, but rather v8 is the only support to access resources needed to run server side javascript

Edit: 8 jan 2016 IBM UNIX System Services could be "the key" http://www-03.ibm.com/systems/z/os/zos/features/unix/release/nmas.html

mhdawson commented 8 years ago

I believe you are talking at about Z/OS support so this is just to give some background overall Z support so far.

For Z/OS specifically we have seen increasing interest on node.js. Two of the key elements to get to a port include:

We did start to work on these in the last year but still have a ways to go. The good news is that the zLinux port for v8 means that a lot of the hard lifting in terms of supporting s390 is already complete.

If there are community members who want to help out in moving the ports forward we can look at how to make sure they can easily get engaged.

OwenBrotherwood commented 8 years ago

Thank you Michael.

Specific z/OS is the interest for "native" node.js contra z/Linux.

However, z/Linux can/will/probably have a big role in ensuring that a native z/OS node.js can be obtained as quickly as possible as you also indicate in the post.

The v8 progress to z/OS sounds good, I will google for the work.

mhdawson commented 8 years ago

I don't think google will help you yet as we've not started pushing out progress/code yet. We will likely have a github repo and/or contribute to existing projects like libuv when we get far enough along we've just not gotten there yet.

OwenBrotherwood commented 8 years ago

I did find some traces by googling github, haven't had much time to dissect which z it is for https://github.com/andrewlow/v8z

OwenBrotherwood commented 8 years ago

@mhdawson Looks like there is a need to understand the zLinux port in order to understand the zOS port. Looks like I need to finde a free, no time restriction, zLinux VM somewhere (note no time restriction)

"We did start to work on these in the last year but still have a ways to go. The good news is that the zLinux port for v8 means that a lot of the hard lifting in terms of supporting s390 is already complete."


Edit 90 day :-1: trial and connection to IBM LinuxOne s390 arch achieved [linux1@zupy ~]$ uname -a Linux zupy 2.6.32-573.el6.s390x #1 SMP Wed Jul 1 18:26:59 EDT 2015 s390x s390x s390x GNU/Linux

Hmmm, a Linux system on the cloud for IoT without node.js in path. Wonders where it is hidden... [linux1@zupy ~]$ node -bash: node: command not found [linux1@zupy ~]$ ^C [linux1@zupy ~]$ node.js -bash: node.js: command not found [linux1@zupy ~]$ npm -bash: npm: command not found

mhdawson commented 8 years ago

One issue is that linux distributions generally want to be able to build from community repos before including by default. We are still working to contribute V8 back to google, then we need node to consume a newer version of that to get to that point. Until then you'll have to install from here: https://developer.ibm.com/node/sdk/

joransiu commented 8 years ago

Just to clarify the sources for Linux on Z port:

OwenBrotherwood commented 8 years ago

@mhdawson @joransiu Thank you. Storyboard has some milestones in respect to zLinux Google V8/node.js codebase with consequences for zOS Google V8/node.js. Looks like zLinux has to be completed before there is energy for zOS. Any target dates ? https://waffle.io/NodeOnMainframe/NodeOnMainframe

I have to go into all the issues for a clean up and ignore the 90 day trial I have on an IBM Linux One I deployed from Redhat 6.7 with MongoDB Linux One image https://github.com/NodeOnMainframe/NodeOnMainframe/blob/master/IBMLinuxOne.md The basic requirement for community help is some iron that is compatible/available to that what the developers use, my only iron is LinuxOne on which I would need to compile the current port (and the gcc which is needed)

mhdawson commented 8 years ago

If you mean target dates to complete the zLinux port back to google, we hope to start submitting chromium reviews in January and the elapsed time to complete the contribution will depend on the review cycle with google.

OwenBrotherwood commented 8 years ago

Andrews presentation http://lowtek.ca/talks/2014-03-19-EclipseCon/#/ ends with:

What's next?
Node.js 0.12.x
Port to zSeries (S390) platform runing zLinux
GitHub andrewlow/v8z
Contribution back to master V8 and Node.js repositories
Standard Disclaimer: This is not a product annoucement, nor a commitment.

So... first zLinux. Then zOS could be done if a "What if" scenario found some business argument (or just for "fun").

"What if" ... IBM deceided to port Node.js onto the Mainframe z/OS 
to empower "Mesh App and Service Architecture", 
without using Linux/JVM middleware.

Standard Disclaimer: This is not a product annoucement, nor a commitment.
OwenBrotherwood commented 8 years ago

@mhdawson I have now, after a bit of effort, a zLinux node.js V4.x os390x environment on IBM LinuxONE Community Cloud that is a a free open to developers zLinux os390x on RHEL6.7

The IBM LinuxONE Community Cloud has "issues" as the perfect place for developement, room for improvement, but can be used by others if there is a need for others to help debug/contribute/issue for node.js V4.x os390x

The above link to a forum post, has a final link to my own repo for notes to myself on specific's to the environment of compiling node.js V4.x on IBM LinuxONE Community Cloud.

/cc @joransiu

OwenBrotherwood commented 8 years ago

A little update for IBM LinuxONE Community Cloud

I was given access to a RHEL7.2 beta image on the IBM LinuxONE Community Cloud and was able to compile the github node.js V4.x os390x port from github without problems.

IBM LinuxONE Community Cloud's RHEL7.2 image is probably available for all soon and one can either choose to either/or:

Note:

/cc @joransiu @mhdawson

joransiu commented 8 years ago

@OwenBrotherwood Thanks for following up with your experience on RHEL 7.2. Glad to know things went smoothly on this distro. :+1:

mhdawson commented 8 years ago

Thanks for capturing/documenting your experience. From the title it sounds like you were going to use it from CICS. Is that your next step ?

OwenBrotherwood commented 8 years ago

The question I have, would it be interesting to use node.js direct from CICS? I am not even sure if would make sense, but could be interesting if it was possible or made sense instead of "just" installing a Linux on the Mainframe or a JVM/WebSphere on CICS. At the moment, a port for node.js (google v8) is underway for zLinux, and I doubt that anything would happen with "CICS" until it is finished with upstream patches.

OwenBrotherwood commented 8 years ago

In the meantime, crossing the border, is something I will read, Crossing the border Programming between native z/OS and zOS UNIX Systems Services http://www.ibm.com/developerworks/aix/library/au-bordercrossing/


https://en.wikipedia.org/wiki/UNIX_System_Services Java depends on USS. node.js on USS would be on the same dependancy level of the technology stack as Java on USS: which is ok.

OwenBrotherwood commented 8 years ago

Following the border road of UNIX System Services to OS/390, I feel that a way to investigate the porting of Linux(UNIX) centric javascript node.js could be USS, such that node.js is not run under "Linux/UNUX" in it's normal sense but under "OS/390 facilities".

"In September 1996, OS/390 was branded XPG4.2 (UNIX 95)-compliant—the first operating system from a non-UNIX heritage to be UNIX-branded. In OS/390 Version 2, Release 7, IBM began to add UNIX 98 functions to OS/390. Thus many C/C++ applications which formerly had to run on UNIX workstations can now run under z/OS and OS/390 along with transaction manager, database, batch, and other related applications. This redbook addresses the issue of porting UNIX based C/C++ applications to z/OS. The word port traditionally refers to the process of moving (and usually modifying) the C/C++ source code to run on another platform. Before we discuss C/C++ or porting, we should first talk about the interactive interfaces to z/OS UNIX System Services."

Redbook: http://www.redbooks.ibm.com/abstracts/sg245992.html C/C++ Applications on z/OS and OS/390 UNIX Abstract In this IBM Redbooks publication, we focus on how to move applications written in C/C++ from other UNIX operating systems to z/OS UNIX System Services. We highlight the traditional strengths of z/OS, and describe some of the subsystems not always found on other UNIX variations. We address application development tools, the C/C++ compiler, and open source development code such as the C++ Standard Template Library (STL) and the Adaptive Communication Environment (ACE). We also suggest some performance tuning techniques. Finally, a "real world" port of a C/C++ application is detailed. First we describe the application itself, and then discuss the following aspects of the port: Before What we did to set up the application development environment During Which issues we encountered while porting to z/OS After How we tuned the application once it was running In conclusion, we summarize our overall findings. Many additional appendixes are included for reference such as:

http://www.redbooks.ibm.com/abstracts/sg245992.html

MulderH commented 8 years ago

Did you take a look at HostBridge? They have have implemented a server-side JavaScript engine for under CICS on z/OS, but is not for free. See link https://www.hostbridge.com/index.php/products/javascript-web-services-CICS-zos

richardlau commented 7 years ago

IBM SDK for Node.js z/OS technical preview

bnb commented 7 years ago

Going to close this due to inactivity in the issue. Please, feel free to create a new issue or request this one be re-opened if needed. Looks like there was also some closure on it 🎉

Paul-Ivinson commented 6 years ago

Just for the record Node.js 6 is now available for z/OS. Try it by downloading from https://developer.ibm.com/node/sdk/ztp/