Hi Kevin,

Starting sometime next year, we will be developing browser interfaces to our IBM i. We will be using Microsoft ASP.NET running on IIS web servers on windows. We will connect the browser pages to the IBM i using web services (built with a .NET Data Provider that can access IBM i DB2 files and COBOL and CL programs via stored procedures). Our ecommerce team already does this--which is why we are starting down the same road.

Once we get our COBOL developers up and running with ASP.NET and web services, I would like to expand our capabilities with Node.JS on the IBM i . JavaScript will be one of the languages our COBOL developers will have learned as part of .NET web development. So we should be able to use Node.JS to create web services that can access a wider variety of IBM i resources than a .NET Data Provider--plus be using one language (JavaScript) in the browser and in the web services.

I agree performance may be an issue with the XML extensions. I'm wait and see about that. However, our browser interfaces would probably be used by no more than several hundred to a few thousand concurrent users. I don't think we will be taxing the scalability of any of the tools mentioned.

I want to learn about reverse proxies is because it might be possible to run IIS on a windows machine that proxies a Node.JS web server on the IBM i. This would allow us to access our .NET Data Provider web services and our Node.JS web services on the same IIS server. If we don't have a need for any .NET code in a particular app, we could bypass the IIS server altogether and instead use the IBM i HTTP server as a reverse proxy.

We are a COBOL shop and will continue to use COBOL for business logic (when needed) on the back end.

Thanks,
Kelly


-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Kevin Turner
Sent: Friday, December 26, 2014 1:11 PM
To: Web Enabling the IBM i (AS/400 and iSeries)
Subject: Re: [WEB400] Reverse Proxy for Node.JS on IBM i

It's a topology that should work - but it remains to be seen what sort of overhead the XML-based extensions add to the equation. JavaScript is my favourite language but I wouldn't want to use it server side just for the sake of it. I would be interested to see what your use cases are that warrant the use of JavaScript over normal compiled RPG (or COBOL).

Sent from my iPad

On 26 Dec 2014, at 18:15, Kelly Cookson <KCookson@xxxxxxxxxxxx> wrote:

Thanks for the info, Aaron.

Do I really need Apache/IBM HTTP server to use web sockets if I'm simply using Apache/IBM HTTP server as a reverse proxy? All I want to do is pass requests through the server to a Node.JS web server. The Node.JS web server would in theory have access to various kinds of IBM i resources (spooled files, data queues, data areas, DB2 files, COBOL/RPG/CL programs) via the XML-based extensions IBM is delivering with Node.JS.

I understand that Node.JS has been created with an event-looping model to handle high concurrency with good speed and low memory use. However, the apps I make will be targeted at employees in our company, with no more than a few hundred to a few thousand users in the foreseeable future. It's not really scalability that I'm looking for in Node.JS. It's the server-side access to IBM i resources using JavaScript.

I also understand that we could access a Node.JS web server directly and not use a reverse proxy. But I think that means I would have to write a lot of functionality myself to make a production-worthy Node.JS web server. Why reinvent the wheel? I would prefer the capabilities of a tried and true web server in front of my Node.JS server.

I was disappointed to learn that NGINX does not have the scalability on Windows as it does on other operating systems. It has something to do with the way the event-loop model is implemented in Windows. I assume you don't have this problem running NGINX on the IBM i with the AIX port. Are you running NGINX on the IBM i as a reverse proxy to a Node.JS web server?

I'm still new to all of this. Does any of the above sound like I'm heading down a wrong path?

I'm all ears to any advice you or anyone else wants to offer.

Thanks,
Kelly

-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Aaron
Bartell
Sent: Friday, December 26, 2014 9:18 AM
To: Web Enabling the IBM i (AS/400 and iSeries)
Subject: Re: [WEB400] Reverse Proxy for Node.JS on IBM i

Hi Kelly,

Apache on IBM i still doesn't support Web Sockets and that is a mainstay concept in Node.js apps. Note there is an Apache module that does Web Sockets but it isn't included in the IBM i version yet (to my knowledge).

I have nginx running on IBM i based on the perzl.org AIX port (
http://www.perzl.org/aix/index.php?n=Main.Nginx) and nginx *does* support Web Sockets.

Here are some stats on webserver popularity:
http://news.netcraft.com/archives/2014/05/07/may-2014-web-server-surve
y.html

Btw, I've setup a site on bitbucket.org where Node.js collaboration
can happen more easily: https://bitbucket.org/litmis/nodejs

Why did I set it up?
- We need a place to easily post/refine code examples**.
- We need a place to log tasks needing to take place (i.e. document nginx setup on IBM i***).
- We need to start conditioning the IBM i community on how to use
modern tooling for "social coding" (i.e. Git + fork/pull)****

NOTE: bitbucket.org is a free service for public repos. Sign-up for a profile.

**https://bitbucket.org/litmis/nodejs/src
***https://bitbucket.org/litmis/nodejs/issue/2/nginx-port-instructions
****https://bitbucket.org/litmis/nodejs/wiki/contribute

Aaron Bartell

On Wed, Dec 24, 2014 at 8:21 PM, Kelly Cookson <KCookson@xxxxxxxxxxxx>
wrote:

What are people's thoughts about running web servers as reverse
proxies for Node.JS servers on the IBM i?

I assume one could set up an IBM HTTP server as a reverse proxy for a
Node.JS server. The IBM HTTP server could handle static content; the
Node.JS server could deliver web services for dynamic content.

I also assume WebSphere web server could also be set up as a reverse
proxy for Node.JS. Would there be any benefits to using WebSphere
instead of the IBM HTTP server as a reverse proxy on the IBM i?

I currently have NGINX set up as a reverse proxy for a Node.JS server
on a windows machine (a learning environment). I like the fact that
NGINX and Node.JS are both event driven, making them fast and
scalable. I'm not sure I will ever really need the scalability NGINX
offers. IBM HTTP server will very likely meet all of my needs. Yet,
out of curiosity, does anyone know if there are plans to port NGINX
(or some other event driven web server) to the IBM i?

Thanks,

Kelly Cookson


--
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: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/web400.
--
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: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/web400.

--
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: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/web400.


________________________________

NOTICE: The information in this electronic mail transmission is intended by CoralTree Systems Ltd for the use of the named individuals or entity to which it is directed and may contain information that is privileged or otherwise confidential. If you have received this electronic mail transmission in error, please delete it from your system without copying or forwarding it, and notify the sender of the error by reply email or by telephone, so that the sender's address records can be corrected.



--------------------------------------------------------------------------------


CoralTree Systems Limited
Company Registration Number 5021022.
Registered Office:
12-14 Carlton Place
Southampton
Hampshire
SO15 2EA
VAT Registration Number 834 1020 74.
--
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: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at http://archive.midrange.com/web400.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.