Automated Hard-Coded Dependency Externalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing IT systems face significant challenges in automatically updating hard-coded dependencies during data-center transformations, server migrations, and cloud migrations, as these dependencies are often embedded in code rather than configuration files, leading to manual and time-consuming processes.

Innovation Solution

A system and method that statically analyzes application code to discover instances of external resource access, identifies locations of constants specifying addresses, and updates these constants in both the code and configuration repository to facilitate migration, enabling automated relinking and externalization of hard-coded dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If dependencies are externalized in configuration files, then ease of updating dependencies is improved, but many real-world applications have hard-coded dependencies in code which cannot be easily updated

Engineering Contradiction:
Improveease of updating dependenciesVSAvoidapplicability to real-world applications
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The tool extracts hard-coded dependency references from application code and relocates them to external configuration files. This extraction process identifies constants in code that specify external resource addresses and moves these to configurable locations, enabling easy updates without modifying the application code itself.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The invention introduces an automated tool as an intermediary between the application code and the configuration management process. This tool mediates the transformation by automatically analyzing code, identifying hard-coded dependencies, and generating updated configuration files with externalized references, thereby bridging the gap between hard-coded and configurable approaches.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual updating of hard-coded dependencies is performed, then completeness of dependency updates is improved, but time and labor required are significantly increased

Engineering Contradiction:
Improvecompleteness of dependency updatesVSAvoidtime required for updating
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service automation where the tool independently performs the complete process of discovering hard-coded dependencies in application code, analyzing their locations, and generating updated configuration files with externalized references. This eliminates the need for manual intervention while maintaining comprehensive coverage of all dependencies.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention replaces the manual mechanical process of searching, identifying, and updating hard-coded dependencies with an automated computational system. The tool uses static analysis and pattern matching algorithms to automatically detect dependency patterns in code and generate configuration updates, substituting human effort with automated processing.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If dependencies are hard-coded in application code, then application functionality is maintained, but adaptability to migration and reconfiguration is reduced

Engineering Contradiction:
Improveapplication functionalityVSAvoidmigration capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The invention segments the dependency management into two distinct parts: application code that maintains functionality and external configuration files that provide adaptability. By separating the hard-coded references from the actual dependency addresses, the system preserves application functionality while enabling flexible reconfiguration for migration scenarios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The solution transforms the static hard-coded dependencies into dynamic, externally-configurable references. The application code remains unchanged and functional, while the external configuration files can be dynamically updated to reflect different deployment environments, enabling easy migration and adaptation without recompiling the application.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8949812B2System and method for updating hard-coded dependencies
Publication Date: 2015.02.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8949812B2 patent drawing
  • US8949812B2 patent drawing
  • US8949812B2 patent drawing

AI summary

A system and method includes discovering one or more instances of external resource access by statically analyzing application code. One or more locations of constants are identified in the application code and a configuration repository that specify addresses of discovered instances of external resource access. The application code and the configuration repository are updated to change values of the constants to enable migration.