Modernizing legacy applications is a top priority for many enterprise IT organizations. Web-enabled application...
modernization promises to lower maintenance costs while increasing the availability and capability of business critical applications. But legacy modernization projects must be well thought out in order to avoid costly delays in production. An iterative approach is generally preferred, but may not be practical with some monolithic legacy applications.
When an IT organization engages in a legacy modernization project, it’s important to focus more on the specific application involved than on the hardware that it happens to run on. According to Forrester Analyst Phil Murphy, the complexity of the language in which a monolithic application was written is often a more pertinent issue than the hardware on which it's running.
Murphy asked us to envision a 15 year old monolithic application written in C, straddling two mainframes. This application has world-class scale, processes incredibly large volumes of transactions and has very low downtime. It is a business-critical core application. Representatives on the business side will likely see advantages to moving the application over to blade servers and connecting it with external data sources via the Web.
Modernizing this monolithic application will not be easy – not because it lives on the mainframe, but because it is a huge, monolithic application. Murphy explains that such applications cannot be consumed a service at a time or be easily joined with services from other organizations. However, some even older legacy applications written in Cobol may already be loosely coupled in nature and therefore easier to update in an iterative fashion.
The important aspects to consider for a legacy modernization project, in Murphy's opinion, are the existing legacy application, how it was written, how it scales and what capabilities you want to add by integrating it with other systems. Modernizing a legacy application without some kind of flexible interface (such as an integration engine) is difficult, but there are ways to make it work. Murphy advises us to focus on keeping the system loosely coupled. The tightly coupled monolithic way of building applications will need to be replaced by new techniques.