Actually, this discussion has helped clarify one thing for me.

We are a two platform shop: Microsoft and IBM i. We are heavily invested in both platforms. Most new development is occurring on the Microsoft side. So we *have* to make our IBM i play nice with our Microsoft systems.

Thanks,
Kelly


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

I appreciate the feedback. :-)

We want to develop an internal pool of .NET web developers for a variety of reasons:
1. Our ecommerce site is entirely .NET web development and is not going to change in the foreseeable future 2. Our first mobile developers will be using .NET web development (responsive web sites and Cordova hybrid apps) 3. Our company is rolling out SharePoint, so we anticipate some possible SharePoint development 4. Our developers have already created a few other web applications using .NET web development, which we now need to maintain.

A pool of .NET web developers will satisfy broader demands we are facing. Plus, our ecommerce team already has years of experience using the .NET Data Provider to access the IBM i. It's a harder to sell the idea that .NET won't work when we have developers who have been doing it for years. Still, I hear what you're saying, which is why I want to open the door to IBM i HTTP server and IBM i Node.JS down the road.

I knew IBM delivered a toolkit with Node.JS. I did not know it was called itoolkit.js. I'm still awaiting an upgrade so I can install Node.JS on the IBM i. Good to hear that itoolkit.js runs well.

Thanks,
Kelly


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

The following is *purely* opinion and I am not looking to start a war.

The technology stack you are implementing will have you pulling out your hair in a couple years. Why? Because there are too many moving parts and that will complicate many things: initial learning, testing, deployment, long-term maintenance, upgrading machines, etc.

This is the approach shops were taking 5 to 10 years ago when IBM i lacked a lot on the web front. That isn't the case anymore and now the trend (read competitive advantage) is lessening the layers and moving things back to IBM i.

There is absolutely zero reason to implement ASP.NET in this scenario.
Would be MUCH better to go the PHP/Ruby/Node.js on IBM i route.

*>I agree performance may be an issue with the XML extensions.*

If you are talking about the itoolkit.js (xmlservice interface for Node.js) then I would breathe a sigh of relief. It is fast. (or at least fast enough). There are two modes you can communicate with your existing COBOL... 1) over HTTP which is good if your Node.js isn't on the same server 2) through a generic DB2 stored procedure offered by XMLSERVICE.

The itoolkit.js decision is peanuts compared to the ASP.NET one you are considering.

Ok, I will step down from my high horse :-)


Aaron Bartell

On Fri, Dec 26, 2014 at 1:39 PM, Kelly Cookson <KCookson@xxxxxxxxxxxx>
wrote:

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-sur
ve
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-instructio
ns ****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.

--
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.


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-2020 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].