首页> 中国专利> 远程USB环境中的混合或复合USB设备的划分

远程USB环境中的混合或复合USB设备的划分

摘要

提供了用于将远程USB环境中的混合或复合USB设备划分的系统和方法。第一计算机主机具有USB远程逻辑和USB设备划分逻辑。所述USB远程逻辑被配置为促使被附着于第一计算机主机的USB设备可访问在第二或第三计算机主机上运行的资源。当混合或复合USB设备被连接至第一计算机主机时,USB设备划分逻辑向第二计算机主机呈现第一虚拟USB设备并向第三计算机主机呈现第二虚拟USB设备。第一和第二虚拟USB设备每个包含来自存在于底层混合或复合USB设备中的该组USB功能的划分的不同部分。

著录项

  • 公开/公告号CN102388376A

    专利类型发明专利

  • 公开/公告日2012-03-21

    原文格式PDF

  • 申请/专利权人 惠普开发有限公司;

    申请/专利号CN200980158642.1

  • 发明设计人 J.M.金;R.E.奥利诺;

    申请日2009-04-10

  • 分类号G06F15/00;G06F13/00;G06F9/00;H04L29/06;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人王岳

  • 地址 美国德克萨斯州

  • 入库时间 2023-12-18 04:47:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-03-11

    授权

    授权

  • 2012-05-30

    实质审查的生效 IPC(主分类):G06F15/00 申请日:20090410

    实质审查的生效

  • 2012-03-21

    公开

    公开

说明书

技术领域

本发明一般地涉及用于促使被附着于第一计算机主机的通用串行总线(“USB”)外围设备可访问在远离第一个的第二计算机主机上运行的资源的技术。

背景技术

存在使得本地计算机处的用户能够通过计算机网络访问并共享远程计算机(例如中央服务器)的桌面的协议。一个此类协议是由微软公司提供的远程桌面协议(“RDP”),微软公司通过网络连接来提供远程显示和输入能力。能够在本上下文中使用的另一协议是来自Hewlett Packard公司的远程图形软件(“RGS”)协议。RGS被设计为利用计算机和远程计算机的图形资源来在本地计算机处递送交互式远程访问。通过网络将远程计算机的桌面图形数据传送至本地计算机,其在本机计算机处的窗口中本地地显示桌面图形数据。RGS捕捉本地计算机处的用户键盘和鼠标输入,并将该键盘和鼠标输入发送至远程计算机以便由远程计算机的操作系统且由在远程计算机上运行的应用程序来处理。RGS还允许将诸如存储设备的某些外围设备的数据从本地计算机传送至远程计算机。

用于RDP、RGS或类似系统的现代附件是促使在物理上附着于本地计算机主机的USB设备可访问在远程计算机主机上运行的资源的能力。后一布置在下文中将称为“远程USB环境”。

附图说明

图1是根据本发明的优选实施例的举例说明用于将远程USB环境中的混合或复合USB设备划分的系统的方框图。

图2是根据本发明的优选实施例的更详细地举例说明图1的计算机主机的方框图。

图3是根据本发明的优选实施例的举例说明用于将远程USB环境中的混合或复合USB设备划分的方法的流程图。

图4是举例说明示例性状态的表格,根据本发明的优选实施例,所述示例性状态能够指示混合或复合USB设备的功能应被呈现给多个主机中的哪些。

图5是根据本发明的优选实施例的举例说明包含在图1的混合和复合设备中的USB功能的示例性划分的方框图。

图6是根据本发明的一个优选实施例的举例说明用于设置图4的状态的方法的流程图。

图7是根据本发明的另一优选实施例的举例说明用于设置图4的状态的方法的流程图。

图8是根据本发明的另一优选实施例的举例说明用于设置图4的状态的方法的流程图。

具体实施方式

图1举例说明根据本发明的优选实施例的用于将远程USB环境中的混合或复合USB设备划分的系统100。描绘了三个计算机主机102、104、106。在其它实施例中,可以使用更多计算机主机。计算机主机102装配有USB远程逻辑100,并且计算机主机104、106装配有USB远程逻辑109。下面将相对于图2更详细地描述USB远程逻辑108、109。在某些实施例中,主机102可以访问配置文件110,诸如在处于主机102本地或可通过常规手段以别的方式可用于主机102的存储设备或存储器上。优选地,主机102、104、106能够经由网络114相互通信。网络114可以采取任何常规形式,诸如,例如TCP/IP网络或UDP/IP网络。除USB远程逻辑108/109的存在之外,主机102、104、106可以采取任何常规计算设备的形式,并且主机102、104、106不需要是相同的。例如,三个主机中的任何一个或全部可以采取台式计算机、服务器计算机、嵌入式计算机或诸如膝上型或手持式计算机的便携式计算设备的形式。因此,每个主机正常地将装配有用于执行代码的至少一个中央处理单元和用于存储代码以及相关数据及其它信息的存储器。

主机102可以装配有USB主机控制器116,以便可以将其连接至复合USB设备118和/或混合USB设备120。(在实际实施例中,可以将任何数目、类型和混合的USB设备连接至主机102—甚至是单个设备;图中所示的配置仅仅是出于说明性目的。) 复合USB设备118和混合USB设备120可以是常规的。每个包含多个USB功能。例如,复合设备118可以包含USB功能122、124和126,并且复合设备可以包含如所示的USB功能128、130和132。在实际实施例中,复合设备118和混合设备120中的每一个可以包含比所示的那些更少或更多的USB功能。包含在设备中的USB功能可以是任何常规类型的。典型USB功能的示例是键盘、鼠标、音频设备、视频设备、生物计量设备等。依照USB标准,复合USB设备是具有单个设备地址但许多接口描述符的一个。另一方面,混合USB设备具有可经由也具有地址的内部集线器访问的多个设备地址。

图2更详细地举例说明计算机主机102、104、106。主机102内的USB远程逻辑108可以包含虚拟内插器逻辑200和发送/接收逻辑202。此外,虚拟内插器逻辑200可以包含设备划分逻辑204。同样地,主机104、106内的USB远程逻辑109可以包含虚拟内插器逻辑206、发送/接收逻辑208和(在某些实施例中)仲裁协议逻辑210。优选地,每个主机被装配为用某些手段(诸如用网络接口卡(“NIC”)212)与网络114对接。发送/接收逻辑202、208被配置为经由网络114在相互之间传送分组。该分组可以表示在主机104或106处的用户层级应用程序214与被连接到主机102的USB设备之间传递的命令和数据。该分组还可以表示在主机104、106内的内核空间实体(诸如内核子系统/IO管理器232和/或上USB设备堆栈216)与被连接到主机102的USB设备之间传递的通知和配置命令和数据。(为了获得关于通过网络在主机之间发送USB设备信息的示例性实施方式的更多信息,读者参考题为“Emulation of a Device Protocol”的美国专利申请序号11/343,791,该申请被结合到本文中,如同其在这里完全阐述一样。) 虚拟内插器逻辑206被配置为使发送/接收逻辑208与主机104/106中的至少部分设备驱动程序堆栈(诸如上USB设备堆栈216)对接。虚拟内插器逻辑200被配置为使发送/接收逻辑202与主机102中的至少部分设备驱动程序堆栈(诸如下USB设备堆栈218)对接。在某些实施例中,虚拟内插器逻辑206还可以与驱动USB主机控制器222的下USB设备堆栈220对接。同样在某些实施例中,虚拟内插器逻辑200还可以与上USB设备堆栈224对接,其经由内核子系统/IO管理器228和应用程序设计员的界面(“API”)230与应用程序226对接。上USB设备堆栈216正常地将与内核子系统/IO管理器232对接,其又能够经由API 234与应用程序214对接。

主机102、104、106内的操作环境不需要是相同的。例如,任一主机可以使用Microsoft Windows操作系统、Unix或Linux操作系统或某个其它类型的操作系统。在Microsoft Windows Driver Foundation的词汇中,可以存在于上USB设备堆栈216中的对象的示例将是功能驱动程序对象(“FDO”)以及可能的一个或多个USB过滤器驱动程序。可以存在于下USB设备堆栈218中的对象的示例将是物理设备对象(“PDO”)以及可能的附加USB过滤器驱动程序。在其它平台上,可以使用不同的术语,并且在堆栈中可以存在不同的对象。图2所示的配置的效果是可以使得被附着于主机102的USB设备可经由网络114访问在主机104、106上运行的资源,诸如内核空间实体和/或诸如应用程序214的应用程序。

现在将相对于图3~5来描述用于图1和2的系统的优选行为。特别地,图3描述根据本发明的优选实施例的用于将诸如图1和2的远程USB环境中的混合或复合USB设备划分的方法300。在步骤302中,可以在主机102中设置状态400以提供本地USB功能122~132到远程主机104、106的映射。状态400的目的是指示应将USB功能122~132中的至少某些呈现给哪个远程主机,因此,状态400的形式和内容对于不同的实施例可以不同。在某些实施例中,状态400可以使用诸如用设备地址和接口描述符来具体地识别实际上存在的USB功能的条目来将功能122~132的某些或所有映射到主机。可以用任何常规手段来识别主机,诸如用IP地址。在其它实施例中,状态400可以替代地用USB功能类型来提供功能到主机的更一般映射。例如,在此类实施例中,状态400可以包括向主机104呈现所有音频USB功能(按种类识别的第一预定功能类别)并向主机106呈现所有生物计量USB功能(按种类识别的第二预定功能类别)的指令。不需要将每个功能或功能类别映射到主机。在图4所示的状态下,例如,不将视频功能映射到任何主机。后一种技术可以用来防止使得存在于设备118、120中的某些USB功能可用于任何远程主机。并且,映射中的USB功能的类别可以包括不止一个类型。在状态400中,例如,提供“其它”类别,使得可以作为默认将不落在具体地枚举的种类内的任何类型的功能映射到特定主机(在本示例中主机104)。可以用任何常规手段将状态400存储在主机102处,诸如在存储器中。

在某些实施例中,可以使步骤302、304的顺序相反。在步骤304中,用户将诸如设备118或设备120的多功能USB设备插入主机102。在常规主机中,此动作将调用本地主机的内核子系统中的即插即用功能以加载用于处理新发现的设备的适当的一个或多个驱动程序。但是在本发明的系统中,主机102中的USB远程逻辑108将替代地与主机104或106中的远程逻辑109中的一个或多个通信以调用那些主机的内核子系统中的即插即用功能。结果将是适当的一个或多个驱动程序将被加载在主机104或106中而不是主机102中。

更特别地,在步骤306中,设备划分逻辑204变成活动的以便以特殊方式完成这一点。即,设备划分逻辑204依照状态400将存在于混合或复合设备中的该组USB功能划分成两个或更多适当的功能子集。在这样做时,其产生对应于划分的该组USB功能的至少一部分的至少一个虚拟USB设备。可以将任何适当的数据结构用于在内部表示虚拟设备并用于虚拟设备与实际上包含正在虚拟设备中表示的功能的相关物理设备之间的转换的目的。

图5举例说明此类划分的一个示例。在图5的示例中,已将来自复合物理设备118的USB功能122和126混合成虚拟USB设备500,同时已将来自复合物理设备118的USB功能124分离到另一虚拟USB设备502中。同样地,已将来自混合物理设备120的USB功能132分离到虚拟USB设备504中,同时已将USB功能128、130混合成不同的虚拟USB设备506。因此,虚拟设备500、502每个对应于该组USB功能122~126的划分的不同部分。同样地,虚拟设备504、506每个对应于该组USB功能128~132的划分的不同部分。

在所示的示例中,包含在虚拟设备500、502中的USB功能是该组USB功能122~126的穷举,并且包含在虚拟设备504、506中的USB功能的该组USB功能128~132的穷举。但是在替换实施例中,包含在虚拟设备中的功能不需要是包含在底层物理设备中的该组功能的穷举。(在例如状态400的示例中,可以通过将其包含在虚拟设备中的任何一个中来抑制存在于设备118或129中的任何视频功能)。

为了示例假设刚刚插入的设备是复合设备110。然后在步骤308中,主机102可以向主机104发送指示已经插入新的USB设备500的消息,并且在步骤312中,可以向主机106发送指示已经插入新的USB设备502的消息。另一方面,如果刚刚插入的设备是混合设备120,则主机102可以在步骤308中向主机104发送指示已经插入新的USB设备504的消息,并且可以在步骤312中向主机106发送指示已经插入新的USB设备506的消息。设备划分逻辑204可以通过响应于在状态400中存储的信息确定每个功能将被呈现给哪个远程主机来实现这一点。从该点向前,可以调用主机104、106中的常规即插即用功能以加载适合于新公告的设备500~506中的每一个的驱动程序。

本发明的系统能够保证被使得对于一个远程主机而言可见的虚拟设备500~506中的任何一个未被使得对于另一远程主机而言可见。这可以在步骤310和314中实现。如果不期望主机106能够看到设备500、504,则在步骤310和314中,简单地不向主机106发送对应于那些设备的公告消息。相对于与主机104相对的设备502、506,可以在步骤310、314中实现类似的消息抑制。

相对于在步骤302中设置状态400,可以使用多种技术。可以使用的一种技术是将状态400或能够用来构造状态400的数据存储在配置文件110中。然后,可以通过在正在对远程USB会话进行初始化时或其后读取配置文件110来设置状态400。

可以使用的另一技术是使用仲裁协议逻辑210来设置状态400,用图6中的方法600来举例说明其优选行为。具体地,在步骤602中,在正在对远程USB会话进行初始化的时间或其后期间,主机104和106(和任何其他远程主机,如果系统100包括不止两个远程主机)可以经由网络114相互和/或向主机102发送消息以确定哪些远程主机将处理存在(或可能存在)于主机102上的哪些USB功能。可以以任何适当方式来执行仲裁。例如,可以向每个主机分配唯一优先权,使得如果两个主机公告了处理生物计量功能的期望或能力,则专有地将具有较高优先级的主机指定为处理该功能。已参考本公开的本领域的技术人员将认识到可以设计用于执行冲裁的各种方法,并且此类方法为正在实现的分布式应用种类所特有。(例如,刚刚提到的按优先级排列方案在其中将使用单个安全服务器106以生物计量方式来认证用户的分布式应用中可能是适当的,并且一旦经过认证,应允许其访问第二服务器104上的音频和视频资源。) 一旦仲裁已经完成,则可以将仲裁的结果传送至主机102以便实现。例如,在步骤604中,主机104可以向主机102发送消息以将其本身注册为将处理一组USB功能的主机;并且在步骤606中,主机106可以向主机102发送消息以将其本身注册为将处理另一组USB功能的主机。步骤604和/或步骤606中的消息的结果可以是相应地设置状态400。

用图7中的方法700来举例说明设置状态400的另一方式。在步骤702中,主机102将一个远程主机(诸如主机104或106)选择为诸如功能122~132的一组可用USB功能的受要约者(offeree)。在步骤704中,主机102向所选远程主机发送提供用于分配的可用USB功能的消息。在步骤706中,远程主机向主机102发送响应消息,选择所提供的那些USB功能的某个子集(所选子集可以是空的,其可以是提供的完整集合,或者其可以是所提供的功能的某些非空合适子集。) 在步骤708中,主机102设置或更新状态400以将所选的那些功能分配给所选远程主机。在步骤710中,主机102从可用于分配给其它远程主机的该组USB功能去除所分配的USB功能。在步骤712中,根据是否仍有用于到其它远程主机的可能分配的任何USB功能,该过程可以重复或终止。如果存有任何一个,则主机102可以选择另一主机并继续步骤702。可以根据任何适当标准来选择远程主机,诸如依照远程主机的某个预定或仲裁排序。在设备划分逻辑204中和协议仲裁逻辑210中可以实现方法700中所述的功能。

用图8中的方法800来举例说明设置状态400的另一方式。在步骤802中,主机102使用任何适当的显示设备136来呈现用户界面134。用户界面134允许用户选择应将可用USB功能122~132中的哪些映射到可用远程主机(诸如主机104、106)中的哪些。在步骤804中,主机102响应于经由用户界面134指示的用户的选择来设置或更新状态400以相应地分配可用USB功能。在设备划分逻辑204中可以实现方法800中所述的功能。用于设置状态400的其它技术也是可能的。

在大多数实施例中,可以预期虚拟设备500将被作为具有两个功能的复合设备呈现给主机104,而虚拟设备506将被作为具有两个功能的混合设备呈现给主机106。然而,用适当的转换逻辑,可以有其它变化。例如,可以将虚拟设备500呈现为混合体,或者可以将虚拟设备506呈现为复合体。

应注意的是不需要在如所示的独立组件中实现上述逻辑。例如,可以以等效的效果整体地或单独地实现虚拟内插器200、设备划分逻辑204和发送/接收逻辑202中的任何或全部。并且,可以用等效的效果整体地或单独地实现虚拟内插器206、仲裁协议逻辑210和发送/接收逻辑208中的任何或全部。在此类实施例中,在权利要求、所写的说明及其附图中描述的任何独立组件的活动及其之间的连接应替代地归于整体地或单独地形成且等效的逻辑组件。

可以在硬件、软件、固件和/或其混合中实现上述逻辑的组件。例如,任何或所有逻辑可以采取存储在计算机可读存储介质上的指令的形式,其在被计算机执行时促使计算机执行该逻辑。此类计算机可读存储介质可以采取现在已知或将开发的任何常规形式,包括例如光盘或磁盘、磁带、固态静态或动态随机存取存储器、固态只读存储器、闪速存储器等。

在所附权利要求中,将以开放的意义来理解词语“包括”和“包含”以意指“包括以下元素但不排除其它的”。

虽然已经参考本发明的优选实施例对其进行了详细描述,但所述实施例是以示例的方式且不是以限制的方式提出的。已参考本说明书的本领域的技术人员应理解的是在不脱离如所附权利要求限定的本发明的精神和范围的情况下可以对所述实施例的形式和细节进行各种修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号