Directed Acyclic Graph for Software Update Path Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional methods of software application updates are inefficient due to the need for writing separate updates for multiple versions of code, which can be time-consuming and complex, especially when users have different versions and service levels.
Innovation Solution
The use of a directed acyclic graph (DAG) to automate the update process by identifying and combining update steps that do not require format changes, allowing for the creation of a single update step from the current version to the desired version, thereby skipping unnecessary updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate updates are written for each version pair, then all version updates can be supported, but the time and complexity of the update process increases significantly
Solution Approach 1:
The patent segments the update process into discrete update steps, each representing a transition between adjacent versions. Instead of creating comprehensive updates for all version pairs, the system divides the update space into atomic steps (e.g., version 1.0 to 1.1, 1.1 to 1.2) that can be independently developed and combined.
Solution Approach 2:
The patent performs preliminary action by pre-defining update steps between adjacent versions and storing them in a database. These atomic update steps are prepared in advance and can be automatically combined through graph traversal to generate updates for any version pair, eliminating the need to write updates for each version combination manually.
2Adaptability or versatility
If comprehensive update coverage is provided for all version pairs, then all users can be supported, but the complexity of managing multiple updates increases
Solution Approach 1:
The patent creates a universal update management system using a directed acyclic graph that can handle any version pair through a single unified process. The graph structure serves multiple functions: storing update steps, determining update paths, and generating combined updates. This multi-functional approach replaces the need for separate management mechanisms for different version pairs.
Solution Approach 2:
The patent introduces a directed acyclic graph as an intermediary data structure that mediates between the atomic update steps and the final combined updates. The graph acts as a mediator that automatically determines the appropriate sequence of update steps for any given version pair, simplifying the management complexity by providing a systematic intermediate representation.
3Ease of operation
If atomic update steps are combined into single updates, then the update process is simplified, but the logic for determining necessary steps becomes more complex
Solution Approach 1:
The patent implements self-service by enabling the update system to automatically determine and execute the appropriate update path without manual intervention. The directed acyclic graph structure allows the system to self-determine the necessary sequence of atomic update steps by traversing from the source version to the target version, automatically filtering out unnecessary steps.
Solution Approach 2:
The patent uses feedback mechanisms where the system continuously evaluates the current version state against the target version and adjusts the update path accordingly. The graph traversal process provides feedback about which atomic update steps have been applied and which remain, enabling dynamic determination of the necessary update sequence.
Data Source
AI summary
A sequence of update steps from a currently installed version an application on a remote client device to a new version of the application to be installed on the client device is determined. A representation of updates from the currently installed version to the new version of the client application is built. The representation is stored in at least one memory device. A shortest path between the currently installed version of the client application and the new version of the client application is determined. An update is determined from a combination of the sequence of update steps unique to the shortest path between the currently installed version of the application and the new version of the application. An update package is built to update the currently installed version of the client application to the new version of the client application.


