Application Streaming via Access and Execution Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of managing and provisioning resources in large-scale distributed systems, such as cloud-based computing environments, makes it challenging to efficiently provide access to computing resources and applications across diverse user groups with varying hardware requirements.

Innovation Solution

The implementation of an application streaming service that uses a combination of access and execution environments, allowing administrators to configure one-to-one, one-to-many, many-to-one, or many-to-many relationships between access and execution environments, enabling flexible and efficient streaming of applications from cloud-based computing resources to client devices, using machine images or containers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If applications are executed locally on client devices, then user interface rendering and execution performance are improved, but device complexity and resource requirements increase

Engineering Contradiction:
Improveexecution performanceVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the application execution environment from the client device and places it in the cloud. The client device only receives and displays the graphical user interface, while the actual application execution occurs on remote servers. This separation resolves the contradiction by maintaining execution performance through cloud-based processing while reducing device complexity to only what is needed for display and input.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a graphical interface streaming system as an intermediary between the client device and the cloud-based execution environment. This intermediary captures the graphical output from the remote execution environment, transmits it to the client device for display, and transmits user input back to the execution environment. This mediator allows the client device to interact with complex applications without needing the computational resources to execute them locally.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If cloud-based computing resources are provisioned for each user, then access to computing resources is improved, but resource provisioning complexity and costs increase

Engineering Contradiction:
Improveaccess to computing resourcesVSAvoidresource provisioning complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a shared execution environment in the cloud that can serve multiple users simultaneously. Instead of provisioning separate computing resources for each user, a single cloud-based execution environment handles multiple user sessions, switching between them as needed. This universal resource pool provides adaptability and versatility in accessing computing resources while dramatically reducing provisioning complexity and costs through resource sharing.

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

Solution Approach 2:

The patent employs dynamic resource allocation where the cloud-based execution environment can be dynamically provisioned, scaled, and configured based on current user needs and demands. Resources are allocated on-demand rather than statically pre-configured for each user, allowing the system to adapt to varying workloads and user requirements while maintaining efficient resource utilization and reducing overall provisioning complexity.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If multiple execution environments are supported, then adaptability to different user groups is improved, but system complexity increases

Engineering Contradiction:
Improveadaptability to different user groupsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the execution environment into multiple isolated instances, each configured for specific user groups or applications. These segmented environments can have different configurations, permissions, and resource allocations tailored to specific needs. The segmentation allows the system to support diverse user groups with customized environments while managing complexity through clear separation and isolation of different execution contexts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a configuration management system that only provisions and maintains execution environments as needed for specific user groups or applications. Rather than maintaining all possible environment configurations simultaneously, the system creates and manages only the necessary subsets of environments, reducing overall system complexity while maintaining the ability to adapt to different user group requirements when needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10708329B2Application streaming using access and execution environments
Publication Date: 2020.07.07 AMAZON TECH INC
  • US10708329B2 patent drawing
  • US10708329B2 patent drawing
  • US10708329B2 patent drawing

AI summary

Methods, systems, and computer-readable media for application streaming using access and execution environments are disclosed. User input comprising a selection of an application by a user is received. The user input is received at an access environment from a computing device associated with a client. The access environment permits access by the user, and the access environment is associated with an execution environment for the application. The execution environment specifies a computing resource description for the application. Execution of the application is initiated using one or more computing resources compatible with the computing resource description. A pixel display is streamed to the computing device associated with the client. The pixel display is associated with the application executing using the one or more computing resources.