Thursday 2 December 2010

CONVERTING PROGRAMS FROM MAINFRAME TO UNIX

This will be series of simple notes on the conversion of legacy mainframe software systems to JAVA/UNIX systems. The target audience is IT management in the beginning but later on there will be detailed information to the point of Software Requirements Doc-SRD with absolute references to the Detailed Design Doc-DDD.

I have spent the last two years of my life working on a conversion project for Royal Saudi Naval Airforce using an American software company’s conversion product. While I will pay due attention not to infringe the rights of these it is also my right to use this experience to sustain my family’s well-being.

Program conversion of a legacy mainframe system is composed of many phases and parts:
1- The conversion of the programming language code – for example COBOL codes have to be converted to JAVA.
a. This requires a GRAMMAR definition for the legacy programming language.
b. A parser – ex. JavaCC
c. A converter which will convert the parser output to the target language.
d. Support infrastructure that will remedy the structural differences between the source and the target language - ex. PIC data type does not exist in JAVA.

2- The conversion of the data
a. The data in the database have to be exported/imported and converted if necessary
b. The database system itself has to be changed or a UNIX version of the same system must be installed.
c. The access to the DB table fields has to be automated via a custom system or Hybernate.

3- Conversion of legacy programs does not mean only the two items above, it also means the change of the system that underlies the online and batch sections of the software.
a. Transaction processing mechanism of the Online system – ex. CICS
b. Screen MAP processing mechanism
c. The access to the values of screen fields have to be automated via a custom system or STRUTS.
d. BATCH processing mechanism.
e. A system library which includes all the programs that support the FRAMEWORK.

4- Actual conversion
a. Conversion of MAPs to JSPs.
b. Conversion of Online-CICS programs to JAVA-JSP programs.
c. Conversion of BATCH JCL JOBs to UNIX shell scripts.
d. Conversion of BATCH programs to JAVA.