Application Container Dynamic Sub-package Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing devices require the complete download and installation of application components before execution, leading to delayed user interaction and inefficient storage usage, as they lack a mechanism to manage application code and dependent data delivery without modifying the underlying operating system.

Innovation Solution

The introduction of an application container that dynamically loads application dependencies, allowing for the retrieval and execution of applications in parallel with mandatory sub-packages and data, even if optional data has not been fully downloaded, and manages dependencies and shared library updates, enabling faster application startup and reduced storage consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system waits for complete application download before execution, then all application components are available, but user interaction is delayed

Engineering Contradiction:
Improveapplication execution completenessVSAvoidapplication startup time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application container performs preliminary actions by downloading and preparing mandatory sub-packages and data before execution is needed. The system identifies required components, downloads them in advance, and caches them locally, so that when the user launches the application, only essential components are needed immediately while optional components can be downloaded in the background.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The application is segmented into mandatory sub-packages and optional sub-packages. The container manages these segments independently, allowing the application to execute with only the mandatory segments present. This segmentation enables partial execution and reduces the blocking wait time for complete application deployment.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the system downloads all application components before execution, then complete functionality is ensured, but storage space is wasted

Engineering Contradiction:
Improveapplication functionalityVSAvoidstorage space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The application components are divided into mandatory sub-packages that are required for basic functionality and optional sub-packages that provide additional features. The container downloads and stores only the mandatory sub-packages locally, while optional sub-packages can be streamed or downloaded on-demand when specific features are accessed, significantly reducing the amount of data stored on the device.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs partial downloading by retrieving only the mandatory sub-packages and data required for core application functionality before execution. Optional components are downloaded selectively based on actual usage patterns, avoiding the waste of storing and downloading complete application packages that may never be fully utilized.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the system uses traditional application installation, then all components are available, but download time increases

Engineering Contradiction:
Improveapplication component availabilityVSAvoiddownload duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The container performs preliminary identification of mandatory components and downloads them in advance of when they are needed for execution. This preliminary action reduces the critical path download time by preparing essential components before the user actually launches the application.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By segmenting the application into mandatory and optional sub-packages, the system downloads only the essential mandatory portions before execution can begin. Optional sub-packages are downloaded asynchronously or on-demand, reducing the total blocking download duration while ensuring complete functionality when needed.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If the system requires complete application installation, then all features are accessible, but user latency increases

Engineering Contradiction:
Improveapplication feature accessibilityVSAvoiduser interaction delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The application features are segmented into mandatory functionality and optional features. The container enables the application to execute with only mandatory sub-packages installed, providing core functionality immediately. Optional features are made accessible through on-demand downloading or streaming, eliminating user interaction delay while maintaining feature versatility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system enables partial application execution by downloading and installing only the mandatory sub-packages required for core functionality. This partial action allows users to interact with the application immediately, while optional features can be added later based on actual usage needs, reducing user latency without sacrificing adaptability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3584696B1Managing delivery of code and dependent data using application containers
Publication Date: 2024.01.03 GOOGLE LLC
  • EP3584696B1 patent drawingFigure 1
  • EP3584696B1 patent drawingFigure 2
  • EP3584696B1 patent drawingFigure 3

AI summary

In some examples, a method includes: receiving, by a supervisor component executing at a computing device, a request to execute particular functionality of an application; responsive to determining that an application container for maintaining installable sub-packages of the application is not allocated in memory of the computing device, retrieving, by the supervisor component, an application definition from a first remote computing system, wherein the application definition defines a plurality of mappings between the installable sub-packages of the application and user-specified identifiers; responsive to allocating the application container in the memory of the computing device, initiating, by the supervisor component and based at least in part on a user-specified identifier of the request, the particular functionality of the application; responsive to determining, by the application container executing at the computing device, based at least in part on the application definition and the user-specified identifier, that an installable sub-package for the particular functionality is not stored at the computing device, retrieving, by the application container, the installable sub-package that includes a plurality of executable components from a second remote computing system; and executing, by the application container and using the plurality of executable components, the particular functionality of the application.