设备远程访问的方法、瘦客户端和虚拟的制造方法

文档序号:7776469阅读:263来源:国知局
设备远程访问的方法、瘦客户端和虚拟的制造方法
【专利摘要】本发明公开了一种设备远程访问的方法、瘦客户端和虚拟机。所述方法包括:瘦客户TC端的总线过滤驱动器接收虚拟机VM端对TC端的物理设备的远程访问请求;总线过滤驱动器将远程访问请求转换为物理设备驱动器能够读取的远程操作指令;总线过滤驱动器向物理设备驱动器发送远程操作指令,远程操作指令用于指示物理设备驱动器驱动物理设备执行读写操作并返回携带有读写操作的执行结果的远程响应数据。本发明的设备远程访问的方法、瘦客户端和虚拟机,能够实现VM端对TC端的物理设备的远程访问,并且由于未修改设备驱动程序,因此TC端能够继续正常访问该物理设备。
【专利说明】设备远程访问的方法、瘦客户端和虚拟机
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种设备远程访问的方法、瘦客户端和虚拟机。
【背景技术】
[0002]在桌面云系统的应用场景下,用户可以在远端数据中心的虚拟机(VirtualMachine, VM端),通过网络,实现对本地瘦客户端(Thin Client, TC)所连接的物理设备的远程访问,例如TC端通过通用串行总线(Universal Serial Bus, USB)接口连接的智能卡等物理设备。
[0003]通常,VM端可以通过重定向技术,实现上述远程访问。也就是将TC端的物理设备驱动器中设备驱动程序修改为重定向驱动程序,使该重定向驱动程序能够读取携带有VM端请求访问TC端的物理设备的远程操作指令,从而使VM端能够实现对该物理设备的远程访问。
[0004]但是,由于修改后的重定向驱动程序无法读取TC端的操作指令,因此TC端无法继续正常访问该物理设备。

【发明内容】

[0005]抟术问是页
[0006]有鉴于此,本发明要解决的技术问题是,如何在不修改TC端的设备驱动程序的情况下,实现VM端对TC端的物理设备的远程访问。
[0007]解决方案
[0008]为了解决上述问题,在第一方面,本发明提供了一种设备远程访问的方法,用于桌面云系统,包括:TC端的总线过滤驱动器接收VM端对所述TC端的物理设备的远程访问请求;所述总线过滤驱动器将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令;所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的远程响应数据。
[0009]结合第一方面,在第一种可能的实现方式中,在所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令之后,还包括:所述总线过滤驱动器接收所述物理设备经由所述物理设备驱动器返回的所述远程响应数据;所述总线过滤驱动器向所述VM端发送所述远程响应数据。
[0010]结合第一方面或其上述可能的实现方式,在第二种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0011]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述总线过滤驱动器为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据和本地响应数据为本地通用串行总线应答消息。
[0012]为了解决上述问题,在第二方面,本发明提供了一种设备远程访问的方法,用于桌面云系统,包括:VM端的虚拟总线驱动器接收所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令;所述虚拟总线驱动器将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求;所述虚拟总线驱动器向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0013]结合第二方面,在第一种可能的实现方式中,在所述虚拟总线驱动器向所述TC端发送所述远程访问请求之后,包括:所述虚拟总线驱动器接收所述TC端发送的远程响应数据;所述虚拟总线驱动器经由所述虚拟设备驱动器向所述应用程序发送所述远程响应数据。
[0014]结合第二方面或其上述可能的实现方式,在第二种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0015]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述虚拟总线驱动器为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
[0016]为了解决上述问题,在第三方面,本发明提供了一种TC端,包括总线过滤驱动器和物理设备驱动器,所述总线过滤驱动器用于,接收VM端对所述TC端的物理设备的远程访问请求;将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令;向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0017]结合第三方面,在第一种可能的实现方式中,所述物理设备驱动器还用于,接收所述物理设备的所述远程响应数据并转发给所述总线过滤驱动器;所述总线过滤驱动器还用于,接收所述物理设备驱动器的所述远程响应数据并转发给所述VM端。
[0018]结合第三方面或其上述可能的实现方式,在第二种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0019]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述总线过滤驱动器为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据本地响应数据为本地通用串行总线应答消息。
[0020]为了解决上述问题,在第四方面,本发明提供了一种VM端,包括虚拟总线驱动器和虚拟设备驱动器,所述虚拟总线驱动器用于,接收所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令;将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求;向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0021]结合第四方面或其上述可能的实现方式,在第二种可能的实现方式中,所述虚拟总线驱动器还用于,接收所述VM端的所述远程响应数据并转发给所述虚拟设备驱动器;所述虚拟设备驱动器还用于,接收所述虚拟总线驱动器的所述远程响应数据并转发给所述应用程序。
[0022]结合第四方面或其上述可能的实现方式,在第三种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0023]结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述虚拟总线驱动器为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
[0024]有益.效果
[0025]通过TC端的总线过滤驱动器接收VM端对TC端的物理设备的远程访问请求,并将其转换为TC端的物理设备驱动器能够读取的操作指令,根据本发明实施例的设备远程访问的方法、瘦客户端和虚拟机,能够实现VM端对TC端的物理设备的远程访问,并且由于未修改设备驱动程序,因此TC端能够继续正常访问该物理设备。
[0026]根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
【专利附图】

【附图说明】
[0027]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0028]图1示出根据本发明实施例1的设备远程访问的方法的流程图;
[0029]图2示出根据本发明实施例2的设备远程访问的方法的流程图;
[0030]图3示出根据本发明实施例3的设备远程访问的方法的流程图;
[0031]图4示出根据本发明实施例4的设备远程访问的方法的流程图;
[0032]图5示出根据本发明实施例5的TC端的框图;
[0033]图6示出根据本发明实施例6的TC端的框图;
[0034]图7示出根据本发明实施例7的VM端的框图;
[0035]图8示出根据本发明实施例8的VM端的框图;
[0036]图9示出根据本发明实施例9的TC端的框图;
[0037]图10示出根据本发明实施例10的VM端的框图。
【具体实施方式】
[0038]以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0039]在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0040]另外,为了更好的说明本发明,在下文的【具体实施方式】中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0041]实施例1
[0042]图1示出根据本发明一实施例的设备远程访问的方法的流程图。如图1所示,该设备远程访问的方法主要包括:
[0043]步骤SI 10、TC端的总线过滤驱动器接收VM端对所述TC端的物理设备的远程访问请求。
[0044]具体地,在桌面云的应用场景下,本地TC端和远程VM端通过网络连接。TC端连接有一个或多个物理设备。TC端设置有总线过滤驱动器。若VM端的应用程序要访问TC端所连接的物理设备,则TC端可以从VM端接收对TC端的物理设备的远程访问请求。其中,远程访问请求携带有VM端的应用程序请求访问TC端的物理设备的信息。其中,物理设备可以通过各种总线接口,例如USB接口,连接到TC端。根据物理设备的类型,可以相应地设置总线过滤驱动器的类型。例如:若智能卡通过USB接口连接到TC端,则总线过滤驱动器为USB总线过滤驱动器。物理设备可以为智能卡或其他设备。
[0045]此外,远程访问请求还可以携带有物理设备的标识信息,TC端可以根据该标识信息,确定VM端所要访问的具体物理设备;和/或可以携带有VM端的标识信息,TC端可以根据该标识信息,确定该远程访问请求来自具体哪个VM端和/或VM端的具体哪个应用程序。
[0046]步骤S120、所述总线过滤驱动器将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令。
[0047]具体地,TC端的总线过滤驱动器首先判断所接收到的指令是否为VM端的远程访问请求。总线过滤驱动器仅处理所接收到的VM端的远程访问请求,而对其他指令不进行处理。若是,则总线过滤驱动器根据该远程访问请求,生成对TC端对应的物理设备驱动器的远程操作指令,也就是将该远程访问请求转换为TC端对应的物理设备驱动器能读取的远程操作指令。
[0048]步骤S130、所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的远程响应数据。
[0049]举例而言,总线过滤驱动器向物理设备驱动器发送远程操作指令。物理设备驱动器根据该远程操作指令,生成物理设备能够读取的远程驱动指令,并将该远程驱动指令发送至物理设备。物理设备根据该远程驱动指令,执行相应的读写操作,根据读写操作的执行结果,生成远程响应数据,并将远程响应数据返回至物理设备驱动器。其中,物理设备执行的读写操作可以包括:读取物理设备中已有的数据,如VM端用于鉴权的用户身份信息;或者将数据写入到物理设备。其中,远程响应数据中可以包括VM端的标识信息,TC端可以根据该标识信息,确定向具体哪个VM端发送远程响应数据;还可以携带有TC端的标识信息,VM端可以根据该标识信息,确定该响应数据来自具体哪个TC端。
[0050]此外,由于未修改设备驱动程序,因此物理设备驱动器仍然能够响应于TC端的应用程序发来的本地访问请求,从而保证TC端的应用程序可以继续访问物理设备,而不受VM端的远程访问请求的影响。
[0051]在一种可能的实现方式中,所述物理设备驱动器可以接收所述TC端的应用程序对所述物理设备的本地操作指令;所述物理设备驱动器根据所述本地操作指令,驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的本地响应数据。
[0052]具体地,若物理设备驱动器接收到本地TC端的应用程序发来的本地操作指令,则据此生成物理设备能够读取的本地驱动指令,并将该本地驱动指令发送至物理设备。物理设备根据该本地驱动指令,执行相应的读写操作,例如读取物理设备中已有的数据(如VM端用于鉴权的用户身份信息)或者将数据写入到物理设备。物理设备根据读写操作的执行结果,生成本地响应数据,并将该本地响应数据返回至物理设备驱动器。物理设备驱动器据此向TC端的该应用程序转发该本地响应数据。
[0053]举例而言,用户可以在TC端请求远程登录到远端数据中心即VM端的桌面云系统。桌面云系统读取连接到TC端的智能卡中的数据进行鉴权操作,在鉴权成功后,用户可以在TC端远程登录到VM端。若用户还需要登录本地TC端的应用程序,则用户可以继续读取本地TC端的智能卡中的数据,针对本地TC端的应用程序进行鉴权操作。
[0054]需要说明的是,可以根据各指令到达物理设备驱动器的先后顺序,依次处理本地操作指令和远程操作指令,从而依次响应于TC端的本地访问请求和VM端的远程访问请求。
[0055]这样,通过TC端的总线过滤驱动器接收VM端对TC端的物理设备的远程访问请求,并将其转换为TC端的物理设备驱动器能够读取的操作指令,能够实现VM端对TC端的物理设备的远程访问,并且由于未修改设备驱动程序,因此TC端能够继续正常访问该物理设备。
[0056]此外,由于该总线过滤驱动器无需对本地已有的USB指令做任何修改,因此相比于现有技术中USB重定向的方法,本实施例的方法适用于TC端已有的各种应用程序和各种物理设备,并且不会影响物理设备远程访问的速度。由于未使用PC/SC协议,因此相比于现有技术中PC/SC协议重定向的方法,本实施例的方法无需物理设备支持PC/SC协议,从而具有很好的兼容性。
[0057]实施例2
[0058]图2示出根据本发明实施例2的一设备远程访问的方法的流程图。图2中标号与图1中相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0059]如图2所示,图2所示的方法与图1所示的方法的主要区别在于:步骤S130之后,总线过滤驱动器还可以接收物理设备经由物理设备驱动器返回的远程响应数据,并向VM端发送远程响应数据。
[0060]在一种可能的实现方式中,步骤SllO可以具体包括以下步骤:
[0061]步骤S210、TC端的设备服务器接收VM端发送的对物理设备的远程访问请求;
[0062]步骤S220、总线过滤驱动器接收TC端的设备服务器发送的对物理设备的远程访问请求。
[0063]具体地,TC端设置有设备服务器。设备服务器可以通过网络,接收VM端基于TC端与VM端之间的网络传输协议发来的数据,例如VM端对TC端的物理设备的远程访问请求,则设备服务器将该远程访问请求转发给总线过滤驱动器,以使总线过滤驱动器处理该远程访问请求。其中,TC端的设备服务器还可以首先基于TC端与VM端之间的网络传输协议,解析所接收到的数据以得到远程访问请求后,再发送给总线过滤驱动器。
[0064]举例而言,如果物理设备驱动器接收到总线过滤驱动器发来的远程操作指令,则据此生成远程响应数据的流程,具体可以包括以下步骤:
[0065]步骤S230、物理设备驱动器根据所接收到的总线过滤驱动器的远程操作指令,生成物理设备能够读取的远程驱动指令;
[0066]步骤S240、物理设备驱动器将该远程驱动指令发送至物理设备;
[0067]步骤S250、物理设备根据所接收到的该远程驱动指令,执行相应的读写操作,并根据读写操作的执行结果,生成远程响应数据;
[0068]步骤S260、物理设备将该远程响应数据发送至物理设备驱动器。
[0069]在一种可能的实现方式中,步骤S130之后,还可以具体包括以下步骤:
[0070]步骤S270、物理设备驱动器将所接收到的远程响应数据转发至总线过滤驱动器;
[0071]步骤S280、总线过滤驱动器将所接收到的远程响应数据转发至TC端的设备服务器;
[0072]步骤S290、设备服务器将所接收到的远程响应数据转发至VM端。
[0073]具体地,设备服务器可以接收总线过滤驱动器发来的数据,例如TC端的物理设备的远程响应数据,则设备服务器可以通过TC端与VM端之间连接的网络,将该远程响应数据转发给VM端,以使VM端处理该远程响应数据。其中,为了满足网络传输的需要,TC端的设备服务器还可以先将远程响应数据转换为支持TC端和VM端的网络传输协议的数据后,再发送给VM端。
[0074]在一种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0075]在一种可能的实现方式中,所述总线过滤驱动器为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据和本地响应数据为本地通用串行总线应答消
肩、O
[0076]举例而言,若物理设备是通过USB接口连接到TC端的智能卡,则TC端相应地设置有USB总线过滤驱动器。USB总线过滤驱动器可以接收VM端的远程通用串行总线请求消息(USB Request Block, URB),该远程URB请求消息携带有对该智能卡的远程访问请求的信息;据此生成本地URB请求消息(USB Request Block,URB),并向智能卡驱动器发送该本地URB请求消息,该本地请求URB消息携带有对该智能卡的远程操作指令的信息。本地TC端的应用程序也可以向智能卡驱动器发送本地URB请求消息。智能卡执行对应的读写操作,生成本地URB应答消息,并向智能卡驱动器返回该本地URB应答消息,该本地URB应答消息携带有远程响应数据或本地响应数据的信息。智能卡驱动器根据本地URB应答消息的内容,向USB总线过滤驱动器返回该远程响应数据,或向本地TC端的应用程序返回该本地响应数据。
[0077]此外,TC端的设备服务器还可以检测用户是否将物理设备插入TC端。若检测到有物理设备插入TC端,则TC端的设备服务器向VM端发送对应于该物理设备的插入通知,以使VM端据此加载与该物理设备对应的虚拟设备。TC端的设备服务器还可以接收VM端发来的对该物理设备的查询请求或者主动查询设备信息,并根据所查询该物理设备的设备信息,向VM端发送该设备信息,以使VM端加载与该物理设备对应的虚拟设备。其中,设备信息可以包括该物理设备的设备类型和设备标识等设备信息。另外,TC端的设备服务器还可以检测是否有物理设备自TC端拔出。若检测到有物理设备自TC端拔出,则TC端的设备服务器向VM端发送对应于该物理设备的拔出通知,以使VM端卸载与该物理设备对应的虚拟设备,以使VM端的虚拟设备与TC端的物理设备实现同步加载与同步卸载。其中,拔出通知也可以携带有该物理设备的设备信息,以使VM端确定所要卸载的具体虚拟设备。
[0078]实施例3
[0079]图3示出根据本发明实施例3的一设备远程访问的方法的流程图。如图3所示,该设备远程访问的方法主要包括:
[0080]步骤S310、VM端的虚拟总线驱动器接收所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令。
[0081]具体地,VM端设置有虚拟总线驱动器和虚拟设备驱动器。VM端根据对TC端的物理设备进行远程访问的需要,通过在VM端设置虚拟总线驱动器和虚拟设备驱动器的方式,使VM端加载一个与TC端的该物理设备对应的虚拟设备。若VM端的应用程序要访问TC端的该物理设备,则VM端的虚拟总线驱动器可以接收到所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令。其中,物理设备可以通过各种总线接口,例如通用串行总线(Universal Serial Bus,USB)接口,连接到TC端。根据物理设备的类型,可以相应地设置VM端的虚拟总线驱动器的类型。例如:若智能卡通过USB接口连接到TC端,则VM端的虚拟总线驱动器可以设置为虚拟USB总线驱动器。此外,物理设备可以为智能卡或其他设备。
[0082]步骤S320、所述虚拟总线驱动器将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求。
[0083]具体地,虚拟总线驱动器根据该虚拟操作指令,生成对TC端对应的物理设备的远程访问请求,也就是将该虚拟操作指令转换为TC端对应的总线过滤驱动器能读取的远程访问请求。其中,远程访问请求携带有VM端的应用程序请求访问TC端对应的物理设备的信息;还可以携带有物理设备的标识信息,以使TC端可以根据该标识信息,确定VM端所要访问的具体物理设备;和/或可以携带有VM端的标识信息,以使TC端可以根据该标识信息,确定该远程访问请求来自具体哪个VM端和/或VM端的具体哪个应用程序。
[0084]步骤S330、所述虚拟总线驱动器向所述TC端发送所述远程访问请求。
[0085]具体地,远程访问请求,用于指示总线过滤驱动器将远程访问请求转换为TC端的物理设备驱动器能够读取的远程操作指令。该远程操作指令,用于指示物理设备驱动器驱动对应的物理设备执行读写操作,并返回携带有读写操作的执行结果的远程响应数据。
[0086]这样,通过VM端的虚拟总线驱动器接收到VM端的应用程序对TC端的物理设备的虚拟操作指令,并将其转换为TC端的总线过滤驱动器能够读取的远程访问请求,能够实现VM端的应用程序对TC端的物理设备的远程访问。
[0087]实施例4
[0088]图4示出根据本发明实施例4的一设备远程访问的方法的流程图。图4中标号与图3中相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0089]如图4所示,图4所示的方法与图3所示的方法的主要区别在于:VM端的虚拟总线驱动器经由VM端的设备服务器,向TC端发送远程访问请求,和/或接收TC端的远程响应数据。
[0090]在一种可能的实现方式中,步骤S330可以具体包括以下步骤:
[0091]步骤S430、虚拟总线驱动器向VM端的设备服务器发送远程访问请求;
[0092]步骤S440、设备服务器将所接收到的远程访问请求转发至TC端。
[0093]具体地,VM端的设备服务器可以接收虚拟总线驱动器发来的数据,例如TC端的物理设备的远程响应数据,则设备服务器可以通过TC端与VM端之间连接的网络,将该远程访问请求转发给TC端,以使TC端处理该远程访问请求。其中,为了满足网络传输的需要,设备服务器还可以先将远程响应数据转换为支持TC端和VM端的网络传输协议的数据后,再发送给VM端。
[0094]在一种可能的实现方式中,步骤S330之后,还可以包括以下步骤:
[0095]步骤S450、VM端的设备服务器接收TC端发来的远程响应数据;
[0096]步骤S460、设备服务器将所接收到的远程响应数据转发至虚拟总线驱动器;
[0097]步骤S470、虚拟总线驱动器将所接收到的远程响应数据转发至虚拟设备驱动器;
[0098]步骤S480、虚拟设备驱动器将所接收到的远程响应数据转发至TC端的应用程序。
[0099]具体地,设备服务器可以通过网络,接收VM端基于TC端与VM端之间的网络传输协议发来的数据,例如TC的物理设备的远程响应数据,则设备服务器将该远程响应数据转发给虚拟总线驱动器,以使虚拟总线驱动器处理该远程响应数据求。其中,TC端的设备服务器还可以首先基于TC端与VM端之间的网络传输协议,解析所接收到的数据以得到远程响应数据后,再发送给虚拟总线驱动器。
[0100]在一种可能的实现方式中,步骤S310可以具体包括以下步骤:
[0101]步骤S410、虚拟设备驱动器接收VM端的应用程序发来的虚拟操作指令;
[0102]步骤S420、虚拟设备驱动器将所接收到的虚拟操作指令转发至虚拟总线驱动器。
[0103]具体地,若VM端的虚拟设备驱动器可以接收到所述VM端的应用程序对VM端的虚拟操作指令,也就是该应用程序需要访问TC端对应的物理设备,则虚拟总线驱动器将该虚拟操作指令转发给虚拟总线驱动器,以使虚拟总线驱动器处理该虚拟操作指令。
[0104]在一种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0105]在一种可能的实现方式中,所述虚拟总线驱动器为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
[0106]举例而言,若VM端的设备服务器接收到TC端发来的插入通知,则可以据此加载与TC端的物理设备对应的虚拟设备。若VM端之前未安装过该虚拟设备,则初始化该虚拟设备,以加载该虚拟设备。若VM端之前已经安装过该虚拟设备,则根据该虚拟设备的安装信息,直接加载该虚拟设备的驱动程序,以加载该虚拟设备。VM端加载该虚拟设备之后,即在VM端上设置了与该虚拟设备对应的虚拟设备驱动器。此外,VM端加载该虚拟设备之后,可以通过系统消息,提示VM端有新的虚拟设备加载,以使VM端的应用程序可以正常访问该虚拟设备。其中,VM端的设备服务器可以接收到TC端主动发来的设备信息,例如该物理设备的设备类型和设备标识等信息;也可以主动查询设备信息,并接收TC端据此返回的设备信息。此外,若设备服务器接收到TC端发来的物理设备的拔出通知,则可以据此卸载对应的虚拟设备,以使VM端的虚拟设备与TC端的物理设备实现同步加载与同步卸载。其中,拔出通知也可以携带有该物理设备的设备信息,以使VM端确定所要卸载的具体是哪个虚拟设备。
[0107]实施例5
[0108]图5示出根据本发明实施例5的一 TC端的框图。如图5所示,该TC端主要包括:总线过滤驱动器510和物理设备驱动器520。其中,总线过滤驱动器510用于,接收VM端对所述TC端的物理设备530的远程访问请求;将所述远程访问请求转换为所述物理设备驱动器520能够读取的远程操作指令;向所述物理设备驱动器520发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器520驱动所述物理设备530执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0109]在一种可能的实现方式中,所述物理设备驱动器520用于,接收所述TC端的应用程序对所述物理设备的本地操作指令;根据所述本地操作指令,驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的本地响应数据。
[0110]其中,该TC端用于实现设备远程访问的具体机制和有益效果,可以参考图1及其相关描述。
[0111]实施例6
[0112]图6不出根据本发明实施例6的一 TC端的框图。图6中标号与图5中相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0113]如图6所示,图6所示的TC端与图5所示的TC端的主要区别在于:还包括设备服务器610。
[0114]具言之,所述设备服务器610,用于接收所述VM端的远程访问请求并转发给所述总线过滤驱动器510。所述总线过滤驱动器510,还用于接收所述设备服务器610的所述远程访问请求。
[0115]在一种可能的实现方式中,所述物理设备驱动器520还用于,接收所述物理设备530的所述远程响应数据并转发给所述总线过滤驱动器510。所述总线过滤驱动器510还用于,接收所述物理设备驱动器520的所述远程响应数据并转发给所述设备服务器610。所述设备服务器610还用于,接收所述总线过滤驱动器510的所述远程响应数据并转发给所述VM端。
[0116]在一种可能的实现方式中,所述物理设备530为通过通用串行总线连接到所述TC端的智能卡。
[0117]在一种可能的实现方式中,所述总线过滤驱动器510为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据本地响应数据为本地通用串行总线应答消息。
[0118]其中,该TC端用于实现设备远程访问的具体机制和有益效果,可以参考图2及其相关描述。
[0119]实施例7
[0120]图7示出根据本发明实施例7的一 VM端的框图。如图7所示,该VM端主要包括:虚拟总线驱动器710和虚拟设备驱动器720。其中,所述虚拟总线驱动器710用于,接收所述VM端的应用程序对所述VM端的虚拟设备驱动器720的虚拟操作指令;将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求;向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0121]其中,该VM端用于实现设备远程访问的具体机制和有益效果,可以参考图3及其相关描述。
[0122]实施例8
[0123]图8示出根据本发明实施例8的一 VM端的框图。图8中标号与图7中相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0124]如图8所示,图8所示的VM端与图7所示的VM端的主要区别在于:还包括设备服务器810。
[0125]具言之,所述设备服务器810,用于接收所述虚拟总线驱动器710的所述远程访问请求并转发给所述VM端。
[0126]在一种可能的实现方式中,所述设备服务器810还用于,接收所述VM端的所述远程响应数据并转发给所述虚拟总线驱动器。所述虚拟总线驱动器710还用于,接收所述设备服务器810的所述远程响应数据并转发给所述虚拟设备驱动器720。所述虚拟设备驱动器720还用于,接收所述虚拟总线驱动器710的所述远程响应数据并转发给所述应用程序。
[0127]在一种可能的实现方式中,所述虚拟设备驱动器720还用于,接收所述应用程序的所述虚拟操作指令并转发给所述虚拟总线驱动器710。所述虚拟总线驱动器710还用于,接收所述虚拟设备驱动器720的所述虚拟操作指令。
[0128]在一种可能的实现方式中,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
[0129]在一种可能的实现方式中,所述虚拟总线驱动器710为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
[0130]其中,该VM端用于实现设备远程访问的具体机制和有益效果,可以参考图4及其相关描述。
[0131]实施例9
[0132]图9示出了本发明的实施例9的一 TC端的结构框图。所述TC端1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0133]所述TC 端 1100 包括处理器(processor) 1110、通信接口(CommunicationsInterface) 1120、存储器(memory array) 1130 和总线 1140。其中,处理器 1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
[0134]通信接口 1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共
享存储等。[0135]处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0136]存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0137]在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:使瘦客户TC端的总线过滤驱动器接收虚拟机VM端对所述TC端的物理设备的远程访问请求;使所述总线过滤驱动器将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令;使所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的远程响应数据。
[0138]在一种可能的实施方式中,该程序还可用于:使所述物理设备驱动器接收所述TC端的应用程序对所述物理设备的本地操作指令;使所述物理设备驱动器根据所述本地操作指令,驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的本地响应数据。
[0139]在一种可能的实施方式中,该程序还可用于:使所述总线过滤驱动器接收所述VM端经由所述TC端的设备服务器发送的对所述物理设备的远程访问请求。
[0140]在一种可能的实施方式中,该程序还可用于:在所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令之后,使所述总线过滤驱动器接收所述物理设备经由所述物理设备驱动器返回的所述远程响应数据;所述总线过滤驱动器经由所述设备服务器,向所述VM端发送所述远程响应数据。
[0141]实施例10
[0142]图10示出了本发明的实施例10的一 VM端的结构框图。所述VM端1200可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0143]所述VM 端 1200 包括处理器(processor) 1210、通信接口(CommunicationsInterface) 1220、存储器(memory array) 1230 和总线 1240。其中,处理器 1110、通信接口1220、以及存储器1230通过总线1240完成相互间的通信。
[0144]通信接口 1220用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共
享存储等。
[0145]处理器1210用于执行程序。处理器1210可能是一个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0146]存储器1230用于存放文件。存储器1230可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1230也可以是存储器阵列。存储器1230还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0147]在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:使VM端的虚拟总线驱动器接收所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令;使所述虚拟总线驱动器将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求;使所述虚拟总线驱动器向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
[0148]在一种可能的实施方式中,该程序还可用于:使所述虚拟总线驱动器接收所述应用程序经由所述虚拟设备驱动器发送的对所述虚拟设备的虚拟操作指令。
[0149]在一种可能的实施方式中,该程序还可用于:使所述虚拟总线驱动器经由所述VM端的设备服务器向所述TC端发送所述远程访问请求。
[0150]在一种可能的实施方式中,该程序还可用于:在所述虚拟总线驱动器向所述TC端发送所述远程访问请求之后,使所述虚拟总线驱动器接收所述TC端经由所述VM端的设备服务器发送的远程响应数据;所述虚拟总线驱动器经由所述虚拟设备驱动器向所述应用程序发送所述远程响应数据。
[0151]本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0152]如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0153]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种设备远程访问的方法,用于桌面云系统,其特征在于,包括: 瘦客户TC端的总线过滤驱动器接收虚拟机VM端对所述TC端的物理设备的远程访问请求; 所述总线过滤驱动器将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令; 所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的远程响应数据。
2.根据权利要求1所述的方法,其特征在于,所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令之后,还包括: 所述总线过滤驱动器接收所述物理设备经由所述物理设备驱动器返回的所述远程响应数据; 所述总线过滤驱动器向所述VM端发送所述远程响应数据。
3.根据权利要求1或2所述的方法,其特征在于,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
4.根据权利要求3所述的方法,其特征在于,所述总线过滤驱动器为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据和本地响应数据为本地通用串行总线应答消息。
5.—种设备远程访问的 方法,用于桌面云系统,其特征在于,包括: VM端的虚拟总线驱动器接收所述VM端的应用程序对所述VM端的虚拟设备驱动器的虚拟操作指令; 所述虚拟总线驱动器将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求; 所述虚拟总线驱动器向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
6.根据权利要求5所述的方法,其特征在于,在所述虚拟总线驱动器向所述TC端发送所述远程访问请求之后,包括: 所述虚拟总线驱动器接收所述TC端发送的远程响应数据; 所述虚拟总线驱动器经由所述虚拟设备驱动器向所述应用程序发送所述远程响应数据。
7.根据权利要求5或6所述的方法,其特征在于,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
8.根据权利要求7所述的方法,其特征在于,所述虚拟总线驱动器为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
9.一种TC端,其特征在于,包括总线过滤驱动器和物理设备驱动器,所述总线过滤驱动器用于,接收VM端对所述TC端的物理设备的远程访问请求;将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令;向所述物理设备驱动器发送所述远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
10.根据权利要求9所述的TC端,其特征在于,所述物理设备驱动器还用于,接收所述物理设备的所述远程响应数据并转发给所述总线过滤驱动器;所述总线过滤驱动器还用于,接收所述物理设备驱动器的所述远程响应数据并转发给所述VM端。
11.根据权利要求9或10所述的TC端,其特征在于,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
12.根据权利要求11所述的TC端,其特征在于,所述总线过滤驱动器为通用串行总线过滤驱动器,所述远程访问请求为远程通用串行总线请求消息,所述远程操作指令和本地操作指令为本地通用串行总线请求消息,所述远程响应数据本地响应数据为本地通用串行总线应答消息。
13.一种VM端,其特征在于,包括虚拟总线驱动器和虚拟设备驱动器,所述虚拟总线驱动器用于,接收所述VM端的应用程序对所述·VM端的虚拟设备驱动器的虚拟操作指令;将所述虚拟操作指令转换为所述TC端的总线过滤驱动器能够读取的远程访问请求;向所述TC端发送所述远程访问请求,所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述TC端的物理设备驱动器能够读取的远程操作指令,所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作,并返回携带有所述读写操作的执行结果的远程响应数据。
14.根据权利要求13所述的VM端,其特征在于,所述虚拟总线驱动器还用于,接收所述VM端的所述远程响应数据并转发给所述虚拟设备驱动器;所述虚拟设备驱动器还用于,接收所述虚拟总线驱动器的所述远程响应数据并转发给所述应用程序。
15.根据权利要求13或14所述的VM端,其特征在于,所述物理设备为通过通用串行总线连接到所述TC端的智能卡。
16.根据权利要求15所述的VM端,其特征在于,所述虚拟总线驱动器为虚拟通用串行总线驱动器,所述远程访问请求为远程通用串行总线请求消息,所述虚拟操作指令为本地通用串行总线请求消息,所述远程响应数据为本地通用串行总线应答消息。
【文档编号】H04L29/08GK103595790SQ201310567832
【公开日】2014年2月19日 申请日期:2013年11月14日 优先权日:2013年11月14日
【发明者】陈震 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1