專利名稱:用于提供從代理服務(wù)器到虛擬計算環(huán)境的身份驗證證明以訪問遠程資源的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
0002本發(fā)明涉及通過在線網(wǎng)頁代理(web proxy)訪問網(wǎng)絡(luò)上的遠 程資源,更具體地,本發(fā)明涉及對由虛擬計算環(huán)境通過代理服務(wù)器所請求的 資源提供訪問。
背景技術(shù):
0003在一些環(huán)境中,對于網(wǎng)絡(luò)資源的請求必須伴隨著指示請求者能 使用所述資源的狀態(tài)信息。例如,服務(wù)器可以要求身份驗證cookie (點心 文件)存在于對給定文檔的請求中。此狀態(tài)信息典型地由web瀏覽器管理。
0004但是,可以存在多種情況,其中,用戶使用web頁面導航資 源,并且隨后選擇要求一個應(yīng)用而不是所看到的web瀏覽器的資源。在一 些例子中,web瀏覽器和其它應(yīng)用可以是虛擬計算環(huán)境的一部分。例如, 用戶可以導航web站點并且點擊到電子表格的鏈接,導致瀏覽器為了查看 該顯示而啟動一個遠程宿主的電子表格應(yīng)用。當為了載入外部的基于 HTTP的資源而調(diào)用服務(wù)器宿主的應(yīng)用時,該應(yīng)用可以被要求包括對所允 許請求的狀態(tài)信息。 一 些系統(tǒng)可能缺少用于將必要的會話狀態(tài)數(shù)據(jù)插入到 上行數(shù)據(jù)流請求的機制。例如,在一些系統(tǒng)中,通過包括連接信息而缺少 必要會話狀態(tài)數(shù)據(jù)的文件,直接提供所述應(yīng)用和外部的基于HTTP資源之 間的鏈4妄。
0005缺少必要的會話狀態(tài)數(shù)據(jù)的一個結(jié)果可能是將會話失敗消息 或者錯誤對話框顯示給系統(tǒng)的用戶。宿主在應(yīng)用服務(wù)器上的應(yīng)用支持 HTML (諸如WORD、 EXCEL或者POWERPOINT的應(yīng)用)呈現(xiàn)的例子
5中的另 一個結(jié)果可以是在應(yīng)用中呈現(xiàn)為錯誤頁面,使得呈現(xiàn)的錯誤頁面仿 佛為被請求的資源。這可能導致給用戶帶來混淆。
0006因此,需要一種在保存請求所必須的狀態(tài)信息時,允許在啟 動的應(yīng)用中訪問遠程資源的系統(tǒng)和方法。
發(fā)明內(nèi)容
0007本發(fā)明涉及用于提供來自代理服務(wù)器的修改的URL到試圖 訪問遠程資源的應(yīng)用的系統(tǒng)。 >畛改的URL可以包括信息,該信息用于允 許接收對URL的請求的代理服務(wù)器產(chǎn)生對遠程資源的請求,其中,所述 請求包括訪問所述資源必須的任一狀態(tài)信息。提供具有指向此狀態(tài)信息的 URL的所述應(yīng)用可以許可無縫訪問受保護的資源,而無需系統(tǒng)的用戶輸入 證明或者被提示出錯。
0008在一個方面中,本發(fā)明提出一種用于通過代理服務(wù)器由虛擬 計算環(huán)境提供對所請求資源的訪問的方法,其中,所述資源位于虛擬計算 環(huán)境的服務(wù)器系統(tǒng)的外部。在一個實施例中,所述方法包括接收來自客 戶端的標識外部資源的請求;發(fā)送對于相應(yīng)于所述外部資源的信息的第一 請求;接收對所述第一請求的第一響應(yīng),所述第一響應(yīng)包括狀態(tài)信息;發(fā) 送給所述客戶端包括標識所述代理和所述外部資源的URL的文件;從虛 擬計算環(huán)境接收對于所述URL的請求;發(fā)送對于所述外部資源的第二請 求,所述請求包括所述狀態(tài)信息;接收對所述第二請求的第二響應(yīng);并且 發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛擬計算環(huán)境。
0009在第二方面中,本發(fā)明提出一種用于通過代理服務(wù)器由虛擬 計算環(huán)境提供對所請求資源的訪問的計算機系統(tǒng),其中,所述資源位于虛 擬計算環(huán)境的服務(wù)器系統(tǒng)的外部。在一個實施例中,所述系統(tǒng)包括用于
接收來自客戶端的標識外部資源的請求的裝置;用于發(fā)送對于相應(yīng)于所述 外部資源的信息的第一請求的裝置;用于接收對所述第一請求的第一響應(yīng) 的裝置,所述第一響應(yīng)包括狀態(tài)信息;用于發(fā)送給所述客戶端包括標識所 述代理和所述外部資源的URL的文件的裝置;用于從虛擬計算環(huán)境接收 對所述URL的請求的裝置;用于發(fā)送對所述外部資源的第二請求的裝置, 所述請求包括所述狀態(tài)信息;用于接收對所述第二請求的第二響應(yīng)的裝 置;以及用于發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛擬計算環(huán)境的裝 置。
0010通過結(jié)合下述附圖,參見以下的描述,本發(fā)明的前述和其它目 的、方面、特征和優(yōu)點將變得更加明顯并且更容易理解。
圖1的框圖描述用于提供訪問計算環(huán)境和提供外部資源到客戶端的計算
才幾網(wǎng)絡(luò)的一個實施例;
圖2A和2B的框圖描述用作客戶-服務(wù)器網(wǎng)絡(luò)中的設(shè)備的計算或者網(wǎng)絡(luò) 設(shè)備的實施例;
圖3的框圖描述通過應(yīng)用服務(wù)器提供無縫訪問外部資源的方法的一個實 施例;并且
圖4的流程圖描述通過應(yīng)用服務(wù)器提供無縫訪問外部資源的一個例子。
具體實施例方式
0011現(xiàn)在參見圖1,描述計算機網(wǎng)絡(luò)的一個實施例。簡要概述,客 戶端113通過網(wǎng)絡(luò)111A連接到應(yīng)用服務(wù)器107和代理服務(wù)器105。代理服務(wù) 器經(jīng)網(wǎng)絡(luò)111B連4妄到外部月良務(wù)器109。客戶端113、網(wǎng)絡(luò)111A、網(wǎng)絡(luò)111B 和服務(wù)器105可以包括任意計算設(shè)備,包括但不限于個人計算機、筆記本 計算機、個人數(shù)字助理、蜂窩電話、數(shù)字電視、服務(wù)器和刀片服務(wù)器。
0012仍舊參見圖1,將在此實施例中更詳細地描述客戶端113連才妄 網(wǎng)絡(luò)111A。網(wǎng)絡(luò)111A和111B (總的為111 )可以包括互聯(lián)網(wǎng)、 一個或者多 個本地網(wǎng)絡(luò)、 一個或者多個廣域網(wǎng)和/或一個或者多個i成域網(wǎng)。網(wǎng)絡(luò)111可 以包括任意計算設(shè)備,包括web服務(wù)器、文件服務(wù)器、路由器、數(shù)據(jù)庫、計 算機、服務(wù)器和網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)lll可以包括通過連接多個計算設(shè)備的任一 方式(包括有線、紅外(IR)端口和無線信號)所連接的的計算設(shè)備。網(wǎng)絡(luò) 和連接到網(wǎng)絡(luò)的任一設(shè)備可以通過用于在多個計算設(shè)備間或者多個計算設(shè) 備中通信的任一通信協(xié)議進行通信,這些協(xié)議包括但不限于SSL、 HTML、 XML、 RDP、 ICA、 FTP、 HTTP、 TCP、 IP、 UDP、 IPX、 SPX、 NetBIOS、 NetBEUI、 SMB、 SMTP、以太網(wǎng)(Ethernet), ARCNET、光纖分布式數(shù)據(jù)接口 ( FDDI )、 RS232、 IEEE 802.11、 IEEE 802. lla、 IEEE 802. llb、 IEEE 802. llg、以及 直接異步連接,或者其中任意組合。網(wǎng)絡(luò)lll可以包括采用了用于在移動設(shè) 備間通信的任一協(xié)議或者多個協(xié)議的移動電話網(wǎng)絡(luò),所述協(xié)議包括AMPS、 TDMA、 CDMA、 GSM、 GPRS或者UMTS。在一些實施例中,網(wǎng)絡(luò)111A可以與網(wǎng)絡(luò)111B物理區(qū)分。在其它實施例中,網(wǎng)絡(luò)111A和111B可以以任一方式和 使用任一拓樸被連接在一起。在一些實施例中,網(wǎng)絡(luò)111A和111B可以包括 同一網(wǎng)絡(luò)。在一些實施例中,應(yīng)用服務(wù)器107或者客戶端105也可以連接到 網(wǎng)絡(luò)111B。
0013客戶端113可以包括任一計算設(shè)備。在一些實施例中,客戶端 可以包括web瀏覽器。在一些實施例中,客戶端113可以包括客戶端代理。 在這些實施例的其中之一中,客戶端代理可以支持獨立計算體系結(jié)構(gòu)(ICA) 協(xié)議,該協(xié)議可從佛羅里達州勞德代爾堡的Citrix系統(tǒng)公司獲得。.在這些 實施例的另一個中,客戶端代理就是一個ICA客戶端。在這些實施例的又一 個中,客戶端代理支持可從微軟公司獲得的遠程桌面協(xié)議(RDP)。在這些實 施例的另外一個中,客戶端代理就是一個RDP客戶端。在其它實施例中,客 戶端代理為能夠經(jīng)表示層協(xié)議通信的代理。
0014應(yīng)用服務(wù)器可以包括能夠向客戶端提供計算環(huán)境訪問入口的任 一計算設(shè)備。例如,在一個實施例中,應(yīng)用服務(wù)器107可以發(fā)送應(yīng)用到客戶 端113。在另一實施例中,應(yīng)用服務(wù)器107可以傳輸應(yīng)用文件,由客戶端113 下載并執(zhí)行。在又一個實施例中,應(yīng)用服務(wù)器可以本地執(zhí)行應(yīng)用并且傳送輸 出到客戶端113。在一些實施例中,應(yīng)用服務(wù)器107可以與代理服務(wù)器105 物理區(qū)分。在其它實施例中,應(yīng)用服務(wù)器107可以與代理服務(wù)器105共享任 一硬件或軟件。
0015在一些實施例中,應(yīng)用服務(wù)器可以提供對應(yīng)用的訪問,該應(yīng)用 具有經(jīng)HTTP訪問資源的功能。支持經(jīng)HTTP訪問資源的應(yīng)用的例子包括華盛 頓州雷蒙德市的微軟公司生產(chǎn)的諸如MS WORD、 MS EXCEL、 MS POWERPOINT 和MS ACCESS的微軟OFFICE產(chǎn)品應(yīng)用??梢员辉L問的資源的例子包括MS WORD 文檔、MS EXCEL電子H據(jù)表、MS POWERPOINT展示和MS ACCESS應(yīng)用。在一 些實施例中,應(yīng)用服務(wù)器可以提供對具有訪問微軟EXCHANGE資源的功能的 應(yīng)用的訪問。
0016代理服務(wù)器105可以包括能夠提供代理業(yè)務(wù)給客戶端的任一計 算設(shè)備。在一些實施例中,代理服務(wù)器105可以截取來自客戶端113對外部 資源的請求,并且轉(zhuǎn)發(fā)此請求給外部資源。在一些實施例中,代理服務(wù)器105 可以修改通過代理服務(wù)器105的任一請求或者響應(yīng)。例如,代理服務(wù)器可以 修改來自客戶端的對外部資源的請求,使得所述請求呈現(xiàn)為從代理服務(wù)器 105發(fā)起?;蛘呃?,代理服務(wù)器105可以重寫從外部資源接收的響應(yīng)中的鏈接,使得所述鏈接指向代理服務(wù)器105。
0017在一些實施例中,網(wǎng)絡(luò)應(yīng)用可以結(jié)合任一所示服務(wù)器使用,用 于提供附加的功能。網(wǎng)絡(luò)應(yīng)用提供的附加功能的例子包括但不限于防火墻業(yè) 務(wù)、SSL池(pooling)和加速、TCP池和加速、數(shù)據(jù)壓縮、連接監(jiān)視、應(yīng)用 曰志、應(yīng)用加速、應(yīng)用遞送、負載平衡、高速緩存、虛擬化、翻譯、重定向、 連接池、代理業(yè)務(wù)、逆向代理業(yè)務(wù)、認證和會話管理。
0018外部服務(wù)器109可以包括由客戶端113通過代理訪問的任一服 務(wù)器。外部服務(wù)器可以提供用于傳輸任一類型資源的功能,所述資源包括而 不限于web頁面、web應(yīng)用、文檔、電子表格、多i某體和其它文件。外部服 務(wù)器的例子可以包括由第三方操作的web服務(wù)器、文件服務(wù)器或者遠程凝:據(jù) 庫。在一些實施例中,外部服務(wù)器109可以由第三方操作。在一些實施例中, 外部服務(wù)器109可以請求客戶端113在資源訪問之前完成登錄過程并且在客 戶端瀏覽器上設(shè)置的會話cookie。
0019圖2A和2B的框圖描述用作客戶端計算設(shè)備和服務(wù)器計算設(shè)備 的典型的計算機200。如圖2A和2B所示,每一計算機200包括中央處理單 元202和主存儲單元204。每一計算機200也可以包括其它可選元件,諸如 一個或者多個輸入/輸出設(shè)備230a-230b (總的使用標號230 )和與中央處理 單元202相連的高速緩沖存儲器240。
0020中央處理單元202為響應(yīng)和處理從主存儲單元204獲取的指令 的任一邏輯電路。在多個實施例中,中央處理單元由微處理器單元提供, 諸如位于加州芒廷維尤(Mountain View)的英特爾公司制造的微處理單 元、位于伊利諾斯州的紹姆堡的摩托羅拉公司制造的微處理單元、由位 于加州的圣克拉拉的全美達公司制造的Crusoe和Efficeon系列微處理器 單元、紐約懷特普萊恩斯(白原)市的IBM制造的處理器系列或者加州 桑尼維爾的AMD公司制造的處理器系列。
0021主存儲單元204可以是能夠存儲數(shù)據(jù)并且允許微處理器202 直接訪問任一存儲位置的一個或者多個存儲器芯片,諸如靜態(tài)隨機訪問存 儲器(SRAM)、突發(fā)式SRAM或者同步突發(fā)式SRAM (BSRAM)、動態(tài) 隨機訪問存儲器(DRAM)、快速頁面才莫式DRAM ( FPM DRAM)、增強 型DRAM ( EDRAM )、擴展數(shù)據(jù)輸出RAM ( EDO RAM )、擴展數(shù)據(jù)輸出 DRAM (EDO DRAM)、突發(fā)式擴展數(shù)據(jù)輸出DRAM ( BEDO DRAM )、 增強型DRAM ( EDRAM )、同步DRAN( SDRAM )、 JEDEC SRAM、 PC 100SDRAM 、雙|史據(jù)速率SDRAM ( DDR SDRAM )、增強型SDRAM (ESDRAM)、同步鏈接DRAM ( SLDRAM )、直接存儲器總線DRAM (DRDRAM)或者4失電RAM (FRAM)。在圖2A所示實施例中,處理器 202通過系統(tǒng)總線250 (以下詳述)與主存儲器204通信。圖2B描述計算 系統(tǒng)200的實施例,其中處理器通過存儲器端口與主存儲器204直接通信。 例如,在圖2B中,主存儲器204可以是DRDRAM。
0022圖2A和2B描述的實施例中,主處理器202通過次級總線(有 時也稱為后端總線)和高速緩存存儲器240直接通信。在其它實施例中, 主處理器202使用系統(tǒng)總線250和高速緩存存儲器240通信。高速緩存存 儲器240典型地具有快于主存儲器204的響應(yīng)時間,并且典型地由SRAM、 BSRAM或者EDRAM提供。
0023在圖2A所示實施例中,處理器202通過本地系統(tǒng)總線250 與不同1/O設(shè)備230通信??梢杂糜谶B接中央處理器單元202到所述I/O 設(shè)備230的不同總線包括VESAVL總線、ISA總線、EISA總線、微通 道體系結(jié)構(gòu)(MCA )總線、PCI總線、PCI-X總線、PCI高速總線(PCI-Express bus )或者NuBus。對于I/O i殳備為3見頻顯示器的實施例,處理器202可以 使用加速圖形接口 (AGP)與顯示器通信。圖2B描述的計算機系統(tǒng)200 的實施例中,主處理器202通過超級傳輸(HyperTransport )、快速I/O或 者InfiniBand與I/O i殳備230b直接通信。圖2B還描述了 一個實施例,其 中本地總線和直接通信相混合處理器202使用本地互聯(lián)總線和I/O設(shè)備 230a通信,同時與1/O設(shè)備230b直接通信。
0024大量不同的1/0設(shè)備130可以存在于計算機系統(tǒng)200中,輸 入設(shè)備包括鍵盤、鼠標、跟蹤板、跟蹤球、照相機、攝像機、麥克風和繪 畫板。輸出設(shè)備包括視頻顯示器、揚聲器、噴墨打印機、激光打印機和染 料升華打印機。I/O設(shè)備也可以提供用于計算機系統(tǒng)200的大容量存儲, 諸如硬盤驅(qū)動器、用于接收諸如3.5英寸、5.25英寸盤或者ZIP盤之類的 軟盤的軟驅(qū)、CD-ROM驅(qū)動器、CD-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、 不同格式的磁帶驅(qū)動器、USB存儲設(shè)備(諸如由加州洛斯阿拉密托斯市的 Twintech公司制造的USB閃爍驅(qū)動設(shè)備產(chǎn)品線)。
0025在其它實施例中,I/O設(shè)備230可以是系統(tǒng)總線250與外部 通信總線之間的橋接器,外部通信總線諸如USB總線、蘋果桌面總線 (ADB)、 RS-232串行連接、SCSI總線、FireWire總線、FireWire 800總
10線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總 線、HIPPI總線、超HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖 通道總線或者串行配屬的小型計算機系統(tǒng)接口總線。
0026圖2A和圖2B中描述的通用計算機類型典型地在操作系統(tǒng)的 控制下運行,操作系統(tǒng)控制任務(wù)調(diào)度和對系統(tǒng)資源的訪問。典型的操作系 統(tǒng)包括華盛頓州雷蒙德市微軟公司生產(chǎn)的微軟WINDOWS;加州的庫珀 蒂諾市的蘋果計算機公司生產(chǎn)的MAC OS;紐約Armonk市的IBM生產(chǎn)的 OS/2;和猶他州鹽湖城的卡爾德拉公司發(fā)布的免費使用的Linux,以及其 它操作系統(tǒng)。
0027對于包括移動設(shè)備的實施例,所述設(shè)備可以是能夠運行JAVA 的蜂窩電話,諸如伊利諾伊州的紹姆堡的摩托羅拉公司生產(chǎn)的i55sr、 i58sr、 i85s、或i88s,日本京都的京瓷公司生產(chǎn)的6035或者7135,或者韓國首爾 的三星電子公司生產(chǎn)的i300或者i330。在其它實施例中包括的移動設(shè)備, 移動設(shè)備可以是在PalmOS操作系統(tǒng)控制下運行的個人數(shù)字助理(PDA), 諸如加州米爾皮塔斯市的PalmOne公司生產(chǎn)的Tungsten W、 VII 、 VIIx、 i705 。 在其它實施例中,客戶端113可以為PocketPC操作系統(tǒng)控制下運行的個 人數(shù)字助理(PDA),諸如加州帕洛阿爾托的惠普公司生產(chǎn)的iPAQ4155、 iPAQ5555、 iPAQ1945、 iPAQ2215和iPAQ4255;加州胡桃市ViewSonic公 司生產(chǎn)的ViewSonic V36;或者紐約州紐約市的東芝美國^^司生產(chǎn)的東芝 PocketPCe405。在又一實施例中,移動設(shè)備可以是諸如加州米爾皮塔斯市 的PalmOne7i^司生產(chǎn)的^口 Treo 180、 Treo270、 Treo600、 Treo650、 Treo700、 或Treo700w的PDA/電話設(shè)備的組合。在又一實施例中,移動設(shè)備可以是 在PocketPC操作系統(tǒng)控制下運行的蜂窩電話,諸如摩托羅拉公司生產(chǎn)的 Mpx200。典型的移動i殳備可以包括上述圖2A和2B中描述的多個部件, 包括處理器202和主存儲器204。
0028現(xiàn)在參見圖3,所述方框圖描述方法的一個實施例,該方法用 于通過代理服務(wù)器由虛擬計算環(huán)境提供對所請求資源的訪問。簡要綜述,所 述方法包括接收來自客戶端的標識外部資源的請求(步驟301);發(fā)送對應(yīng) 于所述外部資源的信息的第一請求(步驟303 );接收對所述第一請求的第一 響應(yīng),所述第一響應(yīng)包括狀態(tài)信息(步驟305 );發(fā)送包括URL的文件給所述 客戶端,所述URL標識所述代理服務(wù)器和所述外部資源(步驟307 );從虛擬 計算環(huán)境接收對所述URL的請求(步驟309 );發(fā)送對于所述外部資源的第二請求,所述請求包括所述狀態(tài)信息(步驟311 );接收對所述第二請求的第二 響應(yīng)(步驟313 );并且發(fā)送與所述第二響應(yīng)相應(yīng)的信息到所述虛擬計算環(huán)境 (步驟315 )。雖然所述方法將在以下代理服務(wù)器105執(zhí)行的上下文中描述, 所述方法可以由任一計算設(shè)備按照此處描述執(zhí)行,包括而不限于代理服務(wù)器 105、應(yīng)用服務(wù)器107、網(wǎng)絡(luò)設(shè)備、客戶端代理或者其任意組合。
0029仍舊參見圖3,更詳細的進行描述。代理服務(wù)器105可以接收 來自客戶端113的標識外部資源的請求(步驟301 )??梢酝ㄟ^此處描述的任 一協(xié)議或者多個協(xié)議接收所述請求。外部資源可以包括位于外部服務(wù)器上的 任一資源??梢越邮盏恼埱蟮睦影ǖ幌抻趯eb頁面的請求、對文 檔的請求、對文件的請求以及對web應(yīng)用的請求。在一個實施例中,所述請 求可以是HTTP請求。在另一個實施例中,所述請求可以是FTP請求。在一 些實施例中,所述請求可以伴隨著和所述請求相關(guān)的狀態(tài)信息。例如,HTTP 請求可以包括與這樣一個web站點有關(guān)的cookie, /人所述web站點請求該資 源。在另一實施例中,所述資源可以包括遠程桌面。例如,代理服務(wù)器可以 接收請求以在遠程^/L上打開對應(yīng)于用戶桌面的文件或者應(yīng)用?;蛘?,例如, 所述代理服務(wù)器可以接收請求以打開用來顯示遠程桌面內(nèi)容的web頁面。
0030從客戶端113接收標識外部資源的請求之后(步驟301),所述 代理服務(wù)器105隨后可以發(fā)送對于與所述外部資源對應(yīng)的信息的第一請求 (步驟303 )??梢允褂么颂幩龅娜我粎f(xié)議或者多個協(xié)議發(fā)送第一請求,并 且第一請求可以被發(fā)送到此處所述的任一外部服務(wù)器109。在一些實施例中, 請求可以是用于與所述外部資源對應(yīng)的MIME型信息。例如,代理服務(wù)器105 可以發(fā)送與外部資源對應(yīng)的HTTP頭部請求。
0031發(fā)送對于相應(yīng)于所述外部資源的信息的第一請求之后(步驟 303 );代理服務(wù)器可以接收對所述第一請求的第一響應(yīng),所述第一響應(yīng)包括 狀態(tài)信息(步驟305 )??梢酝ㄟ^此處所述的任一協(xié)議或者多個協(xié)議接收第一 響應(yīng)。在一些實施例中,第一響應(yīng)可以包括HTTP響應(yīng)。在一些實施例中, 第 一響應(yīng)可以包括與所述資源對應(yīng)的MIME類型。
0032狀態(tài)信息可以包括相應(yīng)于客戶端、請求或者連接的任一信息。 在一些實施例中,狀態(tài)信息可以包括cookie。在其它實施例中,cookie可 以包括相應(yīng)于代理服務(wù)器請求或者連接的任一信息。例如,狀態(tài)信息可以包 括cookie,其中cookie包括相應(yīng)于客戶端和外部月艮務(wù)器交互的會話標識符。 或者,例如,狀態(tài)信息可以包括相應(yīng)于客戶端的用戶或者機器標識符?;蛘?,例如,狀態(tài)信息可以是指示允許客戶端訪問資源的標記或者其它標識符。
0033在一些實施例中,代理可以存儲所接收的狀態(tài)信息。代理服務(wù) 器可以存儲狀態(tài)信息在任一存儲器結(jié)構(gòu)或者部件中,包括而不限于數(shù)據(jù)庫、 文件或者高速緩沖存儲器。在一些實施例中,代理可以存儲由客戶端索引的 狀態(tài)信息。在其它實施例中,代理可以存儲由外部資源索引的狀態(tài)信息。在 又一實施例中,代理可以存儲狀態(tài)信息在和給定客戶端連接相關(guān)的存儲器結(jié) 構(gòu)中。
0034在接收對所述第一請求的第一響應(yīng)之后,所述第一響應(yīng)包括狀 態(tài)信息(步驟305 );代理可以發(fā)送包括URL的文件到客戶端,所述URL標識 所述代理和所述外部資源(步驟307 )。該文件可以包括能夠標識代理和資源 的^f壬一文件類型。在一些實施例中,該文件可以包括ICA文件。在又一實施 例中,該文件可以包括RDP文件,在一些實施例中,該文件可以包括標識外 部資源的MIME類型的信息。在其它實施例中,該文件可以包括標識外部資 源的任一其它類型或特征的信息,包括但不限于文件名稱、文件擴展名和文 件大小。
0035在一些實施例中,URL指向代理服務(wù)器中的機制并且指向表示 外部HTTP資源的HTTP狀態(tài)的嵌入標記。在一些實施例中,URL包括這樣一 個標識符,其允許代理服務(wù)器在接收對URL的請求時獲取訪問被請求的資源 所需要的數(shù)據(jù),諸如會話狀態(tài)數(shù)據(jù)(例如,HTTP cookie狀態(tài))和身份驗證 證明。
0036在另一實施例中,所修改的URL可以被當作web代理URL,指 向web代理和嵌入到URL中的外部web資源二者。在一些實施例中,所修改 的 URL 具有如下形 式
http://<servername>/<proxynamespace>/<base64hostname〉/<path>/docu ment,doc。在這些實施例中,〈server畫e〉可以表示可獲得web代理的主機; 〈proxynamespace〉可以為用于標識web 理名稱空間的標記,并且 〈base64hostname〉可以為外部web資源的基于64位編碼位置,其可以包括 協(xié)議和主機名。在這些實施例中,〈path〉可以指外部服務(wù)器的根相對路徑。
0037在一些實施例中,該文件可以包括一個或者多個指令,用于根 據(jù)該資源要打開的應(yīng)用。例如,如果所述資源為微軟WORD文檔,該文件可 以包括打開微軟WORD的指令?;蛘?,例如,如果資源為PDF文檔,所述文 件可以包括打開ADOBE ACROBAT的指令。在其它實施例中,客戶端可以基于外部資源的標識類型確定打開的應(yīng)用。
0038在一些實施例中,該文件包括文件類型關(guān)聯(lián)信息,可以啟動和
資源相關(guān)的類型與可以運行或者提供對資源訪問的應(yīng)用之間的關(guān)聯(lián)。在這些
實施例的其中之一,標簽(ticket)是指FTA標簽,在這些實施例的另一個 中,F(xiàn)TA標簽包括訪問外部web資源所需的附加信息,諸如http驗證和cookie 狀態(tài)。在這些實施例中,F(xiàn)TA標簽具有諸如下述的數(shù)據(jù)庫表格式
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 可以存儲包括請求和響應(yīng)的會
話的會話標識符。變量 Expiration Time 可以存儲會話終止時間,或者可以用作指
示COOkie終止時間。變量Url可以存儲所請求資源的URL。變量CookieData
可以包括相應(yīng)于會話的狀態(tài)信息并且可以包4舌一個或者多個HTTP cookie。
變量C。。kieDataHash可以存〗諸一些或者全部cookie凄t據(jù)的卩合希值,并且可以4吏
14用任一哈希算法計算,包括諸如SHA變體和MD變體的密碼哈希。變量Root
可以存儲根URL或者其它相應(yīng)于會話的標識符。變量MessagelD可以存儲代理 服務(wù)器發(fā)送的或者接收的一個或者多個通信量。變量AttacWD可以存儲相應(yīng)于 發(fā)送到客戶端的ICA文件的標識符。timestamp可以存儲時間戳記,所述時間 戳記相應(yīng)于代理服務(wù)器執(zhí)行事務(wù)處理的時間,所述事務(wù)處理諸如發(fā)送ICA文 件到客戶端。在本地^/L包括客戶代理的實施例中,客戶端代理可以在接收到
該文件時進行實例化。在這些實施例的其中之一,在本地機中的web瀏覽器
上的臨時高速緩沖存儲器內(nèi)的文件位置提供給客戶端代理。
0040發(fā)送包括URL的文件到客戶端之后,所述URL標識所述代理和 所述外部資源(步驟307 ),所述代理可以從虛擬計算環(huán)境接收對于所述URL 的請求(步驟309 )。該請求可以包括任一協(xié)議或者多個協(xié)議。在一些實施例 中,用于URL的i青求可以包括HTTP請求,在一個實施例中,可以從在客戶 端上執(zhí)行的虛擬計算環(huán)境接收請求。在另一實施例中,可以從在服務(wù)器上執(zhí) 行的虛擬計算環(huán)境接收請求。
0041在一些實施例中,虛擬計算環(huán)境可以包括從服務(wù)器到客戶端傳 輸?shù)膽?yīng)用。在其它實施例中,虛擬計算環(huán)境可以包括在服務(wù)器上執(zhí)行的應(yīng)用, 服務(wù)器和客戶端通過諸如RDP或者ICA的表示層協(xié)議通信。在又一實施例中, 虛擬計算環(huán)境可以包括提供到應(yīng)用的訪問的服務(wù)器,其中, 一些或者所有的
應(yīng)用已經(jīng)通過客戶端下載。
0042可以特別形成URL用于向代理指示所述請求是用于外部資源的。 URL可以包括先前標識的與外部資源相關(guān)的任一狀態(tài)信息。URL也可以包括 內(nèi)部標識符,用于向代理服務(wù)器標識所述請求從虛擬計算環(huán)境產(chǎn)生,并且相
應(yīng)于外部資源。
0043在一個實施例中,當web代理處理URL時,web代理確定相關(guān) FTA標簽是否包括驗證信息,并且如果是,提取所需的狀態(tài),并且使用此狀 態(tài)以允許請求在外部web服務(wù)器上被成功批準。在這些實施例的另外一個中, web代理為了訪問資源重新將所提取的狀態(tài)放入到請求中。這導致客戶機的 驗證使得客戶機訪問web應(yīng)用。
0044代理服務(wù)器隨后可以發(fā)送對所述外部資源的第二請求,所述請 求包括所述狀態(tài)信息(步驟311 )。此第二請求可以包括任一協(xié)議,包括而不 限于HTTP。在一些實施例中,第二請求可以包括標識外部資源的HTTP GET (獲取)請求。在一些實施例中,第二請求可以包括含有狀態(tài)信息的一個或者多個cookie。
0045代理服務(wù)器可以隨后接收對第二請求的第二響應(yīng)(步驟313)。 在一些實施例中,第二響應(yīng)可以包括一些或者全部的所請求的資源。在一些 實施例中,第二響應(yīng)可以包括HTTP響應(yīng)。
0046代理服務(wù)器可以隨后發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛 擬計算環(huán)境(步驟315)。該信息可以包括一些或者全部的外部資源。在一些 實施例中,從代理服務(wù)器到虛擬計算環(huán)境的傳輸可以被壓縮、加速和/或用 于安全目的的過濾。在一個實施例中,可以通過網(wǎng)絡(luò)應(yīng)用執(zhí)行所述壓縮、加 速和/或過濾。
0047現(xiàn)在參見圖4,在所示流程圖中描述了通過應(yīng)用服務(wù)器向^皮訪 問的外部資源提供無縫訪問接入的一個例子。簡要綜述,在提供所請求的登 錄信息和會話數(shù)據(jù)之后,客戶端通過以下步驟接收在外部web資源上的資源 的i方問
1、 終端用戶通過選擇web瀏覽器中的鏈接做出請求。該鏈接通過可以 訪問的外部web資源上的字處理文檔指向web代理。
2、 web代理處理該-清求并且標識所代理的請求經(jīng)HTTP應(yīng)該^皮發(fā)送到的 外部web資源的位置。
3、 外部web資源定位所請求的字處理文檔并且下行返回HTTP頭部響應(yīng) 給web代理。
4、 web ^f戈理4妄收該響應(yīng)并且標識和字處理文檔相關(guān)的類型,-渚如MIME 型。Web代理記錄輸入的包括用于訪問URL的所有cookie和http驗證狀態(tài) 的URL HTTP狀態(tài)。所述狀態(tài)對于數(shù)據(jù)庫持久保存,并且web代理接收標簽。 Web代理提供標簽和原始URL給激活業(yè)務(wù)。使用指向URL的參數(shù) LongCo,andName產(chǎn)生諸如ICA文件的文件,其中,URL經(jīng)過web代理,指 向web資源并且包括http上下文標簽。文件被下行發(fā)送到web瀏覽器。在 一些實施例中,URL可以為以下形式
http:〃hostname/CitrixWebProxy/<base64hostname>/path/document.doc
5、 web瀏覽器基于所返回的文件mime類型激活客戶端代理,并且指向 來自瀏覽器緩存中的臨時位置的文件??蛻舳舜磉B接應(yīng)用服務(wù)器。
6、 應(yīng)用服務(wù)器調(diào)用和文件類型相關(guān)的應(yīng)用,其可以是掛鉤的(hooked) 的字處理文件格式。所宿主的應(yīng)用(在此例中為微軟WORD)使用參數(shù) LongCommandName,隨后嘗試通過web代理打開指向外部web資源的原始URL。
167、 web代理標識該請求以及請求的http上下文標簽,并且從數(shù)據(jù)庫獲 耳又存儲的-瞼證狀態(tài)和cookie狀態(tài)。驗證狀態(tài)和cookie狀態(tài)被重新放入到發(fā) 送給資源的上行請求中。
8、 外部web資源接收輸入的請求,嘗試標識輸入請求中的會話cookie, 并且確認所述請求被批準。外部web資源發(fā)送字處理文檔下行返回web代理。
9、 web代理接收下行響應(yīng),并且代理所述響應(yīng)到所宿主的應(yīng)用(此例中 為孩i軟WORD)。
0048在一個實施例中,當本地機上的用戶選擇web瀏覽器中的鏈接 時,來自本地機上的web瀏覽器的初始請求開始下載外部web資源用于激活。 在一些實施例中,本發(fā)明使用兩種從本地機到服務(wù)器的已建立連接。在這些 實施例的其中之一,第一連接可以是指向web代理的從本地機上的web瀏覽 器發(fā)送的HTTP請求。在這些實施例的另一個中,第二連接可以是位于本地 機上的客戶端代理和應(yīng)用服務(wù)器之間的、諸如ICA或者其它表示層協(xié)議連接 的連接。 一旦進行第二連接,宿主在應(yīng)用服務(wù)器上的應(yīng)用使用web代理來提 供HTTP驗證和cookie狀態(tài)給外部web資源,允許資源被訪問。
0049盡管已經(jīng)結(jié)合特定優(yōu)選實施例描述和示出本發(fā)明,但本領(lǐng)域 普通技術(shù)人員應(yīng)該理解,在不脫離所附權(quán)利要求書限定的本發(fā)明的精神和 范圍的情況下,可以作出形式上和細節(jié)上的各種變化。
1權(quán)利要求
1、一種用于通過代理服務(wù)器由虛擬計算環(huán)境提供對所請求資源的訪問的方法,其中,所述資源位于虛擬計算環(huán)境的服務(wù)器系統(tǒng)的外部,所述方法包括(a)接收來自客戶端的、標識外部資源的請求;(b)發(fā)送對于相應(yīng)于所述外部資源的信息的第一請求;(c)接收對所述第一請求的第一響應(yīng),所述第一響應(yīng)包括狀態(tài)信息;(d)發(fā)送給所述客戶端包括URL的文件,所述URL標識所述代理和所述外部資源;(e)從虛擬計算環(huán)境接收對所述URL的請求;(f)發(fā)送對所述外部資源的第二請求,所述請求包括所述狀態(tài)信息;(g)接收對所述第二請求的第二響應(yīng);并且(h)發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛擬計算環(huán)境。
2、 權(quán)利要求l的方法,還包括存儲所述狀態(tài)信息的步驟。
3、 權(quán)利要求l的方法,其中,步驟(b)包括發(fā)送對于相應(yīng)于所述外 部資源的信息的第一 HTTP請求。
4、 權(quán)利要求l的方法,其中,步驟(c)包括接收對所述第一請求的 第一HTTP響應(yīng),所述第一響應(yīng)包括狀態(tài)信息。
5、 權(quán)利要求4的方法,其中,步驟(c)包括接收對于所述第一請求 的第一 HTTP響應(yīng),所述第一響應(yīng)包括相應(yīng)于MIME類型的信息,所述MIME 類型相應(yīng)于所述外部資源。
6、 權(quán)利要求4的方法,其中,步驟(c)包括接收對所述第一請求的 第一HTTP響應(yīng),所述第一響應(yīng)包括HTTP cookie。
7、 權(quán)利要求6的方法,其中,步驟(f)包括發(fā)送對于所述外部資源 的第二請求,所述請求包括含有HTTP cookie的狀態(tài)信息。
8、 權(quán)利要求l的方法,其中,步驟(d)包括通過表示層協(xié)議發(fā)送包 括URL的文件給所述客戶端,所述URL標識所述代理和所述外部資源。
9、 權(quán)利要求8的方法,其中,步驟(d)包括經(jīng)ICA發(fā)送包括URL的 文件給所述客戶端,所述URL標識所述代理和所述外部資源。
10、 權(quán)利要求8的方法,其中,步驟(d)包括經(jīng)RDP發(fā)送包括URL 的文件給所述客戶端,所述URL標識所述代理和所述外部資源。
11、 權(quán)利要求1的方法,其中,步驟(h)包括經(jīng)ICA連接,發(fā)送相 應(yīng)于所述第二響應(yīng)的信息給所述虛擬計算環(huán)境。
12、 一種用于通過代理服務(wù)器由虛擬計算環(huán)境提供對所請求資源的訪 問的計算機系統(tǒng),其中,所述資源位于虛擬計算環(huán)境的服務(wù)器系統(tǒng)的外部, 所述系統(tǒng)包括用于接收來自客戶端的標識外部資源的請求的裝置; 用于發(fā)送對于相應(yīng)于所述外部資源的信息的第一請求的裝置; 用于接收對所述第 一請求的第一響應(yīng)的裝置,所述第 一響應(yīng)包括狀態(tài) 信息;用于發(fā)送給所述客戶端包括URL的文件的裝置,所述URL標識所述代理和所述外部資源;用于從虛擬計算環(huán)境接收對于所述URL的請求的裝置;用于發(fā)送對所述外部資源的第二請求的裝置,所述請求包括所述狀態(tài)信息;用于接收對所述第二請求的第二響應(yīng)的裝置;以及用于發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛擬計算環(huán)境的裝置。
13、 權(quán)利要求12的系統(tǒng),還包括用于存儲所述狀態(tài)信息的裝置。
14、 權(quán)利要求12的系統(tǒng),其中,所述用于發(fā)送第一請求的裝置包括 用于發(fā)送對于相應(yīng)于所述外部資源的信息的第一 HTTP請求的裝置。
15、 權(quán)利要求12的系統(tǒng),其中,所述用于接收第一響應(yīng)的裝置包括用于接收對所述第一請求的第一 HTTP響應(yīng)的裝置,所述第一響應(yīng)包括狀態(tài)信 白
16、 權(quán)利要求15的系統(tǒng),其中,所述用于接收第一響應(yīng)的裝置包括用 于接收相應(yīng)于MIME類型的信息的裝置,所述MIME類型相應(yīng)于所述外部資源。
17、 權(quán)利要求15的系統(tǒng),其中,用于接收第一響應(yīng)的所述裝置包括用 于接收包含HTTP cookie的響應(yīng)的裝置。
18、 權(quán)利要求17的系統(tǒng),其中,發(fā)送第二請求的所述裝置包括用于發(fā) 送對于所述外部資源的第二請求的裝置,所迷請求包括含有HTTP cookie的 狀態(tài)信息。
19、 權(quán)利要求12的系統(tǒng),其中,所述用于發(fā)送文件到所述客戶端的裝 置包括用于通過表示層協(xié)議發(fā)送包括URL的文件給所述客戶端的裝置,所述 URL標識所述代理和所述外部資源。
20、 權(quán)利要求19的系統(tǒng),其中,用于發(fā)送文件到所述客戶端的所述裝 置包括用于經(jīng)ICA發(fā)送包括URL的文件給所述客戶端的裝置,所述URL標識 所述代理和所述外部資源。
21、 權(quán)利要求19的系統(tǒng),其中,用于發(fā)送文件到所述客戶端的所述裝 置包括用于經(jīng)RDP發(fā)送包括URL的文件給所述客戶端的裝置,所述URL標識 所述代理和所述外部資源。
22、 權(quán)利要求12的系統(tǒng),其中,用于發(fā)送相應(yīng)于所述第二響應(yīng)的信息 的所述裝置包括用于經(jīng)ICA連接,發(fā)送相應(yīng)于所述第二響應(yīng)的信息給所述虛 擬計算環(huán)境的裝置。
全文摘要
本發(fā)明涉及用于提供來自代理服務(wù)器的修改的URL到試圖訪問遠程資源的虛擬計算環(huán)境的系統(tǒng)。修改的URL可以包括信息,用于允許接收對URL的請求的代理服務(wù)器產(chǎn)生對于遠程資源的請求,其中,所述請求包括訪問所述資源必須的任一狀態(tài)信息。在發(fā)送所述請求之后,代理服務(wù)器可以接受所請求的資源,并且發(fā)送所述資源到所述應(yīng)用。
文檔編號G06F15/16GK101495990SQ200680052217
公開日2009年7月29日 申請日期2006年12月1日 優(yōu)先權(quán)日2005年12月2日
發(fā)明者J·戴, R·瓦地斯 申請人:思杰系統(tǒng)有限公司