WO2017054454A1 - 对usb设备的访问方法、装置、终端、服务器及系统 - Google Patents

对usb设备的访问方法、装置、终端、服务器及系统 Download PDF

Info

Publication number
WO2017054454A1
WO2017054454A1 PCT/CN2016/081261 CN2016081261W WO2017054454A1 WO 2017054454 A1 WO2017054454 A1 WO 2017054454A1 CN 2016081261 W CN2016081261 W CN 2016081261W WO 2017054454 A1 WO2017054454 A1 WO 2017054454A1
Authority
WO
WIPO (PCT)
Prior art keywords
usb device
terminal
server
access
physical usb
Prior art date
Application number
PCT/CN2016/081261
Other languages
English (en)
French (fr)
Inventor
李明灯
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP16850079.1A priority Critical patent/EP3340063A4/en
Publication of WO2017054454A1 publication Critical patent/WO2017054454A1/zh
Priority to US15/940,384 priority patent/US10552348B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Definitions

  • USB device Whether the USB device is mapped to the remote virtual desktop, and if yes, the USB client is notified to the USB client on the terminal side to enable the USB client to forward the open redirection notification to the USB universal driver;
  • the USB universal driver turns on the redirection of the USB message according to the open redirection notification, and feeds back the result to the USB server through the USB client; the server learns that the USB device successfully turns on the redirection function according to the opening result, and passes the USB virtual bus.
  • the virtual device that created the USB device ie, the virtual USB device in Figure 1) is driven.
  • the first processing operation specifically includes: And performing, by the terminal, a second access operation performed by the physical USB device, and acquiring an execution result of the second USB access operation by the physical USB device;
  • the second processing policy is obtained by the server, according to the device information of the physical USB device, when the terminal accesses the physical USB device, and is sent to the terminal. Also includes:
  • the method further includes:
  • the method further includes:
  • an access device for a USB device the system to which the system includes a terminal and a server, the server running a virtual desktop system, wherein the virtual desktop system is used when the terminal accesses a physical USB device
  • the physical USB device is mapped to a virtual USB device; the device includes:
  • FIG. 6 is a flowchart of a method for accessing a USB device according to an embodiment of the present invention.
  • USB/serial parallel port service client and the server interact to implement mapping redirection of various peripherals; the display service client and the server interact to implement remote virtual desktop delivery to the terminal display; and the audio service client and the server interact to implement two-way audio mapping; Multimedia service client and server interaction to play and record multimedia services; mouse and keyboard service client and server Implement keyboard and mouse mapping to a remote virtual desktop system.
  • the operating system kernel provides some API (Application Programming Interface) interfaces suitable for user-mode writing drivers, it is different on different OS (Operating System) platforms, so in order to achieve the same "USB” Universal driver", which can support multiple OS platforms across platforms, needs to abstract the adaptation layer to shield the differences between various operating systems.
  • the adaptation layer provides a unified, platform-independent, easy-to-use, high-level API suitable for USB driver development.
  • the package is implemented in a user-mode-written USB-driven API interface provided by various operating systems to implement these advanced functions. API function.
  • the user-mode USB universal driver can be decomposed into the architecture shown in FIG.
  • the access request is triggered by the server when detecting the operation of the virtual USB device
  • the first processing operation specifically includes: the second access operation performed by the terminal on the physical USB device. And obtaining an execution result of the physical access operation performed by the physical USB device;
  • the first processing policy is obtained by the server according to the device information of the physical USB device and is sent to the terminal when the terminal accesses the physical USB device, and the first processing policy instructs the terminal to periodically read data and cache from the physical USB device.
  • the data read; the method also includes:
  • the server sends an access request to the terminal if the operation of the virtual USB device is detected.
  • the server after the server creates a virtual USB device corresponding to the physical USB device accessed by the terminal, the server sends an access request for the virtual USB device to the terminal, and the terminal determines that the access operation indicated by the access request is the first After an access operation, the first processing operation corresponding to the first access operation is performed according to the stored compatibility policy. Since the compatibility policy sets the action performed by the terminal in response to the first access operation when the physical access device does not support the first access operation, the physical USB device can still be designed even if the physical USB device is not designed according to the standard USB protocol specification. Correct redirection based on the access request improves the compatibility of USB redirection and solves the problem that some physical USB devices that are not designed according to a standard USB protocol cannot be redirected, providing the user with normal physical USB devices. The guarantee.
  • the compatibility policy is delivered to the terminal.
  • the method before obtaining a compatibility policy that matches device information of the physical USB device, the method further includes:
  • the method further includes:
  • the method further includes:
  • the terminal monitors the insertion event of the physical USB device, obtain the device information of the terminal accessing the physical USB device, and upload the device information of the physical USB device to the server.
  • the USB client monitors the insertion event of the physical USB device. After that, the USB client obtains the device information of the inserted physical USB device, encapsulates the device information, and sends the device information to the USB server on the server side.
  • the server belongs to the remote data center.
  • the device information includes at least a device instance identifier of the physical USB device and descriptor information of the physical USB device.
  • the vendor ID idVendor
  • the product ID idProduct
  • the device code bcdDevice
  • the device type code bDeviceClass
  • the device subtype code bDeviceSubClass
  • the device protocol code bDeviceProtocol
  • the server After receiving the device information of the physical USB device, if the server determines that the physical USB device can be mapped to the virtual USB device by using the virtual desktop system, the server obtains a compatibility policy or a processing policy that matches the device information of the physical USB device.
  • the USB redirection framework provides a redirection mapping management policy configuration method, and configures a redirection mapping policy according to the configuration rule to flexibly control whether the physical USB device is allowed to be redirected.
  • the common management policy configuration methods are as follows:
  • the device information is configured to match the matching condition values of physical USB devices such as idVendor, idProduct, bcdDevice, bDeviceClass, bDeviceSubClass, and bDeviceProtocol, and the device information satisfies the matching condition.
  • physical USB device that allows or disables physical USB device redirection control. The following is a sample mapping policy configuration rule:
  • the maximum value of hex-number for (bDeviceClass, bDeviceSubClass, bDeviceProtocol) is FF; the maximum value of hex-number for (idVendor, idProduct, bcdDevice) is FFFF.
  • bDeviceClass in the device information If the value of bDeviceClass in the device information is 0E, it is determined that the physical USB device is prohibited from being redirected, that is, the physical USB device cannot be mapped to a virtual USB device through the virtual desktop system; if the value of bDeviceClass in the device information is not If it is 0E, it is judged that the redirection of the physical USB device is allowed, and the physical USB device can be mapped into a virtual USB device through the virtual desktop system.
  • the physical USB device is likely to have irregular behavior, so that during the redirection process, if the physical USB device does not support the access operation for non-standard behavior, the physical USB device cannot Correct redirection based on access operations, even unable to achieve redirection, so that it does not work.
  • the USB redirection framework shown in the embodiment of the present invention provides an irregular behavior.
  • the access operation corresponds to the first processing operation.
  • one soft parameter in Table 1 corresponds to an access operation and a processing operation for the access operation. That is, a soft parameter records the correspondence between the access operation and the processing operation. Therefore, in a specific implementation process, the correspondence between the first access operation and the first processing operation in the compatibility policy may be recorded by using the soft parameter in the non-standard behavior list. And indicating, when the terminal detects that the soft parameter is included in the compatibility policy, performing a first processing operation corresponding to the first access operation. After obtaining the first access operation that the physical USB device does not support, the first processing operation set for the first access operation, and the device information of the physical USB device, the device information between the physical USB device and the soft parameter is obtained. The correspondence is recorded in the compatibility policy, that is, the correspondence between the first access operation, the first processing operation, and the device information of the physical USB device is recorded in the compatibility policy.
  • the USB redirection framework provides two mechanisms for implementing a compatibility policy, namely a whitelist mechanism and a soft parameter mechanism.
  • a whitelist is set in the whitelist mechanism to store device information of known physical USB devices and soft parameters set for their known irregular behaviors.
  • a soft parameter list is set in the soft parameter mechanism, which stores the device information of the newly inserted physical USB device and the soft parameter set for the specified irregular behavior.
  • the specified irregular behavior belongs to the above known irregular behavior.
  • the compatibility policy matching the device information of the physical USB device is obtained, that is, the soft parameter matching the device information of the physical USB device is obtained from the whitelist or the soft parameter list.
  • the whitelist list is set as follows:
  • a whitelist is generated based on the list of non-standard behaviors and device information of known physical USB devices.
  • the information contained in the whitelist is built into the code implementation, so that the user can use the known physical USB device without any additional operations to make the known physical USB device work normally.
  • the soft parameter list is set as follows:
  • the USB client on the terminal side detects that a physical USB device is inserted, the device information of the physical USB device is acquired, and the device information is uploaded to the USB server on the server side.
  • the USB server on the server side determines whether to allow the physical USB device to be mapped to virtual through the virtual desktop system according to the stored redirect mapping policy.
  • a USB device if it is allowed, it searches for a soft parameter value matching the device information in the whitelist list and the soft parameter list according to the device information; if it exists, it acquires the device information matching the physical USB device. Soft parameter.
  • the USB client on the terminal side checks whether the open redirection notification carries an additional message that matches the device information of the physical USB device. If it is carried, the soft parameter value included in the additional message is saved to the device instance corresponding to the physical USB device information, so as to be used for subsequent access operation or advanced function of the physical USB device irregular behavior. At the same time, the USB client performs the operation of turning on the physical USB device redirection function, allowing it to be redirected. After performing the operation of turning on the redirection function on the physical USB device, the USB client sends a redirection result to the USB server on the server side. If the redirection function is enabled successfully, the operation success result is sent; if the redirection function fails, the operation failure result is sent.
  • the advanced function of the lossless compression mechanism is added, so that in the process of communication between the USB client and the USB server, one end supports lossless compression of the data to be transmitted, and the other end receives the data and performs non-destructive decompression. The message is restored, reducing the network transmission bandwidth occupied during communication. Since lossless compression is not ideal for compressing all physical USB device interaction data, and enabling lossless compression will increase the interaction time, the lossless compression function is turned off by default. When a physical USB device needs to enable lossless compression, the soft parameter corresponding to the lossless compression function can be set in the soft parameter list or the whitelist. Then, after detecting the soft parameter matching the device information of the physical USB device, the lossless compression function is turned on for the physical USB device.
  • the principle of the interrupt transmission simulation mechanism is: by actively constructing a physical USB device interrupt transmission URB (USB Request Block) message input request, and simulating the transmission of the interrupt transmission URB message input request to the terminal side insertion
  • the physical USB device reads the data generated by the physical USB device at this time, so that the interrupt data generated by the physical USB device can be taken away in time. After that, the interrupt data taken away is cached.
  • the interrupt data is preferentially obtained from the buffer area.
  • the USB client detects that the USB server has officially interrupted the transmission of the URB message input request, it will retrieve the corresponding data from the cache queue according to the principle of first in, first out and send it to the server.
  • the terminal compresses the data obtained by accessing the physical USB device, and feeds back the compressed data to the server.
  • the corresponding soft parameter is set for the first processing policy and the second processing policy, respectively, so that when the terminal receives the soft parameter indicating the advanced function that matches the device information of the accessed physical USB device, Enables advanced functions corresponding to soft parameters for the connected physical USB device.
  • the advanced function corresponding to the soft parameter may also be enabled when the accessed physical USB device needs to perform corresponding data transmission, which is not specifically limited in this embodiment of the present invention.
  • the server provides a remote virtual desktop for the user to operate on the terminal side through the virtual desktop system, and provides an access interface of the virtual USB device in the remote virtual desktop, so that the user operates the access interface to trigger the server to generate an access request.
  • the USB virtual bus driver on the server side obtains the user's I/O request operation or other access control operation for the virtual USB device, the operation or access control will be requested.
  • the operation is encapsulated into an access request; the USB server reads and forwards the access request to the terminal, and after receiving the access request, the USB client on the terminal side performs corresponding processing on the physical USB device according to the access operation indicated by the access request.
  • the first processing operation specifically includes: performing, by the USB client on the terminal side, the physical USB device And the obtaining operation result of the second access operation is performed by the physical USB device, and the execution result is fed back to the USB server on the server side. That is, the USB client sends the second access operation to the physical USB device, and the physical USB device pairs the second. The access operation responds.
  • the third case if a soft parameter matching the device information of the physical USB device is found in the first configuration information list and the second configuration information list, determining the soft parameter value in the first configuration list and the second parameter Whether there is a conflict between the first processing operations corresponding to the soft parameter values in the configuration information list; if there is a conflict, the first processing operation corresponding to the soft parameter value in the first configuration information list is performed.
  • Correct redirection based on the access request improves the compatibility of USB redirection and solves the problem that some physical USB devices that are not designed according to a standard USB protocol cannot be redirected, providing the user with normal physical USB devices.
  • the embodiment of the present invention also provides a physical USB device.
  • the processing strategy can improve the reliability and applicability of the work, and can be controlled and activated through the compatibility policy. Therefore, some USB devices can be reduced by network conditions (such as delay, bandwidth), etc., ensuring that the USB device can work normally. The probability.
  • FIG. 12 is a schematic structural diagram of an apparatus for accessing a USB device according to an embodiment of the present invention.
  • the apparatus includes: a receiving module 1201, a determining module 1202, and a processing module 1203.
  • the receiving module 1201 is connected to the determining module 1202, and is configured to receive an access request sent by the server.
  • the access request is triggered by the server when detecting the operation of the virtual USB device.
  • the determining module 1202 is connected to the processing module 1203, and is configured to determine the access request.
  • the first processing policy is obtained by the server according to the device information of the physical USB device and is sent to the terminal when the terminal accesses the physical USB device, and the first processing policy instructs the terminal to periodically read data and cache from the physical USB device.
  • the read data; the processing module is further configured to: execute, by the terminal, the first processing policy, so that the terminal responds to the request of the server to read data from the physical USB device Use the cached data feedback server directly.
  • FIG. 13 is a schematic structural diagram of an apparatus for accessing a USB device according to an embodiment of the present invention.
  • the apparatus includes: a detecting module 1301, a sending module 1302, and a receiving module 1303.
  • the detecting module 1301 is connected to the sending module 1302, and is configured to detect whether there is an operation on the virtual USB device after mapping the physical USB device accessed by the terminal into the virtual USB device by using the virtual desktop system; the sending module 1302 and the receiving module 1303 The connection is used to send an access request to the terminal if the operation of the virtual USB device is detected. After the terminal determines that the access request indicates the first access operation to the physical USB device, the terminal performs the first policy according to the compatibility policy issued by the server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种对USB设备的访问方法、装置、终端、服务器及系统,属于计算机技术领域。方法包括:终端接收服务器下发的访问请求(601);终端判断访问请求所指示的访问操作是否为第一访问操作(602);若访问请求指示终端对物理USB设备进行第一访问操作,根据兼容策略执行与第一访问操作对应的第一处理操作,以便向服务器反馈第一处理操作的执行结果(603)。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照某种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,解决了某些未按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。

Description

对USB设备的访问方法、装置、终端、服务器及系统 技术领域
本发明涉及计算机技术领域,特别涉及一种对USB设备的访问方法、装置、终端、服务器及系统。
背景技术
通过远程桌面协议将服务器侧运行的远程虚拟桌面系统提供的远程虚拟界面投递到本地的各种终端上,供终端侧的用户使用;同时,通过远程桌面协议能把与终端侧接入的各种物理外设映射到服务器侧的远程虚拟桌面系统中,并在为该终端侧提供的远程虚拟桌面中显示该外设的虚拟外设,用户在终端侧操作该虚拟设备可实现对物理外设的操作。远程桌面协议涉及终端侧和服务器侧的交互,协议内部根据不同功能划分为不同的交互服务实现。其中,对于USB(Universal Serial Bus,通用串行总线)服务,也是通过终端侧和服务端侧交互将终端侧连接的物理USB设备映射到远程虚拟桌面中,并在远程虚拟桌面映射出对应的虚拟USB设备来供用户操作。
图1是一种常见的远程桌面协议提供的USB重定向框架,分为终端侧和服务器侧。框架主体包括四部分:USB通用驱动、USB客户端、USB服务端和USB虚拟总线驱动。参见图1,USB通用驱动和USB客户端位于重定向框架的终端侧,USB服务端和USB虚拟总线驱动位于重定向框架的服务器侧。其中,USB通用驱动工作在终端侧的内核态,由操作系统加载并初始化,可以获取插入的USB设备的设备信息,以便USB客户端从USB通用驱动读取设备信息。USB客户端与USB服务端之间建立虚拟通道,USB服务端与USB客户端交互。USB虚拟总线驱动工作在服务器端的内核态,由虚拟桌面系统加载并初始化,向USB服务端提供动态创建或删除虚拟USB设备的能力。
基于图1提供的USB重定向框架,当有物理USB设备插入终端侧时,USB通用驱动会监听到该物理USB设备的插入事件。之后,USB客户端从USB通用驱动中读取该USB设备的设备信息,并将读取的设备信息上传至USB服务端。USB服务端作为远程虚拟桌面系统中提供USB服务(属于系统服务)的进程或线程,在接收到该设备信息后,根据重定向映射策略判断 是否支持将该USB设备映射到远程虚拟桌面上,若支持,则向终端侧的USB客户端下发该USB设备的开启重定向通知以便USB客户端将该开启重定向通知转发至USB通用驱动;USB通用驱动依据该开启重定向通知开启USB消息的重定向,并通过USB客户端向USB服务端反馈开启结果;服务端根据该开启结果获知该USB设备成功开启重定向功能后,通过USB虚拟总线驱动创建该USB设备的虚拟设备(即图1中的虚拟USB设备)。
将插入的物理USB设备成功在所述远程虚拟桌面系统中成功映射为虚拟USB设备后,若USB虚拟总线驱动获取到用户针对虚拟USB设备的I/O请求操作或者其他访问控制操作,将访问控制操作封装成操作请求信息,以便USB服务端读取该操作请求消息;USB服务端将该操作请求消息下发至USB客户端,以便USB客户端将该操作请求消息转发至USB通用驱动;USB通用驱动转发该操作请求消息给插入的物理USB设备进行处理。在实现该现有技术的过程中可能存在以下问题:
由于终端侧的USB通用驱动基本上完全按照某一种标准USB协议规范来重定向的,如果物理USB设备不是按照该种标准USB协议规范来设计的,物理USB设备无法依据该操作请求消息进行正确的重定向,甚至根据该操作请求消息无法实现重定向,影响用户正常使用物理USB设备。
发明内容
为了解决现有技术的问题,本申请提供了一种对USB设备的访问方法、装置、终端、服务器及系统。所述技术方案如下:
一方面,提供了一种对USB设备的访问方法,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统,在所述终端接入有物理USB设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备;所述方法包括:
接收所述服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;
判断所述访问请求所指示的访问操作是否为第一访问操作;
若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
在一个可能的设计中,若所述物理USB设备支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的第二访问操作,所述第一处理操作具体包括:所述终端对所述物理USB设备执行的第二访问操作,以及获取所述物理USB设备执行所述第二访问操作的执行结果;
若所述物理USB设备不支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的其他访问操作,所述第一处理操作具体包括:所述终端直接获取所述第一访问操作的响应结果。
在一个可能的设计中,所述兼容策略由所述服务器根据所述物理USB设备的设备信息匹配获取并下发至所述终端。
在一个可能的设计中,若所述物理USB设备支持实现与所述第一访问操作不同功能的其他访问操作,则对所述物理USB设备执行所述访问请求所指示的其他访问操作,以及获取所述物理USB设备执行所述其他访问操作的执行结果,以便向所述服务器反馈所述其他访问操作的执行结果。
在一个可能的设计中,第一处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述第一处理策略指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;所述方法还包括:
所述终端执行第一处理策略,以便所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时直接使用缓存的数据反馈所述服务器。
在一个可能的设计中,第二处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述方法还包括:
所述终端执行第二处理策略,所述第二处理策略指示所述终端对访问所述物理USB设备所得的数据进行压缩处理,以便向所述服务器反馈压缩处理后的数据。
在一个可能的设计中,所述服务器通过所述虚拟桌面系统在所述终端提供供用户操作的远程虚拟桌面,并在所述远程虚拟桌面中提供所述虚拟USB 设备的访问接口,以便用户操作所述访问接口来触发所述服务器生成所述访问请求。
一方面,提供了一种对USB设备的访问方法,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统;所述方法包括:
在通过所述虚拟桌面系统将所述终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
若检测到对所述虚拟USB设备的操作,则向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
接收所述终端反馈的所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
在一个可能的设计中,所述方法还包括:
获取与所述物理USB设备的设备信息匹配的兼容策略;
将所述兼容策略下发至所述终端。
在一个可能的设计中,所述获取与所述物理USB设备的设备信息匹配的兼容策略之前,所述方法还包括:
获取所述物理USB设备不支持实现的所述第一访问操作、为所述第一访问操作设置的所述第一处理操作、所述物理USB设备的设备信息;
将所述第一访问操作、所述第一处理操作、所述物理USB设备的设备信息之间的对应关系记录至所述兼容策略中。
在一个可能的设计中,所述方法还包括:
为所述物理USB设备设置第一处理策略,所述第一处理策略用于指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;
存储所述第一处理策略与所述物理USB设备的设备信息之间的对应关系;
在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第一处理策略至所述终端,由所述终端执行所述 第一处理策略;
接收所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时反馈的缓存的数据。
在一个可能的设计中,所述方法还包括:
为所述物理USB设备设置第二处理策略,所述第二处理策略用于指示所述终端对访问所述物理USB设备所得的数据进行压缩处理;
存储所述第二处理策略与所述物理USB设备的设备信息之间的对应关系;
在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第二处理策略至所述终端,由所述终端执行所述第二处理策略;
接收所述终端反馈的压缩处理后的数据。
一方面,提供一种对USB设备的访问装置,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统,在所述终端接入有物理USB设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备;所述装置包括:
接收模块,用于接收所述服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;
判断模块,用于判断所述访问请求所指示的访问操作是否为第一访问操作;
处理模块,用于若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
在一个可能的设计中,所述处理模块,用于若所述物理USB设备支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的第二访问操作,所述第一处理操作具体包括:所述终端对所述物理USB设备执行的第二访问操作,以及获取所述物理USB设备执行所述第二访问操作的执行结 果;若所述物理USB设备不支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的其他访问操作,所述第一处理操作具体包括:所述终端直接获取所述第一访问操作的响应结果。
在一个可能的设计中,所述兼容策略由所述服务器根据所述物理USB设备的设备信息匹配获取并下发至所述终端。
在一个可能的设计中,所述处理模块,还用于若所述物理USB设备支持实现与所述第一访问操作不同功能的其他访问操作,则对所述物理USB设备执行所述访问请求所指示的其他访问操作,以及获取所述物理USB设备执行所述其他访问操作的执行结果,以便向所述服务器反馈所述其他访问操作的执行结果。
在一个可能的设计中,第一处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述第一处理策略指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;所述处理模块,还用于所述终端执行第一处理策略,以便所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时直接使用缓存的数据反馈所述服务器。
在一个可能的设计中,第二处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述处理模块,还用于所述终端执行第二处理策略,所述第二处理策略指示所述终端对访问所述物理USB设备所得的数据进行压缩处理,以便向所述服务器反馈压缩处理后的数据。
在一个可能的设计中,所述服务器通过所述虚拟桌面系统在所述终端提供供用户操作的远程虚拟桌面,并在所述远程虚拟桌面中提供所述虚拟USB设备的访问接口,以便用户操作所述访问接口来触发所述服务器生成所述访问请求。
一方面,提供一种对USB设备的访问装置,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统;所述装置包括:
检测模块,用于在通过所述虚拟桌面系统将所述终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
发送模块,用于若检测到对所述虚拟USB设备的操作,则向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行 第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
接收模块,用于接收所述终端反馈的所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
在一个可能的设计中,所述装置还包括:
获取模块,用于获取与所述物理USB设备的设备信息匹配的兼容策略;
所述发送模块,还用于将所述兼容策略下发至所述终端。
在一个可能的设计中,所述装置还包括:
所述获取模块,用于获取所述物理USB设备不支持实现的所述第一访问操作、为所述第一访问操作设置的所述第一处理操作、所述物理USB设备的设备信息;
存储模块,用于将所述第一访问操作、所述第一处理操作、所述物理USB设备的设备信息之间的对应关系记录至所述兼容策略中。
在一个可能的设计中,所述装置还包括:
设置模块,用于为所述物理USB设备设置第一处理策略,所述第一处理策略用于指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;
所述存储模块,还用于存储所述第一处理策略与所述物理USB设备的设备信息之间的对应关系;
所述发送模块,还用于在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第一处理策略至所述终端,由所述终端执行所述第一处理策略;
所述接收模块,还用于接收所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时反馈的缓存的数据。
在一个可能的设计中,所述设置模块,还用于为所述物理USB设备设置第二处理策略,所述第二处理策略用于指示所述终端对访问所述物理USB设备所得的数据进行压缩处理;
所述存储模块,还用于存储所述第二处理策略与所述物理USB设备的设 备信息之间的对应关系;
所述发送模块,还用于在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第二处理策略至所述终端,由所述终端执行所述第二处理策略;
所述接收模块,还用于接收所述终端反馈的压缩处理后的数据。
一方面,提供一种终端,包括:USB客户端;
所述USB客户端,用于接收服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;判断所述访问请求所指示的访问操作是否为第一访问操作;若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
一方面,提供一种服务器,包括:USB服务端和USB虚拟总线驱动;
所述USB虚拟总线驱动,用于在通过所述虚拟桌面系统将终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
在所述USB虚拟总线驱动检测到对所述虚拟USB设备的操作后,所述USB服务端用于读取并向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
所述USB服务端,用于接收所述终端反馈的所述第一处理操作的执行结果;
其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
一方面,提供一种对USB设备的访问系统,其特征在于,所述系统包括终端和服务器;所述服务器运行虚拟桌面系统,在所述终端接入有物理USB 设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备;
所述终端如权利要求所述的终端;
所述服务器如权利要求所述的服务器。
本申请提供的技术方案带来的有益效果是:
服务器在创建终端接入的物理USB设备对应的虚拟USB设备后,若终端接收到服务器发送的对虚拟USB设备的访问请求,则在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种常见的远程桌面协议提供的USB重定向框架原理图;
图2是一种远程虚拟桌面系统示意图;
图3是一种远程虚拟桌面系统架构图;
图4是本发明实施例提供的一种USB通用驱动处于用户态的USB重定向框架原理图;
图5是本发明实施例提供的一种用户态USB通用驱动分解图;
图6是本发明实施例提供的一种对USB设备的访问方法的流程图;
图7是本发明实施例提供的一种对USB设备的访问方法的流程图;
图8是本发明实施例提供的一种对USB设备的访问方法的流程图;
图9是本发明实施例提供的一种物理USB设备映射到远程虚拟桌面系统的流程图;
图10是本发明实施例提供的一种消息重定向的流程图;
图11是本发明实施例提供的一种消息重定向的流程图;
图12是本发明实施例提供的一种对USB设备访问装置的框图;
图13是本发明实施例提供的一种对USB设备访问装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例做进一步地解释说明之前,先对本发明实施例的相关背景知识进行介绍。
远程虚拟桌面是指计算和存储资源集中在远程服务器(一般为数据中心)。通过远程桌面协议将远程虚拟桌面的界面投递到本地的各种终端(如瘦客户机、台式计算机、便携计算机、平板电脑、智能手机等)上显示出来。同时能把本地终端的各种输入输出设备(如:键盘、鼠标、USB外设、串并口外设、耳机和麦克风等)映射到远程服务器。
一般的远程虚拟桌面系统如图2所示:远程数据中心集中了服务器资源和存储资源(200);通过虚拟化技术(210)虚拟出多个虚拟计算机(220)或者无需虚拟化技术直接使用物理计算机(221),在这些虚拟计算机或者物理计算机上安装操作系统(230),并通过远程桌面协议(250)将远程虚拟桌面的界面投递在本地终端(260)上显示出来,同时把本地终端上的输入输出设备映射到远程虚拟桌面的服务器。
远程虚拟桌面系统的架构如图3所示:包括终端(包括各种输入输出设备370)、桌面管理系统(371)、远程虚拟桌面计算机(372,373,374,375)三部分组成。桌面管理系统(371)主要是管理远程虚拟桌面计算机(372,373,374,375)和远程终端(370)的注册以及用户登录远程虚拟桌面的管理。本发明实施例提及的对USB设备的访问方法应用于的系统由终端和服务器组成,内部根据不同功能划分为不同的服务实现。比如,终端可包括USB/串并口服务客户端、显示服务客户端、音频服务客户端、多媒体服务客户端和键鼠服务客户端。其中,USB/串并口服务客户端和服务器交互实现各种外设的映射重定向;显示服务客户端和服务器交互实现远程虚拟桌面投递到终端显示器;音频服务客户端和服务器交互实现双向音频映射;多媒体服务客户端和服务器交互实现多媒体服务的播放和录制;键鼠服务客户端和服务器 实现键盘与鼠标映射到远程虚拟桌面系统中。
在远程虚拟桌面使用方式下,相对于传统计算机使用方式,在USB原生驱动与物理USB设备之间,增加了USB重定向框架。
图4所示为本发明实施例提供的一种USB通用驱动处于用户态的USB重定向框架,包括终端侧和服务器侧。框架主体包括四部分:USB通用驱动、USB客户端、USB服务端和USB虚拟总线驱动。USB通用驱动和USB客户端位于重定向框架的终端侧,USB服务端和USB虚拟总线驱动位于重定向框架的服务器侧。其中,USB通用驱动工作在终端侧的用户态,由USB客户端对其进行初始化,通常实现为与USB客户端整合到一起,运行在同一进程中,因此终端侧仅需一个合一的USB客户端。USB客户端(内含USB通用驱动所需具有的功能)一般作为应用程序运行,能实时监测物理USB设备的插入/拔除事件;能获取终端侧当前所有物理USB设备的设备列表及其状态信息;负责与USB服务端完成虚拟通道建立。USB服务端与USB客户端交互。USB虚拟总线驱动工作在服务器的内核态,由操作系统加载并初始化,向USB服务端提供动态创建或删除虚拟USB设备的能力。
由于操作系统内核向上提供的一些适合于用户态编写驱动的API(Application Programming Interface,应用程序编程接口)接口,在不同OS(Operating System,操作系统)平台上是不同的,因此为了实现同一“USB通用驱动”,能跨平台支持多个OS平台,需要抽象出适配层来屏蔽各种操作系统之间的差异。该适配层向上提供统一的、与平台无关的、易于使用的、适合于进行USB驱动开发的高级API,向下封装使用各种操作系统提供的用户态编写USB驱动的API接口来实现这些高级API功能。这样用户态USB通用驱动则可分解为如图5所示的架构。采用基于用户态驱动方式实现远程虚拟桌面中的USB重定向功能,解除了USB重定向部分应用场景的限制,解决了USB重定向与终端侧的OS平台强相关问题,更易支持多种类型的终端,更易与第三方终端进行集成。
上述USB重定向框架在工作过程中,当有物理USB设备插入终端时,USB客户端会监听到物理USB设备的插入事件通知。之后,USB客户端获取该物理USB设备的设备信息,并将获取的设备信息上传至USB服务端。USB服务端在接收到该设备信息后,根据重定向映射策略判断该物理USB设备是否可映射到远程虚拟桌面系统中;若该物理USB设备可映射到远程虚 拟桌面系统中,则向终端下发开启重定向通知,在该物理USB设备成功开启重定向功能后,创建与该物理USB设备对应的虚拟USB设备。
在插入的物理USB设备成功映射到远程虚拟桌面后,若USB虚拟总线驱动获取到用户针对虚拟USB设备的I/O访问请求或者其他访问请求,将该访问请求封装成操作请求信息;USB服务端读取该操作请求消息,并将该操作请求消息下发至USB客户端;USB客户端在判断需将该操作请求消息转发给物理USB设备后,将该操作请求消息发送给物理USB设备,由物理USB设备对该操作请求消息进行响应。
图6是本发明实施例提供的一种对USB设备的访问方法的流程图。参见图6,本发明实施例提供的方法流程包括:
601、终端接收服务器下发的访问请求。
其中,访问请求由服务器在检测到对虚拟USB设备操作时触发;
602、终端判断该访问请求所指示的访问操作是否为第一访问操作;若访问请求指示终端对物理USB设备进行第一访问操作,则执行下述步骤603。
603、若访问请求指示终端对物理USB设备进行第一访问操作,根据兼容策略执行与第一访问操作对应的第一处理操作,以便向服务器反馈第一处理操作的执行结果。
其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作。
本发明实施例提供的方法,服务器在创建终端接入的物理USB设备对应的虚拟USB设备后,若终端接收到服务器发送的对虚拟USB设备的访问请求,则在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。
可选地,若物理USB设备支持实现与第一访问操作相同功能的、且不同于第一访问操作的第二访问操作,第一处理操作具体包括:终端对物理USB设备执行的第二访问操作,以及获取物理USB设备执行第二访问操作的执行结果;
若物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的其他访问操作,第一处理操作具体包括:终端直接获取第一访问操作的响应结果。
可选地,兼容策略由服务器根据物理USB设备的设备信息匹配获取并下发至终端。
可选地,该方法还包括:
若物理USB设备支持实现与第一访问操作不同功能的其他访问操作,则对物理USB设备执行访问请求所指示的其他访问操作,以及获取物理USB设备执行其他访问操作的执行结果,以便向服务器反馈其他访问操作的执行结果。
可选地,第一处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端,第一处理策略指示终端定期从物理USB设备读取数据、缓存读取到的数据;该方法还包括:
终端执行第一处理策略,以便终端在响应服务器期望从物理USB设备读取数据的请求时直接使用缓存的数据反馈服务器。
可选地,第二处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端,该方法还包括:
终端执行第二处理策略,第二处理策略指示终端对访问物理USB设备所得的数据进行压缩处理,以便向服务器反馈压缩处理后的数据。
可选地,服务器通过虚拟桌面系统在终端提供供用户操作的远程虚拟桌面,并在远程虚拟桌面中提供虚拟USB设备的访问接口,以便用户操作访问接口来触发服务器生成访问请求。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图7是本发明实施例提供的一种对USB设备的访问方法的流程图。参见图7,本发明实施例提供的方法流程包括:
701、服务器在通过虚拟桌面系统将终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对虚拟USB设备的操作。
702、服务器若检测到对虚拟USB设备的操作,则向终端下发访问请求。
其中,终端在确定访问请求指示对物理USB设备进行第一访问操作后,根据服务器下发的兼容策略执行与第一访问操作对应的第一处理操作。
703、接收终端反馈的第一处理操作的执行结果。
其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作。
本发明实施例提供的方法,服务器在创建终端接入的物理USB设备对应的虚拟USB设备后,向终端下发针对虚拟USB设备的访问请求,终端在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。
可选地,该方法还包括:
获取与物理USB设备的设备信息匹配的兼容策略;
将兼容策略下发至终端。
可选地,获取与物理USB设备的设备信息匹配的兼容策略之前,该方法还包括:
获取物理USB设备不支持实现的第一访问操作、为第一访问操作设置的第一处理操作、物理USB设备的设备信息;
将第一访问操作、第一处理操作、物理USB设备的设备信息之间的对应关系记录至兼容策略中。
可选地,该方法还包括:
为物理USB设备设置第一处理策略,第一处理策略用于指示终端定期从物理USB设备读取数据、缓存读取到的数据;
存储第一处理策略与物理USB设备的设备信息之间的对应关系;
在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第一处理策略至终端,由终端执行第一处理策略;
接收终端在响应服务器期望从物理USB设备读取数据的请求时反馈的缓存的数据。
可选地,该方法还包括:
为物理USB设备设置第二处理策略,第二处理策略用于指示终端对访问物理USB设备所得的数据进行压缩处理;
存储第二处理策略与物理USB设备的设备信息之间的对应关系;
在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第二处理策略至终端,由终端执行第二处理策略;
接收终端反馈的压缩处理后的数据。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图8是本发明实施例提供的一种对USB设备的访问方法的流程图。参见图8,本发明实施例提供的方法流程包括:
801、当终端监听到物理USB设备的插入事件时,获取终端接入物理USB设备的设备信息,并将该物理USB设备的设备信息上传至服务器。
在本发明实施例中,当本地终端侧插入物理USB设备时,USB客户端会监听到物理USB设备的插入事件。之后,USB客户端获取插入的物理USB设备的设备信息,并将该设备信息进行封装后,发送至服务器侧的USB服务端。
其中,服务器属于远程数据中心。设备信息至少包括物理USB设备的设备实例标识和物理USB设备的描述符信息。比如,供应商ID(idVendor)、产品ID(idProduct)、设备出厂码(bcdDevice)、设备类型代码(bDeviceClass)、设备子类型代码(bDeviceSubClass)、设备协议代码(bDeviceProtocol)等,本发明实施例对此不进行具体限定。
802、服务器在接收到该物理USB设备的设备信息后,若确定该物理USB设备可通过虚拟桌面系统映射成虚拟USB设备,则获取与该物理USB设备的设备信息匹配的兼容策略或处理策略。
其中,兼容策略记录了服务器期望对物理USB设备执行的第一访问操作与终端响应该第一访问操作的第一处理操作之间的对应关系。其中,第一访问操作是指对根据已知物理USB设备统计出来的不规范行为的访问操作。
其中,处理策略指示了针对物理USB设备的高级功能的处理方式,至少包括第一处理策略、第二处理策略。其中,第一处理策略指示终端定期从物理USB设备读取数据、缓存读取到的数据,比如中断传输模拟机制。第二处理策略指示终端对访问物理USB设备所得的数据进行压缩处理,以便向服务器反馈压缩处理后的数据,比如无损压缩机制。
通常情况下,USB重定向框架会提供重定向映射管理策略配置手段,根据配置规则配置重定向映射策略来灵活控制物理USB设备是否允许被重定向。常见的管理策略配置手段如下:
首先,提供物理USB设备重定向总开关,配置是否允许通过虚拟桌面系统将物理USB设备映射成虚拟USB设备。
其次,通过定义一套针对物理USB设备支持通配符的配置规则,用来配置设备信息为指定idVendor、idProduct、bcdDevice、bDeviceClass、bDeviceSubClass、bDeviceProtocol等物理USB设备的匹配条件值,对设备信息满足匹配条件的物理USB设备,进行允许或禁止物理USB设备重定向控制。如下是一种映射策略配置规则样例:
rule:=(ALLOW|DENY):(match(match)*)?;
match:=(idVendor|idProduct|bcdDevice|bDeviceClass|bDeviceSubClass|bDeviceProtocol)=hex-number。
其中,对于(bDeviceClass、bDeviceSubClass、bDeviceProtocol)的hex-number最大值为FF;对于(idVendor、idProduct、bcdDevice)的hex-number最大值为FFFF。例如,重定向映射策略为DENY:bDeviceClass=0E,表示禁止设备类型代码bDeviceClass为0E的视频类物理USB设备重定向。若服务器检测到该设备信息中bDeviceClass的值为0E,则判断禁止该物理USB设备重定向,即不可通过虚拟桌面系统将该物理USB设备映射成虚拟USB设备;若该设备信息中bDeviceClass的值不为0E,则判断允许该物理USB设备的重定向,即可通过虚拟桌面系统将该物理USB设备映射成虚拟USB设备。
在本发明实施例中,对于一些不是按照某一种标准USB协议规范来设计 的物理USB设备,该物理USB设备很可能存在不规范行为,以至于在重定向过程中,若不对这些物理USB设备不支持实现的针对不规范行为的访问操作进行处理,则该物理USB设备无法依据访问操作进行正确的重定向,甚至无法实现重定向,使其不能正常工作。为了使得这些存在不规范行为的物理USB设备在重定向过程中能够正常工作,提高USB重定向框架对物理USB设备的兼容性,本发明实施例示出的USB重定向框架中提供了针对不规范行为的访问操作对应的第一处理操作。即,在将物理USB设备通过虚拟桌面系统映射成虚拟USB设备之前,可分别为已知物理USB设备的每一个已知不规范行为设置软参值,比如0x00000001这样的形式,并定义针对每一个已知不规范行为的访问操作(即第一访问操作)对应的第一处理操作,得到不规范行为列表,不规范行为列表的形式可如下述表1所示:
表1
Figure PCTCN2016081261-appb-000001
在生成不规范行为列表时,可参考下述方式实现:
获取已知物理USB设备的已知不规范行为和为每一个已知不规范行为设置的软参值;设置针对每一个已知不规范行为的访问操作(即第一访问操作)对应的第一处理操作;存储已知不规范行为、已知不规范行为的软参值与第一处理操作之间的对应关系,生成不规范行为列表。
如上述表1所示,表1中一个软参值对应一个访问操作和对该访问操作的处理操作。也即,一个软参值记录了访问操作与处理操作之间的对应关系。因此在具体实现过程中,可通过不规范行为列表中的软参值,记录兼容策略中的第一访问操作和第一处理操作之间的对应关系。用于指示终端在检测到兼容策略中包含该软参值时,执行与第一访问操作对应的第一处理操作。这样在获取到物理USB设备不支持实现的第一访问操作、为第一访问操作设置的第一处理操作、物理USB设备的设备信息后,将物理USB设备的设备信息与软参值之间的对应关系记录在兼容策略中,也即实现了将第一访问操作、第一处理操作、物理USB设备的设备信息之间的对应关系记录至兼容策略中。
可选地,USB重定向框架提供了两种实现兼容策略的机制,即白名单机制和软参机制。在白名单机制中设置了白名单列表,存储了已知物理USB设备的设备信息及针对其已知不规范行为设置的软参值。在软参机制中设置了软参列表,存储了新插入物理USB设备的设备信息及针对其指定不规范行为设置的软参值。其中,指定不规范行为属于上述已知不规范行为。这样,获取与该物理USB设备的设备信息匹配的兼容策略,即为从白名单列表或软参列表中获取与该物理USB设备的设备信息匹配的软参值。
其中,白名单列表的设置方式如下:
根据不规范行为列表和已知物理USB设备的设备信息,生成白名单列表。
其中,白名单列表的形式可参见下述表2。其中,ANY=0xFFFF,表示匹配时可忽略此字段。在具体的实现过程中,将白名单列表中包含的信息内置在代码实现中,这样用户在使用已知物理USB设备时,不用进行任何额外操作,便可使该已知物理USB设备正常工作。
表2
Figure PCTCN2016081261-appb-000002
Figure PCTCN2016081261-appb-000003
其中,软参列表设置方式如下:
若发现新插入的物理USB设备存在指定不规范行为且指定不规范行为属于已知不规范行为,则在不规范行为列表中获取指定不规范行为对应的软参值;将新插入的物理USB设备的设备信息和指定不规范行为的软参值之间的对应关系,添加至软参列表中。
需要说明的是,新插入的物理USB设备指代除已知物理USB设备之外的物理USB设备。在使用该类物理USB设备时,可通过测试发现该新插入的物理USB设备是否存在已知不规范行为;若存在已知不规范行为,则将该已知不规范行为与新插入的物理USB设备的设备信息存储至软参列表中。其中,软参列表是USB重定向框架实现的一种扩展机制,其中存储了新插入物理USB设备的设备信息以及新插入物理USB设备的不规范行为对应的软参值。这样当插入的物理USB设备不是白名单列表包括的物理USB设备,且该物理USB设备存在已知不规范行为时,便可通过配置界面将该物理USB设备的设备信息以及相应的软参值添加到软参列表中。由于在USB重定向框架的相应模块中,添加了关于软参列表的处理代码,因此在仅通过设置软参列表而不用修改代码的情况下,便可使该存在已知不规范行为的物理USB设备正常工作,提高了USB重定向框架的兼容性。
同样,为了增强USB重定向框架的适用性,可根据USB协议特点,以及网络条件(如时延、带宽)等对USB重定向的影响,有针对性的在USB重定向框架中提供一些高级功能,以解决实际使用场景中一些物理USB设备使用过程中可能遇到的特殊问题,本发明实施例中提供了高级功能列表来存储这些特殊问题及其对应的特殊处理策略,其中高级功能列表的设置过程如下:
获取为物理USB设备存在的特殊问题设置的高级功能;并设置每一个高级功能对应的特殊处理策略和软参值,其中软参值指示了物理USB设备的高级功能对应的特殊处理策略;存储高级功能、为高级功能设置的软参值与特殊处理策略之间的对应关系,生成高级功能列表。
在本发明实施例中,当物理USB设备存在特殊问题时,可根据高级功能 列表获取与其存在的特殊问题对应的软参值,并存储物理USB设备的设备信息与为高级功能设置的软参值之间的对应关系。在实现物理USB设备高级功能的过程中,可将物理USB设备的设备信息与为高级功能设置的软参值之间的对应关系可存储至软参列表中,或存储至白名单列表中,通过软参列表或白名单列表来获取与物理USB设备的设备信息匹配的软参值。本发明实施例对比不进行具体限定。这样,获取与该物理USB设备的设备信息匹配的特殊处理策略,也即为从白名单列表或软参列表中获取与该物理USB设备的设备信息匹配的软参值。其中,白名单列表内置在USB重定向框架中,减少后续遇到同样的USB设备还需要通过软参配置才支持的问题,默认提升兼容能力。其中,高级功能列表也可认为是不规范行为列表的一种特殊形式。高级功能列表的形式可如下述表3所示。
表3
Figure PCTCN2016081261-appb-000004
需要说明的是,当服务器检测到对虚拟USB设备的操作时,服务器侧的USB原生驱动会发起针对USB设备的操作请求,该操作请求需经过USB重定向框架转发至终端接入的物理USB设备,这个过程会受到网络条件的影响比如受到网络时延或带宽等因素的影响,使得某些USB设备不能正常工作。 以受到网络时延因素影响为例,对于USB协议中的中断传输方式,在USB原生驱动发起中断传输后,会周期性的通过中断端点查询终端侧的物理USB设备是否有数据需要传输。但由于网络时延的存在,导致服务器侧与终端侧的数据读取周期不一致,一般情况下终端侧的数据读取周期会大于服务器侧的数据读取周期。若此时物理USB设备产生的数据速度超过终端侧取走数据的速度,则终端侧会因数据没有及时被取走而被新接收的数据覆盖,导致部分数据丢失,进而物理USB设备不能正常工作。采用USB重定向框架中提供的高级功能,便可解决实际应用场景中该类USB设备不能正常工作的问题。
需要说明的是,在不规范行为列表和高级功能列表中,分别针对每一个不规范行为或高级功能设置了相应的软参值,该软参值指示了针对不规范行为的第一访问操作的第一处理操作和针对高级功能的特殊处理策略。其中,软参值可设置为16位、32位或64位的二进制数值,本发明实施例对此不进行具体限定。其中,不同的位代表不同的不规范行为或高级功能。以软参值为32位的二进制数值为例,比如现有3个不规范行为A、B、C。不规范行为A的软参值为0x00000001,占用32位中的右数第1位;不规范行为B的软参值0x00000002,占用32位中的右数第2位;不规范行为C的软参值为0x00000004,占用32位中的右数第3位。这样,若某一物理USB设备同时具有不规范行为A和不规范行为B,则其软参值为不规范行为A的软参值和不规范行为B的软参值的“按位或”运算结果,得到该物理USB设备的软参值为0x00000003。
对于高级功能的软参值的设置方式与上述方式相同,在此不再赘述。对于软参值为0x00000003的物理USB设备,若该物理USB设备的软参值与不规范行为列表或高级功能列表中每一个软参值进行“按位与”运算的结果,与不规范行为列表或高级功能列表中的某一软参值一致,则确定该物理USB设备支持该针对该软参值对应不规范行为的访问操作,或确定该物理USB设备可开启与该软参值对应的高级功能。
在本发明实施例中,当终端侧的USB客户端检测到有物理USB设备插入时,会获取该物理USB设备的设备信息,并将该设备信息上传至服务器侧的USB服务端。服务器侧的USB服务端接收到该设备信息后,根据存储的重定向映射策略判断是否允许该物理USB设备通过虚拟桌面系统映射成虚 拟USB设备;若允许,则根据该设备信息分别在白名单列表、软参列表中查找是否存在与该设备信息匹配的软参值;若存在,则获取与该物理USB设备的设备信息匹配的软参值。
需要说明的是,与物理USB设备的设备信息匹配的兼容策略和处理策略可在服务器获知终端接入物理USB设备时获取并下发至终端,比如携带在开启重定向通知中下发至终端;或者在物理USB设备接入终端后,由终端根据需要向服务器发送获取消息,服务器接收到获取消息后获取并下发至终端,本发明实施例对此不进行具体限定。本发明实施例仅以将兼容策略或处理策略携带在开启重定向通知中为例进行说明。
803、服务器将获取的兼容策略或处理策略携带在开启重定向通知中,向终端发送开启重定向通知。
在本发明实施例中,服务器侧的USB服务端在确定该物理USB设备可通过虚拟桌面系统映射成虚拟USB设备后,将向终端的USB客户端发送开启重定向通知。若USB服务端在白名单列表或软参列表中读取到与该物理USB设备的设备信息匹配的软参值,则至少将该软参值和该物理USB设备的设备信息作为附加信息封装在开启重定向通知中。若未读取到与该物理USB设备的设备信息匹配的软参值,则直接向USB客户端发送未携带附加消息的开启重定向通知。
804、终端在接收到服务器发送的该物理USB设备的开启重定向通知后,若检测到开启重定向通知中包含兼容策略或处理策略,则保存该兼容策略或处理策略;同时,开启该物理USB设备的重定向功能,并向服务器发送开启重定向结果。
在本发明实施例中,终端侧的USB客户端在接收到该物理USB设备的开启重定向通知后,将检查开启重定向通知中是否携带了包含与该物理USB设备的设备信息匹配的附加消息;若携带了,则将附加消息中包含的软参值保存到与该物理USB设备信息对应的设备实例中,以便后续对该物理USB设备不规范行为的访问操作或高级功能进行处理时使用。同时,USB客户端执行开启该物理USB设备重定向功能的操作,允许其进行重定向。在对该物理USB设备执行开启重定向功能操作后,USB客户端向服务器侧的USB服务端发送开启重定向结果。若开启重定向功能成功,则发送操作成功结果;若开启重定向功能失败,则发送操作失败结果。
需要说明的是,由于接收到的附加信息中的软参值是服务器由软参列表中或白名单列表中获得的,而软参列表和白名单列表中可记录已知物理USB设备的设备信息与为高级功能设置的软参值之间的对应关系。所以若接收的软参值与任一高级功能相对应,则为该物理USB设备开启该高级功能。其中,该高级功能指高级功能列表中记录的高级功能,包括解决物理USB设备在实际应用场景中遇到的特殊问题的功能,比如中断传输模拟机制、无损压缩机制等,本发明对此不进行具体限定。
需要说明的是,添加无损压缩机制高级功能,以便在USB客户端与USB服务端之间进行通信的过程中,支持一端对将要发送的数据进行无损压缩,另一端接收该数据并进行无损解压,还原出该消息,减少了通信过程中占用的网络传输带宽。由于无损压缩并非对所有物理USB设备交互数据的压缩效果都很理想,而且开启无损压缩功能会相对延长交互时间,因此无损压缩功能在默认状态下是关闭的。当某个物理USB设备需要开启无损压缩功能时,可在软参列表或白名单列表中设置无损压缩功能对应的软参值。之后,便可在检测到与该物理USB设备的设备信息匹配的软参值后,为该物理USB设备开启无损压缩功能。
需要说明的是,中断传输模拟机制的原理为:通过主动构造物理USB设备的中断传输URB(USB Request Block,USB请求块)消息输入请求,并模拟发送该中断传输URB消息输入请求至终端侧插入的物理USB设备,以读取此时物理USB设备产生的数据,这样便可及时将物理USB设备产生的中断数据取走。之后,将取走的中断数据缓存起来。当有正式中断传输URB消息输入请求后,优先从缓存区中获取中断数据。其中,对于同一中断端点的中断传输URB消息输入请求的URB消息结构,可根据端口描述符等信息自行构造出该URB消息结构;也可通过拦截并保存该物理USB设备中断端点的首个正式终端传输URB消息输入请求,后续根据存储的URB消息结构,构造出相应的URB消息结构,本发明实施例对此不进行具体限定。对于中断传输模拟机制高级功能,默认状态下也是关闭的。当某个物理USB设备需要开启中断传输模拟功能时,可在软参列表或白名单列表中设置中断传输模拟功能对应的软参值,之后,便可在检测到与该物理USB设备的设备信息匹配的软参值后,为该物理USB设备开启中断传输模拟功能。以终端侧主动发起中断传输模拟,并把从物理USB设备中断轮询得到的数据缓存在终端侧的 一种实现方式为例,中断传输模拟机制实现的过程如下:
首先,终端侧的USB客户端在完成对物理USB设备的启动配置后,进入中断传输工作阶段。当检测到USB服务端发送的针对该物理USB设备中断端点的首个正式中断传输URB消息输入请求时,保存该URB消息,同时向物理USB设备发送该URB消息。
其次,若USB客户端接收到该物理USB设备针对此URB消息返回的错误代码,则停止后续模拟;否则将读取的数据缓存起来,同时构造结构相同的URB消息并模拟发送至该物理USB设备,以读取下次产生的中断数据。这样便可在终端侧始终存在着一个活动的且不受网络因素影响的中断传输URB消息输入请求,能及时将物理USB设备产生的数据取走,确保数据不丢失。
再次,当USB客户端检测到USB服务端有正式中断传输URB消息输入请求时,将按照先进先出的原则从缓存队列中取出相应的数据,发送至服务器。
最后,当USB客户端检测到物理USB设备中断端点的复位等操作时,指示本轮中断传输工作结束,USB客户端将清空缓存队列,准备进入下一轮中断传输工作。
在本发明实施例中,将开启中断传输模拟机制高级功能对应的策略称为第一处理策略,当对物理USB设备执行第一处理策略时,为该物理USB设备开启中断传输模拟机制高级功能。之后,终端侧的USB客户端会定期从物理USB设备读取数据、缓存读取到的数据。当USB服务端向USB客户端发送读取数据的请求时,USB客户端便直接将缓存的数据反馈给USB服务端。将开启无损压缩机制高级功能对应的策略称为第二处理策略,当对物理USB设备执行第二处理策略时,为该物理USB设备开启无损压缩机制高级功能。之后,终端将对访问物理USB设备所得的数据进行压缩处理,并向服务器反馈压缩处理后的数据。在设置特殊处理策略时,分别为第一处理策略和第二处理策略设置相应的软参值,使得终端在接收到与接入的物理USB设备的设备信息匹配的指示高级功能的软参值时,为接入的物理USB设备开启软参值对应的高级功能。其中,软参值对应的高级功能也可在接入的物理USB设备需要进行相应的数据传输时开启,本发明实施例对此不进行具体限定。
805、服务器在根据接收到的开启重定向结果确认该物理USB设备成功 开启重定向功能后,创建该物理USB设备对应的虚拟USB设备。
在本发明实施例中,服务器侧的USB服务端若接收到USB客户端发送的操作成功结果,则确认该物理USB设备成功开启了重定向功能。之后,由USB服务端向USB虚拟总线驱动发送创建虚拟USB设备通知;USB虚拟总线驱动在接收到创建虚拟USB设备通知后,在服务器端创建与终端插入的物理USB设备对应的虚拟USB设备。此时,终端侧插入的物理USB设备便被成功映射到了远程虚拟桌面系统中。其中,终端插入的物理USB设备映射到远程虚拟桌面的具体流程详见图9。
806、服务器在检测到对虚拟USB设备的操作后,向终端下发访问请求。
在本发明实施例中,服务器通过虚拟桌面系统在终端侧提供供用户操作的远程虚拟桌面,并在远程虚拟桌面中提供虚拟USB设备的访问接口,以便用户操作访问接口来触发服务器生成访问请求。在终端侧的物理USB设备成功映射到远程虚拟桌面系统后,若服务器侧的USB虚拟总线驱动获取到用户针对虚拟USB设备的I/O请求操作或其他访问控制操作,则将请求操作或访问控制操作封装成访问请求;USB服务端读取并转发该访问请求至终端,由终端侧的USB客户端在接收到该访问请求后,根据该访问请求指示的访问操作对物理USB设备进行相应处理。即,由终端侧的USB客户端根据上下文信息,决定是否转发访问请求至物理USB设备处理,由物理USB设备执行访问操作并将响应结果反馈给USB客户端;USB客户端将响应结果发送至服务器侧的USB服务端,从而完成USB消息的重定向,具体过程详见下述步骤807和步骤808。
807、终端在接收到服务器发送的访问请求后,判断该访问请求所指示的访问操作是否为第一访问操作;若该访问请求所指示的访问操作为第一访问操作,则执行下述步骤808。
本发明实施例中,为了保证可能含有不规范行为的物理USB设备能够正常工作,终端侧的USB客户端在接收到服务器侧的USB服务端发送的针对于该虚拟USB设备的访问请求后,将判断该访问请求所指示的访问操作是否为第一访问操作,若确定该访问请求所指示的访问操作是第一访问操作,则根据兼容策略执行与该第一访问操作对应的第一处理操作,处理流程详见下述步骤808和图10。
若该物理USB设备支持实现与第一访问操作不同功能的其他访问操作, 即对于符合规范的行为操作来讲,USB客户端对该物理USB设备执行该访问请求指示的访问操作,即将该访问请求转发至物理USB设备,由物理USB设备响应该访问请求。之后,USB客户端获取该物理USB设备执行该访问请求的执行结果,并将执行结果返回给USB服务端,详见图11所示流程。
808、若该访问请求所指示的访问操作是第一访问操作,则根据兼容策略执行与第一访问操作对应的第一处理操作。
在本发明实施例中,在确定该访问请求所指示的访问操作是第一访问操作之后,还需判断该物理USB设备是否支持实现与第一访问操作相同功能的、且不同于第一访问操作的访问操作。由于在步骤802的实现方式中服务器可为兼容策略中的第一访问操作和第一处理操作之间的对应关系设置软参值,该软参值又与物理USB设备的设备信息之间存在对应关系,因此终端可通过判断本地存储的软参值中是否包含与该物理USB设备的设备信息匹配的软参值,来判断该物理USB设备是否支持实现与第一访问操作相同功能的、且不同于第一访问操作的访问操作,包括以下两种判断方式:
第一种方式,在已存储的第一配置信息列表中进行查找,若在第一配置信息列表中查找到与该物理USB设备的设备信息匹配的软参值,则确定该物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的访问操作。
其中,第一配置信息列表可为上述步骤801中的软参列表中的一部分,存储了新插入的物理USB设备的已知不规范行为对应的软参值。
第二种方式,在已存储的第二配置信息列表中进行查找,若在第二配置信息列表中查找到该物理USB设备的软参值,则确定该物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的访问操作。
其中,第二配置信息列表可为上述步骤801中的白名单列表中的一部分,存储了已知物理USB设备的已知不规范行为对应的配置信息。第一配置信息列表和第二配置信息列表构成了终端接入的物理USB设备对应的兼容策略。
若该物理USB设备支持实现与第一访问操作相同功能的、且不同于第一访问操作的第二访问操作,则第一处理操作具体包括:终端侧的USB客户端对物理USB设备执行的第二访问操作,以及获取物理USB设备执行第二访问操作的执行结果,并将执行结果反馈给服务器侧的USB服务端。也即,USB客户端将第二访问操作下发至物理USB设备,由物理USB设备对第二 访问操作进行响应。
若该物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的其他访问操作,第一处理操作具体包括:终端侧的USB客户端直接获取第一访问操作的响应结果,并将响应结果发送至服务器侧的USB服务端。详细流程参见图10。
在本发明实施例中,由于软参值指示了针对第一访问操作执行的第一处理操作,而软参值根据获取来源不同(如白名单列表或软参列表)可存储在不同的配置信息列表中,因此可根据下述三种情况执行第一处理操作。
第一种情况,若仅在第一配置信息列表中查找到与该物理USB设备的设备信息匹配的软参值,则执行与该软参值对应的第一处理操作。
第二种情况,若仅在第二配置信息列表中查找到与该物理USB设备的设备信息匹配的软参值,则执行与该软参值对应的第一处理操作。
第三种情况,若在第一配置信息列表和第二配置信息列表中均查找到与该物理USB设备的设备信息匹配的软参值,则判断第一配置列表中的软参值与第二配置信息列表中的软参值分别对应的第一处理操作是否存在冲突;若存在冲突,则执行第一配置信息列表中的软参值对应的第一处理操作。
需要说明的是,在实现过程中,可设置优先在第一配置信息列表中查找与该物理USB设备的设备信息匹配的软参值。若在第一配置信息列表中查找到与该物理USB设备的设备信息匹配的软参值,则直接执行与该软参值对应的第一处理操作。而无须在第二配置信息列表中查找是否存在与该USB设备的设备信息匹配的软参值。
本发明实施例提供的方法,服务器在接收到终端接入的物理USB设备的设备信息及确定物理USB设备成功开启重定向功能后,创建该物理USB设备对应的虚拟USB设备;之后,若终端接收到服务器发送的对虚拟USB设备的访问请求,则在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。此外,本发明实施例还为物理USB设备设 置了可以提升工作可靠性和适用性的处理策略,并能通过兼容策略进行控制激活,因此可以降低某些USB设备受网络条件(如时延、带宽)等影响,确保了USB设备可以正常工作的概率。
图12是本发明实施例提供的一种对USB设备的访问装置的结构示意图。参见图12,该装置包括:接收模块1201、判断模块1202、处理模块1203。
其中,接收模块1201与判断模块1202连接,用于接收服务器下发的访问请求,访问请求由服务器在检测到对虚拟USB设备操作时触发;判断模块1202与处理模块1203连接,用于判断访问请求所指示的访问操作是否为第一访问操作;处理模块1203,用于若访问请求指示终端对物理USB设备进行第一访问操作,根据兼容策略执行与第一访问操作对应的第一处理操作,以便向服务器反馈第一处理操作的执行结果;其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作。
可选地,处理模块,用于若物理USB设备支持实现与第一访问操作相同功能的、且不同于第一访问操作的第二访问操作,第一处理操作具体包括:终端对物理USB设备执行的第二访问操作,以及获取物理USB设备执行第二访问操作的执行结果;若物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的其他访问操作,第一处理操作具体包括:终端直接获取第一访问操作的响应结果。
可选地,兼容策略由服务器根据物理USB设备的设备信息匹配获取并下发至终端。
可选地,处理模块,还用于若物理USB设备支持实现与第一访问操作不同功能的其他访问操作,则对物理USB设备执行访问请求所指示的其他访问操作,以及获取物理USB设备执行其他访问操作的执行结果,以便向服务器反馈其他访问操作的执行结果。
可选地,第一处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端,第一处理策略指示终端定期从物理USB设备读取数据、缓存读取到的数据;处理模块,还用于终端执行第一处理策略,以便终端在响应服务器期望从物理USB设备读取数据的请求时 直接使用缓存的数据反馈服务器。
可选地,第二处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端,处理模块,还用于终端执行第二处理策略,第二处理策略指示终端对访问物理USB设备所得的数据进行压缩处理,以便向服务器反馈压缩处理后的数据。
可选地,服务器通过虚拟桌面系统在终端提供供用户操作的远程虚拟桌面,并在远程虚拟桌面中提供虚拟USB设备的访问接口,以便用户操作访问接口来触发服务器生成访问请求。
本发明实施例提供的装置,在接收到服务器发送的对虚拟USB设备的访问请求后,若确定该访问请求所指示的访问操作为第一访问操作,则根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。此外,本发明实施例还为物理USB设备设置了可以提升工作可靠性和适用性的处理策略,并能通过兼容策略进行控制激活,因此可以降低某些USB设备受网络条件(如时延、带宽)等影响,确保了USB设备可以正常工作的概率。
图13是本发明实施例提供的一种对USB设备的访问装置的结构示意图。参见图13,该装置包括:检测模块1301、发送模块1302、接收模块1303。
其中,检测模块1301与发送模块1302连接,用于在通过虚拟桌面系统将终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对虚拟USB设备的操作;发送模块1302与接收模块1303连接,用于若检测到对虚拟USB设备的操作,则向终端下发访问请求,由终端在确定访问请求指示对物理USB设备进行第一访问操作后,根据服务器下发的兼容策略执行与第一访问操作对应的第一处理操作;接收模块1303,用于接收终端反馈的第一处理操作的执行结果;其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问 操作所执行的动作。
可选地,该装置还包括:
获取模块,用于获取与物理USB设备的设备信息匹配的兼容策略;
发送模块,还用于将兼容策略下发至终端。
可选地,该装置还包括:
获取模块,用于获取物理USB设备不支持实现的第一访问操作、为第一访问操作设置的第一处理操作、物理USB设备的设备信息;
存储模块,用于将第一访问操作、第一处理操作、物理USB设备的设备信息之间的对应关系记录至兼容策略中。
可选地,该装置还包括:
设置模块,用于为物理USB设备设置第一处理策略,第一处理策略用于指示终端定期从物理USB设备读取数据、缓存读取到的数据;
存储模块,还用于存储第一处理策略与物理USB设备的设备信息之间的对应关系;
发送模块,还用于在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第一处理策略至终端,由终端执行第一处理策略;
接收模块,还用于接收终端在响应服务器期望从物理USB设备读取数据的请求时反馈的缓存的数据。
可选地,设置模块,还用于为物理USB设备设置第二处理策略,第二处理策略用于指示终端对访问物理USB设备所得的数据进行压缩处理;
存储模块,还用于存储第二处理策略与物理USB设备的设备信息之间的对应关系;
发送模块,还用于在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第二处理策略至终端,由终端执行第二处理策略;
接收模块,还用于接收终端反馈的压缩处理后的数据。
本发明实施例提供的装置,在接收到终端接入的物理USB设备的设备信息及确定物理USB设备成功开启重定向功能后,创建该物理USB设备对应的虚拟USB设备;之后,向终端发送针对虚拟USB设备的访问请求,终端在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此 即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。此外,本发明实施例还为物理USB设备设置了可以提升工作可靠性和适用性的处理策略,并能通过兼容策略进行控制激活,因此可以降低某些USB设备受网络条件(如时延、带宽)等影响,确保了USB设备可以正常工作的概率。
需要说明的是:上述实施例提供的对USB设备的访问装置在进行访问USB设备时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的容错处理装置与容错处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供了一种终端,包括:USB客户端。其中,USB客户端内含USB通用驱动所需具有的功能,一般作为应用程序运行,工作在终端侧的用户态。也即,在本发明实施例中USB通用驱动与USB客户端整合到一起,运行在同一进程中,因此终端侧仅需一个合一的USB客户端。
其中,USB客户端,用于接收服务器下发的访问请求,访问请求由服务器在检测到对虚拟USB设备操作时触发;判断访问请求所指示的访问操作是否为第一访问操作;若访问请求指示终端对物理USB设备进行第一访问操作,根据兼容策略执行与第一访问操作对应的第一处理操作,以便向服务器反馈第一处理操作的执行结果;
其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作。
可选地,若物理USB设备支持实现与第一访问操作相同功能的、且不同于第一访问操作的第二访问操作,第一处理操作具体包括:USB客户端对物理USB设备执行的第二访问操作,以及获取物理USB设备执行第二访问操 作的执行结果;
若物理USB设备不支持实现与第一访问操作相同功能的、且不同于第一访问操作的其他访问操作,第一处理操作具体包括:USB客户端直接获取第一访问操作的响应结果。
可选地,兼容策略由服务器根据物理USB设备的设备信息匹配获取并下发至终端。
可选地,若物理USB设备支持实现与第一访问操作不同功能的其他访问操作,则USB客户端对物理USB设备执行访问请求所指示的其他访问操作,以及获取物理USB设备执行其他访问操作的执行结果,以便向服务器反馈其他访问操作的执行结果。
可选地,第一处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端,第一处理策略指示USB客户端定期从物理USB设备读取数据、缓存读取到的数据;
USB客户端,用于执行第一处理策略,以便终端在响应服务器期望从物理USB设备读取数据的请求时直接使用缓存的数据反馈服务器。
可选地,第二处理策略由服务器在获知终端接入有物理USB设备时根据物理USB设备的设备信息获取并下发至终端;
USB客户端,用于执行第二处理策略,第二处理策略指示USB客户端对访问物理USB设备所得的数据进行压缩处理,以便向服务器反馈压缩处理后的数据。
可选地,服务器通过虚拟桌面系统在终端提供供用户操作的远程虚拟桌面,并在远程虚拟桌面中提供虚拟USB设备的访问接口,以便用户操作访问接口来触发服务器生成访问请求。
本发明实施例提供的终端,在接收到服务器发送的对虚拟USB设备的访问请求后,若确定该访问请求所指示的访问操作为第一访问操作,则根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。 此外,本发明实施例还为物理USB设备设置了可以提升工作可靠性和适用性的处理策略,并能通过兼容策略进行控制激活,因此可以降低某些USB设备受网络条件(如时延、带宽)等影响,确保了USB设备可以正常工作的概率。
本发明实施例提供了一种服务器,包括:USB服务端和USB虚拟总线驱动。
其中,USB虚拟总线驱动,用于在通过虚拟桌面系统将终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对虚拟USB设备的操作;
在USB虚拟总线驱动检测到对虚拟USB设备的操作后,USB服务端用于读取并向终端下发访问请求,由终端在确定访问请求指示对物理USB设备进行第一访问操作后,根据服务器下发的兼容策略执行与第一访问操作对应的第一处理操作;
USB服务端,用于接收终端反馈的第一处理操作的执行结果;
其中,兼容策略记录服务器期望对物理USB设备执行的第一访问操作与终端响应第一访问操作的第一处理操作之间的对应关系,第一处理操作是指在物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作。
可选地,USB服务端,用于获取与物理USB设备的设备信息匹配的兼容策略;将兼容策略下发至终端。
可选地,USB服务端,用于获取物理USB设备不支持实现的第一访问操作、为第一访问操作设置的第一处理操作、物理USB设备的设备信息;将第一访问操作、第一处理操作、物理USB设备的设备信息之间的对应关系记录至兼容策略中。
可选地,USB服务端,用于为物理USB设备设置第一处理策略,第一处理策略用于指示终端定期从物理USB设备读取数据、缓存读取到的数据;存储第一处理策略与物理USB设备的设备信息之间的对应关系;在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第一处理策略至终端,由终端执行第一处理策略;接收终端在响应服务器期望从物理USB设备读取数据的请求时反馈的缓存的数据。
可选地,USB服务端,用于为物理USB设备设置第二处理策略,第二处理策略用于指示终端对访问物理USB设备所得的数据进行压缩处理;存储 第二处理策略与物理USB设备的设备信息之间的对应关系;在获知终端接入有物理USB设备时,根据物理USB设备的设备信息获取并下发第二处理策略至终端,由终端执行第二处理策略;接收终端反馈的压缩处理后的数据。
本发明实施例提供的服务器,在接收到终端接入的物理USB设备的设备信息及确定物理USB设备成功开启重定向功能后,创建该物理USB设备对应的虚拟USB设备;之后,向终端发送针对虚拟USB设备的访问请求,终端在确定该访问请求所指示的访问操作为第一访问操作后,根据存储的兼容策略执行与第一访问操作对应的第一处理操作。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,因此即便物理USB设备不是按照该种标准USB协议规范来设计的,该物理USB设备依然可以依据该访问请求进行正确的重定向,提高了USB重定向的兼容能力,解决某些不是按照某一标准USB协议规范设计的物理USB设备不能被重定向的问题,为用户正常使用物理USB设备提供了保障。此外,本发明实施例还为物理USB设备设置了可以提升工作可靠性和适用性的处理策略,并能通过兼容策略进行控制激活,因此可以降低某些USB设备受网络条件(如时延、带宽)等影响,确保了USB设备可以正常工作的概率。
本发明实施例提供了一种对USB设备的访问系统,其特征在于,系统包括终端和服务器;服务器运行虚拟桌面系统,在终端接入有物理USB设备时通过虚拟桌面系统将物理USB设备映射成虚拟USB设备;
终端如上述终端实施例所示的终端;服务器如上述服务器实施例所示的服务器。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (27)

  1. 一种对通用串行总线USB设备的访问方法,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统,在所述终端接入有物理USB设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备;其特征在于,所述方法包括:
    接收所述服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;
    判断所述访问请求所指示的访问操作是否为第一访问操作;
    若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  2. 根据权利要求1所述的方法,其特征在于,
    若所述物理USB设备支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的第二访问操作,所述第一处理操作具体包括:所述终端对所述物理USB设备执行的第二访问操作,以及获取所述物理USB设备执行所述第二访问操作的执行结果;
    若所述物理USB设备不支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的其他访问操作,所述第一处理操作具体包括:所述终端直接获取所述第一访问操作的响应结果。
  3. 根据权利要求1所述的方法,其特征在于,所述兼容策略由所述服务器根据所述物理USB设备的设备信息匹配获取并下发至所述终端。
  4. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    若所述物理USB设备支持实现与所述第一访问操作不同功能的其他访问操作,则对所述物理USB设备执行所述访问请求所指示的其他访问操作,以及获取所述物理USB设备执行所述其他访问操作的执行结果,以便向所述服务器反馈所述其他访问操作的执行结果。
  5. 根据权利要求1至4任一所述的方法,其特征在于,第一处理策略 由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述第一处理策略指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;所述方法还包括:
    所述终端执行第一处理策略,以便所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时直接使用缓存的数据反馈所述服务器。
  6. 根据权利要求1至5任一所述的方法,其特征在于,第二处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述方法还包括:
    所述终端执行第二处理策略,所述第二处理策略指示所述终端对访问所述物理USB设备所得的数据进行压缩处理,以便向所述服务器反馈压缩处理后的数据。
  7. 根据权利要求1所述的方法,其特征在于,所述服务器通过所述虚拟桌面系统在所述终端提供供用户操作的远程虚拟桌面,并在所述远程虚拟桌面中提供所述虚拟USB设备的访问接口,以便用户操作所述访问接口来触发所述服务器生成所述访问请求。
  8. 一种对通用串行总线USB设备的访问方法,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统;其特征在于,所述方法包括:
    在通过所述虚拟桌面系统将所述终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
    若检测到对所述虚拟USB设备的操作,则向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
    接收所述终端反馈的所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  9. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    获取与所述物理USB设备的设备信息匹配的兼容策略;
    将所述兼容策略下发至所述终端。
  10. 根据权利要求9所述的方法,其特征在于,所述获取与所述物理USB设备的设备信息匹配的兼容策略之前,所述方法还包括:
    获取所述物理USB设备不支持实现的所述第一访问操作、为所述第一访问操作设置的所述第一处理操作、所述物理USB设备的设备信息;
    将所述第一访问操作、所述第一处理操作、所述物理USB设备的设备信息之间的对应关系记录至所述兼容策略中。
  11. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    为所述物理USB设备设置第一处理策略,所述第一处理策略用于指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;
    存储所述第一处理策略与所述物理USB设备的设备信息之间的对应关系;
    在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第一处理策略至所述终端,由所述终端执行所述第一处理策略;
    接收所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时反馈的缓存的数据。
  12. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    为所述物理USB设备设置第二处理策略,所述第二处理策略用于指示所述终端对访问所述物理USB设备所得的数据进行压缩处理;
    存储所述第二处理策略与所述物理USB设备的设备信息之间的对应关系;
    在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第二处理策略至所述终端,由所述终端执行所述第二处理策略;
    接收所述终端反馈的压缩处理后的数据。
  13. 一种对通用串行总线USB设备的访问装置,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统,在所述终端接入有物理USB设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备; 其特征在于,所述装置包括:
    接收模块,用于接收所述服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;
    判断模块,用于判断所述访问请求所指示的访问操作是否为第一访问操作;
    处理模块,用于若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  14. 根据权利要求13所述的装置,其特征在于,所述处理模块,用于若所述物理USB设备支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的第二访问操作,所述第一处理操作具体包括:所述终端对所述物理USB设备执行的第二访问操作,以及获取所述物理USB设备执行所述第二访问操作的执行结果;若所述物理USB设备不支持实现与所述第一访问操作相同功能的、且不同于所述第一访问操作的其他访问操作,所述第一处理操作具体包括:所述终端直接获取所述第一访问操作的响应结果。
  15. 根据权利要求13所述的装置,其特征在于,所述兼容策略由所述服务器根据所述物理USB设备的设备信息匹配获取并下发至所述终端。
  16. 根据权利要求13所述的装置,其特征在于,所述处理模块,还用于若所述物理USB设备支持实现与所述第一访问操作不同功能的其他访问操作,则对所述物理USB设备执行所述访问请求所指示的其他访问操作,以及获取所述物理USB设备执行所述其他访问操作的执行结果,以便向所述服务器反馈所述其他访问操作的执行结果。
  17. 根据权利要求13至16任一所述的装置,其特征在于,第一处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述第一处理策略指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;所述处理模块, 还用于所述终端执行第一处理策略,以便所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时直接使用缓存的数据反馈所述服务器。
  18. 根据权利要求13至17任一所述的装置,其特征在于,第二处理策略由所述服务器在获知所述终端接入有所述物理USB设备时根据所述物理USB设备的设备信息获取并下发至所述终端,所述处理模块,还用于所述终端执行第二处理策略,所述第二处理策略指示所述终端对访问所述物理USB设备所得的数据进行压缩处理,以便向所述服务器反馈压缩处理后的数据。
  19. 根据权利要求13所述的装置,其特征在于,所述服务器通过所述虚拟桌面系统在所述终端提供供用户操作的远程虚拟桌面,并在所述远程虚拟桌面中提供所述虚拟USB设备的访问接口,以便用户操作所述访问接口来触发所述服务器生成所述访问请求。
  20. 一种对通用串行总线USB设备的访问装置,应用于的系统包括终端和服务器,所述服务器运行虚拟桌面系统;其特征在于,所述装置包括:
    检测模块,用于在通过所述虚拟桌面系统将所述终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
    发送模块,用于若检测到对所述虚拟USB设备的操作,则向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
    接收模块,用于接收所述终端反馈的所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  21. 根据权利要求20所述的装置,其特征在于,所述装置还包括:
    获取模块,用于获取与所述物理USB设备的设备信息匹配的兼容策略;
    所述发送模块,还用于将所述兼容策略下发至所述终端。
  22. 根据权利要求21所述的装置,其特征在于,所述装置还包括:
    所述获取模块,用于获取所述物理USB设备不支持实现的所述第一访问操作、为所述第一访问操作设置的所述第一处理操作、所述物理USB设 备的设备信息;
    存储模块,用于将所述第一访问操作、所述第一处理操作、所述物理USB设备的设备信息之间的对应关系记录至所述兼容策略中。
  23. 根据权利要求20所述的装置,其特征在于,所述装置还包括:
    设置模块,用于为所述物理USB设备设置第一处理策略,所述第一处理策略用于指示所述终端定期从所述物理USB设备读取数据、缓存读取到的数据;
    所述存储模块,还用于存储所述第一处理策略与所述物理USB设备的设备信息之间的对应关系;
    所述发送模块,还用于在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第一处理策略至所述终端,由所述终端执行所述第一处理策略;
    所述接收模块,还用于接收所述终端在响应所述服务器期望从所述物理USB设备读取数据的请求时反馈的缓存的数据。
  24. 根据权利要求20所述的装置,其特征在于,所述设置模块,还用于为所述物理USB设备设置第二处理策略,所述第二处理策略用于指示所述终端对访问所述物理USB设备所得的数据进行压缩处理;
    所述存储模块,还用于存储所述第二处理策略与所述物理USB设备的设备信息之间的对应关系;
    所述发送模块,还用于在获知所述终端接入有所述物理USB设备时,根据所述物理USB设备的设备信息获取并下发所述第二处理策略至所述终端,由所述终端执行所述第二处理策略;
    所述接收模块,还用于接收所述终端反馈的压缩处理后的数据。
  25. 一种终端,其特征在于,包括:通用串行总线USB客户端;
    所述USB客户端,用于接收服务器下发的访问请求,所述访问请求由所述服务器在检测到对所述虚拟USB设备操作时触发;判断所述访问请求所指示的访问操作是否为第一访问操作;若所述访问请求指示所述终端对所述物理USB设备进行所述第一访问操作,根据兼容策略执行与所述第一访问操作对应的第一处理操作,以便向所述服务器反馈所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  26. 一种服务器,其特征在于,包括:通用串行总线USB服务端和USB虚拟总线驱动;
    所述USB虚拟总线驱动,用于在通过所述虚拟桌面系统将终端接入的物理USB设备映射成虚拟USB设备后,检测是否存在对所述虚拟USB设备的操作;
    在所述USB虚拟总线驱动检测到对所述虚拟USB设备的操作后,所述USB服务端用于读取并向所述终端下发访问请求,由所述终端在确定所述访问请求指示对所述物理USB设备进行第一访问操作后,根据所述服务器下发的兼容策略执行与所述第一访问操作对应的第一处理操作;
    所述USB服务端,用于接收所述终端反馈的所述第一处理操作的执行结果;
    其中,所述兼容策略记录所述服务器期望对所述物理USB设备执行的第一访问操作与所述终端响应所述第一访问操作的第一处理操作之间的对应关系,所述第一处理操作是指在所述物理USB设备不支持所述第一访问操作时所述终端响应所述第一访问操作所执行的动作。
  27. 一种对通用串行总线USB设备的访问系统,其特征在于,所述系统包括终端和服务器;所述服务器运行虚拟桌面系统,在所述终端接入有物理USB设备时通过所述虚拟桌面系统将所述物理USB设备映射成虚拟USB设备;
    所述终端如权利要求25所述的终端;
    所述服务器如权利要求26所述的服务器。
PCT/CN2016/081261 2015-09-30 2016-05-06 对usb设备的访问方法、装置、终端、服务器及系统 WO2017054454A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16850079.1A EP3340063A4 (en) 2015-09-30 2016-05-06 Method, device, terminal, server, and system for accessing usb device
US15/940,384 US10552348B2 (en) 2015-09-30 2018-03-29 USB device access method, apparatus and system, a terminal, and a server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510642731.0 2015-09-30
CN201510642731.0A CN105183675B (zh) 2015-09-30 2015-09-30 对usb设备的访问方法、装置、终端、服务器及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/940,384 Continuation US10552348B2 (en) 2015-09-30 2018-03-29 USB device access method, apparatus and system, a terminal, and a server

Publications (1)

Publication Number Publication Date
WO2017054454A1 true WO2017054454A1 (zh) 2017-04-06

Family

ID=54905765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/081261 WO2017054454A1 (zh) 2015-09-30 2016-05-06 对usb设备的访问方法、装置、终端、服务器及系统

Country Status (4)

Country Link
US (1) US10552348B2 (zh)
EP (1) EP3340063A4 (zh)
CN (1) CN105183675B (zh)
WO (1) WO2017054454A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183675B (zh) * 2015-09-30 2018-03-27 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统
CN107203408B (zh) * 2016-03-17 2021-02-23 华为技术有限公司 重定向的方法、装置和系统
US10635816B2 (en) * 2016-04-04 2020-04-28 Wyse Technology L.L.C. Restricting reprogramming of a redirected USB device
CN105871926B (zh) * 2016-06-17 2019-07-19 山东大学 一种基于桌面虚拟化的usb设备安全共享方法及系统
US10691630B2 (en) * 2017-01-20 2020-06-23 Wyse Technology L.L.C. State-based IRP management for redirected device
US10530881B2 (en) * 2017-02-15 2020-01-07 Wyse Technology L.L.C. Redirecting scanners and printers over a WAN
CN108021801B (zh) * 2017-11-20 2021-07-06 深信服科技股份有限公司 基于虚拟桌面的防泄密方法、服务器及存储介质
CN108108201A (zh) * 2017-12-26 2018-06-01 合肥中科云巢科技有限公司 基于rdp协议的usb存储设备重定向方法及虚拟机
CN108427649B (zh) * 2018-01-16 2020-09-15 广州杰赛科技股份有限公司 Usb接口的接入管理方法、终端设备、系统及存储介质
US10862757B2 (en) * 2018-08-07 2020-12-08 Dell Products L.P. Isolating a redirected biometric device to a remote session
CN109656757B (zh) * 2018-11-20 2022-03-15 广东微云科技股份有限公司 Usb设备重定向问题的智能诊断方法
CN109522246A (zh) * 2018-11-23 2019-03-26 南京云帐房网络科技有限公司 一种远程访问多usb设备的方法和装置
CN111143265B (zh) * 2019-12-30 2022-09-20 锐捷网络股份有限公司 一种基于虚拟机的数据传输方法及装置
CN111352868B (zh) * 2020-03-30 2021-09-28 厦门科灿信息技术有限公司 串口访问方法、装置、终端设备及存储介质
CN114090475A (zh) * 2020-07-02 2022-02-25 中兴通讯股份有限公司 Usb设备重定向方法、系统、电子设备及存储介质
CN111930645B (zh) * 2020-07-21 2022-04-08 上海繁易信息科技股份有限公司 一种基于tcpip的通用usb设备网络透传系统及方法
CN111813727B (zh) * 2020-08-21 2020-12-08 南京沁恒微电子股份有限公司 一种实时高效的usb数据传输方法
CN112235325B (zh) * 2020-12-14 2021-03-09 中国电力科学研究院有限公司 一种对与智能终端相连接的功能模组进行访问控制的方法及系统
US11748114B2 (en) * 2021-05-25 2023-09-05 Vmware, Inc. Universal serial bus (USB) redirection for USB human interface device (HID) class devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1043876A2 (en) * 1999-04-09 2000-10-11 Sun Microsystems, Inc. Remote device access over a network
CN102368231A (zh) * 2011-10-14 2012-03-07 深圳市京华科讯科技有限公司 一种usb设备重定向的方法及系统
CN102411688A (zh) * 2011-11-28 2012-04-11 福建升腾资讯有限公司 多用户隔离访问终端服务器上的虚拟usb外设的方法
CN103714020A (zh) * 2013-12-27 2014-04-09 普华基础软件股份有限公司 一种基于网络的usb设备重定向系统
CN104881315A (zh) * 2014-10-27 2015-09-02 深圳市京华科讯科技有限公司 基于桌面虚拟化技术的存储设备映射方法及系统
CN105183675A (zh) * 2015-09-30 2015-12-23 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8165155B2 (en) * 2004-07-01 2012-04-24 Broadcom Corporation Method and system for a thin client and blade architecture
CA2564865C (en) * 2004-04-30 2013-07-16 Research In Motion Limited System and method for handling peripheral connections to mobile devices
CN100486200C (zh) * 2007-04-20 2009-05-06 福建升腾资讯有限公司 Usb映射方法
US8789070B2 (en) * 2007-12-06 2014-07-22 Wyse Technology L.L.C. Local device virtualization
JP5743174B2 (ja) * 2009-03-18 2015-07-01 日本電気株式会社 シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
US8849941B2 (en) * 2010-09-30 2014-09-30 Microsoft Corporation Virtual desktop configuration and operation techniques
US8615544B2 (en) * 2011-02-25 2013-12-24 Wyse Technology Inc. System and method for unlocking a device remotely from a server
CN102270186B (zh) * 2011-07-21 2013-03-20 华中科技大学 一种虚拟桌面外部设备支持系统
CN102419737A (zh) * 2011-10-14 2012-04-18 深圳市京华科讯科技有限公司 一种usb设备分布式资源管理的方法及系统
CN102567074B (zh) * 2011-11-29 2015-01-21 中标软件有限公司 一种面向虚拟机的usb设备重定向方法
CN104484291B (zh) * 2014-11-24 2017-08-25 华为技术有限公司 一种建立设备映射的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1043876A2 (en) * 1999-04-09 2000-10-11 Sun Microsystems, Inc. Remote device access over a network
CN102368231A (zh) * 2011-10-14 2012-03-07 深圳市京华科讯科技有限公司 一种usb设备重定向的方法及系统
CN102411688A (zh) * 2011-11-28 2012-04-11 福建升腾资讯有限公司 多用户隔离访问终端服务器上的虚拟usb外设的方法
CN103714020A (zh) * 2013-12-27 2014-04-09 普华基础软件股份有限公司 一种基于网络的usb设备重定向系统
CN104881315A (zh) * 2014-10-27 2015-09-02 深圳市京华科讯科技有限公司 基于桌面虚拟化技术的存储设备映射方法及系统
CN105183675A (zh) * 2015-09-30 2015-12-23 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3340063A4 *

Also Published As

Publication number Publication date
US10552348B2 (en) 2020-02-04
CN105183675A (zh) 2015-12-23
EP3340063A4 (en) 2018-10-24
US20180217948A1 (en) 2018-08-02
CN105183675B (zh) 2018-03-27
EP3340063A1 (en) 2018-06-27

Similar Documents

Publication Publication Date Title
WO2017054454A1 (zh) 对usb设备的访问方法、装置、终端、服务器及系统
US9781211B2 (en) Storage device having master and slave storage device modes
US10057364B2 (en) Method and apparatus for remotely running application program
US9485305B2 (en) API platform that includes server-executed client-based code
US7840736B2 (en) Bus communication enumeration
US9251201B2 (en) Compatibly extending offload token size
US7269721B2 (en) Method, system, and apparatus for booting with remote configuration data
US20050278418A1 (en) System and method for use of multiple applications
US20140317350A1 (en) Portable storage devices for electronic devices
WO2016032858A1 (en) Machine identity persistence for users of non-persistent virtual desktops
BRPI0920478B1 (pt) Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
US20170346792A1 (en) System and method for kernel level video operations
CN104601666A (zh) 日志服务方法及云平台
US11544205B2 (en) Peer storage devices sharing host control data
WO2019236862A1 (en) Systems and methods for transport layer processing of server message block protocol messages
US20170102913A1 (en) System and method to redirect display-port audio playback devices in a remote desktop protocol session
US20240143529A1 (en) System and method for accessing remote target device and remote extender thereof
CN117278549A (zh) 基于rdma的数据发送方法、装置、电子设备及存储介质
CN117294697A (zh) 一种usb设备重定向的方法、装置、网络设备及介质
AU2007202631A1 (en) System and Method for Use of Multiple Applications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16850079

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2016850079

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE