Easily Modernize Applications to Stay Competitive
Joseph Gulla focuses on application modernization tactics that don’t require a complete replacement of the application either by rewrite or replacement by a commercial off-the-shelf package.
By Joseph Gulla01/09/2017
This is the second of a two-part series on modernization of legacy systems. The specific focus of this article is application modernization tactics that don’t require a complete replacement of the application either by rewrite or replacement by a commercial off-the-shelf package.
Since companies maintain an application when business needs change, doesn’t it makes sense to modernize them in the same context? Plan ongoing modernization instead of confronting the risk of a complete application rewrite after years of ignoring impactful technology change. This requires a more strategic approach in planning but important applications merit this level of focus.
It’s useful to discuss modernization by exploring broad areas like user interface and data modernization. In each of these domains, there are many examples worth exploring. Some areas represent undiscovered opportunities like making fuller use of middleware enhancements that are made by IBM and other software suppliers. Many companies supporting applications lack a strong linkage between application development and systems maintenance. Because of this, new releases may get installed without application developers fully realizing the opportunity to make use of new programming language and middleware functionality.
User Interface Modernization
The user interface has changed from monochrome non-programmable displays to web interfaces and now to mobile devices. Many ways have been developed to use long-standing outputs in new ways. Two examples of interface modernization involving outputs originally targeted for 3270 devices include:
- The CICS 3270 Bridge, a tool used to web-enable a web-unaware legacy IBM CICS application. This is a smart and supported way to get 3270 applications on the web.
- IBM Rational Host Access Transformation Services, which makes it possible to display outputs from CICS applications on a smartphone with no changes required to the existing application. This is a low-risk approach that increases user productivity and satisfaction while enabling the re-use of proven business logic in new mobile applications.
Over time, file storage has changed from file access using access methods to databases supported by an increasingly diverse set of software and hardware functionality. Replacing master files with database technology makes it possible to immediately plug into advanced capabilities.
The experts agree that you shouldn’t embark on a migration like VSAM to DB2 unless you have a business motivation. Many companies have a general rule that important data is kept in databases and not sequential or indexed files. They do this because databases have data dictionaries that make the data easier to use. Also, they do this because they have a strong desire to support ad hoc queries of the data. Ad hoc reporting is easier to do with data in databases, as you don’t need to write programs, just a simple SQL query.
There are other motivations to use a database management system (DBMS). Recovery of data in a database is more adaptable and powerful because of the features of DBMS backup and restores utilities. Also, concurrent access to data is more flexible with databases than conventional files opening up different ways to simultaneous access data making it more available for business use.
There are many changes that can be used to modernize the application logic itself including updating the existing programming language to use modern features, which makes it possible to enhance performance and maintainability. Modern COBOL has many new features that may not be fully utilized.
Today, the IBM implementation of COBOL has the compelling features of running under multiple OSes, including supporting the Eclipse Integrated Development Environment. COBOL is a vibrant and changing language that renews itself from standard to standard, software release to release. It’s a language that’s been internally modernized over the decades and IBM continues to develop enhancements and new functionality.
Service oriented architecture (SOA) is another example of function modernization. SOA—a style of computer software that makes it possible to share processes and data as services—is a discrete unit of functionality that can be accessed remotely. Microservices is another architectural style with a services focus that is aligned with DevOps and has found a home in cloud implementations.
Another example of function modernization is APIs that make it possible to generate code that can send outputs to mobile devices, cloud services and open standard interfaces. Another example of function modernization is business rules software that makes it possible to put application business rules in repositories where they can be accessed by application programs. This saves application maintenance because the rules can be administered independently of the program.
Companies are making changes with the methods they use to maintain applications and to develop new ones. Some organizations use legacy methods because they still work due to the composition of the team and the nature of the application. Others have looked for new ways to change and develop because of new challenges and they have found DevOps and similar methods.
DevOps is named for development and operations, two phases associated with application creation and support. DevOps has two main goals: improved business agility and better improve alignment of IT with the company. Business agility is supported by DevOps through techniques to make more frequent software deployments possible whereas IT alignment is supported because members of both development and operations are supporting the same goals using the same approach and a common toolset.
Applications commonly rely on a high-function middleware environment like a DBMS and a transaction monitor. There are a few key products (e.g., DB2 and CICS) that have been supported for decades and have undergone hundreds of millions of dollars worth of enhancements and major rewrites.
As new generations of developers use DB2, they immediately take advantage of the enormous functionality that has been added through the decades. Today, DB2 is ideal for developers because it has APIs for commonly used languages like REXX, PL/I, COBOL, RPG, Fortran, C++, C, Delphi, .NET CLI, Java, Python, Perl, PHP, Ruby and others. DB2 also works with Eclipse and Visual Studio integrated development environments. These are important middleware enhancements that should be exploited to the fullest by application developers.
Like DB2, CICS has grown over the decades and companies continue to use CICS because IBM constantly enhances it through internal modernization. CICS provides value and stability that’s needed for business-critical applications. The latest release of CICS has new and enhanced capabilities that are delivered in the areas of service agility with new support for Java and the WebSphere Liberty profile. It also provides operational efficiency including performance optimizations, enhanced metrics and additional security and cloud and DevOps support to automate CICS deployments. These areas contain important middleware enhancements that should be exploited to the fullest by application developers.
Is That It?
This article focused on modernization techniques for the application that are based on the idea that the system of record should be upgraded over time avoiding a major rewrite or replacement with a commercial off-the-shelf application. There are many ways this can be supported using the modernization approaches described in this article. There is more that can be done to modernize but these techniques were discussed as a firm starting point.