I have been working with a hybrid solution using Cobol and Java.  As you
mentioned, there are quite a few tools available in Java, but I didn't want
to mix all of that web programming in my Cobol.  I am still developing the
process, but here is what I am doing.

I let the web server and Java servlets do all of the web work.  A servlet,
which stays resident after its first invocation or loaded when the server
starts up, makes a socket connection to the mainframe.  The server program
is written in Cobol and takes all of the information the servlet knows (all
of the CGI variable, etc.) and sends back a record oriented XML file.
Charles Goldfarb created the Element Structure Information Set standard to
describe SGML documents in a record oriented manner.  This was done so Unix
tools would work on SGML (and hence XML).  In short, the first character of
the record indicates what is on the record and the rest is the data.  For
example, if the first character is an '(', then the rest of the data is the
start tag, a ')' is the end tag, , an 'A' is an attribute and value, a '-'
indicates character data and a "?" indicates a processing instruction.  For
more information on record oriented XML, see  Using
this format is much easier in Cobol for both inbound and outbound data.  In
Java, it is quite easy to write a Sax filter to convert to and from XML from
ESIS.  The servlet can do your validation too.

The advantage of splitting up the duties is that the Cobol programmer
doesn't get bogged down in the web issues.  A request comes in, the Cobol
server looks up what it needs, sends an ESIS stream and waits for the next
request.  One can also make a pool of server programs available to several
web servers to scale up to higher traffic.  In addition, the web servers can
be on the other side of the firewall while your 390 box is behind it.

Food for thought.  HTH.

Mark Wonsil
4M Enterprises, Inc.

-----Original Message-----
We are looking at implementing the usage of XML in our systems and since
most of our legacy data and applications (written mostly in COBOL) are on
an OS/390 platform, we need to move data from it to an NT box (and
eventually to partners).

On the NT side we plan to use MSXML 3.0 from Microsoft since it's the most
advanced in terms of stability and conformance with the W3C standards
(XML, DTD, XSL).  But on the OS/390 side the solutions seems not so

We plan to use the XMLife vocabulary (developed by ACORD) and we have
these solutions in mind and I would like to know your comments about them
and your recommendations :

1. Create XML files directly from a COBOL application (it is simple and
easy, but it is difficult to ensure the validity of the XML generated
according to a DTD).
2. Use the XML4COBOL parser/generator product (from MAAS) (we don't know
if it complies with the W3C DOM specifications and if it is easy to use).
3. Install JAVA on the OS/390 to have access to the myriad of XML tools
available on this platform (we don't have any JAVA expertise, but it could
allow us to concentrate more on business logic than on the creation of XML
4. Convert the data from the OS/390 to XML on the NT platform (we are
limiting the benefits of using XML, since we cannot send an XML file
directly from the OS/390 to our partners, we must convert them on NT box

What do you think of these solutions ? Am I missing something ?  Which is
our best choice considering we have a considerable amount of data and
applications on OS/390 ?