Semantic Designs provides tools and services to help migrate Mainframe legacy software systems to new languages such as Java and C# and technologies such as web and SQL. (Here you can see an example of COBOL to Java or COBOL to C#
Migrating Large Software Applications Needs Automation
The need to migrate mainframe software is often motivated by a mixture of motives, including
- The high cost of operating the mainframe
- Shrinking pool of IT personnell that understand the mainframe system languages and structure
- Need for faster application evolution in response to changing requirements by use of more modern software engineering methods
- The need to integrate the application and its data more effectively with the balance of the organization
Yet most of the legacy software performs an extremely valuable function which must not be disturbed by a migration. Hand-migrating large applications by recoding from scratch causes huge management overheads if the migration team attempts to re-validate the requirements with management. Hand-migrating by translating line for line introduces errors by damaging implicit business rules, and suffers from scope creep. In addition, there is a continual war between the application maintenance staff, which must keep the application running during the migration process, and the migration staff, which does not want to see any change during the lengthy migration process. As a consequence, many manual migrations fail or run significantly over time and cost budgets. Offshore hand-migration suffers the same problems as well as communication and coordination problems.
Automated migration to preserve functionality and control time and costs is a must for most mainframe migrations. An automated migration also allows the application staff to continue upgrading the application during the window in which the migration tool is being configured and tested; the migration tool is simply applied the legacy system at the point when the migration tool is ready.
Languages to Migrate
Mainframe Software is often large, complex, and coded in many legacy languages, including COBOL, JCL, Natural, Ideal, PL/1, HLASM (Assembler), etc. Often there are multiple dialects of each language across the application system. The source code of each component of the application often needs to be migrated to a modern language such as Java with JSP or C# with ASPX. The mapping of source files is often not one to one, and is dependent on a number of target environment properties unique to each customer's desired target configuration
Databases to Migrate
In addition, there are a variety of data bases, including flat files, CODASYL networks, heirarchical files (IBM IMS and VSAM, Unisys DMSII, Computer Associates DataComm,...) and legacy relational databases (Model 204, Unisys DMS 2200 and RDMS, Adabas, ...). Often the legacy data representation must be changed to a modern relational model using Oracle or Microsoft SQL, necessitating translation of the legacy data schemas, and modification of the application source code to access the reshaped data via completely different APIs (SQL statements, ODBC calls, customer-specified data layers). The data itself must be also be moved and reshaped to match the new representation.
Infrastructure to Migrate
Finally, mainframe systems often have considerable other infrastructure that must be translated to equivalent functionality on the target system. Transaction management (IBM CICS or UNISYS TIP), Screen formats, external interfaces, job scheduling, all have to mapped to target system technologies, which are often quite different (J2EE, .NET, ...)
Custom Automated Translation Tools Per Migration
The variety of languages, database and infrastructure technologies going into the migration, and the customer's selection of a combination of languages, databases and infrastructure technologies coming out, virtually ensures that each migration must be custom for that particular customer. The implications are that migration tools must be extremely flexible in accepting source language technologies, and configurable to the desired target technologies on demand.
Semantic Designs provides translation technology and services to achieve mainframe migrations, based on SD's generalized compiler technology, The DMS Software Reengineering Toolkit. Using such generalized technology allows SD to amortize the engineering cost of building high quality translators over many applications, and achieve high 90s percentage in conversion. DMS can handle multiple source and target languages, and scales to handle systems with millions of lines of code. It is configured to match the migration details unique to the customer, rather than trying to bend the customer's situation to the abilities of a hardwired-translation tool.
Additional leverage is provided by DMS through SD's library of front and back ends for many of the languages required in mainframe migrations:
- Legacy Languages: COBOL, JCL, Natural, PL/I, SQL
Other 4GL languages or preprocessor-driven applications can be defined as a custom language to DMS.
Of special interest in most mainframe modernizations tasks is COBOL Migration.
Many mainframe systems also have HALSM (mainframe assembler) to modernize. See Mainframe Assembler Migration.
There are many providers of semi-automated tools that provide modest conversion percentages. In essence, such tools convert the part of the code that is "easy" to convert, forcing manual intervention for bulk of the difficult part, leading to all the manual migration problems listed above.
Assessment and Planning
Any large migration requires careful planning and support. Semantic Designs can
- define an effective, economical porting plan which minimizes risk
- find/remove redundant code before conversion to minimize total conversion costs
- carry out automated assessments of a source code base for troublesome constructs
- design reliable translations for each source construct or API call
- provide tools to help determine how well the converted application has been tested.
To discuss mainframe migrations in more detail, contact us. Details about timeframe, the set of legacy programming languages, SLOC for each type, other legacy technologies, and desired modern target system are extremely helpful.