Simulated USB Device Proxy for Remote Server Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing remote systems, such as Terminal Service and Virtual Desktop Infrastructure, face challenges in enabling USB device functionality on remote servers due to the inability of server-side applications to directly communicate with client-side USB devices, requiring high-level redirection which restricts the installation of locally designed applications and is impractical in enterprise environments where the server is not readily accessible.
Innovation Solution
The creation of a simulated USB device at the remote server, which acts as a proxy for the client-side USB device, allowing server-side applications to send requests to the simulated device for processing and forwarding to the actual device, using a globally unique identifier and generic USB device driver to facilitate communication and redirect isochronous requests.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If high-level redirection is used to enable USB device functionality on remote servers, then server-side applications can interface with USB devices through client-side drivers, but locally designed applications cannot access low-level interfaces of USB devices
Solution Approach 1:
The patent creates a simulated USB device at the remote server that copies the essential characteristics and interfaces of the actual USB device connected to the client. This simulated device includes a device driver and interface that mirror the physical device, allowing server-side applications to interact with it as if directly connected. The simulation enables low-level interface access without requiring physical connection or complex high-level redirection architecture.
2Ease of operation
If USB devices are connected directly to remote servers, then server-side applications can access devices directly, but this is not practical in enterprise environments where servers are not readily accessible
Solution Approach 1:
The patent introduces a simulated USB device as an intermediary between the actual USB device connected to the client and the server-side applications. The simulated device acts as a proxy that receives requests from the server, processes them locally, and forwards commands to the physical device. This intermediary enables indirect access to USB devices in remote server environments without requiring physical server accessibility or direct device connection to the server.
3Ease of manufacture
If USB device drivers are installed on client systems, then local applications can control USB devices, but replacing client computer systems becomes problematic after installations
Solution Approach 1:
The patent creates a simulated USB device with its own device driver installed on the remote server, copying the functionality needed to interface with USB devices. This eliminates the requirement for USB device drivers to be installed on client systems. When clients connect to the remote server, they access USB devices through the simulated device on the server, which handles all driver-level communications. This approach simplifies client system replacement since no USB-specific driver installations are required on client machines.
Data Source
AI summary
The present disclosure provides systems and method for redirecting control of a client side connected USB device from the client to the server in a remote system. Specifically, the present disclosure creates a simulated USB device at the server. The simulated USB device is treated as a proxy for a redirected USB device at the client. The client side redirected USB device is not treated as the USB device but, rather, acts as a pass through to facilitate communication between requesting applications and the client connected device. The simulated USB device allows an application to send requests for a local device to the simulated USB device at the server. The simulated USB device then processes the requests and forwards the requests to the local device connected to the client.


