Searcharxiv⌕ Search

arXiv subjects

Keerthi Narayan Raghunath

Publications and source records attributed to Keerthi Narayan Raghunath.

2 recordsLinked to original sources

Enabling Communication via APIs for Mainframe Applications

Mainframe systems continue to support critical applications across industries such as banking, retail, and healthcare. Exposing their functionality through Application Programming Interfaces (APIs) enables reuse and development of new applications, but identifying and implementing APIs for legacy code remains challenging. It requires understanding complex programs, separating dependent components, introducing new artifacts, and preserving functionality and Service Level Agreements (SLAs) such as Turnaround Time (TAT). We propose a framework for APIfication of legacy mainframe applications. Candidate APIs are identified from artifacts such as transactions, screens, control-flow blocks, inter-microservice calls, business rules, and data accesses. Static analyses, including liveness and reaching definitions, are then used to traverse the code and automatically compute API signatures consisting of request and response fields. We evaluated the framework through a qualitative survey of nine mainframe developers with an average of 15 years of experience, using the public GENAPP application and two industrial mainframe applications. The results show that the framework identifies additional candidate APIs and reduces implementation effort for APIfication. The API-signature computation has been incorporated into IBM watsonx Code Assistant for Z Refactoring Assistant. We further validated the identified APIs by executing them on an IBM Z mainframe system, demonstrating the practical viability of the approach.

cs.SE↗

Incremental Analysis of Legacy Applications Using Knowledge Graphs for Application Modernization

Industries such as banking, telecom, and airlines - o6en have large so6ware systems that are several decades old. Many of these systems are written in old programming languages such as COBOL, PL/1, Assembler, etc. In many cases, the documentation is not updated, and those who developed/designed these systems are no longer around. Understanding these systems for either modernization or even regular maintenance has been a challenge. An extensive application may have natural boundaries based on its code dependencies and architecture. There are also other logical boundaries in an enterprise setting driven by business functions, data domains, etc. Due to these complications, the system architects generally plan their modernization across these logical boundaries in parts, thereby adopting an incremental approach for the modernization journey of the entire system. In this work, we present a so6ware system analysis tool that allows a subject ma=er expert (SME) or system architect to analyze a large so6ware system incrementally. We analyze the source code and other artifacts (such as data schema) to create a knowledge graph using a customizable ontology/schema. Entities and relations in our ontology can be defined for any combination of programming languages and platforms. Using this knowledge graph, the analyst can then define logical boundaries around dependent Entities (e.g. Programs, Transactions, Database Tables etc.). Our tool then presents different views showcasing the dependencies from the newly defined boundary to/from the other logical groups of the system. This exercise is repeated interactively to 1) Identify the Entities and groupings of interest for a modernization task and 2) Understand how a change in one part of the system may affect the other parts. To validate the efficacy of our tool, we provide an initial study of our system on two client applications.

cs.SE↗