Brent,
The Apache based HTTP server IBM provides runs under the OS natively. IBM did a very, very nice job with it. The only time that isn't true is when you run the version of PHP that Zend provides. In that case, an instance of Apache runs in PASE to handle the PHP requests but the native HTTP server still runs in front of it acting as a proxy. This is actually very similar (conceptually, anyway) to how WebSphere or Tomcat interact with the HTTP server and both of those can interact with native programs via the ToolBox classes (you can even do record level I/O with those if you want).
I think the point that is trying to be made is that besides the persistent connection model which you are used to with traditional programming, there is also a stateless model. The stateless model does have its place (it's great for short lived transactions like shopping activities and even some types of inquiry type stuff) and is the most common model of web development but there are cases where being able to maintain state is important. If you are trying to wrap a web front end around existing code that relies on the user profile to determine library lists or an application that deals with large result sets that a person needs to page through, being able to maintain state is a must.
One problem you can run into with CGI programming, is that if you are not running a threadsafe language, you will have to start up a CGI job for every persistent connection that you need. Each one of these jobs ties up memory (likely much more than a 5250 session does) and other resources. The impact of a thread is lower than that of a full job so you have a better chance of getting higher performance from something like Java (which is threadsafe) than something like a CGI program written in RPG.
That being said, I've been running CGI programs for just about 10 years now on the Internet and I've heard the "CGI doesn't scale" drum beat many, many times. That is true on most other platforms but we have a system that has very fast I/O and easily handles many active jobs so scalability is much better. I will also admit that there are limits to this so at a certain point, you will run into scalability issues.
Also, don't be so quick to write off other technologies. I bounce back and forth between Java and RPG quite a bit and I've found that my RPG is much better since I started doing a lot of Java. That's mostly because Java requires you to think of things in smaller bits that are reusable instead of monolithic programs.
Matt
-----Original Message-----
From: web400-bounces@xxxxxxxxxxxx [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Bent Rønne
Sent: Friday, February 01, 2008 3:55 PM
To: 'Web Enabling the AS400 / iSeries'
Subject: Re: [WEB400] Question about QZSRCGI.
Joe,
I absolutely agree in all aspect you say here. But I'm also talking about
iSeries programmers skills like (RPG, COBOL), library list, joblog
(wrkactjob), open files, etc. And all what we are used to use on this
platform.
I'm one of these programmers who never started with Java, but one of them
needing to make modern programs (html, web services, xml, Java Scripts etc.)
and still be able to use dspjoblog, libl, ovrdbf, dtaara... In other words; I
would NOT be happy with an http server running outside OS400 (like Apache).
But I'm happy with a Native ILE http server that can interface directly with
RPGLE, CBLLE, CLP etc. (IceBreak)
Regards,
Bent
-----Original Message-----
From: web400-bounces@xxxxxxxxxxxx [mailto:web400-bounces@xxxxxxxxxxxx] On
Behalf Of Joe Pluta
Sent: 1. februar 2008 16:50
To: Web Enabling the AS400 / iSeries
Subject: Re: [WEB400] Question about QZSRCGI.
Bradley V. Stone wrote:
I don't quite follow what you're saying, but it sounds like you may be
talking about using a persistant connection...
Green screeners need to get past the one job one user mentality when
web programming... at least for the most part. Every request is
different, and could be from anyone. That's where persistance or a
variation thereof comes in handy (ie session variables, cookies... blah
blah).
I have to disagree. Persistent connections are a requirement for
high-performance applications. You need to keep heavyweight application
artifacts like open data paths and.SQL cursors around between calls; you
can't afford to rebuild them for every request. I've used persistent
connections with JSP Model 2 from the get-go, and EGL will also support
persistent connections.
Yes, there are some applications where statelessness is required,
specifically those with thousands of anonymous external connections (think
storefront or blog), but business applications for authenticated users are
not in that category.
It's simple.. and I'd rather create eRPG SDK or CGIDEV2 templates
than DDS any day.... :)
And me, I'd rather use a real WYSIWYG editor! JSF removes all of that
stuff.
Joe
--
As an Amazon Associate we earn from qualifying purchases.