Dependent Code Version Standardization for Application Modernization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modernizing computing systems with multiple applications that use different versions of dependent code, such as JAR files, is inefficient due to the need for extensive modifications to ensure compatibility with new environments, resulting in high modernization effort and costs.
Innovation Solution
A method that identifies and ranks versions of dependent code, upgrades applications from lower-ranked to higher-ranked versions, and consolidates them, using static code scans and JAR file naming to determine suitability for automatic upgrade, thereby reducing the number of versions and modernization effort.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications are migrated to new platforms and runtimes during modernization, then the system can support new environments and technologies, but extensive modifications are required to ensure compatibility, increasing modernization effort and costs
Solution Approach 1:
The system performs preliminary actions by identifying and ranking dependent code versions before the actual migration process. It analyzes method compatibility between applications and dependent code versions in advance, determining which applications can be upgraded to which versions without extensive manual modification. This preliminary analysis reduces the modernization effort required during the actual migration by pre-determining compatible upgrade paths.
2Adaptability or versatility
If multiple versions of dependent code are maintained across applications, then each application can use its specific required version, but the number of versions to be analyzed and modernized increases, reducing efficiency
Solution Approach 1:
The system merges multiple versions of dependent code into a unified ranked list, ordering versions by their compatibility and suitability for upgrade. By consolidating the analysis of all versions into a single ranked structure, the system reduces the complexity of managing multiple versions while maintaining the ability to identify appropriate upgrade targets for each application based on its specific requirements.
3Measurement precision
If manual analysis of each application's dependent code versions is performed, then accurate upgrade compatibility can be determined, but the process requires significant manual input and time
Solution Approach 1:
The system performs self-service by automatically identifying dependent code versions, ranking them, and determining upgrade compatibility without requiring manual analysis. It autonomously compares methods between applications and dependent code versions, generates ranked lists of versions, and identifies suitable upgrade targets, eliminating the need for significant manual input while maintaining accurate compatibility assessment.
4Ease of operation
If all applications are upgraded to the highest ranked version of dependent code, then standardization is achieved, but some applications may require methods not included in that version
Solution Approach 1:
The system applies local quality by customizing the upgrade target for each application based on its specific method requirements. Instead of forcing all applications to use the highest ranked version, it determines the appropriate version for each application by comparing the methods the application requires with the methods included in each dependent code version. This ensures that each application receives a locally optimized upgrade target that maintains compatibility while achieving standardization where possible.
Data Source
AI summary
A method, system, and computer program product are configured to: identify versions of a JAR file used by applications in a system; generate a ranked list of the versions of the JAR file including a highest ranked version; determine a first subset of the applications that use the highest ranked version; determine a second subset of the applications that use a version other than the highest ranked version; for each respective one of the applications in the second subset, identify a respective upgraded version of the JAR file to use with the respective one of the applications based on comparing methods required by the respective one of the applications to sets of methods included in respective ones of the versions of the JAR file; and generate a list including the respective upgraded version of the JAR file identified for each respective one of the applications in the second subset.


