Predictive Software Streaming via Usage Pattern Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software streaming platforms face inefficiencies due to user wait times for component downloads, as components are typically loaded only when requested, leading to suboptimal user experience.

Innovation Solution

Implementing a predictive streaming method that anticipates and downloads likely future software components based on historical usage patterns, using a model to determine the probability of component usage and employing idle resources to minimize wait times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If components are downloaded only when requested (on-demand streaming), then bandwidth usage is optimized and device storage is minimized, but user wait time increases and user experience deteriorates

Engineering Contradiction:
Improvebandwidth usageVSAvoiduser wait time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The system performs preliminary actions by predicting which software components will be needed next and downloading them in advance during idle periods. The prediction engine analyzes usage patterns to anticipate future component requests, and the system proactively transfers these components before actual user requests occur, thereby eliminating wait time while maintaining efficient bandwidth usage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the downloading strategy based on real-time conditions. The prediction engine continuously learns from usage patterns and adapts its predictions, while the system balances predictive downloading with actual user requests, adjusting download priorities and timing based on current system state, network conditions, and user behavior patterns.

Inventive Principle:
Principle #15Dynamics

2Loss of time

If predictive downloading is implemented to reduce wait times, then user experience improves, but bandwidth resources are consumed more heavily and device storage requirements increase

Engineering Contradiction:
Improveuser wait timeVSAvoidbandwidth usage
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The system applies partial action by downloading only the most likely predicted components rather than all possible components. The prediction engine ranks predicted components by probability, and the system selectively downloads top-priority predictions during idle periods, balancing the benefit of reduced wait times against the cost of bandwidth consumption.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system uses idle processing time and idle bandwidth automatically to perform predictive downloading without requiring additional user actions or dedicated resources. The prediction engine and download manager operate autonomously during system idle periods, utilizing otherwise wasted resources to improve user experience.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If software is divided into modular components for streaming, then flexibility and adaptability improve, but system complexity increases and component management becomes more difficult

Engineering Contradiction:
Improvesoftware flexibilityVSAvoidcomponent management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments software into modular components that can be independently streamed and executed. This segmentation enables flexible delivery of only needed components, supports predictive downloading of specific modules, and allows the system to manage and transfer individual components based on predictions and user requests.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary layer (the streaming platform with prediction engine) that manages component delivery between the software source and the user device. This intermediary handles the complexity of component segmentation, prediction, scheduling, and transfer, shielding users from the underlying complexity while enabling modular software delivery.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2659387B1Predictive software streaming
Publication Date: 2020.08.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2659387B1 patent drawingFigure 1
  • EP2659387B1 patent drawingFigure 2~3
  • EP2659387B1 patent drawingFigure 4

AI summary

A software streaming platform may be implemented that predictively chooses units of a program to download based on the value of downloading the unit. In one example, a program is divided into blocks. The sequence in which blocks of the program historically have been requested is analyzed in order to determine, for a given history, what block is the next most likely to be requested. Blocks then may be combined into chunks, where each chunk represents a chain of blocks that have a high likelihood of occurring in a sequence. A table is then constructed indicating, for a given chunk, the chunks that are most likely to follow the given chunk. Based on the likelihood table and various other considerations, the value of downloading particular chunks is determined, and the chunk with the highest expected value is downloaded.