Last post in a four-part series.

Read the previous parts ->

Program adaptation

The first three posts of this series described the design of the new database and the migration of data. This last post describes how the applications will be modified to allow them to access the new database instead of the old IMS database.

This program adaptation must meet two constraints :

  • the programs logic must not be changed : that is, they must provide the same results as before, and those responsible for their maintenance and evolution must be able to "recognize" their programs.
  • secondly, this transformation must be fully automatic.

Rever has developed wrappers (data access modules) which will simulate the old IMS /DLI database.


The wrappers

Wrappers are programs that simulate the old (IMS /DLI) data management system using the new (SQL) system.

Wrappers support structure conversions. For example, father-son links that were represented by pointers (hidden to the developer) in IMS are now referential constraints (foreign key). The segments (io-area) are reconstructed from the data contained in the different columns (and sometimes different tables), not to mention the format conversions (for example, the numerals can be represented in different ways in COBOL – binary, packed…).

Wrappers also support language conversions. For example, the currency management and segment order are like in IMS. This means that the segments must be sorted in the same way as with IMS during the execution of a GN (Get Next) or of a GNP (Get Next within Parent). Language conversion also involves producing the same error codes as in IMS. Error codes are sometimes the simple translation of a SQL (SQLCODE) error code, but may also be specific to IMS, such as the verification that the « proc option » of the PSB allows the program to modify the data.

Wrappers generation

True to its philosophy, Rever has developed a wrapper generator. It will generate code based on the model of the IMS database, on the model of the new database and the mapping that exists between the two.

The automation of the wrapper generation is particularly important since it makes it possible to easily regenerate the wrappers after each evolution of the model of one of the two databases.

Wrappers have been tested in different projects and have been optimized in terms of performance (intelligent management of queries and cursors) and in terms of code readability.

Programs transformation

Wrappers are built in such a way that program transformation is minimized. To do this, the wrappers have the same API as « CBLTDLI » of DLI. If programs use calls to « CBLTDLI », no transformation is required.

Abbreviations :

  • IMS = Information Management System
  • IMS/DLI = Data Language Interface, the language system used to access IMS databases
  • Cobol = Common Business-Oriented Language
  • PSB = Program Specification Block
  • API = Application Programming Interface

Find out more ? Rever DB-Main is a data-modeling and data-architecture tool. Historically linked to the database engineering lab of the UNamurRever continues to improve the software in order to help developers and analysts in most data engineering processes.

migration white paper banner



Jean Henrard