There are different approaches to moving your existing applications to managed code.
Starting from scratch and rewriting existing procedural applications to managed COBOL is not recommended as it might be time-consuming and costly (and would mean more testing and more risk).
You can modernize your existing application without having to rewrite it. This is a safer approach and with it you preserve the existing procedural module that works well and create new managed parts that will reuse it. You have the flexibility of choosing the front-end application that will interact with the procedural module – a Web interface to access the functionality online, or a modern user interface to access the functionality on a tablet screen. As a result, your application will include a mixture of procedural and of Object-Oriented (OO) COBOL.
You could:
- Use a managed COBOL wrapper class - you can preserve your procedural module and write a wrapper class in managed COBOL around it. Other managed languages can communicate directly with the wrapper class using OO syntax, The wrapper class, in turn, communicates with the procedural module.
- Use ILSMARTLINKAGE - you can recompile the existing procedural code to managed code using the ILSMARTLINKAGE Compiler directive which exposes the linkage section data and creates the interfaces that other managed languages can interact with.
The following model shows what the architecture of your modernized application might look like:
With this model you:
- Preserve the business logic - your existing procedural application uses data IO modules to access the data provided as data files or Relational Database Management System (RDBMS). You keep the business logic unchanged.
- Use a new managed code front-end - you create an OO COBOL wrapper around the business logic or use Run Units to allow the front-end to talk to the business logic. You can use managed languages such as managed COBOL, Java, or C# to write the front-end application (for example, a User Interface or a Web service).