Hi Nathan,

2009/1/7 Nathan Andelin <nandelin@xxxxxxxxx>

Rob,

I gather that you used the HTML DDS *DSPF keyword to modify the Workstation
Gateway stream. That's quite different than my first thought.


I hope that I didn't mislead you. What I have done makes a considerable
difference to the look and functionality of the WSG screens. That is what
matters from an end user viewpoint.



In an earlier discussion (before Christmas) I suggested using Virtual
Terminal APIs to map 5250 data streams to messages that a JavaScript client
might transform into DOM elements. The general idea was to come up with a
message format that was less verbose than HTML


I don't consider that HTML needs to be that verbose, although some web
developers (generators?) throw in a lot of stuff that I don't find the need
to use and their pages can be enormous. Without images, my pages are
typically 8k to 20k. This includes the Javascript to modify WSG. With
CGIDEV2, this won't be necessary so they might be smaller but of course I
may add functionality. At the 10k level, a page might include 10 links, each
with "ONMOUSOVER", "OndblClick", "OnClick" and "onmouseout" and I don't
consider this verbose. A 20k page might have 60 links with "ONmouseover"
etc. What would you consider to be a reasonable HTML page size?

, but still enable access to 5250 programs from browsers.


My idea with WSG and now with CGIDEV2 is that just one set of code will
provide both WEB and 5250 environments. Although I have some way to go with
CGIDEV2, I have got far enough to convince myself that CGIDEV2 will do what
I want, even if I find stumbling blocks along the way.

Whilst I doing the CGIDEV2 development for ERROS, I am trying to build in a
fair amount of flexibility so that it will be possible to use it for other
applications.



I kind of hoped that someone on the list might develop something like
that. It could be a useful add-on to a web portal I have. It would be nice
if a JavaScript client exposed an interface that would enable form input
elements to be filled in via JavaScript, to automate 5250 sign-on / program
calls. It would be nice to launch 5250 programs from portal menus, for
example.

Changing the subject:

Regarding using meta-data to build applications, I hear ya. It sounds like
you've come up with something of a virtual machine and/or generator for
applications.


Nothing is generated

I particularly like the virtual machine concept - providing as much
functionality as possible. It would be helpful to only have to create new
programs and screens that might be outside the functional scope of the
runtime environment.


This is how ERROS works. What is already there can be re-used when building
new applications. It is truly object oriented (but has no connection with
Object Oriented programming). Developers can use the OO features of ERROS
without needing to know anything about OO.

I am lucky that over the years I have worked in a wide variety of businesses
and I have learnt that most information is the same, although users would
not agree.



Then I think about code generators like Adobe Flex/Flash Studio. Drop a
check-box onto a form and the compiler generates a 100K executable. Drop an
additonal push button onto the form and the compiler adds another 50K to the
executable. A broadly scoped application could be dozens of megabytes in
size. And every user must to download that over the wire. What could be
worse?


Not much and of course this application would presumably not be integrated
in the Corporate Database, probably would not use commitment control, would
not have an audit trail, would not automatically write all database changes
to a second, off site, system, etc..


Without any commitment on your part, do you think that my approach would
have general application? A demonstration that I have given many times is
that my method can reduce a 10 man month development task (as estimated by
IBM) to just two hours! An important feature is that development can be
incremental and you don't have to do a minutely detailed analysis before you
start development.

I am now going to read the web5250 thread and will either post something
there or respond to you in this thread.

Rob

www.erros.co.uk



Nathan.




----- Original Message ----
From: Rob Dixon <robertsdixon@xxxxxxxxx>
To: Web Enabling the AS400 / iSeries <web400@xxxxxxxxxxxx>
Sent: Wednesday, January 7, 2009 10:12:32 AM
Subject: Re: [WEB400] Workstation Gateway (was Persistent CGI)

Nathan,

Your understanding of WSG is correct, but it was possible to change how it
worked by putting additional HTML and JAVASCRIPT in the datastream. So,
for
instance, I got rid of the heading AS/400 Workstation Gateway which wasted
a
lot of space, changed the background and text colours, enabled the function
keys so that they worked as in 5250 mode (with one exception). I altered
the text on the buttons, enabled "ONMOUSOVER", "OndblClick", "OnClick" and
"onmouseout", and allowed a much longer line length than the 80/132 norm
for
5250. I set "focus", displayed images, etc.

I used WSG because it was there and the learning curve was relatively
short. However, there were limitations about how much HTML you could send
(although I never quite worked out exactly what these were) and response
times were poor (although nothing like as bad as IBM predicted). In
addition, the way that I develop applications means that, as most of an
application definition is stored as metadata in my database and very little
is defined in new program code, all applications work in exactly the same
way. In fact the development and operational environments use exactly the
same program code as, mostly, no new programs are created when a new
application is built. This meant that I could spend more time on the
workings and I created a single datastream into which I inserted 5250
attributes, PCL 5 code for printing or HTML/Javascript as appropriate. My
product builds all of these dynamically. So when you see what appears to
be
a 5250 subfile displayed, it is in fact one field of 80 characters (or
more)
by ten lines which does not have 5250 attributes defined in DDS - these are
inserted by my product.

I missed the web5250 thread, probably because I had my head down in CGIDEV
-
I will have a look.

I am not trying to write my own version of WSG as I don't believe that it
is
a viable approach except in the short term. In addition, I made a rule a
long time ago that, except in the most extreme circumstances, I would never
try and go under the covers of an operating system. My reason was that, if
you do, you will have problems when a vew version is released. I do not
believe that with OS/400 there can be any justification for doing this. It
does all you need. If you make fundamental changes to the way things are
done (and to this I plead guilty) these must be done outside the OS.

What I am doing, and have been doing for some years, is to try and create a
better mousetrap. I believe that developers, because of the methods
available to them, serve users very badly. It seems to me that
programmers/developers spend far too much of their time reinventing the
wheel and achieving less than perfect results. Surely, programming is the
most inefficient process ever devised by mankind in any field of human
endeavour. It is fine for masochists (and we may both be masochists!) but
it is not productive, not even if you are the best programmer in the world.


I can achieve dramatic improvements in developer productivity and
scaleability by abolishing most new program creation (whether hand coded or
generated) as I define most of an application as metadata in my database.
Yet I cannot persuade people that programming in an unnecessary evil, even
though when we learn, no one shuts down our brain, analyses the problem,
designs a solution, reprograms our brain, tests the result and starts it up
again. If our brains worked liked that, we would know nothing. If we used
an intelligent database, we would be way ahead of where we are today and be
able to keep up with users' ever evolving real world as it changed.

Because of the limitations of WSG and its lack of IBM support, I am now
trying to create a better interface. This could be used by anyone in due
course. As yet, I don't see how to use it without some work - I don't
expect it to be a magic wand. But I hope that it will allow the
construction of applications that are automatically web enabled without any
work for the web and without writing any HTML or Javascript.

If you have a particular problem for which you want a generic solution,
please tell what it is. I may not be able to help, but it might influence
how I implement my ideas and might help to solve the problem.

Best wishes

Rob



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