COM Virtualizer for Cross-Environment Object Instantiation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


