|
The difference in my idea is that I'm going to code all the globalvariables in each dataq server program in one or more data structures and
The key point here is making all web processing the same as 5250 processingas far as state goes. Everything that is in a variable is still there from
What I would like to see is an iseries RPG open source framework code forbusiness processing that would be more powerful than any other
All IO for a program would go through just the open paths of that singleprogram.
I'll add what I can, but until I have a demo (which I'm just now
starting) for now just food for thought.
I posted this idea on the CGIDEV2 forum and it didn't get very far, so
I'll pass on a little of it here but focus on getting it coded. It will
be unencumbered open source (no licensing, in public domain, etc.) and
hopefully will be of use to others.
Also, as to Renaissance I looked at their doc a couple of weeks ago
and they also use dataq servers, although you can include all the logic
in the CGI program if you choose. But that's how they architect their
web apps. I had a dicussion with Kevin Turner on this who at least gave
it a good go to try to understand what I was proposing. :)
The idea is similar to Aaron's, dataq servers but coded UI
independent, that is, has no EXFMT's (of course) but also no HTML or XML
generation, etc. That's up to the user interface generation program, be
it CGI, 5250 interactive, or even none with batch program.
The difference in my idea is that I'm going to code all the global
variables in each dataq server program in one or more data structures
and DIM the data structures to a maximum number of concurrent session
users, to be bold here, let's say 10,000.
Then when a dataq entry is written to the server, along with it comes
a session id that was assigned from 1 to 10,000 when the user logged in.
For example, Rennaissance assigns a session id in their environment that
would be correlated to a number between 1 and max users. That number
will then be a data structure index in the program. Every statement will
access variables as x(sess_idx) = something rather than x = something.
This is equivalent of 10,000 session programs and their data, but only
one program and the data in 10,000 data structure arrays.
The key point here is making all web processing the same as 5250
processing as far as state goes. Everything that is in a variable is
still there from last processing, just as we expect and program to in
5250 or any desktop programming, etc.
Of course, all code that can go into subprocedures would go there,
along with their local variables. That should be done anyway, and cuts
down on global variables that would need to be in the persistent data in
data structure arrays in my design.
What I would like to see is an iseries RPG open source framework code
for business processing that would be more powerful than any other
environment, due to the huge overhead of Java and the slowness of script
processing, and added to both the overhead of context switching to
restore state as each web page comes in.
To sum up the CGIDEV2 discussion (which this idea works with as well
anything else), Kevin supports the standard architecture of stateless,
multi-server instances (horizontal scaling), with the idea that multiple
jobs will handle restoring state and processing the incoming page in a
timely manner. In fact, he doesn't see restoring state as that big of a
deal and I do.
Whereas I am proposing a non-standard single instance of each logic
server arrayed to max number of potential sessions, and processing all
incoming for each server out of memory resident data structures. All IO
for a program would go through just the open paths of that single program.
There's higher memory overhead for what I propose, but I believe it is
still significantly less than Java, and I believe the stable logic
processing against files would turn around output at phenomenal speeds.
The DIM can be much less than 10,000, whatever concurrent logins you
expect to support for that app system.
I have more plans within the logic but that's enough to start.
rd
Aaron Bartell wrote:
What if you could create a programming experience that allowed the RPGas
programmer to code just like they were communicating with a green screen
far as program state is concerned, but instead be communicating with the
browser?
--
This is the Web Enabling the AS400 / 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 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.