Adaptive Computing Environment Streaming Across Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The configuration of devices to present a computing environment can result in a disjointed experience due to differences in device properties, leading to inefficiencies and concurrency errors in file synchronization and terminal services models, where some devices may not be able to utilize or render the computing environment effectively.

Innovation Solution

A primary device within a device collection adapts and maintains a primary computing environment, which is then streamed to auxiliary devices, adapting the environment to their specific properties such as computational resources, input/output capabilities, and user context, and executes applications on behalf of the auxiliary devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If each device presents its own computing environment based on device properties, then each device can utilize its specific capabilities, but the user experience becomes disjointed and configuration maintenance becomes complex

Engineering Contradiction:
Improvedevice capability utilizationVSAvoidconfiguration management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges the computing environment presentation into a single centralized location (the primary device) while maintaining device-specific adaptability. The primary device hosts the computing environment and coordinates presentation across multiple auxiliary devices, eliminating the need for separate configurations on each device while preserving their unique capabilities through adaptive rendering.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The primary device serves multiple functions: it hosts the computing environment, adapts it for different device types, coordinates presentation across auxiliary devices, and manages application execution. This universal approach allows a single device to perform what previously required separate configuration on multiple devices.

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

2Stability of the object's composition

If file synchronization is used to coordinate changes across devices, then consistency is achieved, but transmission overhead increases and concurrency errors occur

Engineering Contradiction:
Improveenvironment consistencyVSAvoidtransmission overhead
Core Design Contradiction:
Stability of the object's compositionVSLoss of energy

Solution Approach 1:

The primary device acts as an intermediary between auxiliary devices and the computing environment. Instead of direct peer-to-peer synchronization, all changes flow through the primary device which coordinates updates and manages state, reducing direct transmission overhead and providing a single point of control to prevent concurrency errors.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system establishes the primary device's hosting role and environment configuration in advance, creating a centralized coordination mechanism before synchronization issues arise. This preliminary setup prevents concurrency errors by design, as the primary device pre-establishes authority over environment state management.

Inventive Principle:
Principle #10Preliminary action

3Stability of the object's composition

If terminal services model is used with a primary device transmitting computing environment, then consistency is achieved, but auxiliary devices cannot utilize their specific properties effectively

Engineering Contradiction:
Improveenvironment consistencyVSAvoiddevice property utilization
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent applies local quality by rendering the computing environment differently on each auxiliary device based on its specific properties. While the core environment remains consistent and is hosted by the primary device, the presentation is locally adapted to each device's capabilities, input methods, display characteristics, and user context, allowing optimal utilization of each device's unique properties.

Inventive Principle:
Principle #3Local quality

4Productivity

If applications are executed locally on each auxiliary device, then device resources are utilized, but configuration and maintenance effort increases

Engineering Contradiction:
Improvedevice resource utilizationVSAvoidconfiguration effort
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent extracts the computing environment hosting and application execution from the auxiliary devices and centralizes it on the primary device. This extraction eliminates the need for separate application installations and configurations on each auxiliary device, reducing configuration effort while maintaining resource utilization through the primary device's computational capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10277649B2Presentation of computing environment on multiple devices
Publication Date: 2019.04.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10277649B2 patent drawing
  • US10277649B2 patent drawing
  • US10277649B2 patent drawing

AI summary

A user may interact with a collection of devices that each exhibit particular device properties. Where each device executes and presents an isolated computing environment, inconsistencies may arise in the user interaction by the user with different devices. Alternatively, a terminal server may present a computing environment to various auxiliary devices, but such presentation may fail to utilize some device properties of some devices, and/or may present a computing environment that is not suitable for some devices. Instead, a primary device of the device collection may adapt a primary computing environment to an auxiliary computing environment for each auxiliary device, based upon its device properties. Upon receiving a request to execute an application, the primary device may execute the application within the auxiliary computing environment, and may adapt the application based upon the device properties. The primary device may stream each auxiliary computing environment to the respective auxiliary device.