首页> 中国专利> 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备

用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备

摘要

本发明涉及用于提供来自代理服务器的修改的URL到试图访问远程资源的虚拟计算环境的系统。修改的URL可以包括信息,用于允许接收对URL的请求的代理服务器产生对于远程资源的请求,其中,所述请求包括访问所述资源必须的任一状态信息。在发送所述请求之后,代理服务器可以接受所请求的资源,并且发送所述资源到所述应用。

著录项

  • 公开/公告号CN101495990A

    专利类型发明专利

  • 公开/公告日2009-07-29

    原文格式PDF

  • 申请/专利权人 思杰系统有限公司;

    申请/专利号CN200680052217.0

  • 发明设计人 J·戴;R·瓦地斯;

    申请日2006-12-01

  • 分类号G06F15/16;G06F15/173;

  • 代理机构北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 美国佛罗里达

  • 入库时间 2023-12-17 22:23:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-09-14

    授权

    授权

  • 2009-09-23

    实质审查的生效

    实质审查的生效

  • 2009-07-29

    公开

    公开

说明书

相关申请

【0001】本申请要求2005年12月2日提出的名称为“用于跨应用环境提供身份验证证明的方法和系统”的序列号为60/741,661的美国临时专利申请的优先权。

技术领域

【0002】本发明涉及通过在线网页代理(web proxy)访问网络上的远程资源,更具体地,本发明涉及对由虚拟计算环境通过代理服务器所请求的资源提供访问。

背景技术

【0003】在一些环境中,对于网络资源的请求必须伴随着指示请求者能使用所述资源的状态信息。例如,服务器可以要求身份验证cookie(点心文件)存在于对给定文档的请求中。此状态信息典型地由web浏览器管理。

【0004】但是,可以存在多种情况,其中,用户使用web页面导航资源,并且随后选择要求一个应用而不是所看到的web浏览器的资源。在一些例子中,web浏览器和其它应用可以是虚拟计算环境的一部分。例如,用户可以导航web站点并且点击到电子表格的链接,导致浏览器为了查看该显示而启动一个远程宿主的电子表格应用。当为了载入外部的基于HTTP的资源而调用服务器宿主的应用时,该应用可以被要求包括对所允许请求的状态信息。一些系统可能缺少用于将必要的会话状态数据插入到上行数据流请求的机制。例如,在一些系统中,通过包括连接信息而缺少必要会话状态数据的文件,直接提供所述应用和外部的基于HTTP资源之间的链接。

【0005】缺少必要的会话状态数据的一个结果可能是将会话失败消息或者错误对话框显示给系统的用户。宿主在应用服务器上的应用支持HTML(诸如WORD、EXCEL或者POWERPOINT的应用)呈现的例子中的另一个结果可以是在应用中呈现为错误页面,使得呈现的错误页面仿佛为被请求的资源。这可能导致给用户带来混淆。

【0006】因此,需要一种在保存请求所必须的状态信息时,允许在启动的应用中访问远程资源的系统和方法。

发明内容

【0007】本发明涉及用于提供来自代理服务器的修改的URL到试图访问远程资源的应用的系统。修改的URL可以包括信息,该信息用于允许接收对URL的请求的代理服务器产生对远程资源的请求,其中,所述请求包括访问所述资源必须的任一状态信息。提供具有指向此状态信息的URL的所述应用可以许可无缝访问受保护的资源,而无需系统的用户输入证明或者被提示出错。

【0008】在一个方面中,本发明提出一种用于通过代理服务器由虚拟计算环境提供对所请求资源的访问的方法,其中,所述资源位于虚拟计算环境的服务器系统的外部。在一个实施例中,所述方法包括:接收来自客户端的标识外部资源的请求;发送对于相应于所述外部资源的信息的第一请求;接收对所述第一请求的第一响应,所述第一响应包括状态信息;发送给所述客户端包括标识所述代理和所述外部资源的URL的文件;从虚拟计算环境接收对于所述URL的请求;发送对于所述外部资源的第二请求,所述请求包括所述状态信息;接收对所述第二请求的第二响应;并且发送相应于所述第二响应的信息给所述虚拟计算环境。

【0009】在第二方面中,本发明提出一种用于通过代理服务器由虚拟计算环境提供对所请求资源的访问的计算机系统,其中,所述资源位于虚拟计算环境的服务器系统的外部。在一个实施例中,所述系统包括:用于接收来自客户端的标识外部资源的请求的装置;用于发送对于相应于所述外部资源的信息的第一请求的装置;用于接收对所述第一请求的第一响应的装置,所述第一响应包括状态信息;用于发送给所述客户端包括标识所述代理和所述外部资源的URL的文件的装置;用于从虚拟计算环境接收对所述URL的请求的装置;用于发送对所述外部资源的第二请求的装置,所述请求包括所述状态信息;用于接收对所述第二请求的第二响应的装置;以及用于发送相应于所述第二响应的信息给所述虚拟计算环境的装置。

附图说明

【0010】通过结合下述附图,参见以下的描述,本发明的前述和其它目的、方面、特征和优点将变得更加明显并且更容易理解。

图1的框图描述用于提供访问计算环境和提供外部资源到客户端的计算机网络的一个实施例;

图2A和2B的框图描述用作客户-服务器网络中的设备的计算或者网络设备的实施例;

图3的框图描述通过应用服务器提供无缝访问外部资源的方法的一个实施例;并且

图4的流程图描述通过应用服务器提供无缝访问外部资源的一个例子。

具体实施方式

【0011】现在参见图1,描述计算机网络的一个实施例。简要概述,客户端113通过网络111A连接到应用服务器107和代理服务器105。代理服务器经网络111B连接到外部服务器109。客户端113、网络111A、网络111B和服务器105可以包括任意计算设备,包括但不限于:个人计算机、笔记本计算机、个人数字助理、蜂窝电话、数字电视、服务器和刀片服务器。

【0012】仍旧参见图1,将在此实施例中更详细地描述客户端113连接网络111A。网络111A和111B(总的为111)可以包括互联网、一个或者多个本地网络、一个或者多个广域网和/或一个或者多个城域网。网络111可以包括任意计算设备,包括web服务器、文件服务器、路由器、数据库、计算机、服务器和网络设备。网络111可以包括通过连接多个计算设备的任一方式(包括有线、红外(IR)端口和无线信号)所连接的的计算设备。网络和连接到网络的任一设备可以通过用于在多个计算设备间或者多个计算设备中通信的任一通信协议进行通信,这些协议包括但不限于:SSL、HTML、XML、RDP、ICA、FTP、HTTP、TCP、IP、UDP、IPX、SPX、NetBIOS、NetBEUI、SMB、SMTP、以太网(Ethernet)、ARCNET、光纤分布式数据接口(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、以及直接异步连接,或者其中任意组合。网络111可以包括采用了用于在移动设备间通信的任一协议或者多个协议的移动电话网络,所述协议包括AMPS、TDMA、CDMA、GSM、GPRS或者UMTS。在一些实施例中,网络111A可以与网络111B物理区分。在其它实施例中,网络111A和111B可以以任一方式和使用任一拓扑被连接在一起。在一些实施例中,网络111A和111B可以包括同一网络。在一些实施例中,应用服务器107或者客户端105也可以连接到网络111B。

【0013】客户端113可以包括任一计算设备。在一些实施例中,客户端可以包括web浏览器。在一些实施例中,客户端113可以包括客户端代理。在这些实施例的其中之一中,客户端代理可以支持独立计算体系结构(ICA)协议,该协议可从佛罗里达州劳德代尔堡的Citrix系统公司获得。在这些实施例的另一个中,客户端代理就是一个ICA客户端。在这些实施例的又一个中,客户端代理支持可从微软公司获得的远程桌面协议(RDP)。在这些实施例的另外一个中,客户端代理就是一个RDP客户端。在其它实施例中,客户端代理为能够经表示层协议通信的代理。

【0014】应用服务器可以包括能够向客户端提供计算环境访问入口的任一计算设备。例如,在一个实施例中,应用服务器107可以发送应用到客户端113。在另一实施例中,应用服务器107可以传输应用文件,由客户端113下载并执行。在又一个实施例中,应用服务器可以本地执行应用并且传送输出到客户端113。在一些实施例中,应用服务器107可以与代理服务器105物理区分。在其它实施例中,应用服务器107可以与代理服务器105共享任一硬件或软件。

【0015】在一些实施例中,应用服务器可以提供对应用的访问,该应用具有经HTTP访问资源的功能。支持经HTTP访问资源的应用的例子包括华盛顿州雷蒙德市的微软公司生产的诸如MS WORD、MS EXCEL、MS POWERPOINT和MS ACCESS的微软OFFICE产品应用。可以被访问的资源的例子包括MS WORD文档、MS EXCEL电子数据表、MS POWERPOINT展示和MS ACCESS应用。在一些实施例中,应用服务器可以提供对具有访问微软EXCHANGE资源的功能的应用的访问。

【0016】代理服务器105可以包括能够提供代理业务给客户端的任一计算设备。在一些实施例中,代理服务器105可以截取来自客户端113对外部资源的请求,并且转发此请求给外部资源。在一些实施例中,代理服务器105可以修改通过代理服务器105的任一请求或者响应。例如,代理服务器可以修改来自客户端的对外部资源的请求,使得所述请求呈现为从代理服务器105发起。或者例如,代理服务器105可以重写从外部资源接收的响应中的链接,使得所述链接指向代理服务器105。

【0017】在一些实施例中,网络应用可以结合任一所示服务器使用,用于提供附加的功能。网络应用提供的附加功能的例子包括但不限于防火墙业务、SSL池(pooling)和加速、TCP池和加速、数据压缩、连接监视、应用日志、应用加速、应用递送、负载平衡、高速缓存、虚拟化、翻译、重定向、连接池、代理业务、逆向代理业务、认证和会话管理。

【0018】外部服务器109可以包括由客户端113通过代理访问的任一服务器。外部服务器可以提供用于传输任一类型资源的功能,所述资源包括而不限于web页面、web应用、文档、电子表格、多媒体和其它文件。外部服务器的例子可以包括由第三方操作的web服务器、文件服务器或者远程数据库。在一些实施例中,外部服务器109可以由第三方操作。在一些实施例中,外部服务器109可以请求客户端113在资源访问之前完成登录过程并且在客户端浏览器上设置的会话cookie。

【0019】图2A和2B的框图描述用作客户端计算设备和服务器计算设备的典型的计算机200。如图2A和2B所示,每一计算机200包括中央处理单元202和主存储单元204。每一计算机200也可以包括其它可选元件,诸如一个或者多个输入/输出设备230a-230b(总的使用标号230)和与中央处理单元202相连的高速缓冲存储器240。

【0020】中央处理单元202为响应和处理从主存储单元204获取的指令的任一逻辑电路。在多个实施例中,中央处理单元由微处理器单元提供,诸如位于加州芒廷维尤(Mountain View)的英特尔公司制造的微处理单元、位于伊利诺斯州的绍姆堡的摩托罗拉公司制造的微处理单元、由位于加州的圣克拉拉的全美达公司制造的Crusoe和Efficeon系列微处理器单元、纽约怀特普莱恩斯(白原)市的IBM制造的处理器系列或者加州桑尼维尔的AMD公司制造的处理器系列。

【0021】主存储单元204可以是能够存储数据并且允许微处理器202直接访问任一存储位置的一个或者多个存储器芯片,诸如静态随机访问存储器(SRAM)、突发式SRAM或者同步突发式SRAM(BSRAM)、动态随机访问存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发式扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAN(SDRAM)、JEDEC SRAM、PC100SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接存储器总线DRAM(DRDRAM)或者铁电RAM(FRAM)。在图2A所示实施例中,处理器202通过系统总线250(以下详述)与主存储器204通信。图2B描述计算系统200的实施例,其中处理器通过存储器端口与主存储器204直接通信。例如,在图2B中,主存储器204可以是DRDRAM。

【0022】图2A和2B描述的实施例中,主处理器202通过次级总线(有时也称为后端总线)和高速缓存存储器240直接通信。在其它实施例中,主处理器202使用系统总线250和高速缓存存储器240通信。高速缓存存储器240典型地具有快于主存储器204的响应时间,并且典型地由SRAM、BSRAM或者EDRAM提供。

【0023】在图2A所示实施例中,处理器202通过本地系统总线250与不同I/O设备230通信。可以用于连接中央处理器单元202到所述I/O设备230的不同总线包括:VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI高速总线(PCI-Expressbus)或者NuBus。对于I/O设备为视频显示器的实施例,处理器202可以使用加速图形接口(AGP)与显示器通信。图2B描述的计算机系统200的实施例中,主处理器202通过超级传输(HyperTransport)、快速I/O或者InfiniBand与I/O设备230b直接通信。图2B还描述了一个实施例,其中本地总线和直接通信相混合:处理器202使用本地互联总线和I/O设备230a通信,同时与I/O设备230b直接通信。

【0024】大量不同的I/O设备130可以存在于计算机系统200中,输入设备包括键盘、鼠标、跟踪板、跟踪球、照相机、摄像机、麦克风和绘画板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机。I/O设备也可以提供用于计算机系统200的大容量存储,诸如硬盘驱动器、用于接收诸如3.5英寸、5.25英寸盘或者ZIP盘之类的软盘的软驱、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、不同格式的磁带驱动器、USB存储设备(诸如由加州洛斯阿拉密托斯市的Twintech公司制造的USB闪烁驱动设备产品线)。

【0025】在其它实施例中,I/O设备230可以是系统总线250与外部通信总线之间的桥接器,外部通信总线诸如USB总线、苹果桌面总线(ADB)、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤通道总线或者串行配属的小型计算机系统接口总线。

【0026】图2A和图2B中描述的通用计算机类型典型地在操作系统的控制下运行,操作系统控制任务调度和对系统资源的访问。典型的操作系统包括:华盛顿州雷蒙德市微软公司生产的微软WINDOWS;加州的库珀蒂诺市的苹果计算机公司生产的MAC OS;纽约Armonk市的IBM生产的OS/2;和犹他州盐湖城的卡尔德拉公司发布的免费使用的Linux,以及其它操作系统。

【0027】对于包括移动设备的实施例,所述设备可以是能够运行JAVA的蜂窝电话,诸如伊利诺伊州的绍姆堡的摩托罗拉公司生产的i55sr、i58sr、i85s、或i88s,日本京都的京瓷公司生产的6035或者7135,或者韩国首尔的三星电子公司生产的i300或者i330。在其它实施例中包括的移动设备,移动设备可以是在PalmOS操作系统控制下运行的个人数字助理(PDA),诸如加州米尔皮塔斯市的PalmOne公司生产的Tungsten W、VII、VIIx、i705。在其它实施例中,客户端113可以为PocketPC操作系统控制下运行的个人数字助理(PDA),诸如加州帕洛阿尔托的惠普公司生产的iPAQ4155、iPAQ5555、iPAQ1945、iPAQ2215和iPAQ4255;加州胡桃市ViewSonic公司生产的ViewSonic V36;或者纽约州纽约市的东芝美国公司生产的东芝PocketPC e405。在又一实施例中,移动设备可以是诸如加州米尔皮塔斯市的PalmOne公司生产的如Treo180、Treo270、Treo600、Treo650、Treo700、或Treo700w的PDA/电话设备的组合。在又一实施例中,移动设备可以是在PocketPC操作系统控制下运行的蜂窝电话,诸如摩托罗拉公司生产的Mpx200。典型的移动设备可以包括上述图2A和2B中描述的多个部件,包括处理器202和主存储器204。

【0028】现在参见图3,所述方框图描述方法的一个实施例,该方法用于通过代理服务器由虚拟计算环境提供对所请求资源的访问。简要综述,所述方法包括:接收来自客户端的标识外部资源的请求(步骤301);发送对应于所述外部资源的信息的第一请求(步骤303);接收对所述第一请求的第一响应,所述第一响应包括状态信息(步骤305);发送包括URL的文件给所述客户端,所述URL标识所述代理服务器和所述外部资源(步骤307);从虚拟计算环境接收对所述URL的请求(步骤309);发送对于所述外部资源的第二请求,所述请求包括所述状态信息(步骤311);接收对所述第二请求的第二响应(步骤313);并且发送与所述第二响应相应的信息到所述虚拟计算环境(步骤315)。虽然所述方法将在以下代理服务器105执行的上下文中描述,所述方法可以由任一计算设备按照此处描述执行,包括而不限于代理服务器105、应用服务器107、网络设备、客户端代理或者其任意组合。

【0029】仍旧参见图3,更详细的进行描述。代理服务器105可以接收来自客户端113的标识外部资源的请求(步骤301)。可以通过此处描述的任一协议或者多个协议接收所述请求。外部资源可以包括位于外部服务器上的任一资源。可以接收的请求的例子包括但不限于:对web页面的请求、对文档的请求、对文件的请求以及对web应用的请求。在一个实施例中,所述请求可以是HTTP请求。在另一个实施例中,所述请求可以是FTP请求。在一些实施例中,所述请求可以伴随着和所述请求相关的状态信息。例如,HTTP请求可以包括与这样一个web站点有关的cookie,从所述web站点请求该资源。在另一实施例中,所述资源可以包括远程桌面。例如,代理服务器可以接收请求以在远程机上打开对应于用户桌面的文件或者应用。或者,例如,所述代理服务器可以接收请求以打开用来显示远程桌面内容的web页面。

【0030】从客户端113接收标识外部资源的请求之后(步骤301),所述代理服务器105随后可以发送对于与所述外部资源对应的信息的第一请求(步骤303)。可以使用此处所述的任一协议或者多个协议发送第一请求,并且第一请求可以被发送到此处所述的任一外部服务器109。在一些实施例中,请求可以是用于与所述外部资源对应的MIME型信息。例如,代理服务器105可以发送与外部资源对应的HTTP头部请求。

【0031】发送对于相应于所述外部资源的信息的第一请求之后(步骤303);代理服务器可以接收对所述第一请求的第一响应,所述第一响应包括状态信息(步骤305)。可以通过此处所述的任一协议或者多个协议接收第一响应。在一些实施例中,第一响应可以包括HTTP响应。在一些实施例中,第一响应可以包括与所述资源对应的MIME类型。

【0032】状态信息可以包括相应于客户端、请求或者连接的任一信息。在一些实施例中,状态信息可以包括cookie。在其它实施例中,cookie可以包括相应于代理服务器请求或者连接的任一信息。例如,状态信息可以包括cookie,其中cookie包括相应于客户端和外部服务器交互的会话标识符。或者,例如,状态信息可以包括相应于客户端的用户或者机器标识符。或者,例如,状态信息可以是指示允许客户端访问资源的标记或者其它标识符。

【0033】在一些实施例中,代理可以存储所接收的状态信息。代理服务器可以存储状态信息在任一存储器结构或者部件中,包括而不限于:数据库、文件或者高速缓冲存储器。在一些实施例中,代理可以存储由客户端索引的状态信息。在其它实施例中,代理可以存储由外部资源索引的状态信息。在又一实施例中,代理可以存储状态信息在和给定客户端连接相关的存储器结构中。

【0034】在接收对所述第一请求的第一响应之后,所述第一响应包括状态信息(步骤305);代理可以发送包括URL的文件到客户端,所述URL标识所述代理和所述外部资源(步骤307)。该文件可以包括能够标识代理和资源的任一文件类型。在一些实施例中,该文件可以包括ICA文件。在又一实施例中,该文件可以包括RDP文件,在一些实施例中,该文件可以包括标识外部资源的MIME类型的信息。在其它实施例中,该文件可以包括标识外部资源的任一其它类型或特征的信息,包括但不限于文件名称、文件扩展名和文件大小。

【0035】在一些实施例中,URL指向代理服务器中的机制并且指向表示外部HTTP资源的HTTP状态的嵌入标记。在一些实施例中,URL包括这样一个标识符,其允许代理服务器在接收对URL的请求时获取访问被请求的资源所需要的数据,诸如会话状态数据(例如,HTTP cookie状态)和身份验证证明。

【0036】在另一实施例中,所修改的URL可以被当作web代理URL,指向web代理和嵌入到URL中的外部web资源二者。在一些实施例中,所修改的URL具有如下形式:http://<servername>/<proxynamespace>/<base64hostname>/<path>/document.doc。在这些实施例中,<servername>可以表示可获得web代理的主机;<proxynamespace>可以为用于标识web代理名称空间的标记,并且<base64hostname>可以为外部web资源的基于64位编码位置,其可以包括协议和主机名。在这些实施例中,<path>可以指外部服务器的根相对路径。

【0037】在一些实施例中,该文件可以包括一个或者多个指令,用于根据该资源要打开的应用。例如,如果所述资源为微软WORD文档,该文件可以包括打开微软WORD的指令。或者,例如,如果资源为PDF文档,所述文件可以包括打开ADOBE ACROBAT的指令。在其它实施例中,客户端可以基于外部资源的标识类型确定打开的应用。

【0038】在一些实施例中,该文件包括文件类型关联信息,可以启动和资源相关的类型与可以运行或者提供对资源访问的应用之间的关联。在这些实施例的其中之一,标签(ticket)是指FTA标签,在这些实施例的另一个中,FTA标签包括访问外部web资源所需的附加信息,诸如http验证和cookie状态。在这些实施例中,FTA标签具有诸如下述的数据库表格式:

CREATE TABLE[dbo].[FileTypeAssociation](

         [ID][uniqueidentifier]ROWGUIDCOL PRIMARY KEY CLUSTERED NOT NULL,

        [MasterSessionID]{uniqueidentifier]NOT NULL,

        [ExpirationTime][datetime]NOT NULL,

        [Url][varchar](2048)NOT NULL,

         [CookieData][image]NULL,

        [CookieDataHash][binary](20)NULL,

         [Root][varchar](2048)NOT NULL,

        [MessagelD][uniqueidentifier]NOT NULL,

         [AttachlD][varchar}(10)NOT NULL,

         [timestamp][timestamp]NOT NULL

)ON  [PRIMARY]

【0039】在此例子中,变量MasterSessionID可以存储包括请求和响应的会话的会话标识符。变量ExpiratiσnTime可以存储会话终止时间,或者可以用作指示cookie终止时间。变量Ur1可以存储所请求资源的URL。变量CookieData可以包括相应于会话的状态信息并且可以包括一个或者多个HTTP cookie。变量CookieDataHash可以存储一些或者全部cookie数据的哈希值,并且可以使用任一哈希算法计算,包括诸如SHA变体和MD变体的密码哈希。变量Root可以存储根URL或者其它相应于会话的标识符。变量MessagelD可以存储代理服务器发送的或者接收的一个或者多个通信量。变量AttachID可以存储相应于发送到客户端的ICA文件的标识符。timestamp可以存储时间戳记,所述时间戳记相应于代理服务器执行事务处理的时间,所述事务处理诸如发送ICA文件到客户端。在本地机包括客户代理的实施例中,客户端代理可以在接收到该文件时进行实例化。在这些实施例的其中之一,在本地机中的web浏览器上的临时高速缓冲存储器内的文件位置提供给客户端代理。

【0040】发送包括URL的文件到客户端之后,所述URL标识所述代理和所述外部资源(步骤307),所述代理可以从虚拟计算环境接收对于所述URL的请求(步骤309)。该请求可以包括任一协议或者多个协议。在一些实施例中,用于URL的请求可以包括HTTP请求,在一个实施例中,可以从在客户端上执行的虚拟计算环境接收请求。在另一实施例中,可以从在服务器上执行的虚拟计算环境接收请求。

【0041】在一些实施例中,虚拟计算环境可以包括从服务器到客户端传输的应用。在其它实施例中,虚拟计算环境可以包括在服务器上执行的应用,服务器和客户端通过诸如RDP或者ICA的表示层协议通信。在又一实施例中,虚拟计算环境可以包括提供到应用的访问的服务器,其中,一些或者所有的应用已经通过客户端下载。

【0042】可以特别形成URL用于向代理指示所述请求是用于外部资源的。URL可以包括先前标识的与外部资源相关的任一状态信息。URL也可以包括内部标识符,用于向代理服务器标识所述请求从虚拟计算环境产生,并且相应于外部资源。

【0043】在一个实施例中,当web代理处理URL时,web代理确定相关FTA标签是否包括验证信息,并且如果是,提取所需的状态,并且使用此状态以允许请求在外部web服务器上被成功批准。在这些实施例的另外一个中,web代理为了访问资源重新将所提取的状态放入到请求中。这导致客户机的验证使得客户机访问web应用。

【0044】代理服务器随后可以发送对所述外部资源的第二请求,所述请求包括所述状态信息(步骤311)。此第二请求可以包括任一协议,包括而不限于HTTP。在一些实施例中,第二请求可以包括标识外部资源的HTTP GET(获取)请求。在一些实施例中,第二请求可以包括含有状态信息的一个或者多个cookie。

【0045】代理服务器可以随后接收对第二请求的第二响应(步骤313)。在一些实施例中,第二响应可以包括一些或者全部的所请求的资源。在一些实施例中,第二响应可以包括HTTP响应。

【0046】代理服务器可以随后发送相应于所述第二响应的信息给所述虚拟计算环境(步骤315)。该信息可以包括一些或者全部的外部资源。在一些实施例中,从代理服务器到虚拟计算环境的传输可以被压缩、加速和/或用于安全目的的过滤。在一个实施例中,可以通过网络应用执行所述压缩、加速和/或过滤。

【0047】现在参见图4,在所示流程图中描述了通过应用服务器向被访问的外部资源提供无缝访问接入的一个例子。简要综述,在提供所请求的登录信息和会话数据之后,客户端通过以下步骤接收在外部web资源上的资源的访问:

1、终端用户通过选择web浏览器中的链接做出请求。该链接通过可以访问的外部web资源上的字处理文档指向web代理。

2、web代理处理该请求并且标识所代理的请求经HTTP应该被发送到的外部web资源的位置。

3、外部web资源定位所请求的字处理文档并且下行返回HTTP头部响应给web代理。

4、web代理接收该响应并且标识和字处理文档相关的类型,诸如MIME型。Web代理记录输入的包括用于访问URL的所有cookie和http验证状态的URL HTTP状态。所述状态对于数据库持久保存,并且web代理接收标签。Web代理提供标签和原始URL给激活业务。使用指向URL的参数LongCommandName产生诸如ICA文件的文件,其中,URL经过web代理,指向web资源并且包括http上下文标签。文件被下行发送到web浏览器。在一些实施例中,URL可以为以下形式:

http://hostname/CitrixWebProxy/<base64hostname>/path/document.doc

5、web浏览器基于所返回的文件mime类型激活客户端代理,并且指向来自浏览器缓存中的临时位置的文件。客户端代理连接应用服务器。

6、应用服务器调用和文件类型相关的应用,其可以是挂钩的(hooked)的字处理文件格式。所宿主的应用(在此例中为微软WORD)使用参数LongCommandName,随后尝试通过web代理打开指向外部web资源的原始URL。

7、web代理标识该请求以及请求的http上下文标签,并且从数据库获取存储的验证状态和cookie状态。验证状态和cookie状态被重新放入到发送给资源的上行请求中。

8、外部web资源接收输入的请求,尝试标识输入请求中的会话cookie,并且确认所述请求被批准。外部web资源发送字处理文档下行返回web代理。

9、web代理接收下行响应,并且代理所述响应到所宿主的应用(此例中为微软WORD)。

【0048】在一个实施例中,当本地机上的用户选择web浏览器中的链接时,来自本地机上的web浏览器的初始请求开始下载外部web资源用于激活。在一些实施例中,本发明使用两种从本地机到服务器的已建立连接。在这些实施例的其中之一,第一连接可以是指向web代理的从本地机上的web浏览器发送的HTTP请求。在这些实施例的另一个中,第二连接可以是位于本地机上的客户端代理和应用服务器之间的、诸如ICA或者其它表示层协议连接的连接。一旦进行第二连接,宿主在应用服务器上的应用使用web代理来提供HTTP验证和cookie状态给外部web资源,允许资源被访问。

【0049】尽管已经结合特定优选实施例描述和示出本发明,但本领域普通技术人员应该理解,在不脱离所附权利要求书限定的本发明的精神和范围的情况下,可以作出形式上和细节上的各种变化。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号