Software Stack Selection via Scoring and Search Algorithms

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Determining the optimal software stack for a target software item is challenging due to the vast number of possible combinations of software components and dependencies, which can lead to defects, assembly problems, and deployment issues, making manual identification and testing impractical.

Innovation Solution

A system using a search algorithm, such as Monte-Carlo tree-analysis or simulated annealing, to generate software-stack candidates and a scoring function to evaluate these candidates based on hardware, software, security, and performance characteristics, reducing the search space and identifying the most optimal software stack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual identification and testing of all possible software component combinations is performed, then the optimal software stack can be determined, but the process becomes time-consuming and resource-intensive

Engineering Contradiction:
Improvesoftware stack compatibilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis by generating a search space of all possible software stack combinations and pre-evaluating them using a scoring function that assesses compatibility, security, and performance characteristics. This preliminary action identifies high-priority candidate stacks before deployment, avoiding the need for exhaustive manual testing at runtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates virtual representations (copies) of software stacks in a search space model, allowing evaluation of compatibility and performance characteristics without actual installation and testing. The scoring function evaluates these copies based on predefined criteria, enabling rapid assessment without consuming physical testing resources.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If the number of software components in a stack is increased to provide more functionality, then the software item can meet more requirements, but the complexity of identifying and testing all combinations increases

Engineering Contradiction:
Improvesoftware stack functionalityVSAvoidsoftware stack complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the software stack evaluation problem into discrete components: individual software components are identified, their dependencies are segmented and mapped, and the search space is divided into evaluable combinations. The scoring function segments evaluation into multiple dimensions (compatibility, security, performance), allowing systematic analysis of complex stacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system adds a new dimension to software stack management by introducing a scoring function that evaluates stacks across multiple criteria simultaneously. This transforms the complex multi-dimensional problem of stack selection into a ranked list of candidates, making it manageable even as the number of components and functionality requirements increase.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If exhaustive testing of all software stack combinations is performed, then deployment issues can be identified, but the resource consumption and time required become impractical

Engineering Contradiction:
Improvedeployment success rateVSAvoiddeployment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary evaluation of all possible software stack combinations using a scoring function that assesses compatibility, security, and performance characteristics before actual deployment. This identifies high-priority candidate stacks and potential deployment issues in advance, enabling efficient deployment without exhaustive manual testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scoring function provides feedback on software stack candidates by evaluating them against predefined criteria for compatibility, security, and performance. This feedback mechanism ranks candidates and identifies potential deployment issues, allowing the system to select optimal stacks without exhaustive testing while maintaining high deployment success rates.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11288166B2Determining a recommended software-stack for a target software item
Publication Date: 2022.03.29 RED HAT INC
  • US11288166B2 patent drawing
  • US11288166B2 patent drawing
  • US11288166B2 patent drawing

AI summary

A recommended software-stack can be determined for a target software item. For example, a system can receive an input specifying a target software item and a characteristic of a computing environment in which the target software item is to be executed. The system can then generate software-stack candidates for the target software item, the software-stack candidates having unique configurations of software components. The system can determine a respective score for each software-stack candidate of the software-stack candidates based on the characteristic of the computing environment and a unique configuration of software components forming the software-stack candidate. The system can select a particular software-stack candidate from the software-stack candidates as a recommended software-stack, based on the respective score for the particular software-stack candidate having a predefined attribute. The system can then generate an output indicating the recommended software-stack to enable the recommended software-stack to be included in the computing environment.