Streaming Software Installation via Dynamic Recipe Pre-fetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional streaming installation methods fail to efficiently handle non-linear execution scenarios of software applications, leading to poor performance and increased complexity in the software development process.

Innovation Solution

A computer-implemented method that uses a recipe file to nonlinearly order application chunks, aggregates access information to identify missing chunks, and generates a revised recipe file for pre-fetching, thereby improving streaming installation performance by crowdsourcing cache miss data from multiple client devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If pre-fetching content is engineered assuming strict linear execution, then installation speed is improved under ideal conditions, but performance deteriorates in real-world non-linear execution scenarios

Engineering Contradiction:
Improveinstallation speedVSAvoidstreaming installation reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary actions by pre-fetching application chunks before they are actually needed during execution. The recipe file specifies which chunks to pre-fetch and when, allowing the system to prepare content in advance based on predicted execution paths, thereby improving both speed and reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adapts the pre-fetching strategy based on actual execution behavior. By monitoring which chunks are accessed during runtime and updating the recipe file accordingly, the system adjusts its pre-fetching decisions to match real-world non-linear execution patterns rather than relying on static linear assumptions.

Inventive Principle:
Principle #15Dynamics

2Productivity

If streaming installation is designed into the application to handle non-linear execution, then installation performance is improved, but device complexity increases

Engineering Contradiction:
Improveinstallation performanceVSAvoidsoftware development complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The recipe file serves as an intermediary between the application and the streaming installation system. It contains pre-computed information about which chunks to fetch and when, allowing the application to be installed and executed without built-in streaming logic. The recipe file absorbs the complexity of non-linear execution handling, keeping the application itself simple.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system uses runtime monitoring to automatically generate updated recipe files based on actual chunk access patterns. This self-service approach eliminates the need for manual recipe file creation and updates, reducing the complexity burden on developers while maintaining high installation performance.

Inventive Principle:
Principle #25Self-service

3Reliability

If application chunks are copied to local location for installation, then installation completeness is ensured, but installation time increases

Engineering Contradiction:
Improveinstallation completenessVSAvoidinstallation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application is divided into discrete chunks that can be fetched independently. The recipe file specifies which chunks are essential for initial execution and which can be fetched later. This segmentation allows the system to install and start the application with only the necessary chunks, ensuring completeness for startup while minimizing total installation time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary fetching of only the critical chunks needed for initial execution rather than copying the entire application. The recipe file identifies which chunks must be present before execution can begin, allowing the system to prepare only those specific chunks in advance, thereby reducing overall installation time while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10055212B2Evolving streaming installation of software applications
Publication Date: 2018.08.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10055212B2 patent drawing
  • US10055212B2 patent drawing
  • US10055212B2 patent drawing

AI summary

High-performance streaming installation of software applications can be achieved by pre-fetching chunks of application files. Pre-fetching can be directed by a recipe file that can handle a wide variety of application behaviors. If a missing chunk is encountered during execution of the application, a cache miss record can be created and forwarded to a telemetry server. Cache miss records can be aggregated to generate a revised recipe file so that future installations of the application avoid the missing chunk scenario. Using the revised recipe file can cause fewer interruptions, result in less delay and otherwise improve performance.