COM Virtualizer for Cross-Environment Object Instantiation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional virtualization technologies fail to facilitate effective Component-Object-Model (COM) communications across different virtual environments, leading to issues such as 'Class Not Registered' errors due to the remote procedure call process being unable to see into the virtual environment where the COM server is registered.

Innovation Solution

A COM virtualizer intercepts COM object instantiation calls, temporarily brings the remote-procedure-call process into the virtual environment to instantiate the COM object, and then removes it to ensure security by preventing access from outside the environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a COM server is registered in a virtual environment, then the COM server can operate within the virtualized process space, but the remote procedure call process running at system level cannot see into the virtual environment to instantiate the COM object

Engineering Contradiction:
ImproveCOM object instantiation reliabilityVSAvoidvirtualization environment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A COM virtualizer is introduced as an intermediary component that sits between the remote procedure call process and the virtualized COM server. The COM virtualizer intercepts instantiation requests, temporarily brings the remote procedure call process into the virtual environment context, performs the COM object instantiation, and then removes the process from the virtual environment. This mediator resolves the visibility issue without requiring fundamental changes to the virtualization architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If the remote procedure call process is allowed to access the virtual environment to instantiate COM objects, then COM communications work, but security is compromised by allowing unavailability of COM objects to callers outside the virtual environment

Engineering Contradiction:
ImproveCOM communication functionalityVSAvoidsecurity vulnerability
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The COM virtualizer dynamically adjusts the access permissions and environment context for the remote procedure call process on a temporary basis. The process is brought into the virtual environment only when needed for COM object instantiation, and its access rights are dynamically revoked immediately after the operation completes. This dynamic approach enables necessary communications while maintaining security by limiting exposure time and scope.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If traditional virtualization technologies are used, then process virtualization is achieved, but COM communications across different virtual environments fail with 'Class Not Registered' errors

Engineering Contradiction:
Improveprocess virtualization capabilityVSAvoidCOM communication reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The solution segments the virtualization functionality into two distinct layers: the base virtualization layer that provides process virtualization capabilities, and the COM virtualizer layer that specifically handles COM communication requirements. This segmentation allows each layer to operate independently and optimally, with the COM virtualizer translating COM instantiation requests into appropriate virtual environment context operations without interfering with the underlying virtualization mechanism.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8813103B1Methods and systems for handling component-object-model communications
Publication Date: 2014.08.19 CA TECH INC
  • US8813103B1 patent drawing
  • US8813103B1 patent drawing
  • US8813103B1 patent drawing

AI summary

A computer-implemented method for handling component-object-model communications. The method may include identifying a request to instantiate a component-object-model object through a remote-procedure-call process. The component-object-model object may be associated with an out-of-process component-object-model server registered in a first environment. The remote-procedure-call process may be running in a second environment with a different registry than the first environment. The method may also include allowing the remote-procedure-call process to access the first environment. Corresponding systems and computer-readable media are also disclosed.