Virtual Component Runtime for Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing systems face challenges in managing the instantiation and deactivation of components, leading to race conditions and complexity in handling existence checks and creation attempts, particularly when multiple processes try to create or delete components simultaneously.

Innovation Solution

The introduction of virtual components that are always addressable by an identity, independent of their activation state, allowing the runtime to manage activation and deactivation transparently, automatically creating or deactivating instances as needed, and preserving communications to ensure seamless interaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If components are explicitly instantiated with existence checks, then component creation can be controlled, but race conditions occur when multiple processes try to create the same component simultaneously

Engineering Contradiction:
Improvecomponent creation controlVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime system as an intermediary between application code and component instantiation. The runtime manages the actual creation and activation of component instances, acting as a mediator that handles the complexity of existence checks and synchronized creation, thereby eliminating race conditions without burdening application code with complex synchronization logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The component system implements self-service through automatic instance activation. When a component is referenced, the runtime automatically checks for existing instances and activates them if needed, without requiring explicit creation commands from application code. This self-managing approach simplifies the programming model while ensuring reliable component availability.

Inventive Principle:
Principle #25Self-service

2Speed

If components are kept activated in memory, then access speed is improved, but memory consumption increases

Engineering Contradiction:
Improvecomponent access speedVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements dynamic component activation where components transition between deactivated and activated states based on demand. The runtime system manages this dynamic state changes, activating components only when they are needed and deactivating them when not in use, thereby optimizing the balance between access speed and memory consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary activation of components based on anticipated needs. The runtime can proactively activate components before they are actually accessed, preparing them in advance to ensure fast access when needed while still maintaining control over memory usage through selective pre-activation strategies.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If virtual components are always addressable independent of activation state, then ease of operation is improved, but communication management complexity increases

Engineering Contradiction:
Improvecomponent addressabilityVSAvoidcommunication management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The runtime system serves as an intermediary that handles communication with deactivated virtual components. When a component is deactivated, the runtime intercepts communication attempts, preserves the messages, and delivers them once the component is activated. This mediation transparently manages the complexity of communication state handling while maintaining simple addressability for application code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9875120B2Virtualized components in computing systems
Publication Date: 2018.01.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9875120B2 patent drawing
  • US9875120B2 patent drawing
  • US9875120B2 patent drawing

AI summary

The subject disclosure is directed towards virtual components, e.g., comprising software components such as virtual components of a distributed computing system. Virtual components are available for use by distributed computing system applications, yet managed by the distributed computing system runtime transparent to the application with respect to automatic activation and deactivation on runtime-selected distributed computing system servers. Virtualization of virtual components is based upon mapping virtual components to their physical instantiations that are currently running, such as maintained in a global data store.