There a number of potential approaches to meet the technical and business objectives including stock migration, COTS replacement, service enablement of legacy, reengineering and lift and drop. Each has distinct advantages and disadvantages.
Stock migration of code involves translating to a COBOL variant that runs natively on a modern platform. NETCOBOL is a good example. Before and after code base remains similar, but retained problems can include reliance on legacy skills and limited application re-factoring.
Performance can be an issue and I recommend proof of concept if you are migrating high throughput systems. Make sure any use of bespoke compiler technology suits your lock-in requirements. Micro Focus Net Express provides additional .NET and JCA options which are worth considering.
If capital expenditure allows, replacement through COTS package is often attractive. Take a long look at the reality of core, strategic IPR in the code base and with a clinical mind decide whether COTS implementation would de-risk migration and provide a more extensible and functionally rich platform.
Advantages: technology refresh onto desired platform and application suite based on formal analysis of requirements and choice of best of breed solution; ongoing support and development enhancements from COTS supplier. Disadvantages: cost of purchase; training; configuration; implementation timescales and realistic functional fit.
Operational cost often fuels the desire to decommission mainframe technology. If there is some latitude, consider service enabling key business services. I favour this approach as it facilitates application decomposition and highlights key reusable assets. If the mainframe has got to go at all cost, remember that such solutions often have proven security, performance, IO capability and highly reliable uptime.
This will need to be mirrored in the to be architecture. Service enablement provides a low risk / low cost option (no invasive code change or porting). Exposed services can be invoked from new components (written in modern languages). The key disadvantage is reliance on existing platforms which may be too expensive to maintain. If this approach is viable it helps tease out a fairly non-invasive migration roadmap.
Reengineering can be complex and risky. This would typically involve code translation to .NET (VB or C#) or Java. Contrast with a COTS purchase in terms of the total cost of build or buy, as well as the low-risk lift and drop option.
Key advantage: facilitates a pure re-architecture / re-platforming opportunity. Key disadvantage: complex and reliant on significant logical analysis of existing code. If choosing this route my preference is to go through an interim UML model. It is important for the conversion to identify redundant code, as well as separating out business logic.
Emulator technologies facilitate lift and drop. The approach is essentially to port the minimum amount of COBOL code that will be non-compliant under the target operating system.
Advantages: provides an expedited route to migration and decommissioning of the mainframe application; reduced risk as minimal amounts of code base are changed.
Disadvantages: The approach does minimise risk and is a clear choice when immediate mainframe operational cost is the driver. It does not however, solve the application code base issues (assuming that legacy skills are scarce).
Pitfalls to avoid: blind conversion automation, underestimating testing effort, lack of code introspection, over optimism, emotional connection to legacy code and perceived IPR value.
For lift and drop applications also consider Oracle’s Tuxedo. This recent acquisition is an excellent solution and has renewed focus in the Oracle portfolio including a recent Service Component Architecture refit.
Tools that will assist (non-exhaustive list) include technologies from Fujitsu, BluePhoenix, Micro Focus and Relativity. For modelling and application inspections consider IBM Rational, BluePhoenix LogicMiner and Relativity Application Analyzer.
Issues that will also arise will include assembler code migration, much of which is likely to be by-hand, transactional, file and database access code replacement.
Focus on ensuring your end result adds to the view that ;modern applications are those that work’.