有选择地向多个发送计算机传送外围设备的数据的制作方法

文档序号:6596232阅读:156来源:国知局
专利名称:有选择地向多个发送计算机传送外围设备的数据的制作方法
有选择地向多个发送计算机传送外围设备的数据
背景技术
许多企业转向其中向用户所处的本地计算机提供中央服务器的计算资源的网络布置。可以有选择地向由在本地计算机处的用户建立的会话分配在一个或多个中央服务器处集中的计算资源(例如,软件应用、处理资源、存储资源等)。提供协议以便使在本地计算机处的用户能够经由计算机网络访问并共享远程计算机(例如,中央服务器)的桌面。一个这种协议是由微软公司提供的远程桌面协议(Remote Desktop Protocol RDP),以便经由网络连接提供远程显示和输入能力。可以使用的另一协议是来自Hewlett Packard(惠普)公司的远程图形软件(Remote Graphics Software RGS) 协议。RGS被设计成充分利用远程计算机的计算机和图形资源以便递送在本地计算机处的交互式远程访问。经由网络向本地计算机传送远程计算机的桌面视频数据,所述本地计算机在其窗口中本地显示所述桌面视频数据。RGS被设计成用于经由网络提供桌面视频数据的快速捕获、压缩和传输。RGS还允许把音频数据从远程计算机发送到本地计算机以便在本地计算机的音频设备上输出。RGS还捕获在本地计算机的用户键盘和鼠标输入,并且向远程计算机发送所述键盘和鼠标输入以便由远程计算机的操作系统和在所述远程计算机上运行的应用处理。RGS还允许把其它外围设备(例如,诸如存储设备)的数据从本地计算机传送到远程计算机。当把本地计算机连接到多个远程计算机时,必须把多个重复的(duplicate)外围设备附着到本地计算机以供对应的远程计算机使用。使用重复的外围设备增加了必须附着到本地计算机的硬件设备的数目,并且可能导致复杂度和成本的增加。


相对于以下附图以举例形式描述本发明的一些实施例
图1是包括本地计算机和远程计算机的示例性布置的框图,其中可以结合本发明的实施例;
图2是依照一个实施例在本地计算机执行的过程的流程图;和图3是依照一个实施例在远程计算机执行的过程的流程图。
具体实施例方式图1图示了其中(用户所处的)本地计算机100能够经由数据网络104连接到多个远程计算机102之一的布置。尽管在图1中只描绘了一个本地计算机100和两个远程计算机102,不过应当注意,可以存在多个本地计算机100和多于两个的远程计算机102。本地计算机100能够在所述本地计算机100和远程计算机102之间建立的会话中使用所述远程计算机102的资源。例如,本地计算机100可以使用远程计算机102的图形资源,其中所述远程计算机102经由网络104向本地计算机100递送所述远程计算机的桌面视频数据以便在本地计算机100的显示设备106中显示。本地计算机100还可以使用远程计算机102的音频资源,其中所述远程计算机102经由网络104向本地计算机100递送所述远程计算机的音频数据以便由所述本地计算机100的音频输出设备107 (例如,耳机、 扬声器等)输出。一个或多个用户接口设备108也被附着到本地计算机100。把用户接口设备108 的状态变化从本地计算机100经由数据网络104传送到远程计算机102。用户接口设备108 可以是依照HID标准的人机接口设备(HID),如在通用串行总线(USB)中所描述,用于人机接口设备(HID)的设备类别定义,固件说明书,版本1. 11,2001年6月27日。HID设备108 可以是鼠标、键盘、滚动球型输入设备、平板等。图1还示出了被附着到本地计算机100的另一输入外围设备109。在示出的例子中,输入外围设备109可以是用于接受智能卡的智能卡读取器,所述智能卡包含用户安全信息以便允许用户访问本地计算机100和多个远程计算机102之一。智能卡包含用于存储用户安全信息的存储设备。当智能卡被插入到智能卡读取器109中时,所述智能卡读取器 109从所述智能卡中获取安全信息并且把所述安全信息提供到本地计算机100。随后,本地计算机100向用户想要访问的远程计算机102中选择的一个远程计算机102提供安全信息以供所述选择的远程计算机102确定是否允许用户访问。依照一些实施例,智能卡读取器109可用于多个远程计算机102,以致不必重复所述智能卡读取器109——对于每个对应的远程计算机102 —个智能卡读取器。用于与多个远程计算机102使用一个智能卡读取器109的能力增强了效率并且避免了硬件的重复。依照这种方式,一个智能卡读取器109可以同时连接到多个远程计算机102。每个这种远程计算机102都会看见智能卡读取器109的虚拟图像。远程计算机102包括用于模拟智能卡读取器109的相应虚拟驱动器150。虚拟驱动器150与每个对应远程计算机102中的智能卡读取器设备驱动器152相交互。在每个远程计算机102中提供智能卡软件应用154以便提供与智能卡读取器109相关联的安全任务。例如,智能卡软件应用巧4可以向智能卡读取器设备驱动器152发送轮询请求以便获得已经可以由智能卡读取器109从智能卡中读取的任何数据。轮询请求被智能卡读取器设备驱动器152转送到虚拟驱动器150,所述虚拟驱动器150继而经由网络102通过各种中间组件(下面进一步描述)把所述轮询请求发送到本地计算机100。 通过使用每个远程计算机102中的虚拟驱动器150来模拟智能卡读取器109,不必在远程计算机处提供实际的智能卡读取器。一个或多个远程计算机102可以在任何给定时间被连接到本地计算机100。从而,可以使一个智能卡读取器109表现为在连接到本地计算机100的远程计算机处的多个虚拟设备。应当注意,一个或多个其它远程计算机102在该给定时间可能未被连接到本地计算机,因此在此类其它远程计算机102中的智能卡应用 IM将不能访问被附着到本地计算机100的智能卡读取器109。结果,在此类其它远程计算机102中的虚拟驱动器150可能必须模拟智能卡读取器109的存在,即便此类其它远程计算机未被连接到本地计算机100。模拟智能卡读取器109的存在涉及虚拟驱动器150从智能卡应用1 送回对请求的响应,即便智能卡读取器109目前是不可访问的。由虚拟驱动器150发送的响应可以是用于表明智能卡读取器109没有接收新的数据的响应。
作为选择,代替从智能卡应用IM发送轮询请求,所述智能卡应用IM可以等待来自智能卡读取器109的输入事件,其中所述输入事件表明智能卡已经被插入到所述智能卡读取器109中。
把由智能卡应用IM从智能卡读取器109接收的安全信息与在远程计算机102的存储装置132中存储的安全信息数据库156中的安全信息相比较。安全信息数据库156存储多个用户的安全信息,所述用户被授权访问远程计算机102。在其它实现方式中,代替智能卡读取器,输入外围设备109可以是用于控制用户访问本地计算机100和远程计算机102的另一类型的输入安全设备(例如,用于键入安全码的小键盘等)。在又一其它实现方式中,输入外围设备109可以是其它类型的外围设备,诸如USB耳机。用户可以希望USB耳机的图像出现在两个远程计算机中的每一个上。本地计算机100包括用于与智能卡读取器109相交互的结合(coalescing)设备驱动器160。“结合”设备驱动器160是设备驱动器,所述设备驱动器能够有选择地与远程计算机102中选择的不同远程计算机102建立不同的会话以便向选择的远程计算机102发送智能卡数据。例如,用户可以希望连接到不同的远程计算机102。结合设备驱动器160能够与选择的远程计算机102中相应的智能卡设备驱动器152交换信息(数据和控制信息)。结合设备驱动器160允许经由网络104在(连接的远程计算机102中)智能卡应用巧4和(在本地计算机100中的)智能卡读取器109之间的交互。另外,当本地计算机100被连接到多个远程计算机102时,结合设备驱动器160能够结合来自远程计算机的多个呼叫。例如,如果输入外围设备109是USB耳机,那么结合驱动器109可以把来自多个远程计算机的音频数据混合到一个流中以便在USB耳机输出。另一方面,如果输入外围设备109是智能卡读取器,那么结合驱动器109可以执行更多的智能功能,包括提供用于存储某些信息的高速缓冲存储器。数据网络104可以依照网际协议(IP)传送数据。HID设备108和智能卡读取器 109可以经由到本地计算机100中的USB控制器112的通用串行总线(USB)链路110 (有线或无线USB链路)被附着到本地计算机100。在上述实现方式中,与HID设备108或智能卡读取器109相关的任何数据采用USB数据的形式,所述USB数据在经由数据网络104传递的IP分组中被传送到远程计算机102。尽管在描述的实施例中参考“USB”和“IP”,不过应当注意,依照一些实施例的技术可以适用于依照其它类型的协议的数据分组。本地计算机100被认为是“接收系统”,并且每个远程计算机102被认为是“发送系统”。因而,本地计算机100包括接收器软件114,并且远程计算机102包括发送器软件 116。发送器软件116用于经由数据网络104向本地计算机100 (接收系统)中的接收器软件114发送远程计算机102 (发送系统)的桌面视频数据和音频数据,其中在显示设备106 处显示桌面视频数据,并且由音频输出设备107输出音频数据。注意,由发送器软件116发送的桌面视频数据和音频数据是实际的再现(rendering)视频数据和再现音频数据,其可以由相应的显示设备和音频输出设备再现。再现视频数据和再现音频数据不同于在源视频文件(例如,MPEG文件)或源音频文件中包含的数据,其必须被转换为可以由相应的输出设备再现的格式。远程计算机102中的发送器软件116从远程计算机102中的视频子系统136中接收视频数据。视频子系统136的视频数据可由被附着到远程计算机102的显示设备显示。 然后发送器软件116对被发送到接收器软件114的视频数据应用压缩,所述接收器软件114 然后可以在显示设备106显示视频数据之前对视频数据执行解压缩。类似地,发送器软件116从远程计算机102中的音频子系统137中接收音频数据。音频子系统137的音频数据可以由被附着到远程计算机102的音频输出设备输出。发送器软件116还向被发送到接收器软件114的音频数据应用压缩,所述接收器软件114然后可以在音频输出设备107处输出音频数据之前对音频数据执行解压缩。注意,在一些实现方式中实际的显示设备或音频输出设备不必连接到远程计算机 102的视频子系统136或音频子系统137 ;然而在其它实现方式中,显示设备或音频输出设备可以被连接到远程计算机102。在一些实施例中,发送器软件116和接收器软件114依照来自Hewlett-Packard (惠普)公司的远程图形软件(RGS)协议。RGS被设计成充分利用远程计算机的计算机和图形资源以便递送从本地计算机的交互式远程访问。在不同的实施例中,发送器软件116和接收器软件114可以依照来自微软公司的远程桌面协议(RDP)操作,以便经由网络连接提供远程显示和输入能力。在进一步实施例中,发送器软件116和接收器软件114可以依照其它技术。结合设备驱动器160与USB控制器112相交互以便执行关于智能卡读取器109的操作。另外,本地计算机100中的设备驱动器118与USB控制器112相交互以便执行关于 HID设备108的操作。例如,设备驱动器118可以接收HID设备108变化的指示(诸如当用户已经移动鼠标、启动键盘、移动滚动球型输入设备、相对于平板移动输入设备等时)。分别通过在本地计算机100和远程计算机102中的网络接口 120和122提供在本地计算机100和远程计算机102之间发送的(包括HID设备数据和智能卡数据)数据。每个网络接口 120和122包括物理网络接口控制器以及协议堆栈,包括IP协议堆栈。网络接口 120经由数据网络104在相应的IP分组中向远程计算机102发送USB数据(智能卡数据和 /或HID数据)。IP分组被远程计算机102中的网络接口 122接收,所述远程计算机102从 IP分组中提取USB智能卡数据和/或HID数据。在发送器软件116从接收器软件114接收的智能卡数据被转送到虚拟驱动器150, 所述虚拟驱动器150继而向智能卡读取器设备驱动器152发送智能卡数据以便转送到智能卡应用巧4。在发送器软件116处接收的HID设备数据被转送到虚拟内插器(interposer)1240 虚拟内插器1 拦截来自远程计算机102中的HID设备驱动器126的呼叫,所述呼叫打算送给被附着到本地计算机100的远程HID设备108。虚拟内插器IM防止对远程外围设备的呼叫到达远程计算机102中操作系统的较低级(内核)设备驱动器。每个远程计算机102中的其它设备驱动器(未示出)可以创建分别被提供到音频子系统137和视频子系统136的音频数据和视频数据,以便被相应的输出设备再现,诸如被连接到本地计算机100和远程计算机102的相应输出设备。远程计算机102还包括一个或多个软件应用134。一个软件应用134可以接收并处理来自HID设备108的更新信息。本地计算机100包括被连接到存储器139的一个或多个中央处理器(CPU)138。本地计算机100的软件模块(诸如接收器软件114和设备驱动器118)可在(多个)CPU 138上执行。远程计算机102类似地包括被连接到存储装置132的一个或多个CPU 140。远程计算机102的软件模块可在(多个)CPU 140上执行,所述软件模块诸如(多个)软件应用134、设备驱动器126、虚拟内插器124、虚拟驱动器150、智能卡读取器设备驱动器152、智能卡应用IM和发送器软件116。图2图示了由本地计算机100执行的过程。本地计算机100 (在202)与第一远程计算机102建立连接(或会话)。建立这种连接涉及接收器软件114与第一远程计算机102 的相应发送器软件116建立连接。在已经与第一远程计算机102建立连接之后,本地计算机100中的结合设备驱动器160 (在204)从智能卡读取器109接收信息,诸如用于表明智能卡已经被插入到智能卡读取器109中的指示。接收的信息(例如,用户安全证书)可以被结合驱动器160高速缓存 (以供将来使用)。结合设备驱动器160然后(在206)与第一远程计算机102的智能卡应用巧4相交互以便执行关于智能卡读取器109的任务。稍后,本地计算机100 (在208)与第二远程计算机102建立另一连接(或会话)。 在与第二远程计算机102连接之后,结合软件160知道它保持连接到智能卡读取器109。结合软件160 (在210)向第二远程计算机102发送模拟的卡插入事件以便向第二远程计算机表明已经在智能卡读取器109接收了智能卡。注意,结合驱动器160已经高速缓存了用户安全证书,所述用户安全证书可以在请求时被提供到第二远程计算机102。结合设备驱动器 160然后(在212)与第二远程计算机102的智能卡应用巧4相交互以便执行关于智能卡读取器109的任务。如果稍后从智能卡读取器109中移除智能卡,那么结合驱动器160能够向所有连接的远程计算机发送智能卡移除事件。图3图示了在远程计算机102执行的依照实施例的过程。如果虚拟驱动器150检测到远程计算机102被连接到本地计算机100,那么虚拟驱动器150 (在302)实现在远程计算机102中的智能卡应用IM和被附着到本地计算机100的智能卡读取器109之间的交互。然而,如果虚拟驱动器150检测到远程计算机102未被连接到本地计算机100,那么虚拟驱动器150 (在304)执行智能卡读取器的模拟以便模拟智能卡读取器的存在,即使所述智能卡读取器未被连接。在其模拟模式中,虚拟驱动器150处理来自智能卡应用巧4 的请求并且提供对此类请求的响应。注意在一些其它实例中,如果未连接智能卡读取器,那么虚拟驱动器150可以选择停止模拟智能卡读取器。加载上述软件(包括图1的接收器软件114、结合驱动器160、设备驱动器118、发送器软件116、虚拟驱动器150、智能卡读取器设备驱动器152、虚拟内插器IM和设备驱动器126)的指令以便在处理器(诸如图1中的一个或多个CPU 139、140)上执行。所述处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器) 或其它控制或计算设备。“处理器”可以指的是单个组件或多个组件(例如,一个CPU或多个 CPU)。(软件的)数据和指令被存储在相应的存储设备中,所述存储设备被实现为一个或多个计算机可读或计算机可用存储介质。存储介质包括不同形式的存储器,包括半导体存储设备,诸如动态或静态随机访问存储器(DRAM或SRAM)、可擦除和可编程的只读存储器 (EPR0M)、电可擦除和可编程的只读存储器(EEPROM)和闪速存储器;磁盘,诸如固定、软盒可拆卸磁盘;其它磁介质,包括磁带;和光介质,诸如光盘(CD)或数字视频盘片(DVD)。注意,上面论述的软件的指令可以在一个计算机可读或计算机可用存储介质上提供,或作为选择,可以在可能具有多个节点的大型系统中分布的多个计算机可读或计算机可用存储介质上提供。这种计算机可读或计算机可用存储介质或媒体被认为是产品(或制造产品)的一部分。产品或制造产品可以指的是任何制造的单个组件或多个组件。
在以上描述中,阐明了许多细节以便提供对本发明的理解。然而,本领域技术人员应当理解,本发明可以在没有这些细节的情况下实施。虽然已经相对于有限的实施例公开了本发明,不过那些本领域技术人员据此应当理解许多变型和变化。所附权利要求旨在覆盖落入本发明的真正精神和范围内的这种变型和变化。
权利要求
1.一种在包括经由网络连接到多个发送计算机的接收计算机的网络布置中使用的方法,包括在接收计算机和多个发送计算机中的第一发送计算机之间建立第一会话,其中所述第一会话涉及向所述第一发送计算机提供被附着到所述接收计算机的外围设备的数据,其中向所述第一发送计算机中的外围设备的第一设备驱动器提供所述外围设备的数据;并且在所述接收计算机和多个发送计算机中的第二发送计算机之间建立第二会话,其中所述第二会话涉及向所述第二发送计算机提供被附着到所述接收计算机的外围设备的数据, 其中向所述第二发送计算机中的外围设备的第二设备驱动器提供所述外围设备的数据。
2.如权利要求1所述的方法,其中建立第一和第二会话包括建立其中在接收计算机和所述第一和第二发送计算机中的虚拟驱动器之间发生通信的第一和第二会话,其中所述虚拟驱动器将模拟在对应的第一和第二发送计算机中的外围设备。
3.如权利要求2所述的方法,其中所述第一和第二设备驱动器将与所述第一和第二发送计算机中的相应虚拟驱动器相交互。
4.如权利要求2所述的方法,其中建立第一和第二会话包括建立其中在接收计算机中的结合驱动器和对应的第一和第二发送计算机之间发生通信的第一和第二会话,其中所述结合驱动器能够有选择地与所述第一和第二发送计算机中的不同发送计算机通信。
5.如权利要求1所述的方法,进一步包括所述接收计算机经由网络远程访问在多个发送计算机中的每一个中的资源;并且所述接收计算机向在多个发送计算机之一中的用户输入设备驱动器发送在被附着到所述接收计算机的用户输入设备处所接收的用户输入。
6.如权利要求5所述的方法,其中远程访问资源包括远程访问视频资源,其中从远程计算机之一向所述接收计算机发送再现视频数据。
7.如权利要求1所述的方法,其中在所述第一和第二会话中提供外围设备的数据包括提供输入安全设备的数据。
8.如权利要求1所述的方法,其中在所述第一和第二会话中提供外围设备的数据包括提供智能卡读取器的数据。
9.如权利要求1所述的方法,其中在所述第一和第二会话中提供外围设备的数据包括提供通用串行总线(USB)设备的数据。
10.一种第一计算机,包括处理器;可在所述处理器上执行的虚拟驱动器,用于模拟被连接到第二计算机的外围设备,所述第二计算机经由网络被连接到第一计算机;和可在所述处理器上执行的发送器软件,用于有选择地在所述第一计算机和第二计算机之间建立连接,其中如果所述第一计算机被连接到所述第二计算机,那么所述虚拟驱动器实现在所述第一计算机中的软件应用和被附着到所述第二计算机的外围设备之间的交互,并且如果所述第一计算机未被连接到所述第二计算机,那么所述虚拟驱动器作为被附着到所述第二计算机的外围设备的模拟器起作用以便模拟所述外围设备的存在,即使所述外围设备是不可访问的。
11.如权利要求10所述的第一计算机,其中所述虚拟驱动器将模拟输入安全设备。
12.如权利要求10所述的第一计算机,进一步包括用于接收关于被附着到所述第二计算机的用户接口设备的更新的设备驱动器,和用于存储再现视频数据以便在显示设备上输出的视频子系统,其中所述发送器软件可执行来向所述第二计算机发送所述再现视频数据以便在所述第二计算机处显示。
13.一种包括至少一个计算机可读存储介质的产品,包含当执行时用于使接收计算机进行如下操作的指令有选择地经由网络与多个发送计算机中的不同的发送计算机建立会话;当在所述接收计算机和第一发送计算机之间建立会话时从结合设备驱动器向多个发送计算机中的第一发送计算机发送输入外围设备的数据,其中所述输入外围设备被附着到所述接收计算机,并且其中所述输入外围设备的数据被提供到所述第一发送计算机中的输入外围设备的第一设备驱动器;并且当在所述接收计算机和第二发送计算机之间建立会话时从所述结合设备驱动器向多个发送计算机中的第二发送计算机发送输入外围设备的数据,其中向所述第二发送计算机中的输入外围设备的第二设备驱动器提供所述输入外围设备的数据。
14.如权利要求13所述的产品,其中所述输入外围设备借助通用串行总线链路被附着到所述接收计算机。
全文摘要
一种网络布置包括经由网络连接到多个发送计算机的接收计算机。在接收计算机和多个发送计算机中的第一发送计算机之间建立第一会话,其中所述第一会话涉及向第一发送计算机提供被附着到接收计算机的外围设备的数据,并且其中向所述第一发送计算机中的外围设备的第一设备驱动器提供外围设备的数据。在接收计算机和多个发送计算机中的第二发送计算机之间建立第二会话,其中所述第二会话涉及向第二发送计算机提供被附着到接收计算机的外围设备的数据,并且其中向所述第二发送计算机中的外围设备的第二设备驱动器提供外围设备的数据。
文档编号G06F15/16GK102301360SQ200980155751
公开日2011年12月28日 申请日期2009年1月29日 优先权日2009年1月29日
发明者M. 金 J. 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1