Virtualized Resource Access for Incompatible Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Incompatible software applications and versions often face compatibility and sociability issues when executed on the same computer system, leading to installation and execution problems, especially in multi-user environments where resources are shared.

Innovation Solution

The solution involves virtualizing user and application access to native resources like the file system, registry database, and system objects, allowing multiple applications to use the same resources without modification, by creating a virtualized view of these resources that can be managed using standard tools and techniques, enabling the coexistence of incompatible applications on a single computer system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple incompatible applications are executed on the same computer system, then application compatibility is improved, but resource conflicts and system stability deteriorate

Engineering Contradiction:
Improveapplication compatibilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments the shared resource space into application-specific virtualized resource spaces. Each application receives a dedicated view of resources (files, registry keys, system objects) that is isolated from other applications, eliminating conflicts while maintaining system stability. The isolation layer divides the monolithic resource access model into separate, controllable segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary isolation layer is introduced between applications and native resources. This layer intercepts resource access requests, translates them into application-specific virtualized paths, and manages resource allocation. The intermediary resolves conflicts by routing requests through virtualization rules without exposing underlying resource conflicts to applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If a unified view of native resources is provided to all applications, then ease of operation is improved, but application conflicts worsen

Engineering Contradiction:
Improveresource access simplicityVSAvoidapplication compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

Instead of providing a unified view and managing conflicts, the system inverts the approach by providing separate virtualized views to each application. Each application sees a unified, conflict-free view of resources tailored to its needs, while the underlying unified native resource space is managed by the virtualization layer through path translation and isolation rules.

Inventive Principle:
Principle #13The other way round (Inversion)

3Adaptability or versatility

If virtualization layers are introduced to isolate applications, then application compatibility is improved, but system complexity worsens

Engineering Contradiction:
Improveapplication compatibilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The virtualization layer is designed as a universal intermediary that handles multiple resource types (files, registry, system objects) through a single cohesive mechanism. Rather than implementing separate virtualization systems for each resource type, the layer provides multi-functional resource access management that simplifies the overall system architecture while maintaining compatibility.

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

Data Source

PatentUS8095940B2Method and system for locating and accessing resources
Publication Date: 2012.01.10 CITRIX SYSTEMS INC
  • US8095940B2 patent drawing
  • US8095940B2 patent drawing
  • US8095940B2 patent drawing

AI summary

In a method for accessing resources provided by an operating system, a request for a resource is received by an application program executing inside an environment. A first identifier associated with the resource is acquired. A registry is consulted, responsive to an association between a first identifier associated with the resource and a second identifier associated with the resource, the association associated with the environment. The resource and an environment on which to launch the resource are identified, responsive to consulting the registry. The second identifier is associated with the resource, with the environment, and with the environment on which to launch the resource. A registry key for the resource is stored in the registry, the registry key comprising the second identifier. The request for the resource is redirected to the identified instance of the resource, responsive to the second identifier. The request for the resource is responded to using the instance of the resource located in the environment on which the resource resides. The requested resource is launched in the identified environment, responsive to the second identifier.