Escolar Documentos
Profissional Documentos
Cultura Documentos
XML – is not only a language for communication study in Germany conducted by the University of
between humans and the web, it is also a language Karlsruhe discovered that more than 60 % of the
for communication between programs. Rather than productive applications in German industry run on
passing parameters, programs can pass documents the mainframe. Especially in the financial sector
from one to another, containing not only pure data, where banks, insurance companies and credit
but control information as well. Even legacy institutes are active, but also in the trade sector and
programs written in ancient languages such as in governmental administration, the host computer
COBOL and PL/I can be adapted by means of remains the workhorse of information technology.
interface reengineering to process and to generate Of the largest 2000 enterprises in the world, over
XML documents. This paper intends to describe the 90% employ an IBM-390 as a central server. [3]
for batch and one for subprograms – to illustrate systems which are running on the host. The fact
how XML may be used to integrate existing that they are still there, despite several attempts in
software systems into the web. the 1990’s to replace them with client/server
Keywords: XML, Software Reengineering, Data systems, underlines the necessity to cope with
Corporate
Databases
Life would be so simple if only all legacy programs here, this is the XMLOUT function which
were subprograms which receive their input data generates an XML document for the output queue.
processing programs. Both have to first be altered preprocessor. To make things more convenient to
before they can be used to service requests from a the user, SoftWrap even displays the names of all
remote client.[13] files used by a program in a list box so that the user
may select which files are to be wrapped, i. e.
<!DOCTYPE RECHNUNG [
<!ELEMENT X-CICS-RETCODE? >
<!ATTLIST X-CICS-RETCODE Type = "int">
<!ELEMENT RECHNUNGSPOSTEN
(AUFTRAGNR,
KUNDENNR,
ARTIKELNR,
ARTIKELNAME,
BESTELLMENGE,
ARTIKELPREIS)>
<!ELEMENT AUFTRAGNR (#PCDATA) >
<!ATTLIST AUFTRAGNR Type (char|dec|pack|int|float|ptr|str) "dec">
<!ELEMENT KUNDENNR (#PCDATA) >
<!ATTLIST KUNDENNR Type (char|dec|pack|int|float|ptr|str) "dec">
<!ELEMENT ARTIKELNR (#PCDATA) >
<!ATTLIST ARTIKELNR Type (char|dec|pack|int|float|ptr|str) "dec">
<!ELEMENT ARTIKELNAME (#PCDATA) >
<!ATTLIST ARTIKELNAME Type (char|dec|pack|int|float|ptr|str) "char">
<!ELEMENT BESTELLMENGE (#PCDATA) >
<!ATTLIST BESTELLMENGE Type (char|dec|pack|int|float|ptr|str) "dec">
<!ELEMENT ARTIKELPREIS (#PCDATA) >
<!ATTLIST ARTIKELPREIS Type (char|dec|pack|int|float|ptr|str) "float">
]>
< RECHNUNG >
< X-CICS-RETCODE>03</X-CICS-RETCODE>
< RECHNUNGSPOSTEN >
< AUFTRAGNR >1001</AUFTRAGNR >
< KUNDENNR >10548501</KUNDENNR >
< ARTIKELNR >4711</ARTIKELNR >
< ARTIKELNAME >Straps</ARTIKELNAME >
< BESTELLMENGE >0010</BESTELLMENGE >
< ARTIKELPREIS >018,50</ARTIKELPREIS >
</RECHNUNGSPOSTEN >
</RECHNUNG >
Generating the Conversion Tables separated from the program source and usually are
in the form of a copy book, an include or an
The key to converting XML data to Assembler, Assembler macro. A static analysis tool in
COBOL or PL/I data is the data conversion table. XMLWrap processes the data structures to extract
This table contains the names, types, positions, the names, types, lengths, etc. and place them in a
lengths, occurrences and redefinitions of the data in table. The positions of the data fields have to be
the host program interfaces whether they be calculated based on the lengths of the preceding
parameter lists, records, or maps. It is via the data fields. For each program module a separate data
conversion table that character data is extracted conversion table is generated in the form of an
from the XML document to feed the host program XML document with a container tag for each data
interface at runtime. It is also via the data field and an elementary tag for each field attribute.
conversion table that XML documents are The level number of the fields is stored as an XML
generated from the host programs. attribute of the field name. It would be possible to
declare all field attributes as XML data attributes,
To create these tables it is necessary to parse the but it is more flexible and easier to process if they
The XML Stubs place them at the proper position in the program
data structure. Thus, the standard methods are:
The stub for converting incoming XML documents The stub for generating outgoing XML documents
processes the conversion table for that particular is also based on the corresponding conversion table.
interface. It is generated from a standard template Only the direction of the conversion is reversed.
and joined together with the conversion table. In The output stub is called with the record or map
effect the conversion table is the object and the stub containing the output data. Via the table the
the methods. The methods are to parse the XML variable names are associated with the field
document, select the data noted in the conversion displacements, lengths and types to extract the
table, convert the data to internal data types and to values and embed them in a corresponding XML
document. The DTD is created based solely on the of redefinitions the conversion type is determined
conversion table. The result is a correct and well by the actual value. In the case of multiple
formed XML document which is placed in the occurrences, i. e. vectors, the actual number of
outbox. elements in the table must be computed. This
becomes complicated when repeated data groups
The greatest conversion difficulties are caused by are involved, but it is a problem which any
multiple occurrences and redefinitions. In the case compiler must resolve.
Input Output
XML Docus Message Message XML Docus
Queve Queve
Database
Executing the XML-wrapped Programs In the online environment, the program remains
under control of the TP monitor which opens and
The wrapped programs are executed in their native closes the databases, commits or roll backs the
environment. For this reason it is important that the database transactions, establishes connections to
stubs are in the same language as the program, as other programs, maintains the communication data
they are statically linked to it. In the batch areas and handles errors. The only difference is that
environment, the program now reads its input from there are no connections to the terminals. The map
the XML document stream and writes its output input/output operations have been diverted to the
data into the XML output queue. Otherwise it appropriate stubs which provide the map data from
functions exactly as before, retrieving and storing the XML input queue and write the map data onto
records, segments or relations of the database. the XML output queue. In effect the map
processing is replaced by message processing
complemented by the XML conversion.
The problem involved here is the need to have a Reuters News Agency, one for processing stock
second program version for processing XML orders and derivatives at J. B. Morgan and another
documents which is slightly different than the one for stock trading at Pricewaterhouse
original map handling version. If the user intends to Coopers.[17] Peter Aiken, a prophet of XML for
abandon the 3270 terminals and work only on the system integration, reports on a project taking place
web, there is no problem. He maintains only the at the Deutsche Bank in New York.[18] All of these
reengineered version. If, however, the user wants to projects are still in progress, so it is too early for
run the web-based version parallel to the original statistical results.
terminal-based version, then he must maintain two
copies of the same program. That is why it is so In Germany and Austria, where this author works,
important to be able to generate the wrapped only two projects have so far been reported. One
version out of the original version automatically. took place at the German Trade Union Bank – DG
The user makes his changes to the original Bank – using XML to integrate bank trading
terminal-based version and tests it in the standard applications. The architecture developed for that
environment. Then he invokes the tool to create the project is called the Trading Room Integration
XML version. In this manner, only one version Architecture. It connects C++ and JAVA
need be maintained..[16] applications with existing COBOL programs. The
frontend components use XSLT to display and
Experiences with XML-based System accept the user interfaces and XML to transfer the
contents via a CORBA type communication
Integration
network. The first applications are already in
operation.[19]
The introduction of XML to traditional data
processing enterprises in the old economy has
The other project was at the Deutsche Bauspar AG
actually just started, so there have been little
and was reported on in a previous paper. The goal
experiences reported as of yet. Even in the U.S.A.,
of this project was to connect JAVA applets
the world leader in information technology, only a
running at local savings and loan offices with the
handfull of companies have actually started using
central host computer in Frankfurt. The web page
XML as a means of integrating their enterprise
contents were converted to XML documents which
applications. This is probably due to the fact that
were sent via IBM’ s MQ-Series to the host where
the technical environments to support such an
they were converted to COBOL structures by an
XML-based system integration, environments such
XMLCOBOL tool. The pilot project delivered the
as Enterprise JavaBeans, BizTalk and WebSphere,
proof of concept. The follow up project is now
are not yet ripe enough for full scale production.
underway.[20]
[1] Warren, Jan: “The Renaissance of Legacy Distributed System”, Proc. of CSMR-2000, IEEE
Systems”, Springer Verlag, London, 1999, p. 5 Computer Society Press, Zürich, March 2000,
[2] Schricker, D.: “COBOL for the Next Millenium”, p. 183 to 188
IEEE Software, March 2000, p. 48 to 52 [14] Sellnik, A./Sneed, H./Verhoef, C.: “Restructuring
[3] Kebschull, V./Spruth, W.: “Kommerzielle of COBOL/CICS Legacy Systems”, Proc. of
Großrechner als Ausbildungsaufgabe an CSMR-1999, IEEE Computer Society Press,
Universitäten und Fachhochschulen”, Informatik Amsterdam, March 1999, p. 72 to 82
Spektrum, Band 24, Heft 3, June 2001, p. 140 to [15] Westphal, R.: “Strong Tagging – Der Ausweg aus
143 der Interface-Versionshölle”, Object-Spectrum,
[4] IBM: “A Survey of object-oriented Technology Nr. 4, July 2000, p. 24 to 29
on MVS/ESA”, IBM Red Book Doc. No. GG24- [16] Sneed. H.: “Accessing Legacy Mainframe
2505, Pougikeepsie, N.Y., Feb. 1995 Applications via the Internet”, Proc. of
[5] Israel, B.-S./Gish, J./Robinson, W.: “An Reengineering Forum (ed. Chikofsky, E.),
Integrated Network Component Architecture”, Zürich, March 2000, p. 34 to 46
IEEE Software, Sept. 1998, p. 79 to 85 [17] Estes, D.: “Legacy.NET”, Cutter IT Journal,
[6] Harmon, P.: “XML – Solving Business Vol. 14, No. 1, p. 35 to 42
Problems”, Cutter Consortium, Arlington, Mass., [18] Aiken, P./Yates, M.: “Novel Approaches to Large
2001, p. 5 to 25 Scale Systems Reengineering”, Proc. of
[7] Standish Group: “CHAOS – The Cost of IT Reengineering Forum (ed. Chikofsky, E.),
Project Failures”, in PC-Week, Nr. 16, Jan. 1995 Zürich, March 2000, p. 16 to 30
[8] Sneed, H.: “Risks involved in Reengineering [19] Weitzel, T./Harder, T./Buxmann, P.: “Electronic
th
Projects”, Proc. of 6 WCRE, IEEE Computer Business and EDI with XML”, dpunkt Verlag,
Society Press, Atlanta, Oct. 1999, p. 209 to 211 Heidelberg, 2001,p. 181 to 198
[9] Graham, I./Quin, L.: “XML – Specification [20] Haeckel, A./Gößner, J./Wahl, H.: “Integration of
Guide”, John Wiley & Sons, New York, 1999, Legacy Applications in modern object-oriented
p. 1 to 3 Systems via XML” in Object Spectrum, No. 5,
[10] Mowbray, T./Zahavi, R.: “The Essential Sept. 2000, p. 35 to 40
CORBA” OMG-Series, John Wiley & Sons, [21] Sneed, H.: “Wrapping Legacy COBOL Programs
New York, 1995, p. 35 to 45 behind an XML Interface”, Proc of WCRE 2001,
[11] Hasselbring, W.: “Information System IEEE Computer Society Press, Stuttgart, Oct.
Integration”, Comm. of ACM, Vol. 43, No. 6, 2001
June 2001, p. 33 to 36 [22] Lewis,T.: “Mainframes are dead, Long live
[12] Seligmann, L./Rosenthal, A.: “XML’ s Impact on Mainframes”, IEEE Computer, August, 1999, p.
Databases and Datasharing”, IEEE Computer, 102-104l
June 2001, p. 59 to 66
[13] Sneed, H.: “Generation of Stateless Components
from Procedural Programs for Reuse in a