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

文档序号:6570415阅读:167来源:国知局
专利名称:用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备的制作方法
技术领域
0002本发明涉及通过在线网页代理(web proxy)访问网络上的远 程资源,更具体地,本发明涉及对由虚拟计算环境通过代理服务器所请求的 资源提供访问。
背景技术
0003在一些环境中,对于网络资源的请求必须伴随着指示请求者能 使用所述资源的状态信息。例如,服务器可以要求身份验证cookie (点心 文件)存在于对给定文档的请求中。此状态信息典型地由web浏览器管理。
0004但是,可以存在多种情况,其中,用户使用web页面导航资 源,并且随后选择要求一个应用而不是所看到的web浏览器的资源。在一 些例子中,web浏览器和其它应用可以是虚拟计算环境的一部分。例如, 用户可以导航web站点并且点击到电子表格的链接,导致浏览器为了查看 该显示而启动一个远程宿主的电子表格应用。当为了载入外部的基于 HTTP的资源而调用服务器宿主的应用时,该应用可以被要求包括对所允 许请求的状态信息。 一 些系统可能缺少用于将必要的会话状态数据插入到 上行数据流请求的机制。例如,在一些系统中,通过包括连接信息而缺少 必要会话状态数据的文件,直接提供所述应用和外部的基于HTTP资源之 间的链4妄。
0005缺少必要的会话状态数据的一个结果可能是将会话失败消息 或者错误对话框显示给系统的用户。宿主在应用服务器上的应用支持 HTML (诸如WORD、 EXCEL或者POWERPOINT的应用)呈现的例子
5中的另 一个结果可以是在应用中呈现为错误页面,使得呈现的错误页面仿 佛为被请求的资源。这可能导致给用户带来混淆。
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连4妄到外部月良务器109。客户端113、网络111A、网络111B 和服务器105可以包括任意计算设备,包括但不限于个人计算机、笔记本 计算机、个人数字助理、蜂窝电话、数字电视、服务器和刀片服务器。
0012仍旧参见图1,将在此实施例中更详细地描述客户端113连才妄 网络111A。网络111A和111B (总的为111 )可以包括互联网、 一个或者多 个本地网络、 一个或者多个广域网和/或一个或者多个i成域网。网络111可 以包括任意计算设备,包括web服务器、文件服务器、路由器、数据库、计 算机、服务器和网络设备。网络lll可以包括通过连接多个计算设备的任一 方式(包括有线、红外(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. lla、 IEEE 802. llb、 IEEE 802. llg、以及 直接异步连接,或者其中任意组合。网络lll可以包括采用了用于在移动设 备间通信的任一协议或者多个协议的移动电话网络,所述协议包括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电子H据表、MS POWERPOINT展示和MS ACCESS应用。在一 些实施例中,应用服务器可以提供对具有访问微软EXCHANGE资源的功能的 应用的访问。
0016代理服务器105可以包括能够提供代理业务给客户端的任一计 算设备。在一些实施例中,代理服务器105可以截取来自客户端113对外部 资源的请求,并且转发此请求给外部资源。在一些实施例中,代理服务器105 可以修改通过代理服务器105的任一请求或者响应。例如,代理服务器可以 修改来自客户端的对外部资源的请求,使得所述请求呈现为从代理服务器 105发起。或者例如,代理服务器105可以重写从外部资源接收的响应中的链接,使得所述链接指向代理服务器105。
0017在一些实施例中,网络应用可以结合任一所示服务器使用,用 于提供附加的功能。网络应用提供的附加功能的例子包括但不限于防火墙业 务、SSL池(pooling)和加速、TCP池和加速、数据压缩、连接监视、应用 曰志、应用加速、应用递送、负载平衡、高速緩存、虚拟化、翻译、重定向、 连接池、代理业务、逆向代理业务、认证和会话管理。
0018外部服务器109可以包括由客户端113通过代理访问的任一服 务器。外部服务器可以提供用于传输任一类型资源的功能,所述资源包括而 不限于web页面、web应用、文档、电子表格、多i某体和其它文件。外部服 务器的例子可以包括由第三方操作的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、 PC 100SDRAM 、双|史据速率SDRAM ( DDR SDRAM )、增强型SDRAM (ESDRAM)、同步链接DRAM ( SLDRAM )、直接存储器总线DRAM (DRDRAM)或者4失电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 与不同1/O设备230通信。可以用于连接中央处理器单元202到所述I/O 设备230的不同总线包括VESAVL总线、ISA总线、EISA总线、微通 道体系结构(MCA )总线、PCI总线、PCI-X总线、PCI高速总线(PCI-Express bus )或者NuBus。对于I/O i殳备为3见频显示器的实施例,处理器202可以 使用加速图形接口 (AGP)与显示器通信。图2B描述的计算机系统200 的实施例中,主处理器202通过超级传输(HyperTransport )、快速I/O或 者InfiniBand与I/O i殳备230b直接通信。图2B还描述了 一个实施例,其 中本地总线和直接通信相混合处理器202使用本地互联总线和I/O设备 230a通信,同时与1/O设备230b直接通信。
0024大量不同的1/0设备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总
10线、以太网总线、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;或者纽约州纽约市的东芝美国^^司生产的东芝 PocketPCe405。在又一实施例中,移动设备可以是诸如加州米尔皮塔斯市 的PalmOne7i^司生产的^口 Treo 180、 Treo270、 Treo600、 Treo650、 Treo700、 或Treo700w的PDA/电话设备的组合。在又一实施例中,移动设备可以是 在PocketPC操作系统控制下运行的蜂窝电话,诸如摩托罗拉公司生产的 Mpx200。典型的移动i殳备可以包括上述图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站点请求该资 源。在另一实施例中,所述资源可以包括远程桌面。例如,代理服务器可以 接收请求以在远程^/L上打开对应于用户桌面的文件或者应用。或者,例如, 所述代理服务器可以接收请求以打开用来显示远程桌面内容的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 )。该文件可以包括能够标识代理和资源 的^f壬一文件类型。在一些实施例中,该文件可以包括ICA文件。在又一实施 例中,该文件可以包括RDP文件,在一些实施例中,该文件可以包括标识外 部资源的MIME类型的信息。在其它实施例中,该文件可以包括标识外部资 源的任一其它类型或特征的信息,包括但不限于文件名称、文件扩展名和文 件大小。
0035在一些实施例中,URL指向代理服务器中的机制并且指向表示 外部HTTP资源的HTTP状态的嵌入标记。在一些实施例中,URL包括这样一 个标识符,其允许代理服务器在接收对URL的请求时获取访问被请求的资源 所需要的数据,诸如会话状态数据(例如,HTTP cookie状态)和身份验证 证明。
0036在另一实施例中,所修改的URL可以被当作web代理URL,指 向web代理和嵌入到URL中的外部web资源二者。在一些实施例中,所修改 的 URL 具有如下形 式
http://<servername>/<proxynamespace>/<base64hostname〉/<path>/docu ment,doc。在这些实施例中,〈server画e〉可以表示可获得web代理的主机; 〈proxynamespace〉可以为用于标识web 理名称空间的标记,并且 〈base64hostname〉可以为外部web资源的基于64位编码位置,其可以包括 协议和主机名。在这些实施例中,〈path〉可以指外部服务器的根相对路径。
0037在一些实施例中,该文件可以包括一个或者多个指令,用于根 据该资源要打开的应用。例如,如果所述资源为微软WORD文档,该文件可 以包括打开微软WORD的指令。或者,例如,如果资源为PDF文档,所述文 件可以包括打开ADOBE ACROBAT的指令。在其它实施例中,客户端可以基于外部资源的标识类型确定打开的应用。
0038在一些实施例中,该文件包括文件类型关联信息,可以启动和
资源相关的类型与可以运行或者提供对资源访问的应用之间的关联。在这些
实施例的其中之一,标签(ticket)是指FTA标签,在这些实施例的另一个 中,FTA标签包括访问外部web资源所需的附加信息,诸如http验证和cookie 状态。在这些实施例中,FTA标签具有诸如下述的数据库表格式
CREATE TABLE [dbol.[FileTypeAssociationj (
,[uniqueidentifier〗ROWGUIDCOL PRIMARY KEY CLUSTERED NOT NULL, [MasterSessionlD{uniqueidentifierj NOT NU1± , [ExpirationTime[datetimeNOT NULL , [Urll [varchar(2048) NOT NULL , [CookieData] [image] NULL , [CookieDataHash[binary] (20) NULL , [Root] [varchar] (2048) NOT NULL , [MessagelDj [uniqueidentifierNOT NULL , [AttachlD[varchar} (10) NOT NULL , [timestamp] [timestampNOT NULL )ON [PRIMARYj
0039在此例子中,变量 MasterSessionID 可以存储包括请求和响应的会
话的会话标识符。变量 Expiration Time 可以存储会话终止时间,或者可以用作指
示COOkie终止时间。变量Url可以存储所请求资源的URL。变量CookieData
可以包括相应于会话的状态信息并且可以包4舌一个或者多个HTTP cookie。
变量C。。kieDataHash可以存〗诸一些或者全部cookie凄t据的卩合希值,并且可以4吏
14用任一哈希算法计算,包括诸如SHA变体和MD变体的密码哈希。变量Root
可以存储根URL或者其它相应于会话的标识符。变量MessagelD可以存储代理 服务器发送的或者接收的一个或者多个通信量。变量AttacWD可以存储相应于 发送到客户端的ICA文件的标识符。timestamp可以存储时间戳记,所述时间 戳记相应于代理服务器执行事务处理的时间,所述事务处理诸如发送ICA文 件到客户端。在本地^/L包括客户代理的实施例中,客户端代理可以在接收到
该文件时进行实例化。在这些实施例的其中之一,在本地机中的web浏览器
上的临时高速緩冲存储器内的文件位置提供给客户端代理。
0040发送包括URL的文件到客户端之后,所述URL标识所述代理和 所述外部资源(步骤307 ),所述代理可以从虚拟计算环境接收对于所述URL 的请求(步骤309 )。该请求可以包括任一协议或者多个协议。在一些实施例 中,用于URL的i青求可以包括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资源上的资源 的i方问
1、 终端用户通过选择web浏览器中的链接做出请求。该链接通过可以 访问的外部web资源上的字处理文档指向web代理。
2、 web代理处理该-清求并且标识所代理的请求经HTTP应该^皮发送到的 外部web资源的位置。
3、 外部web资源定位所请求的字处理文档并且下行返回HTTP头部响应 给web代理。
4、 web ^f戈理4妄收该响应并且标识和字处理文档相关的类型,-渚如MIME 型。Web代理记录输入的包括用于访问URL的所有cookie和http验证状态 的URL HTTP状态。所述状态对于数据库持久保存,并且web代理接收标签。 Web代理提供标签和原始URL给激活业务。使用指向URL的参数 LongCo,andName产生诸如ICA文件的文件,其中,URL经过web代理,指 向web资源并且包括http上下文标签。文件被下行发送到web浏览器。在 一些实施例中,URL可以为以下形式
http:〃hostname/CitrixWebProxy/<base64hostname>/path/document.doc
5、 web浏览器基于所返回的文件mime类型激活客户端代理,并且指向 来自浏览器緩存中的临时位置的文件。客户端代理连接应用服务器。
6、 应用服务器调用和文件类型相关的应用,其可以是挂钩的(hooked) 的字处理文件格式。所宿主的应用(在此例中为微软WORD)使用参数 LongCommandName,随后尝试通过web代理打开指向外部web资源的原始URL。
167、 web代理标识该请求以及请求的http上下文标签,并且从数据库获 耳又存储的-睑证状态和cookie状态。验证状态和cookie状态被重新放入到发 送给资源的上行请求中。
8、 外部web资源接收输入的请求,尝试标识输入请求中的会话cookie, 并且确认所述请求被批准。外部web资源发送字处理文档下行返回web代理。
9、 web代理接收下行响应,并且代理所述响应到所宿主的应用(此例中 为孩i软WORD)。
0048在一个实施例中,当本地机上的用户选择web浏览器中的链接 时,来自本地机上的web浏览器的初始请求开始下载外部web资源用于激活。 在一些实施例中,本发明使用两种从本地机到服务器的已建立连接。在这些 实施例的其中之一,第一连接可以是指向web代理的从本地机上的web浏览 器发送的HTTP请求。在这些实施例的另一个中,第二连接可以是位于本地 机上的客户端代理和应用服务器之间的、诸如ICA或者其它表示层协议连接 的连接。 一旦进行第二连接,宿主在应用服务器上的应用使用web代理来提 供HTTP验证和cookie状态给外部web资源,允许资源被访问。
0049尽管已经结合特定优选实施例描述和示出本发明,但本领域 普通技术人员应该理解,在不脱离所附权利要求书限定的本发明的精神和 范围的情况下,可以作出形式上和细节上的各种变化。
1权利要求
1、一种用于通过代理服务器由虚拟计算环境提供对所请求资源的访问的方法,其中,所述资源位于虚拟计算环境的服务器系统的外部,所述方法包括(a)接收来自客户端的、标识外部资源的请求;(b)发送对于相应于所述外部资源的信息的第一请求;(c)接收对所述第一请求的第一响应,所述第一响应包括状态信息;(d)发送给所述客户端包括URL的文件,所述URL标识所述代理和所述外部资源;(e)从虚拟计算环境接收对所述URL的请求;(f)发送对所述外部资源的第二请求,所述请求包括所述状态信息;(g)接收对所述第二请求的第二响应;并且(h)发送相应于所述第二响应的信息给所述虚拟计算环境。
2、 权利要求l的方法,还包括存储所述状态信息的步骤。
3、 权利要求l的方法,其中,步骤(b)包括发送对于相应于所述外 部资源的信息的第一 HTTP请求。
4、 权利要求l的方法,其中,步骤(c)包括接收对所述第一请求的 第一HTTP响应,所述第一响应包括状态信息。
5、 权利要求4的方法,其中,步骤(c)包括接收对于所述第一请求 的第一 HTTP响应,所述第一响应包括相应于MIME类型的信息,所述MIME 类型相应于所述外部资源。
6、 权利要求4的方法,其中,步骤(c)包括接收对所述第一请求的 第一HTTP响应,所述第一响应包括HTTP cookie。
7、 权利要求6的方法,其中,步骤(f)包括发送对于所述外部资源 的第二请求,所述请求包括含有HTTP cookie的状态信息。
8、 权利要求l的方法,其中,步骤(d)包括通过表示层协议发送包 括URL的文件给所述客户端,所述URL标识所述代理和所述外部资源。
9、 权利要求8的方法,其中,步骤(d)包括经ICA发送包括URL的 文件给所述客户端,所述URL标识所述代理和所述外部资源。
10、 权利要求8的方法,其中,步骤(d)包括经RDP发送包括URL 的文件给所述客户端,所述URL标识所述代理和所述外部资源。
11、 权利要求1的方法,其中,步骤(h)包括经ICA连接,发送相 应于所述第二响应的信息给所述虚拟计算环境。
12、 一种用于通过代理服务器由虚拟计算环境提供对所请求资源的访 问的计算机系统,其中,所述资源位于虚拟计算环境的服务器系统的外部, 所述系统包括用于接收来自客户端的标识外部资源的请求的装置; 用于发送对于相应于所述外部资源的信息的第一请求的装置; 用于接收对所述第 一请求的第一响应的装置,所述第 一响应包括状态 信息;用于发送给所述客户端包括URL的文件的装置,所述URL标识所述代理和所述外部资源;用于从虚拟计算环境接收对于所述URL的请求的装置;用于发送对所述外部资源的第二请求的装置,所述请求包括所述状态信息;用于接收对所述第二请求的第二响应的装置;以及用于发送相应于所述第二响应的信息给所述虚拟计算环境的装置。
13、 权利要求12的系统,还包括用于存储所述状态信息的装置。
14、 权利要求12的系统,其中,所述用于发送第一请求的装置包括 用于发送对于相应于所述外部资源的信息的第一 HTTP请求的装置。
15、 权利要求12的系统,其中,所述用于接收第一响应的装置包括用于接收对所述第一请求的第一 HTTP响应的装置,所述第一响应包括状态信 白
16、 权利要求15的系统,其中,所述用于接收第一响应的装置包括用 于接收相应于MIME类型的信息的装置,所述MIME类型相应于所述外部资源。
17、 权利要求15的系统,其中,用于接收第一响应的所述装置包括用 于接收包含HTTP cookie的响应的装置。
18、 权利要求17的系统,其中,发送第二请求的所述装置包括用于发 送对于所述外部资源的第二请求的装置,所迷请求包括含有HTTP cookie的 状态信息。
19、 权利要求12的系统,其中,所述用于发送文件到所述客户端的装 置包括用于通过表示层协议发送包括URL的文件给所述客户端的装置,所述 URL标识所述代理和所述外部资源。
20、 权利要求19的系统,其中,用于发送文件到所述客户端的所述装 置包括用于经ICA发送包括URL的文件给所述客户端的装置,所述URL标识 所述代理和所述外部资源。
21、 权利要求19的系统,其中,用于发送文件到所述客户端的所述装 置包括用于经RDP发送包括URL的文件给所述客户端的装置,所述URL标识 所述代理和所述外部资源。
22、 权利要求12的系统,其中,用于发送相应于所述第二响应的信息 的所述装置包括用于经ICA连接,发送相应于所述第二响应的信息给所述虛 拟计算环境的装置。
全文摘要
本发明涉及用于提供来自代理服务器的修改的URL到试图访问远程资源的虚拟计算环境的系统。修改的URL可以包括信息,用于允许接收对URL的请求的代理服务器产生对于远程资源的请求,其中,所述请求包括访问所述资源必须的任一状态信息。在发送所述请求之后,代理服务器可以接受所请求的资源,并且发送所述资源到所述应用。
文档编号G06F15/16GK101495990SQ200680052217
公开日2009年7月29日 申请日期2006年12月1日 优先权日2005年12月2日
发明者J·戴, R·瓦地斯 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1