專利名稱:減少系統(tǒng)開銷的tcp通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及客戶機服務(wù)器應(yīng)用程序,例如Web瀏覽器和Web服務(wù)器,之間的通信。具體地說,本發(fā)明涉及在兩個計算機之間以低速或無線通信連接進行通信,一個計算機運行客戶機應(yīng)用程序,另一個計算機運行服務(wù)器應(yīng)用程序,其中通信采用TCP/IP作為通信協(xié)議。
最近對“信息高速公路”的宣傳和強調(diào)已經(jīng)使公眾日益意識到并接受互連網(wǎng)作為公共通信媒體。對互連網(wǎng)作為在多重網(wǎng)絡(luò)之間通信和會話的可視媒體的這種寬廣的認識也已經(jīng)形成廣泛的依靠互連網(wǎng)標準協(xié)議在計算機網(wǎng)絡(luò)間進行對話的既定用戶基礎(chǔ)。
互連網(wǎng)的范型是客戶機-服務(wù)器關(guān)系,其中互連網(wǎng)客戶機(瀏覽器)和互連網(wǎng)服務(wù)器通信。為了提供對互連網(wǎng)更多的訪問,客戶機和服務(wù)器使用的通信協(xié)議和語言都已經(jīng)標準化。這些協(xié)議包括超文本傳輸協(xié)議(HTTP),它是客戶機和服務(wù)器之間通信所使用的通信協(xié)議,及傳輸控制協(xié)議/網(wǎng)間協(xié)議(TCP/IP),它的TCP部分是用于計算機間或應(yīng)用程序之間通信的專用傳輸協(xié)議。被標準化的還有客戶機和服務(wù)器通信所使用的語言,它被稱作超文本標記語言(HTML)。由于這些協(xié)議和語言與機器無關(guān),并且利用無連接最優(yōu)成績協(xié)議來發(fā)送信息,因此各個事項是完全自主的。這樣,例如,從客戶機來的每條信息都含有關(guān)于瀏覽器權(quán)力的信息并且對于將被完成的通信和其它任一通信無關(guān)。這種客戶機和服務(wù)器之間通信的自主特性可稱作為“無狀態(tài)”通信,并且對于指定的通信增加了客戶機和服務(wù)器之間所必須傳輸?shù)臄?shù)據(jù)的數(shù)量。
在全球網(wǎng)客戶機/服務(wù)器應(yīng)用程序語境中,客戶機可是作為用戶界面的網(wǎng)瀏覽器,網(wǎng)瀏覽器將用戶的請求發(fā)進給適當?shù)木W(wǎng)服務(wù)器,并且格式化和顯示從網(wǎng)服務(wù)器返回的HTML數(shù)據(jù)。網(wǎng)瀏覽器同樣估算HTML數(shù)據(jù)以決定在HTML數(shù)據(jù)中是否存在任何要求網(wǎng)瀏覽器啟動的后繼瀏覽器請求的超連接語句。網(wǎng)服務(wù)器作為客戶機的服務(wù)器處理網(wǎng)瀏覽器的請求及以HTTP數(shù)據(jù)流的HTML數(shù)據(jù)部分返回被請求的響應(yīng)。
作為全球網(wǎng)通信的典型例子,網(wǎng)瀏覽器啟動向網(wǎng)服務(wù)器請求“主頁”的情況說明了HTTP,HTML,TCP和網(wǎng)瀏覽器以及網(wǎng)服務(wù)器之間的基本關(guān)系。當網(wǎng)瀏覽器的用戶向某一特定網(wǎng)站請求信息時,網(wǎng)瀏覽器通過向網(wǎng)服務(wù)器發(fā)送一“取得”請求確定所要求的網(wǎng)站,對于本例來說是“主頁”的統(tǒng)一資源定位器(URL),來啟動和網(wǎng)服務(wù)器的通信。URL作為網(wǎng)站的地址,在互聯(lián)網(wǎng)上是統(tǒng)一的。網(wǎng)服務(wù)器隨后獲得并傳輸對應(yīng)于由URL確定的主頁的HTML數(shù)據(jù)給網(wǎng)瀏覽器。這種操作包含在互聯(lián)網(wǎng)上由互聯(lián)網(wǎng)服務(wù)器進行的遠程通信或URL可確定瀏覽器所連接的局域網(wǎng)中的服務(wù)器。網(wǎng)瀏覽器隨后估價從網(wǎng)服務(wù)器以HTTP數(shù)據(jù)流接收到的HTML數(shù)據(jù)以查看其中是否嵌入有任何超級連接,例如一個圖標或圖像,如果存在這樣的超級連接就啟動確定超級連接的URL的請求以獲得確定的數(shù)據(jù)。這些數(shù)據(jù)隨后被編入主頁并顯示給用戶。如這個簡單例子所示,由網(wǎng)瀏覽器發(fā)送的單用戶輸入請求可導致由網(wǎng)瀏覽器自動執(zhí)行的多個附加的請求以響應(yīng)對應(yīng)于用戶輸入請求的HTML數(shù)據(jù)的接收。
基于互聯(lián)網(wǎng)的系統(tǒng)的基本通信結(jié)構(gòu)描述于
圖1。在圖1中,網(wǎng)瀏覽器10通過通信鏈接15和網(wǎng)服務(wù)器20通信連接。這種通信鏈接是典型的局域網(wǎng)連接、廣域網(wǎng)連接、通過電話線的連接或多種連接方式的組合。網(wǎng)瀏覽器10和網(wǎng)服務(wù)器20采用TCP/IP通信。對于互聯(lián)網(wǎng)通信的大部分,網(wǎng)瀏覽器和網(wǎng)服務(wù)器采用通過網(wǎng)瀏覽器和網(wǎng)服務(wù)器之間的TCP/IP鏈接在網(wǎng)瀏覽器和網(wǎng)服務(wù)器之間傳輸?shù)念悓偻ㄐ艆f(xié)議HTTP進行通信。網(wǎng)瀏覽器10和網(wǎng)服務(wù)器20之間實際上傳輸?shù)臄?shù)據(jù)是如上所述的HTTP數(shù)據(jù)對象(例如HTML數(shù)據(jù))。網(wǎng)服務(wù)器20可能是一代理者,它從若干網(wǎng)瀏覽器接收網(wǎng)瀏覽器通信并將這些通信傳輸給適當?shù)姆?wù)器。
網(wǎng)瀏覽器/網(wǎng)服務(wù)器、他們的共有信息和傳輸協(xié)議、HTML和HTTP的普及已經(jīng)使公眾很快接受網(wǎng)技術(shù)作為網(wǎng)絡(luò)訪問信息的通用界面。此外,由于用于網(wǎng)瀏覽器和網(wǎng)服務(wù)器之間通信的協(xié)議和語言的標準化,從而不論用戶使用Netscape NavigatorTM,NCSA MosaicTM,WebExplorerTM或其它任何網(wǎng)瀏覽器作為他們訪問網(wǎng)絡(luò)信息的網(wǎng)瀏覽器,通信協(xié)議和語言都是相同的。從而,和互聯(lián)網(wǎng)連通性相結(jié)合的網(wǎng)瀏覽器的大量已安裝的用戶基礎(chǔ),網(wǎng)應(yīng)用程序編寫容易及服務(wù)器采用HTTP規(guī)定的公共網(wǎng)關(guān)接口(CGI)使網(wǎng)技術(shù)對于大多數(shù)格式型應(yīng)用程序具有很大的吸引力。
在互聯(lián)網(wǎng)越來越普及,被越來越多的人接受的同時,移動式計算也越來越普及。膝上型計算機、筆記本式計算機、個人數(shù)字/通信助理器(PDAS/PCAS)及其它便攜式設(shè)備已經(jīng)使得對無線通信的要求增加。但是,無線廣域網(wǎng),蜂窩式通信和無線電分組通信如果用于網(wǎng)語境中都將受到同樣的限制。通信每個字節(jié)的高費用,反應(yīng)時間慢,帶寬低及不可靠性都妨礙無線技術(shù)應(yīng)用于全球網(wǎng)的無狀態(tài)通信協(xié)議。另外,由于網(wǎng)協(xié)議無狀態(tài),通過無線連接傳輸?shù)拿看握埱蟮臄?shù)據(jù)量和請求的次數(shù)都將大于非自主式通信所必需的數(shù)據(jù)量及請求次數(shù)。這樣,由于網(wǎng)技術(shù)通用性方面的因素加重了無線技術(shù)的弱點,因此將無線技術(shù)或任何低速通信技術(shù)和網(wǎng)技術(shù)結(jié)合看起來是不實際的。
鑒于上述的局限性,本發(fā)明的一個目的是提供一種減少用于應(yīng)用程序之間傳輸數(shù)據(jù)的系統(tǒng)開銷的數(shù)量的通信系統(tǒng)。
本發(fā)明的另一個目的是提供一種可使用于網(wǎng)瀏覽器/網(wǎng)服務(wù)器環(huán)境中的通信系統(tǒng)。
本發(fā)明的又一個目的是和低速或無線通信系統(tǒng)中現(xiàn)有的通信協(xié)議和語言兼容,而不需要修改網(wǎng)瀏覽器或網(wǎng)服務(wù)器應(yīng)用程序。
本發(fā)明的另一目的是提供一種通信系統(tǒng),這種系統(tǒng)在應(yīng)用程序之間利用TCP/IP通信協(xié)議進行通信時能減少所要求的通信量,并由此提高通信系統(tǒng)的性能。
鑒于這些和其它目的,本發(fā)明提供一種減少通過通信鏈接從駐留于第一計算機中的第一應(yīng)用程序傳輸?shù)今v留于第二計算機中的第二應(yīng)用程序的數(shù)據(jù)的方法,其中通過外部通信鏈接采用TCP通信協(xié)議從第一計算機將數(shù)據(jù)傳輸?shù)降诙嬎銠C。該方法包括為響應(yīng)第一應(yīng)用程序發(fā)出的各個連接請求在第一計算機中建立接收源于第一應(yīng)用程序的請求數(shù)據(jù)的第一虛擬插口。在第一計算機中建立第一實插口并在第二計算機中建立第二實插口,以通過外部通信鏈接連接第一計算機和第二計算機。在第二計算機中對于第一應(yīng)用程序發(fā)出的各個連接請求建立第二虛擬插口,其中第二虛擬插口對應(yīng)于在第一計算機中建立的、響應(yīng)第一應(yīng)用程序發(fā)出的連接請求的第一虛擬插口。和第一虛擬插口相聯(lián)系的請求數(shù)據(jù)多路傳輸?shù)降谝粚嵅蹇诓⑼ㄟ^外部通信鏈接采用TCP協(xié)議傳輸給第二實插口。第二實插口從外部通信鏈接接收到多路傳輸?shù)恼埱髷?shù)據(jù)并且進行多路分離。被多路分離后的請求數(shù)據(jù)被提供給對應(yīng)于響應(yīng)第一應(yīng)用程序的請求建立的第一虛擬插口的第二虛擬插口。第二虛擬插口接收到的請求數(shù)據(jù)被提供給第二應(yīng)用程序。此外,維持第一和第二實插口直到對應(yīng)于建立第一虛擬插口的第一應(yīng)用程序發(fā)出的請求的請求數(shù)據(jù)已被提供給第二應(yīng)用程序為止。
在本發(fā)明的另一個實施例中,在和第一應(yīng)用程序發(fā)出的請求相關(guān)的第二虛擬插口,從第二應(yīng)用程序接收響應(yīng)第一應(yīng)用程序發(fā)出的請求的響應(yīng)數(shù)據(jù)。第二虛擬插口接收的響應(yīng)數(shù)據(jù)被多路傳輸?shù)降诙嵅蹇诓⑼ㄟ^外部通信鏈接傳輸給第一實插口。第一實插口通過外部通信鏈接接收多路傳輸?shù)捻憫?yīng)數(shù)據(jù)并且進行多路分離。多路分離后的響應(yīng)數(shù)據(jù)被提供給對應(yīng)于第一應(yīng)用程序發(fā)出的請求的第一虛擬插口作為對第一應(yīng)用程序的請求的響應(yīng)。第一虛擬插口將其接收到的響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序。
在本發(fā)明的另一個實施例中,在響應(yīng)數(shù)據(jù)被多路傳輸后,關(guān)閉第二虛擬插口。在響應(yīng)數(shù)據(jù)被提供給第一應(yīng)用程序后,關(guān)閉第一虛擬插口。
在本發(fā)明的一個備選實施例中,當所有的第一虛擬插口被關(guān)閉時關(guān)閉第一和第二實插口?;蛘?,在所有的第一虛擬插口被關(guān)閉后一預定時間關(guān)閉第一和第二實插口。
在本發(fā)明的一個特定情況中,第一應(yīng)用程序包括網(wǎng)服務(wù)器,第二應(yīng)用程序包括網(wǎng)瀏覽器。在本發(fā)明的另一種情況中,外部通信鏈接包括無線通信鏈接。
如同將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,上面所述的本發(fā)明的各種情況也可以以設(shè)備或具有計算機可讀程序方法的程序產(chǎn)品的方式提供。
附圖簡要說明圖1是典型的網(wǎng)瀏覽器/網(wǎng)服務(wù)器系統(tǒng)的方框圖;圖2是根據(jù)本發(fā)明的利用客戶機截取和服務(wù)器截取的實施例的網(wǎng)瀏覽器/網(wǎng)服務(wù)器的方框圖;圖3是描述在本發(fā)明的一個實現(xiàn)相干超高速緩存系統(tǒng)的最佳實施例中由客戶機截取模塊執(zhí)行的操作的流程圖;圖4是描述在本發(fā)明的一個實現(xiàn)相干超高速緩存系統(tǒng)的最佳實施例中由客戶機截取模塊執(zhí)行的操作的流程圖;圖5是描述在本發(fā)明的一個實現(xiàn)相干超高速緩存系統(tǒng)的最佳實施例中由服務(wù)器截取模塊執(zhí)行的操作的流程圖;圖6是描述在本發(fā)明的一個實現(xiàn)相干超高速緩存系統(tǒng)的最佳實施例中由客戶機截取模塊執(zhí)行的操作的流程圖;圖7是描述在本發(fā)明的一個實現(xiàn)差分數(shù)據(jù)傳輸?shù)淖罴褜嵤├杏煽蛻魴C截取模塊執(zhí)行的操作的流程圖;圖8是描述在本發(fā)明的一個實現(xiàn)差分數(shù)據(jù)傳輸?shù)淖罴褜嵤├杏煽蛻魴C截取模塊執(zhí)行的操作的流程圖;圖9是描述在本發(fā)明的一個實現(xiàn)差分數(shù)據(jù)傳輸?shù)淖罴褜嵤├杏煞?wù)器截取模塊執(zhí)行的操作的流程圖;圖10是描述在本發(fā)明的一個實現(xiàn)差分數(shù)據(jù)傳輸?shù)淖罴褜嵤├杏煞?wù)器截取模塊執(zhí)行的操作的流程圖;圖11為本發(fā)明采用虛擬插口的一種情況的方框圖;圖12為根據(jù)本發(fā)明采用虛擬插口的一個實施例的客戶機截取模塊和服務(wù)器截取模塊的方框圖;圖13為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的客戶機截取模塊或者服務(wù)器截取模塊的插口管理器執(zhí)行的操作的流程圖;圖14為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的客戶機截取功能執(zhí)行的操作的流程圖;圖15為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的服務(wù)器截取功能執(zhí)行的操作的流程圖;圖16-1為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬產(chǎn)生操作的流程圖;圖16-2為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬發(fā)送操作的流程圖;圖16-3為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬接收操作的流程圖16-4為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬選擇操作的流程圖;圖17-1為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬刷新操作的流程圖;圖17-2為描述根據(jù)本發(fā)明采用虛擬插口的一個實施例的虛擬關(guān)閉操作的流程圖;詳細說明本發(fā)明在下文將參照附圖予以詳細說明,其中表示出了本發(fā)明的最佳實施例。但是,本發(fā)明也可表現(xiàn)為多種不同的形式,不應(yīng)當被認為局限于在此所陳述的這些實施例;相反,提供這些實施例使本發(fā)明公開徹底完全,并將向本領(lǐng)域有經(jīng)驗的人員完全通報本發(fā)明的范圍。從頭至尾,同樣的數(shù)碼代表同樣的部分。
圖3到圖10和圖13到圖17-2是說明根據(jù)本發(fā)明的方法和系統(tǒng)的流程圖。需要明白的是流程圖的每一個方框及流程圖中方框的組合都可用計算機程序指令實現(xiàn)。這些計算機程序指令可裝入計算機或其它可編程設(shè)備以產(chǎn)生一臺機器,從而這些在計算機或其它可編程設(shè)備上執(zhí)行的指令產(chǎn)生用于實現(xiàn)流程圖方框或方框組合中所規(guī)定的功能的裝置。這些計算機程序指令也可存入可控制計算機或其它可編程設(shè)備以特定的方式運行的計算機可讀存儲器中,從而存儲于計算機可讀存儲器中的指令產(chǎn)生一種包括實現(xiàn)流程圖方框或方框組合中規(guī)定的功能的指令裝置的產(chǎn)品。計算機程序指令也可裝入計算機或其它可編程設(shè)備以產(chǎn)生一系列在計算機或其它可編程設(shè)備上完成的操作步驟以產(chǎn)生一種計算機執(zhí)行的方法,從而在計算機或其它可編程設(shè)備上執(zhí)行的指令提供實現(xiàn)流程圖方框或方框組合中規(guī)定的功能的步驟。
于是,流程圖中的方框支持實現(xiàn)特定功能的裝置的組合及實現(xiàn)特定功能的步驟的組合。同樣需要明白的是,流程圖的每一個方框或方框的組合可由基于特定目的的硬件的計算機系統(tǒng)來實現(xiàn),這種計算機系統(tǒng)實現(xiàn)特定目的的硬件和計算機指令的特定功能或步驟或它們的組合。
圖2說明了本發(fā)明的一個實施例。如圖2所示,網(wǎng)瀏覽器10和客戶機截取模塊30連接。網(wǎng)服務(wù)器20和服務(wù)器截取模塊40連接??蛻魴C截取模塊30隨后通過通信鏈路35和服務(wù)器截取模塊40通信。網(wǎng)瀏覽器10和客戶機截取模塊30可包含于第一計算機5中。服務(wù)器截取模塊40和網(wǎng)服務(wù)器20可包含于第二計算機6中。第一計算機5和第二計算機6通過外部通信鏈路35通信。
具體地說,網(wǎng)瀏覽器10是采用超文本傳輸協(xié)議(HTTP)和超文本標記語言(HTML)和也是采用HTTP和HTML的互連網(wǎng)網(wǎng)服務(wù)器20通信的互連網(wǎng)網(wǎng)瀏覽器。在操作上,網(wǎng)瀏覽器10輸出由客戶機截取模塊30截取的HTTP數(shù)據(jù)流??蛻魴C截取模塊30對HTTP數(shù)據(jù)流的截取可通過使用TCP/IP回送性能來完成,其中客戶機截取模塊駐留于網(wǎng)絡(luò)號為127,例如127.0.0.1的IP地址。隨后客戶機截取模塊30將HTTP數(shù)據(jù)流轉(zhuǎn)換或變換為客戶機/服務(wù)器專用協(xié)議并通過外部通信鏈接35傳輸客戶機/服務(wù)器專用數(shù)據(jù)流。服務(wù)器截取模塊40接收客戶機/服務(wù)器專用數(shù)據(jù)流并重新產(chǎn)生對應(yīng)于源于網(wǎng)瀏覽器的通信的最初的HTTP數(shù)據(jù)流。重新產(chǎn)生的HTTP數(shù)據(jù)流隨后被傳輸?shù)骄W(wǎng)服務(wù)器20。網(wǎng)服務(wù)器20以互聯(lián)網(wǎng)網(wǎng)服務(wù)器常規(guī)的方式響應(yīng)該HTTP數(shù)據(jù)流。如將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,網(wǎng)服務(wù)器20也可是允許多重瀏覽器和互聯(lián)網(wǎng)連接的代理者。
當網(wǎng)服務(wù)器20接收到向網(wǎng)瀏覽器10傳輸?shù)?,例如,響?yīng)瀏覽器請求特定URL主頁的信息時,網(wǎng)服務(wù)器20輸出對應(yīng)于將被發(fā)送給網(wǎng)瀏覽器10的通信的HTTP數(shù)據(jù)流。這種源于網(wǎng)服務(wù)器的通信被服務(wù)器截取模塊40截取并被轉(zhuǎn)換為客戶機/服務(wù)器專用數(shù)據(jù)流。對應(yīng)于源于網(wǎng)服務(wù)器的通信的客戶機/服務(wù)器專用數(shù)據(jù)流隨后在外部通信鏈接35上從第二計算機發(fā)送給第一計算機。客戶機截取模塊30接收客戶機/服務(wù)器專用數(shù)據(jù)流并且重新產(chǎn)生對應(yīng)于源于網(wǎng)服務(wù)器的通信的最初的HTTP數(shù)據(jù)流,并將該HTTP數(shù)據(jù)流提供給網(wǎng)瀏覽器10。
在本發(fā)明的一個特定實施例中,外部通信鏈接35是無線通信鏈接。在這種情況下,為了獲得用戶能夠接受的系統(tǒng)性能,需要在通信頻率和必須在外部通信鏈接35上傳輸?shù)男畔?shù)量兩方面減少在外部通信鏈接35上的通信數(shù)量。因此,本發(fā)明采用超高速緩存,差分和協(xié)議還原技術(shù)來減少在外部通信鏈接35上要求的通信數(shù)量。這些技術(shù)通過將HTTP無狀態(tài)或隨機協(xié)議轉(zhuǎn)換為利用特定于客戶機和服務(wù)器的客戶機/服務(wù)器專用協(xié)議來減少通信的數(shù)量和頻率。
雖然本發(fā)明已經(jīng)以及將要說明的都是對于單網(wǎng)瀏覽器應(yīng)用程序和單網(wǎng)服務(wù)器應(yīng)用程序,但是如同將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,本發(fā)明的好處和優(yōu)點也可在和單網(wǎng)服務(wù)器相聯(lián)系的多重網(wǎng)瀏覽器上實現(xiàn)。這樣,本發(fā)明的方法,設(shè)備和程序產(chǎn)品就和多重瀏覽器相聯(lián)系,該多重瀏覽器中的每個瀏覽器各與一個客戶機截取模塊相連,并且這此客戶機截取模塊隨后和網(wǎng)服務(wù)器或網(wǎng)代理者的服務(wù)器截取模塊通信。
在本發(fā)明的一個實施例中,客戶機截取模塊30和服務(wù)器截取模塊40都具有超高速緩存能力。駐留于第一計算機的客戶機超高速緩存存儲將由網(wǎng)瀏覽器接收到的響應(yīng)源于網(wǎng)瀏覽器的通信的HTTP數(shù)據(jù)流。駐留于第二計算機的服務(wù)器超高速緩存存儲從網(wǎng)服務(wù)器接收到的響應(yīng)瀏覽器開始的通信的HTTP數(shù)據(jù)流。
如同將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,駐留于第一計算機或第二計算機中的超高速緩存的大小任意,取決于計算機的特定硬件的配置情況。這些超高速緩存存儲每次通信的信息,包括,通信的URL,基于通信內(nèi)容的獨特標識符,例如通信數(shù)據(jù)的循環(huán)冗余檢驗(CRC),指示超高速緩存入口產(chǎn)生或被刷新的存儲數(shù)據(jù)時間(SDT)及通信的數(shù)據(jù)。這樣對于每個存儲于超高速緩存中的通信可以產(chǎn)生一個超高速緩存入口目錄。此外,由于任意給定硬件配置中的可用資源限,可利用本領(lǐng)域有經(jīng)驗人員知道的任何維持超高速緩存駐留于第一計算機和第二計算機的超高速緩存的技術(shù)。這樣,例如,如果添加新的入口而超出了用戶確定的超高速緩存的大小,那么超高速緩存可使最先的目錄入口無效,隨后將新入口添加到被無效的入口的位置。此外,超高速緩存入口可跨過網(wǎng)瀏覽器或網(wǎng)服務(wù)器應(yīng)用程序的多個實例或第一計算機或第二計算機中的偶數(shù)加電循環(huán)中被維持以產(chǎn)生持久的超高速緩存。
下面將參考描述客戶機截取模塊30和服務(wù)器截取模塊40的操作的流程3到圖6來說明根據(jù)本發(fā)明一個情況的超高速緩存結(jié)構(gòu)的操作。
參見圖3,框100指示客戶機截取模塊已接收到從網(wǎng)瀏覽器10來的請求。該請求可采取HTTP數(shù)據(jù)流的形式??蛻魴C截取模塊30檢查來到的請求的統(tǒng)一資源定位器(URL),如框105所示??蛻魴C截取模塊30從URL中確定對應(yīng)于源于網(wǎng)瀏覽器的請求的信息是否已存入駐留于第一計算機的客戶機超高速緩存中。
如果對應(yīng)于URL的信息沒有存入客戶機超高速緩存,那么客戶機截取模塊執(zhí)行框106描述的操作。客戶機截取模塊30在外部通信鏈接35上向服務(wù)器截取模塊40傳輸一個請求。
然而如果詢問源于網(wǎng)瀏覽器的通信,如框105所描述,存在對應(yīng)于源于網(wǎng)瀏覽器的通信的客戶超高速緩存入口,那么在最簡單的實施例中,這個信息以HTTP數(shù)據(jù)流的形式被提供給網(wǎng)瀏覽器。然而,如圖3所示,本發(fā)明的最佳實施例實現(xiàn)的是在此稱為對對應(yīng)于源于網(wǎng)瀏覽器的通信的超高速緩存入口的相干性間隔檢查。該操作如圖3的框110所示。
客戶機截取模塊的相干性間隔由用戶確定,它是超高速緩存入口失效前存在的時間長度,并且即使給出,也必須通過從網(wǎng)服務(wù)器請求對應(yīng)于源于網(wǎng)瀏覽器的通信的信息來刷新???10反映的相干性間隔檢查通過將當前日期和時間與對應(yīng)于源于網(wǎng)瀏覽器的通信的超高速緩存入口的SDT和用戶確定的相干性間隔之和作比較來完成。如果當前日期和時間大于這個總和,那么存儲于超高速緩存中對應(yīng)于源于網(wǎng)瀏覽器的通信的信息已無效,就選取框110的“否”支路。但是,如果當前日期和時間小于SDT加上用戶確定的相干性間隔之和,則選取框110的“是”支路,并且如框111所示,超高速緩存入口以HTTP數(shù)據(jù)流的形式被提供給瀏覽器,從而完成圖3中框100中的客戶機截取模塊接收到的瀏覽器開始的通信。
如果框110所示的相干性間隔檢查確定駐留于第一計算機的超高速緩存入口無效,那么向服務(wù)器截取模塊發(fā)出檢查駐留于第二計算機中的超高速緩存入口的相干性的請求。該操作示于圖3的框112中。通過外部通信鏈接35向服務(wù)器截取模塊40提供特定客戶機截取模塊30的相干性間隔,網(wǎng)瀏覽器10開始的HTTP請求以及對應(yīng)于源于網(wǎng)瀏覽器的通信的URL的客戶機超高速緩存的內(nèi)容的獨特標記來完成這一操作。在一最佳實施例中,這種獨特的標記是循環(huán)冗余檢驗的結(jié)果或超高速緩存入口的CRC。
現(xiàn)在參看圖5,它反映的是響應(yīng)通過外部通信鏈接35從客戶機截取模塊30接收的信息的服務(wù)器截取模塊操作。當服務(wù)器截取模塊40從客戶機截取模塊接收一個請求時,服務(wù)器截取模塊40接收到預定的客戶機相干性時間間隔,客戶機超高速緩存入口的CRC及源于網(wǎng)瀏覽器的HTTP請求,對這些信息的接收示于圖5的框120中。
在從客戶機截取模塊30接收這些信息后,服務(wù)器截模塊40檢查它的駐留于第二計算機中的服務(wù)器超高速緩存以確定是否存在對應(yīng)于源于網(wǎng)瀏覽器的HTTP請求的URL的服務(wù)器超高速緩存入口。在詢問源于網(wǎng)瀏覽器的通信,如框125所示之后,如果服務(wù)器截取模塊40確定存在對應(yīng)于源于網(wǎng)瀏覽器的通信請求的信息的超高速緩存入口,則選取框125的“是”支路。隨后服務(wù)器截取模塊40將服務(wù)器截取模塊40的當前日期和時間與對應(yīng)于源于網(wǎng)瀏覽器的通信請求的信息的服務(wù)器超高速緩存入口的SDT和從客戶機截取模塊接收到的預定客戶機相干性時間間隔之和作比較。
如果當前日期和時間小于服務(wù)器超高速緩存入口的SDT及相干性時間間隔之和,則選取圖5的框130的“是”路徑。服務(wù)器截取模塊40隨后將服務(wù)器超高速緩存入口的CRC和客戶機超高速緩存入口的CRC作比較以確定這兩個超高速緩存入口是否相同。如果這兩個超高速緩存入口相同,則選取框135的“是”路徑,如框136所示,一個“相干”響應(yīng)被發(fā)送給客戶機截取模塊30。
如果框135的條件確定CRC們不相同,那么包含于客戶機超高速緩存中和服務(wù)器超高速緩存中的信息不相同,如框137所示,服務(wù)器截取模塊通過外部通信鏈接向第一計算機發(fā)送服務(wù)器超高速緩存入口。向客戶機截取模塊30發(fā)送服務(wù)器超高速緩存入口時,服務(wù)器截取模塊將入口轉(zhuǎn)換為包含服務(wù)器超高速緩存入口的CRC,服務(wù)器超高速緩存入口數(shù)據(jù)及服務(wù)器超高速緩存入口時期的客戶機專用通信協(xié)議,從當前日期和時間中減去超高速緩存入口的SDT計算得到服務(wù)器超高速緩存入口的時期。
最后,對于圖5,如果SDT和預定的客戶機相干性時間間隔之和小于當前日期和時間或者不存在對應(yīng)于源于網(wǎng)瀏覽器的通信的URL的超高速緩存入口,那么就分別選取框130或框125的“否”支路。這樣,將執(zhí)行框126的操作,并且服務(wù)器截取模塊40將向服務(wù)器以HTTP數(shù)據(jù)流發(fā)送源于網(wǎng)瀏覽器的通信。如果服務(wù)器截取模塊40必須向服務(wù)器以HTTP數(shù)據(jù)流發(fā)送源于網(wǎng)瀏覽器的通信,那么服務(wù)器截取模塊40將執(zhí)行圖6的操作。
如圖6框140所示,為響應(yīng)源于網(wǎng)瀏覽器的通信,服務(wù)器截取模塊將從網(wǎng)服務(wù)器接收HTTP數(shù)據(jù)流,接收HTTP數(shù)據(jù)流時,服務(wù)器截取模塊40將計算HTTP數(shù)據(jù)流的CRC并且暫時存儲HTTP數(shù)據(jù)流,隨后,如框145所示,服務(wù)器截取模塊詢問HTTP數(shù)據(jù)流并且確定是否存在對應(yīng)于HTTP數(shù)據(jù)流的URL的服務(wù)器超高速緩存入口。如果這樣的入口確實存在,那么執(zhí)行框145的“是”支路。隨后服務(wù)器截取模塊40將最新計算得到的從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流的CRC和對應(yīng)于源于網(wǎng)服務(wù)器的通信響應(yīng)通信的URL的服務(wù)器超高速緩存入口的CRC相比較,如框150所示。如果兩個CRC是相同的,那么執(zhí)行框150的“是”支路。服務(wù)器截取模塊40更新用于服務(wù)器超高速緩存入口的SDT,如框151所示,并且將暫時存儲的從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流清空,如框152所示。
如果CRC比較的結(jié)果表明服務(wù)器超高速緩存入口不同于從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流,那么就執(zhí)行框150的“否”支路。服務(wù)器截取模塊40從服務(wù)器超高速緩存中除去存在的數(shù)據(jù),如框153所示,并且如框154所示,用新的信息更新服務(wù)器超高速緩存。如框154所示,這種更新包括在服務(wù)器超高速緩存中存入網(wǎng)服務(wù)器通信的CRC,存入作為超高速緩存入口的部分的當前日期和時間作為超高速緩存入口的SDT,及存入HTTP數(shù)據(jù)流。在任一情況下,不論服務(wù)器超高速緩存入口被更新還是發(fā)現(xiàn)服務(wù)器超高速緩存入口和從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流相同,隨后服務(wù)器截取模塊都要確定服務(wù)器超高速緩存入口是否和對應(yīng)于源于網(wǎng)瀏覽器的通信的客戶機超高速緩存入口一樣。這個操作如框155所示。
如果服務(wù)器截取模塊40確定對應(yīng)于從網(wǎng)服務(wù)器20接收到的響應(yīng)的超高速緩存入口不存在,那么就選取框145的“否”支路。通過存入從網(wǎng)服務(wù)器來的響應(yīng)的URL,通過存入從網(wǎng)服務(wù)器來的響應(yīng)的CRC,通過存入HTTP數(shù)據(jù)流,以及通過存入作為SDT的當前日期和時間來產(chǎn)生一個服務(wù)器超高速緩存入口,如框146所示。在產(chǎn)生了一個對應(yīng)于源于網(wǎng)瀏覽器的通信的超高速緩存入口后,服務(wù)器截取模塊4 0再次將這一服務(wù)器超高速緩存入口的CRC和相應(yīng)的客戶機超高速緩存入口的CRC作比較,如框155所示。
如果服務(wù)器超高速緩存入口和客戶機超高速緩存入口比較的結(jié)果表示這兩個超高速緩存入口相同,那么選取框155的“是”支路并且執(zhí)行框156的操作。在框156中可看出,服務(wù)器截取模塊40向客戶機截取模塊30發(fā)送一相干響應(yīng)。服務(wù)器截取模塊40通過向客戶機截取模塊發(fā)送相干響應(yīng)和發(fā)送零時期將服務(wù)器請求超高速緩存入口轉(zhuǎn)換為客戶機/服務(wù)器專用數(shù)據(jù)流。
如果服務(wù)器截取模塊40確定客戶機超高速緩存入口不同于對應(yīng)于源于網(wǎng)瀏覽器的通信的服務(wù)器超高速緩存入口,那么就選取框155的“否”支路并執(zhí)行框157的操作。如框157所示,服務(wù)器截取模塊40將服務(wù)器超高速緩存入口轉(zhuǎn)換或變換為客戶機/服務(wù)器專用數(shù)據(jù)流。該數(shù)據(jù)流包括服務(wù)器超高速緩存入口的CRC,服務(wù)超高速緩存入口HTTP數(shù)據(jù)流以及被設(shè)定為零的超高速緩存入口的時期。這個客戶機/服務(wù)器專用通信隨后通過外部通信鏈接35傳輸給客戶機截取模塊30。
現(xiàn)在參考圖4來說明在接收從服務(wù)器截取模塊來的通信時客戶機截取模塊30的功能。如框160所示,客戶機截取模決30接收或獲得通過外部通信鏈接35傳輸?shù)目蛻魴C/服務(wù)器專用數(shù)據(jù)流??蛻魴C截取模塊隨后確定從服務(wù)器截取模塊40接收的響應(yīng)的類型,如框165所示。如果服務(wù)器截取模塊40指示客戶機超高速緩存入口相干,即,服務(wù)器超高速緩存入口和客戶超高速緩存入口相同,那么,執(zhí)行框166所示的操作。如框166所示,客戶機截取模塊30用當前日期和時間與從服務(wù)器截取模塊40接收到的時期的差分更新對應(yīng)于源于網(wǎng)瀏覽器的通信的客戶超高速緩存入口的SDT。這樣,沒有使第一計算機5和第二計算機6的時鐘同步,本發(fā)明就已修正了第一計算機的超高速緩存入口的相干時間以反映第二計算機的新數(shù)據(jù)。在更新對應(yīng)于源于網(wǎng)瀏覽器的通信的客戶機超高速緩存入口的SDT之后,客戶機截取模塊30將客戶機超高速緩存入口以HTTP數(shù)據(jù)流傳輸給網(wǎng)瀏覽器10。這個操作示于框174。
然而,如果客戶機截取模塊30確定響應(yīng)類型為數(shù)據(jù)或數(shù)據(jù)流響應(yīng),那么就選取框165的“流”路徑,并且執(zhí)行框167的操作。客戶機截取模塊30接收HTTP數(shù)據(jù)流并且暫時存儲這一數(shù)據(jù)。隨后,如圖4框170所示,客戶機截取模塊30確定對應(yīng)于源于網(wǎng)瀏覽器的通信的超高速緩存入口是否存在。如果存在超高速緩存入口,那么選取框170的“是”路徑,如框171所示,已存在的超高速緩存入口被刷新??蛻魴C截取模塊隨后通過存入從服務(wù)器截取模塊40接收的HTTP數(shù)據(jù)流的CRC,通過存入作為SDT的當前日期和時間與從服務(wù)器截取模塊40接收到的時期之間的差分,以及通過存入HTTP數(shù)據(jù)流來更新對應(yīng)于源于網(wǎng)瀏覽器的通信的客戶機超高速緩存入口。這一操作示于框172。
如果不存在對應(yīng)于源于網(wǎng)瀏覽器的通信的超高速緩存入口,那么選取框170的“否”路徑。通過執(zhí)行示于框173的操作產(chǎn)生一個客戶機超高速緩存入口。如框173所示,客戶機截取模塊30通過存入從服務(wù)器截取模塊40接收到的HTTP數(shù)據(jù)流的URL,通過存入從服務(wù)器截取模塊40接收到的HTTP數(shù)據(jù)流的CRC以及通過存入HTTP數(shù)據(jù)流來產(chǎn)生客戶機超高速緩存入口??蛻魴C截取模塊30也通過從當前日期和時間中減去通過外部通信鏈接35從服務(wù)器截取模塊40接收到的時期來更新SDT或者存入SDT。
然而,不論通過框166,172或173的操作,都將產(chǎn)生一個客戶機超高速緩存入口,客戶機截取模塊以HTTP數(shù)據(jù)流的形式向網(wǎng)瀏覽器10傳輸或提供客戶機超高速緩存入口。這些操作示于圖4的框174。
如將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,客戶機超高速緩存和服務(wù)器超高速緩存可以采用存儲器或采用大容量存儲器,例如硬盤,讀/寫CD-ROMS,光盤或其它存儲技術(shù)來實現(xiàn)。此外,如將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,客戶機截取模塊和服務(wù)器截取模塊可通過軟件,硬件或它們的結(jié)合來實現(xiàn)。
在對駐留于特定的第一或第二計算機中的超高速緩存作出參考說明時,如將被本領(lǐng)域有經(jīng)驗人員所理解的一樣,即使超高速緩存不駐留于第一計算機而僅僅和計算機在外部通信鏈接的同一側(cè)也可實現(xiàn)本發(fā)明的優(yōu)點。這樣,可以實現(xiàn)一個在第一計算機外部的硬件超高速緩存,該硬件超高速緩存作為客戶機超高速緩存并且通過高速通信和第一計算機相連,并且只要該超高速緩存和第一計算機位于外部通信鏈接的同一側(cè),就可實現(xiàn)本發(fā)明的優(yōu)點。
在本發(fā)明的一個備選實施例中,服務(wù)器截取模塊40并不保持從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流的備份,而只是保持一通信的目錄入口。目錄入口包括通信的URL,計算得到的HTTP數(shù)據(jù)流的CRC,從網(wǎng)服務(wù)器接收到HTTP數(shù)據(jù)流的時間以及通信的設(shè)定為CRC被計算時的時間的SDT。在這種情況下,當客戶機截取模塊30向服務(wù)器截取模塊40發(fā)送一個對應(yīng)于URL的通信請求,對該URL服務(wù)器截取模塊已保持了CRC和SDT,隨后服務(wù)器截取模塊檢查從客戶機截取模塊30接收的CRC以確定它是否對應(yīng)于用于特定URL的最后的HTTP數(shù)據(jù)流的CRC。如果兩者匹配,那么將一相干響應(yīng)發(fā)送給客戶機截取模塊。如果兩者不匹配,那么服務(wù)器截取模塊將從客戶機截取模塊接收到的HTTP數(shù)據(jù)流發(fā)送給網(wǎng)服務(wù)器20并將從網(wǎng)服務(wù)器20接收到的響應(yīng)返回給客戶機截取模塊30。
圖7,8,9和10反映了本發(fā)明的另一種利用差分來減少通過外部通信鏈接35傳輸?shù)臄?shù)據(jù)的情況中由客戶機截取模塊30和服務(wù)器截取模塊40執(zhí)行的操作。如圖7所示,框200說明客戶機截模塊30從網(wǎng)瀏覽器10接收HTTP請求的情況。如框205所示,客戶機截取模塊30詢問從網(wǎng)瀏覽器10截取的HTTP請求以確定該請求是否發(fā)向公共網(wǎng)關(guān)接口(CGI)。如果該請求不是發(fā)向公共網(wǎng)關(guān)接口,那么客戶機截取模塊30將該請求傳給服務(wù)器截取模塊,如同圖3到圖6所示的一樣,并由圖7的框206所說明。
然而,如果源于網(wǎng)瀏覽器的通信對應(yīng)于一CGI請采那么選取框205的“是”路徑。如圖210所示,客戶機/服務(wù)器截取模塊30確定對應(yīng)于先前提供給網(wǎng)瀏覽器以響應(yīng)相應(yīng)的CGI請求的HTTP數(shù)據(jù)流的客戶機基礎(chǔ)超高速緩存入口是否存在。這種CGI請求的詢問可通過將源于網(wǎng)瀏覽器的通信的URL和存儲于客戶機基礎(chǔ)超高速緩存中的URL相比較來實現(xiàn)。
客戶機基礎(chǔ)超高速緩存可通過存入被客戶機截取模塊30接收的第一HTTP數(shù)據(jù)流來初始化,該數(shù)據(jù)流是對于給定的URL提供給網(wǎng)瀏覽器10的。這種基礎(chǔ)超高速緩存入口可在網(wǎng)瀏覽器10的多重實例或話路中保持??蛻魴C基礎(chǔ)超高速緩存入口可如圖7,8,9和10所示的那樣被更新。如果對應(yīng)于源于網(wǎng)瀏覽器的通信的URL的客戶機基礎(chǔ)超高速緩存入口存在,那么把將要通過外部通信鏈接35發(fā)送給服務(wù)器截取模塊40的CRC設(shè)定為和客戶機基礎(chǔ)超高速緩存入口的CRC一樣,如圖7的框211所示。如果不存在客戶機基礎(chǔ)超高速緩存入口,那么就選取圖7的框210的“否”路徑,并且把將要通過外部通信鏈接35發(fā)送給服務(wù)器截取模塊40的請求的CRC置為零。這一操作示于圖7的框212中。
框213說明通過外部通信鏈接將CGI請求發(fā)送給服務(wù)器截取模塊40的操作。如框213所示,客戶機截取模塊30傳輸HTTP請求和請求的CRC。該CRC要么在對于CGI請求的URL不存在客戶機超高速緩存入口的情況下已被設(shè)定為零,要么在入口確實存在的情況下已被設(shè)定為客戶機基礎(chǔ)超高速緩存入口的CRC。這樣,客戶機截取模塊就把CGI請求轉(zhuǎn)換為客戶機/服務(wù)器專用協(xié)議,并通過外部通信鏈接傳輸將由服務(wù)器截取模塊40接收的客戶機/服務(wù)器專用通信。
當一CGI請求被接收時服務(wù)器截取模塊采取的操作如圖9所示。服務(wù)器截取模塊40接收CGI請求的情況表示于框220中。當服務(wù)器截取模塊40接收CGI請求時,它保存CRC值和HTTP請求的備份。如框221所示,服務(wù)器截取模塊40將HTTP請求傳給網(wǎng)服務(wù)器20。
當服務(wù)器截模塊40接收對應(yīng)于源于網(wǎng)瀏覽器的通信的HTTP請求或CG I請求的響應(yīng)時,服務(wù)器截取模塊4 0以HTTP數(shù)據(jù)流的形式接收這一響應(yīng),如圖10的框230所示。如框230所示,服務(wù)器截取模塊40保存HTTP數(shù)據(jù)流并計算從網(wǎng)服務(wù)器20接收到的HTTP數(shù)據(jù)流的CRC值,同樣服務(wù)器截取模塊40將差分值置為零以初始化差分數(shù)據(jù)。隨后服務(wù)器截取模塊確定以源于網(wǎng)服務(wù)器的通信接收到的響應(yīng)是否是對CGI請求的響應(yīng),如框235所示。如果結(jié)果為否,那么選取圖10的框235的“否”路徑并且執(zhí)行框236的操作以發(fā)送HTTP數(shù)據(jù)流給客戶機截取模塊。如框236所示,這一操作包括圖3到圖6所描述的超高速緩存操作。如果在框230中接收到的響應(yīng)是對CGI請求的響應(yīng),那么選取框235的“是”路徑并且隨后服務(wù)器截取模塊確定對于該CGI響應(yīng)的服務(wù)器基礎(chǔ)超高速緩存入口是否存在,如框240所示。
服務(wù)器基礎(chǔ)超高速緩存入口可在服務(wù)器截取模塊40第一次接收對CGI請求的響應(yīng)時產(chǎn)生。在本實例中,框240中的條件的結(jié)果將導致選取框240的“否”路徑。隨后服務(wù)器截取模塊40將通過存入對于CGI的URL,對CGI請求響應(yīng)的HTTP數(shù)據(jù)流和HTTP數(shù)據(jù)流的CRC來產(chǎn)生對應(yīng)于CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口。這一操作示于框241中。為了和圖3到圖6所描述的相干超高速緩存系統(tǒng)兼容,服務(wù)器基礎(chǔ)超高速緩存入口也包括有SDT。如同在此所使用的一樣,服務(wù)器CGI基礎(chǔ)格式這一術(shù)語指的是對應(yīng)于從網(wǎng)瀏覽器10接收的CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口。
如果對應(yīng)于CG I請求的服務(wù)器基礎(chǔ)超高速緩存入口存在,那么選取框240的“是”路徑。服務(wù)器截取模塊將服務(wù)器基礎(chǔ)超高速緩存入口和從網(wǎng)服務(wù)器20接收到的響應(yīng)的CRC作比較。這些操作示于圖10的框245。如果這兩個CRC相同,那么服務(wù)器截取模塊確定服務(wù)器基礎(chǔ)超高速緩存入口的CRC是否對應(yīng)于客戶機基礎(chǔ)超高速緩存入口的CRC。如果這兩個CRC的值相同,那么客戶機基礎(chǔ)超高速緩存入口,服務(wù)器基礎(chǔ)超高速緩存入口以及從網(wǎng)服務(wù)器20接收到的響應(yīng)都含有相同的HTTP數(shù)據(jù)流。服務(wù)器基礎(chǔ)超高速緩存入口和客戶機基礎(chǔ)超高速緩存入口的比較示于框250中。
如果這兩個基礎(chǔ)超高速緩存入口相同,那么服務(wù)器截取模塊不必向客戶機截取模塊30發(fā)送基礎(chǔ)超高速緩存入口并且使得,如框251所示,將被傳輸給客戶機截取模塊30的HTTP數(shù)據(jù)流數(shù)據(jù)為空。隨后,服務(wù)器截取模塊40通過傳輸存儲于對應(yīng)于CGI請求的服務(wù)器基礎(chǔ)超高速緩存中的HTTP數(shù)據(jù)流的CRC,空的HTTP數(shù)據(jù)流數(shù)據(jù)以及空的差分數(shù)據(jù)來指示對CGI請求的響應(yīng)和客戶機基礎(chǔ)超高速緩存入口相同,從而將從網(wǎng)服務(wù)器20接收的HTTP數(shù)據(jù)流轉(zhuǎn)換為客戶機/服務(wù)器專用通信協(xié)議,如框252所示。
返回框245,如果對應(yīng)于CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口的CRC不同于響應(yīng)源于網(wǎng)瀏覽器的CGI請求的從網(wǎng)服務(wù)器接收到的響應(yīng)的CRC,那么選取框245的“否”路徑。隨后服務(wù)器截取接塊40執(zhí)行框246所示的操作。服務(wù)器截取模塊40將截取的CGI響應(yīng)和對應(yīng)于所截取的CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口或者服務(wù)器CGI基礎(chǔ)格式作比較。截取的CGI響應(yīng)和服務(wù)器CGI基礎(chǔ)格式的比較提供對應(yīng)于截取的CGI響應(yīng)和服務(wù)器CGI基礎(chǔ)格式之間的差分的CGI差分數(shù)據(jù)。
可以采用本領(lǐng)域有經(jīng)驗的人員知曉的任意用以確定基礎(chǔ)格式和修正格式之間差別的方法來實現(xiàn)差分。一種適用于本發(fā)明的差分方法描述于“aCross-Platform Binary Diff”,Coppieters,Dr.Dobb′s Journal,1995年5月,第32-36頁,該文的公開內(nèi)容作為參考在此引入。其它的可用于確定差分數(shù)據(jù)的方法包括描述于IBM Technical DisclosureBulletin,Vol.22,No.8A中的方法,該文也作為參考在此引入。隨后服務(wù)器截取模塊40確定服務(wù)器CGI基礎(chǔ)格式是否需要更新,如框247所示。這一確定可由確定截取的CGI響應(yīng)和服務(wù)CGI基礎(chǔ)格式之間的平均差分數(shù)據(jù)是否超出了預定的限度來作出。其它的確定對應(yīng)于CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口是否需要更新的方法包括時間相干性,例如描述于圖3到圖6的時間相干性或者本領(lǐng)域有經(jīng)驗人員知曉的其它確定差分數(shù)據(jù)是否已增加到這樣的程度以致重新基礎(chǔ)化以產(chǎn)生新的基礎(chǔ)超高速緩存入口將改善系統(tǒng)性能的方法。
如果不需要服務(wù)器重新基礎(chǔ)化,那么選取框247的“否”路徑,服務(wù)器截取模塊40執(zhí)行框250的操作以確定客戶基礎(chǔ)超高速緩存入口的CRC是否和服務(wù)器基礎(chǔ)超高速緩存入口的CRC一樣或者服務(wù)器CGI基礎(chǔ)格式是否和客戶機CGI基礎(chǔ)格式相同,這些基礎(chǔ)格式是服務(wù)器和客戶機的基礎(chǔ)超高速緩存入口,它們對應(yīng)于源于網(wǎng)瀏覽器的通信的特定CGI請求。如果這些基礎(chǔ)格式相同,那么客戶機不必重新基礎(chǔ)化并且HTTP數(shù)據(jù)流信息為空,如框251所示。隨后服務(wù)器截取模塊40通過發(fā)送對應(yīng)于CGI請求的服務(wù)器基礎(chǔ)超高速緩存入口的CRC(即服務(wù)器CGI基礎(chǔ)格式的CRC),通過發(fā)送對應(yīng)于基礎(chǔ)數(shù)據(jù)的空的HTTP數(shù)據(jù)流以及通過發(fā)送框246中確定的差分數(shù)據(jù)來將差分響應(yīng)發(fā)送給客戶機截取模塊30。這些操作再一次示于圖10的框252中。
如果服務(wù)器截取模塊40確定客戶機CGI基礎(chǔ)格式和服務(wù)器CGI基礎(chǔ)格式的CRC并不相同,那么客戶機需要重新基礎(chǔ)化??蛻魴C重新基礎(chǔ)化操作包括發(fā)送服務(wù)器CGI基礎(chǔ)格式給客戶機截取模塊30。為實現(xiàn)這一操作,服務(wù)器截取模塊把將被發(fā)送給客戶機截取模塊30的HTTP數(shù)據(jù)流數(shù)據(jù)設(shè)定為等同于服務(wù)器CGI基礎(chǔ)格式。這一操作示于框253。隨后服務(wù)器截取模塊40通過發(fā)送服務(wù)器CGI基礎(chǔ)格式的CRC,對應(yīng)于服務(wù)器CGI基礎(chǔ)格式的HTTP數(shù)據(jù)流數(shù)據(jù)以及發(fā)送CGI基礎(chǔ)格式和從網(wǎng)服務(wù)器接收到的響應(yīng)之間的差分數(shù)據(jù)來將從網(wǎng)服務(wù)器接收的HTTP數(shù)據(jù)轉(zhuǎn)換為客戶機/服務(wù)器專用協(xié)議,如框252所示。這一信息隨后通過外部通信鏈接35被傳輸給客戶機截取模塊30。
返回框247,如果要求服務(wù)器重新基礎(chǔ)化,那么選取框247的“是”路徑。如框248所示,服務(wù)器截取模塊用從網(wǎng)服務(wù)器接收到的HTTP數(shù)據(jù)流更新對應(yīng)于瀏覽器開始的通信的服務(wù)器基礎(chǔ)超高速緩存入口。響應(yīng)的CRC同樣被更新并且CGI差分數(shù)據(jù)置為零。服務(wù)器截取模塊隨后比較新的服務(wù)器超高速緩存入口的CRC,如框250所示,并且完成如上所述的傳輸。
在從服務(wù)器截取模塊40接收響應(yīng)時客戶機截取模塊的操作示于圖8??蛻魴C截取模塊30從服務(wù)器截取模塊40接收響應(yīng)的情況示于框260。如框265所示,客戶機截取模塊30確定該響應(yīng)是否是對CGI請求的響應(yīng)。如果該響應(yīng)不是對于CGI請求的響應(yīng),那么客戶機截取模塊執(zhí)行框267的操作,該操作包括示于圖3到圖6的超高速緩存操作。然而,如果該響應(yīng)是對CCI請求的響應(yīng),那么選取框265的“是”路徑??蛻魴C截取模塊30保存HTTP數(shù)據(jù)流數(shù)據(jù),差分數(shù)據(jù),以及從通過外部通信鏈接傳輸?shù)目蛻魴C/服務(wù)器專用數(shù)據(jù)流中獲得的CRC。這些操作示于圖8的框266。
隨后客戶機截取模塊30確定包含客戶機CGI基礎(chǔ)格式的對應(yīng)于截取的CGI請求的客戶機基礎(chǔ)超高速緩存入口是否存在。這一詢問示于框270并且通過檢查HTTP請求或HTTP響應(yīng)的URL來完成。如果存在客戶機CGI基礎(chǔ)格式,那么選取框270的“是”路徑。隨后客戶機截取模塊30將通過外部通信鏈接接收的CRC和客戶機CGI基礎(chǔ)格式的CRC作比較,如框275所示。如果它們不同,那么選取框275的“否”路徑并且通過更新CGI基礎(chǔ)格式,通過用通過外部通信鏈接35從服務(wù)器截取模塊40接收的HTTP數(shù)據(jù)流數(shù)據(jù)來替換對應(yīng)于源于網(wǎng)瀏覽器的通信的CGI請求的URL的客戶機基礎(chǔ)超高速緩存入口來重新基礎(chǔ)化客戶機。相對于HTTP數(shù)據(jù)流的CRC的客戶機基礎(chǔ)超高速緩存入口也被更新。這些操作示于圖8的框276。
如果通過外部通信鏈接35接收的CRC和CGI基礎(chǔ)格式的CRC相同,那么服務(wù)器截取模塊服務(wù)器CGI基礎(chǔ)格式就和客戶機截取模塊客戶機CGI基礎(chǔ)格式相同,則選取框275的“否”路徑。
不論基礎(chǔ)格式相同還是客戶機被重新基礎(chǔ)化,示于框277的操作都由客戶機截取模塊30完成???77反映了客戶機截取模塊30通過將客戶機CGI基礎(chǔ)格式和通過外部通信鏈接35接收的CGI差分數(shù)據(jù)相結(jié)合以產(chǎn)生對應(yīng)于截取的CGI響應(yīng)的HTTP數(shù)據(jù)流來從通過外部通信鏈接35接收的客戶機/服務(wù)器專用數(shù)據(jù)流中重新產(chǎn)生對應(yīng)于網(wǎng)服務(wù)器20開始的通信的HTTP數(shù)據(jù)流。如框278所示,這一響應(yīng)隨后以HTTP數(shù)據(jù)流的形式被提供給網(wǎng)瀏覽器10。
如果在客戶機中不存在對應(yīng)于CGI請求的URL的CGI基礎(chǔ)格式,那么就選取圖8的框270的“否”路徑。如框271所示,客戶機截取模塊30通過存入URL,通過外部通信鏈接從服務(wù)器截取模塊40接收的HTTP數(shù)據(jù)流的CRC,以及實際的HTTP數(shù)據(jù)流數(shù)據(jù)來產(chǎn)生對應(yīng)于CGI請求的URL的客戶機基礎(chǔ)超高速緩存入口。存儲這一信息就產(chǎn)生對應(yīng)于截取的CGI請求的客戶機基礎(chǔ)超高速緩存入口并且從而產(chǎn)生客戶機CGI基礎(chǔ)格式。隨后客戶機截取模塊通過將客戶CGI基礎(chǔ)格式和已被置為零的CGI差分數(shù)據(jù)結(jié)合或者合并來重新產(chǎn)生HTTP數(shù)據(jù)流,從而完成框277的操作。
本發(fā)明的差分技術(shù)也可用于非CGI數(shù)據(jù)。在這樣的一個例子中,服務(wù)器截取模塊40需要保持多代的服務(wù)器基礎(chǔ)超高速緩存入口來使網(wǎng)瀏覽器的和網(wǎng)服務(wù)器相連的客戶機截取模塊能夠具有不同的基礎(chǔ)格式。隨后服務(wù)器截取模塊可將從客戶機截取模塊接收的CRC和服務(wù)器基礎(chǔ)格式的先前的各世代的每一個的CRC作比較直到獲得一匹配。隨后服務(wù)器截取模塊40就可隨意重新基礎(chǔ)化客戶機截取模塊30或者僅僅向客戶機截取模塊30提供差分數(shù)據(jù)。這樣,在此描述的相對于CGI請求的差分方法可同樣地應(yīng)用于任意的HTTP請求和響應(yīng)。
當在保持基礎(chǔ)格式的多代的上述系統(tǒng)使差分可用于非CGI請求時,這一技術(shù)要求更多的存儲器或存儲強度,并且不能充分利用上述的超高速緩存能力。為了減少所需的存儲器或存儲強度并利用上述的超高速緩存方法,可采用下面的對非CGI請求使用差分的最佳方法。在這一最佳實現(xiàn)中,服務(wù)器截取模塊計算對應(yīng)于請求的服務(wù)器基礎(chǔ)格式和從網(wǎng)服務(wù)器來的響應(yīng)的HTTP數(shù)據(jù)流之間的差分。隨后服務(wù)器截取模塊保存這一差分數(shù)據(jù)。隨后通過用網(wǎng)服務(wù)器的新的響應(yīng)替換基礎(chǔ)格式來更新服務(wù)器基礎(chǔ)格式,包括更新基礎(chǔ)格式的CRC。但是,并不廢除舊的CRC,而是將先前的基礎(chǔ)格式的CRC保存起來作為差分數(shù)據(jù)。然后將差分數(shù)據(jù)和CRC的先前的世代選擇性地傳輸給基于對應(yīng)于該非CGI請求的客戶機基礎(chǔ)格式的CRC的客戶機截取模塊。
作為非CGI差分方法的一個例子,如果服務(wù)器截取模塊接收一非CGI請求,伴隨該非CGI請求的是對應(yīng)于該非CGI請求的URL的駐留于客戶機截取模塊中的基礎(chǔ)格式的CRC。當服務(wù)器截取模塊接收網(wǎng)服務(wù)器的響應(yīng)時,服務(wù)器截取模塊將計算響應(yīng)的CRC。隨后服務(wù)器截取模塊計算響應(yīng)和URL的服務(wù)器基礎(chǔ)格式之間的差分并保存這一差分數(shù)據(jù)。服務(wù)器截取模塊將用響應(yīng)數(shù)據(jù)更新服務(wù)器基礎(chǔ)格式并且將先前的基礎(chǔ)格式的CRC以及響應(yīng)和舊的基礎(chǔ)格式之間的差分數(shù)據(jù)編檔保存。隨后服務(wù)器截取模塊將客戶機基礎(chǔ)格式的CRC和服務(wù)器基礎(chǔ)格式的CRC及存入或編檔保存的CRC作比較以確定是否找到一匹配。如果沒有找到匹配,響應(yīng)就簡單地發(fā)送給客戶機截取模塊。
如果找到一匹配,那么對應(yīng)于CRC匹配的差分數(shù)據(jù)和任意的隨后的達到并包括當前差分數(shù)據(jù)的差分數(shù)據(jù)被發(fā)送給客戶機截取模塊。隨后客戶機截取模塊將差分數(shù)據(jù)應(yīng)用于客戶機基礎(chǔ)格式以重新產(chǎn)生響應(yīng)。這樣,如果CRC匹配產(chǎn)生于一個三世代前的基礎(chǔ)格式的CRC上,那么三組差分數(shù)據(jù)就被發(fā)送給客戶機截取模塊并且通過將這三個連續(xù)的差分數(shù)據(jù)組應(yīng)用于客戶機基礎(chǔ)格式來完成響應(yīng)的構(gòu)造。然而,如果所要求的重新產(chǎn)生響應(yīng)的差分數(shù)據(jù)組的數(shù)目或者差分數(shù)據(jù)組的大小太大以致使發(fā)送實際的響應(yīng)需要的數(shù)據(jù)傳輸較少,那么響應(yīng)自身通過服務(wù)器截取模塊被發(fā)送。不管怎樣,在重新產(chǎn)生或接收響應(yīng)后,客戶機截取模塊將用響應(yīng)數(shù)據(jù)更新請求的URL的客戶機基礎(chǔ)格式以及用響應(yīng)的CRC更新CRC。由于客戶機基礎(chǔ)格式在每次接收對于特定URL的響應(yīng)時被更新,前述的客戶機超高速緩存可被用作客戶機基礎(chǔ)格式的超高速緩存,從而省去了如果差分應(yīng)用于非CGI請求時客戶機基礎(chǔ)格式需要一個獨立的超高速緩存的要求。
在本發(fā)明的另一種情況中,基于無狀態(tài)通信協(xié)議例如HTTP的冗余碼可以獲得附加的通信保存。在這樣的協(xié)議中,客戶機在每次通信開始時傳輸關(guān)于自身的信息給服務(wù)器。同樣,服務(wù)器在每次響應(yīng)開始時傳輸關(guān)于自身的特定信息給客戶機。
在本發(fā)明的一個備選實施例中,第一計算機5向第二計算機6傳輸對應(yīng)于第一計算機預定特征的計算機專用信息。第二計算機保存這一計算機專用信息。隨后在通過外部通信鏈接35傳輸之前第一計算機從后繼的源于網(wǎng)瀏覽器的通信中除去計算機專用信息。隨后第二計算機通過將保存的計算機專用信息和通過外部通信鏈接3 5接收到的后繼通信相結(jié)合以產(chǎn)生HTTP數(shù)據(jù)流來重新產(chǎn)生最初的源于網(wǎng)瀏覽器的通信。
除了從源于網(wǎng)瀏覽器的通信中除去計算機專用信息之外,也要從源于網(wǎng)服務(wù)器的通信中除去這一計算機專用信息。這樣的話,圖2的第二計算機6通過外部通信鏈接35向第一計算機5提供對應(yīng)于第二計算機6的預定特征的計算機專用信息。第一計算機5保存這一計算機專用信息以提供服務(wù)器標題信息。在后繼通信中,第二計算機6從源于網(wǎng)服務(wù)器的通信中除去計算機專用信息并且通過外部通信鏈接35傳輸源于網(wǎng)服務(wù)器的通信的剩余部分。第一計算機5通過外部通信鏈接接收該通信并且通過將服務(wù)器標題信息和通過外部通信鏈接接收到的客戶機/服務(wù)器專用數(shù)據(jù)流結(jié)合以產(chǎn)生HTTP數(shù)據(jù)流來重新產(chǎn)生最初的源于網(wǎng)服務(wù)器的通信。在兩個實例中,除去計算機專用信息及保存該信息以產(chǎn)生服務(wù)器標題信息或客戶機標題信息的操作由客戶機截取模塊30或服務(wù)器截取模塊40執(zhí)行,取決于這一操作是發(fā)生于第一計算機5還是第二計算機6。
在本發(fā)明的一個實施例中,網(wǎng)瀏覽器10采用傳輸控制協(xié)議/互連網(wǎng)協(xié)議(TCP/IP)來和客戶機截取模塊30通信。TCP可用于通過外部通信鏈接35在客戶機截取模塊30和服務(wù)器截取模塊40之間的通信。最后,TCP也可用于服務(wù)器截取模塊40和網(wǎng)服務(wù)器20之間的通信。由于TCP可用于組成本發(fā)明的系統(tǒng)的各部分之間的通信,因而HTTP協(xié)議不能提供最有效的用于通過外部通信鏈接進行通信的方法。為了增加外部通信鏈接35的性能,本發(fā)明的一個實施例產(chǎn)生在此被稱作為“虛擬插口”的事物,該虛擬插口被應(yīng)用于網(wǎng)瀏覽器和客戶機截取模塊30之間的通信連接以及服務(wù)器截取模塊40和網(wǎng)服務(wù)器20之間的通信連接。下面參考圖11到圖17來說明這些虛擬插口的操作。
圖11為本發(fā)明利用虛擬插口概念的一個可能的實現(xiàn)方式的方框圖。如圖11所示,第一計算機5和第二計算機6通過外部通信鏈接35相連。網(wǎng)瀏覽器10具有一批連接網(wǎng)瀏覽器和客戶機截取模塊30的實插口。如圖11所示,網(wǎng)瀏覽器10上的第一實插口標記為65a,客戶機截取模塊30上的對應(yīng)的插口為65b。這個第一實插口是TCP插口,通過它網(wǎng)瀏覽器10從客戶機截取模塊30請求進一步的連接。
當網(wǎng)瀏覽器10請求新的TCP連接時,通過實插口65a產(chǎn)生一個通信,該通信在實插口65b被接收。隨后客戶機截取模塊30產(chǎn)生另一個用以和網(wǎng)瀏覽器10通信的實插口。如圖11所示,在網(wǎng)瀏覽器10上產(chǎn)生一批實插口,同時在客戶機截取模塊30上產(chǎn)生一批相應(yīng)的實插口。網(wǎng)瀏覽器10上的這些實插口被標記為60a到64a,客戶機截取模塊30上的實插口被標記為60b到64b。通過這些實插口網(wǎng)瀏覽器10和客戶機截取模塊30通信連接。在產(chǎn)生實插口60a到64a和60b到64b后,通過這些插口通信被多路傳輸?shù)綄嵅蹇?6a,實插口36a為客戶機截取模塊30提供到外部通信鏈接35的通路。實插口36a和36b在通過計算機5的實插口37a將請求發(fā)送給計算機6的實插口37b時產(chǎn)生。當實插口37b接收連接請求時,產(chǎn)生實插口36a和36b。插口37a和37b作為客戶機截取模塊和服務(wù)器截取模塊之間通信的第一實插口并且僅僅用于建立由插口36a和36b反射的兩個模塊之間的連接。這些實插口的每一個都是在標準TCP/IP協(xié)議下操作。當通信由第二計算機6通過外部通信鏈接35接收時,通信是在實插口36b處被接收。隨后服務(wù)器截取模塊40對在插口36b接收到的通信進行信號分離,并將它們提供給適當?shù)牟蹇谝詡鬏斀o網(wǎng)服務(wù)器20。這樣,例如,由插口60a到插口60b的從特定URL發(fā)出請求信息的通信被多路傳輸?shù)讲蹇?6a,由插口36b接收,由服務(wù)器截取模塊40進行信號分離,以及從插口60c傳輸?shù)骄W(wǎng)服務(wù)器20上的插口60d。同樣,通過插61a發(fā)生的通信由插口61b接收,由客戶機截取模塊30多路傳輸,以及從插口36a被傳輸給插口36b,在插口36b處服務(wù)器截取模塊40對通信進行信號分離并通過插口61c傳輸給插口61d。這樣,通過插口60a和60b,61a和61b,62a和62b,63a和63b以及64a和64b的通信通過服務(wù)器截取模塊40和網(wǎng)服務(wù)器20之間的各自相應(yīng)的插口60c和60d,插口61c和61d,插口62c和62d,插口63c和63d以及插口64c和64d被傳輸。
同樣,網(wǎng)服務(wù)器20對網(wǎng)瀏覽器10的請求的響應(yīng)也通過連接網(wǎng)服務(wù)器20和服務(wù)器截取模塊40的插口及通過外部通信鏈接35被傳輸給客戶機截取模塊30,隨后傳輸給網(wǎng)瀏覽器10。這樣,例如,網(wǎng)服務(wù)器20開始的響應(yīng)可通過插口60d發(fā)送給插口60c,并由服務(wù)器截取模塊40多路傳輸給插口36b,在插口36b處,響應(yīng)通過外部通信鏈接35被傳輸給插口36a。隨后客戶機截取模塊30對通信進行信號分離并且將其提供給插口6 0b以傳輸給網(wǎng)瀏覽器10上的插口60a。對網(wǎng)瀏覽器10或網(wǎng)服務(wù)器20正使用的各個插口建立了相似的通信通路。如同將被本領(lǐng)域有經(jīng)驗人員所理解的那樣,雖然已描述的本發(fā)明是對于網(wǎng)瀏覽器10和網(wǎng)服務(wù)器20之間的4插口連接,但是為在網(wǎng)瀏覽器10和網(wǎng)服務(wù)器20之間提供通信通路可以使用任意數(shù)目的插口。
圖12為說明在客戶機截取模塊30和服務(wù)器截取模塊40中實現(xiàn)虛擬插口系統(tǒng)的方框圖。在這些模塊之外的客戶機截取模塊30和網(wǎng)瀏覽器10之間以及服務(wù)器截取模塊40和網(wǎng)服務(wù)器20之間的實插口和通常的TCP/IP插口所起的作用一樣。這樣,對于網(wǎng)瀏覽器10和網(wǎng)服務(wù)器20,虛擬插口的益處是一目了然的。
根據(jù)方框圖12和流程圖13到17下面來說明本發(fā)明的一個特別的實施例。圖13是圖12中標記為方框68的插口管理器的流程圖。參見圖13,框300表示客戶機截取模塊30的實插口管理器68的產(chǎn)生。在產(chǎn)生實插口管理器68后,實插口管理器產(chǎn)生第一實插口,圖12中表示為插口65b。第一實插口的產(chǎn)生示于圖13的框301。產(chǎn)生第一實插口65b后,駐留于客戶機截取模塊30的插口管理器68,在此也稱作客戶機插口管理器,等待在第一實插口65b上的事件,如圖13的框302所示。當在第一實插口接收到的一事件時,實插口管理器68檢驗該事件,并且根據(jù)該檢驗選取五個通路中的一個,如圖13的框305所示。
如果為響應(yīng)在第一實插口65b上接收到的通信請求產(chǎn)生了一個實插口,那么如圖13的框305到框306之間的通路所示,實插口管理器68將產(chǎn)生的實插口加入實事件列表中。隨后實插口管理器產(chǎn)生單工虛擬插口,如框307所示。就客戶機截取模塊來說,實插口管理器啟動一應(yīng)用功能,該應(yīng)用功能為產(chǎn)生的虛擬插口執(zhí)行客戶機截取模塊的功能,如圖13的框308所示。
如同在此使用的一樣,“單工插口”或“單工虛擬插口”指的是直接和單一的插口或者單一的應(yīng)用連接的插口。如同在此使用的一樣,“多工插口”指的是和一批其它插口連接的插口。這樣,多工插口執(zhí)行多路傳輸或信號分離功能,單工插口實現(xiàn)一對一連接。這樣,例如,在執(zhí)行圖1 3的框306到框308的功能時,客戶機插口管理器68為響應(yīng)由第一實插口65b接收的第一連接請求而產(chǎn)生實插口60b,單工虛擬插口70,并且在應(yīng)用80啟動客戶機截取功能。對后繼的在其中一個實插口被產(chǎn)生的事件情況類似。實插口管理器將產(chǎn)生實插口61b,62b,63b或64b及單工虛擬插口71,72,73或74,并且啟動對應(yīng)于所產(chǎn)生的實插口和虛擬插口的在圖12中被標記為方框81,82,83或84的CSI功能。
現(xiàn)在參照圖12所示的實插口60b,單工虛擬插口70及客戶機截取功能80來說明客戶機截取功能的操作。圖14的框325反映了客戶機截取功能的產(chǎn)生。當其產(chǎn)生后,客戶機截取功能80就等待在單工虛擬插口70上的事件,如框326所示。這一等待操作通過實現(xiàn)圖16-4中描述的虛擬選擇功能來完成。當接收事件時,該事件被檢驗,如框330所示。如果該事件是虛擬插口關(guān)閉,那么客戶機截取功能80就刪除單工虛擬插口70,如框349所示,并且終止,如圖14的框350所示。
如果該事件為數(shù)據(jù)接收,那么就選取從框330到框331的路徑,客戶機截取功能8 0通過執(zhí)行圖16-3所描述的虛擬接收操作來從單工虛擬插口70接收瀏覽器開始的通信。隨后客戶機截取功能執(zhí)行如上所述的客戶機截取模塊(例如見圖3和圖7),如框332所示。隨后客戶機截取功能80產(chǎn)生一個和客戶機截取模塊30中的實插口36a相連的多工虛擬插口。實插口36a和服務(wù)器截取模塊40上的實插口36b連接。多工虛擬插口的產(chǎn)生示于圖14的框333并通過執(zhí)行圖16-1所描述的虛擬產(chǎn)生操作來完成???34反映了對源于網(wǎng)瀏覽器的通信執(zhí)行客戶機截取功能80后,通過實插口60b和單工虛擬插口70發(fā)送從網(wǎng)瀏覽器接收到的信息的操作。通過執(zhí)行圖16-2描述的虛擬發(fā)送操作使這一通信排隊發(fā)向多工虛擬插口90。在將發(fā)向多工虛擬插口90的請求排隊后,客戶機截取功能80刷新在多工虛擬插口90中排隊的數(shù)據(jù),如圖14的框335所示,隨后等待多工虛擬插口上的一個事件,如框336所示。通過執(zhí)行圖17-1描述的虛擬刷新操作來完成虛擬刷新功能,該虛擬刷新操作是將數(shù)據(jù)從多工虛擬插口隊列中取出并將數(shù)據(jù)提供給實插口36a。等待操作可通過完成圖16-4描述的虛擬選擇功能來執(zhí)行。此時,客戶機截取模塊已截取源于網(wǎng)瀏覽器的通信并通過外部通信鏈接35將通信傳輸給服務(wù)器截取模塊。
現(xiàn)在返回圖13,該圖是表示服務(wù)器截取模塊40或客戶機截取模塊30中的插口管理器的流程圖。圖12中表示為框69的服務(wù)器截取模塊中的實插口管理器或服務(wù)器插口管理器,執(zhí)行和表示為框68的客戶機插口管理器同樣的功能。在產(chǎn)生第一實插口時,如框301所示,服務(wù)器截取模塊40(原文為30,誤)產(chǎn)生一個用于對各插口從和服務(wù)器截取模塊40聯(lián)系的客戶機截取模塊30接收請求的“公知端口”37b。當一實事件在服務(wù)器截取模塊40的實插口36b上發(fā)生時,該事件被檢驗,如框305所示。在當前情況下,該事件是從實插口36a接收數(shù)據(jù),這樣就選取圖13的從框305到框320的路徑。在實插口36b上接收到的數(shù)據(jù)被檢驗并且在本例中,由于該數(shù)據(jù)是由客戶機截取模塊傳輸?shù)脑从诰W(wǎng)瀏覽器的通信,在服務(wù)器截取模塊40中必須產(chǎn)生一個新的虛擬插口。這樣就選取圖13中框320到321的路徑。隨后服務(wù)器插口管理器69執(zhí)行示于圖13的框321,322,323和324中的操作。服務(wù)器插口管理69產(chǎn)生一個多工虛擬插口95,如框321所示,取消多工插口活動計時器,如框322所示,并且啟動服務(wù)器截取功能的應(yīng)用程序,如圖13的框323所示,在圖12中表示為框85。隨后在實插口36b接收的數(shù)據(jù)被排隊發(fā)向多工虛擬插口95,一虛擬事件被信號化。
框323所示的服務(wù)器截取功能的產(chǎn)生,在圖15中表示為框360。產(chǎn)生服務(wù)器截取功能85后,該功能從多工虛擬插口95接收從客戶機截取模塊30發(fā)送出的對應(yīng)于源于網(wǎng)瀏覽器的通信的數(shù)據(jù)。這一操作示于圖15的框361。在從客戶機截取模塊接收數(shù)據(jù)后,服務(wù)器截取功能85按如前所述的那樣為服務(wù)器截取模塊處理數(shù)據(jù)。服務(wù)器截取功能的執(zhí)行示于框362(例如參見圖5和9)。在處理這些信息后,服務(wù)器截取功能85通過執(zhí)行圖16-1所描述的虛擬生成操作來產(chǎn)生單工虛擬插口75。這一操作示于圖15的框363。隨后服務(wù)器截取功能85通過執(zhí)行圖16-2描述的虛擬發(fā)送操作將源于網(wǎng)瀏覽器的通信發(fā)送給單工虛擬插口75。隨后,服務(wù)器截取功能85執(zhí)行虛擬刷新以將列隊于單工虛擬插口75中的數(shù)據(jù)清洗到實插口60c,并等待在單工虛擬插口75上的事件。在此所描述的虛擬刷新操作參見圖17-1。發(fā)送和刷新操作示圖15的框364和365。通過完成圖16-4所描述的虛擬選擇功能來執(zhí)行等待操作。當服務(wù)器截取功能85產(chǎn)生單工虛擬插口75時,也將產(chǎn)生相應(yīng)的實插口60c。通過發(fā)送源于網(wǎng)瀏覽器的通信給單工虛擬插口75,服務(wù)器截取功能85將源于網(wǎng)瀏覽器的通信傳輸給網(wǎng)服務(wù)器。
當服務(wù)器截取模塊40在實插口60c處接收網(wǎng)服務(wù)器的響應(yīng)時,一實事件發(fā)生,服務(wù)器插口管理器69退出圖13的框302并檢驗發(fā)生于實插口60c的事件,如框305所示。在當前情況下,該事件是正存在的虛擬插口的數(shù)據(jù),圖13的框320到框324的路徑將被選取。在實插口60c接收到的數(shù)據(jù)被排隊發(fā)向虛擬插口75,一個虛擬事件被信號化。當該虛擬事件被信號化時,服務(wù)器截取功能85(注原文為虛擬截取功能)退出圖15的框366并檢驗該事件,如框370所示。如果該事件為插口關(guān)閉,那么一錯誤狀態(tài)產(chǎn)生,并且生成一錯誤信息作為響應(yīng),如圖15的框375所示。然而,如果該事件為數(shù)據(jù)接收,那么就選取框370到框371的路徑,服務(wù)器截取功能85執(zhí)行圖16-3所描述的虛擬接收操作來從單工虛擬插口75獲得服務(wù)器響應(yīng),如框371所示。隨后服務(wù)器截取功能85執(zhí)行單工虛擬插口的虛擬關(guān)閉操作,如框372所示,并參見圖17-2,并按前面所述的那樣為服務(wù)器截取模塊處理數(shù)據(jù),且示于框373。(例如參見圖6和圖10)。
不論圖15的框370的退出路徑是到框375的錯誤路徑還是到框371的數(shù)據(jù)路徑,在框374單工虛擬插口都將被刪去。隨后服務(wù)器截取功能對多工虛擬插口95執(zhí)行虛擬發(fā)送操作以向客戶機截取模塊30傳輸源于網(wǎng)服務(wù)器的通信,如框376所示。隨后服務(wù)器截取功能85執(zhí)行虛擬刷新操作以刷新列隊于多工虛擬插口95中的數(shù)據(jù)。這些操作示于框377。隨后服務(wù)器截取功能85執(zhí)行虛擬關(guān)閉操作以關(guān)閉多工虛擬插口95,如圖15的框378所示。最后,服務(wù)器截取功能85刪除多工虛擬插口并終止,如框379和380所示。
服務(wù)器截取功能對多工虛擬插口95執(zhí)行虛擬發(fā)送和刷新操作。這些觸發(fā)事件在實插口36a上并且客戶機插口管理器68退出框302并檢驗該事件,如框305所示。由于數(shù)據(jù)在實插口36a上被接收,圖13的框305到框320的路徑被選取并且數(shù)據(jù)被排隊發(fā)向多工虛擬插口90。從而,當實插口36a通過外部通信鏈接35從實插口36b接收網(wǎng)服務(wù)器響應(yīng)時,這一響應(yīng)信息被信號分離并被提供給適當?shù)亩喙ぬ摂M插口。數(shù)據(jù)的接收導致一虛擬事件發(fā)生,如圖13的框324所示,并退出圖14的框336,客戶機截取功能80檢驗該事件,如圖14的框340所示。
如果該事件為插口關(guān)閉響應(yīng),那么就選取圖14的框340到框345的路徑,客戶機截取功能80產(chǎn)生一錯誤信息響應(yīng)并轉(zhuǎn)到圖14的框344。如果該事件是數(shù)據(jù)接收,在本例中,事件即為數(shù)據(jù)接收,那么就選取圖14的框340到框341的路徑,并且客戶機截取功能80執(zhí)行虛擬接收操作從多工虛擬插口90接收響應(yīng)。這一接收操作示于圖14的框341。在從多工虛擬插口90接收數(shù)據(jù)后,客戶機截取功能80執(zhí)行虛擬關(guān)閉操作以關(guān)閉多工虛擬插口90,如框342所示。隨后如前所述那樣客戶機截取功能80為客戶機截取模塊處理該響應(yīng)(參見圖4和圖8)。
不論選取哪一條路徑退出框340都將隨后執(zhí)行框344的操作。客戶機截取功能80刪去多工虛擬插口,如框344所示,并且隨后執(zhí)行虛擬發(fā)送操作將響應(yīng)通過單工虛擬插口70發(fā)送給瀏覽器,如框346所示。當虛擬發(fā)送操作完成時,客戶機截取功能80執(zhí)行虛擬刷新操作以將列隊于單工虛擬插口中的數(shù)據(jù)清洗到實插口60b,如框347所示,并且隨后執(zhí)行虛擬關(guān)閉操作以關(guān)閉單工虛擬插口,如框348所示。在關(guān)閉到客戶機截取功能的單工虛擬插口后,該單工虛擬插口被刪除,客戶機截取功能終止,如圖14的框349和350所示。
如同將被本領(lǐng)域有經(jīng)驗人員所理解的那樣,雖然本發(fā)明說明的是單工和多工虛擬插口及客戶機截取功能和服務(wù)器截取功能的產(chǎn)生的一個特定例子,但是在客戶機截取模塊或者服務(wù)器截取模塊中可以產(chǎn)生一批這樣的功能。因而,根據(jù)本發(fā)明的客戶機截取模塊和服務(wù)器截取模塊可在客戶機截取模塊30和服務(wù)器截取模塊40之間產(chǎn)生TCP/IP連接并且在保持TCP/IP連接的同時,在TCP/IP上多路傳輸一批網(wǎng)瀏覽器或源于網(wǎng)服務(wù)器的通信。
參考圖16-1到16-4和圖17-1和17-2可以很好地理解客戶機插口管理器和服務(wù)器插口管理器剩下的功能。這些圖說明了如圖14和圖15的流程中反映的虛擬產(chǎn)生,虛擬發(fā)送,虛擬接收,虛擬選擇,虛擬刷新,或虛擬關(guān)閉操作時,客戶機截取模塊和服務(wù)器截取模塊所執(zhí)行的操作。當如圖14的框333和圖15的框363所示一虛擬產(chǎn)生操作被執(zhí)行時,圖16-1的從框400開始的操作被執(zhí)行。隨后插口管理器確定是否需要一實插口,如框405所示。如果已經(jīng)存在一實插口,例如當生成一個將和已存在的實插口連接的多工虛擬插口時,就選取框405的“否”路徑,并且將虛擬插口和該實插口相連,如框409所示。然而,如果要求一實插口,那么選取框405的“是”路徑。如框406所示,一個實插口被產(chǎn)生。隨后將產(chǎn)生的實插口加入到事件列表中,如框408所示,用以監(jiān)視,如圖13的框302所示。在產(chǎn)生一實插口和建立連接后,虛擬插口被連接到實插口,如框409所示,產(chǎn)生操作完成,如框410所示。
為了執(zhí)行圖14的框334和346所示的,或者圖15的框364和376所示的虛擬發(fā)送操作,圖16-2的從框420開始的操作被執(zhí)行。數(shù)據(jù)被加入到虛擬插口隊列中,如框427所示,并且當完成時,發(fā)送操作終止,如框428所示。
通過執(zhí)行圖16-3的從框430開始的操作來完成圖14的框331和341所示的,或者圖15的框361和371所示的虛擬接收操作。如框435所示,估價虛擬插口隊列以確定在虛擬插口隊列中是否存在任意數(shù)據(jù)。如果虛擬插口隊列存在數(shù)據(jù),那么選取框435的“是”路徑,并將數(shù)據(jù)返回給調(diào)用接收操作的功能,如框436所示。如果虛擬插口隊列沒有數(shù)據(jù)并且插口沒有被標記為關(guān)閉,那么選取判定框440的“否”路徑,并且返回為空,如框441所示。然而,如果隊列沒有數(shù)據(jù)并且插口被標記為關(guān)閉,那么選取框440的“是”路徑并且插口被標記為已關(guān)閉,如框442所示,關(guān)閉插口響應(yīng)被返回給請求接收的操作,如框443所示。
圖14的框326和336中的虛擬選擇操作是通過執(zhí)行圖16-4從框445開始的操作來完成的。如框446所示,首先確定對于選定的虛擬插口是否數(shù)據(jù)或待決虛擬關(guān)閉操作。如果沒有數(shù)據(jù)或待決虛擬關(guān)閉,那么選取框446的“否”路徑,并且過程等待一在所選虛擬插口上的虛擬事件,如框447所示,并在接收這樣的一個事件后終止,如框448所示。如果對于所選虛擬插口數(shù)據(jù)或待決虛擬關(guān)閉,虛擬事件已經(jīng)發(fā)生,那么就選取框446的“是”路徑,并且過程終止,如框448所示。
圖14的框335和347以及圖1 5的框365和377的虛擬刷新操作是通過執(zhí)行圖17-1的從框450開始的操作來完成的。當被調(diào)用時,虛擬刷新操作確定在虛擬插口隊列中是否存在將被刷新的數(shù)據(jù),如判斷框455所示。如果在虛擬插口隊列中沒有數(shù)據(jù),那么刷新操作終止并返回調(diào)用功能,如框455的“否”路徑所示。然而,如果在隊列中存在數(shù)據(jù),那么選取框455的“是”路徑并確定虛擬插口隊列是否是對于多工插口,如框460所示。如果是一多工插口,那么由反映插口獨特標識符和傳輸中的數(shù)據(jù)量的三個字節(jié)組成的插口標題被加入到實插口緩沖區(qū),如框461所示。在任一種情況下,如果是多工插口或單工插口,實插口的數(shù)據(jù)被轉(zhuǎn)移到實插口緩沖區(qū),如框462所示。如果實插口緩沖區(qū)被充滿,那么選取框465的“是”路徑并且在實插口將數(shù)據(jù)從實插口緩沖區(qū)發(fā)送,如框466所示。如果實插口未滿,那么選取框465的“否”路徑。隨后虛擬刷新功能測試以確定在任意其它將被發(fā)送給實插口的多工虛擬插口隊列中是否存在任意其它數(shù)據(jù)。如果答案為是,那么選取框470的“是”路徑并且不發(fā)送實插口緩沖區(qū)中的數(shù)據(jù)直到虛擬刷新操作被再次調(diào)用以刷新其它虛擬插口隊列中的一個為止。如果沒有其它數(shù)據(jù)或從其它多工虛擬插口加入數(shù)據(jù)后,那么就執(zhí)行框466的操作,并且在實插口發(fā)送實插口緩沖區(qū)中的數(shù)據(jù)。在對應(yīng)于調(diào)用虛擬刷新操作的虛擬插口隊列中的所有數(shù)據(jù)被發(fā)送給實插口后,虛擬刷新操作終止,如框467所示。
圖14的框342和348及圖15的框372和378所示的虛擬關(guān)閉操作通過執(zhí)行圖17-2的從框480開始的操作來完成。當虛擬關(guān)閉操作被調(diào)用時,該操作首先測試以確定虛擬關(guān)閉是否是一多工虛擬插口的關(guān)閉,如框485所示。如是一多工虛擬插口,那么選取框485的“是”路徑并且將“關(guān)閉”操作指示符加入到虛擬插口隊列。不論該虛擬關(guān)閉是否是多工虛擬插口的關(guān)閉,虛擬關(guān)閉操作調(diào)用虛擬刷新操作,如框487所示,隨后從實插口脫接,如框488所示。隨后關(guān)閉操作測試以檢查虛擬關(guān)閉是否是一單工虛擬插口的關(guān)閉,如框490所示,如果不是,就選取轉(zhuǎn)向框495的“否”路徑。由于關(guān)閉是多工虛擬插口的關(guān)閉,框495測試以確定該多工虛擬插口是否是最后的多工虛擬插口,如果是最后的多工虛擬插口,就設(shè)定多工活動計時器,如框496所示。如果不是最后多工虛擬插口,那么就跳過框496。
現(xiàn)在返回框490,如果虛擬關(guān)閉是單工虛擬插口的關(guān)閉,那么就從事件列表中除去相應(yīng)的實插口,如框491所示,并且將該實插口關(guān)閉和刪除,如框492所示。不論插口是單工或多工虛擬插口,該虛擬插口在框497中都被標記為關(guān)閉,并且在框498終止關(guān)閉操作。
由于圖13和圖16-1到16-4及圖17-1和17-2關(guān)聯(lián),現(xiàn)在來說明圖13。當一事件發(fā)生時,退出圖13的框302并且插口管理器檢驗該事件是如何產(chǎn)生的事件。如果事件在時序上超出了圖17-2的框496中設(shè)定的多工插口活動計時器,那么就選取圖13的從框305到框312的路徑。如圖13所示,隨后插口管理器執(zhí)行框312和框313的操作以關(guān)閉多工實插口和刪除對應(yīng)于連接客戶機截取模塊和服務(wù)器截取模塊的插口的多工實插口。隨后插口管理器等待下一個實事件。通過多工虛擬插口的產(chǎn)生來將多工事件計時器復位,如框322所示。
如果在實插口發(fā)生的事件是實插口關(guān)閉,例如網(wǎng)服務(wù)器在服務(wù)器和服務(wù)器截取模塊之間的插口連接上執(zhí)行關(guān)閉操作,那么就選取圖13的框305到309的路徑。插口管理器將該實插口從實事件列表中除去,如框309所示,并將虛擬插口或在多個多工插口情況下的插口們從實插口或插口們脫離,如框310所示。隨后插口管理器將虛擬插口標記為關(guān)閉并將虛擬事件信號化。這一操作示于框311,當將所有的數(shù)據(jù)都從虛擬插口隊列中清除后,虛擬插口將關(guān)閉。在將虛擬插口標記為關(guān)閉后,插口管理器確定將被關(guān)閉的實插口是否是一單工插口,如判斷框315所示。如果正被關(guān)閉的實插口是一單工插口,那么實插口被關(guān)閉并被刪除,如框316所示。隨后插口管理器等待下一個實事件,如框302所示。
如果正被關(guān)閉的不是一個單工實插口,那么選取框315的“否”路徑,隨后插口管理器等待下一個實事件。這樣,多工實插口或連接客戶機截取模塊和服務(wù)器截取模塊的插口就只能由多工插口活動計時器的時間溢出來關(guān)閉。這樣即使在模塊之間的最后的通信發(fā)生在用戶規(guī)定的預定時間之后仍可保持客戶機截取模塊和服務(wù)器截取模塊之間的通信。在時序超出多工插口活動計時器之前瀏覽器發(fā)出的后繼通信請求事件中,通信可被執(zhí)行而不須重新建立客戶機截取模塊和服務(wù)器截取模塊之間的連接,從而消除了重新建立這樣連接的額外開銷的要求。
圖13的將要描述的最后路徑表示的是當一實事件發(fā)生,并且該事件是在多工實插口或圖12中的插口36a或36b上接收數(shù)據(jù)時的情況。當在多工實插口上接收數(shù)據(jù)時,檢驗該數(shù)據(jù),在該事件中的數(shù)據(jù)包括關(guān)閉操作標識符,例如圖17-2的框486中加入到虛擬隊列中的關(guān)閉操作標識符,隨后執(zhí)行虛擬關(guān)閉操作,并選取從框320到框310的路徑。插口管理器從實插口,在實插口接收到的數(shù)據(jù)中標識的多工虛擬插口脫開,隨后將虛擬插口標記為“關(guān)閉”,并將虛擬事件信號化,如框311所示。由于該關(guān)閉是多工虛擬插口關(guān)閉,選取框315的“否”路徑,插口管理器等待另一實事件,如框320所示。
通過執(zhí)行描述于圖13到17中的操作,本發(fā)明的一個特例就通過外部通信鏈接在第一計算機和第二計算機之間建立了持續(xù)的連接。該持續(xù)連接被保持直到所有源于網(wǎng)瀏覽器的通信都完成,并且在持續(xù)連接被保持時,一批源于網(wǎng)瀏覽器的通信被截取并在外部通信鏈接上被多路傳輸。隨后客戶機/服務(wù)器專用數(shù)據(jù)流被信號分離以產(chǎn)生一批HTTP數(shù)據(jù)流并將這批HTTP數(shù)據(jù)流提供給網(wǎng)服務(wù)器。同樣持續(xù)連接被維持直到所有源于網(wǎng)服務(wù)器的通信都完成。并且在持續(xù)連接被保持時,一批源于網(wǎng)服務(wù)器的通信被截取并在外部通信鏈接上被多路傳輸。此外,客戶機/服務(wù)器專用數(shù)據(jù)流被信號分離以產(chǎn)生一批HTTP數(shù)據(jù)流并將這批HTTP數(shù)據(jù)流提供給服務(wù)器。
在附圖和說明書中,公開了本發(fā)明的典型的最佳實施例,雖然使用了專用術(shù)語,但是這些術(shù)語僅僅是用作一般性術(shù)語和描述性的,并不是用于限制目的,本發(fā)明的范圖陳述于下面的權(quán)利要求中。
權(quán)利要求
1.一種減少通過通信鏈接從駐留于第一計算機中的第一應(yīng)用程序傳輸?shù)今v留于第二計算機中的第二應(yīng)用程序的數(shù)據(jù)的方法,其中通過外部通信鏈接采用TCP通信協(xié)議從第一計算機將數(shù)據(jù)傳輸?shù)降诙嬎銠C,該方法包括響應(yīng)第一應(yīng)用程序發(fā)出的各個連接請求在第一計算機中建立接收由第一應(yīng)用程序開始的請求數(shù)據(jù)的第一虛擬插口;在第一計算機中建立第一實插口并在第二計算機中建立第二實插口以通過外部通信鏈接連接第一計算機和第二計算機;在第二計算機中對于第一應(yīng)用程序發(fā)出的各個連接請求建立第二虛擬插口,其中第二虛擬插口對應(yīng)于在第一計算機中建立的響應(yīng)第一應(yīng)用程序發(fā)出的連接請求的第一虛擬插口;將和第一虛擬插口相連系的請求數(shù)據(jù)多路傳輸?shù)降谝粚嵅蹇?;通過外部通信鏈接采用TCP協(xié)議將被多路傳輸?shù)恼埱髷?shù)據(jù)傳輸給第二實插口;從外部通信鏈接接收多路傳輸?shù)恼埱髷?shù)據(jù);對由第二實插口從外部通信鏈接接收到的請求數(shù)據(jù)進行信號分離;將信號分離后的請求數(shù)據(jù)提供給對應(yīng)于響應(yīng)第一應(yīng)用程序的請求建立的第一虛擬插口的第二虛擬插口;將第二虛擬插口接收到的請求數(shù)據(jù)提供給第二應(yīng)用程序;并且維持第一和第二實插口直到對應(yīng)于建立第一虛擬插口的第一應(yīng)用程序發(fā)出的請求的請求數(shù)據(jù)已被提供給第二應(yīng)用程序為止。
2.如權(quán)利要求1所述的方法還包括下述步驟在和第一應(yīng)用程序發(fā)出的請求相關(guān)的第二虛擬插口接收從第二應(yīng)用程序來的響應(yīng)第一應(yīng)用程序發(fā)出的請求的響應(yīng)數(shù)據(jù);將第二虛擬插口接收到的響應(yīng)數(shù)據(jù)多路傳輸?shù)降诙嵅蹇?;通過外部通信鏈接以TCP通信協(xié)議將多路傳輸?shù)捻憫?yīng)數(shù)據(jù)傳輸給第一實插口;通過外部通信鏈接接收多路傳輸?shù)捻憫?yīng)數(shù)據(jù);對第一實插口接收到的響應(yīng)數(shù)據(jù)進行信號分離;將信號分離后的響應(yīng)數(shù)據(jù)提供給對應(yīng)于第一應(yīng)用程序發(fā)出的請求響應(yīng)第一應(yīng)用程序的請求的第一虛擬插口;并且將第一虛擬插口接收到的響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序。
3.如權(quán)利要求2所述的方法還包括下述步驟在多路傳輸響應(yīng)數(shù)據(jù)之后,關(guān)閉第二虛擬插口;并且在將響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序后,關(guān)閉第一虛擬插口。
4.如權(quán)利要求3所述的方法,其中所述的維持步驟包括當所有的第一虛擬插口被關(guān)閉后關(guān)閉第一和第二實插口。
5.如權(quán)利要求3所述的方法,其中所述的維持步驟包括在所有的第一虛擬插口被關(guān)閉后維持第一和第二實插口一段預定時間。
6.如權(quán)利要求1所述的方法,其中第一應(yīng)用程序包括網(wǎng)服務(wù)器,第二應(yīng)用程序包括網(wǎng)瀏覽器。
7.如權(quán)利要求1所述的方法,其中外部通信鏈接包括無線通信鏈接。
8.一種減少通過通信鏈接從駐留于第一計算機中的第一應(yīng)用程序傳輸?shù)今v留于第二計算機中的第二應(yīng)用程序的數(shù)據(jù)的設(shè)備,其中通過外部通信鏈接采用TCP通信協(xié)議從第一計算機將數(shù)據(jù)傳輸?shù)降诙嬎銠C,該設(shè)備包括響應(yīng)第一應(yīng)用程序發(fā)出的各個連接請求在第一計算機中建立接收由第一應(yīng)用程序開始的請求數(shù)據(jù)的第一虛擬插口的裝置;在第一計算機中建立第一實插口并在第二計算機中建立第二實插口以通過外部通信鏈接連接第一計算機和第二計算機的裝置;在第二計算機中對于第一應(yīng)用程序發(fā)出的各個連接請求建立第二虛擬插口的裝置,其中第二虛擬插口對應(yīng)于在第一計算機中建立的響應(yīng)第一應(yīng)用程序發(fā)出的連接請求的第一虛擬插口;將和第一虛擬插口相連系的請求數(shù)據(jù)多路傳輸?shù)降谝粚嵅蹇诘难b置;通過外部通信鏈接采用TCP協(xié)議將被多路傳輸?shù)恼埱髷?shù)據(jù)傳輸給第二實插口的裝置;從外部通信鏈接接收多路傳輸?shù)恼埱髷?shù)據(jù)的裝置;對由第二實插口從外部通信鏈接接收到的請求數(shù)據(jù)進行信號分離的裝置;將信號分離后的請求數(shù)據(jù)提供給對應(yīng)于響應(yīng)第一應(yīng)用程序的請求建立的第一虛擬插口的第二虛擬插口的裝置;將第二虛擬插口接收到的請求數(shù)據(jù)提供給第二應(yīng)用程序的裝置;并且維持第一和第二實插口直到對應(yīng)于建立第一虛擬插口的第一應(yīng)用程序發(fā)出的請求的請求數(shù)據(jù)已被提供給第二應(yīng)用程序為止的裝置。
9.如權(quán)利要求8所述的設(shè)備還包括在和第一應(yīng)用程序發(fā)出的請求相關(guān)的第二虛擬插口接收從第二應(yīng)用程序來的響應(yīng)第一應(yīng)用程序發(fā)出的請求的響應(yīng)數(shù)據(jù)的裝置;將第二虛擬插口接收到的響應(yīng)數(shù)據(jù)多路傳輸?shù)降诙嵅蹇诘难b置;通過外部通信鏈接以TCP通信協(xié)議將多路傳輸?shù)捻憫?yīng)數(shù)據(jù)傳輸給第一實插口的裝置;通過外部通信鏈接接收多路傳輸?shù)捻憫?yīng)數(shù)據(jù)的裝置;對第一實插口接收到的響應(yīng)數(shù)據(jù)進行信號分離的裝置;將信號分離后的響應(yīng)數(shù)據(jù)提供給對應(yīng)于第一應(yīng)用程序發(fā)出的請求響應(yīng)第一應(yīng)用程序的請求的第一虛擬插口的裝置;并且將第一虛擬插口接收到的響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序的裝置。
10.如權(quán)利要求9所述的設(shè)備還包括在多路傳輸響應(yīng)數(shù)據(jù)之后,關(guān)閉第二虛擬插口的裝置;并且在將響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序后,關(guān)閉第一虛擬插口的裝置。
11.如權(quán)利要求10所述的設(shè)備,其中所述的維持裝置包括當所有的第一虛擬插口被關(guān)閉后關(guān)閉第一和第二實插口的裝置。
12.如權(quán)利要求10所述的設(shè)備,其中所述的維持裝置包括在所有的第一虛擬插口被關(guān)閉后維持第一和第二實插口一段預定時間的裝置。
13.如權(quán)利要求8所述的設(shè)備,其中第一應(yīng)用程序包括網(wǎng)服務(wù)器,第二應(yīng)用程序包括網(wǎng)瀏覽器。
14.如權(quán)利要求8所述的設(shè)備,其中外部通信鏈接包括無線通信鏈接。
15.一種減少通過通信鏈接從駐留于第一計算機中的第一應(yīng)用程序傳輸?shù)今v留于第二計算機中的第二應(yīng)用程序的數(shù)據(jù)的計算機程序產(chǎn)品,其中通過外部通信鏈接采用TCP通信協(xié)議從第一計算機將數(shù)據(jù)傳輸?shù)降诙嬎銠C,該計算機程序產(chǎn)品包括計算機可讀存儲介質(zhì),在所述的介質(zhì)中包括有計算機可讀程序代碼工具,所述的計算機可讀程序代碼工具包括響應(yīng)第一應(yīng)用程序發(fā)出的各個連接請求在第一計算機中建立接收由第一應(yīng)用程序開始的請求數(shù)據(jù)的第一虛擬插口的計算機可讀程序代碼工具;在第一計算機中建立第一實插口并在第二計算機中建立第二實插口以通過外部通信鏈接連接第一計算機和第二計算機的計算機可讀程序代碼工具;在第二計算機中對于第一應(yīng)用程序發(fā)出的各個連接請求建立第二虛擬插口的計算機可讀程序代碼工具,其中第二虛擬插口對應(yīng)于在第一計算機中建立的響應(yīng)第一應(yīng)用程序發(fā)出的連接請求的第一虛擬插口;將和第一虛擬插口相連系的請求數(shù)據(jù)多路傳輸?shù)降谝粚嵅蹇诘挠嬎銠C可讀程序代碼工具;通過外部通信鏈接采用TCP協(xié)議將被多路傳輸?shù)恼埱髷?shù)據(jù)傳輸給第二實插口的計算機可讀程序代碼工具;從外部通信鏈接接收多路傳輸?shù)恼埱髷?shù)據(jù)的計算機可讀程序代碼工具;對由第二實插口從外部通信鏈接接收到的請求數(shù)據(jù)進行信號分離的計算機可讀程序代碼工具;將信號分離后的請求數(shù)據(jù)提供給對應(yīng)于響應(yīng)第一應(yīng)用程序的請求建立的第一虛擬插口的第二虛擬插口的計算機可讀程序代碼工具;將第二虛擬插口接收到的請求數(shù)據(jù)提供給第二應(yīng)用程序的計算機可讀程序代碼工具;并且維持第一和第二實插口直到對應(yīng)于建立第一虛擬插口的第一應(yīng)用程序發(fā)出的請求的請求數(shù)據(jù)已被提供給第二應(yīng)用程序為止的計算機可讀程序代碼工具。
16.如權(quán)利要求15所述的計算機程序產(chǎn)品還包括在和第一應(yīng)用程序發(fā)出的請求相關(guān)的第二虛擬插口接收從第二應(yīng)用程序來的響應(yīng)第一應(yīng)用程序發(fā)出的請求的響應(yīng)數(shù)據(jù)的計算機可讀程序代碼工具;將第二虛擬插口接收到的響應(yīng)數(shù)據(jù)多路傳輸?shù)降诙嵅蹇诘挠嬎銠C可讀程序代碼工具;通過外部通信鏈接以TCP通信協(xié)議將多路傳輸?shù)捻憫?yīng)數(shù)據(jù)傳輸給第一實插口的計算機可讀程序代碼工具;通過外部通信鏈接接收多路傳輸?shù)捻憫?yīng)數(shù)據(jù)的計算機可讀程序代碼工具;對第一實插口接收到的響應(yīng)數(shù)據(jù)進行信號分離的計算機可讀程序代碼工具;將信號分離后的響應(yīng)數(shù)據(jù)提供給對應(yīng)于第一應(yīng)用程序發(fā)出的請求響應(yīng)第一應(yīng)用程序的請求的第一虛擬插口的計算機可讀程序代碼工具;并且將第一虛擬插口接收到的響應(yīng)數(shù)器提供給第一應(yīng)用程序的計算機可讀程序代碼工具。
17.如權(quán)利要求16所述的計算機程序產(chǎn)品還包括在多路傳輸響應(yīng)數(shù)據(jù)之后,關(guān)閉第二虛擬插口的計算機可讀程序代碼工具;并且在將響應(yīng)數(shù)據(jù)提供給第一應(yīng)用程序后,關(guān)閉第一虛擬插口的計算機可讀程序代碼工具。
18.如權(quán)利要求17所述的計算機程序產(chǎn)品,其中所述的用于維持的計算機可讀程序代碼工具包括當所有的第一虛擬插口被關(guān)閉后關(guān)閉第一和第二實插口的計算機可讀程序代碼工具。
19.如權(quán)利要求17所述的計算機程序產(chǎn)品,其中所述的用于維持的計算機可讀程序代碼工具包括在所有的第一虛擬插口被關(guān)閉后維持第一和第二實插口一段預定時間的計算機可讀程序代碼工具。
20.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中第一應(yīng)用程序包括網(wǎng)服務(wù)器,第二應(yīng)用程序包括網(wǎng)瀏覽器。
21.如權(quán)利要求15所述的計算機程序產(chǎn)品,其中外部通信鏈接包括無線通信鏈接。
全文摘要
一種減少通過通信鏈接以TCP協(xié)議從駐留于第一計算機中的第一應(yīng)用程序傳輸?shù)今v留于第二計算機中的第二應(yīng)用程序的數(shù)據(jù)的方法、設(shè)備和計算機程序產(chǎn)品。該方法、設(shè)備和計算機程序產(chǎn)品包括響應(yīng)第一應(yīng)用程序發(fā)出的各個連接請求在第一計算機中建立接收由第一應(yīng)用程序開始的請求數(shù)據(jù)的第一虛擬插口。在第一計算機中建立第一實插口并在第二計算機中建立第二實插口以通過外部通信鏈接連接第一計算機和第二計算機,并且維持第一實插口和第二實插口直到請求數(shù)據(jù)已被提供給第二應(yīng)用程序。在第二計算機中對于第一應(yīng)用程序發(fā)出的各個連接請求建立第二虛擬插口,其中第二虛擬插口對應(yīng)于在第一計算機中建立的響應(yīng)第一應(yīng)用程序發(fā)出的連接請求的第一虛擬插口。將和第一虛擬插口相連系的請求數(shù)據(jù)多路傳輸?shù)降谝粚嵅蹇诓⑼ㄟ^外部通信鏈接采用TCP協(xié)議傳輸。第二實插口通過外部通信鏈接接收多路傳輸?shù)恼埱髷?shù)據(jù)并且進行信號分離。將信號分離后的請求數(shù)據(jù)提供給對應(yīng)的第二虛擬插口,該第二虛擬插口將請求數(shù)據(jù)提供給第二應(yīng)用程序。
文檔編號G06F13/00GK1184576SQ96193947
公開日1998年6月10日 申請日期1996年7月11日 優(yōu)先權(quán)日1996年2月15日
發(fā)明者里德·里查德·比亭格, 米切爾·勒維·弗萊克爾, 巴龍·考那留斯·豪塞爾, 戴維德·布魯斯·林德奎斯特 申請人:國際商業(yè)機器公司