Extension Catalog for Isolated Process Activation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing applications that can be extended poses challenges such as describing extension points, discovering, and activating extensions, while also dealing with security and performance issues, including potential termination or degradation of extensions impacting the original application, and data sharing affecting security.

Innovation Solution

The operating system maintains an extension catalog that stores data about extensions and their supported contracts, allowing for querying and selecting extensions to activate them as independent processes, enabling communication between applications and extensions according to the supported contracts, with mechanisms for registration, installation, and user interface-driven selection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If extensions are activated as independent processes, then reliability is improved by isolating failures, but device complexity increases due to process management overhead

Engineering Contradiction:
Improveapplication stabilityVSAvoidprocess management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the extension execution into separate independent processes, isolating each extension from the main application and other extensions. This segmentation allows failures in one extension to be contained and does not propagate to the main application or other extensions, thereby improving reliability while the operating system manages the complexity of process isolation.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If extensions are queried and selected from a catalog, then adaptability is improved by enabling dynamic selection, but loss of information increases due to additional configuration steps

Engineering Contradiction:
Improveextension selection flexibilityVSAvoidconfiguration information loss
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by maintaining a catalog of extensions with their contracts pre-defined and registered. When an application needs an extension, the system queries this pre-prepared catalog rather than requiring ad-hoc configuration, thereby enabling flexible dynamic selection while minimizing information loss through pre-established extension contracts.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If extensions communicate with applications through contracts, then ease of operation is improved by standardizing interfaces, but device complexity increases due to contract validation requirements

Engineering Contradiction:
Improveextension integration easeVSAvoidcontract validation complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system implements a universal contract mechanism that serves multiple functions: it defines the interface between extensions and applications, validates compatibility, and manages the registration and querying processes. This single contract-based approach simplifies extension integration across different applications while the operating system handles the complexity of validation and enforcement.

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

Data Source

PatentUS10235147B2Discovery and activation of application extensions
Publication Date: 2019.03.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10235147B2 patent drawing
  • US10235147B2 patent drawing
  • US10235147B2 patent drawing

AI summary

The operating system of a computer maintains an extension catalog that stores data relating extensions with information about the contracts the extensions support. Extensions are registered in this catalog according to the contract they implement. The extension catalog can be queried to identify extensions that support a given contract. An extension can be selected from among the results from a query, and the selected extension can be activated. When activated, the extension is set up by the operating system as an independent process from, and with context from, the application for which it is an extension. Information about the extension is provided to the application to enable the extension and the application to communicate according to the supported contract.