对USB设备的访问方法、装置、终端、服务器及系统.pdf

上传人:罗明 文档编号:6355232 上传时间:2019-06-03 格式:PDF 页数:39 大小:2.94MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510642731.0

申请日:

2015.09.30

公开号:

CN105183675A

公开日:

2015.12.23

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/10申请日:20150930|||公开

IPC分类号:

G06F13/10; G06F13/12

主分类号:

G06F13/10

申请人:

华为技术有限公司

发明人:

李明灯

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京三高永信知识产权代理有限责任公司 11138

代理人:

罗振安

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书
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所述的服务器。

说明书

说明书对USB设备的访问方法、装置、终端、服务器及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种对USB设备的访问方法、装置、终端、服务器及系统。
背景技术
通过远程桌面协议将服务器侧运行的远程虚拟桌面系统提供的远程虚拟界面投递到本地的各种终端上,供终端侧的用户使用;同时,通过远程桌面协议能把与终端侧接入的各种物理外设映射到服务器侧的远程虚拟桌面系统中,并在为该终端侧提供的远程虚拟桌面中显示该外设的虚拟外设,用户在终端侧操作该虚拟设备可实现对物理外设的操作。远程桌面协议涉及终端侧和服务器侧的交互,协议内部根据不同功能划分为不同的交互服务实现。其中,对于USB(UniversalSerialBus,通用串行总线)服务,也是通过终端侧和服务端侧交互将终端侧连接的物理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(ApplicationProgrammingInterface,应用程序编程接口)接口,在不同OS(OperatingSystem,操作系统)平台上是不同的,因此为了实现同一“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

在生成不规范行为列表时,可参考下述方式实现:
获取已知物理USB设备的已知不规范行为和为每一个已知不规范行为设置 的软参值;设置针对每一个已知不规范行为的访问操作(即第一访问操作)对应的第一处理操作;存储已知不规范行为、已知不规范行为的软参值与第一处理操作之间的对应关系,生成不规范行为列表。
如上述表1所示,表1中一个软参值对应一个访问操作和对该访问操作的处理操作。也即,一个软参值记录了访问操作与处理操作之间的对应关系。因此在具体实现过程中,可通过不规范行为列表中的软参值,记录兼容策略中的第一访问操作和第一处理操作之间的对应关系。用于指示终端在检测到兼容策略中包含该软参值时,执行与第一访问操作对应的第一处理操作。这样在获取到物理USB设备不支持实现的第一访问操作、为第一访问操作设置的第一处理操作、物理USB设备的设备信息后,将物理USB设备的设备信息与软参值之间的对应关系记录在兼容策略中,也即实现了将第一访问操作、第一处理操作、物理USB设备的设备信息之间的对应关系记录至兼容策略中。
可选地,USB重定向框架提供了两种实现兼容策略的机制,即白名单机制和软参机制。在白名单机制中设置了白名单列表,存储了已知物理USB设备的设备信息及针对其已知不规范行为设置的软参值。在软参机制中设置了软参列表,存储了新插入物理USB设备的设备信息及针对其指定不规范行为设置的软参值。其中,指定不规范行为属于上述已知不规范行为。这样,获取与该物理USB设备的设备信息匹配的兼容策略,即为从白名单列表或软参列表中获取与该物理USB设备的设备信息匹配的软参值。
其中,白名单列表的设置方式如下:
根据不规范行为列表和已知物理USB设备的设备信息,生成白名单列表。
其中,白名单列表的形式可参见下述表2。其中,ANY=0xFFFF,表示匹配时可忽略此字段。在具体的实现过程中,将白名单列表中包含的信息内置在代码实现中,这样用户在使用已知物理USB设备时,不用进行任何额外操作,便可使该已知物理USB设备正常工作。
表2


其中,软参列表设置方式如下:
若发现新插入的物理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

需要说明的是,当服务器检测到对虚拟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(USBRequestBlock,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设备;
终端如上述终端实施例所示的终端;服务器如上述服务器实施例所示的服务器。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

对USB设备的访问方法、装置、终端、服务器及系统.pdf_第1页
第1页 / 共39页
对USB设备的访问方法、装置、终端、服务器及系统.pdf_第2页
第2页 / 共39页
对USB设备的访问方法、装置、终端、服务器及系统.pdf_第3页
第3页 / 共39页
点击查看更多>>
资源描述

《对USB设备的访问方法、装置、终端、服务器及系统.pdf》由会员分享,可在线阅读,更多相关《对USB设备的访问方法、装置、终端、服务器及系统.pdf(39页珍藏版)》请在专利查询网上搜索。

本发明公开了一种对USB设备的访问方法、装置、终端、服务器及系统,属于计算机技术领域。方法包括:接收服务器下发的访问请求;判断访问请求所指示的访问操作是否为第一访问操作;若访问请求指示终端对物理USB设备进行第一访问操作,根据兼容策略执行与第一访问操作对应的第一处理操作,以便向服务器反馈第一处理操作的执行结果。由于兼容策略中设置了物理USB设备不支持第一访问操作时终端响应第一访问操作所执行的动作,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1