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

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