用于将应用启动到现有的隔离环境中的系统和方法

文档序号:6349803阅读:258来源:国知局
专利名称:用于将应用启动到现有的隔离环境中的系统和方法
技术领域
本发明总的涉及远程地执行计算机器上的应用。更具体地,本发明涉及远程地执行在计算机器上的隔离环境中的应用。
背景技术
目前现有的方法根据应用简档、用户会话或者能够被用来隔离应用的另一个参数来在隔离环境中隔离应用。当应用在隔离环境中执行时,通常该应用不能与不在该隔离环境中执行的其他应用进行通信。允许被隔离应用与在隔离环境之外的应用通信可能需要管理员来将该被隔离应用和另一个应用打包到更大的单个隔离映像或简档中。创建隔离环境要求创建盘数据的映像,将该映像传送到内核模式组件和用户模式组件。这个过程会消耗大量的时间并且要求许多资源。特别是,创建盘数据映像需要解析盘上的数据结构、随着在盘上执行的简档数量的增加,该过程将占用更多的资源。因此,每次应用希望与不驻留在该应用的隔离环境中的另一个应用通信时,创建更大的单个隔离映像或简档可能是时间和资源密集型的。因此,需要这样的方法和系统,其允许在不同隔离环境中执行的应用互相之间交流而不需要创建单独的隔离映像或简档。

发明内容
从最广泛的解释而言,本公开描述了用于将应用启动到现有的隔离环境中的方法和系统。将应用启动到在其中应用的群集性(sociability)和兼容性可能产生问题的环境中,通常要求在隔离的环境之内或者在隔离环境中的隔离范围内执行该应用。创建隔离环境可能是大量消耗时间和资源的过程,因此需要系统和方法来降低将应用启动到隔离环境中所需要的时间和资源量。实现识别与应用关联的先前存在的隔离环境并将该应用启动到该先前存在的隔离环境中的方法和系统能够减少将应用启动到隔离环境中所需要的时间量和资源量。在一个方面,此处所述的是用于将应用启动到现有的隔离环境中的方法。该方法可以由在与客户计算机器通信的计算机器上执行的运行模块部分地执行。运行模块接收在该计算机器上执行应用的请求;所述请求是由客户机的用户生成的。运行模块识别与所请求的应用关联的简档并查询在该计算机器上执行的应用传送服务以识别对应于该简档的至少一个隔离环境。在查询应用传送服务后,运行模块从应用传送服务接收响应,所述响应识别与该应用关联的第一隔离环境。在获得关于第一隔离环境的信息后,运行模块向在该计算机器上执行的启动模块发出将该应用启动到第一隔离环境中的命令。在一个实施例中,运行模块接收来自应用传送服务的与第一隔离环境关联的标识符。所接收的标识符在一些实施例中可以是第一隔离环境的名称。在一些实施例中,运行模块响应于收到第一隔离环境标识符来向运行时对象表查询第一隔离环境的地址,其中运行模块使用第一隔离环境标识符来查询运行时对象表。在一些实施例中,第一隔离环境公开用于与在计算机器上执行的组件通信的通信接口,所述通信接口是由进程间机制生成的。命令启动模块启动应用还可以包括向所公开的通信接口传输该应用的位置。在一个实施例中,识别第一隔离环境还包括识别与第一隔离环境关联的地址。在一些实施例中,第一隔离环境地址可以包括与第一隔离环境关联的简档版本,而在其他实施例中,可包括与第一隔离环境关联的用户会话标识符。在一个实施例中,该方法可以包括未能识别对应于该简档的隔离环境,以及由运行模块响应于未能识别隔离环境来以暂停模式启动启动模块。接着,运行模块向应用传送服务发送隔离该启动模块的命令,向该启动模块发送应用信息,以及向该启动模块发出继续执行的命令。在一个方面,该方法可以由系统来实现,所述系统包括与生成在计算机器上执行应用的请求的客户机通信的计算机器,所述应用与简档相关联。该系统还包括在计算机器上执行的应用传送服务、启动模块和运行模块。运行模块接收客户机请求并且查询应用传送服务以识别对应于该简档的至少一个隔离环境。在查询应用传送服务后,运行模块从应用传送服务接收识别与所述应用关联的第一隔离环境的响应,以及向启动模块发出将该应用启动到第一隔离环境中的命令。在其他方面,可以由具有由处理器可执行的将应用启动到现有的隔离环境中的指令的计算机可读介质来实现该方法和系统。


下面的附图描述了用于将应用启动到现有的隔离环境中的方法和系统的某些说明性实施例,其中相同的参考标记值是指相同的元素。每个所描述的实施例是对这些方法和系统的说明而不是限制。图IA是说明具有与服务器通信的客户机的远程访问的、联网的环境的实施例的框图。图IB和IC是说明用于实施此处所描述的方法和系统的计算机器的实施例的框图。图ID是描述服务器群的实施例的框图;图IE是描述用于通过在web服务目录中发布⑶I来提供对客户机可用的多个应用程序的系统的一个实施例的框图。图2是描述选择应用程序的执行方法所采用的步骤的一个实施例的流程图。图3A是描述客户机通过万维网初始化程序邻近应用的执行的一个实施例的框图。图;3B是描述由客户机访问用web服务目录列举的应用程序所采用的步骤的一个实施例的流程图。图4A是为客户机提供对应用程序的基于策略的访问的网络的实施例的框图。
图4B是描述策略引擎更详细的实施例的框图。图4C是描述由策略引擎基于所接收的关于客户机的信息做出访问控制决策所采用的步骤的一个实施例的流程图。图4D是描述在其中提供了对多个应用会话的授权的远程访问的计算机网络的实施例的框图。图4E是描述由会话服务器将客户机与其所关联的应用会话相连接所采用的步骤的一个实施例的流程图。图5是描述由会话服务器将客户机节点与其所关联的应用会话相连接所采用的步骤的一个实施例的流程图。图6是描述包括提供应用列举的管理服务的服务器的一个实施例的框图。图7是描述访问包含应用程序的多个文件所采用的步骤的一个实施例的流程图。图8A是描述在具有减小的应用兼容性和应用群集性问题的操作系统的控制下运行的计算机的一个实施例的框图。图8B是描述具有减小的应用兼容性和应用群集性问题的多用户计算机的框图。图8C是描述在将进程和隔离范围相关联的方法中所采用的步骤的一个实施例的流程图。图9是描述在用于执行应用程序的方法中所采用的步骤的一个实施例的流程图。图10是描述多个应用文件驻留在服务器上的一个实施例的流程图。图11是描述在用于对与远程存储的文件相关联的文件元数据的请求进行本地响应的方法中所采用的步骤的一个实施例的流程图。图12是描述包括许可管理子系统的服务器的一个实施例的框图。图13是描述服务器上管理服务中的组件的一个实施例的框图。图14是描述请求和维护来自服务器的许可所采用的步骤的一个实施例的流程图。图15是描述可与由管理服务监控的会话关联的状态的一个实施例的框图。图16是描述在应用隔离环境中安装应用所采用的步骤的一个实施例的流程图。图17是描述用于将应用启动到隔离环境中的系统的一个实施例的框图。图18是描述用于将应用启动到现有的隔离环境中的系统的一个实施例的框图。图19是描述用于将应用启动到隔离环境中的方法的一个实施例的流程图。图20是描述用于将应用启动到隔离环境中的方法的一个实施例的流程图。
具体实施例方式图IA描述了计算环境101的一个实施例,该计算环境包括与服务器106A-106N通信的一个或多个客户机102A-102N,以及在客户机102A-102N与服务器106A-106N之间安装的网络104。在一些实施例中,客户机102A-102N可被认为是单个客户机102或客户机102 的一个组,而服务器可被认为是单个服务器106或服务器106的一个组。在一个实施例中, 单个客户机102与不只一个服务器106通信,在又一个实施例中,单个服务器106与不只一个客户机102通信,而在又一个实施例中,单个客户机102与单个服务器106通信。在一些实施例中,计算环境之内的客户机102可被称为下面术语中的任何一个客户机102、客户端、客户计算机、客户装置、客户计算装置、本地机器、远程机器、客户节点、 端点、端节点或第二机器。在一些实施例中,服务器106可被称为下列术语中的任何一个 服务器、本地机器、远程机器、服务器群、主计算装置或第一机器。在一些实施例中,客户机102可以执行、操作或者以其它方式提供应用,该应用可为下列应用中的任何一个软件、程序、可执行指令、虚拟机、管理程序、web浏览器、基于 web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、Java小程序、与类似软IP电话的网络电话(VoIP)通信相关的软件、流式传输视频和/或音频的应用、便于实时数据通信的应用、HTTP客户机、FTP客户机、Oscar客户机、Telnet客户机或能够在客户机102上执行的任何其他类型和/或形式的可执行指令。在其他实施例中,计算环境 101包括可以是基于服务器的应用或基于远程的应用,并且可以在服务器106上代表客户机102来执行应用。在计算环境101的其他实施例中,服务器106被配置为使用瘦客户端或远程显示协议将输出的图形数据显示到客户机102,其中所使用的协议可以是下列协议的任何一个由位于佛罗里达州Ft. Lauderdale的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于Washington,Redmond的微软公司制造的远程桌面协议(RDP)。在一个实施例中,客户机102可以是虚拟机102C,例如由XenSolution、Citrix SyStemS、IBM、VMware公司出品的那些虚拟机,或能够实现此处所描述的方法和系统的任何其他虚拟机。在一些实施例中,计算环境101可包括不只一个服务器106A-106N,其中服务器 106A-106N 一起聚合为单个服务器106实体、逻辑上一起聚合到服务器群106中、地理上分散并且逻辑上一起聚合到服务器群106中,或者互相之间位置接近的且逻辑上一起聚合到服务器群106。在一些实施例中,服务器群106中地理上分散的服务器106A-106N可使用WAN、MAN或LAN通信,其中不同地理区域可以被表征为不同大陆、大陆的不同地区、不同国家、不同州、不同城市、不同校园、不同房间、或前述地理位置的任一组合。在一些实施例中,服务器群106可以作为单个实体被管理,而在其它实施例中,服务器群106可包括多个服务器群106。计算环境101可包括一起聚合到单个服务器群106中的不只一个服务器 106A-106N,其中,服务器群106是异构的,从而一个服务器106A-106N被配置为根据第一类型的操作系统平台(例如,由Washington,Redmond的Microsoft公司制造的WINDOWS NT) 操作,而一个或多个其他服务器106A-106N被配置为根据第二类型的操作系统平台(例如, Unix或Linux)操作;不只一个服务器106A-106N被配置为根据第一类型的操作系统平台 (例如,WINDOWS NT)操作,而另一个服务器106A-106N被配置为根据第二类型的操作系统平台(例如,Unix或Linux)操作;或者不只一个服务器106A-106N被配置为根据第一类型的操作系统平台(例如,WINDOWS NT)操作,而不只一个其他服务器106A-106N被配置为根据第二类型的操作系统平台(例如,Unix或Linux)操作。在一些实施例中,计算环境101可包括被配置为提供下列服务器类型的任何一个的功能的一个或多个服务器106 文件服务器、应用服务器、web服务器、代理服务器、装置、 网络装置、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或主应用服务器、被配置为作为活动目录而操作的服务器106、 被配置为作为提供防火墙功能、应用功能或负载平衡功能的应用加速程序而操作的服务器 106、或者被配置为作为服务器106而操作的其他类型的计算机器。在一些实施例中,服务器106可以包含远程认证拨入用户服务,使得该服务器106为RADIUS服务器。在服务器 106包括设备的计算环境101的实施例中,服务器106可以是由下列制造商的任何一个制造的设备=Citrix 应用网络组、Silver Peak Systems 公司、Riverbed Thechnology 公司、F5 Networks公司、或Juniper NetWorks公司。一些实施例中包括具有下列功能的服务器106 第一服务器106A接收来自客户机102的请求、将该请求转发到的第二服务器106B,以及使用来自第二服务器106B的响应来对客户机所产生的请求进行响应;获得对客户机102可用的应用列表和与寄载由应用列表所识别的应用的服务器106关联的地址信息;使用web接口提供对客户机请求的响应;并直接与客户机102通信以向客户机102提供对所识别应用的访问;接收通过在服务器106上执行所识别的应用而产生的输出数据,例如显示数据。服务器106可被配置为执行下列应用中的任何一个提供瘦客户端计算的应用或远程显示呈现应用;Citrix Systems公司的CITRIX ACCESS SUITE的任何部分,诸如 METAFRAM 或者 CITRIX PRESENTATION SERVER !Microsoft 公司制造的 MICROSOFT WINDOWS 终端服务;或由Citrix Systems公司开发的ICA客户端。又一个实施例中包括被配置为执行应用以使得该服务器作为应用服务器而运行的服务器106,所述应用服务器例如为下列应用服务器类型的任何一个提供电子邮件服务的邮件服务器,例如由Microsoft公司制造的MICROSOFT EXCHANGE ;web或hternet服务器、桌面共享服务器,或协同服务器。在其他实施例中服务器106执行下列类型的所寄载的服务器应用的任何一个Citrix Online Division公司提供的G0T0MEETING、位于加利福尼亚州Santa Clara的WebEx公司提供的 WebEx,或者 Microsoft 公司提供的 Microsoft Office LIVE MEETING。在一个实施例中,服务器106可以是虚拟机106B,例如由Citrix Systems、IBM、 VMware公司出品的那些虚拟机,或能够实现此处所描述的方法和系统的任何其他虚拟机。在一些实施例中,客户机102可以作为寻求对服务器106提供的资源进行访问的客户机节点,或者作为向其他客户机102A-102N提供对所寄载的资源的访问的服务器106。 在计算环境101的一个实施例中包括提供主节点功能的服务器106。客户机102和一个服务器106或多个服务器106A-106N之间的通信可以是通过下列方法的任何一个而建立的 客户机102与服务器群106中的服务器106A-106N直接通信;客户机102使用程序邻近应用(program neighborhood application)以与服务器群 106 中的服务器 106a_106n 通信; 客户机102使用网络104与服务器群106中的服务器106A-106N通信。在计算环境101的一个实施例中,客户机102使用网络104来请求执行由服务器群106中的服务器106A-106N 所寄载的应用,以及使用网络104来接收来自服务器106A-106N的代表应用执行的图形显示输出。在其他实施例中,主节点提供识别和提供与寄载所请求的应用的服务器106相关的地址信息所需的功能。在其他实施例中,主节点可以是下列的任何一个服务器群106中的服务器106A-106N、与服务器群106连接但不被包含在服务器群106之内的远程计算机器、与客户机102连接但不被包含在客户机102组内的远程计算机器、或者客户机102。客户机102和服务器106之间的网络104是通过其在客户机102和服务器106之间传输数据的连接。尽管在图IA所示描述了连接客户机102和服务器106的网络104,但在计算环境101的其他实施例中,客户机102和服务器106安装在同一网络上。在包括计算环境101的其他实施例中,网络104可以是下列的任何一个局域网(LAN)、城域网(MAN)、 广域网(WAN),包括位于客户机102和服务器106之间的多个子网104’的主网104、具有专用子网104,的主公共网104、具有公共子网104,的主专用网104或者具有专用子网104, 的主专用网104。在进一步的实施例中,网络104可以是任何的下列网络类型点对点网络、 广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、S0NET(同步光纤网络)网络、SDH(同步数字体系)网络、无线网络、有线网络、包括可能是红外信道或者卫星频带的无线链路的网络104或能够将数据从客户机102传输到服务器106且反之亦然以便实现此处所描述的方法和系统的任何其他网络类型。网络拓扑在不同的实施例中可以不同,可能的网络拓扑包括总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑、分层星型网络拓扑、或能够将数据从客户机102传输到服务器106且反之亦然以便实现此处所描述的方法和系统的任何其他网络拓扑。额外的实施例中包括使用协议在移动装置间通信的移动电话网络的网络104,其中,协议可以是下列协议的任何一个AMPS、 TDMA、CDMA、GSM、GPRS UMTS或能在移动装置间传输数据以实现此处所描述的系统和方法的其他任何协议。图IB所示是计算装置100的实施例,其中如图IA所示的客户机102和服务器106 可以被部署为和/或被执行在此处所描述和图示的计算装置100的任何实施例上。被包含在计算装置100中的系统总线150可以和下列组件通信中央处理单元121、主存储器122、 存储装置128、输入输出(I/O)控制器123、显示装置124A-1MN、安装装置116和网络接口 118。在一个实施例中存储装置1 包括操作系统、软件程序和客户机代理120。在一些实施例中,I/O控制器123还连接到键盘1 和指示装置127。其他实施例中可包括连接到不只一个输入/输出装置130A-130N的I/O控制器123。图IC描述了计算装置100的一个实施例,其中如图IA所示的客户机102和服务器 106可以被部署为和/或被执行在此处所描述和图示的计算装置100的任何实施例上。被包含在计算装置100中的系统总线150可以和下列组件通信桥170和第一 I/O装置130A。 在又一个实施例中,桥170还和主中央处理单元121通信,其中中央处理单元121可进一步与第二 I/O装置130B、主存储器122和高速缓冲存储器140通信。I/O端口、存储器端口 103和主处理器被包含在中央处理单元121中。在计算装置100的实施例中可包括被下列组件配置的任何一个所表征的中央处理单元121 响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元, 诸如由htel公司制造的微处理器单元;由Motorola公司制造的微处理器单元;由加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;诸如国际商业机器公 W] (International Bussiness Machines) ^it W RS/6000 ^hS^I ; Advanced Micro Devices公司制造的处理器;或能够执行此处所描述的系统和方法的逻辑电路的任何其他组合。中央处理单元122的其他实施例可包括下列任何组合微处理器、微控制器、具有单处理核的中央处理单元、具有两个处理核的中央处理单元或具有不只一个处理核的中央处理单元。在计算装置100的一个实施例中包括通过也称为背侧总线的第二总线与高速缓冲存储器140通信的中央处理单元121,而在计算机器100的又一个实施例中包括使用系统总线150与高速缓冲存储器通信的中央处理单元121。在一些实施例中,本地系统总线150 也被中央处理单元所使用来与不只一种类型的1/0装置130A-130N进行通信。在一些实施例中,本地系统总线150可以是下列类型总线的任何一个VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算装置100的其他实施例中包括为通过高级图形端口(AGP)与中央处理单元121通信的视频显示器124的I/O装置130A-130N。在计算装置100的其他形式中包括通过下列连接的任何一个连接到I/O装置130A-130N的处理器121,这些连接如下超传输(HyperTransport)、 快速I/O或者hfiniBand。计算装置100的进一步的实施例包括通信连接,其中处理器121 使用本地互连总线与一个I/O装置130A进行通信并使用直接连接与第二 I/O装置130B进行通信。在一些实施例中,计算装置100包括主存储器单元122和高速缓冲存储器140。 高速缓冲存储器140可以在一些实施例中可以是下列类型存储器的任何一个SRAM、BSRAM 或EDRAM。其他实施例中包括的高速缓冲存储器140和主存储器单元122,可以是下列类型存储器的任何一个静态随机存取存储器(SRAM)、Burst (脉冲串)SRAM或SynchBurst SRAM (BSRAM)、动态随机存取存储器DRAM、快速页模式DRAM (FPM DRAM)、增强DRAM (EDRAM)、 扩展数据输出RAM(ED0 RAM)、扩展数据输出DRAM(ED0 DRAM)、脉冲串扩展数据输出 DRAM (BEDO DRAM)、增强型 DRAM (EDRAM)、同步 DRAM (SDRAM)、JEDECSRAM、PC100SDRAM、双数据传输率 SDRAM (DDR SDRAM)、增强 SDRAM (ESDRAM)、同步链路 DRAM (SLDRAM)、直接 Rambus DRAM(DRDRAM)、铁电RAM(FRAM)或能够执行此处所描述的系统和方法的任何其他类型的存储器装置。在一些实施例中,主存储器单元122和/或高速缓存存储器140可包括能够存储数据并且允许中央处理单元121直接访问任何存储单元的一个或多个存储器装置。进一步的实施例包括可通过下列之一访问主存储器122的中央处理单元121 系统总线150、存储器端口 103、或允许处理器121访问存储器122的任何其他连接、总线或端口。计算装置100的一个实施例支持下列安装装置116的任何一个用于接收例如3. 5英寸、5. 25英寸或ZIP盘的软盘的软盘驱动器、⑶-ROM驱动器、⑶-R/RW驱动器、DVD-ROM驱动器、多种格式的磁带驱动器、USB装置、可引导介质、可引导⑶、诸如 ΚΝ0ΡΡΙΧ 的用于GNU/Linux分发的可引导⑶、硬盘驱动器或适于安装应用或软件的任意其它装置。在一些实施例中应用可包括客户机代理120或客户机代理120的任意部分。计算装置100还可以包括可以为一个或多个硬盘驱动器或者一个或多个独立磁盘冗余阵列的存储装置128,这里存储装置被配置为存储操作系统、软件、程序应用、或者至少客户机代理120的一部分。计算装置100的进一步实施例中包括用作存储装置1 的安装装置116。此外,计算装置100还可包括网络接口 118以通过多种连接来连接到局域网 (LAN)、广域网(WAN)或因特网,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如 802. 11,T1,T3、56kb、X. 25、SNA、DECNET)、宽带连接(如 I SDN、帧中继、ATM、千兆以太网、 SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某个组合。也可使用多种通信协议(例如11^/1 、1 乂、3 乂、恥丨8103、肽1161116仏41^服1\30服1\30!1、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802. 1UIEEE802. lla、IEEE802. llb、IEEE802. llg、 CDMA、GSM、WiMax和直接异步连接)来建立连接。计算装置100的一个形式包括可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或Citrix Systems公司制造的Gitrix网关协议的隧道协议来与其他计算装置100’通信的网络接口 118。网络接口 118的形式可以包括下列的任何一个内置网络适配器、网络接口卡、PCMCIA 网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100连接到能够通信并执行这里所描述的方法和系统的网络的任意其它装置。计算装置100的实施例包括下列I/O装置130A-130N的任何一个键盘126、指示装置127、鼠标、触控板、光笔、轨迹球、话筒、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机、或可执行此处描述的方法和系统的任何其他输入/输出装置。在一些实施例中I/O控制器123可连接多个I/O装置130A-130N以便控制一个或多个I/O装置。I/O装置130A-130N的一些实施例被配置为提供存储或安装介质116,而其他实施例可为接收诸如由Twintech Industry公司制造的装置的USB闪存驱动线的USB存储装置提供通用串行总线(USB)。在其他实施例中I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线例如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、 Fireffire总线、Fireffire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线或串行连接的小型计算机系统接口总线。在一些实施例中,计算装置100可以连接多个显示装置124A-1MN,在其他实施例中计算装置100可以连接单个显示装置124,而在其他实施例中计算装置100可以连接相同类型或形式的显示装置124A-124N或不同的类型或形式的显示装置。显示装置124A-1MN 的实施例可被如下方式支持和实现一个或多个I/O装置130A-130N、I/O控制器123、I/ 0装置130A-130N和I/O控制器123的组合、能支持显示装置124A-1MN的硬件和软件的任何组合、任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以便与显示装置124A-124N对接、通信、连接或以其他方式使用显示装置12^_1Μη。在一些实施例中, 计算装置100可被配置为使用一个或多个显示装置124A-1MN,这些配置包括有多个连接器以与多个显示装置124A-124N对接;多个视频适配器且每个视频适配器与显示装置 124A-1MN中的一个或多个连接;有操作系统被配置用于支持多个显示装置124A-1MN ; 使用被包含在计算装置100内部的电路和软件来连接并使用多个显示装置124A-1MN;和在主计算装置100和多个次级计算装置上的执行软件来使主计算装置100能使用次级计算装置的显示装置作为用于主计算装置100的显示装置124A-1MN。计算装置100的其它实施例可包括由多个次级计算装置提供的多个显示装置124A-1MN,所述多个显示装置 124A-124N通过网络连接到主计算装置100。在计算装置100的一些实施例中,可包括操作系统以便控制任务调度和对系统资源的访问。在计算装置100的实施例中可运行下列操作系统的任何一个诸如WINDOWS 3. χ、WINDOWS 95, WINDOWS 98,WINDOWS 2000,WINDOffSNT 3. 51,WINDOWS NT 4. 0,WINDOWS CE、WINDOWS XP和WINDOWS VISTA的版本的MICROSOFT WINDOWS的操作系统;不同发行版本的Unix和Linux操作系统;由苹果计算机公司(Apple Computer)出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2 ;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行并执行此处所描述的操作的任意其它操作系统。在计算装置100的一个实施例中,可在其上安装多个操作系统。计算装置100可以体现为下列计算装置的任何一个计算工作站、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、便携通信装置、媒体播放装置、游戏系统、移动计算装置、上网本、由苹果计算机公司出品的IPOD系列装置、由索尼公司出品的PLAYSTATION系列装置的任何一个、由Nintendo公司出品的Nintendo系列装置的任何一个;由微软公司出品的XBOX系列装置的任何一个,或能够通信并有足够的处理器能力和存储容量以执行此处所述的方法和系统的任意其它类型和/或形式的计算或者电信或媒体装置。在其它实施例中,计算装置100可以是诸如下列移动装置的任何一个的移动装置 JAVA使能蜂窝电话或个人数据助理(PDA),诸如i55sr、i58sr,i85s,i88s,i90c, i95cl或 imllOO,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135 ;由Samsung 电子有限公司制造的 300或 330 ;由Palm公司出品的TRE0180、270、600、650、680、700p、 700w或750智能电话;或具有符合该装置的不同的处理器、操作系统和输入装置的任何计算装置;或能执行此处所述的方法和系统的任何其他移动计算装置。计算环境101的其他实施例包括移动计算装置100,所述移动计算装置100可以是下列的任何一个黑莓 (Blackberry)的任一系列,或由Research In Motion Limited公司出品的其他手持装置; 由苹果计算机公司出品的iPhone ;任何手持或智能电话;掌上电脑;掌上电脑电话或支持 Microsoft Windows Mobile Software的任何其他手持移动装置。现在看图1D,在一起的服务器106包括群38或服务器群,其中,每个服务器106 可包括网络侧接口 202和群侧接口 204。网络侧接口 202可与一个或多个客户机102或网络104通信。网络104可为WAN、LAN或者网络的任何其他实施例(例如上文所述的那些网络)。每个服务器106的群侧接口 204与群38中的其他服务器106的一个或多个群侧接口 204相连接。在一个实施例中,每个群侧接口 204与其他群侧接口 204互联连接,使得群38中的服务器106可互相通信。在每个服务器106上,群侧接口 204与网络侧接口 202 通信。群侧接口 204也与持久存储器230通信(通过箭头220指出)并且,在一些实施例中,也可与动态存储器240通信。服务器106、持久存储器230、以及动态存储器240 (当提供时)的组合共同称为群38。在一些实施中,服务器106与持久存储器230通信,而其他服务器106’与服务器106通信,以访问在持久存储器中所存储的信息。持久存储器230可在磁盘、磁盘群、独立磁盘冗余阵列(RAID)、可写紧密磁盘或其他允许数据读出和写入并且如果存储装置没电则保存写入的数据的任何其他装置上物理地实现。单个物理装置可为多个持久存储器提供存储,也就是单个物理装置可用于为不只一个群38提供持久存储器230。持久存储器230保持与在群38中的每个服务器106相关联的静态数据,以及在群38中的所有服务器106使用的全局数据。在一个实施例中,持久存储器230可在轻量级目录访问协议(LDAP)数据模型中保持服务器数据。在其他实施例中, 持久存储器230在兼容ODBC的数据库中存储服务器数据。为了该说明书的目的,术语“静态数据”指不经常改变的数据,也就是仅基于每小时、每天、或者每星期改变的数据,或者从不改变的数据。每个服务器使用持久存储子系统从持久存储器230中读数据和将数据写入持久存储器230。出于可靠的目的,可以对持久存储器230存储的数据进行物理上或逻辑上复制。 例如,使用一组冗余的镜像磁盘可提供物理冗余,每个冗余的镜像磁盘提供数据的副本。在另一个实施例中,使用标准数据库技术对数据库本身进行复制,以提供数据库的多个副本。 在进一步的实施例中,可以并发地使用物理和逻辑复制。可以以各种方式实现动态存储器即所有记录表的集合)。在一个实施例中,动态存储器240被集中化;即,所有的运行时数据存储在群38中的一个服务器106的存储器中。该服务器作为主网络节点操作,在群38中的所有其他服务器106当寻求对该运行时数据的访问时与该服务器通信。在又一个实施例中,在群38中的每个服务器106保留动态存储器240的完整副本。此处,每个服务器106与每个其他服务器106通信,以保持其动态存储器240副本及时更新。在又一个实施例中,每个服务器106保持它自己的运行时数据,并且当寻求从其他服务器106获得运行时数据时与其他服务器106进行通信。因此,例如,试图寻找客户机 102所请求的应用程序的服务器106可直接与在群38中的每个其他服务器106进行通信以发现寄载所请求的应用的一个或多个服务器。对于有大量的服务器106的群38,这些实施例产生的网络通信量变得十分繁重。 一个实施例通过在群38中指定服务器106的子集(通常为两个或更多个)作为“收集点”, 来减小繁重的网络通信量。通常,收集点是收集运行时数据的服务器。每个收集点存储从群38中的某些其他服务器106收集的运行时数据。群38中的每个服务器106可以作为收集点操作,并因此可以被指定为收集点。在一个实施例中,每个收集点存储整个动态存储器 240的副本。在又一个实施例中,每个收集点存储动态存储器240的一部分,即保持特定数据类型的运行时数据。可根据一个或多个标准预先确定由服务器106存储的数据的类型。 例如,服务器106可基于启动顺序保存不同类型的数据。替代地,可由管理员使用管理工具配置服务器106存储的数据类型。在这些实施例中,动态存储器240分布于群38中的两个或更多个服务器106之间。没有被指定为收集点的服务器106知道群38中指定作为收集点的服务器106。没有被指定为收集点的服务器180在传送和请求运行时数据时可与特定收集点通信。因此, 由于当群38中的每个服务器106寻求对运行时数据的访问时,其是与单个收集点服务器 106通信,而不是与每个其它的服务器106通信,所以收集点减小了网络通信量。每个服务器106可作为用于不只一种类型的数据的收集点而操作。例如,服务器 106”可作为用于许可信息和负载信息的收集点而操作。在这些实施例中,每个收集点可积聚不同类型的运行时数据。例如,为了说明这种情形,服务器106”’可收集许可信息,而服务器106”收集负载信息。在一些实施例中,每个收集点存储在群38内的所有服务器106间共享的数据。在这些实施例中,特定类型的数据的每个收集点与群38中的用于该类型数据的每个其他收集点交换由该收集点收集的数据。因此,一旦完成了这样的数据的交换,每个收集点106” 和106处理相同的数据。也在这些实施例中,对于运行时数据的任何更新,每个收集点106 和106”也使每个其他收集点一起保持更新。浏览使得客户机102能够查看群38、服务器106和群38中的应用,以及访问可用的信息,诸如整个群38的会话。每个服务器106包括ICA浏览器子系统沈0以便为客户机 102提供浏览的能力。在客户机102建立与任何服务器106的ICA浏览器子系统沈0的连接之后,该浏览器子系统支持多种客户机请求。这样的客户机请求包括(1)列举在群中的服务器的名称,(2)列举群中发布的应用的名称,(3)将服务器名称和/或应用名称解析为对客户机102可用的服务器地址。ICA浏览器子系统260也支持由客户机10作出的运行程序邻近应用的请求,该程序邻近应用根据请求为客户机102提供群38中的给用户授权的那些应用的视图。ICA浏览器子系统260转发所有上述提及的客户机请求到服务器106中的适当的子系统。在一个实施例中,在群38中有程序邻近子系统270的每个服务器106,可为客户机102的用户提供在群38中的应用的视图。程序邻近子系统270可以限制对于这些客户机102的用户有权访问的那些应用的视图。通常,该程序邻近服务将这些应用作为列表或图标组呈现给用户。由程序邻近子系统270提供的功能可以被两种类型的客户机利用,(1)可直接从客户机桌面访问该功能的程序邻近使能客户机,以及( 可通过运行在服务器上的程序邻近使能桌面来访问该功能的非程序邻近使能客户机(例如,传统客户机)。在程序邻近使能客户机和程序邻近子系统270间的通信可发生于专用虚拟通道上,该专用虚拟通道建立在ICA虚拟通道之上。在其他实施例中,该通信使用XML服务而发生。在这些实施例的一个中,程序邻近使能客户机与提供服务器106上的程序邻近功能的 XML子系统通信,该XML子系统为例如下述参考图6描述的XML服务516。在一个实施例中,程序邻近使能客户机没有与带有程序邻近子系统270的服务器的连接。对于该实施例,客户机102向ICA浏览器子系统260发送建立到服务器106的ICA 连接的请求,以识别对客户机102可用的应用。客户机102接着运行获取用户证书的客户端侧对话。通过ICA浏览器子系统260接收该证书,并将其发送到程序邻近子系统270。在一个实施例中,程序邻近子系统270将该证书发送到用户管理子系统以用于认证。该用户管理子系统可返回表示用户所属的账户列表的一组区别性的名称。在认证后,程序邻近子系统270建立程序邻近虚拟通道。该通道在应用过滤完成之前一直保持开放。程序邻近子系统270接着从与这些账户关联的公共应用子系统5M请求程序邻近信息。公共应用子系统5M从持久存储器230获得程序邻近信息。一旦接收到程序邻近信息,程序邻近子系统270格式化该程序邻近信息,并且通过程序邻近虚拟通道将其返回到客户机。然后关闭部分ICA连接。对于程序邻近使能客户机与服务器建立部分ICA连接的又一个实施例,考虑选择群38的客户机102的用户。群38的选择从客户机102向ICA浏览器子系统260发送与所选择的群38中的服务器106之一建立ICA连接的请求。该ICA浏览器子系统260将该请求发送到程序邻近子系统270,该子系统选择在群38中的服务器106。与该服务器106相关联的地址信息被识别并经由ICA浏览器子系统260返回到客户机102。客户机102随后可连接到对应于接收到的地址信息的服务器106。在又一个实施例中,程序邻近使能客户机102建立ICA连接,程序邻近虚拟通道在该ICA连接上被建立并在ICA连接持续的时候保持打开。通过该程序邻近虚拟通道,程序邻近子系统270将程序邻近信息更新推送到客户机102上。为了获得更新,程序邻近子系统270从公共应用子系统5M订阅事件,以使得程序邻近子系统270检测所发布的应用的变化。参考图1E,框图描述了用于通过在web服务目录中的⑶I的发布提供对客户机可用的多个应用程序的系统架构的又一个实施例。该系统包括客户机102和多个服务器106。 第一服务器106具有内容服务器的功能。第二服务器106’提供web服务器功能,以及第三服务器106”提供用于提供对应用文件访问的功能并且充当应用服务器或文件服务器。客户机102可通过网络104从内容服务器106、web服务器106,、应用服务器106”下载内容。 在一个实施例中,客户机102可通过客户端-应用服务器通信通道150从应用服务器106” 下载内容(例如应用)。在一个实施例中,客户机102上的web浏览器11使用安全套接字层(SSL)支持到内容服务器106和/或web服务器106,的通信。SSL是由位于美国加利福尼亚州Mountain View的Netscape Communication公司开发的安全协议,并且现在是由hternet工程任务组(IETF)发布的标准。该web浏览器11可选地可使用其他安全协议连接到内容服务器106 和/或web服务器106’,所述其他安全协议例如,但不限于,由位于美国加里福尼亚州Los Altos的iTerisa System公司开发的安全超文本传输协议(SHTTP)、HTTP over SSL(HTTPS)、 由位于美国华盛顿州Redmond的Microsoft公司开发的私人通信技术(PCT),以及IETF发布的传输层安全(TLS)标准。在其他实施例中,web浏览器11使用没有加密的通信协议与服务器106通信,例如超文本传输协议(HTTP)。另外,客户机102包括应用客户端13,该应用客户端13用于通过客户机-应用服务器通信通道150与应用服务器106”建立并交换通信。在一个实施例中,应用客户端13 是GUI应用。在一些实施例中,应用客户端13是独立计算结构(ICA)客户端,其是由美国佛罗里达州i^ort Lauderdale的Citrix System有限公司开发的,并且在下文也被称为ICA 客户端13。应用客户端13的其他实施例包括由美国华盛顿州Redmond的Microsoft公司开发的远程显示协议(RDP)客户端,X-Windows客户端13、可执行多媒体应用、email、java、 或者.NET代码的客户端侧播放器、解释器或仿真器。而且,在一个实施例中在应用服务器 106”上执行的应用的输出可通过ICA客户端13在客户机102上显示。在一些实施例中,应用客户端13是例如结合图5更详细描述的应用流客户端552的应用客户端。客户机102搜索web服务目录160以获得web服务。在一个实施例中,此搜索是手动搜索。可选的,此搜索可为自动搜索。web服务目录160也可提供基于服务的视图,例如, 白页和黄页,以在web服务目录中搜索web服务。在又一个实施例中,web服务目录160支持用于GUI应用的基于结构化的服务名称和服务种类的层次化的浏览。在一个实施例中, web服务目录160在独立于内容服务器106的服务器(例如目录服务器)上执行。在其他实施例中,web服务目录160在多个服务器上执行。在一些实施例中,通过在web服务目录160中提供额外的信息或分析,内容服务器 106使得客户机102能基于该分析或信息来选择web服务。web服务目录160可列出的服务信息示例包括,但不限于,提供服务的商务的名称、服务类型、服务的文本描述、一个或多个服务接入点(SAP)、网络类型、使用的路径(例如TCP或HTTPQ、以及服务质量(QoS)信息。而且服务信息可是客户端装置类型或用户(例如角色)细节。因此,可基于一个或多个上述属性选择服务。在一个实施例中,服务类型指示客户机102访问web服务必须使用的编程接口。例如,服务类型可规定通过接口描述语言(例如web服务描述语言(WSDL))来对服务进行编码。服务接入点(或SAP)是应用的唯一的地址。SAP使计算机系统能支持在客户机 102和每个服务器106处的多个应用。例如,应用服务器106”可支持电子邮件(即,e-mail) 应用、文件传输应用、和/或GUI应用。在一个实施例中,这些应用各自具有在应用服务器106”内是唯一的SAP。在一个实施例中,SAP是web或hternet地址(例如,域名系统 (DNS)名称、IP/端口、或者统一资源定位符(URL))。因此,在一个实施例中,SAP将web服务器106’的地址识别为在web服务器106’上所存储的应用的地址的一部分。在一些实施例中,如下文所述,SAP将发布服务器插件165的地址识别为在web服务器106’上所存储的应用的地址的一部分。在一个实施例中,SAP是来自于UDDI注册中心的“接入点”。为了准备在web服务目录160中发布的项目,内容服务器106包括web发布工具 170。在一个实施例中,web发布工具170是软件模块。可选的,web发布工具173是另一个服务器,该服务器位于内容服务器106的外部或内部。在一个实施例中,web服务器106,向客户机102传送web页。该web服务器106, 可以是能够向客户机102提供web页的任何服务器106。在又一个实施例中,web服务器 106’为企业信息门户(例如,企业内部网或安全的企业对企业的外部网)。企业门户为公司网站,用于聚集、个性化以及向用户提供应用、数据和内容,同时提供管理工具用于更有效地组织和使用信息。在一些公司中,门户以基于浏览器的对虚拟工作环境的访问来代替传统桌面软件。web服务器106’也包括发布服务器插件165以进行图形用户接口(⑶I)应用的发布。更具体地,发布服务器插件165将新的web服务入口 URL转换到GUI应用服务中,以使得可通过web服务目录160来访问⑶I。在一个实施例中,发布服务器插件165是通用网关接口(CGI)脚本,其是被设计为接收和返回符合CGI规范的数据的程序。可以任何程序语言来编写该程序,例如C、Perl、Java或者Visual Basic。在又一个实施例中,发布服务器插件165是Java服务器页面(JSP)。使用发布服务器插件165以方便远程GUI应用的发布, 客户机102因此可以通过完全的⑶I接口(例如用Citrix的ICA或者Microsoft的RDP) 来访问web服务,而不通过编程接口或网页。应用服务器106”寄载客户机102可用的一个或多个应用。这样的应用的例子包括字处理程序,例如MICROSOFT WORD以及电子表格程序,例如MICROSOFT EXCEL (两个都是由Washington,Redmond的Microsoft公司制造的),财务报告程序、客户注册程序、程序提供技术支持信息、客户数据库应用、或者应用集合管理器。在一些实施例中,在不同的网络上建立一个或多个通信链接150。例如,客户机-内容服务器通信通道150’可能属于第一网络(例如,万维网)而客户机-web服务器通信通道150”可能属于第二网络(例如,安全的外部网或虚拟专用网(VPN))。在一个实施例中,web发布工具173将关于该web发布工具173当前在web服务目录160中发布的应用的信息存储到持久大容量存储器225中。在一个实施例中该信息是用于动态发布服务器插件165的URL。持久大容量存储器225可为磁盘或磁光驱动器。在一个实施例中,持久大容量存储器225是数据库服务器,其将与所发布的应用相关的数据存储在一个或多个本地服务数据库中的。该持久大容量存储器225可以是位于任一或所有服务器106内部或外部的部件。在其他实施例中,内容服务器106或者web服务器106,与群38中的服务器106 通信,以检索应用列表。在这些实施例的一个中,内容服务器106或者web服务器106’与群38通信,而不是与持久大容量存储器225通信。现参考图2,流程图描述了选择应用程序执行方法所采取的步骤的一个实施例。总的来说,接收与客户机或与客户机的用户相关联的证书以及列举可用于客户机执行的应用的请求(步骤202)。响应于接收到的证书,提供对客户机可用的多个应用程序的列举(步骤204)。接收执行所列举的应用的请求(步骤206)。响应于策略,选择执行所列举的应用的预定数量的方法之一,预定数量的方法包括用于所列举的应用的应用流式传输的方法 (步骤208)。接收与客户机或与客户机的用户相关联的证书以及列举可用于客户机执行的应用的请求(步骤20幻。在一个实施例中,服务器从客户机102接收列举可用应用的请求以及证书。在又一个实施例中,在服务器106上的XML服务接收该请求和该证书,并且该请求和证书传输到服务器106上的管理服务。在一些实施例中,作为web服务器运行的服务器106接收来自客户机102的通信并将该通信转发到服务器106’。在这些实施例的一个中,web服务器将该通信转发到服务器106’上的XML服务。在这些实施例的又一个中,web服务器驻留在客户机上。在由web 服务器将来自客户机102的通信路由到服务器106’的其他的实施例中,响应客户机102的互联网协议(IP)地址选择服务器106。在一些实施例中,客户机102请求对驻留在服务器106上的应用的访问。在这些实施例的一个中,客户机102请求由服务器106执行驻留在服务器106上的应用。在这些实施例的又一个中,客户机102请求检索包括该应用的多个应用文件。在一些实施例中,用户通过由服务器106提供给客户机102的图形用户接口向服务器106提供证书。在其他实施例中,具有web服务器功能的服务器106”’给客户机102提供图形用户接口。在其他实施例中,由服务器106传输到客户机102的收集代理从客户机 102收集证书。在一个实施例中,证书指用户名和密码。在又一个实施例中,证书不限于用户名和密码,但包括而不限于客户机102的机器ID、操作系统类型、操作系统补丁的存在、 所安装网卡的MAC地址、在客户机装置上的数字水印、在活动目录中的成员、病毒扫描器的存在、个人防火墙的存在、HTTP头部、浏览器类型、装置类型、例如互联网协议地址或者地址的范围的网络连接信息、服务器106的机器ID、包括用于改变时区的调整的访问请求的日期或时间,以及授权证书。在一些实施例中,与客户机相关联的证书与客户机的用户相关联。在这些实施例的一个中,证书是用户拥有的信息。在这些实施例的又一个中,证书是用户认证信息。在其他实施例中,与客户机相关联的证书与网络相关联。在这些实施例的一个中,证书是与客户机可连接到的网络相关联的信息。在这些实施例的另一个中,证书是与收集关于客户机的信息的网络相关联的信息。在其他实施例中,与客户机相关联的证书是客户机的特征。响应于所接收的证书,提供对客户机可用的多个应用程序的列举(步骤204)。在一个实施例中,客户机102的用户可以在不知道何处去寻找这样的应用和没有链接到这样的应用的所需要的技术信息的情况下,了解由网络104中的服务器106所寄载的应用程序的可用性。这些可用的应用程序可以包括用户的“程序邻近”。用于确定用于客户机的程序邻近的系统可包括应用程序(以下称为“程序邻近”应用)、用于存储应用程序的组件的存储器、以及用于执行应用程序的处理器。如下文所述,可在客户机102的存储器中和/或在服务器106上安装该程序邻近(PN)应用。根据程序邻近应用操作的服务器106从在群38中的每个服务器106中收集应用相关的信息。对于每个所寄载的应用的应用相关的信息可以是多种信息,其包括,例如,寄载该应用的服务器的地址、应用名称、授权使用该应用的用户或用户组、以及在建立连接以运行该应用之前客户机102需要的最小能力。例如,该应用可流式传输视频数据,因此需要的最小能力可能是客户机支持视频数据。其他示例要求客户机支持音频数据或有能力处理加密的数据。可将应用相关信息存储在数据库中。当客户机102连接到网络104时,客户机102的用户提供用户证书。用户证书可包括客户机102的用户的用户名、用户密码、以及用户被授权的域名。可选地,可以从智能卡、基于时间的令牌、社会保险号、用户密码、个人身份证(PIN)号码、基于对称键值或椭圆曲线加密的数字证书、用户的生物学特征,或者可用于获得并提交客户机102的用户身份用于验证的任何其他方式来获得用户证书。响应于客户机102的服务器106可基于用户证书来对用户进行认证。可将用户证书存储于程序邻近应用执行的任何地方。对于客户机 102执行程序邻近应用的实施例,可将用户证书存储于客户机102。对于服务器106执行程序邻近的实施例,可将用户证书存储于服务器106。服务器106也可从用户证书和应用相关的信息确定服务器106所寄载的哪些应用程序可被客户机102的用户使用。服务器106将表示可用应用程序的信息传输到客户机 102。该过程消除了客户机102的用户建立应用连接的需要。此外,服务器106的管理员可在客户机102的多个用户之间控制对应用的访问。在一些实施例中,由服务器106执行的用户认证足可以授权呈现给客户机102的每个所寄载的应用程序的用户,尽管这样的应用程序可驻留在另一服务器106’上。因此, 当客户机102启动(例如初始化执行)所寄载的应用之一时,由客户机102额外地输入用户证书来对该应用的使用进行认证是没有必要的。因此,用户证书的单次输入可服务于确定可用的应用,以及在没有用户其他的手动登录认证过程的情况下授权启动这样的应用。客户机102或者服务器106可启动程序邻近应用。可在客户机102的显示屏上显示该结果。在基于图形窗口的实现中,可在程序邻近图形窗口中显示该结果,并且通过该窗口中的图标表示每个授权的应用程序。在一个实施例中,程序邻近应用过滤掉客户机102没有被授权执行的应用程序, 并只显示授权的(即可用的)程序。在其他实施例中,程序邻近应用可显示授权的和未授权的应用。当没有从显示中过滤掉未授权的应用时,可提供指示这样应用程序是不可用的通知。可选地,在没有标识哪些应用被授权或未被授权给客户机102执行的情况下,程序邻近应用可以向客户机102的用户报告由服务器106所寄载的所有应用。可在随后当客户机 102试图运行这些应用之一时确定授权。客户机102从服务器106请求应用列举。应用列举可使客户机102的用户查看每个发布的应用的名称。在一个实施例中,无论用户是否有权执行该应用,客户机102的用户可查看该应用的名称。在又一个实施例中,用户只查看该用户被授权执行的那些应用的名称。对于应用列举的请求传递到ICA浏览器子系统沈0、程序邻近子系统270、或者到公共应用子系统524,这取决于由客户机102正运行的特定过程。例如,当客户机102运行程序邻近应用时,对于应用列举的请求被发送到服务器106上的程序邻近子系统270。当客户机102通过网页提交列举请求时,该请求传递到公共访问点子系统524。对于这些实施例,当客户机102想要列举应用时,公共应用子系统5M作为用于程序邻近子系统270、ICA 浏览器子系统260、以及公共应用子系统的初始访问点。在一些实施例中,当客户机102通过网页提交列举请求时,寄载web服务器的中间服务器106接收该请求并向服务器106’转发该请求。一旦接收到列举请求,公共应用子系统5M在持久存储器230中查询所有应用的列表。对于从程序邻近子系统270和公共访问点(未示出)子系统接收到的请求,根据客户机102的用户的证书对该应用列表进行过滤(即,用户只能查看那些授权给用户的应用)。客户机102也可请求服务器列举。服务器列举使客户机102的用户能查看群38 中的服务器的列表。在一个实施例中,可根据服务器的类型来过滤服务器的列表,如由在该服务器上的专门的服务器子系统确定。对于服务器列举的请求传递到ICA浏览器子系统260或者公共访问点子系统(未示出),这取决于客户机120正在运行的特定过程。例如,当客户机120通过网页提交服务器列举请求时,该请求传递到公共访问点子系统(未示出)。对于这些实施例,公共服务器子系统300用作用于ICA浏览器子系统260和公共访问点(未示出)子系统的初始访问点。一旦接收到服务器列举请求,公共服务器子系统向持久存储器230查询所有服务器列表。可选地,根据服务器类型来过滤服务器列表。图3A描述了客户机102通过其初始化程序邻近应用的执行的过程的又一个实施例的框图,在该示例中是通过万维网。客户机102执行web浏览器应用80,例如由位于加利福尼亚州的Mountain View的Netscape Communication有限公司制造的NETSCAPE NAVIGATOR,或者由位于华盛顿州的Redmond的Microsoft公司制造的MICROSOFT INTERNET EXPLORER,或者由位于加利福尼亚州的Mountain View的Mozilla基金会制造的FIREF0X, 或者由Norway, Oslo的Opera Software ASA制造的OPERA,或者由加里福尼亚州的 Cupertino 的 Apple Computer 有限公司制造的 SAFARI。客户机102通过web浏览器80传输访问对应于驻留在服务器106上的HTML页面的统一资源定位符(URL)的请求82。在一些实施例中,由服务器106向客户机102返回的第一 HTML页面84为寻求识别客户机102的认证页面。仍参考图3A,一旦客户机102经服务器106认证,响应另一请求86,该服务器106 准备并向客户机102传送HTML页面88,所述页面88包括程序邻近窗口 58,其中显示表示客户机102访问的应用程序的图标57。客户机102的用户通过点击图标57引起图标57所表示的应用的执行。在一些实施例中,服务器106代表客户机102的用户执行程序邻近应用。在这些实施例的一个中,服务器106是位于客户机102和服务器106’之间的中间服务器。参看图:3B,其描述通过在web服务目录中发布GUI来提供对客户机可用的多个应用程序的所采取的步骤的一个实施例的流程图。web发布工具173接收用于发布的应用(例如GUI应用)的web服务描述和访问信息(步骤300)。在一个实施例中,web服务描述包括上文所述的服务信息(例如,提供web服务的商家的名称、服务类型、服务的文本描述、以及SAP)。访问信息可包括,例如,发布的应用名称、传输控制协议(TCP)浏览服务器群地址、 以及MetaFrame服务器IP地址。在一些实施例中,访问信息指定使用的地址和用于穿过网络或安全网关或桥装置的标签。
web发布工具173接着构造服务发布请求以请求该web服务(S卩,⑶I应用)的发布(步骤30 。在一个实施例中,服务发布请求包括SAP。在一些实施例中,SAP是包括 web服务器106’的网络地址和发布服务器插件165的URL。进一步的,网络地址可为统一资源标识符(URI),其是用于指向web上的对象的地址和名称的类型的通用术语。URL是一种URI。URI的一个示例是web服务器106’的名称(例如,“web服务器”)以及用于发布服务器插件165的CGI脚本名称(例如“dynamic-component” ( “动态组件”))。web发布工具173将与SAP相关联的SAP条目存储在持久大容量存储器225 中(步骤310)。在一些实施例中,web发布工具173也将所发布的应用信息(例如, ICA-published-app-info)与⑶I应用相关联。在进一步的实施例中,web发布工具173还在服务发布请求中包括标识内容服务器106在持久大容量存储器225中存储的SAP条目的键。例如,该键的值可以是“123456677”。"http//web-server/dynamic-component/ ? app = 123456677"是识别web服务器106,、发布服务器插件165的CGI脚本名称,以及上文所述的键的SAP的示例。与上述的SAP相关联的SAP条目的示例是“key = 123456677, value = ICA-published-app-info”。该键可以是任意长度(例如,56位键,1 位键)。在一个实施例中,该键是加密的随机数字。该键也为键持有者提供访问权限。尽管以键的方式进行了说明,但可使用任何方式为存储在持久大容量存储器225中的SAP条目提供安全形式。web发布工具173向内容服务器106提供用于在web服务目录160中发布的服务发布请求(步骤31 。而且,在一个实施例中,内容服务器106向客户机102传输请求随后用于定位SAP条目的特定网络服务的SAP的键。在一个实施例中,服务发布请求的发布使客户机102的用户能访问该服务。在一个实施例中,可使用位于佛罗里达州的R)rt Lauderdale 的Citrix System有限公司开发的NFUSE在web服务目录160上发布⑶I应用。在一些实施例中,GUI应用的发布者使用应用启动和嵌入(ALE)定制web服务目录160上的GUI应用的发布,ALE也是由Citrix System有限公司开发的。ALE使得能从HTML页面启动⑶I 应用或者将该应用嵌入HTML页面中。客户机102接着从web服务目录160查询服务名称(步骤320)。内容服务器106 从客户机102接收该查询(32 并在web服务目录160中寻找所请求的服务名称。在又一个实施例中,客户机102的用户导航web服务目录160,直到定位到客户机102的用户试图去寻找的特定的服务名称。虽然以客户机102进行说明,但是任何web服务目录客户机(例如,UDDI客户机或者LDAP浏览器)可查询或导航该web服务目录160以发现所发布的web 服务。一旦定位与所接收的查询相关联的SAP,内容服务器106向客户机102传输该 SAP (步骤330)。客户机102接收该SAP (步骤33 并确定来自于该SAP的发布服务器插件165的地址。客户机102随后向web服务器106,传输对⑶I应用的请求(步骤340)。 在一些实施例中,来自于客户机102的请求是从web浏览器11传输到web服务器106’的 HTTP请求。在其他实施例中,在客户机102上执行的应用(例如,通用目录浏览器或HTML UI)从内容服务器106接收SAP并将该SAP作为参数提供给web浏览器11。web浏览器11 接着可以向web服务器106’自动传输HTTP请求(对于GUI应用)。沿着前述示例的思路, http //web-server/dynamic-component/ ? app = 123456677 是对 web 月艮务器 106,的应2用请求的具体示例。web服务器106’,和更具体地,发布服务器插件165,接收与SAP相关联的应用请求(步骤34 ,并确定与该请求相关联的SAP条目(步骤350)。在一个实施例中,发布服务器插件165从客户机102接收请求,并且检索与该请求关联的、与已被(作为SAP条目的一部分)存储在持久大容量存储器225中的所发布的应用信息。在一些实施例中,发布服务器插件165使用客户机102从内容服务器106接收的SAP(或SAP的一部分)作为访问在持久大容量存储器225中存储的适当服务条目(例如,所发布的应用信息)的键。发布服务器插件165接着构造具有所发布的应用信息(例如,应用服务器106”的 HTTP地址)的文件或文档,并将该文档传输到客户机102 (步骤35 。该发布服务器插件 165构造文件以便该文件的格式与应用客户端13兼容。在一个实施例中,该文档是多用途的互联网邮件扩展协议(MIME)或安全MIME (S/MIME)文档。在又一个实施例中,该文档是包含ICA web客户端嵌入式对象HTML标签的HTML文档。在又一个实施例中,该文档是包含应用流客户端嵌入式对象HTML标签的HTML文档。web浏览器11随后接收文档并试着打开该文档。在一个实施例中,如果没有在客户机102上安装应用客户端13,则客户机102与应用服务器106”通信以下载并安装应用客户端13。一旦安装了应用客户端13或者可选地,如果已经在客户机102上安装了应用客户端13,那么客户机102启动该应用客户端13以查看从web服务器106’接收的文档(步骤 360)。一旦在客户机102上安装并执行应用客户端13,应用服务器106”接着执行应用并在应用客户端13上显示该应用(步骤36幻。如以下结合图7进一步详细描述的,在一个可选的实施例中,该应用服务器106”传输包括该应用的多个应用文件到应用客户端13,以在客户机102上执行。在又一个实施例中,客户机102查看该文档(甚至在启动应用客户端13之前)并使用该文档中的信息来从应用服务器106”获得GUI应用。在该实施例中, GUI应用的显示包括应用客户端106”的安装和执行。此外,查看该文档可以是对客户机102 的用户透明的。例如,客户机102可从web服务器106’接收文档,并在自动从应用服务器 106”请求GUI应用之前解释该文档。因此,应用客户端13提供对所发布的应用、桌面、桌面文档、以及应用客户端13所支持的任何其他应用的基于服务的访问。应用客户端13可提供访问的应用的示例包括,但不限于,WINDOWS 桌面、诸如 MICROSOFT EXCEL、WORD 以及 POWERPOINT 的 WINDOW 文档,(其所有都是由华盛顿州Redmond的Microsoft Corporation开发的),Unix桌面(例如由加利福尼亚州Palo Alto的Sun Microsystems开发SUN SOLARIS和由北卡罗来纳州Durham 的Red Hat有限公司发布的GNU/Linux),以及其他。在一些实施例中,响应于策略引擎确定客户机是否可以和如何访问应用,提供对客户机102可用的多个应用程序的列举(步骤204)。该策略引擎可在作出确定之前收集关于客户机的信息。现在看图4A,描述了计算机网络的一个实施例,其包括客户机102、收集代理404、策略引擎406、策略数据库408、群38、以及应用服务器106,。在一个实施例中,策略引擎406是服务器106。虽然在图4A所示的实施例中描述了只有一个客户机102、收集代理404、策略引擎406、群38、以及应用服务器106’,应理解该系统可提供这些组件的每个或任意的多个。
总的来看,当客户机102向策略引擎406传输访问应用的请求410时,收集代理 404与客户机102通信,检索关于客户机102的信息,并向策略引擎406传输客户机信息 412。该策略引擎406通过向接收到的信息412应用来自于策略数据库408的策略来作出访问控制决策。更详细的,客户机102向策略引擎406传输对资源的请求410。在一个实施例中, 策略引擎406驻留在应用服务器106’上。在又一个实施例中,该策略引擎406是服务器 106。在又一个实施例中,应用服务器106’从客户机102接收请求410,并将该请求410传输到策略引擎406。在又一个实施例中,客户机向服务器106”’传输对资源的请求410,该服务器106”,将该请求410传输到策略引擎406。在一些实施例中,客户机102通过网络连接传输请求410。该网络可以是局域网 (LAN)、城域网(MAN)或诸如互联网的广域网(WAN)。客户机102和策略引擎406可以通过各种连接连接到网络,所述连接包括标准电话线、LAN或WAN链接(例如,Τ1、Τ3、561Λ、Χ. 25)、 宽带连接(ISDN、帧中继、ATM)、无线连接。在客户机102和策略引擎10之间的连接可使用各种数据链路层通信协议(TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、以太网、ARCNET、光纤分布式数据接口(FDDI)、RS232、IEEE802. 11、IEEE802. 11a、IEEE802. lib、IEEE802. Ilg 和直接异步连接)。该连接也可以是如上文所述的通信链路150。一旦接收到该请求,策略引擎406通过收集代理404启动信息收集。收集代理404 收集关于客户机102的信息,并向策略引擎406传输信息412。在一些实施例中,收集代理404收集并通过网络连接传输信息412。在一些实施例中,收集代理404包括字节码,例如以字节码编程语言JAVA写的应用。在一些实施例中, 收集代理404包括至少一个脚本。在那些实施例中,收集代理404通过在客户机102上运行至少一个脚本来收集信息。在一些实施例中,收集代理包括客户机102上的Active X控件。Active X控件是专门的组件对象模型(COM)对象,其实现为一组接口使得其看起来像控件并且类似控件工作。在一个实施例中,策略引擎406向客户机102传输收集代理404。在一个实施例中,策略引擎406在收集代理404向策略引擎406传输信息412后要求第二次执行收集代理404。在该实施例中,策略引擎406可能没有足够的信息412来确定客户机102是否满足特定条件。在其他实施例中,策略引擎406响应于接收到的信息412要求多次执行收集代理 404。在一些实施例中,策略引擎406向收集代理404传输确定收集代理404收集的信息的类型的指令。在那些实施例中,系统管理员可以配置从策略引擎406传输到收集代理 404的指令。这提供了对所收集的信息的类型的更强的控制。由于对所收集的信息的类型的更强的控制,也扩展了策略引擎406可做出的访问控制决策的类型。收集代理404收集信息412,所述信息412包括但不限于,客户机102的机器ID、操作系统类型、操作系统补丁的存在、安装的网卡的MAC地址、客户端装置上的数字水印、在活动目录中的成员、病毒扫描器的存在、个人防火墙的存在、HTTP头部、浏览器类型、装置类型、例如互联网协议地址或者地址的范围的网络连接信息、服务器106的机器ID,包括用于改变时区的调整的访问请求的日期或时间、以及授权证书。在一些实施例中,装置类型是个人数字助理。在其他实施例中,装置类型是蜂窝电话。在其他实施例中,装置类型是膝上型电脑。在其他实施例中,装置类型是台式计算机。 在其他实施例中,装置类型是上网亭(Internet Kiosk)。在一些实施例中,数字水印包括数据嵌入。在一些实施例中,水印包括插入到文件中提供关于该文件的源信息的数据模式。在其他实施例中,水印包括数据散列文件以提供篡改检测。在其他实施例中,水印提供关于文件的版权信息。在一些实施例中,网络连接信息涉及带宽能力。在其他实施例中,网络连接信息涉及互联网协议地址。在其他实施例中,网络连接信息包括互联网协议地址。在一个实施例中,网络连接信息包括识别登录代理的网络时区,客户机向该登录代理提供验证证书。在一些实施例中,授权证书包括多种类型的认证信息,包括但不限于,用户名、客户机名、客户机地址、密码、PIN、声音样本、一次性密码、生物特征数据、数字证书、标签等、 以及上述的组合。在接收到所收集的信息412后,策略引擎406基于接收到的信息412作出访问控制决策。现在看图4B,框图描述了策略引擎406的一个实施例,包括第一组件420和第二组件430,所述第一组件420组件包括条件数据库422和登录代理424,所述第二组件430包括策略数据库432。第一组件420将来自于条件数据库422的条件应用到所接收的关于客户机102的信息,并且确定所接收的信息是否满足该条件。在一些实施例中,条件可能要求客户机102执行特定的操作系统以满足该条件。 在其他实施例中,条件可以要求客户机102执行特定的操作系统补丁以满足该条件。在其他实施例中,条件可以要求客户机102提供每个安装的网卡的MAC地址以满足该条件。在一些实施例中,条件可以要求客户机102指出在特定的活动目录中的成员以满足该条件。在又一个实施例中,条件可以要求客户机102执行病毒扫描器以满足该条件。在其他实施例中,条件可以要求客户机102执行个人防火墙以满足该条件。在一些实施例中,条件可以要求客户机102包括特定的装置类型以满足该条件。在其他实施例中,条件可以要求客户机 102建立特定类型的网络连接以满足该条件。如果所接收的信息满足条件,第一组件420将该条件的标识符存储在数据集426 中。在一个实施例中,如果所接收的信息使条件为真,则该信息满足该条件。例如,条件可以要求安装特定的操作系统。如果客户机102有该操作系统,则该条件为真并且被满足。在又一个实施例中,如果所接收的信息使条件为假,则该信息满足该条件。例如,条件可以针对恶意软件是否存在于客户机102上。如果客户机102不包括恶意软件,则条件为假并且被满足。在一些实施例中,登录代理似4驻留在策略引擎406之外。在其他实施例中,登录代理似4驻留在策略引擎406上。在一个实施例中,第一组件420包括登录代理424,该代理发起关于客户机102的信息的收集。在一些实施例中,登录代理似4进一步包括数据存储。在这些实施例中,数据存储包括收集代理可为其收集信息的条件。该数据存储与条件数据库422明显不同。在一些实施例中,登录代理似4通过执行收集代理404发起信息收集。在其他实施例中,登录代理似4通过向客户机102传输用于客户机102上的执行的收集代理404来发起信息收集。仍在其他实施例中,登录代理似4在接收信息412后发起额外的信息收集。 在一个实施例中,登录代理似4也接收信息412。在该实施例中,登录代理似4基于所接收的信息412生成数据集426。在一些实施例中,登录代理似4通过将来自数据库422的条件应用到从收集代理404接收的信息而生成数据集426。在又一个实施例中,第一组件420包括多个登录代理424。在该实施例中,多个登录代理424中的至少一个驻留在每个网络域,从这些网络域,客户机102可传输资源请求。 在该实施例中,客户机102向特定的登录代理似4传输资源请求。在一些实施例中,登录代理似4通过网络域传输到策略引擎406,客户机102从该网络域访问登录代理424。在一个实施例中,客户机102从其访问登录代理424的网络域被称为客户机102的网络区域。条件数据库422存储第一组件420将应用于所接收的信息的条件。策略数据库 432存储第二组件430将应用于所接收的数据集426的策略。在一些实施例中,条件数据库422和策略数据库432将数据存储在ODBC兼容的数据库中。例如,条件数据库422和策略数据库432可作为ORACLE数据库而被提供,该数据库由加利福尼亚州Redwood Shore s 的Oracle公司制造。在其他实施例中,条件数据库422和策略数据库432可为Microsoft ACCESS数据库或Microsoft SQL服务器数据库,上述产品由华盛顿州Redmond的Microsoft 公司制造。在第一组件420将所接收的信息应用到条件数据库422中的每个条件之后,第一组件向第二组件430传输数据集426。在一个实施例中,第一组件420仅仅向第二组件430 传输数据集426。因此,在该实施例中,第二组件430不接收客户机信息412,仅仅接收所满足的条件的标识符。第二组件430接收数据集426,并基于在数据集426中所识别的条件, 通过应用来自策略数据库432的策略做出访问控制决策。在一个实施例中,策略数据库432存储应用于所接收的信息412的策略。在一个实施例中,通过系统管理员至少部分的指定存储在策略数据库432中的策略。在又一个实施例中,用户指定在策略数据库432中存储的至少一些策略。将用户指定的一个策略或多个策略存储为优选项。策略数据库432可存储于易失性或非易性存储器中,或者例如分布在多个服务器上。在一个实施例中,只有在一个或多个条件被满足时,策略才允许对资源的访问。在又一个实施例中,策略允许对资源的访问但严禁向客户机102传输资源。另一个策略可能在请求在安全网络内访问的客户机102上做出临时连接。在一些实施例中,资源为应用程序并且客户机102已请求执行该应用程序。在这些实施例的一个中,策略允许在客户机102 上执行应用程序。在这些实施例的又一个中,策略可使客户机102能接收包括该应用程序的文件流。在该实施例中,可在隔离环境中存储和执行该文件流。在这些实施例的又一个中,策略可以仅仅允许在服务器(例如应用服务器)上执行该应用程序,并要求该服务器将应用输出数据传输到客户机102。现参考图4C,流程图描述了由策略引擎406基于所接收的关于客户机102的信息作出访问控制决策而采取的步骤的一个实施例。一旦接收到所收集的关于客户机102的信息(步骤450),策略引擎406基于该信息生成数据集(步骤45 。该数据集似6包含每个被所接收的信息412满足的条件的标识符。该策略引擎406将策略应用于数据集426内的每个所识别的条件。该应用产生客户机102可访问的资源的列举(步骤454)。策略引擎 406接着将该列举呈现给客户机102。在一些实施例中,策略引擎406创建超文本标记语言 (HTML)文档,用于将所述列举呈现给客户机。
现参考图4D,更详细地描述了所构造的网络的一个实施例,其包括客户机102、收集代理404、策略引擎406、策略数据库408、条件数据库409、客户机102、102,、会话服务器 420、所存储的应用数据库422、第一服务器106,、第一数据库428、第二服务器106”、以及第二数据库432。概括地说,当客户机102向访问控制服务器406或策略引擎传输访问应用程序的请求410时,收集代理404与客户机102通信,检索关于客户机102的信息,并向策略引擎406传输客户机信息412。如上文在图4A和4B中讨论的,策略引擎406作出访问控制决策,而客户机102接收与客户机102相关联的可用的应用的列举。在一些实施例中,会话服务器420在客户机102和与客户机102相关联的多个应用会话间建立连接。在其他实施例中,策略引擎406确定客户机102有权检索包含该应用的多个应用文件,以及有权在本地执行该应用程序。在这些实施例的一个中,服务器106’ 存储应用会话数据以及包括该应用程序的多个应用文件。在这些实施例的又一个中,客户机102与服务器106’建立应用流会话,该服务器106’存储应用会话数据和包含该应用程序的多个应用文件。现在看图4E,流程图描述了会话服务器420为客户机102提供对其相关的应用会话的访问而采取的步骤的一个实施例。该会话服务器420从策略引擎406接收关于客户机 102的、包括策略引擎406作出的访问控制决策的信息(步骤480)。会话服务器420生成关联的应用的列举(步骤48 。会话服务器420可将客户机102连接到关联的应用(步骤 484)。在一个实施例中,该信息也可包括客户机信息412。在又一个实施例中,该信息包括在本地执行应用程序的授权。会话服务器420生成关联的应用的列举(步骤48幻。在一些实施例中,策略引擎 406识别已经与客户机102相关联的多个应用会话。在又一个实施例中,会话服务器420识别所存储的与客户机102相关联的应用会话。在这些实施例的一些中,一旦从策略引擎406 接收到该信息,会话服务器420自动识别所存储的应用会话。在一个实施例中,所存储的应用数据库422驻留在会话服务器420上。在又一个实施例中,所存储的应用数据库422驻留在策略引擎406上。所存储的应用数据库422包含与群38中的多个服务器相关联的数据,所述服务器执行应用会话或提供对应用会话数据和包含该应用程序的应用文件的访问。在一些实施例中,识别与客户机102相关联的应用会话要求查询所存储的与一个或多个服务器相关联的数据。在这些实施例的一些中,会话存储器420查询所存储的与一个或多个服务器相关联的数据。在这些实施例的其他一些实施例中,策略引擎406查询所存储的与一个或多个服务器相关联的数据。在一些实施例中,第一应用会话在第一服务器106’上运行,并且第二应用会话在第二服务器106”上运行。在其他实施例中,所有的应用会话在群38中的单个服务器106上运行。会话服务器420包括与由用户启动的应用会话相关的信息。该会话服务器可存储于易失性或非易失性存储器中,或者例如,分布在多个服务器上。表1示出包括在示例的会话服务器420的一部分中的数据
权利要求
1.一种用于将应用启动到现有的隔离环境中的方法,所述方法包括由在计算机器上执行的运行模块接收在该计算机器上执行应用的请求,所述请求是由客户机的用户生成的;由运行模块识别与所述应用关联的简档;由运行模块查询在该计算机器上执行的应用传送服务以识别对应于所述简档的至少一个隔离环境;由运行模块接收来自该应用传送服务的响应,所述响应识别与所述应用关联的第一隔离环境;以及由运行模块向在该计算机器上执行的启动模块发出将所述应用启动到该第一隔离环境中的命令。
2.根据权利要求1所述的方法,其中接收来自该应用传送服务的识别该第一隔离环境的响应还包括接收与该第一隔离环境关联的标识符。
3.根据权利要求2所述的方法,其中接收标识符还包括接收该第一隔离环境的名称。
4.根据权利要求2所述的方法,还包括由运行模块响应于收到该第一隔离环境标识符来向运行时对象表查询该第一隔离环境的地址,其中该运行模块使用该第一隔离环境标识符来查询该运行时对象表。
5.根据权利要求1所述的方法,还包括由该第一隔离环境公开用于与在该计算机器上执行的组件通信的通信接口,所述通信接口是由进程间机制生成的。
6.根据权利要求5所述的方法,其中启动还包括向所述通信接口传输所述应用的位置。
7.根据权利要求1所述的方法,其中识别第一隔离环境还包括识别与该第一隔离环境关联的地址。
8.根据权利要求7所述的方法,其中识别地址还包括识别包含与该第一隔离环境关联的简档版本的第一隔离环境地址。
9.根据权利要求7所述的方法,其中识别地址还包括识别包含与该第一隔离环境关联的用户会话标识符的第一隔离环境地址。
10.根据权利要求1所述的方法,还包括 未能识别对应于所述简档的隔离环境;响应于未能识别隔离环境,由运行模块以暂停模式启动启动模块; 由运行模块向该应用传送服务发出隔离所述启动模块的命令; 由运行模块将应用信息发送到所述启动模块;以及由运行模块向所述启动模块发出继续执行的命令。
11.一种用于将应用启动到现有的隔离环境中的系统,所述系统包括与客户机通信的计算机器,所述客户机生成在该计算机器上执行应用的请求,所述应用与简档相关联;在该计算机器上执行的应用传送服务; 在该计算机器上执行的启动模块;和在该计算机器上执行的运行模块,所述运行模块用于接收客户机请求,查询应用传送服务以识别对应于所述简档的至少一个隔离环境, 从应用传送服务接收识别与所述应用关联的第一隔离环境的响应,以及向启动模块发出将所述应用启动到该第一隔离环境中的命令。
12.根据权利要求11所述的系统,其中应用传送服务向运行模块传输与该第一隔离环境关联的标识符。
13.根据权利要求12所述的系统,其中所述标识符包括该第一隔离环境的名称。
14.根据权利要求12所述的系统,还包括运行时对象表,其用该第一隔离环境的地址对由运行模块生成的包括该第一隔离环境标识符的查询进行响应。
15.根据权利要求11所述的系统,其中第一隔离环境还包括用于与在该计算机器上执行的组件通信的通信接口,所述通信接口是由进程间机制生成的。
16.根据权利要求15所述的系统,其中运行模块向所述通信接口传输所述应用的位置。
17.根据权利要求11所述的系统,其中应用传送服务识别与该第一隔离环境关联的地址。
18.根据权利要求17所述的系统,其中该第一隔离环境地址还包括简档版本号。
19.根据权利要求17所述的系统,其中该第一隔离环境地址还包括用户会话标识符。
全文摘要
可以将应用启动到现有的隔离环境中的系统和方法通过在计算机器上执行运行模块来拦截执行应用的请求来这样做。与计算机器通信的客户机生成在该计算机器上执行应用的请求。运行模块识别与所请求的应用关联的简档并查询应用传送服务以识别对应于该简档的至少一个隔离环境。运行模块从应用传送服务接收识别与所述应用关联的第一隔离环境的响应,以及向启动模块发出将应用启动到第一隔离环境中的命令。
文档编号G06F21/00GK102460389SQ201080029718
公开日2012年5月16日 申请日期2010年4月9日 优先权日2009年5月2日
发明者M·钦塔, S·拉兹 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1