SoftwareMining provides automated tools for converting IBM IMS COBOL applications into maintainable Java, with optional C# generation. The non-AI, rule-based translation process supports IMS database access, transaction processing and screen handling.
IMS applications use IBM-specific interfaces for database access through IMS DB and transaction and message processing through IMS TM, traditionally known as IMS DC.
IMS COBOL programs interact with IMS databases through DL/I calls such as:
CALL 'CBLTDLI' USING FUNC ...
or
EXEC DLI 'FUNC' ...
SoftwareMining's IMS COBOL modernization tools support DL/I database calls, PCB definitions, SSA processing, message queues, transaction processing and MFS screen handling. The translation process converts COBOL business logic and IMS-dependent operations into maintainable Java while preserving the behaviour of the original application.
During analysis, the SoftwareMining COBOL-to-Java Translator automatically recognises IMS DB and IMS DC statements, identifying database operations, transaction processing, message handling, and screen interactions. This semantic understanding enables accurate, non-AI, rule-based tools translation into modern Java or C# while preserving the application's original behaviour.
| IMS Feature | Modernized Java / C# Implementation | Comments |
|---|---|---|
| IMS DB (DL/I) | Java/C# data-access layer | DL/I database operations are translated into equivalent data-access code while preserving the application's business logic and processing sequence. |
| PCB Definitions | Generated data-access classes | Program Communication Blocks are represented by generated classes that encapsulate database access and application metadata. |
| SSA Processing | Structured query generation | Segment Search Arguments are translated into equivalent database selection logic while preserving application behaviour. |
| IMS DC Transactions | Java/C# transaction processing | Transaction flow, conversational state and business processing are preserved within the translated application architecture. |
| Message Queues | Application messaging framework | Input and output message handling is modernized while maintaining the application's original processing logic. |
| MFS Screen Definitions | HTML browser interface | IMS screen layouts can be modernized into responsive web interfaces while preserving application workflow and validation. |
| Database Storage | Retain IMS or migrate to SQL | Applications can continue using IMS where appropriate, or migrate to relational databases as part of the modernization strategy. |
| Business Logic | Rule-based generated Java, with optional C# | COBOL business rules, calculations and processing logic are converted using predefined, repeatable translation rules and validated against the original application. |
| Deployment | Java application server or ASP.NET | The translated application can be deployed on modern server infrastructure, whether on-premises or in the cloud. |
COBOL programs access IMS databases using CALL 'CBLTDLI' statements.
Because of the IMS design, much of the critical information is only available at runtime and encoded in runtime parameters,
making it difficult for developers to understand a program's logic through simple visual inspection.
| IMS DL/I Call | Purpose | Modernized Implementation |
|---|---|---|
| GU | Get Unique | Translated into equivalent keyed database retrieval. |
| GN | Get Next | Preserves sequential database navigation. |
| GNP | Get Next Within Parent | Maintains hierarchical parent-child traversal. |
| ISRT | Insert Segment | Translated into equivalent insert operations. |
| REPL | Replace Segment | Translated into equivalent update operations. |
| DLET | Delete Segment | Translated into equivalent delete operations. |
SoftwareMining utilities convert IMS hierarchical structures, defined in DBDGEN macros, into SQL tables while maintaining all parent-child relationships. The tool also generates a set of Object-Relational data access classes that mirror the same hierarchy. For example, opening a PARENT class (segment) automatically opens all CHILD classes (segments) linked by the referenced PCB.
Using the information defined in program-specific PCBs, the system dynamically builds the relationships required by each program. This allows the translated Java application to determine, at runtime, which SQL tables and relationships should be accessed.
An IMS call emulation layer operates above the Object-Relational classes and SQL tables to preserve original IMS DLI behavior.
For instance, the first GN (Get Next) call returns the PARENT data, while the next GN call retrieves data from the CHILD segments.
One major advantage of SoftwareMining's architecture is its ability to report, at runtime, the exact SQL statements generated and executed for each IMS DB call. This transparency allows developers to see which database actions are performed and, in later project phases, replace them with optimized SQL for improved performance and maintainability.
This approach enables a two-phase modernization strategy:
IMS-DC (CBLTDLI) statements to improve readability and performance.IMS DC is used in online applications to manage screens defined in MFS format, typically displayed on IBM 3270 terminals. SoftwareMining's modernization approach converts MFS screen definitions into JSP or XHTML (HTML) formats, making them accessible through standard web browsers.
The initial web interface replicates the look and behavior of the original 3270 screens. Over time, it can be enhanced with modern UI features such as checkboxes, radio buttons, and drop-down lists to improve usability and align with current web standards.
Video starts at slide: HTML Screen Handling