具体实施方式
以下所描述的用于在用户台式机上呈现来自多个供应者的远程应用程序快捷方式的合并视图的系统和方法在访问供组织内联网上的服务器进行终端服务执行的应用程序时简化了远程客户机的经历。关于这个简化访问的一个原因是:这些系统和方法发现被配置成用于跨越任何数量的企业内联网应用程序安装点的远程访问的应用程序。为此,这些系统和方法允许组织实体使用各种信息源机制来发行远程应用程序,然后通过因特网将这些应用程序的单一集合视图提供给远程客户机。这种应用程序发行被称作“远程应用程序发行”(RAP)。已经通过RAP发行供用户、用户组和/或特定计算设备访问的应用程序的远程客户计算机设备发现被称作“远程应用程序发现”。
更具体地说,组织内联网中的实体在企业内联网中的服务器和/或最终用户计算设备上安装或部署某些数量的应用程序。例如,管理实体可以在企业服务器上安装应用程序,用于基于远程TS的访问。该管理实体使用RAP,以创建这些被部署的/应用程序与特定用户、用户组和/或特定客户计算设备之间的关联。然后,这些关联被存储在一个或多个数据库/信息源中。例如,这类数据库包括“系统管理服务器”(SMS)和/或目录服务(数据库)。在另一个例子中,内联网中的计算机(例如,通用计算机、工作站等)的用户使用RAP来指定:被部署在计算机上的应用程序将用于供用户进行基于远程TS的访问。
不管远程客户设备是否在企业防火墙以外、是否通过“虚拟专用网络”(VPN)而被连接到企业网络、和/或其它情况,它都经由被部署在公用网(例如,因特网)上的新颖的“RAP Web服务”(RWS)来发现这些应用程序。在一项实现中,远程客户设备的最终用户使用Web浏览器或用户界面外壳来发现/列举与该远程客户设备或最终用户相关联的每个应用程序。响应于接收该RAP发现请求,该RWS查询这些数据库,以识别与远程客户设备相关联的每个应用程序或与远程客户设备关联的单一用户。RWS隐藏用于与正在为应用程序而被查询的这些不同的数据库中的每个数据库进行通信的各个协议的细节。
在识别出被配置成用于用户进行的基于远程客户机TS的访问的一个或多个应用程序之后,并且与关联于这些应用程序的安装点的数量和类型无关地,该RWS将每个被识别的应用程序及其内联网安装点聚集到应用程序的单一综合列表中。例如,该集合列表被发送到作出请求的远程客户设备,用于呈现为例如用户界面(UI)外壳、Web浏览器窗口和/或其它中的快捷方式。由于这些被呈现的快捷方式表示通过一个或多个应用程序源的远程应用程序的集合,因此,对于最终用户而言,这些RAP快捷方式是来自单一来源(安装点)还是来自多个根本不同的信息源完全是透明的。利用这个方式,被授权的用户可以从远程位置无缝地发现和使用被部署在终端服务器(TS)集群(farm)上和/或被部署在其办公计算机上的应用程序。通过经由UI外壳改进措施来呈现这类快捷方式,为最终用户提供对跨越任何数量的远程服务器和/或台式机部署的企业资源的无缝的基于TS的访问。
现在,更加详细地描述用于远程应用程序发现的“Web服务”的系统和方法的这些和其它的方面。
用于远程应用程序发现的示例性系统
转向附图(其中,相似的参考标号涉及相似的元件),本发明被示出为在合适的计算环境中执行。虽然未作要求,但是,在由个人计算机执行的计算机可执行指令(例如,程序模块)的一般上下文中描述本发明。程序模块通常包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。
在用于远程发现的组织内联网上安装应用程序
图1示出了合适的计算环境100的例子,在该合适的计算环境100上,可以完全或部分地实现随后描述的用于远程应用程序探索的“Web服务”的系统、装置和方法。环境100包括办公计算机102的形式的通用计算设备,它将应用程序104(例如,104-1和104-2)与特定用户、用户组和/或远程客户计算设备106相关联。该办公计算机在内联网中的企业防火墙108-1后面。在这项实现中,内联网包括位于可信内部网络(LAN112)与不可信外部网络113(例如,因特网)之间的子网络110。子网络110是由防火墙108-1和108-2描绘的非保护区(DMZ)。子网络110包括RAP Web服务器114,用于聚集来自多个来源的终端服务远程应用程序信息/快捷方式,以便远程客户设备106的用户可以通过因特网列举它们。
应用程序104被部署和发行在LAN 112的一个或多个安装点上。例如,应用程序104-1已被发行在一台或多台办公计算机102上,和/或应用程序104-2已被发行在一个或多个应用程序服务器116上。为了在办公计算机102上发行应用程序104-1,该办公计算机102的用户与RAP向导118接口,用于个人发行。RAP向导允许用户指定将要被发行的应用程序并生成映射120。映射120将每台办公计算机102与特定用户相关联。如下所述,映射120随后被用来为用户提供对已发行的应用程序104-1的远程应用程序发现,以供户所进行的随后的远程终端服务器(TS)访问。
为了在应用程序服务器116上发行应用程序104-2,管理实体使用系统策略编辑器或其它管理应用程序来将特定用户、用户组和/或远程客户设备106与应用程序104-2中的相应几个相关联。该管理实体使用安装包安装程序(例如,MSI)向导119来生成安装包(例如,安装包121-1至121-3)。安装包121包含足以指向一个或多个应用程序服务器116上的安装点的、关于应用程序104-2的信息。例如,在一项实现中,每个安装包121指定应用程序104-2的名称和应用程序服务器116的名称(例如,别名、IP地址等)。
当与在办公计算机102和/或应用程序服务器116上发行的应用程序104关联时,安装包121可以被存储在一个或多个数据库(信息源)中。根据LAN 112的特定体系结构实现使用任何类型的数据库访问技术(例如,LDAP等)的任何数量的数据库可以被用来存储安装包121。在一项实现中,安装包121被存储在数据库中,作为与域控制器(未示出)的目录服务122关联的安装包121-1。在另一项实现中,安装包121-1作为安装包121-2而被存储在经由“系统管理服务器”(SMS)128管理的数据库126中。目录服务122和SMS 128提供各自的网络服务来识别LAN 112资源,并使用户和应用程序可以对它们进行存取。
例如,目录服务122包括每一用户信息(例如,已发行的应用程序104的列表)、以及其它信息(例如,防火墙108导航配置)。虽然办公计算机102上所发行的应用程序104可以被存储在一个或多个数据库中,但是,这些办公计算机映射120-1也可以只被存储在相关联的办公计算机102上。
RAP Web服务器服务
参考图1,RAP Web服务器114聚集来自多个来源的终端服务远程应用程序信息/快捷方式,以便远程客户设备106的用户可以通过因特网列举它们。为此,RAP Web服务器114包括RAP Web服务(RWS)130,用于例如使用“简单对象访问协议”(SOAP)(用于在分布式环境中交换结构化信息的已知轻量级(lightweight)协议)从远程客户设备106接收发现请求132。如下所述,由于发现请求132经由SOAP而被传达给RWS 130,因此,远程客户机106不需要建立与LAN 112的“虚拟专用网络”(VPN)连接来获得发现请求132的结果。
在这项实现中,RWS 130利用“因特网信息服务器”(未示出)用于诸如认证、分线程和HTTP处理等服务。
响应于接收远程应用程序发现请求,RWS 130与多个可能的内联网远程应用程序信息源存取器模块134(例如,模块134-1至134-3)之一接口,以生成被发现的远程应用程序的集合列表(集合列表136)。每个存取器模块134-1至134-3被设计成经由实现的应用编程接口(API)和被配置成与特定数据源进行通信的操作序列,来与特定类型的数据源或数据库接口。根据用于因特网TS访问的应用程序104的所需部署,并根据LAN 112的特定体系结构实现,可能有任何数量的存取器模块134。
利用这个方式,LAN 112的网络管理员可以使用任何数量的方法和方法组合来发行应用程序104。例如,在企业环境中,网络管理员可以选择连同目录服务122一起使用“软件更新服务”(SUS)技术,以发行应用程序104。另一个方法可以是“系统管理服务器”(SMS)。在“漫游”环境中,用户可以将他的应用程序发行到个人办公计算机102上的中央位置,或者可以只使用企业身份而在目录服务122中发行应用程序。在家庭环境中,家庭用户可以使用已知的服务总线技术来发行应用程序。
在这项实现中,例如,存取器模块134包括SMS存取器134-1、目录服务存取器134-2和工作站存取器134-3。例如,SMS存取器134-1经由HTTP将获得应用程序请求138(“请求”)发送到SMS服务器128。响应于接收获得请求138,SMS服务器评估映射120-3,以确定远程客户机106的用户是否与被部署在SMS服务器128的域内的任何应用程序104相关联。如果是,则SMS服务器将标识相关联的应用程序104及其各自的安装点(例如,计算机102、应用程序服务器116等)的获得应用程序响应140(“响应”)发送回到SMS存取器,它进而将响应140返回到Web服务130。
在一项实现中,远程应用程序发现响应140是包括参数的文本文件(例如,XML、RDP和/或类似文件),这些参数可用于确定实际的应用程序104驻留在何处。例如,这类参数包括服务器名称、应用程序路径、重定向设置、与远程应用程序104相关联的文件扩展名等。
出于简化讨论和表示的目的,示出单个获得应用程序请求138和单个获得应用程序响应140。即,单个请求138和单个响应140表示来自存取器模块134中的相应存取器模块的相应的获得请求和响应,尽管也可以示出表示来自每种类型的存取器模块134的相应的获得应用程序请求和获得应用程序响应的单独的获得请求138和获得响应140。
在这项实现中,目录服务存取器(DSA)130-2与目录服务122接口,它在这个例子中是现用目录(Active Directory)。例如,通过使用LDAP(用于与目录服务接口的公用协议),DSA将相应的获得应用程序请求138发送到目录服务122。响应于接收请求138,目录服务评估安装的应用程序到用户的映射120。该评估确定远程客户设备106的用户是否被授权/与这些应用程序104中的特定应用程序相关联。该评估的结果(包括任何这类应用程序104的各自的安装点)由目录服务122返回到Web服务130,作为各自的响应140。
个人计算机(PC)存取器134-3列举被安装用于LAN 112上的办公计算机102上的基于因特网的远程应用程序发现的应用程序104-1。为此,PC存取器134-3识别办公计算机102(已被分配给远程计算设备106的用户的办公计算机)的内联网地址。为此,PC存取器134-3将获得资源请求139传达给目录服务122。获得资源请求139指出该用户的企业身份;该企业身份预先由LAN 112上的管理实体来设置,随后由RAP设置模块148来确定,以下会更加详细地描述这一点。响应于接收获得资源请求139,目录服务识别用户的办公计算机102的内联网地址(未示出)(例如,IP地址、基于NAT的地址、别名和/或类似地质)。目录服务将网络地址传达回到PC存取器模块134-3。
在一项实现中,当该获得资源请求139被传达给目录服务122时,用户的远程计算设备102没有被连接到或者(经由VPN连接)“穿入(tunnel)”LAN 112的内联网。相反,通过与目录服务122进行通信,RWS 130担当中介。在这项实现中,可以经由LDAP或某一其它合适的协议来传达获得资源请求139。
响应于接收用户的办公计算机102的内联网地址,PC存取器134-3将相应的获得应用程序请求138发送到RAP Web服务142——该RAP Web服务142被部署在用户的办公计算机102上。在一项实现中,经由SOAP来传达获得应用程序请求138。
响应于接收相应的获得应用程序请求138,Web服务142与目录服务122接口,以检索与对应于该用户的办公计算机的、被安装在LAN 112上的应用程序104相关联的信息。Web服务142与外壳存取器144接口,以识别用户的办公计算机102的桌面/外壳程序上安装的应用程序104-1。用于例如经由操作系统服务来识别安装在计算机上的应用程序的技术是已知的。该信息包括安装在该用户的桌面/工作区上的任何这类应用程序104-1的各自的安装点、以及通过与远程客户设备106的TS客户机会话来执行应用程序所需要的任何信息。该信息被目录服务122返回到RWS 130,作为相应的获得应用程序响应140。
RAP Web服务(RWS)130从存取器模块134中的相应存取器模块接收响应140。RWS 130从所接收的响应140中包括的数据中生成集合列表136。RWS 130将集合列表136发送到启动远程应用程序发现请求132的远程客户设备106。在一项实现中,该集合列表经由SOAP/HTTP而被传达给远程客户设备106。此外,虽然列表136被称作“集合列表”,但是,这些相应的获得应用程序响应140不需要加以结合来构成集合体,但也可能作为包括来自一个或多个数据源(例如,服务器、办公计算机和/或类似物)的已发现的已安装应用程序104信息的列表140来加以传达。
图2示出了用于远程应用程序发现的公用网服务的示例性过程200。出于讨论和图示的目的,相对于图1中的对应组件来描述图2中的这些操作。(在这些附图中,组件参考标号的最左边的数字标识该组件首先出现在其中的特定附图。)
在方框202处,远程应用程序发现请求(RADR)132(图1)由“RAP Web服务器”(RWS)130从远程客户计算设备106接收。如上所述,RWS 130位于内联网(例如,LAN 112)中。远程客户计算设备106在LAN 112的外部。例如,在一项实现中,远程客户机106跨越公用外部网络113(例如,因特网)而被耦合到RWS 130。
在方框204处,RWS 130向部署在内联网上的一个或多个信息源请求应用程序数据。可以经由相应的消息138来作出这种请求。在一项实现中,RWS 130将一个消息138发送到每个相应的数据源。该应用程序数据对应于已安装的并且与远程计算设备106的用户相关联的应用程序104。例如,这些信息源包括办公计算机102、目录服务122和/或SMS服务器128。
在一个实施例中,远程应用程序发现请求132指出感兴趣的一个或多个数据源、以及远程计算设备106的用户的本地登录和/或企业身份。例如,请求132可以指出应用程序104-1(被安装在与与用户关联的办公计算机102上的应用程序)将要被发现。企业身份对应于LAN 112上的用户身份。
在方框206处,RWS 130例如经由相应的响应140而从内联网上的这些数据源中的相应数据源接收被请求的应用程序数据。在方框208处,RWS 130将应用程序数据(例如,经由消息136)传达给作出请求的客户设备102,作为被发送到RAP Web服务器114的远程应用程序发现请求132的偿还。
现在描述远程客户计算设备106的示例性方面。
远程客户设备
以下所描述的组件允许远程客户设备106(经由公用网)自动列举被安装在专用内联网上的最终用户办公室中的用户的办公计算机102上的用于远程访问的应用程序。在这个实施例中,远程客户计算设备106(“远程客户机”)包括向导146,用于:搜集用户凭证(例如,企业身份);以及,使用接收的配置数据来配置用于TS访问的远程客户机106,并经由RWS 130来启动远程应用程序发现。向导146提供漫游插件服务,用于确定漫游知识工作者环境。它与RAP Web服务130进行通信,以获得向用户发行的远程应用程序104的列表。例如,向导146获得用于访问LAN 112的用户凭证。向导146经由RAP设置模块148将这些凭证发送到用户的办公计算机102的RAP向导118。RAP向导118将这些凭证发送到远程客户机配置(RCC)模块150,用于验证对LAN 112的用户访问(例如,经由企业认证服务)。如果用户被授权访问LAN资源,那么,RAP向导118将消息152(包括LAN访问授权和面向外的RAP Web服务器(RWS)114的位置)传递到RAP设置模块148。
一旦远程客户机106的用户已被授权LAN 112访问,向导146就将发现远程应用程序请求132发送到RAP Web服务(RWS)130。如以上所指出的,RWS 130的因特网地址/URL在消息152中标识,和/或按某个其它的方式(例如,经由在远程客户机上执行的配置脚本)来标识。如上所述,响应于接收发现请求132,RWS130调用一个或多个存取器134来询问LAN上的相应数据源,以识别与用户TS访问相关联或为用户TS访问而被发行的应用程序104。RWS将该信息返回到该向导146,作为集合列表136。
向导146通过外壳156将集合列表136传递到RAP客户机工作者154,它采用新近被发现的远程应用程序并将它们呈现给用户。在一项实现中,向用户呈现表示在集合列表136中标识的应用程序104的快捷方式158。在这个例子中,每项快捷方式158是指向LAN 112的安装点上的相应应用程序104的文件。快捷方式158允许用户经由TS客户机160所提供的TS来方便地访问存储在LAN 112上的文件。
当用户选择启动与快捷方式158相关联的应用程序104时,RAP进程生成程序(spawner)162组件触发TS客户机160。当使用该RAP进程生成程序时,由外壳组件156来刷新外壳项目(快捷方式158中的相应快捷方式)。例如,当用于当前环境的子组件确定远程应用程序104还未被发行或已被更新时,它通知RAP客户机工作者154,并且,RAP客户机工作者154代表该子组件来处理桌面快捷方式的删除或更新。
图3示出了供远程客户计算机106发现安装在LAN 112中的办公计算机102上的远程应用程序104-1的示例性组件数据流。远程应用程序发现是经由Web服务来实现的,该Web服务是经由公用网113(例如,因特网)来访问的。出于讨论和展示的目的,相对于图1中的对应的组件来描述图3中的这些操作。在这些附图中,组件参考标号的最左边的数字标识该组件首先出现在其中的特定附图。例如,以上根据图1而首先引入组件122、130、134-3、142和144。如现在相对于数据流302-322而描述的(其中的每个数据流被展示为有向箭头,并且,其中的每个数据流展示去往/来自特定组件的目的地和/或起点),与这些组件中的相应组件相交的垂直线用来指出某些消息和对应的响应的接收。
有向箭头302示出了到RAP Web服务130的数据流。数据流302对应于对远程应用程序发现的请求。图1中的远程应用程序发现请求132说明这种请求。在这个例子中,该请求指出:应用程序104-1(被安装在与指定的用户相关联的远程客户计算机104上)对于发现有重大意义。响应于这个请求,并且如数据流304所示,RAP Web服务器130将各自的获得应用程序请求138传达给办公计算机存取器(例如,PC存取器134-3)。在这个例子中,获得应用程序请求没有标识用户的对应办公计算机102。这样,PC存取器向LAN 112的目录服务122询问用户专用资源数据——这一点经由数据流306而被示出,该数据流被指示经由“域名服务”(DNS)来获得该用户的计算设备102的网络地址。通过如数据流308所示的目录服务122,该内联网专用资源数据被传达回到PC存取器134-3。
这时,RAP Web服务130具有与该用户的计算机设备102相关联的网络地址。通过使用这个网络地址,RAP Web服务器114的RAP Web服务130将获得应用程序请求传达给RAP Web服务142——这项Web服务142正在用户的办公计算机102上执行。如数据流310所示,这个获得应用程序请求绕过目录服务122。响应于接收该请求,Web服务142与外壳存取器144(也正在该用户的办公计算机102上执行)接口。这个接口由数据流312来表示。外壳存取器133确定:用户或其它管理实体是否已在计算机102上部署已为远程客户机因特网发现和随后的TS执行而做标记的任何应用程序104-1。在一项实现中,外壳存取器是操作系统所提供的计算机程序。外壳存取器144列举安装在用户的计算设备102上的应用程序104-1,从而如数据流314-320所示,通过这些组件中的相应组件来返回信息,并且,如数据流322所示,最后达到远程计算设备106。
图4示出了示例性程序400,用于向在内联网外部的客户计算设备102的用户列举和呈现安装用于内联网上的终端服务器访问的应用程序。出于讨论的目的,相对于图1中的对应的组件来描述图4中的这些操作。在方框402处,远程客户计算设备102将远程应用程序发现请求132发送到RAP Web服务114的RAP Web服务器130。在一项实现中,请求132指出:远程客户设备102的用户有兴趣跨越LAN 112来接收对应于安装在一个或多个特定安装点上的应用程序104的信息。即,可以在远程应用程序发现请求中指定感兴趣的数据源中的单独的数据源和/或类型。
在方框404处,远程客户设备102从RAP Web服务130接收发现响应136,从而跨越部署在专用内联网中的一个或多个数据源来识别这些已安装的应用程序104。例如,这类数据源包括用户工作站(例如,办公计算机102)、以及可以经由目录服务122、SMS服务器128和/或部署在LAN 112上的任何其它类型的信息源来访问的各种安装点。
在方框406处,远程客户设备106向用户呈现到这些安装的应用程序104的快捷方式158——这些快捷方式根据从这一个或多个响应136中提取的信息来生成。这些被发现的远程应用程序的呈现是无缝的,从而意味着:呈现到应用程序104中的相应应用程序的快捷方式,而无关于其各自的数据源,例如,在远程计算设备106的桌面上、经由“开始”菜单、在用户通过浏览器104访问的Web页上、或某个其它用户界面。该无缝呈现表示向他们访问的所有应用程序的最终用户呈现的合并视图——其中,这些应用程序可以与多个网络身份相关联,并可来自多个不同的来源。
用户可以远程地经由已知终端服务(例如,经由用于接收HTTP、将它转换成“远程桌面协议”(RDP)或相等物、以及转发到LAN 112中的合适的终端服务器(未示出)的“TS代理”(未示出))而选择任何被呈现的快捷方式158来启动相关联的应用程序104。因此,当应用程序104在远程安装点上执行时,用户经验实际上等同于当应用程序被本地安装在远程客户设备106上时的经验(例如,有音频、客户机方的打印设备、任务栏等的完全集成)。
在一项实现中,如已经描述的,经由向导146、RAP客户机工作者156、外壳156和/或RAP进程生成程序162之间的各自的界面来执行方框406的这些操作。
示例性操作环境
图5示出了合适的计算环境500的例子,在该合适的计算环境500上,可以(完全或部分地)实现用于远程应用程序发现的Web服务的这些随后描述的系统、装置和方法。示例性计算环境500只是合适的计算环境的一个例子,它并不意在对这里所描述的系统和方法的使用范围或功能提出任何限制。也不应该将计算环境500解释为对操作环境500中所示出的任何一个组件或组件组合的任何依赖性或要求。
这里所描述的方法和系统可用于众多其它的通用或专用计算系统环境或配置。适合使用的众所周知的计算系统、环境和/或配置的例子包括(但不局限于)个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境,等等。也可以在有限资源的客户机(例如,手持计算机或其它计算设备)中实现该构架的简洁或子集版本。本发明可以在分布式计算环境中实践,在该分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参照图5,用于远程应用程序发现的示例性系统包括采取计算机510的形式的通用计算设备。计算机510的以下所描述的各个方面是图2中的办公计算机102、图2中的RAP Web服务器114、和/或图2中的远程客户计算设备106的示例性方面。鉴于这一点,计算机510的组件可以包括(但不局限于)处理单元520、系统存储器530和系统总线521,系统总线521将包括系统存储器的各种系统组件耦合到处理单元520。系统总线521可以是几种类型的总线结构(包括存储总线或存储控制器、外围总线和使用各种总线体系结构中的任何一种的局部总线)中的任何总线结构。举例来讲(不作限制),这类体系结构包括“工业标准结构”(ISA)总线、“微通道体系结构”(MCA)总线、“增强型ISA”(EISA)总线、“视频电子技术标准协会”(VESA)局部总线和也被称作“Mezzanine总线”的“外围部件互连”(PCI)总线。
计算机510通常包括各种计算机可读介质。计算机可读介质可以是可由计算机510存取的任何可用介质,它包括易失和非易失介质、可移动和不可移动的介质。举例来讲(不作限制),计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失和非易失的可移动和不可移动的介质,该介质用用于信息(例如,计算机可读指令、数据结构、程序模块或其它数据)存储的任何方法或技术来加以实现。计算机存储介质包括(但不局限于)RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或其它磁性存储设备、或可以被用来存储所需信息并可以由计算机510来进行存取的其它任何介质。
通信介质通常在已调制数据信号(例如,载波或其它传输机制)中具体表现计算机可读指令、数据结构、程序模块或其它数据,它包括任何信息传递介质。术语“已调制数据信号”意味着一种信号,其一个或多个特征按为该信号中的信息编码的这样一种方式来加以设置或更改。举例来讲(不作限制),通信介质包括有线介质(例如,有线网络或直线连接)和无线介质(例如,声学、RF、红外和其它无线介质)。以上任何内容的组合也应该被包括在计算机可读介质的范围以内。
系统存储器530包括采取易失和/或非易失存储器(例如,只读存储器(ROM)531和随机存取存储器(RAM)532)的形式的计算机存储介质。基本输入/输出系统533(BIOS)通常被存储在ROM 531中,该基本输入/输出系统包含有助于在计算机510内的各个元件之间传送信息(例如,在启动期间)的基本例程。RAM 532通常包含可立即由处理单元520存取和/或目前正由处理单元520进行操作的数据和/或程序模块。举例来讲(不作限制),图5示出了操作系统534、应用程序535、其它程序模块536和程序数据537。
计算机510也可以包括其它可移动/不可移动的易失/非易失计算机存储介质。只举例来讲,图5示出了从不可移动的非易失磁性介质读取或对其写入的硬盘驱动器541、从可移动的非易失磁盘552读取或对其写入的磁盘驱动器551,以及从可移动的非易失光盘556(例如,CD ROM或其它光学介质)读取或对其写入的光盘驱动器555。可以被用于该示例性操作环境中的其它可移动/不可移动的易失/非易失计算机存储介质包括(但不局限于)盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器541通常通过不可移动的存储接口(例如,接口540)而被连接到系统总线521,磁盘驱动器551和光盘驱动器555通常由可移动的存储接口(例如,接口550)连接到系统总线521。
以上所讨论的和图5中所示出的这些驱动器及其关联的计算机存储介质为计算机510提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图5中,例如,硬盘驱动器541被示出为存储操作系统544、应用程序545、其它程序模块546和程序数据547。注意,这些组件可以等同于或不同于操作系统534、应用程序535、其它程序模块536和程序数据537。这里为操作系统544、应用程序545、其它程序模块546和程序数据547提供不同的标号,以展示它们至少是不同的副本。
用户可以通过输入设备(例如,键盘562和通常被称作“鼠标”、“跟踪球”或“触摸垫”的定点设备561),来将命令和信息输入到计算机510。其它输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的输入设备。这些和其它的输入设备经常通过被耦合到系统总线521的用户输入接口560而被连接到处理单元520,但也可能由其它接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))来加以连接。
监视器591或其它类型的显示设备也经由接口(例如,视频接口590)而被连接到系统总线521。除监视器以外,计算机也可以包括其它外围输出设备(例如,扬声器597和打印机596),这些外围输出设备可以通过输出外围接口595来加以连接。
计算机510使用与一台或多台远程计算机(例如,远程计算机580)的逻辑连接而在联网环境中进行操作。远程计算机580可以是个人计算机、服务器、路由器、网络PC、对等设备或其它共同的网络节点,它通常包括以上相对于计算机510而描述的许多或所有这些元件,尽管图5中只示出了存储器存储设备581。图5中所描绘的这些逻辑连接包括局域网(LAN)571和广域网(WAN)573,但也可以包括其它网络。这类联网环境在办公室、企业范围的计算机网络、内联网和因特网中很普遍。
当被用于LAN联网环境中时,计算机510通过网络接口或适配器570而被连接到LAN 571。当被用于WAN联网环境中时,计算机510通常包括调制解调器572或用于通过WAN 573(例如,因特网)建立通信的其它装置。调制解调器572(可能是内置的,也可能是外置的)可以经由用户输入接口560或其它合适的机制而被连接到系统总线521。在联网环境中,相对于计算机510或其各个部分而描绘的程序模块可以被存储在该远程存储器存储设备中。举例来讲(不作限制),图5将远程应用程序585展示为驻留在存储设备581上。所示的这些网络连接起示范的作用,并且,可以使用在这些计算机之间建立通信链路的其它装置。
结论
虽然本发明已用针对结构特征和/或方法操作或动作的语言来加以描述,但是,将会理解:所附权利要求书中所定义的本发明不一定局限于所描述的这些具体的特征或动作。相反,这些具体的特征和动作被揭示为实现所要求保护的本发明的较佳形式。