Legacy Evolution to SOA : Motivation
Common Concerns and Drivers for Modernization of Legacy Applications
Modernization of legacy systems results in a variety of different projects depending on technologies used, the business they support, and new technologies and effort needed. If all of the modernization projects are taken into consideration, then common concerns and drivers for modernization may be identified.
Business concerns include:
- Costs associated with maintaining and enhancing the legacy applications are escalating.
- There is slow time-to-market for new products because of the many changes in applications which take a long time.
- It is unclear just how one or more legacy applications directly relate to business problems and/or solutions.
- It is unknown what the complete set of dependencies is between all the systems, resulting in a high risk of downtime when implementing changes, which can lead to business (and sometimes reputation) loss.
- No sufficient business process metrics and analytics from legacy systems.
- Because of the abovementioned concerns, the technology deployment of legacy systems needs a risk management approach and mitigation, which is resource-intensive and creates tension.
These concerns are not meant to diminish the value of the systems they represent. Most banks, airlines, credit card companies, etc. still rely on these systems for their core business and processes. Mainframes are proven transaction systems, processing a large amount of data. What these concerns indicate is that maintenance costs are getting higher and higher, control over the application landscape and its dependencies is difficult, and the business needs to change faster than IT can support.
Functional concerns include:
- Applications are developed for silo domains or silo functions, while there is a drive to integrate functionality in enterprise-wide business processes.
- Data is not easily shared.
- Applications (and so functionality) are not easily re-usable. This also limits the support of new business concepts or functionalities.
- The same functionality may have been implemented in more than one application.
- Data is shared between applications mostly through replication (and therefore stored in more than one location).
- There is high risk of data inconsistency since one data entity can be modified in more than one application.
- There is no automation of business processes other than, for example, database triggers, hard-coded calls, etc.
- There is little or no documentation of business-critical systems available.
- There are considerations for product lifecycle (i.e., when does the product reach its end of serviceable life?).
Usability concerns include:
- There is no Single-Sign-On (SSO) support. The user has to log in to different applications, sometimes with different credentials, in order to participate in a business process.
- There is poor usability due to basic screens.
- There is inability to integrate with new user technologies (for example, social media).
- There is a need to stay current with technologies to provide intuitive user interactions.
Technical concerns include:
- Applications are tightly-coupled (integration is “hard-coded”).
- Data is sometimes not stored in databases but in files instead. This makes it more difficult to both access information in the file structure and to scale the repository to support re-use in a service-oriented environment.
- Embedded logic (e.g., business rules, security, integration logic) in applications limits re-usability and increases difficulty of maintenance.
- Integrations are often point-to-point integration which makes it difficult to re-use.
- Old technology requires constant upgrading, but upgrading may no longer be possible due to deprecated technology (i.e., the version is no longer supported by the vendor) or worse, the vendor has ceased to exist.
- Application source code language may not support modern communication standards and protocols, therefore limits the ability for legacy applications to enhance and leverage.
- The Application Architecture itself is “out-of-date”; there is no component-based design for interoperability.
- Systems configurations are not easy to change; hence it impacts the business utility.
- There is an increase in the number of incidents and application downtime as a result of several of the listed concerns.