Directed Acyclic Graph Upgrade Path Planning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing software upgrade process is cumbersome and time-consuming for users, as it requires manual involvement and often results in upgrades being performed in an unpredictable order, leading to potential instability and inefficiency, especially when multiple devices with varying software versions need to be upgraded simultaneously.
Innovation Solution
A system utilizing a directed acyclic graph to model software versions and upgrade paths, allowing for the automatic generation of recommended upgrade plans that minimize risk or time, enabling users to choose between stable and quick upgrade paths, and facilitating simultaneous upgrades across multiple devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If manual upgrade process is used for multiple devices with different software versions, then users can control each upgrade individually, but the process becomes time-consuming and laborious
Solution Approach 1:
The system automatically generates upgrade plans and executes upgrades without requiring manual intervention for each device. The upgrade management server autonomously detects device versions, formulates upgrade paths, and coordinates upgrades across multiple devices, allowing the system to serve itself rather than requiring continuous user involvement.
Solution Approach 2:
The system pre-generates upgrade plans by analyzing the current software versions of all devices and determining optimal upgrade paths before execution. This preliminary planning phase allows the system to prepare upgrade sequences and dependencies in advance, reducing the actual upgrade time when execution begins.
2Reliability
If upgrades are performed manually across multiple devices, then users can customize each upgrade, but the upgrade order becomes unpredictable and causes instability
Solution Approach 1:
The system segments the upgrade process into distinct phases: detection of current versions, generation of upgrade plans, determination of upgrade sequences, and execution. By breaking down the complex multi-device upgrade process into manageable segments, the system can manage complexity while ensuring reliable, stable upgrades through controlled sequencing.
Solution Approach 2:
The system continuously monitors the upgrade status of each device and uses this feedback to adjust and coordinate upgrade sequences. By tracking which devices have been upgraded and their current states, the system can make informed decisions about subsequent upgrades, maintaining stability while managing complexity across the device fleet.
3Productivity
If automatic upgrade plans are generated, then upgrade time is reduced, but the system complexity increases
Solution Approach 1:
The upgrade management server performs multiple functions: detecting device versions, generating upgrade plans, determining upgrade sequences, and coordinating executions. By consolidating these diverse functions into a single multi-functional system, the patent achieves automatic upgrade planning and execution without proportionally increasing overall system complexity.
Data Source
AI summary
Software product versions installed on clients are detected. At least a subset of clients have different versions. Directed acyclic graphs are built specific to a client based on a particular version of the software product installed. Weighted values are assigned to edges in each graph. The weighted values indicate a degree of stability associated with upgrading the software product or an estimated time associated with the upgrading. Upgrade paths present in each graph are traversed to calculate sums of the weighted values. Based on the sums, recommended upgrade paths for the clients are identified, each recommended upgrade path is specific to a respective client. Upgrade packages, corresponding to the recommended upgrade paths, are created for the clients. Each upgrade package is specific to the respective client, includes the desired version of the software product, intermediate versions, and a sequence indicating an order in which the intermediate versions should be installed.


