VERANG is an industry leader in automated legacy code conversion. We use parsers, code generators, and target runtime libraries, written completely in-house, to automate the conversion process from legacy code to more modern environments. We primarily migrate to Java and C# but our in-house technology allows for quick adaptation to other target languages. Our automated code parsers and target code generators grant a precise conversion of the original coding logic to a modern environment while retaining that original coding logic as comments in the generated code.
The migrated code is very scalable and one can add application or database server ad infinitum, limited only by the performance of the database. Other operations are equally scalable by virtue of the ability to add more servers. We are quite comfortable deploying across multiple O/S types including LUW (Linux, Unix, Windows).
*All Languages in the table below, unless otherwise stated, are migrated with automated tools and processes
Source Language (code being converted)
Source Languages Migrated with 100% Automated Tools
Source Languages Migrated Manually
1) Assembler – includes HLASM/370 and is only a partially automated migration
2) C# – migrated to Java
3) CLIST – migrated manually
4) Java – migrated only to C#
5) Pathfinder – includes extraction of BPMN (business flows in the code)
6) WinForms – migrated to JSP
Note: These tables show VERANG’s current source and target capabilities. We are however constantly creating and developing new code parsers, generators, and also expanding our target capabilities repertoire. If you do not see your source and/or target language, please contact us regarding your conversion because it is very likely that we find an automated, cost-effective solution for your project.
Source Code Migration Action
Source code of various type is loaded into the correct parser. VERANG’s parsers are full blown compilers for the language involved. The parser creates an Object Model in memory; this object model is used to drive the Code Generator for a specific output language. The resulting code can be compiled and executed without further modification to provide 100% equivalent functionality of the original system.
Converting Batch Jobs (JCL)
We have two ways to execute batch jobs:
1) Migrate JCL to Linux KSH script or Windows bat script
- We provide scripts that are executed before the job starts before and after each step and when the job ends. These scripts can be tailored to instrument the job execution – provide messages indicating status, logging, notification etc.
2) JCL interpreter
- We have a “shell processor” for JCL that provides a JES-like system of queues
- We provide web-based monitoring of the execution of jobs
In both cases, the batch jobs can be executed anywhere in the network. For the JCL interpreter, an “agent” must be installed on each machine that will participate in execution.
For the script mechanism – the scripts are executable from command line, shell or any other mechanism such as Windows scheduler or 3rd party scheduler such as Control-M or CA7.
Our runtime for the migrated application includes the facility to convert JCL “on the fly” to Linux KSH script or Windows bat script. There has to be a daemon that picks up this script and executes it. We provide such a script.
Preserving ORIGINAL code STATEMENTS IN the target CODE
VERANG is able to show the original code statements alongside the target code. This allows the user to better understand the target code and to verify the conversion logic. The original source code statements are included in VERANG’s debugging capabilities. In addition, the performance of the target application can be easily troubleshot since VERANG’s trace files include the performance of each statement and show the SQL of the underlying database access.
Converting From Thick to Thin Clients
As part of the C# to Java migration, VERANG can migrate .NET Windows Forms to Web JSP. Instead of installing the application on each client computer, the client can deploy the application to a single Web Server and let an authorized employee access it with a browser.
VERANG has the ability to install a front-end compiler of a modern coding language so that the end result runs on said coding language. For example, if the rehosting project was Cobol to Cobol, VERANG is able to put a front-end Java compiler so that the end result runs as Java but the Cobol code is retained as the primary language of the application, allowing the client no change to their core system. This front-end compiler is compatible with other target environments if the client decides to rehost again.
Types of Testing we recommend:
- Pre-delivery Tests – these are tests performed by VERANG before delivery of migrated code. For these tests, we require some test cases and test data from the customer
- System Tests – these are tests performed by the customer IT department and will encompass 100% core functionality tests. The procedure will vary from customer to customer but mostly will following existing testing practices for the legacy system
- Regression Tests – tests performed after each delivery cycle to determine if any fixes have broken something else
- User Acceptance Tests (UAT) – tests performed by the end users to verify and certify operation of the system
- Parallel Testing – optional step that seeks to verify operation by requiring simultaneous operation of old and new systems and compares system state (databases etc.) at certain periods for verification. We are neutral on this because it requires a lot of resources from the customer