Terminal Server Virtualization for Legacy Application Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy applications designed for single-user environments face compatibility issues when deployed on terminal servers due to multi-user access and privilege requirements, leading to data corruption and execution failures.
Innovation Solution
A virtual single-user system is created within the terminal server environment using filter drivers and API shims, providing a configuration layer to redirect resources and simulate a single-user experience for each client, allowing multiple users to access shared resources without corruption and enabling non-privileged users to write to protected areas.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If legacy applications are deployed on terminal server environment, then multi-user access capability is improved, but application compatibility and execution reliability deteriorate due to multi-user access conflicts and privilege issues
Solution Approach 1:
The patent segments the terminal server environment into multiple virtual single-user sessions, where each user receives a dedicated virtual environment that simulates exclusive access to system resources. This segmentation isolates users from each other, preventing conflicts while maintaining multi-user access capability.
Solution Approach 2:
The patent introduces a session virtualization layer as an intermediary between legacy applications and the terminal server environment. This virtualization layer intercepts and manages resource access requests, redirecting them appropriately to prevent conflicts and maintain application compatibility without requiring application modifications.
2Ease of operation
If applications are designed for single-user environment with exclusive resource access, then application execution simplicity is improved, but multi-user environment compatibility deteriorates due to data corruption and access conflicts
Solution Approach 1:
Instead of modifying legacy applications to work in multi-user environments, the patent inverts the approach by bringing the single-user environment to the multi-user terminal server. Each user receives a virtualized single-user session, allowing applications to run as intended without modification while the system handles multi-user requirements.
Solution Approach 2:
The patent creates virtual copies of single-user system environments for each terminal server session. These virtual copies include virtual file systems, registries, and named objects that mimic the exclusive resource access characteristics of single-user environments, allowing legacy applications to operate without modification.
3Reliability
If virtual single-user system is implemented for each client, then application compatibility is improved, but system complexity increases due to resource virtualization and configuration management
Solution Approach 1:
The patent implements a universal session virtualization framework that handles multiple functions through a single mechanism. The virtualization layer manages file system redirection, registry virtualization, named object isolation, and privilege simulation through unified filter drivers and API shims, reducing overall system complexity despite the sophisticated virtualization capabilities.
Solution Approach 2:
The session virtualization system implements self-service mechanisms where the configuration layer automatically manages virtual environment setup and resource allocation based on application requirements. The system self-configures virtual file systems, registries, and security contexts without requiring manual intervention, reducing operational complexity.
Data Source
AI summary
Systems, methods and computer-readable storage media are disclosed for providing a virtual single-user session to a client in a terminal server session. In an embodiment, requests to a resource in the system-space of a system made by an application are intercepted. A determination is made as to whether to virtualize the resource for the application. Where the resource is to be virtualized, a user-specific virtualized resource is created or maintained in user-space and provided to the application.


