Directed Acyclic Graph for Software Update Path Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveversion compatibilityVSAvoidupdate development time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveversion coverageVSAvoidupdate management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveupdate application simplicityVSAvoidupdate path determination logic
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10732953B2Systems and methods for using graphs for application updates
Publication Date: 2020.08.04 SALESFORCE INC
  • US10732953B2 patent drawing
  • US10732953B2 patent drawing
  • US10732953B2 patent drawing

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.