Simple, Safe & Effective COBOL to Java / C#

CICS COBOL to Java Migration

IBM dialect of COBOL sticks fairly closely to COBOL 74/85 Standards.
However, IBM COBOL applications often utilise IBM Libraries for data and screen access.
SoftwareMining's COBOL to Java / C# Conversion Tool supports the most widely elements of these libraries.

CICS COBOL to Java / C# Conversion Overview

CICS is a set of libraries for control of Transaction Processing. CICS provides libraries for reading and writing of records, screens handling, queue management and other functionality suited to large multi-user transaction processing systems. CICS applications tend to adapt an event-driven architecture - where screens "sent" to and "received" from terminals.
this differs from typical COBOL application where screen communication is synchronous - and application pauses in midst processing - waiting for the 'RETURN' key to be pressed. Thus CICS Applications tend to be easily re-architecture into JAVA or C#.

Pseudo-conversational CICS to Java or C# code running on Application Server

CICS Online applications which have many concurrent users are usually designed in a pseudo-conversational architecture. This design reduces the processor and storage requirements. Such applications are ideal for migration to a Session based Java/C# code which implement similar technologies, and allow implementation of new application within a cloud based architecture.

Migration of BMS Screens to HTML

BMS is used for Screen Definitions in IBM CICS applications.
SoftwareMining's Conversion tool translates the BMS Screens to variety of options in including JSP, ASP and XML. These are used at runtime to generate HTML. The main objective of the conversion process is to:
  • Provide identical functionality, and look and feel. This reduces the amount of testing which need to be performed

  • Make application maintenance easy for the developers - reduce maintenance overheads. This is achieved by translation of cryptic CICS statements something A LOT more legible and maintainable.
    for more information please see From cryptic COBOL/CICS/BMS to maintainable Java/C#.

  • Provide an upgrade path. SoftwareMining provides Screen Enhancement utilities for retro-fitting new look and feel (menus, drop-downs, ...). The translated code also supports a plug-and-play type architecture where new JSP / ASP screens can simply replace the character-based HTML screens without any alterations to the java code.

Reading/Writing Indexed Files (EXEC CICS READ WRITE REWRITE)

CICS READ / WRITE statements use a very generic & high level approach to accessing data files. For example in a WRITE statement, same as in VSAM file access, the Structures field information is used to format the record, and used to write a series of characters to the file. Unlike database tables the file does not contain any column information, and can be read into any other compatible structure.
In contrast - the translation will convert record definitions from CICS /VSAM Files to a Data-Access Objects (DAO) with Object-Relational design. The DAO's will have the following characteristics:
  • A database tables will be created for each DAO. The table will contain a COLUMN for each of the original COBOL fields
  • DAO's will also have all the fields from the original FD (e.g. class EMPLOYEE contains many field: Age, Role, Salary, ...).
  • Operations are performed on objects - e.g.
  • The DAO will automatically generate the required SQL at runtime. The SQL is not hard coded into DAOs.

The generated Data-Access-Objects can be easily re-generated to access existing VSAM data-files instead of SQL tables. There are also mechanisms for communication between java and COBOL. This allows an gradual and incremental migration path. Ie the code base is gradually moved from COBOL to Java in first step, and in 2nd step the data-files are gradually moved from VSAM to SQL.
Hence a big bang migration approach can be avoided.

Merging VSAM files with CICS Online Files.

CICS Systems often use the KSDS data files used by the batch programs. I.e. both CICS and Batch sub-system will need to access the same database tables.
However, in COBOL the CICS and Batch systems would have defined different definitions for their data structure. The manual inspection and consolidation of such issues can be lengthy and error prone. It is paramount that the translation system be able to identify the identical structures - and to use the same database tables for both systems. Automatic identification and conflict-resolution of these definitions may be one of the most important aspect of a successful migration projects.

Other CICS Libraries

CICS framework supports many other functionality - from queue management (READQ / WRITEQ) to routeing output to printers.
Where possible SoftwareMining translates COBOL CICS programs to native Java or C# patterns. For example, reading/writing QUEUES (READQ and WRITEQ) is implemented to a standard libraries (slightly augmented HasMaps, Dictionaries or persistent DB records) in the target language. This approach simplifies the architecture of the generated Java code and eases the future maintenance of the system.

Related Papers

IBM CICS COBOL to Java/C# Migration Project Phases

The Migration of COBOL applications to Java or C# involves:
  • Asset Management: Identify all the artefacts required for translation .
  • Translate to target language
  • Database and Data Migration
  • Migrate JCL
  • Create and Populate of Test Database
  • System acceptance testing
  • User Acceptance Testing
  • (Optional): Other Improvements: Screen Redesign, SOA Integration, Cloud Deployments, Coding Improvements and clean up

Comparing COBOL to translated code

Comparison of Converted code: COBOL to Java
Comparison of Converted code: COBOL to C#
COBOL to Java / C# Conversion Tool - Download Trial (Release 2017-04-21)

Related White Papers

References: IBM CICS COBOL

Pseudo Conversational Transactions (Wiki)
Pseudo Conversational Transactions (IBM)
SoftwareMining on Wikipedia


  © 2017, SoftwareMining Technologies. All Rights Reserved. "SoftwareMining Technologies" is a trademark of Software Modernization Technologies Ltd (UK). Software Modernization Technologies Ltd. Registered in England company no: 7300248. Reg Offices: 8b Accommodation Road, London NW11 8ED, United Kingdom.