Automatic Application Dependency Management for Software Configurations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing complex software systems with multiple components is impractical due to the vast number of possible combinations, leading to challenges in testing and maintaining valid configurations, resulting in downtime and inefficiencies.

Innovation Solution

An automatic application dependency management system that maintains a database of deployed and attempted configurations, searches for working configurations that resemble failed ones, ranks them based on criteria, and automatically selects and upgrades components to create a working configuration, reducing downtime by preemptively reviewing proposed changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual testing and management of software configurations is performed, then configuration accuracy can be maintained, but time consumption and labor resources increase significantly

Engineering Contradiction:
Improveconfiguration accuracyVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically testing configuration combinations before full deployment, using predictive algorithms to identify potential issues in advance. This allows the system to prepare validated configurations proactively, reducing both time consumption and manual intervention while maintaining configuration accuracy.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the number of component combinations is increased to improve system versatility, then system adaptability improves, but the complexity of testing and management increases

Engineering Contradiction:
Improvesystem adaptabilityVSAvoidconfiguration management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the complex configuration management task into manageable components by automatically dividing the testing process into modular steps. Each configuration combination is tested independently through automated scripts, and results are organized in structured formats. This segmentation reduces management complexity while preserving system versatility by enabling comprehensive testing of multiple component combinations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If comprehensive testing of all configuration combinations is performed, then configuration reliability improves, but productivity decreases due to extensive testing requirements

Engineering Contradiction:
Improveconfiguration reliabilityVSAvoiddeployment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies partial action by selectively testing only the most critical and frequently used configuration combinations rather than exhaustively testing every possible combination. The automated testing framework prioritizes high-impact configurations based on usage patterns and system importance, achieving sufficient reliability for production deployment without the productivity loss associated with complete exhaustive testing.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12026522B2Automatic application dependency management
Publication Date: 2024.07.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12026522B2 patent drawing
  • US12026522B2 patent drawing
  • US12026522B2 patent drawing

AI summary

A database of deployed configurations, as well as attempted configurations that failed is maintained and used as reference to compare against configurations of attempted software deployments. Upon detecting a failed deployment, disclosed embodiments search the database for working configurations that most closely resemble the failed configuration, and rank the configurations based on various criteria. Disclosed embodiments may then automatically select a highest ranked working configuration, and perform an automatic upgrade of the necessary components to create a working configuration.