While Big Data, the cloud and mobile access grab the lion’s share of IT market attention from pundits and trade reporters, many Fortune 500 corporations and federal and state agencies still depend on legacy business applications written in COBOL, Fortran or other languages that date back more than 50 years.
This ancient code continues to dependably manage vital business functions and processes. The applications are efficient, stable and dependable, which is why CIOs and IT managers have been reluctant to replace them.
(Related: Java SE 8 is coming March 18; see what’s inside)
However, a range of new factors is forcing organizations to modernize legacy systems:
• hardware running legacy programs becoming expensive to operate and maintain as replacement parts become harder to find
• a growing shortage of software engineers proficient in legacy software languages
• the emergence of Big Data analytics, driving demand to integrate legacy and new data to cross-reference and analyze business performance metrics
• increasing demand to integrate systems with modern Web and mobile
• pressure to shift storage and processing resources to the cloud
Migration strategies that define the development strategy
The software platform for the modernization project affects the entire migration process. For example, one preferred practice to reduce risk during data migration is to use a “parallel run” migration strategy, which enables the old system and new system to operate in tandem. That process offers the option of a rollback strategy in case the deployment runs into hiccups to ensure business operations can continue.
The Java programming language, famous for its “write once, run anywhere” mantra, provides a platform-agnostic operating architecture that can bridge the gap between legacy environments like COBOL and Fortran, and modern software environments that are being used for virtualized server instances, cloud-based deployments and mobile environments. Java’s platform-agnostic qualities have made it an attractive environment for legacy software modernization projects for more than a decade.
The process begins by using compilers that work in COBOL or Fortran environments but deliver output in Java code. Several software vendors offer this capability.
With Java, developers can replace the core application component with a Java component in the same environment. Then the Java component can be installed on modern hardware, and a process can be implemented to migrate data and new components to the new hardware platform, or to a virtualized or cloud environment.
This approach can be completed in phases to limit the migration risks to the latest migration phase. During this phased migration, the actual data is shared by both Java and the original COBOL components to provide an escape route to the old platform if necessary.
One challenge for COBOL developers using Java as a migration platform has been data access. Java is by nature a SQL-oriented language. The most common data integration connector, JDBC, is a variation of the common ODBC drivers, which allow external applications to run SQL queries against a relational database.
COBOL application data is usually stored in non-SQL formats, such as flat files or index sequential files, creating a problem. Recently, technologies have emerged that allow simultaneous mapping of COBOL data files with SQL tables. Accomplished with a database approach, all data files are migrated to a relational database that provides low-level APIs for the COBOL applications, preserving data integrity and performance while also enabling the Java applications to query the same data via SQL.
Combining Java and dynamic mapping databases to handle the data makes the phasing approach feasible. With this approach, legacy data and applications can be migrated first to a server or virtualized environment, and ultimately to a private or public cloud.
Coping with modernization complexity
Before choosing Java as the modernization platform, it’s critical to evaluate all options, and communicate the plan to the business executives and employees who will be affected. Even when using Java components to initiate a migration in parallel with legacy software components, it would be overly optimistic to anticipate a seamless migration.
As a developer, it is critical to weigh all of the pros and cons of the migration strategy and direction you decide to take.
Regardless of which approach is taken, modernization projects are rarely seamless, because they involve a high degree of complexity, a factor that is frequently underestimated. So be ready for anything as you develop a system that is essential for operations in the 21st century.
Evaldo Horn de Oliveira is director of business development at FairCom Corp.