Distributed Extension Execution Offloading to Remote Facilities

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The execution of website extensions in web browsers is difficult to scale and lacks flexibility, leading to increased consumption of network bandwidth, processor time, and memory resources, which can cause performance deterioration and render devices inoperable, especially on resource-constrained devices like smartphones.

Innovation Solution

Relocating some or all of the extension execution to a remote computing facility, such as a datacenter with multiple servers, allowing the web browser to initiate extensions remotely, execute them on virtual machines, and provide results back to the client device, thereby offloading resource-intensive tasks and optimizing network bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If extensions are executed locally in the web browser, then execution flexibility is improved, but device resources (processor time, memory, network bandwidth) are excessively consumed

Engineering Contradiction:
Improveexecution flexibilityVSAvoiddevice resource consumption
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments extension execution into two parts: local initiation and control remains on the client device, while actual extension code execution is moved to remote computing facilities. This segmentation allows flexibility to be maintained locally while resource-intensive operations are performed remotely, resolving the contradiction between execution flexibility and device resource consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A remote computing facility acts as an intermediary between the client device and extension execution. The intermediary handles the resource-intensive extension code execution, freeing up client device resources while maintaining the ability to initiate and control extensions locally, thus resolving the resource consumption problem while preserving execution flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the number of active extensions increases, then functionality is improved, but client device performance deteriorates

Engineering Contradiction:
Improveextension functionalityVSAvoidclient device performance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system extracts the resource-intensive extension execution process from the client device and relocates it to remote computing facilities. This extraction allows multiple extensions to be executed simultaneously without impacting client device performance, as the computational load is removed from the device entirely, resolving the contradiction between extension functionality and device performance reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If extensions are executed on resource-constrained devices, then local execution capability is improved, but device operability is compromised

Engineering Contradiction:
Improvelocal execution capabilityVSAvoiddevice operability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system creates a copy of the extension execution environment on remote computing facilities rather than requiring it to exist on the resource-constrained device. The client device maintains the ability to initiate and control extensions locally, while the actual execution occurs in a copied environment remotely, preserving local operational capability without compromising device operability.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10389795B2Distributed extension execution in computing systems
Publication Date: 2019.08.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10389795B2 patent drawing
  • US10389795B2 patent drawing
  • US10389795B2 patent drawing

AI summary

Computing systems, devices, and associated processes for distributed execution of extensions are disclosed herein. In one embodiment, a method includes receiving a user input at a client device for initiating an extension in a web page associated with a web site. In response to the received user input, a communication link between the client device and a remote computing facility can be established. The method can also include transmitting a request for initiating the extension, from the client device, to the remote computing facility via the established communication link and receiving, at the client device, data representing execution results of the requested extension from the remote computing facility.