Twain协议的远程重定向方法、装置及系统的制作方法
【技术领域】
[0001] 本发明涉及通信领域,尤其涉及无注名工具包(Toolkit Without An Interesting Name,简称:TWAIN)协议的远程重定向方法、装置及系统。
【背景技术】
[0002] 现有技术中,在远程虚拟桌面环境中,若远程虚拟桌面需要使用本地终端侧的扫 描仪等通用串行总线(Universal Serial Bus,简称:USB)图像设备来获取静态图像,一般 采用USB图像设备的远程重定向方式进行获取。
[0003] USB图像设备的远程重定向方式的架构示意图如图1所示。其中,USB通用驱动、 USB客户端、USB服务端、虚拟USB总线驱动四部分构成USB图像设备的远程重定向框架主 体,负责完成USB图像设备的远程重定向映射工作,将本地终端侧的扫描仪等USB图像设备 映射到远程虚拟桌面计算机中。用户仅需在远程虚拟桌面计算机中,安装该USB图像设备 厂商提供的图像设备驱动以及图像设备数据源,即可使用支持TWAIN协议的应用程序,选 择该USB图像设备对应的数据源,进而从USB图像设备上获取静态图像。
[0004] 然而,在实现上述USB图像设备的远程重定向的过程中,至少存在如下问题:
[0005] 第一,上述方案需要将本地终端侧的扫描仪等USB图像设备映射到远程虚拟桌面 计算机中,在远程虚拟桌面上打开该USB图像设备,这也就意味着所有从USB图像设备上扫 描得到的大量原始图像数据,全部原样地通过USB重定向从本地终端侧传输到远程虚拟桌 面计算机中,再由远程虚拟桌面计算机中的图像设备数据源根据用户的参数设置,对原始 图像数据进行加工处理(如图像格式转换、图像压缩等等)与筛选后,提供给应用程序,这 不可避免的占用或浪费了相当多的带宽,并且导致应用程序获取静态图像的速度很慢,效 率较低;
[0006] 第二,上述方案仅支持USB接口类的图像设备,不支持非USB接口类的图像设备。
【发明内容】
[0007] 本发明的实施例提供TWAIN协议的远程重定向方法、装置及系统,以至少解决现 有技术中采用USB图像设备的远程重定向方式所导致的效率较低、带宽浪费、通用性较差 的技术问题。
[0008] 为达到上述目的,本发明的实施例采用如下技术方案:
[0009] 第一方面,提供一种无注名工具包TWAIN协议的远程重定向方法,所述方法包括:
[0010] 当用户在远程虚拟桌面中通过支持TWAIN协议的应用APP触发获取图像操作时, 远程虚拟桌面计算机获取所述APP下发的TWAIN协议规定的指令参数;
[0011] 所述远程虚拟桌面计算机发送第一消息包给终端,所述第一消息包携带所述 TWAIN协议规定的指令参数;
[0012] 所述远程虚拟桌面计算机接收所述终端发送的第二消息包,所述第二消息包携带 所述指令参数对应的操作结果,其中,所述指令参数对应的操作结果是由设置在所述终端 内部的图像设备数据源处理得到的;
[0013] 所述远程虚拟桌面计算机以所述TWAIN协议规定的数据格式,将所述指令参数对 应的操作结果反馈给所述APP。
[0014] 在第一方面第一种可能的实现方式中,结合第一方面,所述远程虚拟桌面计算机 获取所述APP下发的TWAIN协议规定的指令参数,包括:
[0015] 所述远程虚拟桌面计算机通过所述APP,采用HOOK API机制加载设置在所述远程 虚拟桌面计算机内部的虚拟数据源管理器DSM,其中,所述虚拟DSM用于将所述TWAIN协议 规定的指令参数重定向至所述终端;
[0016] 所述远程虚拟桌面计算机通过所述APP,调用所述虚拟DSM,通过所述虚拟DSM获 取所述APP下发的TWAIN协议规定的指令参数。
[0017] 在第一方面第二种可能的实现方式中,结合第一方面,所述远程虚拟桌面计算机 获取所述APP下发的TWAIN协议规定的指令参数,包括:
[0018] 所述远程虚拟桌面计算机通过所述APP,加载设置在所述远程虚拟桌面计算机内 部的DSM ;
[0019] 所述远程虚拟桌面计算机调用所述DSM,并通过所述DSM加载指定数据源DS ;
[0020] 若所述指定DS为设置在所述远程虚拟桌面计算机内部的虚拟DS,所述远程虚拟 桌面计算机通过所述DSM调用所述虚拟DS,并通过所述虚拟DS获取所述TWAIN协议规定的 指令参数,其中,所述虚拟DS用于将所述TWAIN协议规定的指令参数重定向至所述终端。
[0021] 在第一方面第三种可能的实现方式中,结合第一方面第二种可能的实现方式,所 述方法还包括:
[0022] 当所述终端与所述远程虚拟桌面计算机建立虚拟通道时,所述远程虚拟桌面计算 机获取至少一个图像设备数据源的信息;
[0023] 所述远程虚拟桌面计算机根据预设规则和所述至少一个图像设备数据源的信息, 分别创建出所述至少一个图像设备数据源中每个图像设备数据源对应的虚拟DS。
[0024] 在第一方面第四种可能的实现方式中,结合第一方面第三种可能的实现方式,在 所述远程虚拟桌面计算机根据预设规则和所述至少一个图像设备数据源的信息,分别创建 出所述至少一个图像设备数据源中每个图像设备数据源对应的虚拟DS之后,还包括:
[0025] 所述远程虚拟桌面计算机建立所述至少一个图像设备数据源中每个图像设备数 据源和与其对应的虚拟DS的映射关系;
[0026] 在若所述指定DS为设置在所述远程虚拟桌面计算机内部的虚拟DS,所述远程虚 拟桌面计算机通过所述DSM调用所述虚拟DS,并通过所述虚拟DS获取所述TWAIN协议规定 的指令参数之后,所述远程虚拟桌面计算机发送第一消息包给所述终端之前,还包括:
[0027] 所述远程虚拟桌面计算机根据所述映射关系,确定所述指定数据源对应的图像设 备数据源的信息;
[0028] 所述远程虚拟桌面计算机发送第一消息包给所述终端,所述第一消息包携带所述 TWAIN协议规定的指令参数,包括:
[0029] 所述远程虚拟桌面计算机发送第一消息包给所述终端,所述第一消息包携带所述 TWAIN协议规定的指令参数和所述指定数据源对应的图像设备数据源的信息。
[0030] 第二方面,提供一种无注名工具包TWAIN协议的远程重定向方法,所述方法包括:
[0031] 当用户在远程虚拟桌面中通过支持TWAIN协议的应用APP触发获取图像操作时, 终端接收远程虚拟桌面计算机发送的第一消息包,所述第一消息包携带TWAIN协议规定的 指令参数;
[0032] 所述终端根据所述指令参数,结合所述TWAIN协议,通过设置在所述终端内部的 图像设备数据源执行所述指令参数指定的操作,并获得所述指令参数对应的操作结果;
[0033] 所述终端发送第二消息包给所述远程虚拟桌面计算机,所述第二消息包携带所述 指令参数对应的操作结果。
[0034] 在第二方面第一种可能的实现方式中,结合第二方面,在所述终端发送第二消息 包给所述远程虚拟桌面计算机之前,还包括:
[0035] 所述终端通过设置在所述终端内部的TWAIN客户端压缩所述指令参数对应的操 作结果;
[0036] 所述终端发送第二消息包给所述远程虚拟桌面计算机,所述第二消息包携带所述 指令参数对应的操作结果,包括:
[0037] 所述终端发送第二消息包给所述远程虚拟桌面计算机,所述第二消息包携带压缩 后的所述指令参数对应的操作结果。
[0038] 在第二方面第二种可能的实现方式中,结合第二方面或第二方面第一种可能的实 现方式,所述第一消息包还携带所述图像设备数据源的信息;
[0039] 在所述终端根据所述指令参数,结合所述TWAIN协议,通过设置在所述终端内部 的图像设备数据源执行所述指令参数指定的操作,并获得所述指令参数对应的操作结果之 前,还包括:
[0040] 所述终端根据所述图像设备数据源的信息,确定所述设置在所述终端内部的图像 设备数据源。
[0041] 在第二方面第三种可能的实现方式中,结合第二方面或第二方面第一种可能的实 现方式或第二方面第二种可能的实现方式,在所述终端接收远程虚拟桌面计算机发送的第 一消息包之前,还包括:
[0042] 当所述终端与所述远程虚拟桌面计算机建立虚拟通道时,所述终端获取至少一个 图像设备数据源的信息;
[0043] 所述终端发送所述至少一个图像设备数据源的信息给所述远程虚拟桌面计算机, 由所述远程虚拟桌面计算机根据预设规则和所述至少一个图像设备数据源的信息,创建出 与所述至少一个图像设备数据源对应的虚拟数据源DS。
[0044] 在第二方面第四种可能的实现方式中,结合第二方面第三种可能的实现方式,所 述终端获取至少一个图像设备数据源的信息,包括:
[0045] 所述终端通过下述方式中的至少一个方式获取所述至少一个图像设备数据源的 信息:
[0046] 通过所述终端加载的数据源管理器DSM、通过所述终端内置的DSM、以及通过所述 终端内置的DS。
[0047] 第三方面,提供一种远程虚拟桌面计算机,所述远程虚拟桌面计算机包括:获取单 元、发送单元、接收单元、反馈单元;
[0048] 所述获取单元,用于当用户在远程虚拟桌面中通过支持无注名工具包TWAIN协议 的APP触发获取图像操作时,获取所述APP下发的TWAIN协议规定的指令参数;
[0049] 所述发送单元,用于发送第一消息包给终端,所述第一消息包携带所述TWAIN协 议规定的指令参数;
[0050] 所述接收单元,用于接收所述终端发送的第二消息包,所述第二消息包携带所述 指令参数对应的操作结果,其中,所述指令参数对应的操作结果是由设置在所述终端内部 的图像设备数据源处理得到的;
[0051] 所述反馈单元,用于以所述TWAIN协议规定的数据格式,将所述指令参数对应的 操作结果反馈给所述APP。
[0052] 在第三方面第一种可能的实现方式中,结合第三方面,所述获取单元包括:调用模 块、加载模块;
[0053] 所述加载模块,用于通过所述APP,采用HOOK API机制加载设置在所述远程虚拟 桌面计算机内部的虚拟数据源管理器DSM,其中,所述虚拟DSM用于将所述TWAIN协议规定 的指令参数重定向至所述终端;
[0054] 所述调用模块,用于通过所述APP,调用所述虚拟DSM,通过所述虚拟DSM获取所述 APP下发的TWAIN协议规定的指令参数。
[0055] 在第三方面第二种可能的实现方式中,结合第三方面,所述获取单元包括:调用模 块、加载模块;
[0056] 所述加载模块,用于通过所述APP,加载设置在所述远程虚拟桌面计算机内部的 DSM ;
[0057] 所述调用模块,用于调用所述DSM,并通过所述DSM加载指定数据源DS ;
[0058] 所述调用模块,还用于若所述指定DS为设置在所述远程虚拟桌面计算机内部的 虚拟DS,通过所述DSM调用所述虚拟DS,并通过所述虚拟DS获取所述TWAIN协议规定的指 令参数,其中,所述虚拟DS用于将所述TWAIN协议规定的指令参数重定向至所述终端。
[0059] 在第三方面第三种可能的实现方式中,结合第三方面第二种可能的实现方式,所 述远程虚拟桌面计算机还包括:创建单元;
[0060] 所述获取单元还包括:获取模块;
[0061] 所述获取模块,用于当所述终端与所述远程虚拟桌面计算机建立虚拟通道时,获 取至少一个图像设备数据源的信息;
[0062] 所述创建单元,用于根据预设规则和所述至少一个图像设备数据源的信息,分别 创建出所述至少一个图像设备数据源中每个图像设备数据源对应的虚拟DS。
[0063] 在第三方面第四种可能的实现方式中,结合第三方面第三种可能的实现方式,所 述远程虚拟桌面计算机还包括:建立单元、确定单元;
[0064] 所述建立单元,还用于在所述创建单元根据预设规则和所述至少一个图像设备数 据源的信息,分别创建出所述至少一个图像设备数据源中每个图像设备数据源对应的虚拟 DS之后,建立所述至少一个图像设备数据源中每个图像设备数据源和与其对应的虚拟DS 的映射关系;
[0065] 所述确定单元,用于在若所述指定DS为设置在所述远程虚拟桌面计算机内部的 虚拟DS,所述调用模块通过所述DSM调用所述虚拟DS,并通过所述虚拟DS获取所述TWAIN 协议规定的指令参数之后,所述发送单元发送第一消息包给所述终端,所述第一消息包携 带所述TWAIN协议规定的指令参数之前,根据所述映射关系,确定所述指定数据源对应的 图像设备数据源的信息;
[0066] 所述发送单元具体用于:
[0067] 发送第一消息包给所述终端,所述第一消息包携带所述TWAIN协议规定的指令参 数和所述指定数据源对应的图像设备数据源的信息。
[0068] 第四方面,提供一种终端,所述终端包括:接收单元、执行单元、发送单元;
[0069] 所述接收单元,用于当用户在远程虚拟桌面中通过支持无注名工具包TWAIN协议 的应用APP触发获取图像操作时,接收远程虚拟桌面计算机发送的第一消息包,所述第一 消息包携带TWAIN协议规定的指令参数;
[0070] 所述执行单元,用于根据所述指令参数,结合所述TWAIN协议,通过设置在所述终 端内部的图像设备数据源执行所述指令参数指定的操作,并获得所述指令参数对应的操作 结果;
[0071] 所述发送单元,用于发送第二消息包给所述远程虚拟桌面计算机,所述第二消息 包携带所述指令参数对应的操作结果。
[0072] 在第四方面第一种可能的实现方式中,结合第四方面,所述终端还包括:压缩单 元;
[0073] 所述压缩单元,用于在所述发送单元发送第二消息包给所述远程虚拟桌面计算机 之前,通过设置在所述终端内部的TWAIN客户端压缩所述指令参数对应的操作结果;
[0074] 所述发送单元具体用于:
[0075] 发送第二消息包给所述远程虚拟桌面计算机,所述第二消息包携带压缩后的所述 指令参数对应的操作结果。
[0076] 在第四方面第二种可能的实现方式中,结合第四方面或第四方面第一种可能的实 现方式,所述终端还包括:确定单元;
[0077] 所述第一消息包还携带图像设备数据源的信息;
[0078] 所述确定单元,用于在所述执行单元根据所述指令参数,结合所述TWAIN协议,通 过设置在所述终端内部的图像设备数据源执行所述指令参数指定的操作,并获得所述指令 参数对应的操作结果之前,根据所述图像设备数据源的信息,确定所述设置在所述终端内 部的图像设备数据源。
[0079] 在第四方面第三种可能的实现方式中,结合第四方面或第四方面第一种可能的实 现方式或第四方面第二种可能的实现方式,所述终端还包括:获取单元;
[0080] 所述获取单元,用于在所述接收单元接收远程虚拟桌面计算机发送的第一消息包 之前,当所述终端与所述远程虚拟桌面计算机建立虚拟通道时,获取至少一个图像设备数 据源的信息;
[0081] 所述发送单元,还用于发送所述至少一个图像设备数据源的信息给所述远程虚拟 桌面计算机,由所述远程虚拟桌面计算机根据预设规则,创建出与所述至少一个图像设备 数据源对应的虚拟DS。
[0082] 在第四方面第四种可能的实现方式中,结合第四方面第三种可能的实现方式,所 述获取单元具体用于:
[0083] 通过下述方式中的至少一个方式获取所述至少一个图像设备数据源的信息:
[0084] 通过所述终端加载的数据源管理器DSM、通过所述终端内置的DSM、以及通过所述 终端内置的DS。
[0085] 第五方面,提供一种无注名工具包TWAIN协议的远程重定向系统,所述系统包括 如第三方面任一项所述的远程虚拟桌面计算机以及如第四方面任一项所述的终端。
[0086] 本发明的实施例提供TWAIN协议的远程重定向方法、装置及系统,包括:当用户在 远程虚拟桌面中通过支持TWAIN协议的APP触发获取图像操作时,远程虚拟桌面计算机获 取APP下发的TWAIN协议规定的指令参数;远程虚拟桌面计算机发送第一消息包给终端, 第一消息包携带TWAIN协议规定的指令参数;远程虚拟桌面计算机接收终端发送的第二消 息包,第二消息包携带指令参数对应的操作结果,其中,指令参数对应的操作结果是由设置 在终端内部的图