專利名稱::對通過http的異步消息通信進(jìn)行連接管理的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明總的涉及數(shù)據(jù)通信網(wǎng)絡(luò)。具體而言,本發(fā)明涉及用于使用中間設(shè)備來管理用于異步消息通信(messaging)的網(wǎng)絡(luò)連接的系統(tǒng)和方法。
背景技術(shù):
:由于Web2.0應(yīng)用可以和異步更新相接口,所以越來越流行。這些*吐2.0應(yīng)用可以利用超文本傳輸協(xié)議(HTTP,一種同步請求和響應(yīng)協(xié)議)模擬異步通知,這對服務(wù)器造成額外的負(fù)載。由于HTTP是同步請求和響應(yīng)協(xié)議,多個(gè)實(shí)現(xiàn)方式模擬通過HTTP的異步通知。然而,這些實(shí)現(xiàn)方式有一個(gè)或多個(gè)缺陷,這些缺陷會增加服務(wù)器負(fù)載并對多用戶擴(kuò)展性造成挑戰(zhàn)。一種這類實(shí)現(xiàn)方式包括客戶機(jī)間斷地輪詢服務(wù)器,以發(fā)現(xiàn)服務(wù)器是否有排隊(duì)要發(fā)給客戶機(jī)的任何數(shù)據(jù)。該方法有幾個(gè)缺陷。具體而言,該方法在沒有數(shù)據(jù)可用時(shí)進(jìn)行輪詢會浪費(fèi)網(wǎng)絡(luò)帶寬,由于數(shù)據(jù)耗時(shí)排隊(duì)等待直到服務(wù)器接收到客戶機(jī)的下一次輪詢(HTTP)請求,而且,由于服務(wù)器必須對每次輪詢請求做出驗(yàn)證和響應(yīng)(有時(shí)將此稱為“反復(fù)擊打服務(wù)器”),所以會降低應(yīng)用的響應(yīng)性。這些缺陷一起作用會不可避免地導(dǎo)致響應(yīng)性和帶寬之間的折衷——這是由于增加輪詢頻率會減小等待時(shí)間,但是同時(shí)增加帶寬消耗和服務(wù)器負(fù)載(降低輪詢頻率時(shí)反之亦然)。另一種實(shí)現(xiàn)方法包括諸如長輪詢(long-polling)和流式響應(yīng)(streaming-response通常稱為永久幀)的技術(shù)。這些技術(shù)使得服務(wù)器把通知推送給客戶機(jī)而不是讓客戶機(jī)輪詢更新??梢允褂瞄L輪詢或流式響應(yīng)技術(shù)來推送來自服務(wù)器的更新。長輪詢中,客戶機(jī)通過發(fā)出HTTP請求周期性地輪詢更新。如果沒有更新,服務(wù)器保持連接為打開(open)的,但是不響應(yīng)??蛻魴C(jī)一接到來自服務(wù)器的響應(yīng),或者請求過期,客戶機(jī)就發(fā)出另一個(gè)請求。這保證服務(wù)器(幾乎)總是保持服務(wù)器可用來把數(shù)據(jù)“推送”給客戶機(jī)的請求。利用流式響應(yīng)技術(shù),采用流式傳輸?shù)目蛻魴C(jī)打開到服務(wù)器的長期HTTP連接,這和長輪詢技術(shù)一樣。然而,在服務(wù)器沒有更多更新要發(fā)送給客戶機(jī)時(shí),服務(wù)器不關(guān)閉響應(yīng)。相反,使用HTTP塊(chunk)編碼機(jī)制形成響應(yīng)時(shí),當(dāng)有新的更新時(shí)而且保持連接打開時(shí),服務(wù)器可以持續(xù)發(fā)布(post)另外的塊。使用上述技術(shù)中的任一種,服務(wù)器可以實(shí)現(xiàn)低等待時(shí)間和低帶寬,這是由于客戶機(jī)一直具有到服務(wù)器的打開的連接。隨著客戶機(jī)數(shù)量增加,服務(wù)器需要保持到每個(gè)客戶機(jī)的連接打開會變成挑戰(zhàn)性的要求。終止于服務(wù)器的這些大量連接需要內(nèi)核資源和存儲器用于諸如協(xié)議控制塊、套接描述符和套接緩沖器的協(xié)議控制塊。大多數(shù)操作系統(tǒng)不能處理大量的打開套接,保持大量連接打開會對服務(wù)器的性能和可擴(kuò)展性產(chǎn)生負(fù)面影響。
發(fā)明內(nèi)容本發(fā)明通過把連接管理卸載給如CitrixNetkaler裝置或軟件代理的中間設(shè)備而減少由服務(wù)器維護(hù)的閑置傳輸層連接的數(shù)量。中間設(shè)備可以作為完全代理,同時(shí)保持并容納可能幾百萬個(gè)長生命期客戶機(jī)傳輸連接并采用相對少的到服務(wù)器可重復(fù)使用連接。該功能使中間設(shè)備將幾個(gè)服務(wù)器側(cè)連接用于非常多的長久客戶機(jī)連接,同時(shí)可靠地、安全地并且可擴(kuò)展地復(fù)用并管理數(shù)據(jù)交換(服務(wù)器推送)。一方面,這里描述了通過管理客戶機(jī)和服務(wù)器之間的連接的設(shè)備從服務(wù)器向客戶機(jī)推送異步更新的系統(tǒng)和方法的實(shí)施例。設(shè)備的虛擬服務(wù)器從多個(gè)服務(wù)器中的第一服務(wù)器接收第一標(biāo)記,第一標(biāo)記標(biāo)示由虛擬服務(wù)器為多個(gè)客戶機(jī)的第一客戶機(jī)和第一服務(wù)器建立的第一連接。虛擬服務(wù)器維持第一客戶機(jī)和與第一客戶機(jī)到第一服務(wù)器的第一連接相關(guān)聯(lián)的設(shè)備之間的第二連接。在設(shè)備上執(zhí)行的推送虛擬服務(wù)器通過第三連接接收把第一服務(wù)器的異步消息推送給第一客戶機(jī)的請求,所述請求識別第一標(biāo)記。設(shè)備響應(yīng)于接收到請求而識別第一標(biāo)記對應(yīng)于設(shè)備與第一客戶機(jī)之間的第二連接。設(shè)備通過第二連接向第一客戶機(jī)傳輸由設(shè)備通過第三連接接收的異步消息。一個(gè)實(shí)施例中,虛擬服務(wù)器使用連接標(biāo)記協(xié)議建立設(shè)備和第一服務(wù)器之間的第一標(biāo)記。另一個(gè)實(shí)施例中,設(shè)備向第一服務(wù)器傳輸來自第一客戶機(jī)的請求,所述請求具有包括由設(shè)備插入的句柄的第一頭部。設(shè)備從第一服務(wù)器接收對所述請求的響應(yīng),所述響應(yīng)具有包括句柄的第二頭部。設(shè)備響應(yīng)于所述響應(yīng)確定句柄為第一客戶機(jī)的第一標(biāo)記。一些實(shí)施例中,設(shè)備把用第二連接的連接元組編碼的句柄插入到請求的頭部。另一個(gè)實(shí)施例中,設(shè)備把包括設(shè)備的推送虛擬服務(wù)的偵聽端點(diǎn)的句柄插入到請求的頭部。一些實(shí)施例中,設(shè)備從第一服務(wù)器接收把異步消息推送給第一客戶機(jī)的請求,所述請求識別句柄并包括消息。一些實(shí)施例中,推送虛擬服務(wù)器把異步消息作為單個(gè)超文本傳輸協(xié)議(HTTP)塊傳輸給第一客戶機(jī)。其他實(shí)施例包括通過從通知服務(wù)器到設(shè)備的第三連接接收推送請求。一些實(shí)施例中,設(shè)備響應(yīng)于把異步消息傳輸給第一客戶機(jī)而向通知服務(wù)器傳輸確認(rèn)響應(yīng)。其他實(shí)施例中,設(shè)備從通知服務(wù)器接收包括異步消息是最后一條消息的標(biāo)識的異步消息。一個(gè)實(shí)施例中,推送虛擬服務(wù)器接收把第一服務(wù)器的異步消息在第一連接和第二連接的帶外推送給第一客戶機(jī)的請求。另一方面,此處描述用于通過管理客戶機(jī)和服務(wù)器之間的連接的設(shè)備從服務(wù)器向客戶機(jī)推送異步更新的系統(tǒng)。設(shè)備的虛擬服務(wù)器從多個(gè)服務(wù)器中的第一服務(wù)器接收第一標(biāo)記,所述第一標(biāo)記標(biāo)示由虛擬服務(wù)器為多個(gè)客戶機(jī)的第一客戶機(jī)和第一服務(wù)器建立的第一連接,并且維持第一客戶機(jī)和與第一客戶機(jī)到第一服務(wù)器的第一連接相關(guān)聯(lián)的設(shè)備之間的第二連接。還包括在設(shè)備上執(zhí)行的推送虛擬服務(wù)器,其通過第三連接接收把第一服務(wù)器的異步消息推送給第一客戶機(jī)的請求,所述請求識別第一標(biāo)記。設(shè)備響應(yīng)于接收到請求而識別第一標(biāo)記對應(yīng)于設(shè)備與第一客戶機(jī)之間的第二連接,并且通過第二連接向第一客戶機(jī)傳輸由設(shè)備通過第三連接接收的異步消息。此處所述的方法和系統(tǒng)的前述和其它目的、方面、特征和優(yōu)點(diǎn)通過參考下述結(jié)合附圖的細(xì)節(jié)描述將會更加明顯并更易于理解,其中圖IA是客戶機(jī)通過設(shè)備訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的實(shí)施例的框圖;圖IB是通過設(shè)備從服務(wù)器傳送計(jì)算環(huán)境到客戶機(jī)的環(huán)境的實(shí)施例的框圖;圖IC是通過設(shè)備從服務(wù)器傳送計(jì)算環(huán)境到客戶機(jī)的環(huán)境的另一個(gè)實(shí)施例的框圖;圖ID是通過設(shè)備從服務(wù)器傳送計(jì)算環(huán)境到客戶機(jī)的環(huán)境的另一個(gè)實(shí)施例的框圖;圖IE到IH是計(jì)算裝置的實(shí)施例的框圖;圖2A是用于處理客戶機(jī)和服務(wù)器之間的通信的設(shè)備的實(shí)施例的框圖;圖2B是用于優(yōu)化、加速、負(fù)載平衡和路由客戶端和服務(wù)器之間的通信的設(shè)備的另一個(gè)實(shí)施例的框圖;圖3是用于通過設(shè)備與服務(wù)器通信的客戶機(jī)的實(shí)施例的框圖;圖4A是虛擬化環(huán)境的實(shí)施例的框圖;圖4B是虛擬化環(huán)境的另一個(gè)實(shí)施例的框圖;圖4C是虛擬化設(shè)備的實(shí)施例的框圖;圖5A是在多核系統(tǒng)中實(shí)現(xiàn)并行的方法實(shí)施例的框圖;圖5B是使用多核系統(tǒng)的系統(tǒng)的實(shí)施例的框圖;圖5C是多核系統(tǒng)的一個(gè)方面的另一實(shí)施例的框圖;圖6是用于管理連接的系統(tǒng)的實(shí)施例的框圖;圖7是系統(tǒng)所使用的用于管理連接的狀態(tài)圖;圖8A連接標(biāo)記協(xié)議的實(shí)施例的流程圖;圖8B是消息通信協(xié)議的實(shí)施例的流程圖;以及圖9是用于管理異步消息通信的連接的方法的實(shí)施例的流程圖。從下面結(jié)合附圖所提出的詳細(xì)描述,此處所述方法和系統(tǒng)的特征和優(yōu)點(diǎn)將更明顯,其中,相同的參考標(biāo)記在全文中表示相應(yīng)的元件。在附圖中,同樣的附圖標(biāo)記通常表示相同的、功能上相似的和/或結(jié)構(gòu)上相似的單元。具體實(shí)施例方式為了閱讀下述各種具體實(shí)施例的描述,下述對于說明書的部分以及它們各自內(nèi)容的描述是有用的-A部分描述了有益于實(shí)施此處描述的實(shí)施例的網(wǎng)絡(luò)環(huán)境和計(jì)算環(huán)境;-B部分描述了用于傳送計(jì)算環(huán)境到遠(yuǎn)程用戶的系統(tǒng)和方法的實(shí)施例;-C部分描述了用于加速客戶端和服務(wù)器間通信的系統(tǒng)和方法的實(shí)施例;-D部分描述用于對應(yīng)用傳送控制器進(jìn)行虛擬化的系統(tǒng)和方法的實(shí)施例。-E部分描述用于提供多核架構(gòu)和環(huán)境的系統(tǒng)和方法的實(shí)施例;以及-F部分描述用于對異步消息通信進(jìn)行連接管理的系統(tǒng)和方法的實(shí)施例。A、網(wǎng)絡(luò)和計(jì)算環(huán)境在討論設(shè)備和/或客戶端的系統(tǒng)和方法的實(shí)施例的細(xì)節(jié)之前,討論可在其中部署這些實(shí)施例的網(wǎng)絡(luò)和計(jì)算環(huán)境是有幫助的?,F(xiàn)在參見圖1A,描述了網(wǎng)絡(luò)環(huán)境的實(shí)施例。概括來講,網(wǎng)絡(luò)環(huán)境包括一個(gè)或多個(gè)客戶機(jī)10加-10211(同樣總的稱為本地機(jī)器102,或客戶機(jī)102)通過一個(gè)或多個(gè)網(wǎng)絡(luò)104、104’(總的稱為網(wǎng)絡(luò)104)與一個(gè)或多個(gè)服務(wù)器106a-106n(同樣總的稱為服務(wù)器106,或遠(yuǎn)程機(jī)器106)通信。在一些實(shí)施例中,客戶端102通過設(shè)備200與服務(wù)器106通信。雖然圖IA示出了在客戶機(jī)102和服務(wù)器106之間的網(wǎng)絡(luò)104和網(wǎng)絡(luò)104,,客戶機(jī)102和服務(wù)器106可以位于同一個(gè)的網(wǎng)絡(luò)104上。網(wǎng)絡(luò)104和104”可以是相同類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)104和/或104'可為局域網(wǎng)(LAN),例如公司內(nèi)網(wǎng),城域網(wǎng)(MAN),或者廣域網(wǎng)(WAN)例如因特網(wǎng)或萬維網(wǎng)。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)104’可為專用網(wǎng)絡(luò)并且網(wǎng)絡(luò)104可為公網(wǎng)。在一些實(shí)施例中,網(wǎng)絡(luò)104’可為專用網(wǎng)并且網(wǎng)絡(luò)104’可為公網(wǎng)。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)104和104’可都為專用網(wǎng)。在一些實(shí)施例中,客戶端102可位于公司企業(yè)的分支機(jī)構(gòu)中,通過網(wǎng)絡(luò)104上的WAN連接與位于公司數(shù)據(jù)中心的服務(wù)器106通網(wǎng)絡(luò)104和/或104’可以是任何類型和/或形式的網(wǎng)絡(luò),并且可包括任意下述網(wǎng)絡(luò)點(diǎn)對點(diǎn)網(wǎng)絡(luò),廣播網(wǎng)絡(luò),廣域網(wǎng),局域網(wǎng),電信網(wǎng)絡(luò),數(shù)據(jù)通信網(wǎng)絡(luò),計(jì)算機(jī)網(wǎng)絡(luò),ATM(異步傳輸模式)網(wǎng)絡(luò),SONET(同步光纖網(wǎng)絡(luò))網(wǎng)絡(luò),SDH(同步數(shù)字體系)網(wǎng)絡(luò),無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在一些實(shí)施例中,網(wǎng)絡(luò)104可以包括無線鏈路,諸如紅外信道或者衛(wèi)星頻帶。網(wǎng)絡(luò)104和/或104’的拓?fù)淇蔀榭偩€型、星型或環(huán)型網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)104和/或104’以及網(wǎng)絡(luò)拓?fù)淇梢允菍τ诒绢I(lǐng)域普通技術(shù)人員所熟知的、可以支持此處描述的操作的任何這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓?fù)洹H鐖DIA所示,設(shè)備200被示在網(wǎng)絡(luò)104和104’之間,設(shè)備200也可被稱為接口單元200或者網(wǎng)關(guān)200。在一些實(shí)施例中,設(shè)備200可位于網(wǎng)絡(luò)104上。例如,公司的分支機(jī)構(gòu)可在分支機(jī)構(gòu)中部署設(shè)備200。在其它實(shí)施例中,設(shè)備200可以位于網(wǎng)絡(luò)104'上。例如,設(shè)備200可位于公司的數(shù)據(jù)中心。在另一個(gè)實(shí)施例中,多個(gè)設(shè)備200可在網(wǎng)絡(luò)104上部署。在一些實(shí)施例中,多個(gè)設(shè)備200可布署在網(wǎng)絡(luò)104’上。在一個(gè)實(shí)施例中,第一設(shè)備200與第二設(shè)備200’通信。在其它實(shí)施例中,設(shè)備200作為客戶端102可為位于同一或不同網(wǎng)絡(luò)104、104’的任一客戶端102或服務(wù)器106的一部分。一個(gè)或多個(gè)設(shè)備200可位于客戶端102和服務(wù)器106之間的網(wǎng)絡(luò)或網(wǎng)絡(luò)通信路徑中的任一點(diǎn)。在一些實(shí)施例中,設(shè)備200包括由位于Ft.LauderdaleFlorida的CitrixSystems公司制造的被稱為CitrixNetkaler設(shè)備的任意網(wǎng)絡(luò)設(shè)備。在其它實(shí)施例中,設(shè)備200包括由位于kattle,Washington的F5Networks公司制造的被稱為WebAccelerator和BigIP的任意一個(gè)產(chǎn)品實(shí)施例。在另一個(gè)實(shí)施例中,設(shè)備205包括由位于Sunnyvale,California的JuniperNetworks公司制造的DX加速裝置平臺和/或諸如SA700、SA2000、SA4000和SA6000裝置的SSLVPN系列裝置中的任意一個(gè)。在又一個(gè)實(shí)施例中,設(shè)備200包括由位于SanJose,California的CiscoSystems公司制造的任意應(yīng)用加速和/或安全相關(guān)的設(shè)備和/或軟件,例如CiscoACE應(yīng)用控制引擎模塊業(yè)務(wù)(ApplicationControlEngineModuleservice)軟件和網(wǎng)絡(luò)模塊以及CiscoAVS系列應(yīng)用速度系統(tǒng)(ApplicationVelocitySystem)。在一個(gè)實(shí)施例中,系統(tǒng)可包括多個(gè)邏輯分組的服務(wù)器106。在這些實(shí)施例中,服務(wù)器的邏輯分組可以被稱為服務(wù)器群38。在其中一些實(shí)施例中,服務(wù)器106可為地理上分散的。在一些情況中,群38可以作為單個(gè)實(shí)體被管理。在其它實(shí)施例中,服務(wù)器群38包括多個(gè)服務(wù)器群38。在一個(gè)實(shí)施例中,服務(wù)器群代表一個(gè)或多個(gè)客戶端102執(zhí)行一個(gè)或多個(gè)應(yīng)用程序。在每個(gè)群38中的服務(wù)器106可為不同種類。一個(gè)或多個(gè)服務(wù)器106可根據(jù)一種類型的操作系統(tǒng)平臺(例如,由Washington,Redmond的Microsoft公司制造的WINDOWSNT)操作,而一個(gè)或多個(gè)其它服務(wù)器106可根據(jù)另一類型的操作系統(tǒng)平臺(例如,Unix或Linux)操作。每個(gè)群38的服務(wù)器106不需要與相同群38內(nèi)的另一個(gè)服務(wù)器106物理上接近。因此,邏輯分組為群38的服務(wù)器106組可使用廣域網(wǎng)(WAN)連接或中等區(qū)域網(wǎng)(MAN)連接互聯(lián)。例如,群38可包括物理上位于不同大陸或大陸、國家、州、城市、校園或房間的不同區(qū)域的服務(wù)器106。如果服務(wù)器106使用局域網(wǎng)(LAN)連接或一些直連形式進(jìn)行連接,則群38中的服務(wù)器106間的數(shù)據(jù)傳送速度可增加。服務(wù)器106可指文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器或者網(wǎng)關(guān)服務(wù)器。在一些實(shí)施例中,服務(wù)器106可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。在一個(gè)實(shí)施例中,服務(wù)器106可包括活動(dòng)目錄。客戶端102也可稱為客戶端節(jié)點(diǎn)或端點(diǎn)。在一些實(shí)施例中,客戶機(jī)102可以有作為客戶機(jī)節(jié)點(diǎn)尋求訪問服務(wù)器上的應(yīng)用的能力,也可以有作為應(yīng)用服務(wù)器為其它客戶機(jī)10加-10211提供對寄載的應(yīng)用的訪問的能力。在一些實(shí)施例中,客戶端102與服務(wù)器106通信。在一個(gè)實(shí)施例中,客戶端102可與群組38中的服務(wù)器106之一直接通信。在另一個(gè)實(shí)施例中,客戶端102執(zhí)行程序鄰近應(yīng)用(programneighborhoodapplication)以與群組38內(nèi)的服務(wù)器106通信。在另一個(gè)實(shí)施例中,服務(wù)器106提供主節(jié)點(diǎn)的功能。在一些實(shí)施例中,客戶端102通過網(wǎng)絡(luò)104與群組38中的服務(wù)器106通信。通過網(wǎng)絡(luò)104,客戶端102例如可以請求執(zhí)行群組38中的服務(wù)器106a-106n寄載的各種應(yīng)用,并接收應(yīng)用執(zhí)行結(jié)果的輸出進(jìn)行顯示。在一些實(shí)施例中,只有主節(jié)點(diǎn)提供識別和提供與寄載所請求的應(yīng)用的服務(wù)器106’相關(guān)的地址信息所需的功能。在一個(gè)實(shí)施例中,服務(wù)器106提供網(wǎng)絡(luò)(Web)服務(wù)器的功能。在另一個(gè)實(shí)施例中,服務(wù)器106a從客戶機(jī)102接收請求,將請求轉(zhuǎn)發(fā)到第二服務(wù)器106b,并使用服務(wù)器106b對請求的響應(yīng)來對客戶機(jī)102的請求進(jìn)行響應(yīng)。在又另一個(gè)實(shí)施例中,服務(wù)器106獲得客戶端102可用的應(yīng)用的列舉以及與寄載由該應(yīng)用的列舉所識別的應(yīng)用的服務(wù)器106相關(guān)的地址信息。在又一個(gè)實(shí)施例中,服務(wù)器106使用web接口呈現(xiàn)對客戶端102的請求的響應(yīng)。在一個(gè)實(shí)施例中,客戶端102直接與服務(wù)器106通信以訪問所識別的應(yīng)用。在另一個(gè)實(shí)施例中,客戶端102接收諸如顯示數(shù)據(jù)的應(yīng)用輸出數(shù)據(jù),該應(yīng)用輸出數(shù)據(jù)由服務(wù)器106上所識別的應(yīng)用的執(zhí)行而產(chǎn)生?,F(xiàn)在參考圖1B,描述了部署多個(gè)設(shè)備200的網(wǎng)絡(luò)環(huán)境的實(shí)施例。第一設(shè)備200可以部署在第一網(wǎng)絡(luò)104上,而第二設(shè)備200'部署在第二網(wǎng)絡(luò)104'上。例如,公司可以在分支機(jī)構(gòu)部署第一設(shè)備200,而在數(shù)據(jù)中心部署第二設(shè)備200'。在另一個(gè)實(shí)施例中,第一設(shè)備8200和第二設(shè)備200'被部署在同一個(gè)網(wǎng)絡(luò)104或網(wǎng)絡(luò)104'上。例如,第一設(shè)備200可以被部署用于第一服務(wù)器群組38,而第二設(shè)備200'可以被部署用于第二服務(wù)器群組38'。在另一個(gè)實(shí)例中,第一設(shè)備200可以被部署在第一分支機(jī)構(gòu),而第二設(shè)備200'被部署在第二分支機(jī)構(gòu)'。在一些實(shí)施例中,第一設(shè)備200和第二設(shè)備200'彼此協(xié)同或聯(lián)合工作,以加速客戶機(jī)和服務(wù)器之間的網(wǎng)絡(luò)業(yè)務(wù)量或應(yīng)用和數(shù)據(jù)的傳送。現(xiàn)在參考圖1C,描述了網(wǎng)絡(luò)環(huán)境的另一個(gè)實(shí)施例,在該網(wǎng)絡(luò)環(huán)境中,將設(shè)備200和一個(gè)或多個(gè)其它類型的設(shè)備部署在一起,例如,部署在一個(gè)或多個(gè)WAN優(yōu)化設(shè)備205,205’之間。例如,第一WAN優(yōu)化設(shè)備205顯示在網(wǎng)絡(luò)104和104'之間,而第二WAN優(yōu)化設(shè)備205'可以部署在設(shè)備200和一個(gè)或多個(gè)服務(wù)器106之間。例如,公司可以在分支機(jī)構(gòu)部署第一WAN優(yōu)化設(shè)備205,而在數(shù)據(jù)中心部署第二WAN優(yōu)化設(shè)備205'。在一些實(shí)施例中,設(shè)備205可以位于網(wǎng)絡(luò)104'上。在其它實(shí)施例中,設(shè)備205'可以位于網(wǎng)絡(luò)104上。在一些實(shí)施例中,設(shè)備205'可以位于網(wǎng)絡(luò)104'或網(wǎng)絡(luò)104"上。在一個(gè)實(shí)施例中,設(shè)備205和205'在同一個(gè)網(wǎng)絡(luò)上。在另一個(gè)實(shí)施例中,設(shè)備205和205'在不同的網(wǎng)絡(luò)上。在另一個(gè)實(shí)例中,第一WAN優(yōu)化設(shè)備205可以被部署用于第一服務(wù)器群38,而第二WAN優(yōu)化設(shè)備205'可以被部署用于第二服務(wù)器群38'。在一個(gè)實(shí)施例中,設(shè)備205是用于加速、優(yōu)化或者以其他方式改善諸如發(fā)向和/或來自WAN連接的業(yè)務(wù)的任意類型和形式的網(wǎng)絡(luò)業(yè)務(wù)的性能、操作或服務(wù)質(zhì)量的裝置。在一些實(shí)施例中,設(shè)備205是一個(gè)性能提高的代理。在其它實(shí)施例中,設(shè)備205是任意類型和形式的WAN優(yōu)化或加速裝置,有時(shí)也被稱為WAN優(yōu)化控制器。在一個(gè)實(shí)施例中,設(shè)備205是由位于Ft.LauderdaleFlorida的CitrixSystems公司出品的被稱為WANkaler的產(chǎn)品實(shí)施例中的任意一種。在其它實(shí)施例中,設(shè)備205包括由位于kattle,Washington的F5Networks公司出品的被稱為BIG-IP鏈路控制器和WANjet的產(chǎn)品實(shí)施例中的任意一種。在另一個(gè)實(shí)施例中,設(shè)備205包括由位于Sunnyvale,California的JuniperNetfforks公司出品的WX和WXCWAN加速裝置平臺中的任意一種。在一些實(shí)施例中,設(shè)備205包括由SanFrancisco,California^RiverbedTechnology[JB(白勺蟲工魚尊(steelhead)WAN優(yōu)化設(shè)備中的任意一種。在其它實(shí)施例中,設(shè)備205包括由位于Roseland,NewJersey的ExpandNetworks公司出品的WAN相關(guān)裝置中的任意一種。在一個(gè)實(shí)施例中,設(shè)備205包括由位于Cupertino,California的Packeteer公司出品的任意一種WAN相關(guān)設(shè)備,例如由Packeteer提供的Packet釙aper、iSbared和SkyX產(chǎn)品實(shí)施例。在又一個(gè)實(shí)施例中,設(shè)備205包括由位于SanJose,California的CiscoSystems公司出品的任意WAN相關(guān)設(shè)備和/或軟件,例如Cisco廣域網(wǎng)應(yīng)用服務(wù)軟件和網(wǎng)絡(luò)模塊以及廣域網(wǎng)引擎設(shè)備。在一個(gè)實(shí)施例中,設(shè)備205為分支機(jī)構(gòu)或遠(yuǎn)程辦公室提供應(yīng)用和數(shù)據(jù)加速業(yè)務(wù)。在一個(gè)實(shí)施例中,設(shè)備205包括廣域文件服務(wù)(WAR5)的優(yōu)化。在另一個(gè)實(shí)施例中,設(shè)備205加速文件的傳送,例如經(jīng)由通用hternet文件系統(tǒng)(CIFS)協(xié)議。在其它實(shí)施例中,設(shè)備205在存儲器和/或存儲裝置中提供高速緩存來加速應(yīng)用和數(shù)據(jù)的傳送。在一個(gè)實(shí)施例中,設(shè)備205在任意級別的網(wǎng)絡(luò)堆棧或在任意的協(xié)議或網(wǎng)絡(luò)層中提供網(wǎng)絡(luò)業(yè)務(wù)量的壓縮。在另一個(gè)實(shí)施例中,設(shè)備205提供傳輸層協(xié)議優(yōu)化、流量控制、性能增強(qiáng)或修改和/或管理,以加速WAN連接上的應(yīng)用和數(shù)據(jù)的傳送。例如,在一個(gè)實(shí)施例中,設(shè)備205提供傳輸控制協(xié)議(TCP)優(yōu)化。在其它實(shí)施例中,設(shè)備205提供對于任意會話或應(yīng)用層協(xié)議的優(yōu)化、流量控制、性能9增強(qiáng)或修改和/或管理。在另一個(gè)實(shí)施例中,設(shè)備205將任意類型和形式的數(shù)據(jù)或信息編碼成網(wǎng)絡(luò)分組的定制的或標(biāo)準(zhǔn)的TCP和/或IP的報(bào)頭字段或可選字段,以將其存在、功能或能力通告給另一個(gè)設(shè)備205'。在另一個(gè)實(shí)施例中,設(shè)備205'可以使用在TCP和/或IP報(bào)頭字段或選項(xiàng)中編碼的數(shù)據(jù)來與另一個(gè)設(shè)備205'進(jìn)行通信。例如,設(shè)備可以使用TCP選項(xiàng)或IP報(bào)頭字段或選項(xiàng)來傳達(dá)在執(zhí)行諸如WAN加速的功能時(shí)或者為了彼此聯(lián)合工作而由設(shè)備205,205'所使用的一個(gè)或多個(gè)參數(shù)。在一些實(shí)施例中,設(shè)備200保存在設(shè)備205和205‘之間傳達(dá)的TCP和/或IP報(bào)頭和/或可選字段中編碼的任意信息。例如,設(shè)備200可以終止經(jīng)過設(shè)備200的傳輸層連接,例如經(jīng)過設(shè)備205和205'的在客戶機(jī)和服務(wù)器之間的一個(gè)傳輸層連接。在一個(gè)實(shí)施例中,設(shè)備200識別并保存由第一設(shè)備205通過第一傳輸層連接發(fā)送的傳輸層分組中的任意編碼信息,并經(jīng)由第二傳輸層連接來將具有編碼信息的傳輸層分組傳達(dá)到第二設(shè)備205'?,F(xiàn)在參考圖1D,描述了用于傳送和/或操作客戶機(jī)102上的計(jì)算環(huán)境的網(wǎng)絡(luò)環(huán)境。在一些實(shí)施例中,服務(wù)器106包括用于向一個(gè)或多個(gè)客戶機(jī)102傳送計(jì)算環(huán)境或應(yīng)用和/或數(shù)據(jù)文件的應(yīng)用傳送系統(tǒng)190??偟膩碚f,客戶機(jī)10通過網(wǎng)絡(luò)104、104’和設(shè)備200與服務(wù)器106通信。例如,客戶機(jī)102可駐留在公司的遠(yuǎn)程辦公室里,例如分支機(jī)構(gòu),并且服務(wù)器106可駐留在公司數(shù)據(jù)中心。客戶機(jī)102包括客戶機(jī)代理120以及計(jì)算環(huán)境15。計(jì)算環(huán)境15可執(zhí)行或操作用于訪問、處理或使用數(shù)據(jù)文件的應(yīng)用。計(jì)算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件可通過設(shè)備200和/或服務(wù)器106傳送。在一些實(shí)施例中,設(shè)備200加速計(jì)算環(huán)境15或者其任意部分到客戶機(jī)102的傳送。在一個(gè)實(shí)施例中,設(shè)備200通過應(yīng)用傳送系統(tǒng)190加速計(jì)算環(huán)境15的傳送。例如,可使用此處描述的實(shí)施例來加速從總公司中央數(shù)據(jù)中心到遠(yuǎn)程用戶位置(例如公司的分支機(jī)構(gòu))的應(yīng)用處理的流應(yīng)用(streamingapplication)及該應(yīng)用可處理的數(shù)據(jù)文件的傳送。在另一個(gè)實(shí)施例中,設(shè)備200加速客戶端102和服務(wù)器106之間的傳輸層業(yè)務(wù)量。設(shè)備200可以提供用于加速從服務(wù)器106到客戶機(jī)102的任意傳輸層有效載荷的加速技術(shù),例如1)傳輸層連接池,幻傳輸層連接多路復(fù)用,幻傳輸控制協(xié)議緩沖,4)壓縮和幻高速緩存。在一些實(shí)施例中,設(shè)備200響應(yīng)于來自客戶機(jī)102的請求提供服務(wù)器106的負(fù)載平衡。在其它實(shí)施例中,設(shè)備200充當(dāng)代理或者訪問服務(wù)器來提供對一個(gè)或者多個(gè)服務(wù)器106的訪問。在另一個(gè)實(shí)施例中,設(shè)備200提供從客戶機(jī)102的第一網(wǎng)絡(luò)104到服務(wù)器106的第二網(wǎng)絡(luò)104’的安全虛擬專用網(wǎng)絡(luò)連接,諸如SSLVPN連接。在又一些實(shí)施例中,設(shè)備200提供客戶機(jī)102和服務(wù)器106之間的連接和通信的應(yīng)用防火墻安全、控制和管理。在一些實(shí)施例中,基于多個(gè)執(zhí)行方法并且基于通過策略引擎195所應(yīng)用的任一驗(yàn)證和授權(quán)策略,應(yīng)用傳送管理系統(tǒng)190提供應(yīng)用傳送技術(shù)來傳送計(jì)算環(huán)境到用戶的桌面(遠(yuǎn)程的或者其它的)。使用這些技術(shù),遠(yuǎn)程用戶可以從任意網(wǎng)絡(luò)連接裝置100獲取計(jì)算環(huán)境并且訪問服務(wù)器所存儲的應(yīng)用和數(shù)據(jù)文件。在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190可駐留在服務(wù)器106上或在其上執(zhí)行。在另一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190可駐留在多個(gè)服務(wù)器106a-106n上或在其上執(zhí)行。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)190可在服務(wù)器群38內(nèi)執(zhí)行。在一個(gè)實(shí)施例中,執(zhí)行應(yīng)用傳送系統(tǒng)190的服務(wù)器106也可存儲或提供應(yīng)用和數(shù)據(jù)文件。在另一個(gè)實(shí)施例中,一個(gè)或多個(gè)服務(wù)器106的第一組可執(zhí)行應(yīng)用傳送系統(tǒng)190,并且不同的服務(wù)器106η可存儲或提供應(yīng)用和數(shù)據(jù)文件。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)190、應(yīng)用和數(shù)據(jù)文件中的每一個(gè)可駐留或位于不同的服務(wù)器。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190的任何部分可駐留、執(zhí)行、或被存儲于或分發(fā)到設(shè)備200或多個(gè)設(shè)備??蛻魴C(jī)102可包括用于執(zhí)行應(yīng)用的計(jì)算環(huán)境15,該應(yīng)用使用或處理數(shù)據(jù)文件。客戶機(jī)102可通過網(wǎng)絡(luò)104、104’和設(shè)備200請求來自服務(wù)器106的應(yīng)用和數(shù)據(jù)文件。在一個(gè)實(shí)施例中,設(shè)備200可以轉(zhuǎn)發(fā)來自客戶機(jī)102的請求到服務(wù)器106。例如,客戶機(jī)102可能不具有本地存儲或者本地可訪問的應(yīng)用和數(shù)據(jù)文件。響應(yīng)于請求,應(yīng)用傳送系統(tǒng)190和/或服務(wù)器106可以傳送應(yīng)用和數(shù)據(jù)文件到客戶機(jī)102。例如,在一個(gè)實(shí)施例中,服務(wù)器106可以把應(yīng)用作為應(yīng)用流來傳輸,以在客戶機(jī)102上的計(jì)算環(huán)境15中操作。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)190包括CitrixSystemsInc.的CitrixAccessSuite的任一部分(例如MetaFrame或CitrixPresentationServer),和/或微軟公司開發(fā)的MicrosoftWindows終端服務(wù)中的任意一個(gè)。在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190可以通過遠(yuǎn)程顯示協(xié)議或者通過基于遠(yuǎn)程或者基于服務(wù)器計(jì)算的其它方式來傳送一個(gè)或者多個(gè)應(yīng)用到客戶機(jī)102或者用戶。在另一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190可以通過應(yīng)用流來傳送一個(gè)或者多個(gè)應(yīng)用到客戶機(jī)或者用戶。在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190包括策略引擎195,用于控制和管理對應(yīng)用的訪問,應(yīng)用執(zhí)行方法的選擇以及應(yīng)用的傳送。在一些實(shí)施例中,策略引擎195確定用戶或者客戶機(jī)102可以訪問的一個(gè)或者多個(gè)應(yīng)用。在另一個(gè)實(shí)施例中,策略引擎195確定應(yīng)用應(yīng)該如何被傳送到用戶或者客戶機(jī)102,例如執(zhí)行方法。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)190提供多個(gè)傳送技術(shù),從中選擇應(yīng)用執(zhí)行的方法,例如基于服務(wù)器的計(jì)算、本地流式傳輸或傳送應(yīng)用給客戶機(jī)120以用于本地執(zhí)行。在一個(gè)實(shí)施例中,客戶機(jī)102請求應(yīng)用程序的執(zhí)行并且包括服務(wù)器106的應(yīng)用傳送系統(tǒng)190選擇執(zhí)行應(yīng)用程序的方法。在一些實(shí)施例中,服務(wù)器106從客戶機(jī)102接收證書。在另一個(gè)實(shí)施例中,服務(wù)器106從客戶機(jī)102接收對于可用應(yīng)用的列舉的請求。在一個(gè)實(shí)施例中,響應(yīng)該請求或者證書的接收,應(yīng)用傳送系統(tǒng)190列舉對于客戶機(jī)102可用的多個(gè)應(yīng)用程序。應(yīng)用傳送系統(tǒng)190接收請求來執(zhí)行所列舉的應(yīng)用。應(yīng)用傳送系統(tǒng)190選擇預(yù)定數(shù)量的方法之一來執(zhí)行所列舉的應(yīng)用,例如響應(yīng)策略引擎的策略。應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,使得客戶機(jī)102接收通過執(zhí)行服務(wù)器106上的應(yīng)用程序所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,使得本地機(jī)器10在檢索包括應(yīng)用的多個(gè)應(yīng)用文件之后本地執(zhí)行應(yīng)用程序。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,以通過網(wǎng)絡(luò)104流式傳輸應(yīng)用到客戶機(jī)102??蛻魴C(jī)102可以執(zhí)行、操作或者以其它方式提供應(yīng)用,應(yīng)用可為任何類型和/或形式的軟件、程序或者可執(zhí)行指令,例如任何類型和/或形式的web瀏覽器、基于web的客戶機(jī)、客戶機(jī)-服務(wù)器應(yīng)用、瘦客戶端計(jì)算客戶機(jī)、ActiveX控件、或者Java程序、或者可以在客戶機(jī)102上執(zhí)行的任意其它類型和/或形式的可執(zhí)行指令。在一些實(shí)施例中,應(yīng)用可以是代表客戶機(jī)102在服務(wù)器106上執(zhí)行的基于服務(wù)器或者基于遠(yuǎn)程的應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器106可以使用任意瘦-客戶機(jī)或遠(yuǎn)程顯示協(xié)議來顯示輸出到客戶機(jī)102,所述遠(yuǎn)程顯示協(xié)議例如由位于Ft.Lauderdale,Florida的CitrixSystems公司出品的獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議或由位于Redmond,Washington的微軟公司出品的遠(yuǎn)程桌面協(xié)議(RDP)。應(yīng)用可使用任何類型的協(xié)議,并且它可為,例如,HTTP客戶機(jī)、FTP客戶機(jī)、Oscar客戶機(jī)或Telnet客戶機(jī)。在其它實(shí)施例中,應(yīng)用包括和VoIP通信相關(guān)的任何類型的軟件,例如軟IP電話。在進(jìn)一步的實(shí)施例中,應(yīng)用包括涉及到實(shí)時(shí)數(shù)據(jù)通信的任一應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。在一些實(shí)施例中,服務(wù)器106或服務(wù)器群38可運(yùn)行一個(gè)或多個(gè)應(yīng)用,例如提供瘦客戶端計(jì)算或遠(yuǎn)程顯示表示應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器106或服務(wù)器群38作為一個(gè)應(yīng)用來執(zhí)行CitrixSystemsInc.的CitrixAccessSuite的任一部分(例如MetaFrame或CitrixPresentationkrver),和/或微軟公司開發(fā)的MicrosoftWindows終端服務(wù)中的任意一個(gè)。在一個(gè)實(shí)施例中,該應(yīng)用是位于Florida,F(xiàn)ortLauderdale的CitrixSystemsInc.開發(fā)的ICA客戶機(jī)。在其它實(shí)施例中,該應(yīng)用包括由位于Washington,Redmond的Microsoft公司開發(fā)的遠(yuǎn)程桌面(RDP)客戶機(jī)。另外,服務(wù)器106可以運(yùn)行一個(gè)應(yīng)用,例如,其可以是提供電子郵件服務(wù)的應(yīng)用服務(wù)器,例如由位于Washington,Redmond的Microsoft公司制造的MicrosoftExchange,web或Internet月艮務(wù)器,或者桌面共享服務(wù)器,或者協(xié)作服務(wù)器。在一些實(shí)施例中,任一應(yīng)用可以包括任一類型的所寄載的服務(wù)或產(chǎn)品,例如位于California,SantaBarbara的CitrixOnlineDivision提供的Go^ToMeeting,位于California,SantaClara的WebExInc.提供的WebEx,或者位于Washington,Redmond的Microsoft公司提供的MicrosoftOfficeLiveMeeting。仍然參看圖1D,網(wǎng)絡(luò)環(huán)境的一個(gè)實(shí)施例可以包括監(jiān)控服務(wù)器106A。監(jiān)控服務(wù)器106A可以包括任何類型和形式的性能監(jiān)控服務(wù)198。性能監(jiān)控服務(wù)198可以包括監(jiān)控、測量和/或管理軟件和/或硬件,包括數(shù)據(jù)收集、集合、分析、管理和報(bào)告。在一個(gè)實(shí)施例中,性能監(jiān)控業(yè)務(wù)198包括一個(gè)或多個(gè)監(jiān)控代理197。監(jiān)控代理197包括用于在諸如客戶機(jī)102、服務(wù)器106或設(shè)備200和205的裝置上執(zhí)行監(jiān)控、測量和數(shù)據(jù)收集活動(dòng)的任意軟件、硬件或其組合。在一些實(shí)施例中,監(jiān)控代理197包括諸如VisualBasic腳本或Javascript任意類型和形式的腳本。在一個(gè)實(shí)施例中,監(jiān)控代理197相對于裝置的任意應(yīng)用和/或用戶透明地執(zhí)行。在一些實(shí)施例中,監(jiān)控代理197相對于應(yīng)用或客戶機(jī)不顯眼地被安裝和操作。在又一個(gè)實(shí)施例中,監(jiān)控代理197的安裝和操作不需要用于該應(yīng)用或裝置的任何設(shè)備。在一些實(shí)施例中,監(jiān)控代理197以預(yù)定頻率監(jiān)控、測量和收集數(shù)據(jù)。在其它實(shí)施例中,監(jiān)控代理197基于檢測到任意類型和形式的事件來監(jiān)控、測量和收集數(shù)據(jù)。例如,監(jiān)控代理197可以在檢測到對web頁面的請求或收到HTTP響應(yīng)時(shí)收集數(shù)據(jù)。在另一個(gè)實(shí)例中,監(jiān)控代理197可以在檢測到諸如鼠標(biāo)點(diǎn)擊的任一用戶輸入事件時(shí)收集數(shù)據(jù)。監(jiān)控代理197可以報(bào)告或提供任何所監(jiān)控、測量或收集的數(shù)據(jù)給監(jiān)控服務(wù)198。在一個(gè)實(shí)施例中,監(jiān)控代理197根據(jù)時(shí)間安排或預(yù)定頻率來發(fā)送信息給監(jiān)控服務(wù)198。在另一個(gè)實(shí)施例中,監(jiān)控代理197在檢測到事件時(shí)發(fā)送信息給監(jiān)控業(yè)務(wù)198。在一些實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197對諸如客戶機(jī)、服務(wù)器、服務(wù)器群、設(shè)備200、設(shè)備205或網(wǎng)絡(luò)連接的任意網(wǎng)絡(luò)資源或網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)元件的進(jìn)行監(jiān)控和性能測量。在一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行諸如TCP或UDP連接的任意傳輸層連接的監(jiān)控和性能測量。在另一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量網(wǎng)絡(luò)等待時(shí)間。在又一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量帶寬利用。在其它實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量終端用戶響應(yīng)時(shí)間。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198執(zhí)行應(yīng)用的監(jiān)控和性能測量。在另一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行到應(yīng)用的任意會話或連接的監(jiān)控和性能測量。在一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量瀏覽器的性能。在另一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量基于HTTP的事務(wù)的性能。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量IP上語音(VoIP)應(yīng)用或會話的性能。在其它實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量諸如ICA客戶機(jī)或RDP客戶機(jī)的遠(yuǎn)程顯示協(xié)議應(yīng)用的性能。在又一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任意類型和形式的流媒體的性能。在進(jìn)一步的實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量所寄載的應(yīng)用或軟件即服務(wù)(Software-As-A-Service,SaaS)傳送模型的性能。在一些實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197執(zhí)行與應(yīng)用相關(guān)的一個(gè)或多個(gè)事務(wù)、請求或響應(yīng)的監(jiān)控和性能測量。在其它實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量應(yīng)用層堆棧的任意部分,例如任意.NET或J2EE調(diào)用。在一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量數(shù)據(jù)庫或SQL事務(wù)。在又一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任意方法、函數(shù)或應(yīng)用編程接口(API)調(diào)用。在一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197對經(jīng)由諸如設(shè)備200和/或設(shè)備205的一個(gè)或多個(gè)設(shè)備從服務(wù)器到客戶機(jī)的應(yīng)用和/或數(shù)據(jù)的傳送進(jìn)行監(jiān)控和性能測量。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量虛擬化應(yīng)用的傳送的性能。在其它實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量流式應(yīng)用的傳送的性能。在另一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量傳送桌面應(yīng)用到客戶機(jī)和/或在客戶機(jī)上執(zhí)行桌面應(yīng)用的性能。在另一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量客戶機(jī)/服務(wù)器應(yīng)用的性能。在一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197被設(shè)計(jì)和構(gòu)建成為應(yīng)用傳送系統(tǒng)190提供應(yīng)用性能管理。例如,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197可以監(jiān)控、測量和管理經(jīng)由Citrix表示服務(wù)器傳送應(yīng)用的性能。在該實(shí)例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控單獨(dú)的ICA會話。監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197可以測量總的以及每次的會話系統(tǒng)資源使用,以及應(yīng)用和連網(wǎng)性能。監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197可以對于給定用戶和/或用戶會話來標(biāo)識有效服務(wù)器。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控在應(yīng)用傳送系統(tǒng)190和應(yīng)用和/或數(shù)據(jù)庫服務(wù)器之間的后端連接。監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197可以測量每個(gè)用戶會話或ICA會話的網(wǎng)絡(luò)等待時(shí)間、延遲和容量。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控對于應(yīng)用傳送系統(tǒng)190的諸如總的存儲器使用、每個(gè)用戶會話和/或每個(gè)進(jìn)程的存儲器使用。在其它實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控諸如總的CPU使用、每個(gè)用戶會話和/或每個(gè)進(jìn)程的應(yīng)用傳送系統(tǒng)190的CPU使用。在另一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控登錄到諸如Citrix表示服務(wù)器的應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)所需的時(shí)間。在一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶登錄應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)190的持續(xù)時(shí)間。在一些實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控應(yīng)用、服務(wù)器或應(yīng)用傳送系統(tǒng)會話的有效和無效的會話計(jì)數(shù)。在又一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶會話等待時(shí)間。在又一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控任意類型和形式的服務(wù)器指標(biāo)。在一個(gè)實(shí)施例中,監(jiān)控服務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與系統(tǒng)內(nèi)存、CPU使用和磁盤存儲器有關(guān)的指標(biāo)。在另一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控和頁錯(cuò)誤有關(guān)的指標(biāo),諸如每秒頁錯(cuò)誤。在其它實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控往返時(shí)間的指標(biāo)。在又一個(gè)實(shí)施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與應(yīng)用崩潰、錯(cuò)誤和/或中止相關(guān)的指標(biāo)。在一些實(shí)施例中,監(jiān)控服務(wù)198和監(jiān)控代理198包括由位于Ft.Lauderdale,F(xiàn)lorida的CitrixSystems公司出品的被稱為EdgeSight的任意一種產(chǎn)品實(shí)施例。在另一個(gè)實(shí)施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于I^aloAlto,California的Symphoniq公司出品的被稱為TrueView產(chǎn)品套件的產(chǎn)品實(shí)施例的任一部分。在一個(gè)實(shí)施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于SanFrancisco,California的TeaLeaf技術(shù)公司出品的被稱為TeaLeafCX產(chǎn)品套件的產(chǎn)品實(shí)施例的任意部分。在其它實(shí)施例中,性能監(jiān)控服務(wù)198和/或監(jiān)控代理198包括由位于Houston,"Texas的BMC軟件公司出品的諸如BMC性能管理器和巡邏產(chǎn)品(BMCPerformanceManagerandPatrolproducts)的商業(yè)業(yè)務(wù)管理產(chǎn)品的任意部分??蛻魴C(jī)102、服務(wù)器106和設(shè)備200可以布署為和/或執(zhí)行在任意類型和形式的計(jì)算裝置上,諸如能夠在任意類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計(jì)算機(jī)、網(wǎng)絡(luò)裝置或者設(shè)備。圖IE和IF描述了可用于實(shí)施客戶機(jī)102、服務(wù)器106或設(shè)備200的實(shí)施例的計(jì)算裝置100的框圖。如圖IE和IF所示,每個(gè)計(jì)算裝置100包括中央處理單元101和主存儲器單元122。如圖IE所示,計(jì)算裝置100可以包括可視顯示裝置124、鍵盤1和/或諸如鼠標(biāo)的指示裝置127。每個(gè)計(jì)算裝置100也可包括其它可選擇的組件,例如一個(gè)或多個(gè)輸入/輸出裝置130a-130b(總的使用標(biāo)號130表示),以及與中央處理單元101通信的高速緩存存儲器140。中央處理單元101是響應(yīng)并處理從主存儲器單元122取出的指令的任意邏輯電路。在許多實(shí)施例中,中央處理單元由微處理器單元提供,例如由California,MountainView的Intel公司制造的微處理器單元;由Illinois,Schaumburg的Motorola公司制造的微處理器單元;由Califirnia,SantaClara的Transmeta公司制造的微處理器單元;由NewYork,WhitePlains白勺InternationalBusinessMachines&白勺RS/6000^hS器;或者由California,Sunnyvale的AdvancedMicroDevices公司制造的微處理器單元。計(jì)算裝置100可以基于這些處理器中的任意一種,或者能夠按照這里所說明的那樣運(yùn)行的任意其它處理器。主存儲器單元122可以是能夠存儲數(shù)據(jù)并允許微處理器101直接訪問任意存儲位置的一個(gè)或多個(gè)存儲器芯片,例如靜態(tài)隨機(jī)訪問存儲器(SRAM)、Burst(脈沖串)SRAM或SynchBurstSRAM(BSRAM)、動(dòng)態(tài)隨機(jī)訪問存儲器DRAM、快速頁模式DRAM(FPMDRAM)、增強(qiáng)DRAM(EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM(EDORAM)、擴(kuò)展數(shù)據(jù)輸出DRAM(EDODRAM)、脈沖串?dāng)U展數(shù)據(jù)輸出DRAM(BEDODRAM)、增強(qiáng)型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PClOOSDRAM、雙數(shù)據(jù)傳輸率SDRAM(DDRSDRAM)、增強(qiáng)SRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、直接RambusDRAM(DRDRAM)或鐵電RAM(FRAM)。主存儲器122可以基于上述存儲芯片的任意一種,或者能夠像這里所說明的那樣運(yùn)行的任意其它可用存儲芯片。在圖IE中所示的實(shí)施例中,處理器101通過系統(tǒng)總線150(在下面進(jìn)行更詳細(xì)的描述)與主存儲器122進(jìn)行通信。圖IE描述了在其中處理器通過存儲器端口103直接與主存儲器122通信的計(jì)算裝置100的實(shí)施例。例如,在圖IF中,主存儲器122可以是DRDRAM。圖IF示出主處理器101通過第二總線和高速緩存存儲器140通信的實(shí)施例,第二總線有時(shí)也稱為背側(cè)總線。其他實(shí)施例中,主處理器101使用系統(tǒng)總線150和高速緩存存儲器140通信。高速緩存存儲器140通常有比主存儲器122更快的響應(yīng)時(shí)間,并且通常由SRAM、BSRAM或EDRAM提供。在圖IE中所示的實(shí)施例中,處理器101通過本地系統(tǒng)總線150與多個(gè)I/O裝置130進(jìn)行通信??梢允褂酶鞣N不同的總線將中央處理單元101連接到任意I/O裝置130,包括VESAVL總線、ISA總線、EISA總線、微通道體系結(jié)構(gòu)(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線或NuBus。對于I/O裝置是視頻顯示器124的實(shí)施例,處理器101可以使用加速圖形接口(AGP)與顯示器IM通信。圖IF說明了主處理器101通過超傳輸(HyperTransport)、快速I/O或者InfiniBand直接與I/O裝置130b通信的計(jì)算機(jī)100的一個(gè)實(shí)施例。圖IF還示出本地總線和直接通信混合的實(shí)施例處理器101使用本地互連總線和I/O裝置130b通信,但和I/O裝置130a直接通信計(jì)算裝置100可以支持任意適當(dāng)?shù)陌惭b裝置116,例如用于接收像3.5英寸、5.25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動(dòng)器、CD-ROM驅(qū)動(dòng)器、CD-R/RW驅(qū)動(dòng)器、DVD-ROM驅(qū)動(dòng)器、多種格式的磁帶驅(qū)動(dòng)器、USB裝置、硬盤驅(qū)動(dòng)器或適于安裝像任意客戶機(jī)代理120或其部分的軟件和程序的任意其它裝置。計(jì)算裝置100還可以包括存儲裝置128,諸如一個(gè)或者多個(gè)硬盤驅(qū)動(dòng)器或者獨(dú)立磁盤冗余陣列,用于存儲操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲諸如涉及客戶機(jī)代理120的任意程序的應(yīng)用軟件程序?;蛘撸梢允褂冒惭b裝置116的任意一種作為存儲裝置128。此外,操作系統(tǒng)和軟件可從例如可引導(dǎo)CD的可引導(dǎo)介質(zhì)運(yùn)行,諸如KNOPPIX,—種用于GNU/Linux的可引導(dǎo)CD,該可引導(dǎo)CD可自knoppix.net作為GNU/Linux分發(fā)獲得。此外,計(jì)算裝置100可以包括網(wǎng)絡(luò)接口118以通過多種連接(包括但不限于標(biāo)準(zhǔn)電話線路、LAN或WAN鏈路(例如802.11,Tl,Τ3、561Λ、Χ.25)、寬帶連接(如ISDN、幀中繼、ATM)、無線連接、或上述任意或全部的一些組合)連接到局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng)。網(wǎng)絡(luò)接口118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計(jì)算裝置100連接到能夠通信并執(zhí)行這里所說明的操作的任意類型的網(wǎng)絡(luò)的任意其它設(shè)備。各式各樣的I/O裝置130a-130n可以存在于計(jì)算裝置100中。輸入設(shè)備包括鍵盤、鼠標(biāo)、觸控板、軌跡球、話筒和繪圖板。輸出設(shè)備包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光打印機(jī)和熱升華打印機(jī)。如圖IE所示,I/O裝置130可以由I/O控制器123控制。I/O控制器可以控制一個(gè)或多個(gè)I/O裝置,例如鍵盤1和指示裝置127(如鼠標(biāo)或光筆)。此外,I/O裝置還可以為計(jì)算裝置100提供存儲裝置1和/或安裝介質(zhì)116。在其它實(shí)施例中,計(jì)算裝置100可以提供USB連接以接收手持USB存儲裝置,例如由位于LosAlamitos,California的TwintechIndustry公司生產(chǎn)的設(shè)備的USB閃存驅(qū)動(dòng)器線。在一些實(shí)施例中,計(jì)算裝置100可以包括多個(gè)顯示裝置1對『12如或與其相連,這些顯示裝置可以是相同或不同的類型和/或形式。因而,任意一種I/O裝置130a-130n和/或I/O控制器123可以包括任一類型和/或形式的適當(dāng)?shù)挠布④浖蛴布蛙浖慕M合,以支持、允許或提供通過計(jì)算裝置100連接和使用多個(gè)顯示裝置12如_1對11。例如,計(jì)算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動(dòng)器和/或庫,以與顯示裝置1對『12如對接、通信、連接或使用顯示裝置。在一個(gè)實(shí)施例中,視頻適配器可以包括多個(gè)連接器以與多個(gè)顯示裝置1對『12如對接。在其它實(shí)施例中,計(jì)算裝置100可以包括多個(gè)視頻適配器,每個(gè)視頻適配器與顯示裝置12如-1對11中的一個(gè)或多個(gè)連接。在一些實(shí)施例中,計(jì)算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多個(gè)顯示器12如-1對11。在其它實(shí)施例中,顯示裝置中的一個(gè)或多個(gè)可以由一個(gè)或多個(gè)其它計(jì)算裝置提供,諸如(例如通過網(wǎng)絡(luò))與計(jì)算裝置100連接的計(jì)算裝置IOOa和100b。這些實(shí)施例可以包括被設(shè)計(jì)和構(gòu)造的任一類型的軟件,以使用另一個(gè)計(jì)算機(jī)的顯示裝置作為計(jì)算裝置100的第二顯示裝置IMa。本領(lǐng)域的普通技術(shù)人員會認(rèn)識和意識到可以將計(jì)算裝置100配置成擁有多個(gè)顯示裝置的各種方式和實(shí)施例。在進(jìn)一步的實(shí)施例中,I/O裝置130可以是系統(tǒng)總線150和外部通信總線(如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire800總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線或串行SCSI總線)之間的橋170.圖IE和IF中描述的那類計(jì)算裝置100通常地在控制任務(wù)的調(diào)度和對系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計(jì)算裝置100可以運(yùn)行任何操作系統(tǒng),如MicrosoftWindows操作系統(tǒng),不同發(fā)行版本的Unix和Linux操作系統(tǒng),用于Macintosh計(jì)算機(jī)的任意版本的MACOS,任意嵌入式操作系統(tǒng),任意實(shí)時(shí)操作系統(tǒng),任意開源操作系統(tǒng),任意專有操作系統(tǒng),任意用于移動(dòng)計(jì)算裝置的操作系統(tǒng),或者任意其它能夠在計(jì)算裝置上運(yùn)行并完成這里所述操作的操作系統(tǒng)。典型的操作系統(tǒng)包括WIND0WS3.χ、WINDOWS95、WIND0WS98、WINDOWS2000、WINDOWSNT3.51,WINDOWSNT4.0、WINDOWSCE和WIND0WSXP,所有這些均由位于Redmond,Washington的微軟公司出品;由位于Cupertino,California的蘋果計(jì)算機(jī)出品的MacOS;由位于Armonk,NewYork的國際商業(yè)機(jī)器公司出品的OS/2;以及由位于SaltLakeCity,Utah的Caldera公司發(fā)布的可免費(fèi)使用的Linux操作系統(tǒng)或者任意類型和/或形式的Unix操作系統(tǒng),以及其它。在其它實(shí)施例中,計(jì)算裝置100可以有不同的處理器、操作系統(tǒng)以及與其一致的輸入設(shè)備。例如,在一個(gè)實(shí)施例中,計(jì)算機(jī)100是由I^alm公司出品的Treo180、270、1060、600或650智能電話。在該實(shí)施例中,Treo智能電話在I3aImOS操作系統(tǒng)的控制下操作,并包括指示筆輸入裝置以及五向?qū)Ш窖b置。此外,計(jì)算裝置100可以是任意工作站、桌面計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、服務(wù)器、手持計(jì)算機(jī)、移動(dòng)電話、任意其它計(jì)算機(jī)、或能夠通信并有足夠的處理器能力和存儲容量以執(zhí)行此處所述的操作的其它形式的計(jì)算或者電信裝置。如圖IG所示,計(jì)算裝置100可以包括多個(gè)處理器,可以提供用于同時(shí)執(zhí)行指令或者同時(shí)執(zhí)行有關(guān)多于一條數(shù)據(jù)的指令的功能。在一些實(shí)施例中,計(jì)算裝置100可包括具有一個(gè)或多個(gè)內(nèi)核的并行處理器。一個(gè)這樣的實(shí)施例中,計(jì)算裝置100是共享內(nèi)層并行設(shè)備,具有多個(gè)處理器和/或多個(gè)處理器內(nèi)核,把所有可用內(nèi)存作為一個(gè)全局地址空間進(jìn)行訪問。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100是分布式內(nèi)存并行設(shè)備,具有多個(gè)處理器,每個(gè)處理器僅訪問本地存儲器。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100既有共享的存儲器又有16僅由特定處理器或處理器子集訪問的存儲器。另一個(gè)這樣的實(shí)施例中,如多核微處理器的計(jì)算裝置100把兩個(gè)或多個(gè)獨(dú)立處理器組合在一個(gè)封裝中,通常在一個(gè)集成電路(IC)中。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100包括具有單元寬帶引擎(CELLBROADBANDENGINE)架構(gòu)的芯片,并包括高能處理器單元以及多個(gè)協(xié)同處理單元,高能處理器單元和多個(gè)協(xié)同處理單元通過內(nèi)部高速總線連接在一起,可以將內(nèi)部高速總線稱為單元互連總線。一些實(shí)施例中,處理器提供用于同時(shí)執(zhí)行有關(guān)多條數(shù)據(jù)(SIMD)的一個(gè)指令的功能。其他實(shí)施例中,處理器提供用于同時(shí)執(zhí)行有關(guān)多條數(shù)據(jù)(SIMD)的多個(gè)指令的功能。另一個(gè)實(shí)施例中,處理器可以在一個(gè)裝置中使用SIMD和MIMD內(nèi)核的任意組合。在一些實(shí)施例中,計(jì)算裝置100可包括圖像處理單元。圖IH所示的一個(gè)這樣的實(shí)施例中,計(jì)算裝置100包括至少一個(gè)中央處理單元101和至少一個(gè)圖像處理單元。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100包括至少一個(gè)并行處理單元和至少一個(gè)圖像處理單元。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100包括任意類型的多個(gè)處理單元,多個(gè)處理單元中的一個(gè)包括圖像處理單元。一些實(shí)施例中,第一計(jì)算裝置IOOa代表客戶計(jì)算裝置IOOb的用戶執(zhí)行應(yīng)用。另一個(gè)實(shí)施例中,計(jì)算裝置100執(zhí)行虛擬機(jī),其提供執(zhí)行會話,在該會話中,代表客戶計(jì)算裝置IOOb的用戶執(zhí)行應(yīng)用。一個(gè)這樣的實(shí)施例中,執(zhí)行會話是寄載的桌面會話。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100執(zhí)行終端服務(wù)會話。終端服務(wù)會話可以提供寄載的桌面環(huán)境。另一個(gè)這樣的實(shí)施例中,執(zhí)行會話提供對計(jì)算環(huán)境的訪問,計(jì)算環(huán)境可包括以下的一個(gè)或多個(gè)應(yīng)用、多個(gè)應(yīng)用、桌面應(yīng)用以及在其中可執(zhí)行一個(gè)或多個(gè)應(yīng)用的桌面會話。B、設(shè)備架構(gòu)圖2A示出設(shè)備200的一個(gè)示例實(shí)施例。提供圖2A的設(shè)備200架構(gòu)僅用于示例,并不意于作為限制性的架構(gòu)。如圖2所示,設(shè)備200包括硬件層206和被分為用戶空間202和內(nèi)核空間204的軟件層。硬件層206提供硬件元件,在內(nèi)核空間204和用戶空間202中的程序和服務(wù)在該硬件元件上被執(zhí)行。硬件層206也提供結(jié)構(gòu)和元件,就設(shè)備200而言,這些結(jié)構(gòu)和元件允許在內(nèi)核空間204和用戶空間202內(nèi)的程序和服務(wù)既在內(nèi)部又與外部進(jìn)行數(shù)據(jù)通信。如圖2所示,硬件層206包括用于執(zhí)行軟件程序和服務(wù)的處理單元沈2,用于存儲軟件和數(shù)據(jù)的存儲器264,用于通過網(wǎng)絡(luò)傳輸和接收數(shù)據(jù)的網(wǎng)絡(luò)端口沈6,以及用于執(zhí)行與安全套接字協(xié)議層相關(guān)的功能處理通過網(wǎng)絡(luò)傳輸和接收的數(shù)據(jù)的加密處理器260。在一些實(shí)施例中,中央處理單元262可在單獨(dú)的處理器中執(zhí)行加密處理器沈0的功能。另外,硬件層206可包括用于每個(gè)處理單元262和加密處理器沈0的多處理器。處理器262可以包括以上結(jié)合圖IE和IF所述的任一處理器101。例如,在一個(gè)實(shí)施例中,設(shè)備200包括第一處理器262和第二處理器沈2’。在其它實(shí)施例中,處理器262或者沈2’包括多核處理器。雖然示出的設(shè)備200的硬件層206通常帶有加密處理器沈0,但是處理器260可為執(zhí)行涉及任何加密協(xié)議的功能的處理器,例如安全套接字協(xié)議層(SSL)或者傳輸層安全(TLS)協(xié)議。在一些實(shí)施例中,處理器260可為通用處理器(GPP),并且在進(jìn)一步的實(shí)施例中,可為用于執(zhí)行任何安全相關(guān)協(xié)議處理的可執(zhí)行指令。雖然在圖2中設(shè)備200的硬件層206示為具有一些元件,但是設(shè)備200的硬件部分或組件可包括計(jì)算裝置的任何類型和形式的元件、硬件或軟件,例如此處結(jié)合圖IE和IF17示出和討論的計(jì)算裝置100。在一些實(shí)施例中,設(shè)備200可包括服務(wù)器、網(wǎng)關(guān)、路由器、開關(guān)、橋接器或其它類型的計(jì)算或網(wǎng)絡(luò)設(shè)備,并且擁有與此相關(guān)的任何硬件和/或軟件元件。設(shè)備200的操作系統(tǒng)分配、管理或另外分離可用的系統(tǒng)存儲器到內(nèi)核空間204和用戶空間204。在示例的軟件架構(gòu)200中,操作系統(tǒng)可以是任意類型和/或形式的Unix操作系統(tǒng),盡管本發(fā)明并未這樣限制。這樣,設(shè)備可以允許任何操作系統(tǒng),如任何版本的MicrosoftWindows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計(jì)算機(jī)的任意版本的Mac0S、任意的嵌入式操作系統(tǒng)、任意的網(wǎng)絡(luò)操作系統(tǒng)、任意的實(shí)時(shí)操作系統(tǒng)、任意的開放源操作系統(tǒng)、任意的專用操作系統(tǒng)、用于移動(dòng)計(jì)算裝置或網(wǎng)絡(luò)裝置的任意操作系統(tǒng)、或者能夠運(yùn)行在設(shè)備200上并執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。保留內(nèi)核空間204用于運(yùn)行內(nèi)核230,內(nèi)核230包括任何設(shè)備驅(qū)動(dòng)器,內(nèi)核擴(kuò)展或其他內(nèi)核相關(guān)軟件。就像本領(lǐng)域技術(shù)人員所知的,內(nèi)核230是操作系統(tǒng)的核心,并提供對資源以及設(shè)備104的相關(guān)硬件元件的訪問、控制和管理。根據(jù)設(shè)備200的實(shí)施例,內(nèi)核空間204也包括與高速緩存管理器232協(xié)同工作的多個(gè)網(wǎng)絡(luò)服務(wù)或進(jìn)程,高速緩存管理器232有時(shí)也稱為集成的高速緩存,其益處此處將進(jìn)一步詳細(xì)描述。另外,內(nèi)核230的實(shí)施例將依賴于通過設(shè)備200安裝、配置或其他使用的操作系統(tǒng)的實(shí)施例。在一個(gè)實(shí)施例中,設(shè)備200包括一個(gè)網(wǎng)絡(luò)堆棧沈7,例如基于TCP/IP的堆棧,用于與客戶機(jī)102和/或服務(wù)器106通信。在一個(gè)實(shí)施例中,使用網(wǎng)絡(luò)堆棧267與第一網(wǎng)絡(luò)(例如網(wǎng)絡(luò)108)以及第二網(wǎng)絡(luò)110通信。在一些實(shí)施例中,設(shè)備200終止第一傳輸層連接,例如客戶機(jī)102的TCP連接,并建立到客戶機(jī)102使用的到服務(wù)器106的第二傳輸層連接,例如,終止在設(shè)備200和服務(wù)器106的第二傳輸層連接??赏ㄟ^單獨(dú)的網(wǎng)絡(luò)堆棧267建立第一和第二傳輸層連接。在其他實(shí)施例中,設(shè)備200可包括多個(gè)網(wǎng)絡(luò)堆棧,例如267或沈7’,并且在一個(gè)網(wǎng)絡(luò)堆棧267可建立或終止第一傳輸層連接,在第二網(wǎng)絡(luò)堆棧沈7’上可建立或者終止第二傳輸層連接。例如,一個(gè)網(wǎng)絡(luò)堆棧可用于在第一網(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組,并且另一個(gè)網(wǎng)絡(luò)堆棧用于在第二網(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧沈7包括用于對一個(gè)或多個(gè)網(wǎng)絡(luò)分組進(jìn)行排隊(duì)的緩沖器對3,其中網(wǎng)絡(luò)分組由設(shè)備200傳輸。如圖2所示,內(nèi)核空間204包括高速緩存管理器232、高速層2_7集成分組引擎M0、加密引擎234、策略引擎236以及多協(xié)議壓縮邏輯238。在內(nèi)核空間204或內(nèi)核模式而不是用戶空間202中運(yùn)行這些組件或進(jìn)程232、M0、234、236和238提高這些組件中的每個(gè)單獨(dú)的和結(jié)合的性能。內(nèi)核操作意味著這些組件或進(jìn)程232、M0、234、236和238在設(shè)備200的操作系統(tǒng)的核地址空間中運(yùn)行。例如,在內(nèi)核模式中運(yùn)行加密引擎234通過移動(dòng)加密和解密操作到內(nèi)核可改進(jìn)加密性能,從而可減少在內(nèi)核模式中的存儲空間或內(nèi)核線程與在用戶模式中的存儲空間或線程之間的傳輸?shù)臄?shù)量。例如,在內(nèi)核模式獲得的數(shù)據(jù)可能不需要傳輸或拷貝到運(yùn)行在用戶模式的進(jìn)程或線程,例如從內(nèi)核級數(shù)據(jù)結(jié)構(gòu)到用戶級數(shù)據(jù)結(jié)構(gòu)。在另一個(gè)方面,也可減少內(nèi)核模式和用戶模式之間的上下文切換的數(shù)量。另外,在任何組件或進(jìn)程232、M0、235、236和238間的同步和通信在內(nèi)核空間204中可被執(zhí)行的更有效率。在一些實(shí)施例中,組件232、M0、234、236和238的任何部分可在內(nèi)核空間204中運(yùn)行或操作,而這些組件232、M0、234、236和238的其它部分可在用戶空間202中運(yùn)行或操作。在一個(gè)實(shí)施例中,設(shè)備200使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)來提供對一個(gè)或多個(gè)網(wǎng)絡(luò)分組的任何部分的訪問,例如,包括來自客戶機(jī)102的請求或者來自服務(wù)器106的響應(yīng)的網(wǎng)絡(luò)分組。在一些實(shí)施例中,可以由分組引擎240通過到網(wǎng)絡(luò)堆棧沈7的傳輸層驅(qū)動(dòng)器接口或過濾器獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可包括通過與網(wǎng)絡(luò)堆棧267相關(guān)的內(nèi)核空間204可訪問的任何接口和/或數(shù)據(jù)、由網(wǎng)絡(luò)堆棧267接收或發(fā)送的網(wǎng)絡(luò)業(yè)務(wù)或分組。在其他實(shí)施例中,任何組件或進(jìn)程232、M0、234、236和238可使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)來執(zhí)行組件或進(jìn)程的需要的操作。在一個(gè)實(shí)例中,當(dāng)使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時(shí),組件232、M0、234、236和238在內(nèi)核模式204中運(yùn)行,而在另一個(gè)實(shí)施例中,當(dāng)使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時(shí),組件232、對0、234、236和238在用戶模式中運(yùn)行。在一些實(shí)施例中,內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可被拷貝或傳遞到第二內(nèi)核級數(shù)據(jù)結(jié)構(gòu),或任何期望的用戶級數(shù)據(jù)結(jié)構(gòu)。高速緩存管理器232可包括軟件、硬件或軟件和硬件的任意組合,以提供對任何類型和形式的內(nèi)容的高速緩存訪問、控制和管理,例如對象或由源服務(wù)器106提供服務(wù)的動(dòng)態(tài)產(chǎn)生的對象。被高速緩存管理器232處理和存儲的數(shù)據(jù)、對象或內(nèi)容可包括任何格式的數(shù)據(jù),例如標(biāo)記語言,或通過任何協(xié)議的通信。在一些實(shí)施例中,高速緩存管理器232復(fù)制存儲在其他地方的原始數(shù)據(jù)或先前計(jì)算、產(chǎn)生或傳輸?shù)臄?shù)據(jù),其中相對于讀高速緩存存儲器元件,需要更長的訪問時(shí)間以取得、計(jì)算或以其他方式得到原始數(shù)據(jù)。一旦數(shù)據(jù)被存儲在高速緩存存儲元件中,通過訪問高速緩存的副本而不是重新獲得或重新計(jì)算原始數(shù)據(jù)即可進(jìn)行后續(xù)操作,因此而減少了訪問時(shí)間。在一些實(shí)施例中,高速緩存元件可以包括設(shè)備200的存儲器沈4中的數(shù)據(jù)對象。在其它實(shí)施例中,高速緩存存儲元件可包括有比存儲器264更快的存取時(shí)間的存儲器。在另一個(gè)實(shí)施例中,高速緩存元件可以包括設(shè)備200的任一類型和形式的存儲元件,諸如硬盤的一部分。在一些實(shí)施例中,處理單元262可提供被高速緩存管理器232使用的高速緩存存儲器。在又一個(gè)實(shí)施例中,高速緩存管理器232可使用存儲器、存儲區(qū)或處理單元的任何部分和組合來高速緩存數(shù)據(jù)、對象或其它內(nèi)容。另外,高速緩存管理器232包括用于執(zhí)行此處描述的設(shè)備200的技術(shù)的任一實(shí)施例的任何邏輯、功能、規(guī)則或操作。例如,高速緩存管理器232包括基于無效時(shí)間周期的終止,或者從客戶機(jī)102或服務(wù)器106接收無效命令使對象無效的邏輯或功能。在一些實(shí)施例中,高速緩存管理器232可作為程序、服務(wù)、進(jìn)程或任務(wù)操作執(zhí)行在內(nèi)核空間204中,并且在其他實(shí)施例中,在用戶空間202中執(zhí)行。在一個(gè)實(shí)施例中,高速緩存管理器232的第一部分在用戶空間202中執(zhí)行,而第二部分在內(nèi)核空間204中執(zhí)行。在一些實(shí)施例中,高速緩存管理器232可包括任何類型的通用處理器(GPP),或任何其他類型的集成電路,例如現(xiàn)場可編程門陣列(FPGA),可編程邏輯設(shè)備(PLD),或者專用集成電路(ASIC)。策略引擎236可包括,例如,智能統(tǒng)計(jì)引擎或其它可編程應(yīng)用。在一個(gè)實(shí)施例中,策略引擎236提供配置功能以允許用戶識別、指定、定義或配置高速緩存策略。策略引擎236,在一些實(shí)施例中,也訪問存儲器以支持?jǐn)?shù)據(jù)結(jié)構(gòu),例如備份表或hash表,以啟用用戶選擇的高速緩存策略決定。在其它實(shí)施例中,除了對安全、網(wǎng)絡(luò)業(yè)務(wù)、網(wǎng)絡(luò)訪問、壓縮或其它任何由設(shè)備200執(zhí)行的功能或操作的訪問、控制和管理之外,策略引擎236可包括任何邏輯、規(guī)則、功能或操作以決定和提供對設(shè)備200所高速緩存的對象、數(shù)據(jù)、或內(nèi)容的訪問、控制和管理。特定高速緩存策略的其它實(shí)施例此處進(jìn)一步描述。加密引擎234包括用于控制任何安全相關(guān)協(xié)議處理,例如SSL或TLS,或其相關(guān)的任何功能的任何邏輯、商業(yè)規(guī)則、功能或操作。例如,加密引擎234加密并解密通過設(shè)備200傳輸?shù)木W(wǎng)絡(luò)分組,或其任何部分。加密引擎234也可代表客戶機(jī)10加-10211、服務(wù)器106a-106n或設(shè)備200來安裝或建立SSL或TLS連接。因此,加密引擎234提供SSL處理的卸載和加速。在一個(gè)實(shí)施例中,加密引擎234使用隧道協(xié)議來提供在客戶機(jī)102a-102n和服務(wù)器106a-106n間的虛擬專用網(wǎng)絡(luò)。在一些實(shí)施例中,加密引擎234與加密處理器260通信。在其它實(shí)施例中,加密引擎234包括運(yùn)行在加密處理器260上的可執(zhí)行指令。多協(xié)議壓縮引擎238包括用于壓縮一個(gè)或多個(gè)網(wǎng)絡(luò)分組協(xié)議(例如被設(shè)備200的網(wǎng)絡(luò)堆棧267使用的任何協(xié)議)的任何邏輯、商業(yè)規(guī)則、功能或操作。在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238雙向壓縮在客戶機(jī)102a-102n和服務(wù)器106a-106n間任一基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(電子郵件)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、通用hternet文件系統(tǒng)(CIFQ協(xié)議(文件傳輸)、獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議以及IP上語音(VoIP)協(xié)議。在其它實(shí)施例中,多協(xié)議壓縮引擎238提供基于超文本標(biāo)記語言(HTML)的協(xié)議的壓縮,并且在一些實(shí)施例中,提供任何標(biāo)記語言的壓縮,例如可擴(kuò)展標(biāo)記語言(XML)。在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238提供任何高性能協(xié)議的壓縮,例如為設(shè)備200設(shè)計(jì)的用于設(shè)備200通信的任何協(xié)議。在另一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮任何載荷或任何通信,例如事務(wù)TCP(T/TCP)、帶有選擇確認(rèn)的TCP(TCP-SACK)、帶有大窗口的TCP(TCP-Lff)、例如TCP-Vegas協(xié)議的擁塞預(yù)報(bào)協(xié)議以及TCP欺騙協(xié)議。同樣的,多協(xié)議壓縮引擎238通過桌面客戶機(jī),例如MicosoftOutlook和非web瘦客戶機(jī),諸如由通用企業(yè)應(yīng)用像Orac1e、SAP和Siebe1啟動(dòng)的任何客戶機(jī),甚至移動(dòng)客戶機(jī),例如便攜式個(gè)人計(jì)算機(jī),來加速用戶訪問應(yīng)用的執(zhí)行。在一些實(shí)施例中,多協(xié)議壓縮引擎238通過在內(nèi)核模式204內(nèi)部執(zhí)行并與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎240集成,可以壓縮TCP/IP協(xié)議攜帶的任何協(xié)議,例如任何應(yīng)用層協(xié)議。高速層2-7集成分組引擎M0,通常也稱為分組處理引擎,或分組引擎,通過網(wǎng)絡(luò)端口266負(fù)責(zé)設(shè)備200接收和發(fā)送的分組的內(nèi)核級處理的管理。高速層2-7集成分組引擎240可包括在處理期間用于排隊(duì)一個(gè)或多個(gè)網(wǎng)絡(luò)分組的緩沖器,例如用于網(wǎng)絡(luò)分組的接收或者網(wǎng)絡(luò)分組的傳輸。另外,高速層2-7集成分組引擎240通過網(wǎng)絡(luò)端口266與一個(gè)或多個(gè)網(wǎng)絡(luò)堆棧267通信以發(fā)送和接收網(wǎng)絡(luò)分組。高速層2-7集成分組引擎240與加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238協(xié)同工作。更具體地,配置加密引擎234以執(zhí)行分組的SSL處理,配置策略引擎236以執(zhí)行涉及業(yè)務(wù)管理的功能,例如請求級內(nèi)容切換以及請求級高速緩存重定向,并配置多協(xié)議壓縮邏輯238以執(zhí)行涉及數(shù)據(jù)壓縮和解壓縮的功能。高速層2-7集成分組引擎240包括分組處理定時(shí)器M2。在一個(gè)實(shí)施例中,分組處理定時(shí)器242提供一個(gè)或多個(gè)時(shí)間間隔以觸發(fā)輸入處理,例如,接收或者輸出(即傳輸)網(wǎng)絡(luò)分組。在一些實(shí)施例中,高速層2-7集成分組引擎240響應(yīng)于定時(shí)器242處理網(wǎng)絡(luò)分組。分組處理定時(shí)器M2向分組引擎240提供任何類型和形式的信號以通知、觸發(fā)或傳輸時(shí)間相關(guān)事件、間隔或發(fā)生。在許多實(shí)施例中,分組處理定時(shí)器M2以毫秒級操作,例如100ms、50ms、或25ms。例如,在一些實(shí)例中,分組處理定時(shí)器242提供時(shí)間間隔或者其它使得高速層2-7集成分組引擎240以IOms時(shí)間間隔處理網(wǎng)絡(luò)分組,而在其它實(shí)施例中,使高速層2_7集成分組引擎MO以5ms時(shí)間間隔處理網(wǎng)絡(luò)分組,并且在進(jìn)一步的實(shí)施例中,短到3、2或20Ims時(shí)間間隔。高速層2-7集成分組引擎240在操作期間可與加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238連接、集成或通信。因此,響應(yīng)于分組處理定時(shí)器242和/或分組引擎對0,可執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238的任何邏輯、功能或操作。因此,在由分組處理定時(shí)器242提供的時(shí)間間隔粒度,可執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238的任何邏輯、功能或操作,例如,時(shí)間間隔少于或等于10ms。例如,在一個(gè)實(shí)施例中,響應(yīng)于高速層2-7集成分組引擎240和/或分組處理定時(shí)器M2,高速緩存管理器232可執(zhí)行任何高速緩存的對象的無效。在另一個(gè)實(shí)施例中,高速緩存的對象的終止或無效時(shí)間被設(shè)定為與分組處理定時(shí)器242的時(shí)間間隔相同的粒度級,例如每10ms。與內(nèi)核空間204不同,用戶空間202是被用戶模式應(yīng)用或在用戶模式運(yùn)行的程序所使用操作系統(tǒng)的存儲區(qū)域或部分。用戶模式應(yīng)用不能直接訪問內(nèi)核空間204,為了訪問內(nèi)核服務(wù)需要使用服務(wù)調(diào)用。如圖2所示,設(shè)備200的用戶空間202包括圖形用戶接口(⑶1)210、命令行接口(CLI)212、殼服務(wù)(shellservice)214、健康監(jiān)控程序216以及守護(hù)(daemon)服務(wù)218。⑶I210和CLI212提供系統(tǒng)管理員或其他用戶可與之交互并控制設(shè)備操作的裝置,例如通過設(shè)備200的操作系統(tǒng)。⑶1210和CLI212可包括運(yùn)行在用戶空間202或內(nèi)核框架204中的代碼。⑶I210可以是任何類型或形式的圖形用戶接口,可以通過文本、圖形或其他形式由任何類型的程序或應(yīng)用(如瀏覽器)來呈現(xiàn)。CLI212可為任何類型和形式的命令行或基于文本的接口,例如通過操作系統(tǒng)提供的命令行。例如,CLI212可包括殼,該殼是使用戶與操作系統(tǒng)相互作用的工具。在一些實(shí)施例中,可通過bash、csh、tcsh或者ksh類型的殼提供CLI212。殼服務(wù)214包括程序、服務(wù)、任務(wù)、進(jìn)程或可執(zhí)行指令以支持由用戶通過⑶I210和/或CLI212的與設(shè)備200或者操作系統(tǒng)的交互使用健康監(jiān)控程序216用于監(jiān)控、檢查、報(bào)告并確保網(wǎng)絡(luò)系統(tǒng)運(yùn)行正常,以及用戶正通過網(wǎng)絡(luò)接收所請求的內(nèi)容。健康監(jiān)控程序216包括一個(gè)或多個(gè)程序、服務(wù)、任務(wù)、進(jìn)程或可執(zhí)行指令,為監(jiān)控設(shè)備200的任何行為提供邏輯、規(guī)則、功能或操作。在一些實(shí)施例中,健康監(jiān)控程序216攔截并檢查通過設(shè)備200傳遞的任何網(wǎng)絡(luò)業(yè)務(wù)。在其他實(shí)施例中,健康監(jiān)控程序216通過任何合適的方法和/或機(jī)制與一個(gè)或多個(gè)下述設(shè)備連接加密引擎234,高速緩存管理器232,策略引擎236,多協(xié)議壓縮邏輯238,分組引擎M0,守護(hù)服務(wù)218以及殼服務(wù)214。因此,健康監(jiān)控程序216可調(diào)用任何應(yīng)用編程接口(API)以確定設(shè)備200的任何部分的狀態(tài)、情況或健康。例如,健康監(jiān)控程序216可周期性地查驗(yàn)或發(fā)送狀態(tài)查詢以檢查程序、進(jìn)程、服務(wù)或任務(wù)是否活動(dòng)并當(dāng)前正在運(yùn)行。在另一個(gè)實(shí)施例中,健康監(jiān)控程序216可檢查由任何程序、進(jìn)程、服務(wù)或任務(wù)提供的任何狀態(tài)、錯(cuò)誤或歷史日志以確定設(shè)備200任何部分的任何狀況、狀態(tài)或錯(cuò)誤。守護(hù)服務(wù)218是連續(xù)運(yùn)行或在背景中運(yùn)行的程序,并且處理設(shè)備200接收的周期性服務(wù)請求。在一些實(shí)施例中,守護(hù)服務(wù)可向其他程序或進(jìn)程(例如合適的另一個(gè)守護(hù)服務(wù)218)轉(zhuǎn)發(fā)請求。如本領(lǐng)域技術(shù)人員所公知的,守護(hù)服務(wù)218可無人監(jiān)護(hù)的運(yùn)行,以執(zhí)行連續(xù)的或周期性的系統(tǒng)范圍功能,例如網(wǎng)絡(luò)控制,或者執(zhí)行任何需要的任務(wù)。在一些實(shí)施例中,一個(gè)或多個(gè)守護(hù)服務(wù)218運(yùn)行在用戶空間202中,而在其它實(shí)施例中,一個(gè)或多個(gè)守護(hù)服務(wù)218運(yùn)行在內(nèi)核空間?,F(xiàn)在參見圖2B,描述了設(shè)備200的另一個(gè)實(shí)施例??偟膩碚f,設(shè)備200提供下列服務(wù)、功能或操作中的一個(gè)或多個(gè)用于一個(gè)或多個(gè)客戶機(jī)102以及一個(gè)或多個(gè)服務(wù)器106之間的通信的SSLVPN連通觀0、交換/負(fù)載平衡觀4、域名服務(wù)解析觀6、加速288和應(yīng)用防火墻四0。服務(wù)器106的每一個(gè)可以提供一個(gè)或者多個(gè)網(wǎng)絡(luò)相關(guān)服務(wù)270a-270n(稱為服務(wù)270)。例如,服務(wù)器106可以提供http服務(wù)270。設(shè)備200包括一個(gè)或者多個(gè)虛擬服務(wù)器或者虛擬互聯(lián)網(wǎng)協(xié)議服務(wù)器,稱為vServer275、vS275、VIP服務(wù)器或者僅是VIP275a-275n(此處也稱為vServer275)。vServer275根據(jù)設(shè)備200的配置和操作來接收、攔截或者以其它方式處理客戶機(jī)102和服務(wù)器106之間的通信。vServer275可以包括軟件、硬件或者軟件和硬件的任意組合。vServer275可包括在設(shè)備200中的用戶模式202、內(nèi)核模式204或者其任意組合中運(yùn)行的任意類型和形式的程序、服務(wù)、任務(wù)、進(jìn)程或者可執(zhí)行指令。vServer275包括任意邏輯、功能、規(guī)則或者操作,以執(zhí)行此處所述技術(shù)的任意實(shí)施例,諸如SSLVPN觀0、轉(zhuǎn)換/負(fù)載平衡觀4、域名服務(wù)解析觀6、加速288和應(yīng)用防火墻四0。在一些實(shí)施例中,Werver275建立到服務(wù)器106的服務(wù)270的連接。服務(wù)275可以包括能夠連接到設(shè)備200、客戶機(jī)102或者vServer275并與之通信的任意程序、應(yīng)用、進(jìn)程、任務(wù)或者可執(zhí)行指令集。例如,服務(wù)275可以包括web服務(wù)器、http服務(wù)器、ftp、電子郵件或者數(shù)據(jù)庫服務(wù)器。在一些實(shí)施例中,服務(wù)270是守護(hù)進(jìn)程或者網(wǎng)絡(luò)驅(qū)動(dòng)器,用于偵聽、接收和/或發(fā)送應(yīng)用的通信,諸如電子郵件、數(shù)據(jù)庫或者企業(yè)應(yīng)用。在一些實(shí)施例中,服務(wù)270可以在特定的IP地址、或者IP地址和端口上通信。在一些實(shí)施例中,vServer275應(yīng)用策略引擎236的一個(gè)或者多個(gè)策略到客戶端102和服務(wù)器106之間的網(wǎng)絡(luò)通信。在一個(gè)實(shí)施例中,該策略與vServer275相關(guān)。在另一個(gè)實(shí)施例中,該策略基于用戶或者用戶組。在又一個(gè)實(shí)施例中,策略為通用的并且應(yīng)用到一個(gè)或者多個(gè)vServer27fe_275n,和通過設(shè)備200通信的任意用戶或者用戶組。在一些實(shí)施例中,策略引擎的策略具有基于通信的任意內(nèi)容應(yīng)用該策略的條件,通信的內(nèi)容諸如互聯(lián)網(wǎng)協(xié)議地址、端口、協(xié)議類型、分組中的首部或者字段、或者通信的上下文,諸如用戶、用戶組、vServer275、傳輸層連接、和/或客戶機(jī)102或者服務(wù)器106的標(biāo)識或者屬性。在其他實(shí)施例中,設(shè)備200與策略引擎236通信或接口,以便確定遠(yuǎn)程用戶或遠(yuǎn)程客戶端102的驗(yàn)證和/或授權(quán),以訪問來自服務(wù)器106的計(jì)算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。在另一個(gè)實(shí)施例中,設(shè)備200與策略引擎236通信或接口,以便確定遠(yuǎn)程用戶或遠(yuǎn)程客戶端102的驗(yàn)證和/或授權(quán),使得應(yīng)用傳送系統(tǒng)190傳送一個(gè)或多個(gè)計(jì)算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。在另一個(gè)實(shí)施例中,設(shè)備200基于策略引擎236對遠(yuǎn)程用戶或遠(yuǎn)程客戶機(jī)102的驗(yàn)證和/或授權(quán)建立VPN或SSLVPN連接。一個(gè)實(shí)施例中,設(shè)備200基于策略引擎236的策略控制網(wǎng)絡(luò)業(yè)務(wù)流量以及通信會話。例如,基于策略引擎236,設(shè)備200可控制對計(jì)算環(huán)境15、應(yīng)用或數(shù)據(jù)文件的訪問。在一些實(shí)施例中,Werver275與客戶端102經(jīng)客戶端代理120建立傳輸層連接,諸如TC、P或者UDP連接。在一個(gè)實(shí)施例中,vServer275偵聽和接收來自客戶端102的通信。在其它實(shí)施例中,Werver275與客戶端服務(wù)器106建立傳輸層連接,諸如TCP或者UDP連接。在一個(gè)實(shí)施例中,vServer275建立到運(yùn)行在服務(wù)器106上的服務(wù)器270的互聯(lián)網(wǎng)協(xié)議地址和端口的傳輸層連接。在另一個(gè)實(shí)施例中,Werver275將到客戶端102的第一傳輸層連接與到服務(wù)器106的第二傳輸層連接相關(guān)聯(lián)。在一些實(shí)施例中,WerVer275建立到服務(wù)器106的傳輸層連接池并經(jīng)由所述池化的傳輸層連接多路復(fù)用客戶機(jī)的請求。在一些實(shí)施例中,設(shè)備200提供客戶端102和服務(wù)器106之間的SSLVPN連接觀0。例如,第一網(wǎng)絡(luò)102上的客戶端102請求建立到第二網(wǎng)絡(luò)104’上的服務(wù)器106的連接。在一些實(shí)施例中,第二網(wǎng)絡(luò)104’是不能從第一網(wǎng)絡(luò)104路由的。在其它實(shí)施例中,客戶端102位于公用網(wǎng)絡(luò)104上,并且服務(wù)器106位于專用網(wǎng)絡(luò)104’上,例如企業(yè)網(wǎng)。在一個(gè)實(shí)施例中,客戶端代理120攔截第一網(wǎng)絡(luò)104上的客戶端102的通信,加密該通信,并且經(jīng)第一傳輸層連接發(fā)送該通信到設(shè)備200。設(shè)備200將第一網(wǎng)絡(luò)104上的第一傳輸層連接與到第二網(wǎng)絡(luò)104上的服務(wù)器106的第二傳輸層連接相關(guān)聯(lián)。設(shè)備200接收來自客戶端代理102的所攔截的通信,解密該通信,并且經(jīng)第二傳輸層連接發(fā)送該通信到第二網(wǎng)絡(luò)104上的服務(wù)器106。第二傳輸層連接可以是池化的傳輸層連接。同樣的,設(shè)備200為兩個(gè)網(wǎng)絡(luò)104、104’之間的客戶機(jī)102提供端到端安全傳輸層連接。在一個(gè)實(shí)施例中,設(shè)備200寄載虛擬專用網(wǎng)絡(luò)104上的客戶機(jī)102的內(nèi)部網(wǎng)內(nèi)部互聯(lián)網(wǎng)協(xié)議或者h(yuǎn)tranetIP282地址??蛻舳?02具有本地網(wǎng)絡(luò)識別符,諸如第一網(wǎng)絡(luò)104上的互聯(lián)網(wǎng)協(xié)議(IP)地址和/或主機(jī)名稱。當(dāng)經(jīng)設(shè)備200連接到第二網(wǎng)絡(luò)104’時(shí),設(shè)備200為客戶端102在第二網(wǎng)絡(luò)104’上建立、分配或者以其它方式提供htranetIP,即網(wǎng)絡(luò)識別符,諸如IP地址和/或主機(jī)名稱。使用客戶機(jī)的所建立的htranetIP觀2,設(shè)備200在第二或?qū)S镁W(wǎng)104'上偵聽并接收指向客戶機(jī)102的任意通信。在一個(gè)實(shí)施例中,設(shè)備200用作或者代表第二專用網(wǎng)絡(luò)104上的客戶端102。例如,在另一個(gè)實(shí)施例中,Werver275偵聽和響應(yīng)到客戶端102的htranetIP282的通信。在一些實(shí)施例中,如果第二網(wǎng)絡(luò)104’上的計(jì)算裝置100發(fā)送請求,設(shè)備200如同客戶端102—樣來處理該請求。例如,設(shè)備200可以響應(yīng)對客戶端htranetIP282的查驗(yàn)。在另一個(gè)實(shí)施例中,設(shè)備可以與請求和客戶端htranetIP282連接的第二網(wǎng)絡(luò)104上的計(jì)算裝置100建立連接,諸如TCP或者UDP連接。在一些實(shí)施例中,設(shè)備200為客戶機(jī)102和服務(wù)器106之間的通信提供下列一個(gè)或多個(gè)加速技術(shù)觀8:1)壓縮;幻解壓縮;幻傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路復(fù)用;5)傳輸控制協(xié)議緩沖;以及6)高速緩存。在一個(gè)實(shí)施例中,設(shè)備200通過開啟與每一服務(wù)器106的一個(gè)或者多個(gè)傳輸層連接并且維持這些連接以允許由客戶端經(jīng)因特網(wǎng)的重復(fù)數(shù)據(jù)訪問,來為服務(wù)器106緩解由重復(fù)開啟和關(guān)閉到客戶端102的傳輸層連接所帶來的許多處理負(fù)載。該技術(shù)此處稱為“連接池”。在一些實(shí)施例中,為了經(jīng)池化的傳輸層連接無縫拼接從客戶端102到服務(wù)器106的通信,設(shè)備200通過在傳輸層協(xié)議級修改序列號和確認(rèn)號來翻譯或多路復(fù)用通信。這被稱為“連接多路復(fù)用”。在一些實(shí)施例中,不需要應(yīng)用層協(xié)議交互作用。例如,在到來分組(即,自客戶機(jī)102接收的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)樵O(shè)備200的輸出端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址被改為目的服務(wù)器的網(wǎng)絡(luò)地址。在發(fā)出分組(即,自服務(wù)器106接收的一個(gè)分組)的情況中,源網(wǎng)絡(luò)地址被從服務(wù)器106的網(wǎng)絡(luò)地址改變?yōu)樵O(shè)備200的輸出端口的網(wǎng)絡(luò)地址,而目的地址被從設(shè)備200的地址改變?yōu)檎埱蟮目蛻魴C(jī)102的地址。分組的序列號和確認(rèn)號也被轉(zhuǎn)換為到客戶機(jī)102的設(shè)備200的傳輸層連接上的客戶機(jī)102所期待的序列號和確認(rèn)。在一些實(shí)施例中,傳輸層協(xié)議的包校驗(yàn)和被重新計(jì)算以適應(yīng)這些轉(zhuǎn)換。在另一個(gè)實(shí)施例中,設(shè)備200為客戶機(jī)102和服務(wù)器106之間的通信提供交換或負(fù)載平衡功能觀4。在一些實(shí)施例中,設(shè)備200根據(jù)層4或應(yīng)用層請求數(shù)據(jù)來分配業(yè)務(wù)量并將客戶機(jī)請求指向服務(wù)器106。在一個(gè)實(shí)施例中,盡管網(wǎng)絡(luò)層或者網(wǎng)絡(luò)分組的層2識別目的服務(wù)器106,但設(shè)備200利用承載為傳輸層分組的有效載荷的數(shù)據(jù)和應(yīng)用信息來確定服務(wù)器106以便分發(fā)網(wǎng)絡(luò)分組。在一個(gè)實(shí)施例中,設(shè)備200的健康監(jiān)控程序216監(jiān)控服務(wù)器的健康來確定分發(fā)客戶端請求到哪個(gè)服務(wù)器106。在一些實(shí)施例中,如果設(shè)備200探測到某個(gè)服務(wù)器106不可用或者具有超過預(yù)定閾值的負(fù)載,設(shè)備200可以將客戶端請求指向或者分發(fā)到另一個(gè)服務(wù)器106。在一些實(shí)施例中,設(shè)備200用作域名服務(wù)(DNS)解析器或者以其它方式為來自客戶端102的DNS請求提供解析。在一些實(shí)施例中,設(shè)備攔截由客戶端102發(fā)送的DNS請求。在一個(gè)實(shí)施例中,設(shè)備200以設(shè)備200所寄載的或其IP地址來響應(yīng)客戶端的DNS請求。在此實(shí)施例中,客戶端102把給域名的網(wǎng)絡(luò)通信發(fā)送到設(shè)備200。在另一個(gè)實(shí)施例中,設(shè)備200以第二設(shè)備200’所寄載的或其IP地址來響應(yīng)客戶端的DNS請求。在一些實(shí)施例中,設(shè)備200使用由設(shè)備200確定的服務(wù)器106的IP地址來響應(yīng)客戶端的DNS請求。在又一個(gè)實(shí)施例中,設(shè)備200為客戶機(jī)102和服務(wù)器106之間的通信提供應(yīng)用防火墻功能四0。在一個(gè)實(shí)施例中,策略引擎236提供用于探測和阻斷非法請求的規(guī)則。在一些實(shí)施例中,應(yīng)用防火墻290防御拒絕服務(wù)(DoS)攻擊。在其它實(shí)施例中,設(shè)備檢查所攔截的請求的內(nèi)容,以識別和阻斷基于應(yīng)用的攻擊。在一些實(shí)施例中,規(guī)則/策略引擎236包括用于提供對多個(gè)種類和類型的基于web或因特網(wǎng)的脆弱點(diǎn)的保護(hù)的一個(gè)或多個(gè)應(yīng)用防火墻或安全控制策略,例如下列的一個(gè)或多個(gè)1)緩沖區(qū)溢出,2)CGI-BIN參數(shù)操縱,幻表單/隱藏字段操縱,4)強(qiáng)制瀏覽,5)cookie或會話中毒,6)被破壞的訪問控制列表(ACL)或弱密碼,7)跨站腳本處理(XSS),8)命令注入,9)SQL注入,10)錯(cuò)誤觸發(fā)敏感信息泄露,11)對加密的不安全使用,12)服務(wù)器錯(cuò)誤配置,13)后門和調(diào)試選項(xiàng),14)網(wǎng)站涂改,15)平臺或操作系統(tǒng)弱點(diǎn),和16)零天修復(fù)。在一個(gè)實(shí)施例中,對下列情況的一種或多種,應(yīng)用防火墻四0以檢查或分析網(wǎng)絡(luò)通信的形式來提供HTML格式字段的保護(hù)1)返回所需的字段,幻不允許附加字段,幻只讀和隱藏字段強(qiáng)制(enforcement),4)下拉列表和單選按鈕字段的一致,以及5)格式字段最大長度強(qiáng)制。在一些實(shí)施例中,應(yīng)用防火墻290確保沒有修改cookie。在其它實(shí)施例中,應(yīng)用防火墻290通過執(zhí)行合法的URL來防御強(qiáng)迫瀏覽。在另一些實(shí)施例中,應(yīng)用防火墻290保護(hù)包括在網(wǎng)絡(luò)通信中的任意機(jī)密信息。應(yīng)用防火墻290可以根據(jù)引擎236的規(guī)則或策略來檢查或分析任一網(wǎng)絡(luò)通信以識別在網(wǎng)絡(luò)分組的任一字段中的任一機(jī)密信息。在一些實(shí)施例中,應(yīng)用防火墻290在網(wǎng)絡(luò)通信中識別信用卡號、口令、社會保險(xiǎn)號、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出現(xiàn)。網(wǎng)絡(luò)通信的編碼部分可以包括這些出現(xiàn)或機(jī)密信息?;谶@些出現(xiàn),在一個(gè)實(shí)施例中,應(yīng)用防火墻290可以采取作用于網(wǎng)絡(luò)通信上的策略,諸如阻止發(fā)送網(wǎng)絡(luò)通信。在另一個(gè)實(shí)施例中,應(yīng)用防火墻290可以重寫、移動(dòng)或者以其它方式掩蔽該所識別的出現(xiàn)或者機(jī)密信息。仍然參考圖2B,設(shè)備200可以包括如上面結(jié)合圖ID所討論的性能監(jiān)控代理197。在一個(gè)實(shí)施例中,設(shè)備200從如圖ID中所描述的監(jiān)控服務(wù)198或監(jiān)控服務(wù)器106中接收監(jiān)控代理197。在一些實(shí)施例中,設(shè)備200在諸如磁盤的存儲裝置中保存監(jiān)控代理197,以用于傳送給與設(shè)備200通信的任意客戶機(jī)或服務(wù)器。例如,在一個(gè)實(shí)施例中,設(shè)備200在接收到建立傳輸層連接的請求時(shí)發(fā)送監(jiān)控代理197給客戶機(jī)。在其它實(shí)施例中,設(shè)備200在建立與客戶機(jī)102的傳輸層連接時(shí)發(fā)送監(jiān)控代理197。在另一個(gè)實(shí)施例中,設(shè)備200在攔截或檢測對web頁面的請求時(shí)發(fā)送監(jiān)控代理197給客戶機(jī)。在又一個(gè)實(shí)施例中,設(shè)備200響應(yīng)于監(jiān)控服務(wù)器198的請求來發(fā)送監(jiān)控代理197到客戶機(jī)或服務(wù)器。在一個(gè)實(shí)施例中,設(shè)備200發(fā)送監(jiān)控代理197到第二設(shè)備200'或設(shè)備205。在其它實(shí)施例中,設(shè)備200執(zhí)行監(jiān)控代理197。在一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控在設(shè)備200上執(zhí)行的任意應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或線程的性能。例如,監(jiān)控代理197可以監(jiān)控和測量vServers275A-275N的性能與操作。在另一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200的任意傳輸層連接的性能。在一些實(shí)施例中,監(jiān)控代理197測量和監(jiān)控通過設(shè)備200的任意用戶會話的性能。在一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控通過設(shè)備200的諸如SSLVPN會話的任意虛擬專用網(wǎng)連接和/或會話的性能。在進(jìn)一步的實(shí)施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200的內(nèi)存、CPU和磁盤使用以及性能。在又一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控諸如SSL卸載、連接池和多路復(fù)用、高速緩存以及壓縮的由設(shè)備200執(zhí)行的任意加速技術(shù)觀8的性能。在一些實(shí)施例中,監(jiān)控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的任一負(fù)載平衡和/或內(nèi)容交換觀4的性能。在其它實(shí)施例中,監(jiān)控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的應(yīng)用防火墻290保護(hù)和處理的性能。C、客戶端代理現(xiàn)在看圖3,描述客戶端代理120的實(shí)施例。客戶端102包括客戶端代理120,用于經(jīng)網(wǎng)絡(luò)104與設(shè)備200和/或服務(wù)器106來建立和交換通信。總的來說,客戶端102在計(jì)算裝置100上操作,該計(jì)算裝置100擁有帶有內(nèi)核模式302以及用戶模式303的操作系統(tǒng),以及帶有一個(gè)或多個(gè)層310a-310b的網(wǎng)絡(luò)堆棧310。客戶端102可以已經(jīng)安裝和/或執(zhí)行一個(gè)或多個(gè)應(yīng)用。在一些實(shí)施例中,一個(gè)或多個(gè)應(yīng)用可通過網(wǎng)絡(luò)堆棧310與網(wǎng)絡(luò)104通信。所述應(yīng)用之一,諸如web瀏覽器,也可包括第一程序322。例如,可在一些實(shí)施例中使用第一程序322來安裝和/或執(zhí)行客戶端代理120,或其中任意部分。客戶端代理120包括攔截機(jī)制或者攔截器350,用于從網(wǎng)絡(luò)堆棧310攔截來自一個(gè)或者多個(gè)應(yīng)用的網(wǎng)絡(luò)通信??蛻舳?02的網(wǎng)絡(luò)堆棧310可包括任何類型和形式的軟件、或硬件或其組合,用于提供與網(wǎng)絡(luò)的連接和通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧310包括用于網(wǎng)絡(luò)協(xié)議組的軟件實(shí)現(xiàn)。網(wǎng)絡(luò)堆棧310可包括一個(gè)或多個(gè)網(wǎng)絡(luò)層,例如為本領(lǐng)域技術(shù)人員所公認(rèn)和了解的開放式系統(tǒng)互聯(lián)(OSI)通信模型的任何網(wǎng)絡(luò)層。這樣,網(wǎng)絡(luò)堆棧310可包括用于任何以下OSI模型層的任何類型和形式的協(xié)議1)物理鏈路層;2)數(shù)據(jù)鏈路層;3)網(wǎng)絡(luò)層;4)傳輸層;5)會話層);6)表示層,以及7)應(yīng)用層。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧310可包括在因特網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò)層協(xié)議上的傳輸控制協(xié)議(TCP),通常稱為TCP/IP。在一些實(shí)施例中,可在Khernet協(xié)議上實(shí)施TCP/IP協(xié)議,Ethernet協(xié)議可包括IEEE廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)協(xié)議的任何族,例如被IEEE802.3覆蓋的這些協(xié)議。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧310包括任何類型和形式的無線協(xié)議,例如IEEE802.11和/或移動(dòng)因特網(wǎng)協(xié)議。考慮基于TCP/IP的網(wǎng)絡(luò),可使用任何基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(email)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、通用因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳輸)、獨(dú)立計(jì)算框架(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議,以及IP語音(VoIP)協(xié)議。在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧310包括任何類型和形式的傳輸控制協(xié)議,諸如修改的傳輸控制協(xié)議,例如事務(wù)TCP(T/TCP),帶有選擇25確認(rèn)的TCP(TCP-SACK),帶有大窗口的TCP(TCP-Lff),擁塞預(yù)測協(xié)議,例如TCP-Vegas協(xié)議,以及TCP電子欺騙協(xié)議。在其他實(shí)施例中,任何類型和形式的用戶數(shù)據(jù)報(bào)協(xié)議(UDP),例如IP上UDP,可被網(wǎng)絡(luò)堆棧310使用,諸如用于語音通信或?qū)崟r(shí)數(shù)據(jù)通信。另外,網(wǎng)絡(luò)堆棧310可包括支持一個(gè)或多個(gè)層的一個(gè)或多個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器,例如TCP驅(qū)動(dòng)器或網(wǎng)絡(luò)層驅(qū)動(dòng)器。網(wǎng)絡(luò)層驅(qū)動(dòng)器可作為計(jì)算裝置100的操作系統(tǒng)的一部分或者計(jì)算裝置100的任何網(wǎng)絡(luò)接口卡或其它網(wǎng)絡(luò)訪問組件的一部分而被包括。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧310的任何網(wǎng)絡(luò)驅(qū)動(dòng)器可被定制、修改或調(diào)整以提供網(wǎng)絡(luò)堆棧310的定制或修改部分,用來支持此處描述的任何技術(shù)。在其它實(shí)施例中,設(shè)計(jì)并構(gòu)建加速程序120以與網(wǎng)絡(luò)堆棧310協(xié)同操作或工作,上述網(wǎng)絡(luò)堆棧310由客戶端102的操作系統(tǒng)安裝或以其它方式提{共。網(wǎng)絡(luò)堆棧310包括任何類型和形式的接口,用于接收、獲得、提供或以其它方式訪問涉及客戶端102的網(wǎng)絡(luò)通信的任何信息和數(shù)據(jù)。在一個(gè)實(shí)施例中,與網(wǎng)絡(luò)堆棧310的接口包括應(yīng)用編程接口(API)。接口也可包括任何函數(shù)調(diào)用、鉤子或過濾機(jī)制,事件或回調(diào)機(jī)制、或任何類型的接口技術(shù)。網(wǎng)絡(luò)堆棧310通過接口可接收或提供與網(wǎng)絡(luò)堆棧310的功能或操作相關(guān)的任何類型和形式的數(shù)據(jù)結(jié)構(gòu),例如對象。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡(luò)分組相關(guān)的信息和數(shù)據(jù)或者一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)包括在網(wǎng)絡(luò)堆棧310的協(xié)議層處理的網(wǎng)絡(luò)分組的一部分,例如傳輸層的網(wǎng)絡(luò)分組。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)325包括內(nèi)核級別數(shù)據(jù)結(jié)構(gòu),而在其他實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)325包括用戶模式數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括獲得的或與在內(nèi)核模式302中操作的網(wǎng)絡(luò)堆棧310的一部分相關(guān)的數(shù)據(jù)結(jié)構(gòu)、或者運(yùn)行在內(nèi)核模式302中的網(wǎng)絡(luò)驅(qū)動(dòng)程序或其它軟件、或者由運(yùn)行或操作在操作系統(tǒng)的內(nèi)核模式的服務(wù)、進(jìn)程、任務(wù)、線程或其它可執(zhí)行指令獲得或收到的任意數(shù)據(jù)結(jié)構(gòu)。此外,網(wǎng)絡(luò)堆棧310的一些部分可在內(nèi)核模式302執(zhí)行或操作,例如,數(shù)據(jù)鏈路或網(wǎng)絡(luò)層,而其他部分在用戶模式303執(zhí)行或操作,例如網(wǎng)絡(luò)堆棧310的應(yīng)用層。例如,網(wǎng)絡(luò)堆棧的第一部分310a可以給應(yīng)用提供對網(wǎng)絡(luò)堆棧310的用戶模式訪問,而網(wǎng)絡(luò)堆棧310的第二部分310a提供對網(wǎng)絡(luò)的訪問。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧的第一部分310a可包括網(wǎng)絡(luò)堆棧310的一個(gè)或多個(gè)更上層,例如層5-7的任意層。在其它實(shí)施例中,網(wǎng)絡(luò)堆棧310的第二部分310b包括一個(gè)或多個(gè)較低的層,例如層1-4的任意層。網(wǎng)絡(luò)堆棧310的每個(gè)第一部分310a和第二部分310b可包括網(wǎng)絡(luò)堆棧310的任何部分,位于任意一個(gè)或多個(gè)網(wǎng)絡(luò)層,處于用戶模式203、內(nèi)核模式202,或其組合,或在網(wǎng)絡(luò)層的任何部分或者到網(wǎng)絡(luò)層的接口點(diǎn),或用戶模式203和內(nèi)核模式202的任何部分或到用戶模式203和內(nèi)核模式202的接口點(diǎn)。攔截器350可以包括軟件、硬件、或者軟件和硬件的任意組合。在一個(gè)實(shí)施例中,攔截器350在網(wǎng)絡(luò)堆棧310的任一點(diǎn)攔截網(wǎng)絡(luò)通信,并且重定向或者發(fā)送網(wǎng)絡(luò)通信到由攔截器350或者客戶端代理120所期望的、管理的或者控制的目的地。例如,攔截器350可以攔截第一網(wǎng)絡(luò)的網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)通信并且發(fā)送該網(wǎng)絡(luò)通信到設(shè)備200,用于在第二網(wǎng)絡(luò)104上發(fā)送。在一些實(shí)施例中,攔截器350包括含有諸如被構(gòu)建和設(shè)計(jì)來與網(wǎng)絡(luò)堆棧310對接并一同工作的網(wǎng)絡(luò)驅(qū)動(dòng)器的驅(qū)動(dòng)器的任一類型的攔截器350。在一些實(shí)施例中,客戶端代理120和/或攔截器350操作在網(wǎng)絡(luò)堆棧310的一個(gè)或者多個(gè)層,諸如在傳輸層。在一個(gè)實(shí)施例中,攔截器350包括過濾器驅(qū)動(dòng)器、鉤子機(jī)制、或者連接到網(wǎng)絡(luò)堆棧的傳輸層的任一形式和類型的合適網(wǎng)絡(luò)驅(qū)動(dòng)器接口,諸如通過傳輸驅(qū)動(dòng)器接口(TDI)。在一些實(shí)施例中,攔截器350連接到諸如傳輸層的第一協(xié)議層和諸如傳輸協(xié)議層之上的任意層的另一個(gè)協(xié)議層,例如,應(yīng)用協(xié)議層。在一個(gè)實(shí)施例中,攔截器350可以包括遵守網(wǎng)絡(luò)驅(qū)動(dòng)器接口規(guī)范(NDIS)的驅(qū)動(dòng)器,或者NDIS驅(qū)動(dòng)器。在另一個(gè)實(shí)施例中,攔截器350可以包括微型過濾器或者微端口驅(qū)動(dòng)器。在一個(gè)實(shí)施例中,攔截器350或其部分在內(nèi)核模式202中操作。在另一個(gè)實(shí)施例中,攔截器350或其部分在用戶模式203中操作。在一些實(shí)施例中,攔截器350的一部分在內(nèi)核模式202中操作,而攔截器350的另一部分在用戶模式203中操作。在其它實(shí)施例中,客戶機(jī)代理120在用戶模式203操作,但通過攔截器350連接到內(nèi)核模式驅(qū)動(dòng)器、進(jìn)程、服務(wù)、任務(wù)或者操作系統(tǒng)的部分,諸如以獲取內(nèi)核級數(shù)據(jù)結(jié)構(gòu)225。在其它實(shí)施例中,攔截器350為用戶模式應(yīng)用或者程序,諸如應(yīng)用。在一個(gè)實(shí)施例中,攔截器350攔截任意的傳輸層連接請求。在這些實(shí)施例中,攔截器350執(zhí)行傳輸層應(yīng)用編程接口(API)調(diào)用以設(shè)置位置的目的信息,諸如到期望位置的目的IP地址和/或端口用于定位。以此方式,攔截器350攔截并重定向傳輸層連接到由攔截器350或客戶機(jī)代理120控制或管理的IP地址和端口。在一個(gè)實(shí)施例中,攔截器350把連接的目的信息設(shè)置為客戶端代理120偵聽的客戶端的本地IP地址和端口。例如,客戶端代理120可以包括為重定向的傳輸層通信偵聽本地IP地址和端口的代理服務(wù)。在一些實(shí)施例中,客戶端代理120隨后將重定向的傳輸層通信傳送到設(shè)備200。在一些實(shí)施例中,攔截器350攔截域名服務(wù)(DNS)請求。在一個(gè)實(shí)施例中,客戶端代理120和/或攔截器350解析DNS請求。在另一個(gè)實(shí)施例中,攔截器發(fā)送所攔截的DNS請求到設(shè)備200以進(jìn)行DNS解析。在一個(gè)實(shí)施例中,設(shè)備200解析DNS請求并且將DNS響應(yīng)傳送到客戶端代理120。在一些實(shí)施例中,設(shè)備200經(jīng)另一個(gè)設(shè)備200’或者DNS服務(wù)器106來解析DNS請求。在又一個(gè)實(shí)施例中,客戶端代理120可以包括兩個(gè)代理120和120’。在一個(gè)實(shí)施例中,第一代理120可以包括在網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)層操作的攔截器350。在一些實(shí)施例中,第一代理120攔截網(wǎng)絡(luò)層請求,諸如因特網(wǎng)控制消息協(xié)議(ICMP)請求(例如,查驗(yàn)和跟蹤路由)。在其它實(shí)施例中,第二代理120’可以在傳輸層操作并且攔截傳輸層通信。在一些實(shí)施例中,第一代理120在網(wǎng)絡(luò)堆棧210的一層攔截通信并且與第二代理120’連接或者將所攔截的通信傳送到第二代理120’。客戶端代理120和/或攔截器350可以以對網(wǎng)絡(luò)堆棧310的任意其它協(xié)議層透明的方式在協(xié)議層操作或與之對接。例如,在一個(gè)實(shí)施例中,攔截器350可以以對諸如網(wǎng)絡(luò)層的傳輸層之下的任意協(xié)議層和諸如會話、表示或應(yīng)用層協(xié)議的傳輸層之上的任意協(xié)議層透明的方式在網(wǎng)絡(luò)堆棧310的傳輸層操作或與之對接。這允許網(wǎng)絡(luò)堆棧310的其它協(xié)議層如所期望的進(jìn)行操作并無需修改以使用攔截器350。這樣,客戶端代理120和/或攔截器350可以與傳輸層連接以安全、優(yōu)化、加速、路由或者負(fù)載平衡經(jīng)由傳輸層承載的任一協(xié)議提供的任一通信,諸如TCP/IP上的任一應(yīng)用層協(xié)議。此外,客戶端代理120和/或攔截器可以以對任意應(yīng)用、客戶端102的用戶和與客戶端102通信的諸如服務(wù)器的任意其它計(jì)算裝置透明的方式在網(wǎng)絡(luò)堆棧310上操作或與之對接??蛻舳舜?20和/或攔截器350可以以無需修改應(yīng)用的方式被安裝和/或執(zhí)行在客戶端102上。在一些實(shí)施例中,客戶端102的用戶或者與客戶端102通信的計(jì)算裝置未意識到客戶端代理120和/或攔截器350的存在、執(zhí)行或者操作。同樣,在一些實(shí)施例中,相對于應(yīng)用、客戶機(jī)102的用戶、諸如服務(wù)器的另一個(gè)計(jì)算裝置、或者在由攔截器350連接的協(xié)議層之上和/或之下的任意協(xié)議層透明地來安裝、執(zhí)行和/或操作客戶機(jī)代理120和/或攔截器350??蛻魴C(jī)代理120包括加速程序302、流客戶機(jī)306、收集代理304和/或監(jiān)控代理197。在一個(gè)實(shí)施例中,客戶端代理120包括由Florida,F(xiàn)ortLauderdale的CitrixSystemsInc.開發(fā)的獨(dú)立計(jì)算架構(gòu)(ICA)客戶端或其任一部分,并且也指ICA客戶端。在一些實(shí)施例中,客戶端120包括應(yīng)用流客戶端306,用于從服務(wù)器106流式傳輸應(yīng)用到客戶端102。在一些實(shí)施例中,客戶端代理120包括加速程序302,用于加速客戶端102和服務(wù)器106之間的通信。在另一個(gè)實(shí)施例中,客戶端代理120包括收集代理304,用于執(zhí)行端點(diǎn)檢測/掃描并且用于為設(shè)備200和/或服務(wù)器106收集端點(diǎn)信息。在一些實(shí)施例中,加速程序302包括用于執(zhí)行一個(gè)或多個(gè)加速技術(shù)的客戶機(jī)側(cè)加速程序,以加速、增強(qiáng)或者以其他方式改善客戶機(jī)與服務(wù)器106的通信和/或?qū)Ψ?wù)器106的訪問,諸如訪問由服務(wù)器106提供的應(yīng)用。加速程序302的可執(zhí)行指令的邏輯、函數(shù)和/或操作可以執(zhí)行一個(gè)或多個(gè)下列加速技術(shù)1)多協(xié)議壓縮,幻傳輸控制協(xié)議池,幻傳輸控制協(xié)議多路復(fù)用,4)傳輸控制協(xié)議緩沖,以及幻通過高速緩存管理器的高速緩存。另外,加速程序302可執(zhí)行由客戶端102接收和/或發(fā)送的任何通信的加密和/或解密。在一些實(shí)施例中,加速程序302以集成的方式或者格式執(zhí)行一個(gè)或者多個(gè)加速技術(shù)。另外,加速程序302可以對作為傳輸層協(xié)議的網(wǎng)絡(luò)分組的有效載荷所承載的任一協(xié)議或者多協(xié)議執(zhí)行壓縮。流客戶機(jī)306包括應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令,所述應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令用于接收和執(zhí)行從服務(wù)器106所流式傳輸?shù)膽?yīng)用。服務(wù)器106可以流式傳輸一個(gè)或者多個(gè)應(yīng)用數(shù)據(jù)文件到流客戶端306,用于播放、執(zhí)行或者以其它方式引起客戶端102上的應(yīng)用被執(zhí)行。在一些實(shí)施例中,服務(wù)器106發(fā)送一組壓縮或者打包的應(yīng)用數(shù)據(jù)文件到流客戶端306。在一些實(shí)施例中,多個(gè)應(yīng)用文件被壓縮并存儲在文件服務(wù)器上檔案文件中,例如CAB、ZIP、SIT、TAR、JAR或其它檔案文件。在一個(gè)實(shí)施例中,服務(wù)器106解壓縮、解包或者解檔應(yīng)用文件并且將該文件發(fā)送到客戶端102。在另一個(gè)實(shí)施例中,客戶端102解壓縮、解包或者解檔應(yīng)用文件。流客戶端306動(dòng)態(tài)安裝應(yīng)用或其部分,并且執(zhí)行該應(yīng)用。在一個(gè)實(shí)施例中,流客戶機(jī)306可以為可執(zhí)行程序。在一些實(shí)施例中,流客戶端306可以能夠啟動(dòng)另一個(gè)可執(zhí)行程序。收集代理304包括應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令,用于識別、獲取和/或收集關(guān)于客戶端102的信息。在一些實(shí)施例中,設(shè)備200發(fā)送收集代理304到客戶端102或者客戶端代理120??梢愿鶕?jù)設(shè)備的策略引擎236的一個(gè)或多個(gè)策略來配置收集代理304。在其它實(shí)施例中,收集代理304發(fā)送收集的客戶端102的信息到設(shè)備200。在一個(gè)實(shí)施例中,設(shè)備200的策略引擎236使用所收集的信息來確定和提供客戶端到網(wǎng)絡(luò)104的連接的訪問、驗(yàn)證和授權(quán)控制。在一個(gè)實(shí)施例中,收集代理304包括端點(diǎn)檢測和掃描機(jī)制,其識別并且確定客戶端的一個(gè)或者多個(gè)屬性或者特征。例如,收集代理304可以識別和確定任意一個(gè)或多個(gè)以下的客戶機(jī)側(cè)屬性1)操作系統(tǒng)和/或操作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運(yùn)行的服務(wù),4)運(yùn)行的進(jìn)程,和幻文件。收集代理304還可以識別并確定客戶端上一個(gè)或多個(gè)以下軟件的存在或版本1)防病毒軟件;幻個(gè)人防火墻軟件;3)防垃圾郵件軟件,和4)互聯(lián)網(wǎng)安全軟件。策略引擎236可以具有基于客戶機(jī)或客戶機(jī)側(cè)屬性的任意一個(gè)或多個(gè)屬性或特性的一個(gè)或多個(gè)策略。在一些實(shí)施例中,客戶機(jī)代理120包括如結(jié)合圖ID和2B所討論的監(jiān)控代理197。監(jiān)控代理197可以是諸如VisualBasic或Java腳本的任意類型和形式的腳本。在一個(gè)實(shí)施例中,監(jiān)控代理1監(jiān)控和測量任意部分的客戶機(jī)代理120的性能。例如,在一些實(shí)施例中,監(jiān)控代理129監(jiān)控和測量加速程序302的性能。在另一個(gè)實(shí)施例中,監(jiān)控代理129監(jiān)控和測量流客戶機(jī)306的性能。在其它實(shí)施例中,監(jiān)控代理1監(jiān)控和測量收集代理304的性能。在又一個(gè)實(shí)施例中,監(jiān)控代理1監(jiān)控和測量攔截器350的性能。在一些實(shí)施例中,監(jiān)控代理1監(jiān)控和測量客戶機(jī)102的諸如存儲器、CPU和磁盤的任意資源。監(jiān)控代理197可以監(jiān)控和測量客戶機(jī)的任意應(yīng)用的性能。在一個(gè)實(shí)施例中,監(jiān)控代理1監(jiān)控和測量客戶機(jī)102上的瀏覽器的性能。在一些實(shí)施例中,監(jiān)控代理197監(jiān)控和測量經(jīng)由客戶機(jī)代理120傳送的任意應(yīng)用的性能。在其它實(shí)施例中,監(jiān)控代理197測量和監(jiān)控諸如基于web或HTTP響應(yīng)時(shí)間的應(yīng)用的最終用戶響應(yīng)時(shí)間。監(jiān)控代理197可以監(jiān)控和測量ICA或RDP客戶機(jī)的性能。在另一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控用戶會話或應(yīng)用會話的指標(biāo)。在一些實(shí)施例中,監(jiān)控代理197測量和監(jiān)控ICA或RDP會話。在一個(gè)實(shí)施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200在加速傳送應(yīng)用和/或數(shù)據(jù)到客戶機(jī)102的過程中的性能。在一些實(shí)施例中,仍舊參見圖3,第一程序322可以用于自動(dòng)地、靜默地、透明地或者以其它方式安裝和/或執(zhí)行客戶端代理120或其部分,諸如攔截器350。在一個(gè)實(shí)施例中,第一程序322包括插件組件,例如ActiveX控件或Java控件或腳本,其加載到應(yīng)用并由應(yīng)用執(zhí)行。例如,第一程序包括由web瀏覽器應(yīng)用載入和運(yùn)行的ActiveX控件,例如在存儲器空間或應(yīng)用的上下文中。在另一個(gè)實(shí)施例中,第一程序322包括可執(zhí)行指令集,該可執(zhí)行指令集被例如瀏覽器的應(yīng)用載入并執(zhí)行。在一個(gè)實(shí)施例中,第一程序322包括被設(shè)計(jì)和構(gòu)造的程序以安裝客戶端代理120。在一些實(shí)施例中,第一程序322通過網(wǎng)絡(luò)從另一個(gè)計(jì)算裝置獲得、下載、或接收客戶端代理120。在另一個(gè)實(shí)施例中,第一程序322是用于在客戶端102的操作系統(tǒng)上安裝如網(wǎng)絡(luò)驅(qū)動(dòng)的程序的安裝程序或即插即用管理器。D、用于提供虛擬化的應(yīng)用傳送控制器的系統(tǒng)和方法現(xiàn)在,參看圖4A,框圖示出虛擬化環(huán)境400的一個(gè)實(shí)施例??傮w而言,計(jì)算裝置100包括管理程序?qū)?、虛擬化層和硬件層。管理程序?qū)影ü芾沓绦?01(也稱為虛擬化管理器),其通過在虛擬化層中執(zhí)行的至少一個(gè)虛擬機(jī)來分配和管理對硬件層中的多個(gè)物理資源的訪問(例如處理器421和磁盤428)。虛擬化層包括至少一個(gè)操作系統(tǒng)410和分配給至少一個(gè)操作系統(tǒng)410的多個(gè)虛擬資源。虛擬資源可包括而不限于多個(gè)虛擬處理器43加、432b、432c(總稱為43和虛擬盤44^i、442b、442c(總稱為44,以及如虛擬內(nèi)存和虛擬網(wǎng)絡(luò)接口的虛擬資源??蓪⒍鄠€(gè)虛擬資源和操作系統(tǒng)稱為虛擬機(jī)406。虛擬機(jī)406可包括與管理程序401通信的控制操作系統(tǒng)405,所述控制操作系統(tǒng)405用于執(zhí)行應(yīng)用以管理并配置計(jì)算裝置100上的其他虛擬機(jī)。具體而言,管理程序401可以以模擬可訪問物理設(shè)備的操作系統(tǒng)的任何方式向操作系統(tǒng)提供虛擬資源。管理程序401可以向任一數(shù)量的客戶操作系統(tǒng)410a、410b(總稱為410)提供虛擬資源。一些實(shí)施例中,計(jì)算裝置100執(zhí)行一種或多種管理程序。這些實(shí)施例中,管理程序可用于模擬虛擬硬件、劃分物理硬件、虛擬化物理硬件并執(zhí)行提供對計(jì)算環(huán)境的訪問的虛擬機(jī)。管理程序可包括由I^aloAlto,California的VMWare制造的這些程序、XEN管理程序(一種開源產(chǎn)品,其開發(fā)由開源Xen.org協(xié)會監(jiān)管)、由微軟公司提供的HyperV,VirtualServer或虛擬PC管理程序,或其他。一些實(shí)施例中,將執(zhí)行管理程序的計(jì)算裝置100稱為宿主服務(wù)器,所述管理程序創(chuàng)建客戶操作系統(tǒng)可在其上執(zhí)行的虛擬機(jī)平臺。在一個(gè)這樣的實(shí)施例中,例如,計(jì)算裝置100是由位于R)rtLauderdaleFL的CitrixSystems公司提供的XENSERVER。一些實(shí)施例中,管理程序401在計(jì)算裝置上執(zhí)行的操作系統(tǒng)之內(nèi)執(zhí)行。一個(gè)這樣的實(shí)施例中,執(zhí)行操作系統(tǒng)和管理程序401的計(jì)算裝置可被視為具有宿主操作系統(tǒng)(在計(jì)算裝置上執(zhí)行的操作系統(tǒng))和客戶操作系統(tǒng)(在由管理程序401提供的計(jì)算資源分區(qū)內(nèi)執(zhí)行的操作系統(tǒng))。其他實(shí)施例中,管理程序401和計(jì)算裝置上的硬件直接交互而不是在宿主操作系統(tǒng)上執(zhí)行。一個(gè)這樣的實(shí)施例中,管理程序401可被認(rèn)為是在“裸金屬(baremetal),,上執(zhí)行,所述“裸金屬”指包括計(jì)算裝置的硬件。一些實(shí)施例中,管理程序401可以創(chuàng)建操作系統(tǒng)410在其中執(zhí)行的虛擬機(jī)406a-c(總稱為406)。在一個(gè)這樣的實(shí)施例中,管理程序401加載虛擬機(jī)鏡像以創(chuàng)建虛擬機(jī)406。另一個(gè)這樣的實(shí)施例中,管理程序401在虛擬機(jī)406內(nèi)執(zhí)行操作系統(tǒng)410。仍在另一個(gè)這樣的實(shí)施例中,虛擬機(jī)406執(zhí)行操作系統(tǒng)410。一些實(shí)施例中,管理程序401控制在計(jì)算裝置100上執(zhí)行的虛擬機(jī)406的處理器調(diào)度和內(nèi)存劃分。一個(gè)這樣的實(shí)施例中,管理程序401控制至少一個(gè)虛擬機(jī)406的執(zhí)行。另一個(gè)這樣的實(shí)施例中,管理程序401向至少一個(gè)虛擬機(jī)406呈現(xiàn)由計(jì)算裝置100提供的至少一個(gè)硬件資源的抽象。其他實(shí)施例中,管理程序401控制是否以及如何把物理處理器能力呈現(xiàn)給虛擬機(jī)406。控制操作系統(tǒng)405可以執(zhí)行用于管理和配置客戶操作系統(tǒng)的至少一個(gè)應(yīng)用。一個(gè)實(shí)施例中,控制操作系統(tǒng)405可以執(zhí)行管理程序,如包括如下用戶接口的應(yīng)用,該用戶接口為管理員提供對用于管理虛擬機(jī)執(zhí)行的功能的訪問,這些功能包括用于執(zhí)行虛擬機(jī)、中止虛擬機(jī)執(zhí)行或者識別要分配給虛擬機(jī)的物理資源的功能。另一個(gè)實(shí)施例中,管理程序401在由管理程序401創(chuàng)建的虛擬機(jī)406內(nèi)執(zhí)行控制操作系統(tǒng)405。另一個(gè)實(shí)施例中,控制操作系統(tǒng)405在被授權(quán)直接訪問計(jì)算裝置100上的物理資源的虛擬機(jī)406上執(zhí)行。一些實(shí)施例中,計(jì)算裝置IOOa上的控制操作系統(tǒng)40可以通過管理程序401a和管理程序401b之間的通信與計(jì)算裝置IOOb上的控制操作系統(tǒng)40交換數(shù)據(jù)。這樣,一個(gè)或多個(gè)計(jì)算裝置100可以和一個(gè)或多個(gè)其他計(jì)算裝置100交換有關(guān)處理器或資源池中可用的其他物理資源的數(shù)據(jù)。一個(gè)這樣的實(shí)施例中,這種功能允許管理程序管理分布在多個(gè)物理計(jì)算裝置上的資源池。另一個(gè)這樣的實(shí)施例中,多個(gè)管理程序管理在一個(gè)計(jì)算裝置100上執(zhí)行的一個(gè)或多個(gè)客戶操作系統(tǒng)。一個(gè)實(shí)施例中,控制操作系統(tǒng)405在被授權(quán)與至少一個(gè)客戶操作系統(tǒng)410交互的虛擬機(jī)406上執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)410通過管理程序401和控制操作系統(tǒng)405通信,以請求訪問磁盤或網(wǎng)絡(luò)。仍在另一個(gè)實(shí)施例中,客戶操作系統(tǒng)410和控制操作系統(tǒng)405可通過由管理程序401建立的通信信道通信,例如,通過由管理程序401提供的多個(gè)共享存儲器頁面。一些實(shí)施例中,控制操作系統(tǒng)405包括用于直接與由計(jì)算裝置100提供的網(wǎng)絡(luò)硬件通信的網(wǎng)絡(luò)后端驅(qū)動(dòng)器。一個(gè)這樣的實(shí)施例中,網(wǎng)絡(luò)后端驅(qū)動(dòng)器處理來自至少一個(gè)客戶操作系統(tǒng)110的至少一個(gè)虛擬機(jī)請求。其他實(shí)施例中,控制操作系統(tǒng)405包括用于與計(jì)算裝置100上的存儲單元通信的塊后端驅(qū)動(dòng)器。一個(gè)這樣的實(shí)施例中,塊后端驅(qū)動(dòng)器基于從客戶操作系統(tǒng)410接收的至少一個(gè)請求從存儲單元讀寫數(shù)據(jù)。一個(gè)實(shí)施例,控制操作系統(tǒng)405包括工具堆棧404。其他實(shí)施例中,工具堆棧404提供如下功能和管理程序401交互、和其他控制操作系統(tǒng)405(例如位于第二計(jì)算裝置IOOb上)通信,或者管理計(jì)算裝置100上的虛擬機(jī)406b、406c。另一個(gè)實(shí)施例中,工具堆棧404包括自定義應(yīng)用,用于向虛擬機(jī)群的管理員提供改進(jìn)的管理功能。一些實(shí)施例中,工具堆棧404和控制操作系統(tǒng)405中的至少一個(gè)包括管理API,其提供用于遠(yuǎn)程配置并控制計(jì)算裝置100上運(yùn)行的虛擬機(jī)406的接口。其他實(shí)施例中,控制操作系統(tǒng)405通過工具堆棧104和管理程序401通信。一個(gè)實(shí)施例中,管理程序401在由管理程序401創(chuàng)建的虛擬機(jī)406內(nèi)執(zhí)行客戶操作系統(tǒng)410。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)410為計(jì)算裝置100的用戶提供對計(jì)算環(huán)境中的資源的訪問。另一個(gè)實(shí)施例中,資源包括程序、應(yīng)用、文檔、文件、多個(gè)應(yīng)用、多個(gè)文件、可執(zhí)行程序文件、桌面環(huán)境、計(jì)算環(huán)境或?qū)τ?jì)算裝置100的用戶可用的其他資源。另一個(gè)實(shí)施例中,可通過多個(gè)訪問方法將資源傳送給計(jì)算裝置100,這些方法包括但不限于常規(guī)的直接安裝在計(jì)算裝置100上、通過應(yīng)用流送方法傳送給計(jì)算裝置100、把由在第二計(jì)算裝置100'上執(zhí)行資源產(chǎn)生的并通過表示層協(xié)議傳送給計(jì)算裝置100的輸出數(shù)據(jù)傳送給計(jì)算裝置100、把由在第二計(jì)算裝置100'上執(zhí)行的虛擬機(jī)執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳送給計(jì)算裝置100、或者從連接到計(jì)算裝置100的移動(dòng)存儲裝置(例如USB設(shè)備)執(zhí)行、或者通過在計(jì)算裝置100上執(zhí)行的虛擬機(jī)執(zhí)行并且產(chǎn)生輸出數(shù)據(jù)。一些實(shí)施例中,計(jì)算裝置100把執(zhí)行資源產(chǎn)生的輸出數(shù)據(jù)傳輸給另一個(gè)計(jì)算裝置100'。一個(gè)實(shí)施例中,客戶操作系統(tǒng)410和該客戶操作系統(tǒng)410在其上執(zhí)行的虛擬機(jī)結(jié)合形成完全虛擬化虛擬機(jī),該完全虛擬化虛擬機(jī)并不知道自己是虛擬機(jī),這樣的機(jī)器可稱為“DomainUHVM(硬件虛擬機(jī))虛擬機(jī)”。另一個(gè)實(shí)施例中,完全虛擬化機(jī)包括模擬基本輸入/輸出系統(tǒng)(BIOS)的軟件以便在完全虛擬化機(jī)中執(zhí)行操作系統(tǒng)。仍在另一個(gè)實(shí)施例中,完全虛擬化機(jī)可包括驅(qū)動(dòng)器,其通過和管理程序401通信提供功能。這樣的實(shí)施例中,驅(qū)動(dòng)器可意識到自己在虛擬化環(huán)境中執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)410和該客戶操作系統(tǒng)410在其上執(zhí)行的虛擬機(jī)結(jié)合形成超虛擬化虛擬機(jī)(paravirtualized),該超虛擬化虛擬機(jī)知道自己是虛擬機(jī),這樣的機(jī)器可稱為“DomainUPV虛擬機(jī)”。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括完全虛擬化機(jī)不包括的額外驅(qū)動(dòng)器。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括如上所述的被包含在控制操作系統(tǒng)405中的網(wǎng)絡(luò)后端驅(qū)動(dòng)器和塊后端驅(qū)動(dòng)器?,F(xiàn)參考圖4B,框圖描述了系統(tǒng)中的多個(gè)聯(lián)網(wǎng)計(jì)算裝置的一個(gè)實(shí)施例,其中,至少一個(gè)物理主機(jī)執(zhí)行虛擬機(jī)。總體而言,系統(tǒng)包括管理組件404和管理程序401。系統(tǒng)包括多個(gè)計(jì)算裝置100、多個(gè)虛擬機(jī)406、多個(gè)管理程序401、多個(gè)管理組件(又稱為工具堆棧404)以及物理資源421、428。多個(gè)物理機(jī)器100的每一個(gè)可被提供為如上結(jié)合圖1E-1H和圖4A描述的計(jì)算裝置100。具體而言,物理盤428由計(jì)算裝置100提供,存儲至少一部分虛擬盤442。一些實(shí)施例中,虛擬盤442和多個(gè)物理盤4相關(guān)聯(lián)。一個(gè)這樣的實(shí)施例中,一個(gè)或多個(gè)計(jì)算裝置100可以和一個(gè)或多個(gè)其他計(jì)算裝置100交換有關(guān)處理器或資源池中可用的其他物理資源的數(shù)據(jù),允許管理程序管理分布在多個(gè)物理計(jì)算裝置上的資源池。一些實(shí)施例中,將虛擬機(jī)406在其上執(zhí)行的計(jì)算裝置100稱為物理主機(jī)100或主機(jī)100。管理程序在計(jì)算裝置100上的處理器上執(zhí)行。管理程序把對物理盤的訪問量分配給虛擬盤。一個(gè)實(shí)施例中,管理程序401分配物理盤上的空間量。另一個(gè)實(shí)施例中,管理程序401分配物理盤上的多個(gè)頁面。一些實(shí)施例中,管理程序提供虛擬盤442作為初始化和執(zhí)行虛擬機(jī)450進(jìn)程的一部分。一個(gè)實(shí)施例中,將管理組件40稱為池管理組件4(Ma。另一個(gè)實(shí)施例中,可以稱為控制管理系統(tǒng)40的管理操作系統(tǒng)40包括管理組件。一些實(shí)施例中,將管理組件稱為工具堆棧。一個(gè)這樣的實(shí)施例中,管理組件是以上結(jié)合圖4A描述的工具堆棧404。其他實(shí)施例中,管理組件404提供用戶接口,用于從如管理員的用戶接收要提供和/或執(zhí)行的虛擬機(jī)406的標(biāo)識。仍在其他實(shí)施例中,管理組件404提供用戶接口,用于從如管理員的用戶接收把虛擬機(jī)406b從一個(gè)物理機(jī)器100遷移到另一物理機(jī)器的請求。其他實(shí)施例中,管理組件40識別在其上執(zhí)行請求的虛擬機(jī)406d的計(jì)算裝置IOOb并指示所識別的計(jì)算裝置IOOb上的管理程序401b執(zhí)行所識別的虛擬機(jī),這樣,可將管理組件稱為池管理組件?,F(xiàn)參考圖4C,描述了虛擬化應(yīng)用傳送控制器或虛擬設(shè)備450的實(shí)施例??傮w而言,以上結(jié)合圖2A和2B描述的設(shè)備200的任何功能和/或?qū)嵤├?例如應(yīng)用傳送控制器)可以部署在上述結(jié)合圖4A和4B描述的虛擬化環(huán)境的實(shí)施例中。應(yīng)用傳送控制器的功能不是以設(shè)備200的形式部署,而是把該功能部署在諸如客戶機(jī)102、服務(wù)器106或設(shè)備200的任何計(jì)算裝置100上的虛擬化環(huán)境400中?,F(xiàn)在參考圖4C,描述了在服務(wù)器106的管理程序401上運(yùn)行的虛擬設(shè)備450的實(shí)施例的框圖。如圖2A和2B的設(shè)備200—樣,虛擬機(jī)450可以提供可用性、性能、卸載和安全的功能。對于可用性,虛擬設(shè)備可以執(zhí)行網(wǎng)絡(luò)第4層和第7層之間的負(fù)載平衡并執(zhí)行智能服務(wù)健康監(jiān)控。對于通過網(wǎng)絡(luò)業(yè)務(wù)加速實(shí)現(xiàn)的性能增加,虛擬設(shè)備可以執(zhí)行緩存和壓縮。對于任何服務(wù)器的卸載處理,虛擬設(shè)備可以執(zhí)行連接復(fù)用和連接池和/或者SSL處理。對于安全,虛擬設(shè)備可以執(zhí)行設(shè)備200的任何應(yīng)用防火墻功能和SSLVPN功能。結(jié)合附圖2A描述的設(shè)備的任何模塊可以虛擬化設(shè)備傳送控制器450的形式被打包、組合、設(shè)計(jì)或構(gòu)造,虛擬化設(shè)備傳送控制器450可部署成在諸如現(xiàn)貨供應(yīng)的服務(wù)器的任何服務(wù)器上的虛擬化環(huán)境300或非虛擬化環(huán)境中執(zhí)行的軟件模塊或組件。例如,可以安裝在計(jì)算裝置上的安裝包的形式提供虛擬設(shè)備。參看圖2A,可以把高速緩存管理器232、策略引擎236、壓縮238、加密引擎234、分組引擎240、⑶I210,CLI212、殼服務(wù)214中的任一個(gè)設(shè)計(jì)和構(gòu)成在計(jì)算裝置和/或虛擬化環(huán)境300的任何操作系統(tǒng)上運(yùn)行的組件或模塊。虛擬化設(shè)備400不使用設(shè)備200的加密處理器沈0、處理器沈2、存儲器264和網(wǎng)絡(luò)堆棧沈7,而是可使用虛擬化環(huán)境400提供的任何這些資源或者服務(wù)器106上以其他方式可用的這些資源。仍然參看圖4C,簡言之,任何一個(gè)或多個(gè)vServer275A-275N可以操作或執(zhí)行在32任意類型的計(jì)算裝置100(如服務(wù)器106)的虛擬化環(huán)境400中。結(jié)合附圖2B描述的設(shè)備200的任何模塊和功能可以設(shè)計(jì)和構(gòu)造成在服務(wù)器的虛擬化或非虛擬化環(huán)境中操作??梢园裿Server275、SSLVPN280、內(nèi)網(wǎng)UP282、交換裝置284、DNS286、加速裝置288、APPFff280和監(jiān)控代理中的任一個(gè)打包、組合、設(shè)計(jì)或構(gòu)造成應(yīng)用傳送控制器450的形式,應(yīng)用傳送控制器450可部署成在裝置和/或虛擬化環(huán)境400中執(zhí)行的一個(gè)或多個(gè)軟件模塊或組件。一些實(shí)施例中,服務(wù)器可以在虛擬化環(huán)境中執(zhí)行多個(gè)虛擬機(jī)406a_406b,每個(gè)虛擬機(jī)運(yùn)行虛擬化應(yīng)用傳送控制器450的相同或不同實(shí)施例。一些實(shí)施例中,服務(wù)器可以在多核處理系統(tǒng)的一個(gè)核上執(zhí)行一個(gè)或多個(gè)虛擬機(jī)上的一個(gè)或多個(gè)虛擬設(shè)備450。一些實(shí)施例中,服務(wù)器可以在多處理器裝置的每個(gè)處理器上執(zhí)行一個(gè)或多個(gè)虛擬機(jī)上的一個(gè)或多個(gè)虛擬設(shè)備450。E、提供多核架構(gòu)的系統(tǒng)和方法根據(jù)摩爾定律,每兩年集成電路上可安裝的晶體管的數(shù)量會基本翻倍。然而,CPU速度增加會達(dá)到穩(wěn)定水平(plateaus),例如,2005年以來,CPU速度在約3.5-4GHz的范圍內(nèi)。一些情況下,CPU制造商可能不依靠CPU速度增加來實(shí)現(xiàn)更好的性能。一些CPU制造商會給處理器增加額外的核以提供更好的性能。依靠CPU獲得性能改善的如軟件和網(wǎng)絡(luò)供應(yīng)商的產(chǎn)品可以通過利用這些多核CPU來改進(jìn)他們的性能??梢灾匦略O(shè)計(jì)和/或編寫為單CPU設(shè)計(jì)和構(gòu)造的軟件以利用多線程、并行架構(gòu)或其他多核架構(gòu)。一些實(shí)施例中,稱為nCore或多核技術(shù)的設(shè)備200的多核架構(gòu)允許設(shè)備打破單核性能障礙并利用多核CPU的能力。前文結(jié)合圖2A描述的架構(gòu)中,運(yùn)行單個(gè)網(wǎng)絡(luò)或分組引擎。nCore技術(shù)和架構(gòu)的多核允許同時(shí)和/或并行地運(yùn)行多個(gè)分組引擎。通過在每個(gè)核上運(yùn)行分組引擎,設(shè)備架構(gòu)利用附加核的處理能力。一些實(shí)施例中,這提供了高達(dá)七倍的性能改善和擴(kuò)展性。圖5A示出根據(jù)一類并行機(jī)制或并行計(jì)算方法(如功能并行機(jī)制、數(shù)據(jù)并行機(jī)制或基于流的數(shù)據(jù)并行機(jī)制)在一個(gè)或多個(gè)處理器核上分布的工作、任務(wù)、負(fù)載或網(wǎng)絡(luò)業(yè)務(wù)的一些實(shí)施例??傮w而言,圖5A示出如具有η個(gè)核的設(shè)備200'的多核系統(tǒng)的實(shí)施例,η個(gè)核編號為1到N。一個(gè)實(shí)施例中,工作、負(fù)載或網(wǎng)絡(luò)業(yè)務(wù)可以分布在第一核505Α、第二核505Β、第三核505C、第四核505D、第五核505Ε、第六核505F、第七和505G等上,這樣,分布位于所有η個(gè)核505Ν(此后統(tǒng)稱為核50或η個(gè)核中的兩個(gè)或多個(gè)上??梢杂卸鄠€(gè)VIP275,每個(gè)運(yùn)行在多個(gè)核的各個(gè)核中??梢杂卸鄠€(gè)分組引擎Μ0,每個(gè)運(yùn)行在多個(gè)核的各個(gè)核中。所使用方法中任一種可產(chǎn)生多個(gè)核中任一核上的不同的、變化的或類似的工作負(fù)載或性能等級515。對于功能并行方法,每個(gè)核運(yùn)行由分組引擎、VIP275或設(shè)備200提供的多個(gè)功能的不同功能。在數(shù)據(jù)并行方法中,數(shù)據(jù)可基于接收數(shù)據(jù)的網(wǎng)絡(luò)接口卡(NIC)或VIP275并行或分布在核上。另一個(gè)數(shù)據(jù)并行方法中,可通過把數(shù)據(jù)流分布在每個(gè)核上而將處理分布在多個(gè)核上。圖5A的進(jìn)一步的細(xì)節(jié)中,一些實(shí)施例中,可以根據(jù)功能并行機(jī)制500把負(fù)載、工作或網(wǎng)絡(luò)業(yè)務(wù)分布在多個(gè)核505上。功能并行機(jī)制可基于執(zhí)行一個(gè)或多個(gè)相應(yīng)功能的每個(gè)核。一些實(shí)施例中,第一核可執(zhí)行第一功能,同時(shí)第二核執(zhí)行第二功能。功能并行方法中,根據(jù)功能性把多核系統(tǒng)要執(zhí)行的功能劃分并分布在每個(gè)核上。一些實(shí)施例中,可將功能并行機(jī)制稱為任務(wù)并行機(jī)制,并且可在每個(gè)處理器或核對同一數(shù)據(jù)或不同數(shù)據(jù)執(zhí)行不同過程或功能時(shí)實(shí)現(xiàn)。核或處理器可執(zhí)行相同或不同的代碼。一些情況下,不同的執(zhí)行線程或代碼可在工作時(shí)相互通信。可以進(jìn)行通信以把數(shù)據(jù)作為工作流的一部分從一個(gè)線程傳遞給下一線程。一些實(shí)施例中,根據(jù)功能并行機(jī)制500把工作分布在多個(gè)核505上,可以包括根據(jù)具體功能分布網(wǎng)絡(luò)業(yè)務(wù),具體功能例如為網(wǎng)絡(luò)輸入/輸出管理(NWI/0)510A、安全套接層(SSL)加密和解密510B和傳輸控制協(xié)議(TCP)功能510C。這會產(chǎn)生基于所使用的功能量或功能性級別的工作、動(dòng)作或者計(jì)算負(fù)載515。一些實(shí)施例中,根據(jù)基于流的數(shù)據(jù)并行機(jī)制540把工作分布在多個(gè)核505上可包括基于和具體硬件或軟件組件相關(guān)聯(lián)的分布數(shù)據(jù)來分布工作量515。一些實(shí)施例中,根據(jù)基于流的數(shù)據(jù)并行機(jī)制520把工作分布在多個(gè)核505上可包括基于上下文或流來分布數(shù)據(jù),從而使得每個(gè)核上的工作量515A-N可以類似、基本相等或者相對平均分布。功能并行方法的情況下,可以配置每個(gè)核來運(yùn)行由設(shè)備的分組引擎或VIP提供的多個(gè)功能性中的一個(gè)或多個(gè)功能性。例如,核1可執(zhí)行設(shè)備200'的網(wǎng)絡(luò)I/O處理,同時(shí)核2執(zhí)行設(shè)備的TCP連接管理。類似地,核3可執(zhí)行SSL卸載,同時(shí)核4可執(zhí)行第7層或應(yīng)用層處理和業(yè)務(wù)管理。每個(gè)核可執(zhí)行相同或不同的功能。每個(gè)核可執(zhí)行不只一個(gè)功能。任一核可運(yùn)行結(jié)合附圖2A和2B識別和/或描述的功能或其一部分。該方法中,核上的工作可以粗粒度或細(xì)粒度方式按功能劃分。一些情況下,如圖5A所示,按功能劃分會使得不同核運(yùn)行在不同的性能或負(fù)載515級別。功能并行方法的情況下,可以配置每個(gè)核來運(yùn)行由設(shè)備的分組引擎提供的多個(gè)功能性中的一個(gè)或多個(gè)功能性。例如,核1可執(zhí)行設(shè)備200'的網(wǎng)絡(luò)I/O處理,同時(shí)核2執(zhí)行設(shè)備的TCP連接管理。類似地,核3可執(zhí)行SSL卸載,同時(shí)核4可執(zhí)行第7層或應(yīng)用層處理和業(yè)務(wù)管理。每個(gè)核可執(zhí)行相同或不同的功能。每個(gè)核可執(zhí)行多于一個(gè)功能。任一核可運(yùn)行結(jié)合附圖2A和2B識別和/或描述的功能或其一部分。該方法中,核上的工作可以粗粒度或細(xì)粒度方式按功能劃分。一些情況下,如圖5A所示,按功能劃分會使得不同核運(yùn)行在不同的性能或負(fù)載級別。可以用任何結(jié)構(gòu)或方法來分布功能或任務(wù)。例如,圖5B示出用于處理與網(wǎng)絡(luò)I/O功能510A相關(guān)聯(lián)的應(yīng)用和進(jìn)程第一核Corel505A。一些實(shí)施例中,和網(wǎng)絡(luò)I/O相關(guān)的網(wǎng)絡(luò)業(yè)務(wù)可以和具體端口號相關(guān)聯(lián)。因而,把具有與NWI/O510A相關(guān)聯(lián)的端口目的地的發(fā)出和到來的分組導(dǎo)引給Corel505A,Corel505A用于處理和NWI/O端口相關(guān)聯(lián)的所有網(wǎng)絡(luò)業(yè)務(wù)。類似的,Core2505B用于處理和SSL處理相關(guān)聯(lián)的功能,Core4505D可用于處理所有TCP級處理和功能。雖然圖5A示出如網(wǎng)絡(luò)I/0、SSL和TCP的功能,也可把其他功能分配給核。這些其他功能可包括此處描述的任一或多個(gè)功能或操作。例如,結(jié)合圖2A和2B描述的任一功能可基于功能基礎(chǔ)分布在多個(gè)核上。一些情況下,第一VIP275A可運(yùn)行在第一核上,同時(shí),具有不同配置的第二VIP275B可運(yùn)行在第二核上。一些實(shí)施例中,每個(gè)核505可處理特定功能,這樣每個(gè)核505可處理和特定功能相關(guān)的處理。例如,Core2505B可處理SSL卸載,同時(shí)Core4505D可處理應(yīng)用層處理和業(yè)務(wù)管理。其他實(shí)施例中,可根據(jù)任何類型或形式的數(shù)據(jù)并行機(jī)制540把工作、負(fù)載或網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。一些實(shí)施例中,可由每個(gè)核對分布式數(shù)據(jù)的不同片執(zhí)行相同任務(wù)或功能來實(shí)現(xiàn)多核系統(tǒng)中的數(shù)據(jù)并行機(jī)制。一些實(shí)施例中,單個(gè)執(zhí)行線程或代碼控制對所有數(shù)據(jù)片的操作。其他實(shí)施例中,不同線程或指令控制操作,但是可執(zhí)行相同代碼。一些實(shí)施例中,從分組引擎、vServer(VIP)275A-C、網(wǎng)絡(luò)接口卡(NIC)542D-E和/或設(shè)備200上包括的或者與設(shè)備200相關(guān)聯(lián)的任何其他網(wǎng)絡(luò)硬件或軟件的角度實(shí)現(xiàn)數(shù)據(jù)并行機(jī)制。例如,每個(gè)核可運(yùn)行同樣的分組引擎或VIP代碼或配置但是在不同的分布的數(shù)據(jù)集上進(jìn)行操作。每個(gè)網(wǎng)絡(luò)硬件或軟件結(jié)構(gòu)可接收不同的、變化的或者基本相同量的數(shù)據(jù),因而可以具有變化的、不同的或相對相同量的負(fù)載515。在數(shù)據(jù)并行方法的情況下,可以基于VIP、NIC和/或VIP或NIC的數(shù)據(jù)流來劃分和分布工作。一個(gè)這樣的方法中,可通過使每個(gè)VIP在分布的數(shù)據(jù)集上工作來把多核系統(tǒng)的工作劃分或者分布在VIP上。例如,可配置每個(gè)核運(yùn)行一個(gè)或多個(gè)VIP。網(wǎng)絡(luò)業(yè)務(wù)可分布在處理業(yè)務(wù)的每個(gè)VIP的核上。另一個(gè)這樣的方法中,可基于哪個(gè)NIC接收網(wǎng)絡(luò)業(yè)務(wù)來把設(shè)備的工作劃分或分布在多個(gè)核上。例如,第一OTC的網(wǎng)絡(luò)業(yè)務(wù)可分布在第一核上,同時(shí)第二NIC的網(wǎng)絡(luò)業(yè)務(wù)可分布給第二個(gè)核。一些情況下,核可處理多個(gè)NIC的數(shù)據(jù)。雖然圖5A示出了與單個(gè)核505相關(guān)的單個(gè)vServer,正如VIPl275A、VIP2275B和VIP3275C的情況。但是,一些實(shí)施例中,單個(gè)vServer可以和一個(gè)或者多個(gè)核505相關(guān)聯(lián)。相反,一個(gè)或多個(gè)vServer可以和單個(gè)核505相關(guān)聯(lián)。把vServer和核505關(guān)聯(lián)可包括該核505處理與該特定vServer關(guān)聯(lián)的所有功能。一些實(shí)施例中,每個(gè)核執(zhí)行具有相同代碼和配置的VIP。其他實(shí)施例中,每個(gè)核執(zhí)行具有相同代碼但配置不同的VIP。一些實(shí)施例中,每個(gè)核執(zhí)行具有不同代碼且配置相同或不同的VIP。和vServer類似,NIC也可以和特定核505關(guān)聯(lián)。許多實(shí)施例中,NIC可以連接到一個(gè)或多個(gè)核505,這樣,當(dāng)NIC接收或發(fā)送數(shù)據(jù)分組時(shí),特定核505處理涉及接收和發(fā)送數(shù)據(jù)分組相關(guān)的處理。一個(gè)實(shí)施例中,單個(gè)NIC可以和一個(gè)核505相關(guān)聯(lián),這如NICl542D和NIC2M2E的情況。其他實(shí)施例中,一個(gè)或多個(gè)NIC可以和單個(gè)核505相關(guān)聯(lián)。但其他實(shí)施例中,單個(gè)NIC可以和一個(gè)或者多個(gè)核505相關(guān)聯(lián)。這些實(shí)施例中,負(fù)載可以分布在一個(gè)或多個(gè)核505上,這樣,每個(gè)核505基本上處理類似的負(fù)載量。和NIC關(guān)聯(lián)的核505可以處理和該特定NIC關(guān)聯(lián)的所有功能和/或數(shù)據(jù)。雖然根據(jù)VIP或NIC的數(shù)據(jù)把工作分布在核上具有某種程度的獨(dú)立性,但是,一些實(shí)施例中,這會造成如圖5A的變化負(fù)載515所示的核的不平衡核使用。一些實(shí)施例中,可根據(jù)任何類型或形式的數(shù)據(jù)流把負(fù)載、工作或網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。另一個(gè)這樣的方法中,可基于數(shù)據(jù)流把工作劃分或分布在多個(gè)核上。例如,客戶機(jī)或服務(wù)器之間的通過設(shè)備的網(wǎng)絡(luò)業(yè)務(wù)可以被分布到多個(gè)核中的一個(gè)核并且由其來處理。一些情況下,最初建立會話或連接的核可以是該會話或連接的網(wǎng)絡(luò)業(yè)務(wù)所分布的核。一些實(shí)施例中,數(shù)據(jù)流基于網(wǎng)絡(luò)業(yè)務(wù)的任何單元或部分,如事務(wù)、請求/響應(yīng)通信或來自客戶機(jī)上的應(yīng)用的業(yè)務(wù)。這樣,一些實(shí)施例中,客戶機(jī)和服務(wù)器之間的通過設(shè)備200'的數(shù)據(jù)流可以比其他方式分布的更均衡。在基于流的數(shù)據(jù)并行機(jī)制520中,數(shù)據(jù)分布和任何類型的數(shù)據(jù)流相關(guān),例如請求/響應(yīng)對、事務(wù)、會話、連接或應(yīng)用通信。例如,客戶機(jī)或服務(wù)器之間的通過設(shè)備的網(wǎng)絡(luò)業(yè)務(wù)可以被分布到多個(gè)核中的一個(gè)核并且由其處理。一些情況下,最初建立會話或連接的核可以是該會話或連接的網(wǎng)絡(luò)業(yè)務(wù)所分布的核。數(shù)據(jù)流可以這樣分布,以使得每個(gè)核505運(yùn)行基本相等或相對均勻分布的負(fù)載量、數(shù)據(jù)量或網(wǎng)絡(luò)業(yè)務(wù)量。一些實(shí)施例中,數(shù)據(jù)流基于網(wǎng)絡(luò)業(yè)務(wù)的任何單元或部分,如事務(wù)、請求/響應(yīng)通信或發(fā)自客戶機(jī)上的應(yīng)用的業(yè)務(wù)。這樣,一些實(shí)施例中,客戶機(jī)和服務(wù)器之間的穿過設(shè)備200'的數(shù)據(jù)流可以比其他方式分布的更均衡。一個(gè)實(shí)施例中,可以基于事務(wù)或一系列事務(wù)分布數(shù)據(jù)量。一些實(shí)施例中,該事務(wù)可以是客戶機(jī)和服務(wù)器之間的,其特征可以是IP地址或其他分組標(biāo)識符。例如,核ι505A可專用于特定客戶機(jī)和特定服務(wù)器之間的事務(wù),因此,核1505A上的負(fù)載536A可包括與特定客戶機(jī)和服務(wù)器之間的事務(wù)相關(guān)聯(lián)的網(wǎng)絡(luò)業(yè)務(wù)??赏ㄟ^把來自特定客戶機(jī)或服務(wù)器的所有數(shù)據(jù)分組路由到核1505A來把網(wǎng)絡(luò)業(yè)務(wù)分配給核1505A。雖然可部分地基于事務(wù)把工作或負(fù)載分布在核上,但是,其他實(shí)施例中,可基于每個(gè)分組的基礎(chǔ)分配負(fù)載或工作。這些實(shí)施例中,設(shè)備200可攔截?cái)?shù)據(jù)分組并把數(shù)據(jù)分組分配給負(fù)載量最小的核505。例如,由于核1上的負(fù)載536A小于其他核505B-N上的負(fù)載536B-N,所以設(shè)備200可把第一到來數(shù)據(jù)分組分配給核1505A。把第一數(shù)據(jù)分組分配給核1505A后,核1505A上的負(fù)載量536A與處理第一數(shù)據(jù)分組所需的處理資源量成比例增加。設(shè)備200攔截到第二數(shù)據(jù)分組時(shí),設(shè)備200會把負(fù)載分配給核4505D,這是由于核4505D具有第二少的負(fù)載量。一些實(shí)施例中,把數(shù)據(jù)分組分配給負(fù)載量最小的核可確保分配給每個(gè)核505的負(fù)載536A-N保持基本相等。其他實(shí)施例中,把一部分網(wǎng)絡(luò)業(yè)務(wù)分配給特定核505的情況下,可以每單元為基礎(chǔ)分配負(fù)載。上述示例說明以每分組為基礎(chǔ)進(jìn)行負(fù)載平衡。其他實(shí)施例中,可以基于分組數(shù)目分配負(fù)載,例如,把每10個(gè)、100個(gè)或1000個(gè)分組分配給業(yè)務(wù)量最少的核505。分配給核505的分組數(shù)量可以是由應(yīng)用、用戶或管理員確定的數(shù)目,而且可以為大于零的任何數(shù)。仍在其他實(shí)施例中,基于時(shí)間度量分配負(fù)載,這樣,在預(yù)定時(shí)間段把分組分配給特定核505。這些實(shí)施例中,可以在5毫秒內(nèi)或者由用戶、程序、系統(tǒng)、管理器或其他方式確定的任何時(shí)間段把分組分配給特定核505。預(yù)定時(shí)間段過去后,在預(yù)定時(shí)間段內(nèi)把時(shí)間分組傳輸給其他核505。用于把工作、負(fù)載或網(wǎng)絡(luò)業(yè)務(wù)分布在一個(gè)或多個(gè)核505上的基于流的數(shù)據(jù)并行方法可包括上述實(shí)施例的任意組合。這些方法可以由設(shè)備200的任何部分執(zhí)行,由在核505上執(zhí)行的應(yīng)用或者一組可執(zhí)行指令執(zhí)行,例如分組引擎,或者由在與設(shè)備200通信的計(jì)算裝置上執(zhí)行的任何應(yīng)用、程序或代理執(zhí)行。圖5A所示的功能和數(shù)據(jù)并行機(jī)制計(jì)算方法可以任何方式組合,以產(chǎn)生混合并行機(jī)制或分布式處理方法,其包括功能并行機(jī)制500、數(shù)據(jù)并行機(jī)制M0、基于流的數(shù)據(jù)并行機(jī)制520或者其任何部分。一些情況下,多核系統(tǒng)可使用任何類型或形式的負(fù)載平衡方法來把負(fù)載分布在一個(gè)或多個(gè)核505上。負(fù)載平衡方法可以和任何功能和數(shù)據(jù)平行方法或其組合結(jié)合使用。圖5B示出多核系統(tǒng)M5的實(shí)施例,該系統(tǒng)可以是任何類型或形式的一個(gè)或多個(gè)系統(tǒng)、設(shè)備、裝置或組件。一些實(shí)施例中,該系統(tǒng)545可被包括在具有一個(gè)或多個(gè)處理核505A-N的設(shè)備200內(nèi)。系統(tǒng)545還可包括與存儲器總線556通信的一個(gè)或多個(gè)分組引擎(PE)或分組處理引擎(PPEM48A-N。存儲器總線可用于和一個(gè)或多個(gè)處理核505A-N通信。系統(tǒng)545還可包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(NIC)552和流分布器550,流分布器還可和一個(gè)或多個(gè)處理核505A-N通信。流分布器550可包括接收側(cè)換算器(Scaler)(RSS)或接收側(cè)換算(Scaling)(RSS)模塊560。進(jìn)一步參看圖5B,具體而言,一個(gè)實(shí)施例中,分組引擎M8A-N可包括此處所述的設(shè)備200的任何部分,例如圖2A和2B所述設(shè)備的任何部分。一些實(shí)施例中,分組引擎M8A-N可包括以下元件中的任一個(gè)分組引擎M0、網(wǎng)絡(luò)堆棧沈7、高速緩存管理器232、策略引擎236、壓縮引擎238、加密引擎234、⑶I210、CLI212、殼服務(wù)214、監(jiān)控程序216以及可以從數(shù)據(jù)總線556或一個(gè)或多個(gè)核505A-N中的任一個(gè)接收數(shù)據(jù)分組的其他任何軟件和硬件元件。一些實(shí)施例中,分組引擎M8A-N可包括一個(gè)或多個(gè)vServer275A-N或其任何部分。其他實(shí)施例中,分組引擎M8A-N可包括以下功能的任意組合SSLVPN280,IntranetUP沘2、交換沘4、DNS^6、分組加速沘8、APPFW沘0、如由監(jiān)控代理197提供的監(jiān)控、和作為TCP堆棧關(guān)聯(lián)的功能、負(fù)載平衡、SSL卸載和處理、內(nèi)容切換、測量評估、高速緩存、壓縮、編碼、解壓縮、解碼、應(yīng)用防火墻功能、XML處理和加速以及SSLVPN連接。一些實(shí)施例中,分組引擎M8A-N可以和特定服務(wù)器、用戶、客戶或網(wǎng)絡(luò)關(guān)聯(lián)。分組引擎548和特定實(shí)體關(guān)聯(lián)時(shí),分組引擎548可處理和該實(shí)體關(guān)聯(lián)的數(shù)據(jù)分組。例如,如果分組引擎548和第一用戶關(guān)聯(lián),那么該分組引擎548就處理并操作由第一用戶產(chǎn)生的分組,或者目標(biāo)地址和第一用戶關(guān)聯(lián)的分組。類似地,分組引擎548可選擇不和特定實(shí)體關(guān)聯(lián),這樣,分組引擎548可處理并操作不是由該實(shí)體產(chǎn)生的或目的是該實(shí)體的任何數(shù)據(jù)分組。一些情況下,可配置分組引擎M8A-N來執(zhí)行圖5A所示的任何功能和/或數(shù)據(jù)并行方法。這些情況下,分組引擎M8A-N可把功能或數(shù)據(jù)分布在多個(gè)核505A-N上,從而使得分布是根據(jù)并行機(jī)制或分布方法的。一些實(shí)施例中,單個(gè)分組引擎M8A-N執(zhí)行負(fù)載平衡方法,其他實(shí)施例中,一個(gè)或多個(gè)分組引擎M8A-N執(zhí)行負(fù)載平衡方法。一個(gè)實(shí)施例中,每個(gè)核505A-N可以和特定分組引擎505關(guān)聯(lián),這樣,可以由分組引擎進(jìn)行負(fù)載平衡。該實(shí)施例中,負(fù)載平衡可要求和核505關(guān)聯(lián)的每個(gè)分組引擎505與和核505關(guān)聯(lián)的其他分組引擎505通信,這樣,分組引擎505共同決定把負(fù)載分布在何處。該方法的一個(gè)實(shí)施例可包括從每個(gè)分組引擎505接收有關(guān)負(fù)載的投票的仲裁器。仲裁器可部分基于引擎投票的持續(xù)時(shí)間把負(fù)載分配給每個(gè)負(fù)載引擎505,一些情況下,還可基于與和核505關(guān)聯(lián)的引擎上的當(dāng)前負(fù)載量相關(guān)聯(lián)的優(yōu)先級值來把負(fù)載分配給每個(gè)負(fù)載引起505。核上運(yùn)行的任何分組引擎可以運(yùn)行于用戶模式、內(nèi)核模式或其任意組合。一些實(shí)施例中,分組引擎作為在用戶空間或應(yīng)用空間中運(yùn)行的應(yīng)用或程序來操作。這些實(shí)施例中,分組引擎可使用任何類型或形式的接口來訪問內(nèi)核提供的任何功能。一些實(shí)施例中,分組引擎操作于內(nèi)核模式或作為內(nèi)核的一部分來操作。一些實(shí)施例中,分組引擎的第一部分操作于用戶模式,分組引擎的第二部分操作于內(nèi)核模式。一些實(shí)施例中,第一核上的第一分組引擎執(zhí)行于內(nèi)核模式,同時(shí),第二核上的第二分組引擎執(zhí)行于用戶模式。一些實(shí)施例中,分組引擎或其任何部分對NIC或其任何驅(qū)動(dòng)器進(jìn)行操作或者與之一同工作。一些實(shí)施例中,存儲器總線556可以是任何類型或形式的存儲器或計(jì)算機(jī)總線。雖然圖5B描述了單個(gè)存儲器總線556,但是系統(tǒng)545可包括任意數(shù)量的存儲器總線556。一個(gè)實(shí)施例中,每個(gè)分組引擎548可以和一個(gè)或者多個(gè)單獨(dú)的存儲器總線556相關(guān)聯(lián)。一些實(shí)施例中,NIC552可以是任一網(wǎng)絡(luò)接口卡或者此處所述網(wǎng)絡(luò)接口機(jī)制。NIC552可具有任意多個(gè)端口。NIC可設(shè)計(jì)并構(gòu)造成連接到任何類型和形式的網(wǎng)絡(luò)104。雖然示出單個(gè)NIC552,但是,系統(tǒng)545可包括任意多個(gè)NIC552。一些實(shí)施例中,每個(gè)核505A-N可以和一個(gè)或多個(gè)單個(gè)NIC552關(guān)聯(lián)。因而,每個(gè)核505可以與專用于特定核505的一個(gè)NIC552關(guān)聯(lián)。核505A-N可包括此處所述的任意處理器。此外,可根據(jù)此處所述的任意核505的配置來配置核505A-N。另外,核505A-N可具有此處所述的任何核505功能。雖然圖5B示出七個(gè)核505A-G,但是系統(tǒng)545可包括任意多個(gè)核505。具體而言,系統(tǒng)545可包括N個(gè)核,其中N是大于零的整數(shù)。核可具有或使用被分配或指派用于該核的存儲器??砂汛鎯ζ饕暈樵摵说膶S谢虮镜卮鎯ζ鳎⑶覂H有該核訪問該存儲器。核可具有或使用共享的或指派給多個(gè)核的存儲器。該存儲器可被視為由不只一個(gè)核訪問的公共或共享存儲器。核可使用專有或公共存儲器的組合。通過讓每個(gè)核具有單獨(dú)的地址空間,消除了使用同一地址空間的情況的一些協(xié)調(diào)級別。利用單獨(dú)的地址空間,核可以對核自己的地址空間中的信息和數(shù)據(jù)進(jìn)行工作,而不用擔(dān)心和其他核沖突。每個(gè)分組引擎可以具有用于TCP和/或SSL連接的單獨(dú)存儲器池。仍然參看圖5B,以上結(jié)合圖5A描述的核的任何功能和/或?qū)嵤├梢圆渴鹪谏鲜鼋Y(jié)合圖4A和4B描述的虛擬化環(huán)境的實(shí)施例中。核505的功能不是部署成物理處理器505的形式,而是把這些功能部署在諸如客戶機(jī)102、服務(wù)器106或設(shè)備200的任何計(jì)算裝置100的虛擬化環(huán)境400內(nèi)。其他實(shí)施例中,核505的功能不是部署成設(shè)備或一個(gè)裝置的形式,而是把功能部署成任何結(jié)構(gòu)的多個(gè)設(shè)備。例如,一個(gè)設(shè)備可包括兩個(gè)或多個(gè)核,另一個(gè)設(shè)備可包括兩個(gè)或多個(gè)核。例如,多核系統(tǒng)可包括計(jì)算裝置的集群、服務(wù)器群或計(jì)算裝置網(wǎng)絡(luò)。一些實(shí)施例中,核505的功能不是部署成核的形式,而是把功能部署在多個(gè)處理器上,例如部署多個(gè)單核處理器上。一個(gè)實(shí)施例中,核505可以為任何形式或類型的處理器。一些實(shí)施例中,核的功能可以基本類似此處所述的任何處理器或中央處理單元。一些實(shí)施例中,核505可包括此處所述的任何處理器的任何部分。雖然圖5A示出7個(gè)核,但是,設(shè)備200內(nèi)可以有N個(gè)核,其中N是大于1的整數(shù)。一些實(shí)施例中,核505可以安裝在公用設(shè)備200內(nèi),其他實(shí)施例中,核505可以安裝在彼此通信連接的一個(gè)或多個(gè)設(shè)備200內(nèi)。一些實(shí)施例中,核505包括圖形處理軟件,而其他實(shí)施例中,核505提供通用處理能力。核505可彼此物理靠近地安裝和/或可彼此通信連接??梢杂靡晕锢矸绞胶?或通信方式耦合到核的任何類型和形式的總線或子系統(tǒng)連接核,以向/從核發(fā)送數(shù)據(jù)或在核之間傳輸數(shù)據(jù)。每個(gè)核505可包括和其他核通信的軟件,一些實(shí)施例中,核管理器(未示出)可有助于每個(gè)核505之間的通信。一些實(shí)施例中,內(nèi)核可提供核管理。核可以使用多種接口機(jī)制彼此接口或通信。一些實(shí)施例中,可以使用核到核的消息通信來在核之間通信,比如,第一核通過連接到核的總線或子系統(tǒng)向第二核發(fā)送消息或數(shù)據(jù)。一些實(shí)施例中,核可通過任何種類或形式的共享存儲器接口通信。一個(gè)實(shí)施例中,所有核中可以存在一個(gè)或多個(gè)共享的存儲器單元。一些實(shí)施例中,每個(gè)核可以具有和每個(gè)其他核共享的單獨(dú)存儲器單元。例如,第一核可具有與第二核的第一共享存儲器,以及與第三核的第二共享存儲器。一些實(shí)施例中,核可通過任何類型的編程或API來通信,例如經(jīng)由內(nèi)核的函數(shù)調(diào)用。一些實(shí)施例中,操作系統(tǒng)可識別并支持多核裝置,并提供用于核間通信的接口和API。流分布器550可以是任何應(yīng)用、程序、庫、腳本、任務(wù)、服務(wù)、進(jìn)程或在任何類型或38形式的硬件上執(zhí)行的任何類型和形式的可執(zhí)行指令。一些實(shí)施例中,流分布器550可以是用于執(zhí)行此處所述任何操作和功能的任何電路設(shè)計(jì)或結(jié)構(gòu)。一些實(shí)施例中,流分布器分布、轉(zhuǎn)發(fā)、路由、控制和/或管理多個(gè)核505上的數(shù)據(jù)分布和/或運(yùn)行在核上的分組引擎或VIP。一些實(shí)施例中,可將流分布器550稱為接口主設(shè)備(interfacemaster)。一個(gè)實(shí)施例中,流分布器550包括運(yùn)行在設(shè)備200的核或處理器上的一組可執(zhí)行指令。又一個(gè)實(shí)施例中,流分布器550包括在與設(shè)備200通信的計(jì)算機(jī)器上執(zhí)行的一組可執(zhí)行指令。一些實(shí)施例中,流分布器550包括在如固件的NIC上執(zhí)行的一組可執(zhí)行指令。其他實(shí)施例,流分布器550包括用于把數(shù)據(jù)分組分布在核或處理器上的軟件和硬件的任何組合。一個(gè)實(shí)施例中,流分布器550在至少一個(gè)核505A-N上執(zhí)行,而在其他實(shí)施例中,分配給每個(gè)核505A-N的單獨(dú)的流分布器550在相關(guān)聯(lián)的核505A-N上執(zhí)行。流分布器可使用任何類型和形式的統(tǒng)計(jì)或概率算法或決策來平衡多個(gè)核上的流??梢园讶鏝IC的設(shè)備硬件或內(nèi)核設(shè)計(jì)或構(gòu)造成支持NIC和/或核上的順序操作。系統(tǒng)545包括一個(gè)或多個(gè)流分布器550的實(shí)施例中,每個(gè)流分布器550可以和處理器505或分組引擎548關(guān)聯(lián)。流分布器550可包括允許每個(gè)流分布器550和在系統(tǒng)545內(nèi)執(zhí)行的其他流分布器550通信的接口機(jī)制。一個(gè)實(shí)例中,一個(gè)或多個(gè)流分布器550可通過彼此通信確定如何平衡負(fù)載。該過程的操作可以基本和上述過程類似,即把投票提交給仲裁器,然后仲裁器決定哪個(gè)流分布器550應(yīng)該接收負(fù)載。其他實(shí)施例中,第一流分布器550'可識別所關(guān)聯(lián)的核上的負(fù)載并基于下列標(biāo)準(zhǔn)中的任一個(gè)確定是否把第一數(shù)據(jù)分組轉(zhuǎn)發(fā)給所關(guān)聯(lián)的核所關(guān)聯(lián)的核上的負(fù)載大于預(yù)定閾值;所關(guān)聯(lián)的核上的負(fù)載小于預(yù)定閾值;所關(guān)聯(lián)的核上的負(fù)載小于其他核上的負(fù)載;或者可以用于部分基于處理器上的負(fù)載量來確定將數(shù)據(jù)分組轉(zhuǎn)發(fā)到何處的任何其他度量。流分布器550可以根據(jù)如此處所述的分布、計(jì)算或負(fù)載平衡方法而把網(wǎng)絡(luò)業(yè)務(wù)分布在核505上。一個(gè)實(shí)施例中,流分布器可基于功能并行機(jī)制分布方法550、數(shù)據(jù)并行機(jī)制負(fù)載分布方法M0、基于流的數(shù)據(jù)并行機(jī)制分布方法520或這些分布方法的任意組合或用于把負(fù)載分布在多個(gè)處理器上的任何負(fù)載平衡方法來分布網(wǎng)絡(luò)業(yè)務(wù)。因而,流分布器550可通過接收數(shù)據(jù)分組并根據(jù)正在運(yùn)行的負(fù)載平衡或分布方案把數(shù)據(jù)分組分布在處理器上而用作負(fù)載分布器。一個(gè)實(shí)施例中,流分布器550可包括用于確定如何相應(yīng)地分布分組、工作或負(fù)載的一個(gè)或多個(gè)操作、函數(shù)或邏輯。另一個(gè)實(shí)施例中,流分布器550可包括可識別與數(shù)據(jù)分組關(guān)聯(lián)的源地址和目標(biāo)地址并相應(yīng)地分布分組的一個(gè)或多個(gè)子操作、函數(shù)或邏輯。一些實(shí)施例中,流分布器550可包括接收側(cè)擴(kuò)展(RSS)網(wǎng)絡(luò)驅(qū)動(dòng)器模塊560或把數(shù)據(jù)分組分布在一個(gè)或多個(gè)核505上的任何類型和形式的可執(zhí)行指令。RSS模塊560可以包括硬件和軟件的任意組合。一些實(shí)施例中,RSS模塊560和流分布器550協(xié)同工作以把數(shù)據(jù)分組分布在核505A-N或多處理器網(wǎng)絡(luò)中的多個(gè)處理器上。一些實(shí)施例中,RSS模塊560可在OTC552中執(zhí)行,其他實(shí)施例中,可在任何一個(gè)核505上執(zhí)行。一些實(shí)施例中,RSS模塊560使用微軟接收側(cè)擴(kuò)展(RSQ方法。一個(gè)實(shí)施例中,RSS^Ι^ηΤΓΜΝ^ζ^(MicrosoftScalableNetworkinginitativetechnology),其使得系統(tǒng)中的多個(gè)處理器上的接收處理是平衡的,同時(shí)保持?jǐn)?shù)據(jù)的順序傳送。RSS可使用任何類型或形式的哈希校驗(yàn)方法來確定用于處理網(wǎng)絡(luò)分組的核或處理器。RSS模塊560可應(yīng)用任何類型或形式的哈希函數(shù),如Toeplitz哈希函數(shù)。哈希函數(shù)可應(yīng)用到哈希類型值或者任何值序列。哈希函數(shù)可以是任意安全級別的安全哈?;蛘呤且云渌绞郊用堋9:瘮?shù)可使用哈希關(guān)鍵字。關(guān)鍵字的大小取決于哈希函數(shù)。對于Toeplitz哈希,用于IPv6的哈希關(guān)鍵字大小為40字節(jié),用于IPv4的哈希關(guān)鍵字大小為16字節(jié)??梢曰谝粋€(gè)或多個(gè)標(biāo)準(zhǔn)或設(shè)計(jì)目標(biāo)設(shè)計(jì)或構(gòu)造哈希函數(shù)。一些實(shí)施例中,可使用為不同的哈希輸入和不同哈希類型提供均勻分布的哈希結(jié)果的哈希函數(shù),所述不同哈希輸入和不同哈希類型包括TCP/IPv4、TCP/IPv6、IVv4和IPv6頭部。一些實(shí)施例中,可使用存在少量桶時(shí)(例如2個(gè)或4個(gè))提供均勻分布的哈希結(jié)果的哈希函數(shù)。一些實(shí)施例中,可使用存在大量桶時(shí)(例如64個(gè)桶)提供隨機(jī)分布的哈希結(jié)果的哈希函數(shù)。在一些實(shí)施例中,基于計(jì)算或資源使用級別來確定哈希函數(shù)。在一些實(shí)施例中,基于用硬件實(shí)現(xiàn)哈希的難易度來確定哈希函數(shù)。在一些實(shí)施例中,基于用遠(yuǎn)程惡意主機(jī)發(fā)送全部哈希到同一桶中的分組的難易度來確定哈希函數(shù)。RSS可從任意類型和形式的輸入來產(chǎn)生哈希,例如作為一系列值。該系列值可包括網(wǎng)絡(luò)分組的任何部分,如網(wǎng)絡(luò)分組的任何頭部、域或載荷或其一部分。一些實(shí)施例中,可把哈希輸入稱為哈希類型,哈希輸入可包括與網(wǎng)絡(luò)分組或數(shù)據(jù)流關(guān)聯(lián)的任何信息元組,例如下面的類型包括至少兩個(gè)IP地址和兩個(gè)端口的四元組、包括任意四組值的四元組、六元組、二元組和或任何其他數(shù)值或值序列。以下是可由RSS使用的哈希類型示例-源TCP端口、源IPv4地址、目標(biāo)TCP端口和目標(biāo)IPv4地址的四元組;這是唯一需要支持的哈希類型。-源TCP端口、源IPv6地址、目標(biāo)TCP端口和目標(biāo)IPv6地址的四元組;-源IPv4地址和目標(biāo)IPv4地址的二元組;-源IPv6地址和目標(biāo)IPv6地址的二元組;-源IPv6地址和目標(biāo)IPv6地址的二元組,包括對解析IPv6擴(kuò)展頭部的支持。哈希結(jié)果或其任何部分可用于識別用于分布網(wǎng)絡(luò)分組的核或?qū)嶓w,如分組引擎或Vipo一些實(shí)施例中,可向哈希結(jié)果應(yīng)用一個(gè)或者多個(gè)哈希位或掩碼。哈希位或掩碼可以是任何位數(shù)或字節(jié)數(shù)。NIC可支持任意位,例如7位。網(wǎng)絡(luò)堆棧可在初始化時(shí)設(shè)定使用的實(shí)際位數(shù)。位數(shù)介于1和7之間,包括端值。可通過任意類型和形式的表用哈希結(jié)果來識別核或?qū)嶓w,例如通過桶表(buckettable)或間接表(indrectiontable)。一些實(shí)施例中,用哈希結(jié)果的位數(shù)來索引表。哈希掩碼的范圍可有效地限定間接表的大小。哈希結(jié)果的任何部分或哈希結(jié)果自身可用于索引間接表。表中的值可識別任何核或處理器,例如通過核或處理器標(biāo)識符來識別。一些實(shí)施例中,表中標(biāo)識多核系統(tǒng)的所有核。其他實(shí)施例中,表中標(biāo)識多核系統(tǒng)的核的端口。間接表可包括任意多個(gè)桶,例如2到1個(gè)桶,可以用哈希掩碼索引這些桶。每個(gè)桶可包括標(biāo)識核或處理器的索引值范圍。一些實(shí)施例中,流控制器和/或RSS模塊可通過改變間接表來重新平衡網(wǎng)絡(luò)負(fù)載。一些實(shí)施例中,多核系統(tǒng)575不包括RSS驅(qū)動(dòng)器或RSS模塊560。一些這樣的實(shí)施例中,軟件操控模塊(未示出)或系統(tǒng)內(nèi)RSS模塊的實(shí)施例可以和流分布器550共同操作或者作為流分布器陽0的一部分操作,以把分組引導(dǎo)到多核系統(tǒng)575中的核505。一些實(shí)施例中,流分布器550在設(shè)備200的任何模塊或程序中執(zhí)行,或者在多核系統(tǒng)575中包括的任何一個(gè)核505和任一裝置或組件上執(zhí)行。一些實(shí)施例中,流分布器550'可在第一核505A上執(zhí)行,而在其他實(shí)施例中,流分布器550"可在NIC552上執(zhí)行。其他實(shí)施例中,流分布器陽0'的示例可在多核系統(tǒng)575中包括的每個(gè)核505上執(zhí)行。該實(shí)施例中,流分布器陽0'的每個(gè)實(shí)例可和流分布器550'的其他實(shí)例通信以在核505之間來回轉(zhuǎn)發(fā)分組。存在這樣的狀況,其中,對請求分組的響應(yīng)不是由同一核處理的,例如,第一核處理請求,而第二核處理響應(yīng)。這些情況下,流分布器550'的實(shí)例可以攔截分組并把分組轉(zhuǎn)發(fā)給期望的或正確的核505,例如,流分布器550'可把響應(yīng)轉(zhuǎn)發(fā)給第一核。流分布器550'的多個(gè)實(shí)例可以在任何多個(gè)核505或核505的任何組合上執(zhí)行。流分布器可以響應(yīng)于任一個(gè)或多個(gè)規(guī)則或測量而操作。規(guī)則可標(biāo)識接收網(wǎng)絡(luò)分組、數(shù)據(jù)或數(shù)據(jù)流的核或分組處理引擎。規(guī)則可標(biāo)識和網(wǎng)絡(luò)分組有關(guān)的任何類型和形式的元組信息,例如源和目標(biāo)IP地址以及源和目標(biāo)端口的四元組?;谒邮盏钠ヅ湟?guī)則所指定的元組的分組,流分布器可把分組轉(zhuǎn)發(fā)給核或分組引擎。一些實(shí)施例中,通過共享存儲器和/或核到核的消息通信把分組轉(zhuǎn)發(fā)給核。雖然圖5B示出了在多核系統(tǒng)575中執(zhí)行的流分布器550,但是,一些實(shí)施例中,流分布器550可執(zhí)行在位于遠(yuǎn)離多核系統(tǒng)575的計(jì)算裝置或設(shè)備上。這樣的實(shí)施例中,流分布器550可以和多核系統(tǒng)575通信以接收數(shù)據(jù)分組并把分組分布在一個(gè)或多個(gè)核505上。一個(gè)實(shí)施例中,流分布器550接收以設(shè)備200為目的的數(shù)據(jù)分組,向所接收的數(shù)據(jù)分組應(yīng)用分布方案并把數(shù)據(jù)分組分布給多核系統(tǒng)575的一個(gè)或多個(gè)核505。一個(gè)實(shí)施例中,流分布器550可以被包括在路由器或其他設(shè)備中,這樣路由器可以通過改變與每個(gè)分組關(guān)聯(lián)的元數(shù)據(jù)而以特定核505為目標(biāo),從而每個(gè)分組以多核系統(tǒng)575的子節(jié)點(diǎn)為目標(biāo)。該實(shí)施例中,可用CISCO的vn-tag機(jī)制來改變或標(biāo)記具有適當(dāng)元數(shù)據(jù)的每個(gè)分組。圖5C示出包括一個(gè)或多個(gè)處理核505A-N的多核系統(tǒng)575的實(shí)施例。簡言之,一個(gè)核505可被指定為控制核505A并可用作其他核505的控制平面570。其他核可以是次級核,其工作于數(shù)據(jù)平面,而控制核提供控制平面。核505A-N共享全局高速緩存580。控制核提供控制平面,多核系統(tǒng)中的其他核形成或提供數(shù)據(jù)平面。這些核對網(wǎng)絡(luò)業(yè)務(wù)執(zhí)行數(shù)據(jù)處理功能,而控制核提供對多核系統(tǒng)的初始化、配置和控制。仍然參看圖5C,具體而言,核505A-N以及控制核505A可以是此處所述的任何處理器。此外,核505A-N以和控制核505A可以是可在圖5C所示系統(tǒng)中工作的任何處理器。另外,核505A-N可以是此處所述的任何核或核組??刂坪丝梢允呛推渌瞬煌愋偷暮嘶蛱幚砥鳌R恍?shí)施例中,控制核可操作不同的分組引擎或者具有與其他核的分組引擎配置不同的分組引擎。每個(gè)核的存儲器的任何部分可以被分配給或者用作核共享的全局高速緩存。簡而言之,每個(gè)核的每個(gè)存儲器的預(yù)定百分比或預(yù)定量可用作全局高速緩存。例如,每個(gè)核的每個(gè)存儲器的50%可用作或分配給共享全局高速緩存。也就是說,所示實(shí)施例中,除了控制平面核或核1以外的每個(gè)核的2GB可用于形成^GB的共享全局高速緩存。例如通過配置服務(wù)而配置控制平面可確定用于共享全局高速緩存的存儲量。一些實(shí)施例中,每個(gè)核可提供不同的存儲量供全局高速緩存使用。其他實(shí)施例中,任一核可以不提供任何存儲器或不使用全局高速緩存。一些實(shí)施例中,每個(gè)核可具有未分配給全局共享存儲器的本地高速緩存。每個(gè)核可把網(wǎng)絡(luò)業(yè)務(wù)的任意部分存儲在全局共享高速緩存中。每個(gè)核可檢查高速緩存來查41找請求或響應(yīng)中所使用的任何內(nèi)容。每個(gè)核可從全局共享高速緩存獲得內(nèi)容在數(shù)據(jù)流、請求或響應(yīng)中使用。全局高速緩存580可以是任意類型或形式的存儲器或存儲元件,例如此處所述的任何存儲器或存儲元件。一些實(shí)施例中,核505可訪問預(yù)定的存儲量(例如32GB或者和系統(tǒng)575相當(dāng)?shù)娜魏纹渌鎯α?。全局高速緩存580可以從預(yù)定的存儲量分配而來,同時(shí),其余的可用存儲器可在核505之間分配。其它實(shí)施例中,每個(gè)核505可具有預(yù)定的存儲量。全局高速緩存580可包括分配給每個(gè)核505的存儲量。該存儲量的單位可以為字節(jié),或者可以用分配給每個(gè)核505的存儲器百分比來測量。因而,全局高速緩存580可包括由和每個(gè)核505關(guān)聯(lián)的存儲器提供的IGB存儲器,或者可包括和每個(gè)核505關(guān)聯(lián)的存儲器的20%或一半。一些實(shí)施例,只有一部分核505提供存儲器給全局高速緩存580,而在其他實(shí)施例,全局高速緩存580可包括未分配給核505的存儲器。每個(gè)核505可使用全局高速緩存580來存儲網(wǎng)絡(luò)業(yè)務(wù)或高速緩存數(shù)據(jù)。一些實(shí)施例中,核的分組引擎使用全局高速緩存來緩存并使用由多個(gè)分組引擎所存儲的數(shù)據(jù)。例如,圖2A的高速緩存管理器和圖2B的高速緩存功能可使用全局高速緩存來共享數(shù)據(jù)進(jìn)行加速。例如,每個(gè)分組引擎可在全局高速緩存中存儲例如HTML數(shù)據(jù)的響應(yīng)。操作于核上的任何高速緩存管理器可訪問全局高速緩存來把高速緩存響應(yīng)提供給客戶請求。一些實(shí)施例中,核505可使用全局高速緩存580來存儲端口分配表,其可用于部分基于端口確定數(shù)據(jù)流。其他實(shí)施例中,核505可使用全局高速緩存580來存儲地址查詢表或任何其他表或列表,流分布器可使用這些表來確定把到來的數(shù)據(jù)分組和發(fā)出的數(shù)據(jù)分組導(dǎo)向何處。一些實(shí)施例中,核505可以讀寫高速緩存580,而其他實(shí)施例中,核505僅從高速緩存讀或者僅向高速緩存寫。核可使用全局高速緩存來執(zhí)行核到核通信??梢园讶指咚倬彺?80劃分成各個(gè)存儲器部分,其中每個(gè)部分可專用于特定核505。一個(gè)實(shí)施例中,控制核505A可接收大量的可用高速緩存,而其他核505可接收可變的全局高速緩存580的量或者對全局高速緩存580的訪問。一些實(shí)施例中,系統(tǒng)575可包括控制核505A。雖然圖5C示出核1505A為控制核,但是控制核可以是設(shè)備200或多核系統(tǒng)中的任何一個(gè)核。此外,雖然僅描述了單個(gè)控制核,但是,系統(tǒng)575可包括一個(gè)或多個(gè)控制核,每個(gè)控制核對系統(tǒng)有某種程度的控制。一些實(shí)施例中,一個(gè)或多個(gè)控制核可以各自控制系統(tǒng)575的特定方面。例如,一個(gè)核可控制決定使用哪種分布方案,而另一個(gè)核可確定全局高速緩存580的大小。多核系統(tǒng)的控制平面可以是把一個(gè)核指定并配置成專用的管理核或者作為主核??刂破矫婧丝蓪Χ嗪讼到y(tǒng)中的多個(gè)核的操作和功能提供控制、管理和協(xié)調(diào)??刂破矫婧丝蓪Χ嗪讼到y(tǒng)中的多個(gè)核之間的系統(tǒng)的存儲器的分配和使用提供控制、管理和協(xié)調(diào),這包括初始化和配置系統(tǒng)的存儲器。一些實(shí)施例中,控制平面包括流分布器,用于基于數(shù)據(jù)流控制數(shù)據(jù)流到核的分配以及網(wǎng)絡(luò)分組到核的分配。一些實(shí)施例中,控制平面核運(yùn)行分組引擎,其他實(shí)施例中,控制平面核專用于系統(tǒng)的其他核的控制和管理。控制核505A可對其他核505進(jìn)行某種級別的控制,例如,確定把多少存儲器分配給每個(gè)核505,或者確定應(yīng)該指派哪個(gè)核來處理特定功能或硬件/軟件實(shí)體。一些實(shí)施例中,控制核505A可以對控制平面570中的這些核505進(jìn)行控制。因而,控制平面570之外可存在不受控制核505A控制的處理器。確定控制平面570的邊界可包括由控制核505A或系統(tǒng)575中執(zhí)行的代理維護(hù)由控制核505A控制的核的列表??刂坪?05A可控制以下的任一個(gè)核初始化、確定核何時(shí)不可用、一個(gè)核出故障時(shí)把負(fù)載重新分配給其他核505、決定實(shí)現(xiàn)哪個(gè)分布方案、決定哪個(gè)核應(yīng)該接收網(wǎng)絡(luò)業(yè)務(wù)、決定應(yīng)該把多少高速緩存分配給每個(gè)核、確定是否把特定功能或元件分配給特定核、確定是否允許核彼此通信、確定全局高速緩存580的大小以及對系統(tǒng)575內(nèi)的核的功能、配置或操作的任何其他確定。F、ffl〒X寸雕騰甬信傭連機(jī)誠圖6是管理用于異步消息通信的連接的系統(tǒng)630的一個(gè)實(shí)施例。一個(gè)或多個(gè)客戶機(jī)102A-102N(下文統(tǒng)稱為客戶機(jī)102)通過網(wǎng)絡(luò)104和中間設(shè)備632通信,中間設(shè)備632通過網(wǎng)絡(luò)104與一個(gè)或多個(gè)服務(wù)器106A-106N(下文統(tǒng)稱為服務(wù)器106)通信。一些實(shí)施例中,中間設(shè)備632執(zhí)行負(fù)載平衡虛擬服務(wù)器(Vserver)636、推送虛擬服務(wù)器(Vserver)635和連接標(biāo)記器638。一些實(shí)施例中,中間設(shè)備632上可存儲連接表640。繼續(xù)參考圖6,更詳細(xì)地,系統(tǒng)630可包括一個(gè)或多個(gè)客戶機(jī)102,其中客戶機(jī)102可以是任何計(jì)算機(jī)、移動(dòng)設(shè)備、計(jì)算裝置或計(jì)算機(jī)器。一些實(shí)施例中,客戶機(jī)102可以是此處所述的任何客戶機(jī)。雖然圖6描述了多個(gè)客戶機(jī)102,但是,一些實(shí)施例中,系統(tǒng)630可包括單個(gè)客戶機(jī)102??蛻魴C(jī)102可以通過任何類型的網(wǎng)絡(luò)104進(jìn)行通信。一些實(shí)施例中,客戶機(jī)102可通過此處描述的任何類型的網(wǎng)絡(luò)104通信。系統(tǒng)630還可包括一個(gè)或多個(gè)服務(wù)器106,其中服務(wù)器106可以是任何計(jì)算機(jī)、服務(wù)器、計(jì)算裝置或計(jì)算機(jī)器。一些實(shí)施例中,服務(wù)器106可以是此處所述的任何服務(wù)器106。雖然圖6描述了多個(gè)服務(wù)器106,但是,一些實(shí)施例中,系統(tǒng)630可包括單個(gè)服務(wù)器106。一些實(shí)施例中,服務(wù)器106可通過任何類型的網(wǎng)絡(luò)104通信,而其他實(shí)施例中,服務(wù)器106可通過此處所述的任何類型的網(wǎng)絡(luò)104通信。服務(wù)器106可通過客戶機(jī)102與設(shè)備632通信的同一網(wǎng)絡(luò)104進(jìn)行通信,而其他實(shí)施例中,服務(wù)器106和客戶機(jī)102通過不同網(wǎng)絡(luò)104進(jìn)行通信。仍在其他實(shí)施例中,客戶機(jī)102用于和設(shè)備632通信的網(wǎng)絡(luò)104是服務(wù)器106用于和設(shè)備632通信的網(wǎng)絡(luò)104的子網(wǎng)。其他實(shí)施例中,服務(wù)器106用于和設(shè)備632通信的網(wǎng)絡(luò)可以是客戶機(jī)102用于和設(shè)備632通信的網(wǎng)絡(luò)104的子網(wǎng)。一些實(shí)施例中,至少一個(gè)服務(wù)器106是web服務(wù)器106B。web服務(wù)器106B可以是單個(gè)的web服務(wù)器106B,或者,其他實(shí)施例中,可以是包括多于一個(gè)web服務(wù)器106B的服務(wù)器群。一些實(shí)施例中,web服務(wù)器106B可以是應(yīng)用服務(wù)器或是包括一個(gè)或多個(gè)應(yīng)用服務(wù)器的服務(wù)器群。其他實(shí)施例,web服務(wù)器106B可包括如此處所述的應(yīng)用傳送系統(tǒng)的應(yīng)用傳送系統(tǒng)190的任意部分或?qū)嵤├?。一些?shí)施例中,web服務(wù)器106B可以包括任何類型和形式的商用現(xiàn)貨供應(yīng)的、專有的、定制的或者開源軟件或任何用于提供網(wǎng)站、服務(wù)網(wǎng)頁或提供web服務(wù)的任何可執(zhí)行指令集。一些實(shí)施例中,至少一個(gè)服務(wù)器106是通知服務(wù)器106A。一些實(shí)施例中,通知服務(wù)器106A可以是單個(gè)的通知服務(wù)器106A,或者,其他實(shí)施例中,可以是包括不只一個(gè)通知服務(wù)器106A的服務(wù)器群。一個(gè)實(shí)施例中,通知服務(wù)器106A可執(zhí)行產(chǎn)生任何類型和形式的通知的應(yīng)用、程序、庫、服務(wù)、進(jìn)程、任務(wù)或線程。一些實(shí)施例中,通知服務(wù)器確定是否對數(shù)據(jù)進(jìn)行了修改,如包括下面數(shù)據(jù)的數(shù)據(jù)網(wǎng)頁、對象、表項(xiàng)目、存儲器地址的預(yù)定范圍和動(dòng)態(tài)產(chǎn)生的對象和數(shù)據(jù)庫。其他實(shí)施例中,通知服務(wù)器確定客戶機(jī)102是否有過期數(shù)據(jù)、改變了的數(shù)據(jù)或者應(yīng)該被更新的數(shù)據(jù)。通知服務(wù)器可以通過任何類型和形式的連接(例如,傳輸層連接或應(yīng)用層會話)把有關(guān)數(shù)據(jù)狀態(tài)、更新或變化的任何類型和形式的通知傳送給一個(gè)或多個(gè)客戶機(jī)。通知服務(wù)器可以使用任何類型和形式的協(xié)議來傳輸通知。一些實(shí)施例中,通知服務(wù)器106A可以包括在web服務(wù)器106B中或者是web服務(wù)器106B的一部分,反之亦然。又一個(gè)實(shí)施例中,通知服務(wù)器和/或web服務(wù)器可以被包括在群38中或者應(yīng)用傳送系統(tǒng)190中。一些實(shí)施例中,通知服務(wù)器可以使用任何類型和形式的基于HTTP的服務(wù)器推送機(jī)制、協(xié)議或模型。一些實(shí)施例中,通知服務(wù)器使用Comet流式響應(yīng)、XMPP(可擴(kuò)展消息通信和表示協(xié)議)、通過同步HTTP的雙向流(BOSH)和BOSHXMPP實(shí)現(xiàn)的任何一個(gè)或多個(gè)具體變型來操作。術(shù)語Comet指web應(yīng)用模型,其中,長時(shí)間保持的HTTP請求允許web服務(wù)器把數(shù)據(jù)推送給瀏覽器。BOSH是傳輸協(xié)議,其使用多個(gè)同步HTTP請求/響應(yīng)對來模擬兩個(gè)實(shí)體(如客戶機(jī)和服務(wù)器)的之間的雙向流,而無需使用輪詢(polling)或異步塊傳送(chunking)。使用通過BOSH的XMPP的實(shí)現(xiàn)方式使用BOSH來傳輸XMPP節(jié)(stanza)。通知服務(wù)器可支持使用一種或多個(gè)非HTTP協(xié)議的服務(wù)器推送機(jī)制和實(shí)現(xiàn),例如IMAP(因特網(wǎng)消息訪問協(xié)議)。在客戶機(jī)102不通過中間設(shè)備632或客戶機(jī)代理與web服務(wù)器106A交互時(shí),客戶機(jī)102請求到服務(wù)器106的連接并建立連接,如TCP/IP連接??蛻魴C(jī)102和服務(wù)器106可以交換一些請求/響應(yīng),在交互結(jié)束時(shí),服務(wù)器106可通過認(rèn)證cookie或其他之前建立的cookie來識別客戶機(jī)102。然后,服務(wù)器106可保持連接為打開的,并在有數(shù)據(jù)可寫入連接時(shí)寫入連接。設(shè)備632可以是任何中間機(jī)器、服務(wù)器、設(shè)備、裝置、代理服務(wù)器106、代理客戶機(jī)102、代理設(shè)備或其他計(jì)算機(jī)器。一些實(shí)施例中,中間設(shè)備632是任何設(shè)備632,其他實(shí)施例中,中間設(shè)備632是此處所述的任何設(shè)備200。仍在其他實(shí)施例中,中間設(shè)備可以是此處所述的任何計(jì)算機(jī)器100。設(shè)備632可通過一個(gè)或多個(gè)網(wǎng)絡(luò)104和遠(yuǎn)程客戶機(jī)102、服務(wù)器106、設(shè)備、移動(dòng)裝置或其他計(jì)算機(jī)器通信。一些實(shí)施例中,設(shè)備632可以通過第一網(wǎng)絡(luò)和一組客戶機(jī)102通信,并通過第二網(wǎng)絡(luò)和一組服務(wù)器106通信。這些實(shí)施例中,第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)可以是兩種不同網(wǎng)絡(luò)。例如,第一網(wǎng)絡(luò)可以是公網(wǎng),而第二網(wǎng)絡(luò)可以是專用網(wǎng)絡(luò)。負(fù)載平衡vserver636在中間設(shè)備632上執(zhí)行。一些實(shí)施例中,負(fù)載平衡vserver636可以是此處所述的vServer275的任何實(shí)施例。其他實(shí)施例中,負(fù)載平衡vserver636可以是可對網(wǎng)絡(luò)業(yè)務(wù)或者施加在一個(gè)或多個(gè)服務(wù)器106或服務(wù)器群38上的負(fù)載量進(jìn)行負(fù)載平衡的任何虛擬機(jī)、客戶機(jī)、代理或程序。一些實(shí)施例中,負(fù)載平衡vserver636可與由設(shè)備632存儲或以其他方式執(zhí)行的任何下列元件進(jìn)行通信推送vserver635、連接標(biāo)記器638和連接表640。一些實(shí)施例中,負(fù)載平衡vserver636可以用于通過跟蹤連接閑置的時(shí)間量或通過連接傳輸異步消息后的時(shí)間量來使客戶機(jī)連接到期。一些實(shí)施例中,系統(tǒng)630可包括客戶機(jī)側(cè)負(fù)載平衡vserver636和服務(wù)器側(cè)負(fù)載平衡636‘,其中客戶機(jī)側(cè)負(fù)載平衡vserver636管理客戶機(jī)側(cè)連接,服務(wù)器側(cè)負(fù)載平衡636'管理服務(wù)器側(cè)連接。一個(gè)實(shí)施例中,可以禁用與客戶機(jī)102相接口并管理客戶機(jī)連接的客戶機(jī)側(cè)負(fù)載平衡vserver636,從而破壞、到期或者除去所有客戶機(jī)連接就像對待與這些連接相關(guān)聯(lián)的任何連接標(biāo)記一樣。服務(wù)器106試圖通過一個(gè)到期的客戶機(jī)連接發(fā)送消息時(shí),設(shè)備632會返回錯(cuò)誤消息給請求的服務(wù)44器106。一些實(shí)施例中,中間設(shè)備632向服務(wù)器106發(fā)送消息指示連接到期,而在其他實(shí)施例中,服務(wù)器106在試圖通過連接推送消息時(shí)接到錯(cuò)誤消息后就可感知到該連接已經(jīng)到期了。一些實(shí)施例中,負(fù)載平衡vserver636可以與客戶機(jī)102相接口,該客戶機(jī)102請求連接到和中間設(shè)備632通信的服務(wù)器106。一個(gè)實(shí)施例中,負(fù)載平衡vserver636可通過首先建立和客戶機(jī)102的連接而有助于在客戶機(jī)102和服務(wù)器106之間建立的初始通信連接。建立和客戶機(jī)102的連接后,負(fù)載平衡vserver636可以選擇服務(wù)器106,建立和服務(wù)器106的連接并且把客戶機(jī)連接鏈接到服務(wù)器連接。一些實(shí)施例中,Werver從設(shè)備200維護(hù)的連接池中獲得服務(wù)器連接。因而,一些實(shí)施例中,負(fù)載平衡vserver636代理客戶機(jī)102和服務(wù)器106之間的通信連接的建立。一個(gè)實(shí)施例中,中間設(shè)備632可以執(zhí)行推送vserver635,推送vserver635可以從服務(wù)器106接收發(fā)布(post)請求、發(fā)送異步消息給客戶機(jī)102并執(zhí)行消息通信協(xié)議。一些實(shí)施例中,推送vserver635可以是設(shè)計(jì)并構(gòu)造用于執(zhí)行此處所述操作的任何vServer275或任何可執(zhí)行指令。一個(gè)實(shí)施例中,推送vserver635可以執(zhí)行圖8A所示的消息通信協(xié)議。其他實(shí)施例中,推送vserver635可以執(zhí)行用于從服務(wù)器106向客戶機(jī)102傳輸異步消息的任何消息通信協(xié)議。一些實(shí)施例中,推送vserver635向通知服務(wù)器106A公開消息通信協(xié)議。其他實(shí)施例中,推送vserver635向與中間設(shè)備632通信的一個(gè)或多個(gè)服務(wù)器106公開消息通信協(xié)議。向服務(wù)器106公開消息通信協(xié)議可包括從服務(wù)器接收帶外消息并把這些消息轉(zhuǎn)發(fā)給適當(dāng)?shù)目蛻魴C(jī)102。一個(gè)實(shí)施例中,帶外消息是在先前建立的服務(wù)器106和客戶機(jī)102之間的連接之外傳輸?shù)南ⅰ@?,客戶機(jī)A和服務(wù)器A建立連接時(shí),在客戶機(jī)A和服務(wù)器A之間形成連接。一旦服務(wù)器A和客戶機(jī)A之間的初始連接到期,服務(wù)器A傳輸給客戶機(jī)A的任何消息,或通過和初始連接不同的第二連接從服務(wù)器A向客戶機(jī)A傳輸?shù)娜魏蜗⑹菐庀ⅲ@是由于這些消息通過與客戶機(jī)A和服務(wù)器A之間的初始連接不同的連接傳輸。一些實(shí)施例中,中間設(shè)備632執(zhí)行連接標(biāo)記器638。連接標(biāo)記器、連接標(biāo)記組件或連接標(biāo)記客戶機(jī)638可包括軟件、硬件或軟件和硬件的任意組合。連接標(biāo)記器638可包括應(yīng)用、程序、服務(wù)、進(jìn)程、任務(wù)、線程或任何可執(zhí)行指令集。連接標(biāo)記器638可包括用于提供、實(shí)現(xiàn)或執(zhí)行任何類型和形式的連接標(biāo)記協(xié)議的任何函數(shù)、邏輯或操作。一些實(shí)施例中,連接標(biāo)記器638執(zhí)行或以其方式完成連接標(biāo)記協(xié)議,如用于標(biāo)記網(wǎng)絡(luò)連接的任何協(xié)議。一些實(shí)施例中,連接標(biāo)記協(xié)議可以是此處所述的任何連接標(biāo)記協(xié)議。一些實(shí)施例中,連接標(biāo)記器638可以被包括在推送vserver635中。其他實(shí)施例中,連接標(biāo)記器638可以和連接表640通信,從而連接標(biāo)記器638把句柄及其相關(guān)的應(yīng)用上下文保存在連接表640中。一個(gè)實(shí)施例中,連接標(biāo)記器638可通過把句柄插入頭部而修改請求分組的頭部。其他實(shí)施例中,連接標(biāo)記器638可響應(yīng)于推送vserver635發(fā)出的請求而從連接表640中檢索連接數(shù)據(jù)。一些實(shí)施例中,作為連接標(biāo)記協(xié)議的一部分,中間設(shè)備632把頭部插入客戶機(jī)請求并把修改后的請求轉(zhuǎn)發(fā)給服務(wù)器106。把句柄插入客戶機(jī)請求的頭部可以由中間設(shè)備632、連接標(biāo)記器638或者推送vserver635來執(zhí)行。其他實(shí)施例中,由中間設(shè)備632把標(biāo)記或句柄插入頭部,以提示服務(wù)器106有標(biāo)記連接的選項(xiàng)而不是讓連接繼續(xù)存在。一些實(shí)施例中,這個(gè)提示可以包括把如“X-NS-Push-Label,”的標(biāo)記插入到客戶機(jī)請求的HTTP頭部。修改請求的頭部后,中間設(shè)備632接著把修改后的請求發(fā)送給服務(wù)器106,或者后端web服務(wù)器106B。一些實(shí)施例中,標(biāo)記可指示或以其他方式命令服務(wù)器106執(zhí)行連接標(biāo)記協(xié)議,并進(jìn)一步推遲對客戶機(jī)請求的響應(yīng)。標(biāo)記可包括句柄或者其他連接標(biāo)識符。一些實(shí)施例中,連接表640是中間設(shè)備632上的存儲倉庫,其存儲連接信息。連接表640可以是如下的任一個(gè)表格、列表、陣列、配置文件、文本文件、多個(gè)文本或配置文件或者可存儲有關(guān)連接的信息的任何其他數(shù)據(jù)結(jié)構(gòu)。一些實(shí)施例中,連接信息可包括句柄以及分配給該句柄或與該句柄關(guān)聯(lián)的應(yīng)用上下文。句柄可以是代表應(yīng)用上下文的唯一標(biāo)識符,或者是隨機(jī)選擇的序列號。一些實(shí)施例中,應(yīng)用上下文可包括下列任一信息客戶機(jī)102的名稱、客戶機(jī)102的IP地址、用戶名、用戶驗(yàn)證信息、服務(wù)器106的名稱、服務(wù)器106的IP地址、客戶機(jī)102上寄載的用戶會話的IP地址或主機(jī)名、服務(wù)器106上寄載的用戶會話的IP地址或主機(jī)名、服務(wù)器106或客戶機(jī)102上寄載的應(yīng)用的IP地址或主機(jī)名以及代表客戶機(jī)102和服務(wù)器106之間的連接的任何其他信息。一些實(shí)施例中,句柄可以是中間設(shè)備的句柄,有時(shí)稱為NeUcaler句柄或NS句柄。任何服務(wù)器可以把句柄看作是不透明的。一些實(shí)施例中,句柄對連接四元組進(jìn)行編碼。其他實(shí)施例中,句柄把另外的熵(entropy)加入經(jīng)編碼的元組,以使其更難以猜到,從而更安全。仍在其他實(shí)施例中,句柄可以是設(shè)備200產(chǎn)生的唯一標(biāo)識符,或者是中間設(shè)備632產(chǎn)生的標(biāo)識符。一些實(shí)施例中,句柄可以是中間設(shè)備632、與中間設(shè)備632通信的客戶機(jī)、與中間設(shè)備632通信服務(wù)器106或與中間設(shè)備632通信的任何其他設(shè)備200或計(jì)算機(jī)100上執(zhí)行的隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)。一些實(shí)施例中,句柄可包括識別下列任一信息的嵌入信息客戶機(jī)102、服務(wù)器106、中間設(shè)備上的端口、中間設(shè)備、配置信息或者有關(guān)客戶機(jī)102、網(wǎng)絡(luò)104、服務(wù)器106或中間設(shè)備632的信息。其它實(shí)施例中,句柄可對有關(guān)客戶機(jī)102的用戶的信息進(jìn)行編碼。該經(jīng)編碼的信息可包括客戶驗(yàn)證信息、設(shè)備驗(yàn)證信息或者有關(guān)客戶機(jī)102的用戶、客戶機(jī)102、服務(wù)器106、網(wǎng)絡(luò)104或中間設(shè)備632的任何其他類型的敏感信息。仍在其他實(shí)施例中,句柄可包括端口號標(biāo)識符,其標(biāo)識中間設(shè)備632上的端口,客戶機(jī)102使用該端口與中間設(shè)備632通信??墒褂萌魏晤愋秃托问降耐?fù)鋪硪钥蛻魴C(jī)代理和/或設(shè)備的形式部署中間設(shè)備。一些實(shí)施例中,可在同一服務(wù)器群前面使用多個(gè)設(shè)備,來擴(kuò)展連接處理能力。一些實(shí)施例中,用于處理來自lbWerver的請求的web服務(wù)器組不一定與把更新推送給客戶機(jī)的通知服務(wù)器組相同。使用此處所述的中間設(shè)備632的實(shí)施例,中間設(shè)備632可以支持、擴(kuò)展并處理成千上萬的連接。中間設(shè)備632的具體特征可取決于寄載中間設(shè)備的裝置的操作特征、裝置的配置和/或多個(gè)中間設(shè)備的部署。例如,設(shè)備200可作為中間設(shè)備632,這樣,設(shè)備專用做中間設(shè)備632。其他實(shí)施例中,設(shè)備200可作為中間設(shè)備632,這樣,設(shè)備200可執(zhí)行除了作為中間設(shè)備632以外的其他任務(wù)。對于使用多個(gè)設(shè)備或中間設(shè)備進(jìn)行擴(kuò)展,可以使用第一雙層設(shè)備配置技術(shù),其中,第一層設(shè)備可配置成允許到第二層設(shè)備的無會話連接哈希負(fù)載平衡,并把第二層設(shè)備配置為用于執(zhí)行推送處理。該實(shí)施例中,中間設(shè)備632可包括不只一個(gè)設(shè)備200,這樣,第一組設(shè)備用于對在服務(wù)器106和第一組設(shè)備之間建立的無會話連接進(jìn)行負(fù)載平衡,第二組設(shè)備用于對在客戶機(jī)102和第二組設(shè)備之間建立的基于會話的連接進(jìn)行負(fù)載平衡。—些實(shí)施例中,另一個(gè)第二層設(shè)備200可配置成和第一組設(shè)備和第二組設(shè)備相接口,以執(zhí)行消息推送協(xié)議,來把第一組設(shè)備從服務(wù)器106接收到的消息推送給第二組設(shè)備,第二組設(shè)備要把消息推送給客戶機(jī)102。其他實(shí)施例可包括上述配置的任何變型,例如第一組設(shè)備可包括一個(gè)或多個(gè)設(shè)備;第二組設(shè)備可包括一個(gè)或多個(gè)設(shè)備;執(zhí)行消息推送協(xié)議的第二層設(shè)備可以和第一組設(shè)備或第二組設(shè)備結(jié)合。因而,一些實(shí)施例中,中間設(shè)備可包括不只一個(gè)設(shè)備200或計(jì)算裝置100、不只一組設(shè)備200或計(jì)算裝置100或不只一層設(shè)備200或計(jì)算裝置100。在中間設(shè)備包括不只一個(gè)設(shè)備200或裝置100的實(shí)施例中,中間設(shè)備632可使用協(xié)議來分布連接。一些實(shí)施例中,該協(xié)議可以是可由路由器、其他設(shè)備200或裝置100用來把連接分布在中間設(shè)備632中包括的多個(gè)設(shè)備200或裝置100上的路由健康注入(RouteHealthInjection)、ECMP(等值多路徑)協(xié)議。一些實(shí)施例中,一個(gè)或多個(gè)全局負(fù)載平衡vServer可以在DNS請求時(shí)分布負(fù)載。一些實(shí)施例中,多個(gè)設(shè)備裝置執(zhí)行推送處理時(shí),服務(wù)器可能需要把通知(推送消息)發(fā)送給服務(wù)器從其上第一次獲知連接標(biāo)記的同一設(shè)備裝置。作為標(biāo)記協(xié)議的一部分,設(shè)備200可插入相關(guān)推送vServer的偵聽端點(diǎn)IP和端口信息,使得該任務(wù)對通知服務(wù)器更簡單。這允許同一后端服務(wù)器參與不同設(shè)備上配置的多個(gè)面向客戶機(jī)的vServer。其他實(shí)施例中,可以在設(shè)備之間共享所標(biāo)記的連接的連接標(biāo)記信息,或者,一個(gè)設(shè)備可以向另一個(gè)設(shè)備查詢該信息。圖7所示的是可以為設(shè)備632管理的每個(gè)連接以及設(shè)備632上執(zhí)行的vServer保持的推送狀態(tài)機(jī)的實(shí)施例。一些實(shí)施例中,中間設(shè)備632可通過負(fù)載平衡vServer636、推送vServer635和連接標(biāo)記器638中的任何一個(gè)來為每個(gè)連接或連接組保持所述狀態(tài)機(jī)的實(shí)施例。一個(gè)實(shí)施例中,中間設(shè)備632等待來自客戶機(jī)102的請求(狀態(tài)710),并且,輪詢請求(轉(zhuǎn)換734),或者,在接收到請求時(shí),把請求發(fā)送給服務(wù)器106(轉(zhuǎn)換724)。中間設(shè)備把請求發(fā)送給服務(wù)器106后(轉(zhuǎn)換724),中間設(shè)備然后可等待服務(wù)器響應(yīng)(狀態(tài)71。一些實(shí)施例中,服務(wù)器106可以推遲響應(yīng)(轉(zhuǎn)換726)并標(biāo)記連接,而其他實(shí)施例中,服務(wù)器106可以正常對服務(wù)器請求做出響應(yīng)(轉(zhuǎn)換72。服務(wù)器106可在等待消息(狀態(tài)720)時(shí)推遲響應(yīng)(轉(zhuǎn)換726)。因而,中間設(shè)備等待消息(狀態(tài)720),直到中間設(shè)備接收到被推送的消息(轉(zhuǎn)換728),或者直到消息傳輸結(jié)束(轉(zhuǎn)換736)。一些實(shí)施例中,中間設(shè)備632可通過把預(yù)定塊加入到響應(yīng)流(轉(zhuǎn)換730)中而對在中間設(shè)備把組塊的異步消息發(fā)送給客戶機(jī)102時(shí)出現(xiàn)的閑置連接做出響應(yīng),從而連接保持打開,中間設(shè)備632回去等待異步消息(狀態(tài)720)。其他實(shí)施例中,中間設(shè)備632可對中間設(shè)備632在通過產(chǎn)生預(yù)定的“保持有效”響應(yīng)(轉(zhuǎn)換73而接收響應(yīng)時(shí)出現(xiàn)的閑置連接做出響應(yīng),從而連接關(guān)閉,中間設(shè)備632回去等待客戶機(jī)請求(狀態(tài)710)。進(jìn)一步參考圖7,具體而言,一個(gè)實(shí)施例中,圖7所示的狀態(tài)機(jī)可以管理或支配連接的任何或所有動(dòng)作。狀態(tài)機(jī)可包括用于模仿、管理或提供此處所述任意功能的狀態(tài)、條件、轉(zhuǎn)換和動(dòng)作的任何組合。一些實(shí)施例中,推送vServer635可使用狀態(tài)機(jī)來監(jiān)控并維護(hù)客戶機(jī)102和服務(wù)器106之間的邏輯連接的狀態(tài)。一些實(shí)施例中,邏輯連接可包括客戶機(jī)102和中間設(shè)備632之間的連接以及中間設(shè)備632和服務(wù)器106之間的連接。其他實(shí)施例中,負(fù)載平衡vServer636可使用狀態(tài)機(jī)來監(jiān)控并維護(hù)客戶機(jī)102和服務(wù)器106之間的連接。仍在其他實(shí)施例中,一個(gè)或多個(gè)負(fù)載平衡vServer636和一個(gè)或多個(gè)推送服務(wù)器635可被用來監(jiān)控并維護(hù)客戶機(jī)102和服務(wù)器106之間的連接。一些實(shí)施例中,監(jiān)控并維護(hù)連接可包括監(jiān)控連接以確定連接上是否發(fā)送了數(shù)據(jù)。一些實(shí)施例中,預(yù)定時(shí)間段內(nèi)沒有在連接上發(fā)送數(shù)據(jù)時(shí)連接可變成閑置的。監(jiān)控并維護(hù)連接的其他方面可包括在連接閑置預(yù)定時(shí)間段時(shí)保持連接有效。例如,中間設(shè)備632上的vServer或者其他應(yīng)用確定在預(yù)定時(shí)間段內(nèi)第一連接上沒有傳輸數(shù)據(jù)時(shí),Server可以中止連接或者保持連接有效。一些實(shí)施例中,可以基于策略、規(guī)則或者狀態(tài)機(jī)中包括的命令或者消息、客戶機(jī)、服務(wù)器或其他vServer指定的命令而確定vServer所采取動(dòng)作的過程??梢杂晒芾韱T、客戶機(jī)、用戶、服務(wù)器配置預(yù)定時(shí)間段,或者基于環(huán)境630的特征動(dòng)態(tài)配置預(yù)定時(shí)間段,環(huán)境特征例如為平均等待時(shí)間、可用帶寬、客戶機(jī)數(shù)目、服務(wù)器數(shù)目或者其他,如啟發(fā)式方法。狀態(tài)機(jī)可包括初始狀態(tài),此時(shí),中間設(shè)備632等待客戶機(jī)102發(fā)送給服務(wù)器106的請求(狀態(tài)710)。在該狀態(tài),中間設(shè)備632和客戶機(jī)102通過網(wǎng)絡(luò)104連接。該連接可包括在中間設(shè)備632和負(fù)載平衡vserver636之間建立的連接,該負(fù)載平衡vserver636面向客戶機(jī)側(cè)網(wǎng)絡(luò)104。一些實(shí)施例中,負(fù)載平衡vserver636面向客戶機(jī)側(cè)網(wǎng)絡(luò)104,這樣,客戶機(jī)側(cè)負(fù)載平衡vserver636建立并管理在客戶機(jī)102和中間設(shè)備632之間建立的連接。一些實(shí)施例中,中間設(shè)備632可保持在該初始狀態(tài)(狀態(tài)710),直到中間設(shè)備632接收到來自客戶機(jī)102的請求?!獋€(gè)實(shí)施例中,中間設(shè)備632可保持在初始狀態(tài)(狀態(tài)710),直到輪詢請求被發(fā)出(轉(zhuǎn)換734)。發(fā)出輪詢請求后,中間設(shè)備632可從等待客戶機(jī)請求的初始狀態(tài)(狀態(tài)710)轉(zhuǎn)換到中間設(shè)備632等待來自服務(wù)器的消息的狀態(tài)(狀態(tài)720)。一些實(shí)施例中,中間設(shè)備632接收到來自客戶機(jī)102的請求時(shí),中間設(shè)備可以把句柄插入到請求的頭部。一些實(shí)施例中,連接標(biāo)記器638可以插入句柄,而其他實(shí)施例中,負(fù)載平衡vserver636可以把句柄插入請求的頭部。在把句柄插入客戶機(jī)請求的頭部之前,要確定句柄是什么。一些實(shí)施例中,可以由連接標(biāo)記器638或能夠產(chǎn)生句柄的任何其他應(yīng)用、服務(wù)或進(jìn)程來進(jìn)行該確定。一個(gè)實(shí)施例中,把句柄插入到客戶機(jī)請求的頭部中可以是連接標(biāo)記協(xié)議的一部分,例如此處所述的任何連接標(biāo)記協(xié)議的一部分。把句柄插入客戶機(jī)請求的頭部后,中間設(shè)備632可以把客戶機(jī)請求發(fā)送給服務(wù)器106(轉(zhuǎn)換724)。一些實(shí)施例中,服務(wù)器106的地址或位置可以被包括在請求的頭部中。其他實(shí)施例中,中間設(shè)備632或在中間設(shè)備632上執(zhí)行的vserver可以選擇目標(biāo)服務(wù)器106并把修改后的請求發(fā)送給該服務(wù)器106。服務(wù)器106接收到請求后,中間設(shè)備632從等待客戶機(jī)請求的初始狀態(tài)(狀態(tài)710)轉(zhuǎn)換到等待來自服務(wù)器106的響應(yīng)的狀態(tài)(狀態(tài)71。在該狀態(tài),服務(wù)器106已接收到客戶機(jī)請求。請求可能已被轉(zhuǎn)發(fā)給web服務(wù)器106B,設(shè)備或中間設(shè)備632等待服務(wù)器做出響應(yīng)。一些實(shí)施例中,中間設(shè)備632接收到服務(wù)器106推遲了對客戶機(jī)請求的響應(yīng)的通知(轉(zhuǎn)換726)時(shí),中間設(shè)備632可以從該狀態(tài)(狀態(tài)71轉(zhuǎn)換到等待服務(wù)器推送異步消息的狀態(tài)(狀態(tài)720)。服務(wù)器106推遲對客戶機(jī)請求做出響應(yīng)時(shí),服務(wù)器106可以標(biāo)記連接,之后,一些實(shí)施例中,中間設(shè)備632中斷開客戶機(jī)102和服務(wù)器106的鏈接。一些實(shí)施例中,從等待服務(wù)器響應(yīng)的狀態(tài)(狀態(tài)71轉(zhuǎn)換到等待消息(狀態(tài)720)可包括執(zhí)行連接標(biāo)記協(xié)議。其他實(shí)施例中,該轉(zhuǎn)換可包括執(zhí)行消息通信協(xié)議。其他實(shí)施例中,中間設(shè)備632接收到服務(wù)器106的響應(yīng)(轉(zhuǎn)換722)時(shí),中間設(shè)備632可以從等待服務(wù)器106做出響應(yīng)的狀態(tài)(狀態(tài)71轉(zhuǎn)換到初始狀態(tài)(狀態(tài)710)。服務(wù)器106對客戶機(jī)請求發(fā)出正常響應(yīng)(轉(zhuǎn)換72時(shí),中間設(shè)備進(jìn)入等待客戶機(jī)請求的初始狀態(tài)(狀態(tài)710)。中間設(shè)備632等待服務(wù)器推送消息的狀態(tài)(狀態(tài)720)可包括中間設(shè)備632等待服務(wù)器106發(fā)出把消息發(fā)布給客戶機(jī)102的請求。在該狀態(tài),中間設(shè)備632等待如通知服務(wù)器106A的一個(gè)或多個(gè)服務(wù)器106把異步消息推送給客戶機(jī)102。一些實(shí)施例中,發(fā)布請求包括其頭部包含句柄的被推送的異步消息。許多實(shí)施例中,該句柄是分配給服務(wù)器106和客戶機(jī)102之間的先前連接的標(biāo)記。一些實(shí)施例中,中間設(shè)備632可以把消息推送給客戶機(jī)102(轉(zhuǎn)換728),完成該動(dòng)作后,中間設(shè)備632返回到中間設(shè)備632等待來自服務(wù)器106的消息的狀態(tài)。一些實(shí)施例中,中間設(shè)備632繼續(xù)等待來自服務(wù)器106的消息(狀態(tài)720),直到中間設(shè)備632接收到指示傳輸結(jié)束的消息(轉(zhuǎn)換734)。其他實(shí)施例中,中間設(shè)備632可以接收到來自服務(wù)器106的傳輸結(jié)束的通知,或者說明服務(wù)器106已完成傳輸?shù)囊恍┢渌?、?biāo)記或者指示器。服務(wù)器106完成發(fā)送一部分?jǐn)?shù)據(jù)給客戶機(jī)102時(shí)可出現(xiàn)傳輸結(jié)束,或者一旦服務(wù)器106不再有要推送給客戶機(jī)102的消息就結(jié)束傳輸。接收到來自服務(wù)器106的傳輸已結(jié)束的通知(轉(zhuǎn)換734)后,中間設(shè)備632可以改變狀態(tài),從中間設(shè)備632等待來自服務(wù)器106的消息的狀態(tài)轉(zhuǎn)換到中間設(shè)備632等待客戶機(jī)請求的初始狀態(tài)(狀態(tài)710)。—些實(shí)施例中,中間設(shè)備632使用此處所述的推送功能執(zhí)行端對端保持有效(keep-alive)。因而,中間設(shè)備632可通過發(fā)送端對端保持有效消息來跟蹤連接是否仍有效。這些保持有效的消息可以在連接閑置太久后由中間設(shè)備自動(dòng)產(chǎn)生。如果中間設(shè)備正在進(jìn)行組塊響應(yīng),并且保持有效定時(shí)器到期,那么中間設(shè)備可選地把預(yù)定義的塊加入到響應(yīng)流中(轉(zhuǎn)換730)??梢杂晒芾韱T定義預(yù)定義塊,或者由中間設(shè)備632或者一些其他配置方法動(dòng)態(tài)定義預(yù)定義塊。加入預(yù)定義塊后,中間設(shè)備可保持在同一狀態(tài),即等待來自服務(wù)器106的消息的狀態(tài)(狀態(tài)720)。如果中間設(shè)備632正開始響應(yīng)(例如,還沒有寫出響應(yīng)的任何字節(jié)),可選地,中間設(shè)備632可產(chǎn)生預(yù)定義的保持有效HTTP響應(yīng)并/或關(guān)閉事務(wù)??梢酝ㄟ^任何上述配置方法定義預(yù)定義保持有效響應(yīng)。產(chǎn)生保持有效響應(yīng)(轉(zhuǎn)換73后,中間設(shè)備632可以從等待來自服務(wù)器106的消息的狀態(tài)(狀態(tài)720)轉(zhuǎn)換到等待客戶機(jī)請求的初始狀態(tài)(狀態(tài)710)。圖8A示出連接標(biāo)記協(xié)議的實(shí)施例。一些實(shí)施例中,連接標(biāo)記協(xié)議可以是客戶機(jī)102和服務(wù)器106之間的握手協(xié)議,服務(wù)器106使用該協(xié)議來標(biāo)記客戶機(jī)102和服務(wù)器106之間的連接。一些實(shí)施例中,該協(xié)議可以體現(xiàn)為過程800,其中,如此處所述的任何中間設(shè)備632的中間設(shè)備632攔截客戶機(jī)請求(步驟80,并把句柄或標(biāo)記注入到客戶機(jī)請求的頭部(步驟804)。然后,中間設(shè)備632把經(jīng)修改的客戶機(jī)請求發(fā)送給后端服務(wù)器106(步驟806)。接收到經(jīng)修改的客戶機(jī)請求后,服務(wù)器106產(chǎn)生對該客戶機(jī)請求的響應(yīng)(步驟808)并確定是在產(chǎn)生響應(yīng)后基本上立即發(fā)送響應(yīng)還是把發(fā)送響應(yīng)推遲到稍后的時(shí)間點(diǎn)(步驟810)。服務(wù)器106推遲發(fā)送響應(yīng)時(shí),服務(wù)器106接著標(biāo)記服務(wù)器106和客戶機(jī)102之間的49連接(步驟812)。繼續(xù)參考圖8A,具體而言,一個(gè)實(shí)施例中,中間設(shè)備632可以攔截客戶機(jī)請求(步驟80幻。一些實(shí)施例中,客戶機(jī)請求可以是任何客戶機(jī)裝置或者此處所述的任何客戶機(jī)102產(chǎn)生的??蛻魴C(jī)請求可以是和服務(wù)器106建立連接的請求。一些實(shí)施例中,客戶機(jī)請求可以是訪問應(yīng)用、服務(wù)或進(jìn)程的請求,其中該應(yīng)用、服務(wù)或進(jìn)程在服務(wù)器106上執(zhí)行。一些實(shí)施例中,應(yīng)用可用于建立用戶會話,客戶機(jī)102和服務(wù)器106可以在該用戶會話中通信。在中間設(shè)備632上執(zhí)行的負(fù)載平衡vserver636可以攔截客戶機(jī)請求,而在其他實(shí)施例中,在中間設(shè)備632上執(zhí)行的另一個(gè)應(yīng)用可攔截客戶機(jī)請求。攔截到客戶機(jī)請求后,中間設(shè)備632可把句柄注入到客戶機(jī)請求的頭部中(步驟804)。一些實(shí)施例中,句柄是分配給發(fā)出請求的客戶機(jī)102和服務(wù)器106之間的連接的標(biāo)記。一些實(shí)施例中,中間設(shè)備632攔截客戶機(jī)請求時(shí),中間設(shè)備632還從與中間設(shè)備632通信的一個(gè)或多個(gè)服務(wù)器106中選擇目標(biāo)服務(wù)器106。盡管在一些實(shí)施例中,客戶機(jī)請求識別目標(biāo)服務(wù)器106,但在其他實(shí)施例中,中間設(shè)備632選擇目標(biāo)服務(wù)器106。一些實(shí)施例中,句柄可以是此處描述的任何句柄。其他實(shí)施例中,句柄可以是ns-句柄,或者NetScaler句柄,并且可用于把應(yīng)用、用戶會話或其他上下文與客戶機(jī)102和服務(wù)器106之間的連接相關(guān)聯(lián)。一些實(shí)施例中,中間設(shè)備632或者中間設(shè)備632上執(zhí)行的任何應(yīng)用可以把句柄或標(biāo)記插入到客戶機(jī)請求中包括的HTTP頭部中。插入句柄可修改客戶機(jī)請求,以形成經(jīng)修改的客戶機(jī)請求,其標(biāo)識特定應(yīng)用、用戶會話或應(yīng)用上下文。服務(wù)器可把ns-句柄看作是不透明的,一些實(shí)施例中,ns-句柄可以是客戶機(jī)102和服務(wù)器106之間的連接的四元組,其中,該4元組可包括如下信息的任何一個(gè)客戶機(jī)IP地址、服務(wù)器IP地址、客戶機(jī)端口、服務(wù)器端口;代表客戶機(jī)102和服務(wù)器106之間連接的IP地址;或者是代表客戶機(jī)102和服務(wù)器106之間連接的端口。一些實(shí)施例中,句柄把另外的信息熵加入經(jīng)編碼的元組,以使其更難以猜到,從而更安全。多設(shè)備或多中間設(shè)備的情況下,中間設(shè)備632也可為推送vserver635提供偵聽端點(diǎn)或端口。該端口可以被包括在句柄中,被反映在句柄的配置中或被包括在四元組中。盡管在一些實(shí)施例中,中間設(shè)備632修改客戶機(jī)請求的頭部,而其他實(shí)施例中,中間設(shè)備632可以隨同請求發(fā)送另外的分組,該分組識別句柄。其他實(shí)施例包括修改客戶機(jī)請求另一方面(如載荷)的中間設(shè)備632。一些實(shí)施例中,中間設(shè)備632修改客戶機(jī)請求后把經(jīng)修改的客戶機(jī)請求發(fā)送給服務(wù)器106(步驟806)。一些實(shí)施例中,負(fù)載平衡vserver636可傳輸客戶機(jī)請求。響應(yīng)于接收到客戶機(jī)請求,服務(wù)器106可產(chǎn)生響應(yīng)(步驟808)。一些實(shí)施例中,該響應(yīng)可以不包括載荷而是僅包括頭部。服務(wù)器106產(chǎn)生的空HTTP響應(yīng)可包括反映客戶機(jī)請求中所包含的句柄的頭部。在服務(wù)器給客戶機(jī)請求的響應(yīng)中包括或反映該句柄標(biāo)記客戶機(jī)102和服務(wù)器106之間的連接,這是由于中間設(shè)備632可以從頭部中提取句柄并用句柄確定將服務(wù)器響應(yīng)傳輸?shù)胶翁?。一些?shí)施例中,服務(wù)器106基本是在接收到客戶機(jī)請求后立即對客戶機(jī)請求做出響應(yīng),這樣,典型的響應(yīng)時(shí)間在客戶機(jī)發(fā)出請求和服務(wù)器做出響應(yīng)之間到期。一些實(shí)施例中,服務(wù)器106推遲對客戶機(jī)請求做出響應(yīng)(步驟810)。選擇推遲對客戶機(jī)請求做出響應(yīng)可以是客戶機(jī)請求的頭部中包括的配置設(shè)置(即句柄)的結(jié)果。其他實(shí)施例中,由于服務(wù)器106確定沒有消息要推送給客戶機(jī)102而推遲對客戶機(jī)請求做出響應(yīng)。因而,服務(wù)器106不是對客戶機(jī)請求做出響應(yīng),而是通過保存客戶機(jī)請求頭部中包括的句柄或標(biāo)記并將其與客戶機(jī)102關(guān)聯(lián)而標(biāo)記客戶機(jī)102和服務(wù)器106之間的連接。服務(wù)器106可以把句柄保存在服務(wù)器106上的連接表(未示出)中,或者保存在服務(wù)器106上的另一個(gè)存儲倉庫中,這樣服務(wù)器106以后產(chǎn)生消息時(shí),服務(wù)器106可以把所保存的句柄包含在消息的頭部中。一些實(shí)施例中,服務(wù)器106可以把句柄或所產(chǎn)生的響應(yīng)保存在存儲倉庫中,連接到中間設(shè)備632的每個(gè)服務(wù)器106可以訪問該存儲倉庫。服務(wù)器106希望把消息推送給特定客戶機(jī)102時(shí),服務(wù)器106可以從存儲中檢索句柄、把句柄插入在消息頭部中并把消息推送給中間設(shè)備632。盡管在一些實(shí)施例中,句柄可被包括在消息頭部中,而其他實(shí)施例中,句柄可被包括在消息體中、伴隨消息的發(fā)布請求體中或者伴隨消息的發(fā)布請求的頭部中。存儲句柄或者以其他方式關(guān)聯(lián)頭部中保存的句柄和/或標(biāo)記信息可以形成用句柄標(biāo)記客戶機(jī)102和服務(wù)器106之間的連接(步驟81幻。一些實(shí)施例中,可把客戶機(jī)102和服務(wù)器106之間的連接稱為第一連接,而把客戶機(jī)12和中間設(shè)備632之間的連接稱為第二連接。標(biāo)記連接可包括從句柄中提取信息并把該信息連同有關(guān)客戶機(jī)102的信息保存在倉庫中,有關(guān)客戶機(jī)102的信息諸如客戶機(jī)IP地址、客戶機(jī)端口、用戶名、用戶會話ID、用戶IP地址或者識別客戶機(jī)102和/或客戶機(jī)102的用戶的其他信息。其他實(shí)施例中,標(biāo)記連接可包括把所產(chǎn)生的服務(wù)器響應(yīng)連同上述任一客戶機(jī)/用戶識別信息保存在存儲倉庫中。一些實(shí)施例中,中間設(shè)備632或設(shè)備支持主動(dòng)標(biāo)記到期通知。例如,如果設(shè)備使客戶機(jī)連接到期或者客戶機(jī)102關(guān)閉了客戶機(jī)連接,那么,設(shè)備632不會發(fā)送任何標(biāo)記到期消息給服務(wù)器。一些實(shí)施例中,相反,與標(biāo)記關(guān)聯(lián)的對客戶機(jī)-服務(wù)器連接的下一更新會使中間設(shè)備632產(chǎn)生指示連接不再存在的錯(cuò)誤消息。可響應(yīng)于推送給中間設(shè)備632的消息而把該錯(cuò)誤消息發(fā)送給服務(wù)器106。一些實(shí)施例中,后端服務(wù)器可以具有在設(shè)備中掛起的長輪詢請求。這些實(shí)施例中,由于中斷客戶機(jī)102和中間設(shè)備632之間的客戶機(jī)連接或者通過關(guān)閉或者中斷中間設(shè)備(例如zombie清除)而使客戶機(jī)連接斷開時(shí),設(shè)備可發(fā)送響應(yīng)給服務(wù)器106,該響應(yīng)指示與消息中的標(biāo)記關(guān)聯(lián)的連接不再存在。服務(wù)器106可發(fā)送給到期或中斷的客戶機(jī)的另一個(gè)長輪詢并等待客戶機(jī)響應(yīng)。一些實(shí)施例中,服務(wù)器106可以長時(shí)間等待客戶機(jī)響應(yīng)。一些實(shí)施例中,可以配置或指定一個(gè)或多個(gè)服務(wù)器來執(zhí)行長輪詢以驗(yàn)證客戶機(jī)102關(guān)閉或者等待客戶機(jī)102重連接。圖8B示出消息通信協(xié)議的實(shí)施例。消息通信協(xié)議或消息推送協(xié)議可由后端服務(wù)器106用于推送異步消息給連接到中間設(shè)備632的客戶機(jī)102。一些實(shí)施例中,消息通訊協(xié)議可以實(shí)現(xiàn)為在服務(wù)器106、中間設(shè)備632和客戶機(jī)102之間執(zhí)行的過程或方法850。中間設(shè)備632可從服務(wù)器106接收發(fā)布請求(步驟85,其中發(fā)布請求可以伴隨或包括目的地是客戶機(jī)102的消息。中間設(shè)備632或者中間設(shè)備632上執(zhí)行的應(yīng)用可以從發(fā)布請求獲得句柄(步驟854)并把消息傳輸給句柄所識別的客戶機(jī)102(步驟856)。然后,中間設(shè)備632可傳輸消息或響應(yīng)給服務(wù)器106,該消息或響應(yīng)指示已把消息成功地發(fā)送給客戶機(jī)102(步驟858)。繼續(xù)參考圖8B,具體而言,一個(gè)實(shí)施例中,中間設(shè)備632上執(zhí)行的推送vserver635可以執(zhí)行消息通信協(xié)議。其他實(shí)施例中,可以由應(yīng)用、消息推送器或者中間設(shè)備632上執(zhí)行的其他對象或客戶機(jī)執(zhí)行消息通信協(xié)議。仍在其他實(shí)施例中,中間設(shè)備632可執(zhí)行消息通信協(xié)議。一些實(shí)施例中,推送vserver635可以接收服務(wù)器106發(fā)出的發(fā)布請求,服務(wù)器106例如為后端服務(wù)器106(步驟85。該發(fā)布請求可以識別句柄或連接標(biāo)記以及服務(wù)器106要在所識別的連接上推送的消息。連接標(biāo)記可包括識別客戶機(jī)-服務(wù)器連接的句柄或者代表之前在連接到中間設(shè)備632的服務(wù)器106和連接到中間設(shè)備的客戶機(jī)102之間建立的連接的標(biāo)識符。該連接標(biāo)記可識別任一如下信息客戶機(jī)IP地址、客戶機(jī)端口、服務(wù)器IP地址、服務(wù)器端口、用戶IP地址、應(yīng)用IP地址、用戶會話IP地址或者可由中間設(shè)備用來把消息發(fā)送給客戶機(jī)102的任意其他標(biāo)識符。一個(gè)實(shí)施例中,推送vserver635可從發(fā)布請求中提取句柄(步驟854)以確定發(fā)布請求所識別的客戶機(jī)-服務(wù)器連接。一些實(shí)施例中,發(fā)布請求識別客戶機(jī)102和中間設(shè)備632之間的第二連接。一些實(shí)施例中,該第二連接可以是先前在客戶機(jī)102和后端服務(wù)器106之間建立的第一連接的子連接。推送vserver635可以從發(fā)布請求的任何部分提取句柄或標(biāo)記,例如發(fā)布請求體、發(fā)布請求的頭部、發(fā)布請求中包括的消息的頭部、伴隨發(fā)布請求的消息的頭部、發(fā)布請求中包括的消息體或者伴隨發(fā)布請求的消息體。一些實(shí)施例中,從發(fā)布請求中提取句柄或連接標(biāo)記可包括識別句柄從而識別客戶機(jī)102和中間設(shè)備632之間的連接或第二連接。vserver或者中間設(shè)備632識別句柄后,中間設(shè)備632或推送vserver635可把消息轉(zhuǎn)發(fā)給句柄所識別的客戶機(jī)102(步驟856)。一些實(shí)施例中,中間設(shè)備可接著發(fā)送響應(yīng)給服務(wù)器106,指示已成功發(fā)送消息(步驟858)。一些實(shí)施例中,中間設(shè)備632可能不向服務(wù)器106發(fā)送指示已發(fā)送消息的消息。一些實(shí)施例中,圖8B所示的推送協(xié)議或消息協(xié)議可以是REST(表述性狀態(tài)轉(zhuǎn)移)接口,該接口由推送vserver635提供。一些實(shí)施例中,服務(wù)器106可以連接到推送vserver635以發(fā)送發(fā)布請求給中間設(shè)備632。發(fā)布請求體可包括服務(wù)器106要發(fā)送給由發(fā)布請求中包括的標(biāo)記所識別的客戶機(jī)102的載荷。一些實(shí)施例中,發(fā)布請求可識別句柄,該句柄進(jìn)一步識別目標(biāo)客戶機(jī)102以及該消息是否為響應(yīng)的最后消息(例如,發(fā)布請求包括TX-END標(biāo)志)ο一些實(shí)施例中,中間設(shè)備632可把消息作為單個(gè)http塊(步驟856)傳輸并產(chǎn)生2000K響應(yīng)給服務(wù)器(步驟858)。如果消息被標(biāo)記為響應(yīng)的最后一個(gè)消息,設(shè)備200還用零塊(zero-chunk)終止HTTP響應(yīng)。設(shè)備知道整個(gè)內(nèi)容長度的情況下,例如,響應(yīng)上的第一消息還指示“最后一個(gè)消息”標(biāo)志時(shí),設(shè)備可選擇發(fā)送指定內(nèi)容長度的響應(yīng),而不是發(fā)送分塊的響應(yīng)。消息、響應(yīng)或請求不指定塊時(shí)、消息、響應(yīng)或請求不分塊時(shí)或者消息、響應(yīng)或請求不把“分塊”指定為傳送編碼方法時(shí),包括“最后一個(gè)消息”標(biāo)志是有幫助的。這些實(shí)施例可包括流式傳輸和基于長輪詢的傳送。仍在其他實(shí)施例中,中間設(shè)備632識別發(fā)布請求中的句柄時(shí),中間設(shè)備可以從存儲每個(gè)被標(biāo)記的連接以及相應(yīng)的句柄、目標(biāo)客戶機(jī)102和目標(biāo)服務(wù)器的連接表640中檢索目標(biāo)客戶機(jī)102。因而,中間設(shè)備632可以從發(fā)布請求中提取句柄,并搜索連接表640中對應(yīng)于句柄的條目。一些實(shí)施例中,然后,中間設(shè)備632可以從找到的條目中獲得目標(biāo)客戶機(jī)102的地址和位置信息,或者,一些情況下,獲得目標(biāo)用戶會話的地址和位置信息。雖然一52些實(shí)施例中中間設(shè)備可以搜索連接表640尋找相應(yīng)的句柄信息,但是,一些實(shí)施例中,推送vserver635、連接標(biāo)記器638或者中間設(shè)備632上執(zhí)行的任何其他應(yīng)用可以檢索對應(yīng)于句柄的信息。如果在中間設(shè)備的連接表中未找到對應(yīng)于推送消息/發(fā)布請求中的句柄的客戶機(jī)連接(例如,客戶機(jī)連接超時(shí)),可以把指示連接不存在的錯(cuò)誤響應(yīng)發(fā)回服務(wù)器。一些實(shí)施例中,主動(dòng)和被動(dòng)(備份或者故障切換)設(shè)備200(中間設(shè)備63不能同步其連接表,因而,故障切換時(shí),新設(shè)備200可以重新開始新一組連接、標(biāo)記和句柄。一些實(shí)施例中,主動(dòng)和被動(dòng)設(shè)備200可以同步連接表,因而,出現(xiàn)故障切換時(shí),可以啟動(dòng)具有包括前一連接表中每一條目的連接表640的新設(shè)備。因而,新設(shè)備200或中間設(shè)備632可訪問出故障的設(shè)備200或中間設(shè)備632訪問的同一組連接、標(biāo)記和句柄。一些實(shí)施例中,做出服務(wù)器側(cè)或應(yīng)用變化,以支持設(shè)備200或中間設(shè)備632中出現(xiàn)的操作。一些實(shí)施例中,服務(wù)器可以沒有中間設(shè)備的信息而保存客戶機(jī)連接和相關(guān)標(biāo)記之間的一對一關(guān)聯(lián)。部署中間設(shè)備時(shí),由中間設(shè)備632而不是服務(wù)器106管理所有閑置連接。因而,可以修改服務(wù)器106,使得服務(wù)器可基于活動(dòng)和/或定時(shí)器管理客戶機(jī)-服務(wù)器連接標(biāo)記。對于服務(wù)器106接收的每個(gè)插入了句柄的請求,服務(wù)器決定是否提供可推遲的或是正常響應(yīng)。對于可推遲的響應(yīng),服務(wù)器106將該插入的句柄插入空響應(yīng),并基于帶外更新來設(shè)定用于推送的該標(biāo)記。由于客戶機(jī)102和中間設(shè)備632之間可能存在有狀態(tài)的(stateful)代理裝置或設(shè)備,所以不同的客戶機(jī)請求可以復(fù)用在一個(gè)連接上。這些實(shí)施例中,客戶機(jī)102和服務(wù)器106可插入表格以在多個(gè)請求中唯一地識別客戶機(jī)102。一些實(shí)施例中,對于長輪詢和流式客戶機(jī),都使用推送協(xié)議把更新消息發(fā)送給推送vserver635。一些實(shí)施例中,中間設(shè)備632可以配置用于在預(yù)定時(shí)間段內(nèi)保持客戶機(jī)連接打開。例如,下面命令可基于用戶提供的值配置客戶機(jī)連接超時(shí)setlbvserver<client-facing-vip>-clttimeout<sec>0連接到期后或者中間設(shè)備632出故障或者斷電時(shí),中間設(shè)備632可以關(guān)閉連接或者發(fā)送如上述響應(yīng)的保持有效的響應(yīng)。一些實(shí)施例中,服務(wù)器也可以選擇主動(dòng)讓標(biāo)記到期(例如基于時(shí)間信息,如時(shí)間、日期等而讓標(biāo)記到期)。服務(wù)器106可通過發(fā)送推送消息給中間設(shè)備632來使標(biāo)記到期而通知中間設(shè)備632來進(jìn)行同樣操作。一些實(shí)施例中,如果客戶機(jī)連接上的TCP窗口不允許(例如客戶機(jī)連接上的零TCP窗口)要傳送給客戶機(jī)102的消息,那么可以丟棄來自服務(wù)器的發(fā)布請求/推送消息。本例中,中間設(shè)備632可以通過響應(yīng)或通過指示丟棄消息的錯(cuò)誤消息來通知服務(wù)器106消息被丟棄。一些實(shí)施例中,如果中間設(shè)備632在要完成的前一事務(wù)中間或者在等待要完成的前一事務(wù)時(shí)接收到流水線請求,可以像任何其他流水線請求一樣處理該請求,即,只有在前一事務(wù)完成后才保持并處理該請求。一些實(shí)施例中,中間設(shè)備632或設(shè)備被配置成確保只有經(jīng)授權(quán)的服務(wù)器106連接到推送vserver635。這可利用具有客戶機(jī)驗(yàn)證的SSL來解決,以保證只有信任的服務(wù)器才和推送vserver通信。其他實(shí)施例中,可以通過ACL(訪問控制列表)來控制對推送vserver635的訪問。這些ACL可以存儲在一個(gè)或多個(gè)服務(wù)器106、中間設(shè)備632上,或者既存儲在服務(wù)器106上又存儲在中間設(shè)備632上。在一些實(shí)施例中,服務(wù)器106可能想關(guān)閉客戶機(jī)連接或會話。為此,服務(wù)器106可發(fā)送消息給中間設(shè)備632,該消息指示請求中包括的句柄所指的連接應(yīng)該被關(guān)閉。一些實(shí)施53例中,這可被包括在消息通訊協(xié)議中,從而無論中間設(shè)備632何時(shí)接收到指示應(yīng)關(guān)閉所指的句柄的服務(wù)器發(fā)布請求,中間設(shè)備632都關(guān)閉該連接。一些實(shí)施例中,中間設(shè)備632可以解釋或解析消息并響應(yīng)于該消息關(guān)閉客戶機(jī)連接。一些實(shí)施例中,消息可包括或者是具有特殊的經(jīng)編碼的或預(yù)定的URL的POST消息,該URL識別或具有要關(guān)閉的連接標(biāo)記?!?shí)施例中,中間設(shè)備632處理稱為“離開”客戶機(jī)的客戶機(jī)(例如不再連接、超時(shí)、無效、不再響應(yīng)的客戶機(jī)等)。一個(gè)實(shí)施例中,中間設(shè)備632接收到客戶機(jī)102的更新(即,對連接標(biāo)記器638、負(fù)載平衡vserver636或推送vserver635的POST請求),如果客戶機(jī)連接不在連接表640中,那么,中間設(shè)備632可以發(fā)送故障響應(yīng)碼,如HTTP響應(yīng)碼,同時(shí)在響應(yīng)體中伴隨著發(fā)送給服務(wù)器106的更多信息。服務(wù)器106可以從該響應(yīng)碼和信息識別或理解客戶機(jī)102已離開,并通過刪除連接標(biāo)記或者以其他方式從可用的客戶機(jī)連接的列表中移除客戶機(jī)連接來移除客戶機(jī)會話。其他實(shí)施例中,中間設(shè)備632可異步地通知服務(wù)器106客戶機(jī)102已離開或不再連接。一些實(shí)施例中,中間設(shè)備632通過向服務(wù)器106發(fā)送消息以及有關(guān)客戶機(jī)連接終止的連接標(biāo)記細(xì)節(jié)而關(guān)閉客戶機(jī)連接。由于客戶機(jī)和服務(wù)器連接是分離的,所以中間設(shè)備632可能不知道把該消息發(fā)送給哪個(gè)服務(wù)器106。一些實(shí)施例中,中間設(shè)備632可識別并在連接表640或他處存儲與客戶機(jī)連接關(guān)聯(lián)的客戶機(jī)102和服務(wù)器106列表。因而,連接終止時(shí),中間設(shè)備632仍可確定目標(biāo)服務(wù)器106。使用該信息,中間設(shè)備632可以把對應(yīng)于終止的連接的消息傳輸給服務(wù)器106。其他實(shí)施例中,服務(wù)器106可通過向中間設(shè)備632查詢有關(guān)特定客戶機(jī)連接的信息來定期輪詢到期的會話/連接。服務(wù)器106從中間設(shè)備632接收到指示連接不存在的響應(yīng)后,作為響應(yīng),服務(wù)器106可以從可用連接內(nèi)部列表移除連接。圖9示出用于把異步HTTP消息傳輸給一個(gè)或多個(gè)客戶機(jī)的方法900的實(shí)施例。中間設(shè)備632或者中間設(shè)備632的負(fù)載平衡vserver636可以接收要連接到應(yīng)用、會話或服務(wù)器的客戶機(jī)102請求(步驟90。然后,中間設(shè)備632或負(fù)載平衡vserver636可以從連接到中間設(shè)備632的多個(gè)服務(wù)器106中選擇一個(gè)服務(wù)器106(步驟904),并通過把句柄插入客戶機(jī)請求的頭部來修改客戶機(jī)請求(步驟906)。一些實(shí)施例中,然后,中間設(shè)備632或負(fù)載平衡vserver636可以斷開服務(wù)器106和客戶機(jī)102的鏈接,同時(shí)保持客戶機(jī)102和中間設(shè)備632之間的連接(步驟908)。一些實(shí)施例中,然后中間設(shè)備632或推送vserver635可以從和中間設(shè)備通信的服務(wù)器106接收發(fā)布請求(步驟910)。發(fā)布請求可包括推送消息或消息,以及識別客戶機(jī)-服務(wù)器連接的標(biāo)識符或標(biāo)記。確定客戶機(jī)-服務(wù)器連接標(biāo)記后(步驟91,中間設(shè)備632或推送vserver635可以識別對應(yīng)于客戶機(jī)-服務(wù)器連接的客戶機(jī)-中間設(shè)備連接,并通過所識別的客戶機(jī)-中間設(shè)備連接傳輸推送消息(步驟914)。繼續(xù)參考圖9,具體而言,一個(gè)實(shí)施例中,中間設(shè)備632可接收客戶機(jī)請求(步驟902)。其他實(shí)施例中,負(fù)載平衡vserver636可以接收客戶機(jī)請求,而其他實(shí)施例中,中間設(shè)備632上執(zhí)行的另一應(yīng)用、對象、服務(wù)、客戶機(jī)或代理可接收客戶機(jī)請求。一些實(shí)施例中,由客戶機(jī)102與中間設(shè)備632之間的代理裝置、計(jì)算機(jī)或者設(shè)備接收客戶機(jī)請求。該代理裝置接收客戶機(jī)請求并將客戶機(jī)請求轉(zhuǎn)發(fā)給中間設(shè)備632。一些實(shí)施例中,代理裝置直接和負(fù)載平衡vserver636相接口。一些實(shí)施例中,可以把在客戶機(jī)102和中間設(shè)備之間建立的連接稱為第一連接、第二連接或第三連接。然后,中間設(shè)備632、負(fù)載平衡vserver636或連接標(biāo)記器638選擇后端服務(wù)器(步驟904)。一些實(shí)施例中,從和中間設(shè)備632通信的一個(gè)或多個(gè)服務(wù)器106中選擇服務(wù)器106。其他實(shí)施例中,由管理位于與中間設(shè)備632通信的每個(gè)服務(wù)器106上的負(fù)載的負(fù)載平衡vserver636'選擇服務(wù)器106。仍在其他實(shí)施例中,中間設(shè)備632可選擇web服務(wù)器106B。一些實(shí)施例中,可以把在客戶機(jī)102和服務(wù)器106之間建立的連接稱為第一連接、第二連接或第三連接。一些實(shí)施例中,可以把在中間設(shè)備632和服務(wù)器106之間建立的連接稱為第一連接、第二連接、第三連接或第四連接。中間設(shè)備632、負(fù)載平衡vserver636或者連接標(biāo)記器638產(chǎn)生識別客戶機(jī)102和服務(wù)器106之間的連接的句柄。一些實(shí)施例中,該客戶機(jī)標(biāo)識可包括推送vserver635、客戶機(jī)102、服務(wù)器106和/或中間設(shè)備632的標(biāo)識。一些實(shí)施例中,把修改客戶機(jī)請求的句柄插入客戶機(jī)請求(步驟906)可包括執(zhí)行此處所述的任一方法和過程。修改了客戶機(jī)請求后,中間設(shè)備632可把請求發(fā)送給所選的服務(wù)器106(步驟906)。一些實(shí)施例中,中間設(shè)備可以斷開客戶機(jī)102和中間設(shè)備632的連接與服務(wù)器106和中間設(shè)備632的連接之間的鏈接。其他實(shí)施例中,中間設(shè)備632可以在預(yù)定時(shí)間段后斷開服務(wù)器106和中間設(shè)備632之間的連接,而其他實(shí)施例中,中間設(shè)備不斷開該連接。一些實(shí)施例中,斷開連接可包括終止中間設(shè)備632和服務(wù)器106之間的連接。其他實(shí)施例中,斷開連接可包括發(fā)送另外的數(shù)據(jù)給服務(wù)器106,其中另外的數(shù)據(jù)不包括識別客戶機(jī)102的頭部或其他信息。一些實(shí)施例中,中間設(shè)備632斷開服務(wù)器側(cè)連接和客戶機(jī)側(cè)連接之間的鏈接并把服務(wù)器側(cè)連接放回連接池中。一些實(shí)施例中,中間設(shè)備632對連接進(jìn)行負(fù)載平衡。一些實(shí)施例中,中間設(shè)備632重新把同一個(gè)或另一個(gè)服務(wù)器側(cè)連接鏈接到客戶機(jī)側(cè)連接。中間設(shè)備632、負(fù)載平衡vserver636'或推送vserver635可從服務(wù)器106接收發(fā)布請求(步驟910)。發(fā)布請求可包括消息、推送消息或者異步消息,或者發(fā)布請求可伴有或跟隨著消息、推送消息或者異步消息。一些實(shí)施例中,發(fā)布請求或者伴隨的消息可以通過包含連接標(biāo)記或句柄來識別客戶機(jī)-服務(wù)器連接。中間設(shè)備632可通過從發(fā)布消息、發(fā)布消息頭部、消息或者消息頭部中提取連接標(biāo)記或句柄來識別客戶機(jī)-服務(wù)器側(cè)連接(步驟912)。一些實(shí)施例中,服務(wù)器106可向中間設(shè)備發(fā)送識別客戶機(jī)-服務(wù)器連接的獨(dú)立消息。一些實(shí)施例中,服務(wù)器106是客戶機(jī)102最初連接的同一個(gè)服務(wù)器106。其他實(shí)施例中,服務(wù)器106是和客戶機(jī)102最初連接的服務(wù)器106不同的服務(wù)器106。可以把傳輸發(fā)布請求或推送消息的服務(wù)器106和中間設(shè)備之間的連接稱為第一連接、第二連接、第三連接或者第四連接。識別到連接標(biāo)記或句柄后,中間設(shè)備632可以根據(jù)連接標(biāo)記或句柄確定客戶機(jī)102地址。一些實(shí)施例中,中間設(shè)備632可以確定識別目的客戶機(jī)102和中間設(shè)備632之間的第二連接標(biāo)記。中間設(shè)備632或者中間設(shè)備632上執(zhí)行的其他應(yīng)用可以根據(jù)連接標(biāo)記或者句柄識別目的客戶機(jī)102,并使用該信息通過在中間設(shè)備632和目的客戶機(jī)102之間保持的連接傳輸推送消息(步驟914)。一些實(shí)施例中,中間設(shè)備632可在整個(gè)連接標(biāo)記過程中、從后端服務(wù)器106接收推送消息的過程、中間設(shè)備632把消息發(fā)送給客戶機(jī)102的過程中保持中間設(shè)備632或者負(fù)載平衡vserver636與客戶機(jī)102之間的連接。中間設(shè)備632可以在多個(gè)響應(yīng)/請求和推送消息過程中保持客戶機(jī)側(cè)連接,直到連接關(guān)閉。一方面,本發(fā)明提供了可在許多不同環(huán)境中使用的同時(shí)保持向后兼容性的靈活方案。一些情況下,這些方法和系統(tǒng)所使用的任何線路(wire)級協(xié)議可以為可檢測版本(discoverableversion),并通過多個(gè)中間設(shè)備或裝置的組合或部署來擴(kuò)展。一些方面中,本方案是對應(yīng)用不理解(agnostic)的,這樣,通過不內(nèi)置或不實(shí)現(xiàn)對連接管理語義之外的應(yīng)用語義的任何理解,本方案可用于許多或者所有應(yīng)用。其他實(shí)施例中,本方案可以是應(yīng)用不理解的,同時(shí),仍然實(shí)現(xiàn)應(yīng)用專有的增強(qiáng)或特征,也就是說,本方案可用于任何或所有應(yīng)用,并且對于預(yù)定的應(yīng)用,本發(fā)明執(zhí)行額外的或增強(qiáng)的功能。另一方面,本發(fā)明可以覆蓋所有或大部分基于HTTP的服務(wù)器推送使用情況。一些實(shí)施例中,本方案可以和Comet流式響應(yīng)、XMPP(可擴(kuò)展消息通信和表示協(xié)議)、通過同步HTTP的雙向流(BOSH)和BOSHXMPP實(shí)現(xiàn)的任何一個(gè)或多個(gè)具體的變型無縫操作,其中Comet指web應(yīng)用模型,其中,長時(shí)間保持的HTTP請求允許web服務(wù)器把數(shù)據(jù)推送給瀏覽器。BOSH是傳輸協(xié)議,其使用多個(gè)同步HTTP請求/響應(yīng)對而無需使用輪詢或異步塊傳送來模擬如客戶機(jī)和服務(wù)器的兩個(gè)實(shí)體之間的雙向流。通過BOSH的XMPP定義如何使用BOSH來傳輸XMPP節(jié)。本方案可支持一種或多個(gè)非HTTP協(xié)議中的服務(wù)器推送機(jī)制和實(shí)現(xiàn),例如IMAP(因特網(wǎng)消息訪問協(xié)議)。權(quán)利要求1.一種通過管理客戶機(jī)和服務(wù)器之間的連接的設(shè)備從服務(wù)器向客戶機(jī)推送異步更新的方法,所述方法包括a)由設(shè)備的虛擬服務(wù)器從多個(gè)服務(wù)器中的第一服務(wù)器接收第一標(biāo)記,第一標(biāo)記標(biāo)示由虛擬服務(wù)器為多個(gè)客戶機(jī)的第一客戶機(jī)和第一服務(wù)器建立的第一連接;b)由虛擬服務(wù)器維持第一客戶機(jī)和與第一客戶機(jī)到第一服務(wù)器的第一連接相關(guān)聯(lián)的設(shè)備之間的第二連接;c)由在設(shè)備上執(zhí)行的推送虛擬服務(wù)器通過第三連接接收把第一服務(wù)器的異步消息推送給第一客戶機(jī)的請求,所述請求識別第一標(biāo)記;d)由設(shè)備響應(yīng)于接收所述請求而識別第一標(biāo)記對應(yīng)于設(shè)備與第一客戶機(jī)之間的第二連接;以及e)由設(shè)備通過第二連接向第一客戶機(jī)傳輸由設(shè)備通過第三連接接收的異步消息。2.根據(jù)權(quán)利要求1所述的方法,還包括使用連接標(biāo)記協(xié)議建立設(shè)備和第一服務(wù)器之間的第一標(biāo)記。3.根據(jù)權(quán)利要求1所述的方法,還包括由設(shè)備向第一服務(wù)器傳輸來自第一客戶機(jī)的請求,所述請求具有包括由設(shè)備插入的句柄的第一頭部;由設(shè)備從第一服務(wù)器接收對所述請求的響應(yīng),所述響應(yīng)具有包括句柄的第二頭部;以及由設(shè)備響應(yīng)于所述響應(yīng)確定句柄為第一客戶機(jī)的第一標(biāo)記。4.根據(jù)權(quán)利要求3所述的方法,還包括由設(shè)備把用第二連接的連接元組編碼的句柄插入到請求的頭部。5.根據(jù)權(quán)利要求3所述的方法,還包括由設(shè)備把包括設(shè)備的推送虛擬服務(wù)的偵聽端點(diǎn)的句柄插入到請求的頭部。6.根據(jù)權(quán)利要求3所述的方法,還包括由設(shè)備接收從第一服務(wù)器到設(shè)備的把異步消息推送給第一客戶機(jī)的請求,所述請求識別句柄并包括消息。7.根據(jù)權(quán)利要求1所述的方法,其中由設(shè)備的推送虛擬服務(wù)器把異步消息作為單個(gè)超文本傳輸協(xié)議(HTTP)塊傳輸給第一客戶機(jī)。8.根據(jù)權(quán)利要求1所述的方法,還包括通過從通知服務(wù)器到設(shè)備的第三連接接收推送請求。9.根據(jù)權(quán)利要求7所述的方法,還包括由設(shè)備響應(yīng)于把異步消息傳輸給第一客戶機(jī)而向通知服務(wù)器傳輸確認(rèn)響應(yīng)。10.根據(jù)權(quán)利要求1所述的方法,還包括由設(shè)備從通知服務(wù)器接收包括異步消息是最后一條消息的標(biāo)識的異步消息。11.根據(jù)權(quán)利要求1所述的方法,還包括由推送虛擬服務(wù)器接收把第一服務(wù)器的異步消息在第一連接和第二連接的帶外推送給第一客戶機(jī)的請求。12.一種通過管理客戶機(jī)和服務(wù)器之間的連接的設(shè)備從服務(wù)器向客戶機(jī)推送異步更新的系統(tǒng),所述系統(tǒng)包括設(shè)備的虛擬服務(wù)器,其從多個(gè)服務(wù)器中的第一服務(wù)器接收第一標(biāo)記,第一標(biāo)記標(biāo)示由虛擬服務(wù)器為多個(gè)客戶機(jī)的第一客戶機(jī)和第一服務(wù)器建立的第一連接并維持第一客戶機(jī)和與第一客戶機(jī)到第一服務(wù)器的第一連接相關(guān)聯(lián)的設(shè)備之間的第二連接;在設(shè)備上執(zhí)行的推送虛擬服務(wù)器,其通過第三連接接收把第一服務(wù)器的異步消息推送給第一客戶機(jī)的請求,所述請求識別第一標(biāo)記;其中設(shè)備響應(yīng)于接收所述請求而識別第一標(biāo)記對應(yīng)于設(shè)備與第一客戶機(jī)之間的第二連接并且通過第二連接向第一客戶機(jī)傳輸由設(shè)備通過第三連接接收的異步消息。13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中設(shè)備和第一服務(wù)器使用連接標(biāo)記協(xié)議建立第一標(biāo)記。14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中設(shè)備向第一服務(wù)器傳輸來自第一客戶機(jī)的請求,所述請求具有包括由設(shè)備插入的句柄的第一頭部;并且其中設(shè)備從第一服務(wù)器接收對所述請求的響應(yīng),所述響應(yīng)具有包括句柄的第二頭部;設(shè)備響應(yīng)于所述響應(yīng)確定句柄為第一客戶機(jī)的第一標(biāo)記。15.根據(jù)權(quán)利要求12所述的系統(tǒng),其中設(shè)備把用第二連接的連接元組編碼的句柄插入到請求的頭部。16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中設(shè)備把包括設(shè)備的推送虛擬服務(wù)的偵聽端點(diǎn)的句柄插入到請求的頭部。17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中設(shè)備從第一服務(wù)器接收把異步消息推送給第一客戶機(jī)的請求,所述請求識別句柄并包括消息。18.根據(jù)權(quán)利要求12所述的系統(tǒng),其中設(shè)備把異步消息作為單個(gè)超文本傳輸協(xié)議(HTTP)塊傳輸給第一客戶機(jī)。19.根據(jù)權(quán)利要求12所述的系統(tǒng),其中設(shè)備通過從通知服務(wù)器到設(shè)備的第三連接接收推送請求。20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中設(shè)備響應(yīng)于把異步消息傳輸給第一客戶機(jī)而向通知服務(wù)器傳輸確認(rèn)響應(yīng)。21.根據(jù)權(quán)利要求12所述的響應(yīng),其中設(shè)備從通知服務(wù)器接收包括異步消息是最后一條消息的標(biāo)識的異步消息。22.根據(jù)權(quán)利要求12所述的系統(tǒng),其中推送虛擬服務(wù)器接收把第一服務(wù)器的異步消息在第一連接和第二連接的帶外推送給第一客戶機(jī)的請求。全文摘要公開了用于管理客戶機(jī)、中間設(shè)備和服務(wù)器之間的連接的方法和系統(tǒng),使得可通過HTTP把異步消息從服務(wù)器傳輸?shù)娇蛻魴C(jī)。在客戶機(jī)和中間設(shè)備之間以及中間設(shè)備和服務(wù)器之間建立連接以建立邏輯的客戶機(jī)-服務(wù)器連接時(shí),標(biāo)記該邏輯的客戶機(jī)-服務(wù)器連接而不保持該連接,同時(shí)保持客戶機(jī)和中間設(shè)備之間的連接。把服務(wù)器產(chǎn)生的目的是客戶機(jī)的消息連同連接標(biāo)記傳輸給中間設(shè)備。然后,中間設(shè)備可使用連接標(biāo)記來確定哪個(gè)客戶機(jī)應(yīng)該接收該消息。文檔編號H04L29/06GK102246489SQ200980149194公開日2011年11月16日申請日期2009年10月8日優(yōu)先權(quán)日2008年10月8日發(fā)明者A·喬漢,A·謝蒂,J·蘇甘蒂,M·拉加,R·康達(dá)穆魯申請人:思杰系統(tǒng)有限公司