Memory Abstraction Module for Virtual App Download Delays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users experience interruptions and potential data loss when attempting to operate partially downloaded application software, as the application may appear hung or failed until all functionality is downloaded, leading to unfavorable user experiences.

Innovation Solution

Implementing a memory abstraction module to monitor page faults and provide user interface indications of download progress, allowing users to cancel operations and informing them of estimated completion times, thus mitigating interruptions during streaming or virtualization delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If application functionality is made available for execution prior to complete download, then user access speed is improved, but application reliability deteriorates as the application may appear hung or failed

Engineering Contradiction:
Improveuser access speedVSAvoidapplication reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

A notification system acts as an intermediary between the application and user, providing status information about download progress and operational availability. This mediator prevents misinterpretation of application state by clearly communicating what functionality is available and what is still being downloaded, thus maintaining reliability while enabling early access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms through notifications that inform users about download status, estimated completion times, and operational availability. This feedback loop allows users to understand the application state accurately, preventing premature termination and improving perceived reliability while maintaining fast access.

Inventive Principle:
Principle #23Feedback

2Ease of operation

If download progress information is provided to users, then user experience is improved, but device complexity increases due to monitoring and notification systems

Engineering Contradiction:
Improveuser experienceVSAvoiddevice complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The notification system leverages existing operating system notification infrastructure and background download mechanisms to provide user information without requiring complex custom implementation. By utilizing self-service capabilities already present in the platform, the system improves user experience while minimizing additional complexity.

Inventive Principle:
Principle #25Self-service

3Loss of information

If application functionality is grayed-out or indicated as unavailable, then user confusion is reduced, but ease of operation deteriorates as users cannot access available functionality

Engineering Contradiction:
Improveuser confusionVSAvoidease of operation
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The notification system serves as an intermediary that provides accurate information about functionality availability without requiring visual dimming or graying out of interface elements. Users receive clear communication about what is available through notifications, eliminating the need to reduce visual prominence of available features and maintaining ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8959508B2Mitigating user interruption for partially downloaded streamed and virtualized applications
Publication Date: 2015.02.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8959508B2 patent drawing
  • US8959508B2 patent drawing
  • US8959508B2 patent drawing

AI summary

Technologies are described herein for mitigating user interruption for partially downloaded or streamed virtual applications from a network, such as the Internet. A memory abstraction module can monitor page faults related to memory requests. A page fault may result from a memory request to load code that is not currently available and may trigger the retrieval of code from the network. A monitoring module may identify the quantity or frequency of page faults resulting in code fetches over the network. When the quantity or frequency of fetches over the network exceeds one or more thresholds, an indication of potential delay may be provided to the user. Modified code within an application can trigger download of a collection of code related to specific functionality within the application referred to as wrapped functionality. The user may be provided with a cancel button, or other mechanism, to abort the wrapped download.