Dependent Code Version Standardization for Application Modernization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecompatibility with new environmentsVSAvoidmodernization effort
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveapplication-specific version supportVSAvoidmodernization efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
Improveupgrade compatibility accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of 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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveversion standardizationVSAvoidmethod compatibility
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240329959A1Upgrading and standardizing dependant code as part of application modernization
Publication Date: 2024.10.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240329959A1 patent drawing
  • US20240329959A1 patent drawing
  • US20240329959A1 patent drawing

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.