This blog explores the challenges associated with modernising assembler-based programs in mainframe environments, and our solution to addressing these.
There’s no question that mainframes have been the workhorses of business computing for decades. But whilst legacy mainframe systems have served their purpose in power and stability, they lack in adjusting to newer, elastic forms of IT required to adapt to digital transformation, the Cloud and AI – making methodologies like DevOps incredibly difficult to implement.
Even though organisations can save more than US$30 million a year through modernisation, we acknowledge that the process of giving up on big iron can be a complicated one. One surprise that our customers often come across in transitioning their legacy systems is the presence and amount of code they have written in assembler.
Sometimes called ‘assembly’ or ‘HLASM’, assembler is a low-level programming language in which there is a strong correspondence between the program’s instructions and the architecture’s machine functions. For decades, assembler was often selected because of its remarkably efficient use of system resources. Today, it comes with several challenges for those looking to modernise legacy environments:
- Assembler programs are dependent on the underlying hardware architecture (unlike other mainframe languages like COBOL, FORTRAN and PL/I), and are not supported on distributed hardware platforms.
- Because assembler is byte-oriented, it’s common to come across bit-level instructions and pointers that do not have equivalents in other languages.
- In addition, it is possible to have a single program that can be interpreted in many different ways depending on compile instructions. To account for this phenomenon, one assembler program may evolve into multiple programs in higher-level languages.
The combination of system specificity, instruction intent obscured by byte-orientation, and a general lack of expertise available in the marketplace make correct handling and modernisation of assembler code extremely difficult. It’s key to employ a combination of enterprise-class tools and hardened assembler expertise to reduce the high risk associated with migration. Our assembler modernisation solutions are backed by 35+ years of experience helping global giants like Fiserv and brands across a myriad of industries, and leverage a proven approach including the following process:
1. Assess and design
- The first phase of any assembler modernisation initiative is an Automated Assessment, which reduces the scope of assembler code requiring conversion.
- For assembler environments, special considerations for this phase will include user-defined macros, and code patterns that could easily be refactored to improve maintainability in the target environment.
2. Transform
- Automated database and data migrations are performed, alongside automated application refactoring. In addition, the operational infrastructure of the target environment – be it in the Cloud or on-premises - can be built, and any operational data migration activities are carried out.
3. Test and deploy
- Testing can be another ‘gotcha’ for customers, as they don’t expect it to be so time-intensive. Typically, it accounts for more than half of the time required on the project, as a detailed validation of a migration project is extremely important for success and longevity. We offer a comprehensive Automated Testing solution to speed the testing process and reduce risk and overhead associated with this monumental task.
- Prior to go-live, we refresh the target environment by transforming a final snapshot of the mainframe environment. This accounts for changes that have taken place throughout the modernisation project as part of normal business operations.
4. Support
- We work directly with customer teams to ensure a smooth and error-free transition into production. Part of this includes the co-operative construction and testing of a go-live production cutover plan to reduce the potential risks associated with application deployments.
You can learn more about assembler modernisation, including best practices and common pitfalls, through our white paper, No Assembly Required.