There are a lot of legacy systems out there. They continue to be an asset to businesses. However it is hard for these systems to be modified to meet changing business requirements. Most of the budget for these systems is for maintenance. One option to deal with such high costs and limited flexibility is to modernize the system.
Modernization is a term that could mean replacing the legacy system entirely. A smaller scope effort would be to supplement the old system. Either way, you are going want to use some type of open standards as opposed to the usual proprietary ones in the legacy system.
The key to any modernization project is proper planning. You want to keep the old functionality. Costs can be cut by using COTS products in the rewrite. You are also probably going to be doing a lot of rearchitecture during the modernization process.
Modernization can typically require multiple vendors. These include a system integrator and technical vendor. I have seen a lot of money spent and wasted in such modernization projects. Most of the big ones I have witnessed were failures. The large scope and lack of subject matter knowledge often doom such projects. The legacy developers do not have a vested interest in a replacement system succeeding unless they are the ones coding the new system. I myself have been marginally involved in some big redesigns that were to eliminate the system I maintained. For better or for worse, those projects have all failed and I continue to support an old legacy system for my customer.