统一重新连接至多个远程服务器的制作方法

文档序号:7936653阅读:188来源:国知局
专利名称:统一重新连接至多个远程服务器的制作方法
技术领域
本发明涉及访问远程资源。
背景技术
采用诸如远程桌面协议(RDP)、远程桌面会话主机(RDSH)、终端服务、以及远程桌面服务(RDQ之类的远程呈现技术来将计算机桌面和应用程序与远程客户机共享已是普遍的。这些共享的计算系统通常是通过在服务器上为远程呈现会话实例化用户会话来建立的。在服务器的屏幕要与会话的客户机共享的情况下,远程呈现会话从服务器本地的控制台会话获得该信息。在远程呈现会话期间,客户机将键盘按压和鼠标点击或选择传送到服务器,服务器通过网络连接(例如,因特网)在另一方向上将屏幕更新发回客户机。如此, 当实际上仅仅向客户机计算机发送如在服务器侧上出现的应用程序的屏幕截图时,客户机的用户具有好像他或她的计算机正在本地执行这些应用程序的体验。在一些远程呈现情景中,整个桌面被远程发送给客户机。例如,在虚拟桌面会话中,单个用户连接至在虚拟机内执行的操作系统,且整个桌面被远程发送给客户机。在远程桌面会话中,多个用户连接至单个操作系统,且用户界面被远程发送给客户机。在其它远程呈现情景中,特定应用程序被远程发送给客户机。这一第二场景有时被称为“应用程序遥控”。遥控应用程序有许多优点,诸如易于管理、客户机可以较便宜因为它们被要求做较少的处理、以及应用程序可以在接近它们的数据源处运行。当客户机同时访问多个远程应用程序时,引用用户访问的远程资源而不是用户参与的远程呈现会话可能是恰当的。这是因为,当单个服务器场向客户机提供两个远程应用程序时,这些远程应用程序可都执行在服务器场上的同一会话内,因而可能是与服务器场的单个远程呈现会话的一部分。如此处所使用的,“远程资源”可指的是远程应用程序、远程桌面、虚拟桌面或诸如此类。

发明内容
提供用于同时访问多个远程资源的技术是一种进步。例如,当用户正从第一客户机计算机处同时访问多个远程资源,随后移动到一不同的客户机计算机,或变得断开并想要与第一客户机计算机重新连接时,对于用户而言可能难以重新获取他或她的全部远程资源。用户可能需要知道他或她连接到哪些服务器,或者他或她曾使用的哪些应用程序,从而能够重新获取他或她曾使用的全部远程资源。这不是一种理想情况,而且这还使得对于用户来说难以与众多远程资源一起工作。当用户连接到用于远程会话的特定的服务器时,该服务器上用于该用户的全部运行中的远程应用将被远程发送给用户,而他或她将被重新连接至来自该服务器上的工作空间的应用程序。这在例如以下实施例中是成立的在该实施例中,用户被给予执行远程应用程序的服务器上的一个会话,并且那些远程应用程序的窗口被发送给用户(而不是与会话相关联的桌面)。在这一示例中,连接是对该会话进行的,而且所有的远程应用程序是该会话的一部分,因此,对该会话的一次重新连接导致对全部远程应用程序的重新连接。这在其它情景中可能不成立,诸如当每个远程应用程序在一单独的用户会话中执行时。当工作空间的远程应用程序跨多个服务器时,重新连接到单个远程应用程序不会导致重新连接到全部远程应用程序。还有一个问题是,当重新连接到多个服务器时,用户可能看到多次提示要求输入用户名、口令、或许多不同的错误情况。看到这些多次提示可能对用户体验产生负面影响, 因为每次提示都要求用户交互,并且减少了用户体验的无缝性。本技术通过创建其中用户能够从他使用的任何计算机处自动重新连接到所有他曾使用的远程资源的情景而使得这些问题没有意义。在一个实施例中,用户具有第一计算机上的工作空间。工作空间是由客户机计算机接收的来自诸如远程桌面web连接 (“RDffeb")服务器之类的服务器计算机的一个或多个远程资源。经由远程程序(诸如远程应用程序本地集成-RAIL-程序),远程资源可来自不同远程呈现服务器,或来自桌面虚拟主机计算机(诸如远程桌面虚拟主机-RDVH-虚拟机)。管理工作空间的客户机计算机上的进程维护用于连接到使用简单对象访问协议(“SOAP”)的web服务的标识符。这一标识符可以是例如web服务的位置的统一资源定位符(URL),该web服务包含在可扩展标记语言(XML)订阅源中,当客户机计算机订阅该工作空间时,该订阅源被下载。客户机可使用在用户订阅该订阅源时自服务器发送的cookie来向web服务认证其自身。web服务使用该 cookie来认证用户并得到该用户的身份。web服务使用远程过程调用(RPC)来将工作空间和用户标识符发送至集中式发布服务。集中式发布服务使用这一信息来查询会话中介,以得到与该用户ID和工作空间相关联的会话(断开的会话和/或连接至不同机器的活跃的会话)的列表。随后,集中式发布服务对与具有会话和/或连接至不同机器的活跃的会话的各个机器相关联的远程呈现文件进行匹配,并修改每个远程呈现文件,使得它指示重新连接。集中式发布服务将经修改的远程呈现文件列表返回给web服务,web服务将这一列表返回给客户机计算机上的工作空间进程。如果用户的计算机具有远程呈现文件,客户机计算机和远程服务器之间的重新连接进程启动。每个连接开启一个新的进程(诸如各版本微软WINDOWS操作系统中的mstsc. exe0 mstsc.exe被配置成创建用于与其它计算机的远程呈现连接)。当存在要进行的多个连接时,最初先进行单个连接,之后再进行其它连接。先进行单个连接是因为可能存在普遍应用于所有连接的提示条件——诸如提示输入用户名和口令。通过首先仅连接单个连接, 可只存在一次这种提示,而随后这一信息可被用于全部的其它连接。在进行单个连接之后, 其它连接可并行进行。当重新连接到远程应用程序时,客户机上建立重新连接的进程丢弃将使得新的应用程序被启动的分组(或以其它方式不发送在连接请求期间会被发送的分组,这与该重新连接请求相反),而这将用户重新连接至该服务器上的远程资源而不启动新的应用程序 (这一进程的实例将被实例化用于每一个单独的连接/重新连接)。在重新连接进程期间, 通过建立从客户机进程实例至管理重新连接的工作空间运行时的通信通道可最小化用户提示。错误情况可通过这一通道发送给工作空间运行时,并且当在从对客户的单次呈现中的多个重新连接进程实例中接收到错误情况时,在工作空间运行时处收集错误情况。在使用本技术中,用户能够重新连接至他或她在工作空间中的远程资源,而不需要知晓远程资源运行在哪个服务器上,或者他或她曾活跃地使用哪些应用程序和桌面。另外,通过串行化第一重新连接以及统一用户界面,用户在重新连接中的体验更为无缝。本领域技术人员将理解,本发明的一个或多个方面可包括但不限于用于实现本发明的本文所述各方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所述各方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本概述只是说明性的并且决不旨在是限制性的。


参考附图来进一步描述用于重新连接到客户机的远程资源的系统、方法和计算机可读介质,在附图中图1描绘了其中可实现本文所描述的技术的示例通用计算环境。图2描绘了其中客户机具有包括与多个服务器的远程会话的工作空间的示例系统。图3描绘了用于客户机重新连接至工作空间的远程资源的示例通信流程。图4描绘了客户机重新连接至工作空间的远程资源时所涉及的客户机、请求代理以及连接中介的示例子组件。图5描绘了用于处理来自客户机的重新连接至工作空间的请求的连接中介的示例操作过程,其中工作空间包括与服务器场的多个远程服务器的连接。图6描绘了用于重新连接至服务器场的多个远程服务器的工作空间的客户机的示例操作过程。图7A描绘了重新连接进程中用于客户机的示例用户界面元素。图7B描绘了重新连接进程中用于客户机的附加示例用户界面元素。图7C描绘了重新连接进程中用于客户机的附加示例用户界面元素。
具体实施例方式各实施例可在一个或多个计算机系统上执行。图1及以下讨论旨在提供可在其中实现所公开的主题的合适计算环境的简要概括描述。贯穿本说明书使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件。术语电路还可包括微处理器、专用集成电路、和/或一个或多个处理器,例如由从固件和/或软件中读取的指令配置的多核通用处理单元的一个或多个核。处理器可由指令来配置,指令具体化可用于执行从例如RAM、R0M、固件和/或大容量存储等存储器加载的功能的逻辑。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由处理器执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件实现的功能或软件实现的功能之间几乎没有差别的地步,因而选择硬件还是软件来实现此处描述的功能只是一个设计选择。换言之,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现留给了实现者。现在参照图1,描绘了示例性通用计算系统。该通用计算系统可包括常规的计算机20等,它包括至少一个处理器或处理单元21、系统存储器22和在系统处于操作状态时将包括系统存储器在内的各种系统组件耦合到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线,以及局部总线。系统存储器能包括只读存储器(ROM)M和随机存取存储器(RAM) 25。基本输入/输出系统沈¢10 被存储在ROM M中,该基本输入/输出系统沈包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可包括用于对硬盘(未示出)进行读写的硬盘驱动器27,用于对可移动磁盘四进行读写的磁盘驱动器观,以及用于对可移动光盘31,如CD ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30被示为分别通过硬盘驱动器接口 32、磁盘驱动器接口 33和光盘驱动器接口 34来连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然这里描述的示例性环境采用硬盘、可移动磁盘四和可移动光盘31,但本领域技术人员应理解,在该示例性操作环境中也能使用可存储能由计算机访问的数据的其它类型的计算机可读介质,如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。通常,这些计算机可读存储介质能够被用于一些实施例中来存储实现本公开的各方面的处理器可执行指令。包括计算机可读指令的若干程序模块可存储在诸如硬盘、磁盘四、光盘31、ROM 24或RAM 25之类的计算机可读介质上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。一旦由处理单元执行,计算机可读指令使得下文中更详细描述的动作被执行或使得各种程序模块被实例化。用户可以通过诸如键盘40和指向设备42 之类的输入设备向计算机20中输入命令和信息。其它输入设备(未示出)可包括话筒、 操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备常通过耦合到系统总线的串行端口接口 46连接到处理单元21,但也可通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。显示器47或其他类型的显示设备也可经由诸如视频适配器48等接口连接至系统总线23。除了显示器47之外,计算机通常还包括其他外围输出设备(未示出),如扬声器和打印机。图1的示例性系统还包括主适配器55、小型计算机系统接口 (SCSI)总线56和连接到SCSI总线的外部存储设备62。计算机20可使用至一个或多个远程计算机,诸如远程计算机49的逻辑连接在网络化环境中操作。远程计算机49可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常可包括以上对个人计算机20描述的许多或所有元件,但是在图1中只示出存储器存储设备50。图1所描绘的逻辑连接可以包括局域网(LAN) 51和广域网(WAN)52。这样的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。当用于LAN网络环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。 当用于WAN网络环境中时,计算机20通常包括调制解调器M,或用于通过诸如因特网之类的广域网52建立通信的其他手段。或为内置或为外置的调制解调器M可经由串行端口接口 46连接到系统总线23。在网络化环境中,相对于计算机20所描述的程序模块或其部分可被存储在远程存储器存储设备中。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。此外,虽然可构想本发明的许多实施例尤其适用于计算机化的系统,然而在本说明中不意味着将本发明限于那些实施例。
图2描绘了其中客户机具有包括与多个服务器的远程会话的工作空间的示例系统。图2中所描绘的计算机可与图1中所描绘的计算机类似。在图2中,客户机202 与部署200通信,部署200包括请求代理204、连接中介208、网关208、远程应用程序服务器场214 (其进一步包括两个同样配置的服务器,即远程应用程序服务器216a-b)、以及VM服务器场210 (其进一步包括两个同样配置的VM,即VM 212a-b)。客户机202具有包括由远程应用程序服务器216和VM 212中的一个或多个服务的多个远程资源的工作空间。客户机202可通过请求代理204登录其工作空间。一旦被认证,客户机的连接至其工作空间的请求从请求代理204发送至连接中介206。连接中介206 被配置成中介客户机202和将会将远程资源提供给客户机202的应用程序服务器216和VM 212之间的连接,并且为此,连接中介206被配置以与应用程序服务器216和VM 212通信以确定它们当前正服务(包括客户机202的用户的断开的会话)的是什么资源。客户机202可具有包括多个远程资源——包括来自远程应用程序服务器216a的远程应用程序的远程资源以及包括来自VM 21 的VM的远程资源——的工作空间。如所描绘的,客户机202不具有远程应用程序服务器216b或VM 212b的远程资源。这些远程资源可各自服务不同应用程序或桌面、各版本的应用程序、或其它排列。例如,远程应用程序服务器216a可用远程文字处理应用程序来服务客户机202,而VM 212可用虚拟桌面来服务客户202。通过这一描绘可知,当用户想要重新连接至他或她的工作空间时,他可能想要通过一条命令重新连接至远程应用服务器216a和VM 21 两者的远程资源,而不是通过一条命令执行两次。用户可从客户机202或从另一客户机计算机处执行这一重新连接操作(诸如当客户机202是用户在工作场所的计算机,而用户想要在周末时从家中的计算机处重新连接)。图3描绘了用于客户机重新连接至工作空间的远程资源的示例通信流程。图3描绘了其中客户机重新连接包括与多个服务器的远程会话的工作空间的示例通信流程。这一通信流程可实现在诸如图2中所描绘的计算机系统之类的系统中。即,图 3的远程部署300、客户机302、请求代理304、连接中介306、网关308、VM场310和VM 312a 可分别与图2的远程部署200、客户机202、请求代理204、连接中介206、网关208、VM场210 和VM 212a类似。客户机302的用户之前已具有一工作空间,该工作空间涉及访问来自VM 312a的远程资源,并且该工作空间现在被断开。在一替换实施例中,客户机302的用户可能之前一直在与VM 31 连接的不同客户机上工作,而该工作空间在用户想要重新连接时仍然活跃。当客户机302的用户尝试重新连接至部署300之前,请求代理304(经由通信(1))向用户302发布发布一文档,以标识客户机302可能用来访问部署300的远程资源的关于部署300的信息。客户机302稍后通过将通信( 发送给请求代理304来重新连接。请求代理304验证用户和/或客户机的凭证(诸如登录和口令)。当凭证被验证,请求代理304与连接中介306通信以判断当重新连接到客户机302的工作空间时客户机302想要重新连接到哪些远程资源(此处为VM 312a) 0请求代理304通过向连接中介306发送通信( 并作为响应在通信⑷中接收回客户机302想要重新连接到的服务器场(此处为VM场310)的列表来做出这一判断。在通信(4)中指示的这一信息由请求代理304在通信( 中传递给客户机302。当客户机302从请求代理304得到了重新连接的服务器的列表时,客户机302与那些服务器场中的每一个重新建立通信。如图3中所描绘的,该服务器场是VM场310。客户机302与网关308通信(6)以访问这些服务器场的远程资源。网关308处理通信(6), 并进而与代理中介306通信(7)以传递类似的信息。中介306从通信(7)中取得服务器场的标识并根据该标识来标识场310中具有断开的远程资源和/或用于该用户但由另一客户机使用的活跃的远程资源的机器(VM 312a)。连接中介306向客户机302发送通信(8),指示客户机302重新连接至VM 31 上的远程资源。通过向网关308发送指示要与VM 312a 重新连接的通信(9)(网关308又进而发送同样的内容至VM 31 ),客户机302与VM 312A 重新连接。可以理解的是,这是一个用于突出本发明的简化的图表,可存在和/或重新连接至更多或更少的服务器场,并且更多传递的通信可更为复杂(例如,示出的是通信(9)和 (10)建立VM 31 和客户机302之间的重新连接,而这也可包含从客户机302经网关308 发送给VM 31 的通信)。图4描绘了本技术可用于其中的客户机、请求代理和连接中介组成的示例系统体系结构。图4中所描绘的系统体系结构与用于各版本的微软WINDOWS操作系统中的系统体系结构类似。客户机402、请求代理404以及连接中介406可分别与图2的客户机202、请求代理204以及连接中介206类似。客户机包括mstsc 408和工作空间运行时414。进一步的,mstsc 408包括mstcax 410和工作空间客户机扩展412,而工作空间运行时414包括重新连接用户界面418以及web服务客户机416。请求代理404包括集中式发布RPC客户 420,RDffebServiceAsp. dll 422 以及 RDWebkrvice. asmx 424。连接中介 406 包括集中式发布服务426、会话中介WMI提供器428以及会话代理服务430。工作空间运行时414管理客户机402的工作空间——它管理连接到工作空间的远程资源、重新连接到工作空间的远程资源、以及使mstsc 408的实例执行连接或重新连接。 重新连接UI 418向客户机402的用户呈现用户界面以作出指示重新连接的输入。这一用户界面可以是如图7A所描绘的用户界面。Web服务客户机416是工作空间运行时414的组件,其与请求代理404通信以在重新连接时验证用户的凭证。mstsc 408被配置成连接或重新连接到远程资源。mstsc 408的一个实例可执行一次连接/重新连接,因此工作空间运行时414可实例化mstsc 408的多个实例以连接/ 重新连接到多个远程资源。mstsc 408包括mstscax 410——用于mstsc 408的ACTIVEX 控件。进一步的,mstscax 410包括工作空间客户机扩展412。当mstsc是一个已被实现的不考虑本技术的版本的mstsc时,工作空间客户机扩展可被添加到mstsc 408以扩展mstsc 408,使得工作空间运行时414可与mstsc 408通信以致使工作空间的远程资源重新连接。DMZ (非军事化区)432包括物理的或逻辑的子网络,其避免客户机402与连接中介 406直接通信。请求代理404跨DMZ432,使得它可与客户机402在诸如因特网之类的通信网络上通信,并且它可与连接中介406在内联网上通信。请求代理404 包括 RDWebkrviceASP. dll 422 和 RDWebservice. asmx 424-被
配置成一起用于将客户机402可用来提供登录凭证或其它输入的网页提供给客户机402的组件。请求代理404还包括集中式发布远程过程调用(RPC)客户机420,其被配置以从连接中介406接收远程数据文件(数据文件包含客户机如何能重新连接至具有请求的远程资源的服务器场)。连接中介406包括集中式发布服务426,其被配置以存储远程数据文件并将其提供给集中式发布RPC客户机420。连接中介406还包括会话中介服务430,其被配置成确定服务器场中的多个机器中的哪个机器具有与用户相关联的给定远程资源。连接中介406还包括会话中介WMI (WINDOWS管理工具)提供器426,其被配置成提供接口,通过该接口,会话中介服务430向其它组件提供信息和通知。图5描绘了用于处理来自客户机的重新连接至工作空间的请求的连接中介的示例操作过程,其中工作空间包括与服务器场的多个远程服务器的连接。图5的操作过程可由图2的连接中介206来实现。操作过程开始于操作500。操作500继续至操作502,其描绘了建立用于用户的第一远程资源和第二远程资源。诸如与客户机202相关联的用户帐户之类的用户可通过请求代理204来认证,随后用户向连接中介请求建立远程资源。连接中介可确定将该远程资源提供给客户机的服务器场和该服务器场中的机器。客户机可随后联系部署的网关,网关会将客户的通信路由至由连接中介确定的机器,并且机器随后将远程资源提供到客户机。在一个实施例中,对客户机计算机处的用户建立的远程资源包括远程桌面、远程应用程序或汇合(pooled)的虚拟机(VM)。连接中介被配置成不仅仅为客户机处理重新连接请求,还首先为客户机处理连接请求。当处理连接请求时,连接中介可接收来自客户机的连接至客户机没有与其断开的新的远程资源的请求,;确定服务器场上用于将该远程资源提供给客户机的机器;以及将被确定的机器的标识符发送给客户机。操作504描绘了,在第一和第二远程资源已变为断开后,接收来自用户的重新连接该用户的断开的资源的请求。在用户已建立了第一和第二远程资源之后,用户可变为与那些资源断开(断开的资源与如之前所讨论的注销的资源或活跃的资源不同)。用户可随后请求连接中介重新连接至该连接中介能确定的任何断开的资源。用户并不必指定具体的断开的资源,因为用户可拥有关于哪些资源(如果有的话)被重新连接的信息。相反,用户的请求可指示想要重新连接至连接中介所知晓的断开的连接,无论那些断开的资源是什么或甚至是否存在断开的资源。在一个实施例中,从用户接收为用户重新连接断开的资源的请求包括由连接中介接收该请求,在将该请求发送给连接中介之前该请求已被定向到已验证用户的凭证的请求代理。这可发生在与图2中所描绘的类似的系统体系结构中,其中客户机202联系授权服务器204,授权服务器204在将请求发送给连接中介206之前验证用户的凭证。操作506描绘了确定用户具有第一断开的资源和第二断开的资源。504中的请求没有指定断开的资源是什么,而仅指定了用户想要重新连接资源,无论其断开的资源是什么。在接收该请求之前,连接中介确定客户机的对于服务器场的断开的资源,这在本例子中是第一断开的资源和第二断开的资源。连接中介可通过例如维护已为用户建立的远程资源的列表、随后查询服务/曾服务那些远程资源中的一个的每个机器以确定远程资源的状态 (例如断开、活跃或注销)来这样做。操作508描绘了向用户发送包括关于如何重新连接到第一远程资源的信息的第一远程数据以及包括关于如何重新连接到第二远程资源的信息的第二远程数据,使得响应于接收第一和第二远程数据,用户使用第一和第二远程数据来重新连接到第一和第二断开的资源。连接中介可维护关于如何连接到远程资源的信息,诸如服务该远程资源的机器的机器名或标识符。第一远程数据是包含用于重新连接到服务第一远程资源的机器的信息的数据,而第二远程数据是包含用于重新连接到服务第二远程资源的机器的信息的数据。在一个实施例中,(如操作502中的)建立用于用户的第一远程资源包括在第一计算机处建立用于用户的第一远程资源;而将第一远程数据发送给用户包括在第二计算机处将第一远程数据发送给用户。用户可在不同客户机计算机处访问这些远程资源,这可能导致当用户尝试重新连接时缺少关于他或她的远程资源的信息——因为他正在尝试在与其原始连接自的计算机不同的计算机处重新连接。在一个其中远程会话包括第一断开的远程应用程序和第二断开的远程应用程序的实施例中,操作508包括将第一远程数据发送给用户,使得响应于接收到第一远程数据,用户使用第一远程数据来重新连接到第一断开的远程应用程序,以及第二断开的远程应用程序。用户的断开的远程资源可不仅包括断开的会话,还包括断开的远程应用程序。当诸如图2的连接中介206之类的连接中介接收到为用户重新连接他或她的断开的资源时, 连接中介可枚举那些断开的会话。用户的那些断开的会话之一可不包括用户的远程桌面, 而是包括多个远程应用程序。在这一情景中,当连接中介206通过重新连接到该会话向用户的客户机发送用于该断开的远程会话的远程数据时,用户实现了重新连接到该会话内的每个断开的远程应用程序。也就是说,当用户具有由一个机器服务的多个远程应用程序时,那些多个远程应用程序可全部执行在该机器上的一个会话内。因此,当用户重新连接到那些远程应用程序中的一个时,他就已连接到其中执行所有这些应用程序的会话。在这一情景中,用户不需要接收关于如何重新连接到那些远程应用程序的每一个的信息(例如,用户不需要接收用于四个远程应用程序的四个分开的远程数据文件),而仅需要接收关于如何重新连接到一个远程应用程序的信息。操作510描绘了通过连接中介接收来自用户的重新连接至第一断开的会话的请求,该请求以第一远程数据作出,该请求已被定向到网关,该请求指定服务器场;确定服务器场中具有第一断开的会话的机器;以及将指示发送给机器以将第一断开的会话与用户重新连接。操作510可发生在类似于图2的系统体系结构的系统体系结构中。客户机202针对关于如何重新连接到远程资源的信息(通过请求代理204)联系通信中介206。一旦客户机202拥有这一信息,它用要连接至的服务器场的标识来联系部署的网关208 (客户机已接收到了这一标识,但不是该服务器场中的具体机器的标识)。部署的网关208随后以此信息联系连接中介206,而连接中介206标识所标识的服务器场内具有该断开的会话的具体机
ο图6描绘了用于重新连接至服务器场的多个远程服务器的工作空间的客户机的示例操作过程。这些操作过程可由图2的客户机202来实现。图6的操作过程开始于操作600。操作600前进至操作602,操作602描绘了向连接中介发送将用户重新连接至该用户拥有的、由连接中介管理的每个断开的远程资源的指示。客户机的指示可不标识任何特定的远程资源,或甚至是要重新连接的远程资源的数目, 而是指示客户机希望重新连接到连接中介部署的任何和/或全部的远程资源,无论那些远程资源可能是什么。以此方式,启动重新连接到用户的远程资源的用户输入可以不具体涉及第一或第二断开的远程资源,而仅是大致地提及断开的远程资源的重新连接。在一个实施例中,这一用户输入包括接收按键按压或点击链接,按键或链接不与远程会话上遥控的任何应用程序相关联。由于用户重新连接的指示可不标识任何特定的远程资源,用户的输入也可不标识任何特定的远程资源。例如,如果用户的断开的远程资源包括文字处理程序和电子表格应用程序,则用户的输入可不包括点击文字处理程序的图标或电子表格的图标,而是用于重新连接的更一般的按钮,诸如叙述为“重新连接到断开的资源”的按钮。操作604描绘接收第一远程数据和第二远程数据,每个远程数据包括用于重新连接到断开的远程资源的信息。这一远程数据可包括例如在其上服务该远程资源的服务器场的标识符以及连接到该服务器场的网关的标识符。在一个实施例中,第一远程数据指示第一断开的远程资源的服务器场,但不指示服务器场内服务该第一断开的远程资源的机器。远程数据可仅标识远程资源的服务器场, 但不标识服务器场内的特定机器。在这一情境中,当客户机发送重新连接远程资源的请求时,这一请求被转发给连接中介,连接中介确定服务器场内具有该断开的远程资源的机器, 并指示该机器将该远程资源重新连接给客户机。操作606描绘了通过重新连接到由第一远程数据所指示的第一断开的远程资源来开始重新连接,因为第一断开的远程资源不是虚拟机(VM)所服务的远程资源。客户机可能接收用于连接到多个远程资源——包括远程桌面、远程应用程序以及VM的远程数据。相对于重新连接到远程桌面或远程应用程序(这可耗费几分钟)重新连接到VM可能耗费较长时间,因为VM可以处于睡眠状态、维护状态、或其它不能被立即重新连接到断开的远程资源形式的。在重新连接到其它远程资源(如操作608中所描绘的第二远程资源)之前先重新连接到第一远程资源,因为任何对于用户输入的需要都是在第一重新连接期间被收集的,随后被存储并用于所有其它的重新连接。在执行其中第一重新连接顺序执行、随后所有其它重新连接并行执行(重新连接被并行执行,其中在单个时间点上,重新连接的一些或全部可以活跃地进行)的重新连接中,如果第一重新连接连接到处于睡眠状态中的VM,这会减慢所有的重新连接。操作608描绘了在重新连接到第一断开的远程资源之后,重新连接到第二远程数据所指示的第二断开的远程资源。在一个实施例中,操作608包括在重新连接到第一断开的远程资源的同时,确定为了重新连接需要用户输入;接收用户输入;并且其中重新连接至第二断开的远程资源包括以用户输入重新连接到第二断开的远程资源。例如,当用户的凭证是不准确的、过期的、或者因其它原因需要用户重新输入时,用户的凭证可在第一重新连接期间被收集,并随后被存储并在后续的重新连接期间被重新使用,诸如重新连接到第二断开的远程资源期间。当(在其它重新连接之前)执行一次重新连接时,用户可仅被提示一次而不是多次,多次可能是其中多个重新连接被并行执行来开始的情况。在一个实施例中,第一断开的远程资源最初对第一客户机计算机建立,而重新连接到第一断开的的远程资源则由第二客户机计算机执行。用户可在他最初的连接和他的重新连接之间在计算机之间移动一诸如在他的工作场所和他的居住场所之间移动。这是为何用户可能不具有关于其断开的远程资源的信息并且必须在重新连接到这些资源之前从连接中介检索关于这些资源的信息的原因。在一个实施例中,遥控进程被配置成通过发送包括执行协议数据单元(execPDU) 的信息来连接到远程资源,而重新连接到第一断开的远程资源包括指示遥控进程的一个实例不要发送exec PDU0客户机的重新连接可由工作空间运行时来管理,其管理如图4中所描绘的重新连接进程(如mstsc)的实例。重新连接进程可通常向部署发送exec PDUj^ 示远程资源要在服务器场上实例化。在本情景中,客户机可能不想要远程资源被新实例化, 而是想要重新连接到远程资源的预先存在的实例。在这种情况中,工作空间运行时可指示重新连接进程在重新连接通信流程中省略exec PDU,使得客户机以重新连接到客户机断开的远程资源的预先存在的实例来结束。操作610描绘了接收第三远程数据;以及与重新连接到第二断开的远程资源并行地重新连接到第三远程数据所指示的第三断开的远程资源。如以上所描述的,当将要重新连接至多个远程资源时,相对于其它重新连接,首先顺序地重新连接到一个远程资源(此处为第一断开的远程资源),而随后并行地重新连接到其它的远程资源(此处为第二和第三断开的远程资源)。操作612描绘了,在重新连接到第一断开的远程资源的同时,确定要显示给用户的第一消息;在重新连接到第二断开的远程资源的同时,确定要显示给用户的第二消息; 以及在重新连接到第二断开的远程资源之后,向用户显示统一的消息,该统一的消息包括第一消息和第二消息。与接收用户输入被缩减为对第一重新连接接收用户输入使得用户不会接收多次提示一样,给用户的消息只被收集并显示给用户一次。例如,多次重新连接尝试可使消息被显示,告诉用户重新连接失败或成功。这些消息可被收集,使得它们被显示在一个消息窗口中而不是显示多个必须被点进的消息窗口中。在一个通过第一进程重新连接到第一断开的资源,而通过第二进程重新连接到第二断开的资源的实施例中,操作612包括建立用于第一进程的第一通信管道和用于第二进程的第二通信管道;经由第一通信管道从第一进程接收第一消息;以及经由第二通信管道从第二进程接收第二消息。在诸如图4中所描绘的系统体系结构中,客户机上的工作空间运行时可管理各自连接到一个会话的多个重新连接过程(诸如mstsc)。在这一系统体系结构中,来自进程的消息可以由工作空间运行时收集,而工作空间运行时随后将它们以统一的形式显示给用户。每个重新连接进程可通过建立用于工作空间运行时的通信管道以及使用这一通信管道传输消息给工作空间运行时来将消息传递给工作空间运行时。工作空间运行时可存储这些接收到的消息,并当确定所有的重新连接进程已完成(无论成功与否) 后,向用户显示统一的消息。图7A描绘了重新连接进程中用于客户机的示例用户界面元素。用户界面702可包括最初的登录屏幕,其中用户输入他的凭证以向请求代理(诸如请求代理204)请求签署客户机(诸如客户机20 。请求代理204可接收在这一用户界面中接收的用户凭证的输入,并对用户的凭证进行验证以针对部署(诸如部署200)对用户进行验证。图7B描绘了重新连接进程中用于客户机的附加示例用户界面元素。在请求代理基于图7A的用户界面中所提供的凭证对用户进行了成功验证之后,请求代理可向用户提供关于用户界面704的信息,其中描绘了可被连接到的远程资源706,以及经由重新连接链接708重新连接到任何断开的资源的选项,无论它们可能是什么。图7C描绘了重新连接进程中用于客户机的附加示例用户界面元素。当用户点击图7B中的重新连接链接708,请求代理可随后向用户提供界面710,其向用户显示正重新连接到工作空间的指示。当重新连接进程完成之后,用户界面710不再被显示,而服务那些远程资源的机器可向用户界面发送那些用户可与之交互的远程资源。结论尽管已经结合各附图所示的优选方面描述了本发明,但要理解,可使用其他相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此, 本发明不应局限于任何单一方面,而应根据所附权利要求书的广度和范围来解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。
权利要求
1.一种用于将客户机(20 重新连接到多个远程会话的方法,所述方法包括 建立用于客户机O02)的第一远程会话012a)和第二远程资源016a);在第一和第二远程会话已变为断开后,接收(204)来自用户的重新连接该用户的断开的会话的请求;确定(206)所述用户具有第一断开的会话012a)和第二断开的会话016a);以及向用户发送包括关于如何重新连接到第一远程会话012a)的信息的第一远程数据以及包括关于如何重新连接到第二远程会话016a)的信息的第二远程数据,使得响应于接收第一和第二远程数据,客户机(20 使用第一和第二远程数据来重新连接到第一和第二断开的会话Ol2a,216a)。
2.如权利要求1所述的方法,其特征在于,所述远程会话包括第一断开的远程应用程序和第二断开的远程应用程序,并且其中向用户发送第一远程数据包括向用户发送第一远程数据,使得响应于接收到第一远程数据,用户使用第一远程数据来重新连接到第一断开的远程应用程序以及第二断开的远程应用程序。
3.如权利要求1所述的方法,其特征在于,建立用于第一用户的第一远程资源包括 在第一计算机处建立用于用户的第一远程资源;以及其中向用户发送第一远程数据包括 在第二计算机处向用户发送第一远程数据。
4.如权利要求1所述的方法,其特征在于,远程会话包括远程桌面、远程应用程序、或汇合的虚拟机(VM)。
5.如权利要求1所述的方法,其特征在于,所述方法由连接中介执行,所述方法还包括由所述连接中介接收来自用户的重新连接至第一断开的会话的请求,该请求对第一远程数据作出,该请求已被定向到网关,该请求指定服务器场; 确定服务器场中具有第一断开的会话的机器;以及向机器发送将第一断开的会话与用户重新连接的指示。
6.如权利要求1所述的方法,其特征在于,所述方法由连接中介执行,并且其中接收来自用户的重新连接该用户的断开的会话的请求包括由连接中介接收该请求,在将该请求发送给连接中介之前该请求已被定向到验证用户的凭证的请求代理。
7.如权利要求1所述的方法,其特征在于,还包括接收来自客户机的连接至客户机并不是从其断开的、新的远程资源的请求; 确定服务器场上用于将该远程资源提供给客户机的机器;以及将所确定的机器的标识符发送给客户机。
8.一种承载计算机可读指令的计算机可读存储介质(22),当在计算机上执行时,所述计算机可读指令使得所述计算机(20 执行以下操作,操作包括向连接中介(206)发送将客户机(20 重新连接至与该客户机(20 相关联的每个断开的远程资源(21 , 212b,216a,和/或216b)的指示;接收第一远程数据和第二远程数据,每个远程数据包括用于重新连接到断开的远程会话012a)的信息;响应于确定第一断开的远程会话016a)不是由虚拟机(VM)服务的远程会话,发送对于由第一远程数据所指示的第一断开的远程会话的重新连接请求G08);以及在重新连接到第一断开的远程会话016a)之后,重新连接到第二远程数据所指示的第二断开的远程会话012b)。
9.如权利要求8所述的计算机可读存储介质,其特征在于,还承载当在所述计算机上执行时使得所述计算机执行以下操作的计算机可读指令,操作包括接收第三远程数据;以及与重新连接到第二断开的远程会话并行地重新连接到由第三远程数据指示的第三断开的远程会话。
10.如权利要求8所述的计算机可读存储介质,其特征在于,还承载当在所述计算机上执行时使得所述计算机执行以下操作的计算机可读指令,操作包括响应于确定重新连接需要用户输入,显示对用户输入的请求;接收所述用户输入;以及其中重新连接到第二断开的远程会话包括以用户输入来重新连接到第二断开的远程会话。
11.如权利要求8所述的计算机可读存储介质,其特征在于,第一断开的远程会话最初对第一客户机计算机建立,而重新连接到第一断开的的远程资源则由第二客户机计算机执行。
12.如权利要求8所述的计算机可读存储介质,其特征在于,向连接中介发送将用户重新连接至所述连接中介管理的、所述用户具有的每个断开的远程会话的指示包括接收不提及第一或第二断开的远程会话的用户输入。
13.如权利要求12所述的计算机可读存储介质,其特征在于,接收用户输入包括接收按键按压或点击链接,按键或链接不与远程会话上遥控的任何应用程序相关联。
14.如权利要求8所述的计算机可读存储介质,其特征在于,还承载当在所述计算机上执行时使得所述计算机执行以下操作的计算机可读指令,操作包括在重新连接到第一断开的远程会话的同时,确定将要被显示给用户的第一消息; 在重新连接到第二断开的远程会话的同时,确定将要被显示给用户的第二消息;以及在重新连接到第二断开的远程会话之后,向用户显示统一的消息,所述统一的消息包括第一消息和第二消息。
15.如权利要求14所述的计算机可读存储介质,其特征在于,第一断开的会话由第一进程重新连接,而第二断开的会话由第二进程重新连接,所述操作还包括建立用于第一进程的第一通信管道和用于第二进程的第二通信管道; 经由第一通信管道从第一进程接收第一消息;以及经由第二通信管道从第二进程接收第二消息。
全文摘要
公开了用于将用户连接到服务器场部署中他的全部资源(例如远程桌面或远程应用程序)的技术。用户的客户机向部署发送消息,请求该用户的任何断开的资源和/或与不同客户机通信的任何活跃的资源。部署确定那些资源是什么,随后剔除冗余信息(例如,两个资源是执行在同一会话内的远程应用程序)并将剔除过的列表发送给重新连接的客户机。客户机首先重新连接到不是VM的资源并存储在登录期间被提示的任何用户输入(例如凭证)。随后,它并行地连接至其它资源,并在这些稍后的重新连接中使用在第一重新连接期间从客户机接收到的任何输入。
文档编号H04L29/06GK102404384SQ20111030797
公开日2012年4月4日 申请日期2011年9月29日 优先权日2010年9月30日
发明者A·恩里克斯, D·巴塔查里亚, J·贝克, K·伦敦, K·马哈茂德, R·M·雷斯库西吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1