用于配置、應(yīng)用和管理網(wǎng)絡(luò)裝置的面向?qū)ο蟛呗员磉_(dá)式的系統(tǒng)和方法
【專利摘要】描述了用于配置和估計指導(dǎo)一個或者多個數(shù)據(jù)流的處理的策略的系統(tǒng)和方法。所描述的配置接口允許用戶指定面向?qū)ο蟮牟呗?。這些面向?qū)ο蟮牟呗钥梢栽试S關(guān)于所接收的分組流的有效載荷來應(yīng)用任一數(shù)據(jù)結(jié)構(gòu),包括HTTP業(yè)務(wù)量的任一部分。配置接口除了在一個或者多個策略未被定義時指定所采取的行動之外還可以允許用戶控制執(zhí)行策略和策略組的順序。用于處理策略的系統(tǒng)和方法可以允許通過應(yīng)用可能復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來解構(gòu)數(shù)據(jù)流而允許面向?qū)ο蟮牟呗缘挠行幚?。裝置也可以解釋和處理大量流量控制命令和策略組調(diào)用語句來確定在多個策略和策略組上執(zhí)行的順序。這些策略配置和處理可以允許配置和處理涉及負(fù)載平衡、VPNs、SSL卸載、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、加速和高速緩存的復(fù)雜網(wǎng)絡(luò)行為。
【專利說明】用于配置、應(yīng)用和管理網(wǎng)絡(luò)裝置的面向?qū)ο蟛呗员磉_(dá)式的系統(tǒng)和方法
[0001]本申請是申請?zhí)枮?00880015862.4、題目為“用于配置、應(yīng)用和管理網(wǎng)絡(luò)裝置的面向?qū)ο蟛呗员磉_(dá)式的系統(tǒng)和方法”的中國專利申請的分案申請。
[0002]相關(guān)申請
[0003]本申請涉及并要求以下未決美國申請的優(yōu)先權(quán),其每一個通過引用全部包含于此:2007年3月12日提交的美國申請11/685,147號"Systems and Methods forProviding Structured Policy Expressions to Represent Unstructured Data in aNetwork Appliance, 2007 年3 月 12 日提交的美國申請 11/685,167 號"Systems andMethods for Using Object Oriented Expressions to Configure Application SecurityPolicies"; 2007 年 3 月 12 日提交的美國申請 11/685,171 號〃Systems and Methods forConfiguring Flow Control of Policy Expressions" ;2007 年 3 月 12 日提交的美國申請11/685, 180 號〃 Systems and Methods for Configuring Policy bank Invocations"; 2007年 3 月 12 日提交的美國申請 11/685,175 號〃Systems and Methods for ConfiguringHandling of Undefined Policy Events";和2007年3月 12 日提交的美國申請 11/685,177號"Systems and Methods for Managing Application Security Profiles'
【技術(shù)領(lǐng)域】
[0004]本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)技術(shù)。更具體地,本發(fā)明涉及用于在網(wǎng)絡(luò)裝置中配置和應(yīng)用策略以及設(shè)置的系統(tǒng)和方法。
【背景技術(shù)】
[0005]網(wǎng)絡(luò)裝置和客戶機(jī)可以提供關(guān)于網(wǎng)絡(luò)業(yè)務(wù)量的大量復(fù)雜功能。除了這些功能之夕卜,網(wǎng)絡(luò)裝置還可以提供負(fù)載平衡、應(yīng)用安全、內(nèi)容轉(zhuǎn)換、SSL卸載、加速和高速緩存。然而,隨著網(wǎng)絡(luò)裝置所提供的功能的數(shù)量和復(fù)雜性增加,對于網(wǎng)絡(luò)裝置所需的配置的復(fù)雜性和數(shù)量也同樣增加。進(jìn)一步,網(wǎng)絡(luò)裝置的不適當(dāng)?shù)暮头亲顑?yōu)的配置可以導(dǎo)致性能下降、網(wǎng)絡(luò)錯誤、應(yīng)用不兼容和安全削弱。
[0006]許多網(wǎng)絡(luò)裝置可以使用策略框架來控制網(wǎng)絡(luò)裝置功能。在這些框架中,策略可以指定專用于指定特定條件下行為的規(guī)則和動作。例如,使用HTTP業(yè)務(wù)量,策略框架可以允許用戶來配置基于HTTP流中的內(nèi)容的裝置行為。根據(jù)要被分析的內(nèi)容和所尋找(sought)的行為,這些策略可以變得復(fù)雜。因此,為了寫策略來指導(dǎo)裝置行為,需要策略框架允許用戶將結(jié)構(gòu)應(yīng)用到網(wǎng)絡(luò)業(yè)務(wù)量。同樣需要網(wǎng)絡(luò)裝置隨后能夠以有效方式來實現(xiàn)這樣結(jié)構(gòu)化的策略表達(dá)式。
[0007]此外,隨著網(wǎng)絡(luò)裝置功能的數(shù)量和復(fù)雜性增加,它們的配置所需的策略的數(shù)量也可以增加。隨著策略數(shù)量的增加,同樣需要指定和實現(xiàn)策略和策略組上的處理順序。
[0008]進(jìn)一步,網(wǎng)絡(luò)裝置中使用的一些期望的策略可能未必具有所定義的結(jié)果。例如,策略可以響應(yīng)HTTP請求的給定字段來指定行為,但是在字段不存在或者字段具有不期望的值的情況中可以不被定義。雖然在一些情況中有可能寫入通常被定義的策略,但是這可能要求附加的策略或者更復(fù)雜的策略并且可能增加管理開銷。因此需要允許用戶對于策略未被限定的情況指定一個或者多個動作的配置系統(tǒng)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明涉及用于配置和估計指導(dǎo)一個或者多個數(shù)據(jù)流的處理的策略的系統(tǒng)和方法。所描述的配置接口用來允許用戶指定面向?qū)ο蟮牟呗浴_@些面向?qū)ο蟮牟呗钥梢栽试S關(guān)于所接收的分組流的有效載荷來應(yīng)用的任一數(shù)據(jù)結(jié)構(gòu),包括HTTP業(yè)務(wù)量的任一部分。配置接口除了在一個或者多個策略未定義時執(zhí)行所采取的行動之外還可以允許用戶控制執(zhí)行策略和策略組的順序。用于處理策略的系統(tǒng)和方法可以通過應(yīng)用可能復(fù)雜的數(shù)據(jù)結(jié)構(gòu)以解構(gòu)數(shù)據(jù)流來允許面向?qū)ο蟮牟呗缘挠行幚?。裝置也可以解釋和處理大量流量控制命令和策略組調(diào)用語句來確定在大量策略和策略組上執(zhí)行的順序。這些策略配置和處理可以允許用戶來有效配置涉及負(fù)載平衡、VPNs、SSL卸載、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、加速和高速緩存的復(fù)雜網(wǎng)絡(luò)行為。
[0010]在一個方面中,本發(fā)明涉及使用面向?qū)ο蟮谋磉_(dá)式來配置網(wǎng)絡(luò)裝置的策略以指定網(wǎng)絡(luò)裝置所接收的分組流的有效載荷中的結(jié)構(gòu)的系統(tǒng)和方法。在一個實施例中,該方法包括:提供用于配置對于網(wǎng)絡(luò)裝置的策略的配置接口 ;經(jīng)由配置接口接收對于策略的表達(dá)式,該表達(dá)式識別(i)應(yīng)用到分組流的有效載荷的部分的對象類jp(ii)對象類的成員;和經(jīng)由配置接口接收識別策略的動作的信息,該動作基于該表達(dá)式的估計而被采取。
[0011]在第二方面中,本發(fā)明涉及用于在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu)的系統(tǒng)和方法。在一個實施例中,方法包括:由設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負(fù)載,該策略指定(i)應(yīng)用到分組流的有效載荷的部分的對象類;、(ii)對象類的成員和(iii)動作;由設(shè)備選擇該對象類識別的有效載荷的部分;由設(shè)備確定對于該對象類的成員的值;并且響應(yīng)所確定的值來采取動作。在另一個實施例中,該方法包括:由設(shè)備識別包括面向?qū)ο蟊磉_(dá)式的策略來估計關(guān)于所接收的分組流的有效載荷;基于有效載荷的部分,由設(shè)備分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu);由設(shè)備執(zhí)行基于所分配的值的表達(dá)式的估計;和響應(yīng)于該估計,采取策略所指定的動作。對應(yīng)的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個面向?qū)ο蟮牟呗圆⑶也扇∠嚓P(guān)動作的策略引擎。
[0012]在第三個方面中,本發(fā)明涉及用于在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu)的系統(tǒng)和方法。在一個實施例中,方法包括:由設(shè)備識別包括面向?qū)ο蟮谋磉_(dá)式的策略來估計關(guān)于所接收的分組流的有效負(fù)載;基于有效載荷的部分,由設(shè)備分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu);由設(shè)備執(zhí)行基于所分配的值的表達(dá)式的估計;和響應(yīng)于該估計,改變所接收的分組流的部分;并且由設(shè)備發(fā)送所改變的分組流。對應(yīng)的系統(tǒng)可以包括用于接收和轉(zhuǎn)發(fā)分組流的分組處理器和用于估計一個或者多個面向?qū)ο蟮牟呗圆⑶也扇∠嚓P(guān)的動作的策略引擎。
[0013]在第四方面中,本發(fā)明涉及用于在策略的元素(element)未被限定的情況下通過指定所采取的動作來配置和/或處理網(wǎng)絡(luò)裝置所使用的策略的系統(tǒng)和方法。在一個實施例中,方法包括:提供用于配置網(wǎng)絡(luò)裝置的策略的配置接口 ;由配置接口識別包括基于表達(dá)式的估計所采取的第一動作的策略;經(jīng)由配置接口接收識別策略的第二動作的信息,如果策略的元素未被限定,則采取第二動作。在另一個實施例中,在策略的元素未被限定的情況下應(yīng)用指定所采取的動作的策略的方法包括:由設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負(fù)載,該策略指定(i)表達(dá)式;(ii)基于該表達(dá)式的估計所采取的第一動作和(iii)如果策略的元素未被限定所采取的第二動作;由設(shè)備確定關(guān)于有效載荷的未被限定的策略的元素;并且由設(shè)備響應(yīng)該確定來采取第二動作。對應(yīng)的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個策略并且采取相關(guān)動作的策略引擎。
[0014]在第五方面中,本發(fā)明涉及用于在處理分組流中使用的策略間配置和/或處理流量控制。在一個實施例中,方法包括:提供用于配置網(wǎng)絡(luò)裝置的多個策略的配置接口,多個策略的至少一個策略包括策略識別符;經(jīng)由配置接口接收識別多個策略的第一策略的信息,第一策略識別(i)包括第一表達(dá)式的規(guī)則和(ii)基于該規(guī)則的估計所采取的第一動作;和經(jīng)由配置接口接收識別多個策略的第二策略的信息使得當(dāng)規(guī)則估計為真時隨后應(yīng)用到第一策略。在另一個實施例中,方法包括:由設(shè)備識別多個策略以應(yīng)用到所接收的分組流,多個策略的至少一個策略包括策略識別符;由設(shè)備處理多個策略的第一策略,第一策略識別(i)包括第一表達(dá)式的規(guī)則和(ii)基于該規(guī)則的估計所采取的第一動作,和(iii)多個策略的第二策略;由設(shè)備基于該表達(dá)式的估計來確定規(guī)則估計為真;并且由設(shè)備響應(yīng)該確定來處理所識別的第二策略。對應(yīng)的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個策略并且采取相關(guān)動作的策略引擎。
[0015]在第六方面中,本發(fā)明涉及用于在處理分組流的網(wǎng)絡(luò)裝置中使用的策略組間配置和/或處理流量控制。在一個實施例中,方法包括:提供用于配置網(wǎng)絡(luò)裝置的多個策略組的配置接口,由配置接口識別第一策略組的第一策略,第一策略指定包括第一表達(dá)式的規(guī)則;并且經(jīng)由接口接收指定基于規(guī)則的估計而要處理的第二策略組的信息。在另一個實施例中,方法包括:由設(shè)備識別第一策略組以應(yīng)用到所接收的分組流;由設(shè)備處理第一策略組的第一策略,第一策略識別(i )包括第一表達(dá)式的規(guī)則,和(ii )識別第二策略組的信息;由設(shè)備估計該規(guī)則;并且由設(shè)備響應(yīng)該規(guī)則的估計來處理所識別的第二策略組。對應(yīng)的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個策略并且采取相關(guān)動作的策略引擎。
[0016]在第七方面中,本發(fā)明涉及用于配置和/或處理對于裝置的一個或者多個應(yīng)用安全配置文件的系統(tǒng)和方法,每一個應(yīng)用安全配置文件指定執(zhí)行關(guān)于應(yīng)用的安全功能的多個檢驗。在一個實施例中,方法包括:提供用于配置應(yīng)用安全配置文件的配置接口 ;經(jīng)由配置接口接收第一設(shè)置,該設(shè)置對應(yīng)于應(yīng)用安全配置文件的第一檢驗指定;經(jīng)由配置接口接收第二設(shè)置,第二設(shè)置對應(yīng)于應(yīng)用安全配置文件的第二檢驗指定;由配置接口識別策略,該策略指定包括第一表達(dá)式的規(guī)則;并且經(jīng)由接口接收識別基于規(guī)則的估計而要處理的應(yīng)用安全配置文件的信息。在另一個實施例中,方法可以包括:由設(shè)備識別第一策略以應(yīng)用到所接收的分組流;第一策略指定包括第一表達(dá)式的規(guī)則并且識別應(yīng)用安全配置文件;由設(shè)備估計該規(guī)則;由設(shè)備響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第一檢驗;并且由設(shè)備響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第二檢驗。對應(yīng)的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個應(yīng)用安全配置文件并且采取相關(guān)動作的策略引擎。[0017]在下面附圖和【具體實施方式】中提出本發(fā)明的多種實施例的細(xì)節(jié)。
【專利附圖】
【附圖說明】
[0018]參考結(jié)合附圖的以下描述,本發(fā)明的前述和其他對象、方面、特征和優(yōu)勢將會變得更加明顯更好理解,其中:
[0019]圖1A是客戶機(jī)經(jīng)由設(shè)備來訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的實施例的框圖;
[0020]圖1B是經(jīng)由多個設(shè)備來將計算環(huán)境從服務(wù)器遞送到客戶機(jī)的網(wǎng)絡(luò)環(huán)境的另一個實施例的框圖;
[0021]圖1C是經(jīng)由一個或多個不同的設(shè)備來將計算環(huán)境從服務(wù)器遞送到客戶機(jī)的網(wǎng)絡(luò)環(huán)境的另一個實施例的框圖;
[0022]圖1D是經(jīng)由網(wǎng)絡(luò)來將計算環(huán)境從服務(wù)器遞送到客戶機(jī)的環(huán)境的實施例的框圖;
[0023]圖1E和IF是計算裝置的實施例的框圖;
[0024]圖2A是處理在客戶機(jī)和服務(wù)器之間的通信的設(shè)備的實施例的框圖;
[0025]圖2B是用于優(yōu)化、加速、負(fù)載平衡和路由在客戶機(jī)和服務(wù)器之間的通信的設(shè)備的另一個實施例的框圖;
[0026]圖3是經(jīng)由設(shè)備來與服務(wù)器進(jìn)行通信的客戶機(jī)的實施例的框圖;
[0027]圖4A是可以被用來構(gòu)建HTTP通信的示例對象模型的視圖;
[0028]圖4B是可以被用來構(gòu)建HTTP通信的對象模型的文檔編制的示例屏幕;
[0029]圖4C示出關(guān)于HTTP表達(dá)式的多個示例面向?qū)ο蟮谋磉_(dá)式;
[0030]圖5不出策略的例子;
[0031]圖6是可用被用來配置一個或者多個表達(dá)式的示例屏幕;
[0032]圖7A是可以被用來配置網(wǎng)絡(luò)裝置的策略的配置接口的示例屏幕;
[0033]圖7B是在客戶機(jī)上執(zhí)行的配置接口的一個實施例的框圖;
[0034]圖8A是用于配置策略表達(dá)式的方法的一個實施例的流程圖;
[0035]圖SB是用于處理網(wǎng)絡(luò)設(shè)備中的面向?qū)ο蟮谋磉_(dá)式的方法的一個實施例的流程圖;
[0036]圖SC是用于使用面向?qū)ο蟮谋磉_(dá)式來重寫所接收的分組流的部分的方法的一個實施例的流程圖;
[0037]圖9是用于處理未限定的策略元素的方法的一個實施例的流程圖;
[0038]圖1OA是策略庫的一個實施例的例子的視圖;
[0039]圖1OB是用于控制一組策略中的處理順序的一個實施例的流程圖;
[0040]圖1lA是控制多個策略組上的處理順序的一個實施例的框圖;
[0041]圖1lB是用于控制多個策略組上的處理順序的方法的一個實施例的框圖;
[0042]圖12示出可以被用來配置應(yīng)用安全配置文件的多個示例配置屏幕;
[0043]圖13A是用于配置應(yīng)用安全配置文件的方法的一個實施例的流程圖;和
[0044]圖13B是用于處理應(yīng)用安全配置文件的方法的一個實施例的流程圖。
[0045]根據(jù)以下結(jié)合附圖提出的詳細(xì)描述,本發(fā)明的特征和優(yōu)勢將變得更加明顯,其中相同的參考特征在全文中是指對應(yīng)的元件。在附圖中,相似的附圖標(biāo)記通常指示相同的、功能類似的和/或結(jié)構(gòu)類似的元件?!揪唧w實施方式】
[0046]為了閱讀下面的本發(fā)明的多個實施例的描述,說明下面的說明書的各部分以及它們相應(yīng)的內(nèi)容是有幫助的:
[0047]部分A描述有益于實施本發(fā)明實施例的網(wǎng)絡(luò)環(huán)境和計算環(huán)境;
[0048]部分B描述用于將計算環(huán)境加速遞送到遠(yuǎn)程用戶的系統(tǒng)和設(shè)備架構(gòu)的實施例;
[0049]部分C描述用于加速在客戶機(jī)和服務(wù)器之間的通信的客戶機(jī)代理的實施例;
[0050]部分D描述用于配置和使用面向?qū)ο蟛呗员磉_(dá)式的系統(tǒng)和方法的實施例;
[0051]部分E描述用于處理未限定的策略表達(dá)式的方法和系統(tǒng)的實施例;
[0052]部分F描述用于配置和使用策略分組的系統(tǒng)和方法的實施例;和
[0053]部分G描述用于配置和使用應(yīng)用安全配置文件的系統(tǒng)和方法的實施例。
[0054]A.網(wǎng)絡(luò)和計算環(huán)境
[0055]在討論設(shè)備和/或客戶機(jī)的系統(tǒng)和方法的實施例的細(xì)節(jié)之前,討論可以部署這樣的實施例的網(wǎng)絡(luò)和計算環(huán)境是有幫助的?,F(xiàn)在參考圖1A,描述了網(wǎng)絡(luò)環(huán)境的一個實施例??偟膩碚f,網(wǎng)絡(luò)環(huán)境包括經(jīng)由一個或多個網(wǎng)絡(luò)104和104’(通常被稱為網(wǎng)絡(luò)104)與一個或多個服務(wù)器106a-106n (通常也被稱為服務(wù)器106或遠(yuǎn)程機(jī)器106)通信的一個或多個客戶機(jī)102a-102n(通常也被稱為本地機(jī)器102或客戶機(jī)102)。在一些實施例中,客戶機(jī)102經(jīng)由設(shè)備200與服務(wù)器106通信。
[0056]雖然圖1A示出客戶機(jī)102和服務(wù)器106之間的網(wǎng)絡(luò)104和網(wǎng)絡(luò)104’,但客戶機(jī)102和服務(wù)器106可以在同一個網(wǎng)絡(luò)104上。網(wǎng)絡(luò)104和104’可以是相同類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)104和/或網(wǎng)絡(luò)104’可以是像公司內(nèi)聯(lián)網(wǎng)的局域網(wǎng)(LAN)、城域網(wǎng)(MAN)或者諸如因特網(wǎng)或萬維網(wǎng)的廣域網(wǎng)(WAN)。在一個實施例中,網(wǎng)絡(luò)104’可以是專用網(wǎng)而網(wǎng)絡(luò)104可以是公用網(wǎng)。在一些實施例中,網(wǎng)絡(luò)104可以是專用網(wǎng)而網(wǎng)絡(luò)104’可以是公用網(wǎng)。在另一個實施例中,網(wǎng)絡(luò)104和104’可以都是專用網(wǎng)。在一些實施例中,客戶機(jī)102可以位于公司的分支機(jī)構(gòu),經(jīng)由網(wǎng)絡(luò)104上的WAN連接來與位于公司的數(shù)據(jù)中心的服務(wù)器106進(jìn)行通信。
[0057]網(wǎng)絡(luò)104和/或104’可以是任一類型和/或形式的網(wǎng)絡(luò),并且可以包括下列任意一種網(wǎng)絡(luò):點到點網(wǎng)絡(luò)、廣播網(wǎng)、廣域網(wǎng)、局域網(wǎng)、遠(yuǎn)程通信網(wǎng)、數(shù)據(jù)通信網(wǎng)、計算機(jī)網(wǎng)絡(luò)、ATM(異步傳送模式)網(wǎng)絡(luò)、SONET (同步光學(xué)網(wǎng)絡(luò))網(wǎng)絡(luò)、SDH (同步數(shù)字系列)網(wǎng)絡(luò)、無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在一些實施例中,網(wǎng)絡(luò)104可以包括諸如紅外信道或衛(wèi)星頻帶的無線鏈路。網(wǎng)絡(luò)104和/或104’的拓?fù)浣Y(jié)構(gòu)可以是總線型、星型或環(huán)型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)104和/或104’以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以是能夠支持此處描述的操作的本領(lǐng)域內(nèi)普通技術(shù)人員所知的任一種這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
[0058]如圖1A所示,在網(wǎng)絡(luò)104和104’之間示出也可以被稱為接口單元200或網(wǎng)關(guān)200的設(shè)備200。在一些實施例中,設(shè)備200可以位于網(wǎng)絡(luò)104上。例如,公司的分支機(jī)構(gòu)可以在所述分支機(jī)構(gòu)處部署設(shè)備200。在其它實施例中,設(shè)備200可以位于網(wǎng)絡(luò)104’上。例如,設(shè)備200可以位于公司的數(shù)據(jù)中心。在又一個實施例中,多個設(shè)備200可以部署在網(wǎng)絡(luò)104上。在一些實施例中,多個設(shè)備200可以部署在網(wǎng)絡(luò)104’上。在一個實施例中,第一設(shè)備200與第二設(shè)備200’相通信。在其它的實施例中,設(shè)備200可以是在與客戶機(jī)102相同或不同的網(wǎng)絡(luò)104,104’上的任一客戶機(jī)102或服務(wù)器106的一部分。一個或多個設(shè)備200可以位于在客戶機(jī)102和服務(wù)器106之間的網(wǎng)絡(luò)或網(wǎng)絡(luò)通信路徑中的任一點處。
[0059]在一些實施例中,設(shè)備200包括被稱為Citrix NetScaler裝置的由位于Ft.Lauderdale Florida的Citrix Systems公司制造的任一網(wǎng)絡(luò)裝置。在其它實施例中,設(shè)備200包括由位于Seattle, Washington的F5Networks公司制造的被稱為WebAccelerator和BigIP的任意一個產(chǎn)品實施例。在另一個實施例中,設(shè)備205包括由位于Sunnyvale,California的Juniper Networks公司制造的DX加速裝置平臺和/或諸如SA700、SA2000、SA4000和SA6000裝置的SSL VPN系列裝置中的任意一個。在又一個實施例中,設(shè)備200包括由位于San Jose, California的Cisco Systems公司制造的任一應(yīng)用加速和/或安全相關(guān)的設(shè)備和/或軟件,例如Cisco ACE應(yīng)用控制引擎模塊業(yè)務(wù)(Application ControlEngine Module service)軟件和網(wǎng)絡(luò)模塊以及Cisco AVS系列應(yīng)用速度系統(tǒng)(ApplicationVelocity System)。
[0060]在一個實施例中,該系統(tǒng)可以包括多個邏輯分組的服務(wù)器106。在這些實施例中,服務(wù)器的邏輯分組可以被稱為服務(wù)器群組38。在這些實施例中的一些實施例中,服務(wù)器106可以是在地理上分散的。有時候,群組38可以被管理為單一的實體。在其它實施例中,服務(wù)器群組38包括多個服務(wù)器群組38。在一個實施例中,服務(wù)器群組代表一個或多個客戶機(jī)102來執(zhí)行一個或多個應(yīng)用。
[0061]在每個群組38中的服務(wù)器106可以是不同種類的。一個或多個服務(wù)器106可以根據(jù)一種類型的操作系統(tǒng)平臺(例如,由位于Redmond, Washington的微軟公司出品的WINDOWS NT)來進(jìn)行操作,而一個或多個其它的服務(wù)器106可以根據(jù)另一種類型的操作系統(tǒng)平臺(例如,Unix或Linux)來進(jìn)行操作。每個群組38中的服務(wù)器106不需要與同一群組38中的另一個服務(wù)器106物理上接近。因此,邏輯上被分組為群組38的服務(wù)器106的分組可以使用廣域網(wǎng)(WAN)連接或中域網(wǎng)(medium-area network, MAN)連接來互連。例如,群組38可以包括在物理上位于不同的洲或位于一個洲、國家、州、城市、校園或房間的不同區(qū)域的服務(wù)器106。如果使用局域網(wǎng)(LAN)連接或一些形式的直接連接來連接服務(wù)器106,則可以增加在群組38中的服務(wù)器106之間的數(shù)據(jù)傳輸速度。
[0062]服務(wù)器106可以被稱為文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器或網(wǎng)關(guān)服務(wù)器。在一些實施例中,服務(wù)器106可以有能力起到應(yīng)用服務(wù)器或主應(yīng)用服務(wù)器的作用。在一個實施例中,服務(wù)器106可以包括活動目錄(Active Directory)??蛻魴C(jī)102也可以被稱為客戶機(jī)節(jié)點或端點。在一些實施例中,客戶機(jī)102有能力起到尋求訪問服務(wù)器上的應(yīng)用的客戶機(jī)節(jié)點以及作為對于其它的客戶機(jī)102a-102n提供對寄載的應(yīng)用的訪問的應(yīng)用服務(wù)器的作用。
[0063]在一些實施例中,客戶機(jī)102與服務(wù)器106進(jìn)行通信。在一個實施例,客戶機(jī)102直接與群組38中的服務(wù)器106的其中一個進(jìn)行通信。在另一個實施例中,客戶機(jī)102執(zhí)行程序鄰近應(yīng)用以與群組38中的服務(wù)器106進(jìn)行通信。在又一個實施例中,服務(wù)器106提供主節(jié)點的功能。在一些實施例中,客戶機(jī)102通過網(wǎng)絡(luò)104與群組38中的服務(wù)器106進(jìn)行通信。例如,通過網(wǎng)絡(luò)104,客戶機(jī)102可以請求執(zhí)行由群組38中的服務(wù)器106a-106n寄載的多個應(yīng)用,并接收應(yīng)用執(zhí)行的輸出結(jié)果用于顯示。在一些實施例中,只有主節(jié)點提供所要求的識別并提供與寄載被請求的應(yīng)用的服務(wù)器106’相關(guān)的地址信息的功能。[0064]在一個實施例中,服務(wù)器106提供web服務(wù)器的功能。在另一個實施例中,服務(wù)器106a從客戶機(jī)102接收請求,將請求轉(zhuǎn)發(fā)到第二服務(wù)器106b,并使用來自于服務(wù)器106b的對請求的響應(yīng)來對客戶機(jī)102的請求進(jìn)行響應(yīng)。在又一個實施例中,服務(wù)器106獲得客戶機(jī)102可用的應(yīng)用的列舉以及與寄載由所述應(yīng)用的列舉所標(biāo)識的應(yīng)用的服務(wù)器106相關(guān)的地址信息。在又一個實施例中,服務(wù)器106使用web接口將對請求的響應(yīng)提供給客戶機(jī)102。在一個實施例中,客戶機(jī)102直接與服務(wù)器106進(jìn)行通信以訪問所標(biāo)識的應(yīng)用。在另一個實施例中,客戶機(jī)102接收由執(zhí)行服務(wù)器106上的標(biāo)識的應(yīng)用所生成的諸如顯示數(shù)據(jù)的應(yīng)用輸出數(shù)據(jù)。
[0065]現(xiàn)在參考圖1B,描述了部署多個設(shè)備200的網(wǎng)絡(luò)環(huán)境的實施例。第一設(shè)備200可以部署在第一網(wǎng)絡(luò)104上,而第二設(shè)備200’部署在第二網(wǎng)絡(luò)104’上。例如,公司可以在分支機(jī)構(gòu)部署第一設(shè)備200,而在數(shù)據(jù)中心部署第二設(shè)備200’。在另一個實施例中,第一設(shè)備200和第二設(shè)備200’被部署在同一個網(wǎng)絡(luò)104或網(wǎng)絡(luò)104’上。例如,第一設(shè)備200可以部署用于第一服務(wù)器群組38,而第二設(shè)備200’可以部署用于第二服務(wù)器群組38’。在另一個實例中,第一設(shè)備200可以部署在第一分支機(jī)構(gòu),而第二設(shè)備200’被部署在第二分支機(jī)構(gòu)’。在一些實施例中,第一設(shè)備200和第二設(shè)備200’彼此協(xié)同或聯(lián)合工作,以加速客戶機(jī)和服務(wù)器之間的網(wǎng)絡(luò)業(yè)務(wù)量或應(yīng)用和數(shù)據(jù)的遞送。
[0066]現(xiàn)在參考圖1C,描述了使用一個或多個其它類型的設(shè)備,例如在一個或多個WAN優(yōu)化設(shè)備205,205’之間,來部署設(shè)備200的網(wǎng)絡(luò)環(huán)境的另一個實施例。例如,第一 WAN優(yōu)化設(shè)備205顯示在網(wǎng)絡(luò)104和104’之間,而第二 WAN優(yōu)化設(shè)備205’可以部署在設(shè)備200和一個或多個服務(wù)器106之間。通過示例,公司可以在分支機(jī)構(gòu)部署第一 WAN優(yōu)化設(shè)備205,而在數(shù)據(jù)中心部署第二 WAN優(yōu)化設(shè)備205’。在一些實施例中,設(shè)備205可以位于網(wǎng)絡(luò)104’上。在其它實施例中,設(shè)備205’可以位于網(wǎng)絡(luò)104上。在一些實施例中,設(shè)備205’可以位于網(wǎng)絡(luò)104’或網(wǎng)絡(luò)104〃上。在一個實施例中,設(shè)備205和205’在同一個網(wǎng)絡(luò)上。在另一個實施例中,設(shè)備205和205’在不同的網(wǎng)絡(luò)上。在另一個實例中,第一 WAN優(yōu)化設(shè)備205可以部署用于第一服務(wù)器群組38,而第二 WAN優(yōu)化設(shè)備205’可以部署用于第二服務(wù)器群組38,。
[0067]在一個實施例中,設(shè)備205是用于加速、優(yōu)化或者以其他方式改善諸如往和/或返于WAN連接的業(yè)務(wù)量的任一類型和形式的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或服務(wù)質(zhì)量的裝置。在一些實施例中,設(shè)備205是一個性能提高的代理。在其它實施例中,設(shè)備205是任一類型和形式的WAN優(yōu)化或加速裝置,有時也被稱為WAN優(yōu)化控制器。在一個實施例中,設(shè)備205是由位于Ft.Lauderdale Florida的Citrix Systems公司出品的被稱為WANScaler的產(chǎn)品實施例中的任意一種。在其它實施例中,設(shè)備205包括由位于Seattle, Washington的F5Networks公司出品的被稱為BIG-1P鏈路控制器和WANjet的產(chǎn)品實施例中的任意一種。在另一個實施例中,設(shè)備205包括由位于Sunnyvale, California的Juniper Netfforks公司出品的WX和WXC WAN加速裝置平臺中的任意一種。在一些實施例中,設(shè)備205包括由San Francisco, California 的 Riverbed Technology 公司出品的虹蹲(steelhead)系列WAN優(yōu)化設(shè)備中的任意一種。在其它實施例中,設(shè)備205包括由位于Roseland, NewJersey的Expand Networks公司出品的WAN相關(guān)裝置中的任意一種。在一個實施例中,設(shè)備205包括由位于Cupertino, California的Packeteer公司出品的任意一種WAN相關(guān)設(shè)備,例如由Packeteer提供的PacketShaper、iShared和SkyX產(chǎn)品實施例。在又一個實施例中,設(shè)備205包括由位于San Jose,California的Cisco Systems公司出品的任一 WAN相關(guān)設(shè)備和/或軟件,例如Cisco廣域網(wǎng)應(yīng)用服務(wù)軟件和網(wǎng)絡(luò)模塊以及廣域網(wǎng)引擎設(shè)備。
[0068]在一個實施例中,設(shè)備205提供用于分支機(jī)構(gòu)或遠(yuǎn)程辦公室的應(yīng)用和數(shù)據(jù)加速業(yè)務(wù)。在一個實施例中,設(shè)備205包括廣域文件服務(wù)(WAFS)的優(yōu)化。在另一個實施例中,設(shè)備205加速文件的遞送,例如經(jīng)由通用Internet文件系統(tǒng)(CIFS)協(xié)議。在其它實施例中,設(shè)備205在存儲器和/或存儲設(shè)備中提供高速緩存來加速應(yīng)用和數(shù)據(jù)的遞送。在一個實施例中,設(shè)備205提供在任一級別的網(wǎng)絡(luò)堆?;蛟谌我坏膮f(xié)議或網(wǎng)絡(luò)層的網(wǎng)絡(luò)業(yè)務(wù)量的壓縮。在另一個實施例中,設(shè)備205提供傳輸層協(xié)議優(yōu)化、流量控制、性能增強(qiáng)或修改和/或管理,以加速WAN連接上的應(yīng)用和數(shù)據(jù)的遞送。例如,在一個實施例中,設(shè)備205提供傳輸控制協(xié)議(TCP)優(yōu)化。在其它實施例中,設(shè)備205提供對于任一會話或應(yīng)用層協(xié)議的優(yōu)化、流量控制、性能增強(qiáng)或修改和/或管理。
[0069]在另一個實施例中,設(shè)備205將任一類型和形式的數(shù)據(jù)或信息編碼成網(wǎng)絡(luò)分組的定制或標(biāo)準(zhǔn)的TCP和/或IP報頭字段或可選字段,以將存在、功能或能力通告給另一個設(shè)備205’。在另一個實施例中,設(shè)備205’可以使用在TCP和/或IP報頭字段或選項中編碼的數(shù)據(jù)來與另一個設(shè)備205’進(jìn)行通信。例如,設(shè)備可以使用TCP選項或IP報頭字段或選項來傳達(dá)在執(zhí)行諸如WAN加速的功能時或者為了彼此聯(lián)合工作而由設(shè)備205,205’所使用的一個或多個參數(shù)。
[0070]在一些實施例中,設(shè)備200保存在設(shè)備205和205’之間傳達(dá)的TCP和/或IP報頭和/或可選字段中編碼的任一信息。例如,設(shè)備200可以終止經(jīng)過設(shè)備200的傳輸層連接,例如經(jīng)過設(shè)備205和205’的在客戶機(jī)和服務(wù)器之間的一個傳輸層連接。在一個實施例中,設(shè)備200識別并保存在由第一設(shè)備205通過第一傳輸層連接發(fā)送的傳輸層分組中的任一編碼信息,并經(jīng)由第二傳輸層連接來將具有編碼信息的傳輸層分組傳達(dá)到第二設(shè)備205’。
[0071]現(xiàn)在參考圖1D,描述了用于遞送和/或操作客戶機(jī)102上的計算環(huán)境的網(wǎng)絡(luò)環(huán)境。在一些實施例中,服務(wù)器106包括用于將計算環(huán)境或應(yīng)用和/或數(shù)據(jù)文件遞送給一個或多個客戶機(jī)102的應(yīng)用遞送系統(tǒng)190。簡單概述,客戶機(jī)10經(jīng)由網(wǎng)絡(luò)104、104’和設(shè)備200與服務(wù)器106通信。例如,客戶機(jī)102可以駐留在例如分支機(jī)構(gòu)的公司的遠(yuǎn)程辦公室,而服務(wù)器106可以駐留在公司的數(shù)據(jù)中心。客戶機(jī)102包括客戶機(jī)代理120和計算環(huán)境15。計算環(huán)境15可以執(zhí)行或操作訪問、處理或使用數(shù)據(jù)文件的應(yīng)用。可以經(jīng)由設(shè)備200和/或服務(wù)器106來遞送計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件。
[0072]在一些實施例中,設(shè)備200加速將計算環(huán)境15或其任一部分遞送給客戶機(jī)102。在一個實施例中,設(shè)備200通過應(yīng)用遞送系統(tǒng)190來加速計算環(huán)境15的遞送。例如,此處描述的實施例可以用來將可由應(yīng)用處理的流應(yīng)用和數(shù)據(jù)文件加速從中央的公司數(shù)據(jù)中心遞送到遠(yuǎn)程用戶的位置,例如公司的分支機(jī)構(gòu)。在另一個實施例中,設(shè)備200加速在客戶機(jī)102和服務(wù)器106之間的傳輸層業(yè)務(wù)量。設(shè)備200可以提供用于加速從服務(wù)器106到客戶機(jī)102的任一傳輸層有效載荷的加速技術(shù),例如:1)傳輸層連接池,2)傳輸層連接多路復(fù)用,3)傳輸控制協(xié)議緩沖,4)壓縮和5)高速緩存。在一些實施例中,設(shè)備200提供響應(yīng)于客戶機(jī)102的請求的服務(wù)器106的負(fù)載平衡。在其它實施例中,設(shè)備200充當(dāng)代理或訪問服務(wù)器以提供對一個或多個服務(wù)器106的訪問。在另一個實施例中,設(shè)備200提供從客戶機(jī)102的第一網(wǎng)絡(luò)104到服務(wù)器106的第二網(wǎng)絡(luò)104’的安全虛擬專用網(wǎng)連接,例如SSL VPN連接。在又一些實施例中,設(shè)備200提供在客戶機(jī)102和服務(wù)器106之間的連接和通信的應(yīng)用防火墻安全、控制和管理。
[0073]在一些實施例中,應(yīng)用遞送管理系統(tǒng)190根據(jù)多個執(zhí)行方法以及根據(jù)經(jīng)由策略引擎195應(yīng)用的任一驗證和授權(quán)策略來提供將計算環(huán)境遞送到遠(yuǎn)端或另外的用戶的桌面的應(yīng)用遞送技術(shù)。使用這些技術(shù),遠(yuǎn)程用戶可以從任一網(wǎng)絡(luò)連接裝置100獲取計算環(huán)境以及訪問服務(wù)器存儲的應(yīng)用和數(shù)據(jù)文件。在一個實施例中,應(yīng)用遞送系統(tǒng)190可以駐留于服務(wù)器106或在服務(wù)器106上執(zhí)行。在另一個實施例中,應(yīng)用遞送系統(tǒng)190可以駐留于多個服務(wù)器106a-106n上或在多個服務(wù)器106a_106n上執(zhí)行。在一些實施例中,應(yīng)用遞送系統(tǒng)190可以在服務(wù)器群組38中執(zhí)行。在一個實施例中,執(zhí)行應(yīng)用遞送系統(tǒng)190的服務(wù)器106還可以存儲或提供應(yīng)用和數(shù)據(jù)文件。在另一個實施例中,第一組的一個或多個服務(wù)器106可以執(zhí)行應(yīng)用遞送系統(tǒng)190,而不同的服務(wù)器106η可以存儲或提供應(yīng)用和數(shù)據(jù)文件。在一些實施例中,應(yīng)用遞送系統(tǒng)190、應(yīng)用和數(shù)據(jù)文件中的每一個可以駐留或位于不同的服務(wù)器上。在又一個實施例中,應(yīng)用遞送系統(tǒng)190的任一部分可以駐留、執(zhí)行或保存或被分配于設(shè)備200或多個設(shè)備。
[0074]客戶機(jī)102可以包括用于執(zhí)行使用或處理數(shù)據(jù)文件的應(yīng)用的計算環(huán)境15??蛻魴C(jī)102可以經(jīng)由網(wǎng)絡(luò)104、104’和設(shè)備200來從服務(wù)器106請求應(yīng)用和數(shù)據(jù)文件。在一個實施例中,設(shè)備200可以將來自于客戶機(jī)102的請求轉(zhuǎn)發(fā)到服務(wù)器106。例如,客戶機(jī)102可以不具有本地存儲或可存取的應(yīng)用和數(shù)據(jù)文件。響應(yīng)于請求,應(yīng)用遞送系統(tǒng)190和/或服務(wù)器106可以遞送應(yīng)用和數(shù)據(jù)文件到客戶機(jī)102。例如,在一個實施例中,服務(wù)器106可以以應(yīng)用流的形式發(fā)送應(yīng)用,以在客戶機(jī)102上的計算環(huán)境15中進(jìn)行操作。
[0075]在一些實施例中,應(yīng)用遞送系統(tǒng)190包括Citrix Systems公司的例如MetaFrame或Citrix表示(Presentation)服務(wù)器?的Citrix訪問套件?的任一部分和/或由微軟公司出品的任意一種微軟?Windows終端服務(wù)。在一個實施例中,應(yīng)用遞送系統(tǒng)190可以通過遠(yuǎn)程顯示協(xié)議或以其它方式通過基于遠(yuǎn)程或基于服務(wù)器的計算來遞送一個或多個應(yīng)用到客戶機(jī)102或用戶。在另一個實施例中,應(yīng)用遞送系統(tǒng)190可以通過應(yīng)用的流式傳輸來遞送一個或多個應(yīng)用到客戶機(jī)或用戶。
[0076]在一個實施例中,應(yīng)用遞送系統(tǒng)190包括用于控制和管理應(yīng)用執(zhí)行方法的訪問、選擇以及應(yīng)用的遞送的策略引擎195。在一些實施例中,策略引擎195確定用戶或客戶機(jī)102可以訪問的一個或多個應(yīng)用。在另一個實施例中,策略弓I擎195確定應(yīng)用應(yīng)該如何被遞送給用戶或客戶機(jī)102,例如執(zhí)行方法。在一些實施例中,應(yīng)用遞送系統(tǒng)190提供從中選擇應(yīng)用執(zhí)行方法的多個遞送技術(shù),例如基于服務(wù)器的計算、本地流式傳輸或遞送應(yīng)用給客戶機(jī)120以用于本地執(zhí)行。
[0077]在一個實施例中,客戶機(jī)102請求執(zhí)行應(yīng)用程序而包括服務(wù)器106的應(yīng)用遞送系統(tǒng)190選擇執(zhí)行應(yīng)用程序的方法。在一些實施例中,服務(wù)器106從客戶機(jī)102接收證書。在另一個實施例中,服務(wù)器106從客戶機(jī)102接收列舉可用的應(yīng)用的請求。在一個實施例中,響應(yīng)于所述請求或收到的證書,應(yīng)用遞送系統(tǒng)190列舉客戶機(jī)102可用的多個應(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可以接收通過在服務(wù)器106上執(zhí)行應(yīng)用程序而生成的應(yīng)用輸出數(shù)據(jù)。應(yīng)用遞送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法,使得本地機(jī)器10可以在檢索包括應(yīng)用的多個應(yīng)用文件之后本地執(zhí)行所述應(yīng)用程序。在又一個實施例中,應(yīng)用遞送系統(tǒng)190可以選擇執(zhí)行應(yīng)用的方法以經(jīng)由網(wǎng)絡(luò)104將應(yīng)用流式傳輸?shù)娇蛻魴C(jī)102。
[0078]客戶機(jī)102可以執(zhí)行、操作或以其他方式提供應(yīng)用,所述應(yīng)用可以是任一類型和/或形式的軟件、程序或可執(zhí)行指令,例如任一類型和/或形式的web瀏覽器、基于web的客戶機(jī)、客戶機(jī)-服務(wù)器應(yīng)用、瘦-客戶機(jī)的計算客戶機(jī)、ActiveX控件、或Java小程序、或可以在客戶機(jī)102上執(zhí)行的任一其它類型和/或形式的可執(zhí)行指令。在一些實施例中,應(yīng)用可以是代表客戶機(jī)102在服務(wù)器106上執(zhí)行的基于服務(wù)器或基于遠(yuǎn)程的應(yīng)用。在一個實施例中,服務(wù)器106可以使用任一瘦-客戶機(jī)或遠(yuǎn)程顯示協(xié)議來顯示輸出到客戶機(jī)102,所述遠(yuǎn)程顯示協(xié)議例如由位于Ft.Lauderdale, Florida的Citrix Systems公司出品的獨立計算架構(gòu)(ICA)協(xié)議或由位于Redmond, Washington的微軟公司出品的遠(yuǎn)程桌面協(xié)議(RDP)。應(yīng)用可以使用任一類型的協(xié)議,并且它可以是例如HTTP客戶機(jī)、FTP客戶機(jī)、Oscar客戶機(jī)或Telnet客戶機(jī)。在其它實施例中,應(yīng)用包括與VoIP通信相關(guān)的任一類型的軟件,例如軟IP電話。在進(jìn)一步的實施例中,應(yīng)用包括與實時數(shù)據(jù)通信相關(guān)的任一應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。
[0079]在一些實施例中,服務(wù)器106或服務(wù)器群組38可以運行一個或多個應(yīng)用,例如提供瘦-客戶機(jī)計算的應(yīng)用或遠(yuǎn)程顯示表示應(yīng)用的應(yīng)用。在一個實施例中,服務(wù)器106或服務(wù)器群組38作為應(yīng)用而執(zhí)行Citrix Systems公司的例如MetaFrame或Citrix表示服務(wù)器?的Citrix訪問套件?的任一部分和/或由微軟公司出品的任意一種微終端服務(wù)。在一個實施例中,應(yīng)用是由位于Fort Lauderdale, Florida的Citrix Systems公司開發(fā)的ICA客戶機(jī)。在其它實施例中,應(yīng)用包括由位于Redmond, Washington的微軟公司開發(fā)的遠(yuǎn)程桌面(RDP)客戶機(jī)。此外,服務(wù)器106可以運行應(yīng)用,例如,所述服務(wù)器106可以是提供例如由位于Redmond, Washington的微軟公司出品的微軟Exchange的電子郵件服務(wù)的應(yīng)用服務(wù)器、web或Internet服務(wù)器、或桌面共享服務(wù)器、或協(xié)作服務(wù)器。在一些實施例中,任意一種應(yīng)用可以包括任一類型的寄載服務(wù)或產(chǎn)品,例如由Santa Barbara, California的 Citrix Online 部門提供的 GoToMeeting?、由位于 Santa Clara, California 的 WebEx公司提供的WebEx?、或由位于Redmond, Washington的微軟公司提供的微軟Office LiveMeeting。
[0080]仍然參考圖1D,網(wǎng)絡(luò)環(huán)境的一個實施例可以包括監(jiān)控服務(wù)器106A。監(jiān)控服務(wù)器106A可以包括任一類型和形式的性能監(jiān)控業(yè)務(wù)198。性能監(jiān)控業(yè)務(wù)198可以包括監(jiān)控、測量和/或管理軟件和/或硬件,包括數(shù)據(jù)收集、集合、分析、管理和報告。在一個實施例中,性能監(jiān)控業(yè)務(wù)198包括一個或多個監(jiān)控代理197。監(jiān)控代理197包括用于在諸如客戶機(jī)102、服務(wù)器106或設(shè)備200和205的裝置上執(zhí)行監(jiān)控、測量和數(shù)據(jù)收集活動的任一軟件、硬件或其組合。在一些實施例中,監(jiān)控代理197包括諸如Visual Basic腳本或Java描述語言的任一類型和形式的腳本。在一個實施例中,監(jiān)控代理197相對于裝置的任一應(yīng)用和/或用戶透明地執(zhí)行。在一些實施例中,監(jiān)控代理197相對于應(yīng)用或客戶機(jī)不引人注目地被安裝和操作。在又一個實施例中,監(jiān)控代理197被安裝和操作而不需要用于該應(yīng)用或裝置的任何設(shè)備(instrumentation) ο[0081]在一些實施例中,監(jiān)控代理197以預(yù)定頻率監(jiān)控、測量和收集數(shù)據(jù)。在其它實施例中,監(jiān)控代理197基于任一類型和形式的事件的檢測來監(jiān)控、測量和收集數(shù)據(jù)。例如,監(jiān)控代理197可以在檢測到對web頁面的請求或收到HTTP響應(yīng)時收集數(shù)據(jù)。在另一個實例中,監(jiān)控代理197可以在檢測到諸如鼠標(biāo)點擊的任一用戶輸入事件時收集數(shù)據(jù)。監(jiān)控代理197可以報告或提供任一所監(jiān)控、測量或收集的數(shù)據(jù)給監(jiān)控業(yè)務(wù)198。在一個實施例中,監(jiān)控代理197根據(jù)調(diào)度或預(yù)定頻率來發(fā)送信息給監(jiān)控業(yè)務(wù)198。在另一個實施例中,監(jiān)控代理197在檢測到事件時發(fā)送信息給監(jiān)控業(yè)務(wù)198。
[0082]在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197執(zhí)行諸如客戶機(jī)、服務(wù)器、月艮務(wù)器群組、設(shè)備200、設(shè)備205或網(wǎng)絡(luò)連接的任一網(wǎng)絡(luò)資源或網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)元件的監(jiān)控和性能測量。在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197執(zhí)行諸如TCP或UDP連接的任一傳輸層連接的監(jiān)控和性能測量。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量網(wǎng)絡(luò)等待時間。在又一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量帶寬利用。
[0083]在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量終端用戶響應(yīng)時間。在一些實施例中,監(jiān)控業(yè)務(wù)198執(zhí)行應(yīng)用的監(jiān)控和性能測量。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197執(zhí)行到應(yīng)用的任一會話或連接的監(jiān)控和性能測量。在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量瀏覽器的性能。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量基于HTTP的事務(wù)的性能。在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量IP上語音(VoIP)應(yīng)用或會話的性能。在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量諸如ICA客戶機(jī)或RDP客戶機(jī)的遠(yuǎn)程顯示協(xié)議應(yīng)用的性能。在又一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任一類型和形式的流媒體的性能。在進(jìn)一步的實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量寄載應(yīng)用或軟件即服務(wù)(Software-As-A-Service, SaaS)遞送模型的性能。
[0084]在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197執(zhí)行與應(yīng)用相關(guān)的一個或多個事務(wù)、請求或響應(yīng)的監(jiān)控和性能測量。在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量應(yīng)用層堆棧的任一部分,例如任一.NET或J2EE調(diào)用。在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量數(shù)據(jù)庫或SQL事務(wù)。在又一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量任一方法、函數(shù)或應(yīng)用編程接口(API)調(diào)用。
[0085]在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197執(zhí)行經(jīng)由諸如設(shè)備200和/或設(shè)備205的一個或多個設(shè)備從服務(wù)器到客戶機(jī)的應(yīng)用和/或數(shù)據(jù)的遞送的監(jiān)控和性能測量。在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量虛擬化應(yīng)用的遞送的性能。在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量流式應(yīng)用的遞送的性能。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量遞送桌面應(yīng)用到客戶機(jī)和/或在客戶機(jī)上執(zhí)行桌面應(yīng)用的性能。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控和測量客戶機(jī)/服務(wù)器應(yīng)用的性能。
[0086]在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197被設(shè)計和構(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)用的性能。在該實例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197監(jiān)控單獨的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ù)器。在一些實施例中,監(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可以測量每個用戶會話或ICA會話的網(wǎng)絡(luò)等待時間、延遲和容量。
[0087]在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控對于應(yīng)用遞送系統(tǒng)190的諸如總的存儲器使用、每個用戶會話和/或每個進(jìn)程的存儲器使用。在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控諸如總的CPU使用、每個用戶會話和/或每個進(jìn)程的應(yīng)用遞送系統(tǒng)190的CPU使用。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控登錄到諸如Citrix表示服務(wù)器的應(yīng)用、服務(wù)器或應(yīng)用遞送系統(tǒng)所需的時間。在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶登錄應(yīng)用、月艮務(wù)器或應(yīng)用遞送系統(tǒng)190的持續(xù)時間。在一些實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控應(yīng)用、服務(wù)器或應(yīng)用遞送系統(tǒng)會話的有效和無效的會話計數(shù)。在又一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控用戶會話等待時間。
[0088]在又一個進(jìn)一步的實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控任一類型和形式的服務(wù)器規(guī)格(metrics)。在一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與系統(tǒng)存儲器、CPU使用和磁盤存儲器有關(guān)的規(guī)格。在另一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控和頁錯誤有關(guān)的規(guī)格,諸如每秒頁錯誤。在其它實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控往返時間的規(guī)格。在又一個實施例中,監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理197測量和監(jiān)控與應(yīng)用崩潰、錯誤和/或中止相關(guān)的規(guī)格。
[0089]在一些實施例中,監(jiān)控業(yè)務(wù)198和監(jiān)控代理198包括由位于Ft.Lauderdale, Florida 的 Citrix Systems 公司出品的被稱為 EdgeSight 的任意一種產(chǎn)品實施例。在另一個實施例中,性能監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理198包括由位于Palo Alto, California的Symphoniq公司出品的被稱為TrueView產(chǎn)品套件的產(chǎn)品實施例的任一部分。在一個實施例中,性能監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理198包括由位于SanFrancisco, California的TeaLeaf技術(shù)公司出品的被稱為TeaLeafCX產(chǎn)品套件的產(chǎn)品實施例的任一部分。在其它實施例中,性能監(jiān)控業(yè)務(wù)198和/或監(jiān)控代理198包括由位于Houston, Texas的BMC軟件公司出品的諸如BMC性能管理器和巡邏產(chǎn)品(BMC PerformanceManager and Patrol products)的商業(yè)業(yè)務(wù)管理產(chǎn)品的任一部分。
[0090]客戶機(jī)102、服務(wù)器106和設(shè)備200可以被部署和/或執(zhí)行在任一類型和形式的計算裝置上,例如可以在任一類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計算機(jī)、網(wǎng)絡(luò)裝置或設(shè)備。圖1E和IF描述了可用于實施客戶機(jī)102、服務(wù)器106或設(shè)備200的實施例的計算裝置100的框圖。如圖1E和IF所示,每個計算裝置100包括中央處理單元101和主存儲器單元122。如圖1E所示,計算裝置100可以包括可視顯示裝置124、鍵盤126和/或諸如鼠標(biāo)的點擊裝置127。每個計算裝置100也可以包括另外的可選元件,例如一個或多個輸入/輸出裝置130a-130b (通常使用附圖標(biāo)記130來指示)以及與中央處理單元101通信的高速緩存140。
[0091]中央處理單元101是響應(yīng)并處理取自主存儲器單元122的指令的任一邏輯電路。在許多實施例中,中央處理單元由微處理器單元提供,例如:由位于MountainView, California 的 Intel 公司出品的產(chǎn)品;由位于 Schaumburg, Illinois 的 Motorola 公司出品的產(chǎn)品;由位于Santa Clara, California的Transmeta公司出品的產(chǎn)品;由位于White Plains, New York的國際商業(yè)機(jī)器公司出品的RS/6000處理器;或者由位于 Sunnyvale, California 的 Advanced Micro Devices 公司出品的產(chǎn)品。計算裝置 100 可以基于任一的這些處理器、或者可以如此處所描述地操作的任一其它處理器。[0092]主存儲器單元122可以是可以保存數(shù)據(jù)并允許由微處理器101直接訪問的任一存儲位置的一個或多個存儲芯片,例如靜態(tài)隨機(jī)存取存儲器(SRAM)、突發(fā)式SRAM或同步突發(fā)式SRAM(BSRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、快速頁面模式DRAM(FPM DRAM)、增強(qiáng)型DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM(ED0 RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM(ED0 DRAM)、突發(fā)式擴(kuò)展數(shù)據(jù)輸出 DRAM (BED0 DRAM)、增強(qiáng)型 DRAM (EDRAM)、同步 DRAM (SDRAM), JEDEC SRAM、PC100SDRAM、 雙數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強(qiáng)型 SDRAM (ESDRAM)、同步鏈接 DRAM (SLDRAM)、直接 Rambus DRAM (DRDRAM)、或鐵電RAM (FRAM)0主存儲器122可以基于任意一種上面描述的存儲芯片、或者可以如此處所描述地操作的任一其它可用的存儲芯片。在圖1E中所示的實施例中,處理器101通過系統(tǒng)總線150 (在下面進(jìn)行更詳細(xì)的描述)與主存儲器122進(jìn)行通信。圖1E描述了在其中處理器通過存儲器端口 103直接與主存儲器122通信的計算裝置 100的實施例。例如,在圖1F中,主存儲器122可以是DRDRAM。[0093]圖1F描述了在其中主處理器101通過有時被稱為背端總線的次級總線來直接與高速緩存140通信的實施例。在其它實施例中,主處理器101使用系統(tǒng)總線150與高速緩存140進(jìn)行通信。高速緩存140典型地具有比主存儲器122更快的響應(yīng)時間,并且典型地通過SRAM、BSRAM或EDRAM來提供。在圖1E中所示的實施例中,處理器101通過本地系統(tǒng)總線150與多個1/0裝置130進(jìn)行通信。多種總線可以用來將中央處理單元101連接到任意一種1/0裝
置130,所述總線包括VESA VL總線、ISA總線、EISA總線、微通道架構(gòu)(MCA)總線、PCI總線、PC1-X總線、PC1-Express總線或NuBus。對于1/0裝置是視頻顯示器124的實施例,處理器101可以使用高級圖形端口(AGP)來與顯示器124進(jìn)行通信。圖1F描述了在其中主處理器101通過HyperTransport、快速1/0或InfiniBand來直接與1/0裝置130 通信的計算機(jī)100的一個實施例。圖1F還描述了混合本地總線和直接通信的一個實施例: 處理器101使用本地互連總線與1/0裝置130進(jìn)行通信,同時直接與1/0裝置130進(jìn)行通 ?目。[0094]計算裝置100可以支持任一適當(dāng)?shù)陌惭b裝置116,例如用于接收像3.5英寸、5.25 英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動器、CD-ROM驅(qū)動器、CD-R/RW驅(qū)動器、DVD-ROM 驅(qū)動器、多種格式的磁帶驅(qū)動器、USB裝置、硬盤驅(qū)動器或適于安裝像任一客戶機(jī)代理120 或其部分的軟件和程序的任一其它裝置。計算裝置100還可以包括存儲裝置128,例如一個或多個硬盤驅(qū)動器或獨立磁盤的冗余陣列,用于保存操作系統(tǒng)及其它相關(guān)軟件,以及用于保存諸如與客戶機(jī)代理120相關(guān)的任一程序的應(yīng)用軟件程序??蛇x地,任意一種安裝裝置 116還可以被用作存儲裝置128。另外,操作系統(tǒng)和軟件可以從可引導(dǎo)介質(zhì)中運行,所述可引導(dǎo)介質(zhì)例如像KNOPPTX?的可引導(dǎo)⑶,作為來自于knoppix.net可用作GNU/Linux分發(fā)的GNU/Linux的可引導(dǎo)⑶。[0095]進(jìn)一步地,計算裝置100可以包括通過多種連接聯(lián)接到局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)或因特網(wǎng)的網(wǎng)絡(luò)接口 118,所述多種連接包括但不限于標(biāo)準(zhǔn)電話線、LAN或WAN鏈路(例如,802.ll、Tl、T3、56kb、X.25)、寬帶連接(例如,ISDN、幀中繼、ATM)、無線連接或上述任 一或所有連接的一些組合。網(wǎng)絡(luò)接口 118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng) 卡、插件總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適于將計算裝置 100連接到可以傳達(dá)并執(zhí)行此處所描述的操作的任一類型的網(wǎng)絡(luò)的任一其它裝置。各式各 樣的I/o裝置130a-130n可以存在于計算裝置100中。輸入裝置包括鍵盤、鼠標(biāo)、軌道墊、 軌道球、麥克風(fēng)以及繪畫板。輸出裝置包括視頻顯示器、揚聲器、噴墨打印機(jī)、激光打印機(jī)和 染料升華打印機(jī)。I/O裝置130可以由如圖1E所示的I/O控制器123控制。I/O控制器可 以控制諸如鍵盤126和例如鼠標(biāo)或光筆的點擊裝置127的一個或多個I/O裝置。進(jìn)一步 地,I/O裝置還可以為計算裝置100提供存儲裝置128和/或安裝介質(zhì)116。還是在其它實 施例中,計算裝置100可以提供USB連接以接收諸如由位于Los Alamitos, California的 Twintech Industry公司出品的USB閃存驅(qū)動器系列裝置這樣的便攜USB存儲裝置。[0096]在一些實施例中,計算裝置100可以包括或連接到多個顯示裝置124a_124n,每個 顯示裝置可以是相同或不同的類型和/或形式。因而,任意一種I/o裝置130a-130n和/ 或I/O控制器123可以包括任一類型和/或形式的適當(dāng)?shù)挠布④浖蛴布蛙浖慕M合, 以支持、允許或提供通過計算裝置100連接和使用多個顯示裝置124a-124n。例如,計算裝 置100可以包括任一類型和/或形式的視頻適配器、視頻卡、驅(qū)動程序和/或庫,以聯(lián)系、通 信、連接或以其他方式使用顯示裝置124a-124n。在一個實施例中,視頻適配器可以包括多 個連接器以聯(lián)接多個顯示裝置124a-124n。在其它實施例中,計算裝置100可以包括多個 視頻適配器,每個視頻適配器連接到一個或多個顯示裝置124a-124n。在一些實施例中,計 算裝置100的操作系統(tǒng)的任一部分可以被配置用于使用多個顯示器124a-124n。在其它實 施例中,一個或多個顯示裝置124a-124n可以由一個或多個諸如例如通過網(wǎng)絡(luò)連接到計算 裝置100的計算裝置IOOa和IOOb的其它的計算裝置來提供。這些實施例可以包括被設(shè)計 和構(gòu)建為將另一個計算機(jī)的顯示裝置用作計算裝置100的第二顯示裝置124a的任一類型 的軟件。本領(lǐng)域普通技術(shù)人員將認(rèn)識和理解計算裝置100可以被配置為具有多個顯示裝置 124a-124η的多個方法和實施例。[0097]在進(jìn)一步的實施例中,I/O裝置130可以是在系統(tǒng)總線150和外部通信總線之 間的網(wǎng)橋170,所述外部通信總線例如USB總線、Apple Desktop總線、RS-232串行連接、 SCSI總線、FireWire總線、Fireffire800總線、以太網(wǎng)總線、AppleTalk總線、吉比特以太 網(wǎng)總線、異步傳送模式總線、HIPPI總線、超HIPPI總線、SerialPlus總線、SCI/LAMP總線、 FibreChanneI總線或串行附加小型計算機(jī)系統(tǒng)接口總線。[0098]圖1E和IF中描述類型的計算裝置100典型地在控制任務(wù)的調(diào)度和對系統(tǒng)資源 的訪問的操作系統(tǒng)的控制下操作。計算裝置100可以運行任一操作系統(tǒng),例如任意一種 版本的微軟i ndows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh 計算機(jī)的任一版本的Mac OS?、任一的嵌入式操作系統(tǒng)、任一的實時操作系統(tǒng)、任一的開 放源操作系統(tǒng)、任一的專用操作系統(tǒng)、用于移動計算裝置的任一操作系統(tǒng)、或者可以運行 在計算裝置上并執(zhí)行此處所描述的操作的任一其它操作系統(tǒng)。典型的操作系統(tǒng)其中包 括:WIND0WS3.X、WIND0WS95、WIND0WS98、WIND0WS2000, WINDOWS NT3.51、WINDOWS NT4.0、 WINDOWS CE和WINDOWS XP,所有這些均由位于Redmond, Washington的微軟公司出品;由位 于Cupertino, California的蘋果計算機(jī)出品的MacOS ;由位于Armonk, New York的國際商業(yè)機(jī)器公司出品的OS/2 ;以及由位于Salt Lake City, Utah的Caldera公司發(fā)布的可免費 使用的Linux操作系統(tǒng)或者任一類型和/或形式的Unix操作系統(tǒng),以及其它。[0099]在其它實施例中,計算裝置100可以具有和所述裝置一致的不同的處理器、操作 系統(tǒng)和輸入裝置。例如,在一個實施例中,計算機(jī)100是由Palm公司出品的Treo 180、270、 1060、600或650智能電話。在該實施例中,Treo智能電話在PalmOS操作系統(tǒng)的控制下操 作,并包括指示筆輸入裝置以及五向?qū)Ш窖b置。此外,計算裝置100可以是任一工作站、臺 式計算機(jī)、膝上型或筆記本計算機(jī)、服務(wù)器、便攜計算機(jī)、移動電話、任一其它計算機(jī)、或者 可以通信并具有執(zhí)行此處所描述的操作的足夠的處理器能力和存儲容量的其它形式的計 算或電信裝置。[0100]B.設(shè)備架構(gòu)[0101]圖2A舉例說明了設(shè)備200的一個示例實施例。提供圖2A中的設(shè)備200的架構(gòu)僅 僅是為了說明,并不是意于進(jìn)行限制。如圖2所示,設(shè)備200包括硬件層206和被分為用戶 空間202和內(nèi)核空間204的軟件層。[0102]硬件層206提供在其上執(zhí)行內(nèi)核空間204和用戶空間202中的程序和服務(wù)的硬件 元件。硬件層206還提供允許內(nèi)核空間204和用戶空間202中的程序和服務(wù)關(guān)于設(shè)備200 的向內(nèi)和向外傳遞數(shù)據(jù)的結(jié)構(gòu)和元件。如圖2所示,硬件層206包括用于執(zhí)行軟件程序和 服務(wù)的處理單元262、用于保存軟件和數(shù)據(jù)的存儲器264、用于在網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù)的 網(wǎng)絡(luò)端口 266以及用于執(zhí)行與在網(wǎng)絡(luò)上發(fā)送和接收的數(shù)據(jù)的安全套接字層處理相關(guān)的功 能的加密處理器260。在一些實施例中,中央處理單元262可以在單個的處理器中執(zhí)行加密 處理器260的功能。另外,硬件層206可以包括用于每個處理單元262和加密處理器260 的多個處理器。處理器262可以包括如上所述的與圖1E和IF有關(guān)的任一處理器101。在 一些實施例中,中央處理單元262可以在單個的處理器中執(zhí)行加密處理器260的功能。另 夕卜,硬件層206可以包括用于每個處理單元262和加密處理器260的多個處理器。例如,在 一個實施例中,設(shè)備200包括第一處理器262和第二處理器262’。在其它實施例中,處理器 262或262’包括多核處理器。[0103]雖然通常所示設(shè)備200的硬件層206具有加密處理器260,但處理器260可以是 用于執(zhí)行與諸如安全套接字層(SSL)或傳輸層安全(TLS)協(xié)議的任一加密協(xié)議相關(guān)的功能 的處理器。在一些實施例中,處理器260可以是通用處理器(GPP),并且在進(jìn)一步的實施例 中,可以具有用于執(zhí)行任一安全相關(guān)協(xié)議的處理的可執(zhí)行指令。[0104]雖然在圖2中用某些元件來說明設(shè)備200的硬件層206,但設(shè)備200的硬件部分 或部件可以包括計算裝置的任一類型和形式的元件、硬件或軟件,諸如此處結(jié)合圖1E和IF 來舉例說明和討論的計算裝置100。在一些實施例中,設(shè)備200可以包括服務(wù)器、網(wǎng)關(guān)、路由 器、交換機(jī)、網(wǎng)橋或其它類型的計算或網(wǎng)絡(luò)裝置,并具有與此相關(guān)的任一硬件和/或軟件元 件。[0105]設(shè)備200的操作系統(tǒng)將可用的系統(tǒng)存儲器分配、管理或者以其他方式分離成內(nèi)核 空間204和用戶空間204。在示例的軟件架構(gòu)200中,操作系統(tǒng)可以是任一類型和/或形 式的Unix操作系統(tǒng),盡管本發(fā)明并未這樣限制。因而,設(shè)備200可以運行任一操作系統(tǒng), 例如任意一種版本的微軟?Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于 Macintosh計算機(jī)的任一版本的Mac OS?、任一的嵌入式操作系統(tǒng)、任一的網(wǎng)絡(luò)操作系統(tǒng)、任一的實時操作系統(tǒng)、任一的開放源操作系統(tǒng)、任一的專用操作系統(tǒng)、用于移動計算裝置或 網(wǎng)絡(luò)裝置的任一操作系統(tǒng)、或者可以運行在設(shè)備200上并執(zhí)行此處所描述的操作的任一其 它操作系統(tǒng)。[0106]內(nèi)核空間204被保留用于運行內(nèi)核230,所述內(nèi)核230包括任一設(shè)備驅(qū)動程序、內(nèi) 核擴(kuò)展或其它內(nèi)核相關(guān)軟件。如本領(lǐng)域技術(shù)人員所知,內(nèi)核230是操作系統(tǒng)的核心,并提供 對應(yīng)用104的資源和硬件相關(guān)的元件的訪問、控制和管理。根據(jù)設(shè)備200的實施例,內(nèi)核空 間204還包括和有時還被稱為集成高速緩存的高速緩存管理器232 —起工作的多個網(wǎng)絡(luò)服 務(wù)或進(jìn)程,此處進(jìn)一步詳細(xì)描述其有益之處。另外,內(nèi)核230的實施例將依賴于由裝置200 所安裝、配置或者以其他方式使用的操作系統(tǒng)的實施例。[0107]在一個實施例中,裝置200包括諸如基于TCP/IP的堆棧的一個網(wǎng)絡(luò)堆棧267,用于 與客戶機(jī)102和/或服務(wù)器106進(jìn)行通信。在一個實施例中,網(wǎng)絡(luò)堆棧267用于與諸如網(wǎng) 絡(luò)108的第一網(wǎng)絡(luò)以及第二網(wǎng)絡(luò)110進(jìn)行通信。在一些實施例中,裝置200終止諸如客戶 機(jī)102的TCP連接的第一傳輸層連接,并建立由客戶機(jī)102使用的到服務(wù)器106的第二傳輸 層連接,例如,第二傳輸層連接在設(shè)備200和服務(wù)器106處終止。第一和第二傳輸層連接可 以經(jīng)由單個的網(wǎng)絡(luò)堆棧267建立。在其它實施例中,裝置200可以包括例如267和267’的 多個網(wǎng)絡(luò)堆棧,并且第一傳輸層連接可以在一個網(wǎng)絡(luò)堆棧267處建立或終止,而第二傳輸 層連接在第二網(wǎng)絡(luò)堆棧267’上建立或終止。例如,一個網(wǎng)絡(luò)堆棧可以用于在第一網(wǎng)絡(luò)上接 收和發(fā)送網(wǎng)絡(luò)分組,而另一個網(wǎng)絡(luò)堆棧用于在第二網(wǎng)絡(luò)上接收和發(fā)送網(wǎng)絡(luò)分組。在一個實 施例中,網(wǎng)絡(luò)堆棧267包括用于對設(shè)備200發(fā)送的一個或多個網(wǎng)絡(luò)分組排隊的緩沖器243。[0108]如圖2所示,內(nèi)核空間204包括高速緩存管理器232、高速層2_7集成分組引擎 240、加密引擎234、策略引擎236和多協(xié)議壓縮邏輯238。在內(nèi)核空間204或內(nèi)核模式而不 是用戶空間202中單獨以及組合地運行這些部件或進(jìn)程232、240、234、236和238改進(jìn)每一 個這些部件的性能。內(nèi)核操作意味著這些部件或進(jìn)程232、240、234、236和238運行在裝置 200的操作系統(tǒng)的核心地址空間中。例如,在內(nèi)核模式中運行加密引擎234通過將加密與解 密操作移到內(nèi)核來改善加密性能,從而減少在內(nèi)核模式中的存儲空間或內(nèi)核線程與用戶模 式中的存儲空間或線程之間的轉(zhuǎn)換的次數(shù)。例如,可以不需要將內(nèi)核模式中獲得的數(shù)據(jù)傳 遞或復(fù)制到運行在用戶模式中的進(jìn)程或線程,例如從內(nèi)核級的數(shù)據(jù)結(jié)構(gòu)到用戶級的數(shù)據(jù)結(jié) 構(gòu)。在另一個方面,還減少了在內(nèi)核模式與用戶模式之間的上下文轉(zhuǎn)換的次數(shù)。另外,在內(nèi) 核空間204中可以更有效地執(zhí)行在任意一個部件或進(jìn)程232、240、235、236和238之間通信 和通信的同步。[0109]在一些實施例中,部件232、240、234、236和238的任一部分可以運行或操作在內(nèi) 核空間204中,而這些部件232、240、234、236和238的其它部分可以運行或操作在用戶空 間202中。在一個實施例中,設(shè)備200使用提供對一個或多個網(wǎng)絡(luò)分組的任一部分的訪問 的內(nèi)核級數(shù)據(jù)結(jié)構(gòu),例如,網(wǎng)絡(luò)分組包括來自于客戶機(jī)102的請求或來自于服務(wù)器106的響 應(yīng)。在一些實施例中,可以由分組引擎240經(jīng)由到網(wǎng)絡(luò)堆棧267的傳輸層驅(qū)動程序接口或 過濾器來獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括可經(jīng)由與網(wǎng)絡(luò)堆棧267相關(guān)的內(nèi) 核空間204存取的任一接口和/或數(shù)據(jù)、由網(wǎng)絡(luò)堆棧267接收或傳送的網(wǎng)絡(luò)業(yè)務(wù)量或分組。 在其它實施例中,可以由部件或進(jìn)程232、240、234、236和238中的任意一個來使用內(nèi)核級 數(shù)據(jù)結(jié)構(gòu),以執(zhí)行部件或進(jìn)程的期望的操作。在一個實施例中,部件232、240、234、236和238在使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時運行于內(nèi)核模式204中,而在另一個實施例中,部件232、240、 234、236和238在使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時運行于用戶模式中。在一些實施例中,可以將內(nèi)核 級數(shù)據(jù)結(jié)構(gòu)復(fù)制或傳遞到第二內(nèi)核級數(shù)據(jù)結(jié)構(gòu)或任一期望的用戶級數(shù)據(jù)結(jié)構(gòu)。[0110]高速緩存管理器232可以包括軟件、硬件或軟件和硬件的任一組合,以提供對諸 如由發(fā)信服務(wù)器106提供的對象或動態(tài)生成的對象的任一類型和形式的內(nèi)容的高速緩存 訪問、控制和管理。由高速緩存管理器232處理和保存的數(shù)據(jù)、對象或內(nèi)容可以包括諸如 標(biāo)記語言的或者通過任一協(xié)議傳達(dá)的任一格式的數(shù)據(jù)。在一些實施例中,高速緩存管理器 232復(fù)制存儲在別處的原始數(shù)據(jù)或者以前計算、生成或發(fā)送的數(shù)據(jù),其中原始數(shù)據(jù)也許需要 相對于讀取高速緩存元件來說更長的訪問時間以取出、計算或者以其他方式獲取。一旦數(shù) 據(jù)被保存在高速緩存元件中,未來的使用可以通過訪問高速緩存的拷貝而不是重新取回或 再計算原始數(shù)據(jù)來進(jìn)行,從而減少訪問時間。在一些實施例中,高速緩存元件可以包括裝置 200的存儲器264中的數(shù)據(jù)對象。在其它實施例中,高速緩存元件可以包括具有比存儲器 264更快的訪問時間的存儲器。在另一個實施例中,高速緩存元件可以包括諸如硬盤的一部 分的裝置200的任一類型和形式的存儲元件。在一些實施例中,處理單元262可以提供由 高速緩存管理器232使用的高速緩存。然而在進(jìn)一步的實施例中,高速緩存管理器232可 以使用存儲器、存儲裝置或處理單元的任一部分和組合,以用于高速緩存數(shù)據(jù)、對象及其它 內(nèi)容。[0111]進(jìn)一步地,高速緩存管理器232包括任一邏輯、功能、規(guī)則或操作,以執(zhí)行此處所 描述的設(shè)備200的技術(shù)的任一實施例。例如,高速緩存管理器232包括根據(jù)失效時間周期 的期滿或一旦從客戶機(jī)102或服務(wù)器106接收到失效命令來使對象無效的邏輯或功能。在 一些實施例中,高速緩存管理器232可以作為在內(nèi)核空間204中執(zhí)行的程序、服務(wù)、進(jìn)程或 任務(wù)來操作,而在其它實施例中是在用戶空間202中操作。在一個實施例中,高速緩存管理 器232的第一部分在用戶空間202中執(zhí)行,而第二部分在內(nèi)核空間204中執(zhí)行。在一些實施 例中,高速緩存管理器232可以包括任一類型的通用處理器(GPP)或者諸如現(xiàn)場可編程門 陣列(FPGA)、可編程邏輯器件(PLD)或?qū)S眉呻娐?ASIC)的任一其它類型的集成電路。[0112]例如,策略引擎236可以包括智能統(tǒng)計引擎或者其它的可編程應(yīng)用。在一個實施 例中,策略引擎236提供配置機(jī)制以允許用戶標(biāo)識、指定、限定或配置高速緩存策略。在一 些實施例中,策略引擎236還可以訪問存儲器以支持諸如查找表或哈希表的數(shù)據(jù)結(jié)構(gòu)來啟 用用戶選擇的高速緩存策略決策。在其它實施例中,策略引擎236可以包括任一邏輯、規(guī) 貝U、功能或操作,以便確定和提供除了由設(shè)備200執(zhí)行的安全、網(wǎng)絡(luò)業(yè)務(wù)量、網(wǎng)絡(luò)訪問、壓縮 或任一其它功能或操作的訪問、控制和管理之外的由設(shè)備200高速緩存的對象、數(shù)據(jù)或內(nèi) 容的訪問、控制和管理。此處進(jìn)一步描述特定高速緩存策略的進(jìn)一步的實例。[0113]在一些實施例中,策略引擎236可以提供配置機(jī)制以允許用戶標(biāo)識、指定、限定或 配置指導(dǎo)包括但不限于圖2B中描述的諸如vServers275、VPN功能280、內(nèi)聯(lián)網(wǎng)IP功能282、 交換功能284、DNS功能286、加速功能288、應(yīng)用防火墻功能290和監(jiān)控代理197的部件的 設(shè)備的任一其它部件或功能的行為的策略。在其它實施例中,策略引擎236可以響應(yīng)于任 一配置的策略來進(jìn)行檢查、評價、實現(xiàn)或者以其他方式產(chǎn)生作用,并且還可以響應(yīng)于策略來 指導(dǎo)一個或多個設(shè)備功能的操作。[0114]加密引擎234包括用于操控諸如SSL或TLS的任一安全相關(guān)協(xié)議的處理的任一邏輯、商業(yè)規(guī)則、功能或操作,或者另外的任一相關(guān)功能。例如,加密引擎234加密并解密經(jīng)由 設(shè)備200傳遞的網(wǎng)絡(luò)分組或者其中的任一部分。加密引擎234還可以為客戶機(jī)102a-102n、 服務(wù)器106a-106n或設(shè)備200設(shè)置或建立SSL或TLS連接。因而,加密引擎234提供SSL處 理的卸載和加速。在一個實施例中,加密引擎234使用隧道協(xié)議來在客戶機(jī)102a-102n和 服務(wù)器106a-106n之間提供虛擬專用網(wǎng)。在一些實施例中,加密引擎234與加密處理器260 進(jìn)行通信。在其它實施例中,加密引擎234包括運行在加密處理器260上的可執(zhí)行指令。[0115]多協(xié)議壓縮引擎238包括用于壓縮諸如由裝置200的網(wǎng)絡(luò)堆棧267使用的任意一 種協(xié)議的一個或多個協(xié)議的網(wǎng)絡(luò)分組的任一邏輯、商業(yè)規(guī)則、功能或操作。在一個實施例 中,多協(xié)議壓縮引擎238雙向地在客戶機(jī)102a-102n和服務(wù)器106a_106n之間壓縮任一的 基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(電子郵件)、文件傳送協(xié)議(FTP)、超文 本傳送協(xié)議(HTTP)、通用Internet文件系統(tǒng)(CIFS)協(xié)議(文件傳送)、獨立計算架構(gòu)(ICA) 協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在 其它實施例中,多協(xié)議壓縮引擎238提供基于超文本標(biāo)記語言(HTML)的協(xié)議的壓縮,并且 在一些實施例中提供諸如可擴(kuò)展標(biāo)記語言(XML)的任一標(biāo)記語言的壓縮。在一個實施例中, 多協(xié)議壓縮引擎238提供諸如為設(shè)備200設(shè)計用于設(shè)備200通信的的任一協(xié)議的任一高性 能協(xié)議的壓縮。在另一個實施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮 任一通信的任一有效載荷或任一通信,所述修改的傳輸控制協(xié)議諸如事務(wù)TCP (T/TCP)、具 有選擇確認(rèn)的TCP (TCP-SACK)、具有大窗口的TCP (TCP-LW)、諸如TCP-Vegas協(xié)議的擁塞 預(yù)測協(xié)議以及TCP欺騙協(xié)議。[0116]因而,多協(xié)議壓縮引擎238為經(jīng)由桌面客戶機(jī)以及甚至移動客戶機(jī)訪問應(yīng)用的用 戶加速性能,所述桌面客戶機(jī)例如微軟Outlook以及諸如由諸如Oracle、SAP和Siebel的 通用的企業(yè)應(yīng)用所啟動的任一客戶機(jī)的非web瘦客戶機(jī),所述移動客戶機(jī)例如掌上電腦。 在一些實施例中,通過執(zhí)行于內(nèi)核模式204中以及與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎240 結(jié)合在一起,多協(xié)議壓縮引擎238可以壓縮諸如任一應(yīng)用層協(xié)議的由TCP/IP協(xié)議所攜帶的 任意一種協(xié)議。[0117]通常也被稱為分組處理引擎或分組引擎的高速層2-7集成分組引擎240負(fù)責(zé)管理 由設(shè)備200經(jīng)由網(wǎng)絡(luò)端口 266接收和發(fā)送的分組的內(nèi)核級處理。高速層2-7集成分組引擎 240可以包括用于在例如接收網(wǎng)絡(luò)分組或發(fā)送網(wǎng)絡(luò)分組的處理期間排隊一個或多個網(wǎng)絡(luò)分 組的緩沖器。另外,高速層2-7集成分組引擎240與一個或多個網(wǎng)絡(luò)堆棧267通信以經(jīng)由 網(wǎng)絡(luò)端口 266發(fā)送和接收網(wǎng)絡(luò)分組。高速層2-7集成分組引擎240和加密引擎234、高速緩 存管理器232、策略引擎236和多協(xié)議壓縮邏輯238 —起工作。更具體地,加密引擎234被 配置為執(zhí)行分組的SSL處理,策略引擎236被配置為執(zhí)行諸如請求級內(nèi)容交換和請求級高 速緩存重定向的與業(yè)務(wù)量管理相關(guān)的功能,而多協(xié)議壓縮邏輯238被配置為執(zhí)行與數(shù)據(jù)的 壓縮和解壓縮相關(guān)的功能。[0118]高速層2-7集成分組引擎240包括分組處理定時器242。在一個實施例中,分組處 理定時器242提供一個或多個時間間隔以觸發(fā)輸入(B卩,接收)或輸出(B卩,發(fā)送)網(wǎng)絡(luò)分組的 處理。在一些實施例中,高速層2-7集成分組引擎240響應(yīng)于定時器242來處理網(wǎng)絡(luò)分組。 分組處理定時器242提供任一類型和形式的信號給分組引擎240,以通知、觸發(fā)或傳達(dá)時間 相關(guān)的事件、間隔或發(fā)生。在許多實施例中,分組處理定時器242以例如像100毫秒、50毫秒或25毫秒這樣的毫秒級來進(jìn)行操作。例如,在一些實施例中,分組處理定時器242提供 時間間隔或者以其他方式使高速層2-7集成分組引擎240以10毫秒的時間間隔來處理網(wǎng) 絡(luò)分組,而在其它實施例中按5毫秒的時間間隔,以及甚至在更進(jìn)一步的實施例中短到3、2 或I毫秒的時間間隔。在操作期間,高速層2-7集成分組引擎240可以與加密引擎234、高 速緩存管理器232、策略引擎236和多協(xié)議壓縮引擎238交互、集成或通信。因而,可以響 應(yīng)于分組處理定時器242和/或分組引擎240來執(zhí)行加密引擎234、高速緩存管理器232、 策略引擎236和多協(xié)議壓縮邏輯238的任一邏輯、功能或操作。因此,可以以例如小于或等 于10毫秒的時間間隔的通過分組處理定時器242提供的時間間隔的粒度來執(zhí)行加密引擎 234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任一邏輯、功能或操作。 例如,在一個實施例中,高速緩存管理器232可以響應(yīng)于高速層2-7集成分組引擎240和/ 或分組處理定時器242來執(zhí)行任一高速緩存對象的失效。在另一個實施例中,可以將高速 緩存對象的滿期或失效時間設(shè)置為與分組處理定時器242的時間間隔相同的粒度級,例如 每10毫秒。[0119]與內(nèi)核空間204不同,用戶空間202是由用戶模式應(yīng)用或者以其他方式運行于用 戶模式的程序所使用的存儲器區(qū)域或部分操作系統(tǒng)。用戶模式應(yīng)用可以不直接訪問內(nèi)核空 間204而使用服務(wù)調(diào)用以訪問內(nèi)核服務(wù)。如圖2所示,設(shè)備200的用戶空間202包括圖形 用戶界面(⑶1)210、命令行接口( CLI) 212、命令解釋程序(she 11)服務(wù)214、健康監(jiān)測程序 216和守護(hù)服務(wù)218。⑶1210和CLI212提供一個裝置,通過所述裝置,系統(tǒng)管理員或其它用 戶可以與設(shè)備200的操作相互作用并控制設(shè)備200的操作,例如通過設(shè)備200的操作系統(tǒng), 并且兩者之一是用戶空間202或內(nèi)核空間204。⑶1210可以是任一類型和形式的圖形用戶 界面,并且可以通過文本、圖形或者以其他方式通過像瀏覽器的任一類型的程序或應(yīng)用來 呈現(xiàn)。CLI212可以是任一類型和形式的命令行或基于文本的接口,例如由操作系統(tǒng)提供的 命令行。例如,CLI212可以包括命令解釋程序,所述命令解釋程序是允許用戶與操作系統(tǒng) 相互作用的工具。在一些實施例中,CLI212可以通過bash、csh、tcsh或ksh型命令解釋程 序來提供。命令解釋程序服務(wù)214包括程序、服務(wù)、任務(wù)、進(jìn)程或可執(zhí)行指令以支持用戶通 過⑶1210和/或CLI212與設(shè)備200或操作系統(tǒng)相互作用。[0120]健康監(jiān)測程序216被用于監(jiān)控、檢查、報告和確保網(wǎng)絡(luò)系統(tǒng)在正常工作以及用戶 通過網(wǎng)絡(luò)接收所請求的內(nèi)容。健康監(jiān)測程序216包括一個或多個程序、服務(wù)、任務(wù)、進(jìn)程或 可執(zhí)行指令以提供用于監(jiān)測設(shè)備200的任一活動的邏輯、規(guī)則、功能或操作。在一些實施例 中,健康監(jiān)測程序216攔截并檢查經(jīng)由設(shè)備200傳遞的任一網(wǎng)絡(luò)業(yè)務(wù)量。在其它實施例中, 健康監(jiān)測程序216通過任一合適的方法和/或機(jī)制與一個或多個下列單元連接:加密引擎 234、高速緩存管理器232、策略引擎236、多協(xié)議壓縮邏輯238、分組引擎240、守護(hù)服務(wù)218 和命令解釋程序服務(wù)214。因而,健康監(jiān)測程序216可以調(diào)用任一應(yīng)用編程接口(API)以確 定設(shè)備200的任一部分的狀態(tài)、狀況或健康。例如,健康監(jiān)測程序216可以周期性地查驗或 發(fā)送一個情況查詢以檢測程序、進(jìn)程、服務(wù)或任務(wù)是否有效以及當(dāng)前正在運行。在另一個實 例中,健康監(jiān)測程序216可以檢查由任一程序、進(jìn)程、服務(wù)或任務(wù)提供的任一狀態(tài)、錯誤或 歷史記錄,以確定設(shè)備200的任一部分的任一情況、狀態(tài)或錯誤。[0121]守護(hù)服務(wù)218是連續(xù)或在后臺運行并處理由設(shè)備200接收到的周期性服務(wù)請求的 程序。在一些實施例中,守護(hù)服務(wù)可以將請求轉(zhuǎn)發(fā)給其它程序或進(jìn)程,例如酌情轉(zhuǎn)發(fā)給另一個守護(hù)服務(wù)218。如本領(lǐng)域技術(shù)人員所知,守護(hù)服務(wù)218可以無人監(jiān)護(hù)地運行以執(zhí)行諸如 網(wǎng)路控制的連續(xù)的或周期性的全系統(tǒng)的功能或者執(zhí)行任一期望的任務(wù)。在一些實施例中, 一個或多個守護(hù)服務(wù)218運行在用戶空間202中,而在其它實施例中,一個或多個守護(hù)服務(wù) 218運行在內(nèi)核空間中。[0122]現(xiàn)在參考圖2B,描述了設(shè)備200的另一個實施例。總的來說,設(shè)備200提供下列服 務(wù)、功能或操作中的一個或多個:用于一個或多個客戶機(jī)102以及一個或多個服務(wù)器106之 間的通信的SSL VPN連通性280、交換/負(fù)載平衡284、域名服務(wù)解析286、加速288和應(yīng)用 防火墻290。每個服務(wù)器106可以提供一個或多個網(wǎng)絡(luò)相關(guān)的服務(wù)270a-270n (稱為服務(wù) 270)。例如,服務(wù)器106可以提供http服務(wù)270。設(shè)備200包括一個或多個虛擬服務(wù)器或 虛擬網(wǎng)際協(xié)議服務(wù)器,其被稱為vServer、VIP服務(wù)器或僅僅稱為VIP275a_275n (此處也被 稱為vServer275)。vServer275根據(jù)設(shè)備200的配置和操作來接收、攔截或者以其他方式 處理客戶機(jī)102和服務(wù)器106之間的通信。[0123]vServer275可以包括軟件、硬件或軟件和硬件的任一組合。vServer275可以包括 在設(shè)備200中的用戶模式202、內(nèi)核模式204中或其任一組合中操作的任一類型和形式的程 序、服務(wù)、任務(wù)、進(jìn)程或可執(zhí)行指令。vServer275包括任一邏輯、功能、規(guī)則或操作以執(zhí)行此 處所描述的技術(shù)的任一實施例,例如SSL VPN280、交換/負(fù)載平衡284、域名服務(wù)解析286、 加速288和應(yīng)用防火墻290。在一些實施例中,vServer275建立到服務(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ù)器。在一些實施例中,服務(wù)270是用于監(jiān)聽、接收和/或發(fā)送用 于諸如電子郵件、數(shù)據(jù)庫或企業(yè)應(yīng)用的應(yīng)用的通信的守護(hù)進(jìn)程或網(wǎng)絡(luò)驅(qū)動程序。在一些實 施例中,服務(wù)270可以在一個特定IP地址或IP地址和端口上進(jìn)行通信。[0124]在一些實施例中,vServer275將策略引擎236的一個或多個策略應(yīng)用到客戶機(jī) 102和服務(wù)器106之間的網(wǎng)絡(luò)通信。在一個實施例中,策略與VServer275有關(guān)。在另一個 實施例中,策略基于一個用戶或一組用戶。在又一個實施例中,策略是全局的并且應(yīng)用到一 個或多個vServers275a-275n以及經(jīng)由設(shè)備200通信的任一用戶或用戶組。在一些實施例 中,策略引擎的策略有條件,在所述條件時根據(jù)諸如網(wǎng)際協(xié)議地址、端口、協(xié)議類型、報頭或 分組中的字段的通信的任一內(nèi)容或者諸如用戶、用戶組、vServer275、傳輸層連接和/或客 戶機(jī)102或服務(wù)器106的標(biāo)識或?qū)傩缘耐ㄐ派舷挛膩響?yīng)用策略。[0125]在其它實施例中,設(shè)備200與策略引擎236通信或連接以確定對遠(yuǎn)程用戶或遠(yuǎn)程 客戶機(jī)102訪問服務(wù)器106的計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件的驗證和/或授權(quán)。在另 一個實施例中,設(shè)備200與策略引擎236通信或連接以確定對遠(yuǎn)程用戶或遠(yuǎn)程客戶機(jī)102 的驗證和/或授權(quán),以使應(yīng)用遞送系統(tǒng)190遞送計算環(huán)境15、應(yīng)用和/或數(shù)據(jù)文件的一個或 多個。在又一個實施例中,設(shè)備200根據(jù)策略引擎236對遠(yuǎn)程用戶或遠(yuǎn)程客戶機(jī)103的驗 證和/或授權(quán)來建立VPN或SSL VPN連接。在一個實施例中,設(shè)備102根據(jù)策略引擎236 的策略來控制網(wǎng)絡(luò)業(yè)務(wù)量和通信會話的流量。例如,設(shè)備200可以根據(jù)策略引擎236來控 制對計算環(huán)境15、應(yīng)用或數(shù)據(jù)文件的訪問。[0126]在一些實施例中,vServer275建立諸如經(jīng)由客戶機(jī)代理120與客戶機(jī)102的TCP 或UDP連接的傳輸層連接。在一個實施例中,vServer275監(jiān)聽并接收來自于客戶機(jī)102的通信。在其它實施例中,vServer275與客戶服務(wù)器106建立諸如TCP或UDP連接的傳輸層 連接。在一個實施例中,vServer275建立到運行在服務(wù)器106上的服務(wù)器270的網(wǎng)際協(xié)議 地址和端口的傳輸層連接。在另一個實施例中,vServer275將到客戶機(jī)102的第一傳輸層 連接與到服務(wù)器106的第二傳輸層連接關(guān)聯(lián)起來。在一些實施例中,VSerVer275建立到服 務(wù)器106的傳輸層連接池并多路復(fù)用經(jīng)由所述池化的傳輸層連接的客戶機(jī)請求。[0127]在一些實施例中,設(shè)備200提供在客戶機(jī)102和服務(wù)器106之間的SSL VPN連接 280。例如,第一網(wǎng)絡(luò)102上的客戶機(jī)102請求建立到第二網(wǎng)絡(luò)104’上的服務(wù)器106的連 接。在一些實施例中,第二網(wǎng)絡(luò)104’是不可從第一網(wǎng)絡(luò)104路由的。在其它實施例中,客 戶機(jī)102在公用網(wǎng)104上,而服務(wù)器106在諸如公司網(wǎng)的專用網(wǎng)104’上。在一個實施例 中,客戶機(jī)代理120攔截第一網(wǎng)絡(luò)104上的客戶機(jī)102的通信,加密所述通信,并經(jīng)由第一 傳輸層連接發(fā)送所述通信到設(shè)備200。設(shè)備200將第一網(wǎng)絡(luò)104上的第一傳輸層連接關(guān)聯(lián) 到第二網(wǎng)絡(luò)104上的到服務(wù)器106的第二傳輸層連接。設(shè)備200從客戶機(jī)代理102接收被 攔截的通信,解密所述通信,并經(jīng)由第二傳輸層連接發(fā)送所述通信到第二網(wǎng)絡(luò)104上的服 務(wù)器106。第二傳輸層連接可以是池化的傳輸層連接。因而,設(shè)備200提供在兩個網(wǎng)絡(luò)104 和104’之間用于客戶機(jī)102的端到端安全傳輸層連接。[0128]在一個實施例中,設(shè)備200在虛擬專用網(wǎng)104上寄載客戶機(jī)102的內(nèi)聯(lián)網(wǎng)網(wǎng)際協(xié) 議或內(nèi)聯(lián)網(wǎng)IP282地址??蛻魴C(jī)102具有諸如第一網(wǎng)絡(luò)104上的網(wǎng)際協(xié)議(IP)地址和/或 主機(jī)名的本地網(wǎng)絡(luò)標(biāo)識符。當(dāng)經(jīng)由設(shè)備200連接到第二網(wǎng)絡(luò)104’時,設(shè)備200在第二網(wǎng)絡(luò) 104’上為客戶機(jī)102建立、分配或者以其他方式提供內(nèi)聯(lián)網(wǎng)IP,其是諸如IP地址和/或主 機(jī)名的網(wǎng)絡(luò)標(biāo)識符。使用客戶機(jī)的建立的內(nèi)聯(lián)網(wǎng)IP282,設(shè)備200在第二或?qū)S镁W(wǎng)104’上 監(jiān)聽并接收指向客戶機(jī)102的任一通信。在一個實施例中,設(shè)備200在第二專用網(wǎng)104上 充當(dāng)或代表客戶機(jī)102。例如,在另一個實施例中,vServer275監(jiān)聽并響應(yīng)到客戶機(jī)102的 內(nèi)聯(lián)網(wǎng)IP282的通信。在一些實施例中,如果第二網(wǎng)絡(luò)104’上的計算裝置100發(fā)送請求, 則設(shè)備200處理所述請求就像它是客戶機(jī)102 —樣。例如,設(shè)備200可以響應(yīng)到客戶機(jī)的 內(nèi)聯(lián)網(wǎng)IP282的查驗。在另一個實例中,設(shè)備可以與第二網(wǎng)絡(luò)104上的請求與客戶機(jī)的內(nèi) 聯(lián)網(wǎng)IP282連接的計算裝置100建立諸如TCP或UDP連接的連接。[0129]在一些實施例中,設(shè)備200提供下列一個或多個加速技術(shù)288來在客戶機(jī)102和 服務(wù)器106之間進(jìn)行通信:1)壓縮;2)解壓縮;3)傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路 復(fù)用;5)傳輸控制協(xié)議緩沖;以及6)高速緩存。在一個實施例中,設(shè)備200通過打開與每 個服務(wù)器106的一個或多個傳輸層連接并維持這些連接以允許客戶機(jī)經(jīng)由因特網(wǎng)的重復(fù) 數(shù)據(jù)訪問來減輕服務(wù)器106的通過反復(fù)打開和關(guān)閉到客戶機(jī)102的傳輸層連接所造成的大 量處理負(fù)載。這個技術(shù)在這里被稱為“連接池”。[0130]在一些實施例中,為了經(jīng)由池化的傳輸層連接來無縫接合從客戶機(jī)102到服務(wù)器 106的通信,設(shè)備200通過在傳輸層協(xié)議級修改序號和確認(rèn)號來轉(zhuǎn)換或多路復(fù)用通信。這 被稱為“連接多路復(fù)用”。在一些實施例中,不需要應(yīng)用層協(xié)議相互作用。例如,在入站分組 (即,自客戶機(jī)102接收的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)樵O(shè)備200的輸出 端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址被改變?yōu)轭A(yù)期的服務(wù)器的網(wǎng)絡(luò)地址。在出站分組(即,自 服務(wù)器106接收的一個分組)的情況中,源網(wǎng)絡(luò)地址被從服務(wù)器106的網(wǎng)絡(luò)地址改變?yōu)樵O(shè)備 200的輸出端口的網(wǎng)絡(luò)地址,而目的地址被從設(shè)備200的網(wǎng)絡(luò)地址改變?yōu)檎埱蟮目蛻魴C(jī)102的網(wǎng)絡(luò)地址。所述分組的序號和確認(rèn)號也被轉(zhuǎn)換為到客戶機(jī)102的設(shè)備200的傳輸層連接 上的客戶機(jī)102所期待的序號和確認(rèn)。在一些實施例中,傳輸層協(xié)議的分組校驗和被重新 計算以解釋這些轉(zhuǎn)換。[0131]在另一個實施例中,設(shè)備200為客戶機(jī)102和服務(wù)器106之間的通信提供交換或 負(fù)載平衡功能284。在一些實施例中,設(shè)備200根據(jù)層4或應(yīng)用層請求數(shù)據(jù)來分配業(yè)務(wù)量并 將客戶機(jī)請求指向服務(wù)器106。在一個實施例中,雖然網(wǎng)絡(luò)分組的網(wǎng)絡(luò)層或?qū)?標(biāo)識了目的 服務(wù)器106,但設(shè)備200通過作為傳輸層分組的有效載荷而攜帶的應(yīng)用信息和數(shù)據(jù)來確定 服務(wù)器106以分配網(wǎng)絡(luò)分組。在一個實施例中,設(shè)備200的健康監(jiān)測程序216監(jiān)控服務(wù)器 的健康以確定為其分配客戶機(jī)的請求的服務(wù)器106。在一些實施例中,如果設(shè)備200探測到 服務(wù)器106不可用或具有超過預(yù)定閾值的負(fù)載,則設(shè)備200可以將客戶機(jī)請求指向或分配 到另一個服務(wù)器106。[0132]在一些實施例中,設(shè)備200充當(dāng)域名服務(wù)(DNS)解析器或者以其他方式提供來自 于客戶機(jī)102的DNS請求的解析。在一些實施例中,設(shè)備攔截由客戶機(jī)102發(fā)送的DNS請 求。在一個實施例中,設(shè)備200響應(yīng)具有設(shè)備200的IP地址或由設(shè)備200寄載的IP地址 的客戶機(jī)的DNS請求。在該實施例中,客戶機(jī)102發(fā)送用于域名的網(wǎng)絡(luò)通信到設(shè)備200。在 另一個實施例中,設(shè)備200響應(yīng)具有第二設(shè)備200’的IP地址或由第二設(shè)備200’寄載的IP 地址的客戶機(jī)的DNS請求。在一些實施例中,設(shè)備200響應(yīng)具有由設(shè)備200確定的服務(wù)器 106的IP地址的客戶機(jī)的DNS請求。[0133]在又一個實施例中,設(shè)備200為客戶機(jī)102和服務(wù)器106之間的通信提供應(yīng)用防 火墻功能290。在一個實施例中,策略引擎236提供用于檢測和阻塞非法請求的規(guī)則。在一 些實施例中,應(yīng)用防火墻290防止拒絕服務(wù)(DoS)攻擊。在其它實施例中,設(shè)備檢查被攔截 的請求的內(nèi)容以識別和阻塞基于應(yīng)用的攻擊。在一些實施例中,規(guī)則/策略引擎236包括 用于提供對多個種類和類型的基于web或因特網(wǎng)的脆弱點的保護(hù)的一個或多個應(yīng)用防火 墻或安全控制策略,例如下列的一個或多個:1)緩沖器溢出,2) CG1-BIN參數(shù)操縱,3)格式 /隱藏字段操縱,4)強(qiáng)制瀏覽,5) cookie或會話中毒,6)破譯的訪問控制表(ACLs)或弱的 口令,7 )跨站點的腳本(XSS),8 )命令注入,9 ) SQL注入,10 )錯誤觸發(fā)感測信息泄漏,11)不 安全的使用加密技術(shù),12)服務(wù)器誤配置,13)后門和調(diào)試選擇,14) web站點毀損,15)平臺 或操作系統(tǒng)的脆弱點,以及16)零天攻擊。在一個實施例中,對下列情況的一種或多種應(yīng)用 防火墻290以檢查或分析網(wǎng)絡(luò)通信的形式來提供HTML格式字段的保護(hù):1)返回所需的字 段,2)不允許附加字段,3)只讀和隱藏字段強(qiáng)制(enforcement),4)下拉列表和單選按鈕字 段的一致,以及5)格式字段最大長度強(qiáng)制。在一些實施例中,應(yīng)用防火墻290確保cookies 不被修改。在其它實施例中,應(yīng)用防火墻290通過強(qiáng)制實施合法URL來防止強(qiáng)制瀏覽。[0134]還是在其它實施例中,應(yīng)用防火墻290保護(hù)在網(wǎng)絡(luò)通信中包含的任一機(jī)密信息。 應(yīng)用防火墻290可以根據(jù)引擎236的規(guī)則或策略來檢查或分析任一網(wǎng)絡(luò)通信以識別在網(wǎng)絡(luò) 分組的任一字段中的任一機(jī)密信息。在一些實施例中,應(yīng)用防火墻290在網(wǎng)絡(luò)通信中識別 信用卡號、口令、社會保險號、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出現(xiàn)。網(wǎng)絡(luò)通 信的編碼部分可以包括這些出現(xiàn)或機(jī)密信息。在一個實施例中,根據(jù)這些出現(xiàn),應(yīng)用防火墻 290可以在網(wǎng)絡(luò)通信上對策略采取行動,例如阻止網(wǎng)絡(luò)通信的發(fā)送。在另一個實施例中,應(yīng) 用防火墻290可以重寫、移除或者以其他方式掩蓋這樣識別出的出現(xiàn)或機(jī)密信息。[0135]仍然參考圖2B,設(shè)備200可以包括如上面結(jié)合圖1D所討論的性能監(jiān)控代理197。 在一個實施例中,設(shè)備200從如圖1D中所描述的監(jiān)控業(yè)務(wù)198或監(jiān)控服務(wù)器106中接收監(jiān) 控代理197。在一些實施例中,設(shè)備200在諸如磁盤的存儲裝置中保存監(jiān)控代理197,以用 于遞送給與設(shè)備200通信的任一客戶機(jī)或服務(wù)器。例如,在一個實施例中,設(shè)備200在接收 到建立傳輸層連接的請求時發(fā)送監(jiān)控代理197給客戶機(jī)。在其它實施例中,設(shè)備200在建 立與客戶機(jī)102的傳輸層連接時發(fā)送監(jiān)控代理197。在另一個實施例中,設(shè)備200在攔截或 檢測對web頁面的請求時發(fā)送監(jiān)控代理197給客戶機(jī)。在又一個實施例中,設(shè)備200響應(yīng) 于監(jiān)控服務(wù)器198的請求來發(fā)送監(jiān)控代理197到客戶機(jī)或服務(wù)器。在一個實施例中,設(shè)備 200發(fā)送監(jiān)控代理197到第二設(shè)備200’或設(shè)備205。[0136]在其它實施例中,設(shè)備200執(zhí)行監(jiān)控代理197。在一個實施例中,監(jiān)控代理197測 量和監(jiān)控在設(shè)備200上執(zhí)行的任一應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或線程的性能。例如,監(jiān)控 代理197可以監(jiān)控和測量vServers275A-275N的性能與操作。在另一個實施例中,監(jiān)控代 理197測量和監(jiān)控設(shè)備200的任一傳輸層連接的性能。在一些實施例中,監(jiān)控代理197測 量和監(jiān)控通過設(shè)備200的任一用戶會話的性能。在一個實施例中,監(jiān)控代理197測量和監(jiān) 控通過設(shè)備200的諸如SSL VPN會話的任一虛擬專用網(wǎng)連接和/或會話的性能。在進(jìn)一步 的實施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200的存儲器、CPU和磁盤使用以及性能。在又 一個實施例中,監(jiān)控代理197測量和監(jiān)控諸如SSL卸載、連接池和多路復(fù)用、高速緩存以及 壓縮的由設(shè)備200執(zhí)行的任一加速技術(shù)288的性能。在一些實施例中,監(jiān)控代理197測量 和監(jiān)控由設(shè)備200執(zhí)行的任一負(fù)載平衡和/或內(nèi)容交換284的性能。在其它實施例中,監(jiān) 控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的應(yīng)用防火墻290保護(hù)和處理的性能。[0137]C.客戶機(jī)代理[0138]現(xiàn)在參考圖3,描述了客戶機(jī)代理120的一個實施例??蛻魴C(jī)102包括用于經(jīng)由網(wǎng) 絡(luò)104與設(shè)備200和/或服務(wù)器106建立和交換通信的客戶機(jī)代理120。簡單概述,客戶 機(jī)102在計算裝置100上操作,所述計算裝置100具有帶有內(nèi)核模式302和用戶模式303 的操作系統(tǒng)以及帶有一個或多個層310a-310b的網(wǎng)絡(luò)堆棧310。客戶機(jī)102已經(jīng)安裝和/ 或執(zhí)行一個或多個應(yīng)用。在一些實施例中,一個或多個應(yīng)用可以經(jīng)由網(wǎng)絡(luò)堆棧310傳遞到 網(wǎng)絡(luò)104。諸如web瀏覽器的一個應(yīng)用還可以包括一個第一程序322。例如,第一程序322 可以被用于在一些實施例中安裝和/或執(zhí)行客戶機(jī)代理120或者其任一部分??蛻魴C(jī)代理 120包括用于從一個或多個應(yīng)用中攔截來自于網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)通信的攔截機(jī)制或攔截 器 350。[0139]客戶機(jī)102的網(wǎng)絡(luò)堆棧310可以包括任一類型和形式的軟件或硬件或其任一組 合,以用于提供到網(wǎng)絡(luò)的連通性以及與網(wǎng)絡(luò)的通信。在一個實施例中,網(wǎng)絡(luò)堆棧310包括用 于網(wǎng)絡(luò)協(xié)議套件的軟件實現(xiàn)。網(wǎng)絡(luò)堆棧310可以包括一個或多個網(wǎng)絡(luò)層,例如如本領(lǐng)域技 術(shù)人員所認(rèn)識和理解的開放系統(tǒng)互連(OSI)通信模型的任一網(wǎng)絡(luò)層。因而,網(wǎng)絡(luò)堆棧310可 以包括用于下列OSI模型的任意一層的任一類型和形式的協(xié)議:1)物理鏈路層,2)數(shù)據(jù)鏈 路層,3 )網(wǎng)絡(luò)層,4)傳輸層,5 )會話層,6 )表示層以及7 )應(yīng)用層。在一個實施例中,網(wǎng)絡(luò)堆 棧310可以包括在網(wǎng)際協(xié)議(IP)的網(wǎng)絡(luò)層協(xié)議上的傳輸控制協(xié)議(TCP),通常被稱為TCP/ IP。在一些實施例中,可以在以太網(wǎng)協(xié)議上攜帶TCP/IP協(xié)議,所述以太網(wǎng)協(xié)議可以包括諸 如由IEEE802.3所覆蓋的那些協(xié)議的IEEE廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)協(xié)議的任一族。在一些實施例中,網(wǎng)絡(luò)堆棧310包括諸如IEEE802.11和/或移動網(wǎng)際協(xié)議的任一類型和形式 的無線協(xié)議。[0140]考慮到基于TCP/IP的網(wǎng)絡(luò),可以使用任一基于TCP/IP的協(xié)議,包括消息應(yīng)用編程 接口(MAPI)(電子郵件)、文件傳送協(xié)議(FTP)、超文本傳送協(xié)議(HTTP)、通用Internet文件 系統(tǒng)(CIFS)協(xié)議(文件傳送)、獨立計算架構(gòu)(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié) 議(WAP)、移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在另一個實施例中,網(wǎng)絡(luò)堆棧310包括諸 如修改的傳輸控制協(xié)議的任一類型和形式的傳輸控制協(xié)議,例如事務(wù)TCP (T/TCP)、具有選 擇確認(rèn)的TCP (TCP-SACK)、具有大窗口的TCP (TCP-LW)、諸如TCP-Vegas協(xié)議的擁塞預(yù)測 協(xié)議以及TCP欺騙協(xié)議。在其它實施例中,網(wǎng)絡(luò)堆棧310可以使用諸如IP上UDP的任一類 型和形式的用戶數(shù)據(jù)報協(xié)議(UDP),例如用于音頻通信或?qū)崟r數(shù)據(jù)通信。[0141]進(jìn)一步,網(wǎng)絡(luò)堆棧310可以包括諸如TCP驅(qū)動程序或網(wǎng)絡(luò)層驅(qū)動程序的支持一個 或多個層的一個或多個網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)驅(qū)動程序可以被包括作為計算裝置100的操作 系統(tǒng)的一部分或作為計算裝置100的任一網(wǎng)絡(luò)接口卡或其它網(wǎng)絡(luò)訪問部件的一部分。在一 些實施例中,網(wǎng)絡(luò)堆棧310的任意一種網(wǎng)絡(luò)驅(qū)動程序可以被定制、修改或改變以提供支持 此處描述的任一技術(shù)的網(wǎng)絡(luò)堆棧310的定制或修改部分。在其它實施例中,加速程序120 被設(shè)計和構(gòu)造以和由客戶機(jī)102的操作系統(tǒng)所安裝或者以其他方式提供的網(wǎng)絡(luò)堆棧310 — 起操作或聯(lián)合工作。[0142]網(wǎng)絡(luò)堆棧310包括用于接收、獲取、提供或者以其他方式訪問與客戶機(jī)102的網(wǎng)絡(luò) 通信相關(guān)的任一信息和數(shù)據(jù)的任一類型和形式的接口。在一個實施例中,到網(wǎng)絡(luò)堆棧310 的接口包括應(yīng)用編程接口(API)。接口還可以包括任一函數(shù)調(diào)用、掛鉤或過濾機(jī)制、事件或 回叫機(jī)制、或任一類型的連接技術(shù)。網(wǎng)絡(luò)堆棧310經(jīng)由接口可以接收或提供諸如對象的與 網(wǎng)絡(luò)堆棧310的功能或操作相關(guān)的任一類型和形式的數(shù)據(jù)結(jié)構(gòu)。例如,數(shù)據(jù)結(jié)構(gòu)可以包括 與網(wǎng)絡(luò)分組相關(guān)的信息和數(shù)據(jù)或者一個或多個網(wǎng)絡(luò)分組。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)包括 諸如傳輸層的網(wǎng)絡(luò)分組的在網(wǎng)絡(luò)堆棧310的協(xié)議層處理的網(wǎng)絡(luò)分組的一部分。在一些實施 例中,數(shù)據(jù)結(jié)構(gòu)325包括內(nèi)核級數(shù)據(jù)結(jié)構(gòu),而在其它實施例中,數(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)、或者運行在內(nèi)核模式302中的網(wǎng)絡(luò)驅(qū)動程序或其它軟件、或者由 運行或操作在操作系統(tǒng)的內(nèi)核模式中的服務(wù)、進(jìn)程、任務(wù)、線程或其它可執(zhí)行指令獲得或收 到的任一數(shù)據(jù)結(jié)構(gòu)。[0143]另外,例如數(shù)據(jù)鏈路或網(wǎng)絡(luò)層的網(wǎng)絡(luò)堆棧310的一些部分可以執(zhí)行或操作于內(nèi)核 模式302,而諸如網(wǎng)絡(luò)堆棧310的應(yīng)用層的其它部分執(zhí)行或操作在用戶模式303中。例如, 網(wǎng)絡(luò)堆棧的第一部分310a可以給應(yīng)用提供對網(wǎng)絡(luò)堆棧310的用戶模式訪問,而網(wǎng)絡(luò)堆棧 310的第二部分310a提供對網(wǎng)絡(luò)的訪問。在一些實施例中,網(wǎng)絡(luò)堆棧的第一部分310a可以 包括諸如層5-7中的任意一個的網(wǎng)絡(luò)堆棧310的一個或多個較上的層。在其它實施例中, 網(wǎng)絡(luò)堆棧310的第二部分310b包括諸如層1-4中的任意一個這樣的一個或多個較低的層。 網(wǎng)絡(luò)堆棧310的第一部分310a和第二部分310b中的每一個可以包括網(wǎng)絡(luò)堆棧310的任一 部分,在任意一個或多個網(wǎng)絡(luò)層,在用戶模式203、內(nèi)核模式202或其組合中,或者在網(wǎng)絡(luò)層 的任一部分或網(wǎng)絡(luò)層的接口點或用戶模式203和內(nèi)核模式203的任一部分或接口點。[0144]攔截器350可以包括軟件、硬件或軟件和硬件的任一組合。在一個實施例中,攔截器350在網(wǎng)絡(luò)堆棧310中的任一點攔截網(wǎng)絡(luò)通信,并且將所述網(wǎng)絡(luò)通信重定向或發(fā)送到被 攔截器350或客戶機(jī)代理120所期望、管理或控制的目的地。例如,攔截器350可以攔截第 一網(wǎng)絡(luò)的網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)通信并發(fā)送網(wǎng)絡(luò)通信給設(shè)備200以用于在第二網(wǎng)絡(luò)104上的 傳輸。在一些實施例中,攔截器350包括含有驅(qū)動器的任一類型攔截器350,諸如被構(gòu)造和 設(shè)計為與網(wǎng)絡(luò)堆棧310連接和工作的網(wǎng)絡(luò)驅(qū)動程序。在一些實施例中,客戶機(jī)代理120和/ 或攔截器350在諸如傳輸層處的網(wǎng)絡(luò)堆棧310的一個或多個層操作。在一個實施例中,攔 截器350包括過濾器驅(qū)動程序、掛鉤機(jī)制或任一格式和類型的適當(dāng)?shù)木W(wǎng)絡(luò)驅(qū)動程序接口, 所述接口例如經(jīng)由傳輸驅(qū)動程序接口(TDI)來聯(lián)接于網(wǎng)絡(luò)堆棧的傳輸層。在一些實施例 中,攔截器350聯(lián)接于諸如傳輸層的第一協(xié)議層以及諸如傳輸協(xié)議層之上的任一層的例如 應(yīng)用協(xié)議層的另一個協(xié)議層。在一個實施例中,攔截器350可以包括遵照網(wǎng)絡(luò)驅(qū)動程序接 口規(guī)范(NDIS)的驅(qū)動程序或NDIS驅(qū)動程序。在另一個實施例中,攔截器350可以包括小 過濾器(min-filter)或迷你端口(min1-port)驅(qū)動程序。在一個實施例中,攔截器350或 者其部分操作于內(nèi)核模式202中。在另一個實施例中,攔截器350或者其部分操作于用戶 模式203中。在一些實施例中,攔截器350的一部分操作于內(nèi)核模式202中,而攔截器350 的另一部分操作于用戶模式203中。在其它實施例中,客戶機(jī)代理120操作于用戶模式203 中,但經(jīng)由攔截器350連接到內(nèi)核模式驅(qū)動程序、進(jìn)程、服務(wù)、任務(wù)或一部分操作系統(tǒng),以便 獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)225。在進(jìn)一步的實施例中,攔截器350是諸如應(yīng)用的用戶模式應(yīng)用或 程序。[0145]在一個實施例中,攔截器350攔截任一的傳輸層連接請求。在這些實施例中,攔截 器350執(zhí)行傳輸層應(yīng)用編程接口(API)調(diào)用以對于該位置設(shè)置目的信息,諸如所期望的位 置的目的地IP地址和/或端口。以此方式,攔截器350攔截并重定向傳輸層連接到由攔截 器350或客戶機(jī)代理120控制或管理的IP地址和端口。在一個實施例中,攔截器350為到 客戶機(jī)102的本地IP地址和端口的連接設(shè)置目的地信息,客戶機(jī)代理120在客戶機(jī)102的 本地IP地址和端口上進(jìn)行監(jiān)聽。例如,客戶機(jī)代理120可以包括在用于重定向的傳輸層通 信的本地IP地址和端口上監(jiān)聽的代理服務(wù)。在一些實施例中,客戶機(jī)代理120隨后傳達(dá)重 定向的傳輸層通信到設(shè)備200。[0146]在一些實施例中,攔截器350攔截域名服務(wù)(DNS)請求。在一個實施例中,客戶機(jī) 代理120和/或攔截器350解析DNS請求。在另一實施例中,攔截器發(fā)送被攔截的DNS請 求到設(shè)備200以用于DNS解析。在一個實施例中,設(shè)備200解析DNS請求并傳達(dá)DNS響應(yīng) 給客戶機(jī)代理120。在一些實施例中,設(shè)備200解析經(jīng)由另一設(shè)備200’或DNS服務(wù)器106 的DNS請求。[0147]在又一個實施例中,客戶機(jī)代理120可以包括兩個代理120和120’。在一個實施 例中,第一代理120可以包括操作于網(wǎng)絡(luò)堆棧310的網(wǎng)絡(luò)層的攔截器350。在一些實施例 中,第一代理120攔截諸如因特網(wǎng)控制消息協(xié)議(ICMP)請求(例如,查驗和跟蹤路由)的網(wǎng) 絡(luò)層請求。在其它實施例中,第二代理120’可以在傳輸層操作并攔截傳輸層通信。在一些 實施例中,第一代理120攔截在網(wǎng)絡(luò)堆棧210的一層處的通信,并與第二代理120’連接或 傳達(dá)被攔截的通信到第二代理120’。[0148]客戶機(jī)代理120和/或攔截器350可以相對于網(wǎng)絡(luò)堆棧310的任一其它協(xié)議層透 明的方式操作于協(xié)議層或與協(xié)議層連接。例如,在一個實施例中,攔截器350相對于諸如網(wǎng)絡(luò)層的傳輸層之下的任一協(xié)議層以及諸如會話、表示或應(yīng)用層協(xié)議的傳輸層之上的任一協(xié) 議層透明地來操作網(wǎng)絡(luò)堆棧310的傳輸層或與其連接。這允許網(wǎng)絡(luò)堆棧310的其它協(xié)議層 按意愿地操作而不用修改來使用攔截器350。因而,客戶機(jī)代理120和/或攔截器350可以 與傳輸層交互以保護(hù)、優(yōu)化、加速、路由或負(fù)載平衡經(jīng)由諸如TCP/IP之上的任一應(yīng)用層協(xié) 議的通過傳輸層攜帶的任一協(xié)議提供的任一通信。[0149]進(jìn)一步地,客戶機(jī)代理120和/或攔截器可以相對于任一應(yīng)用、客戶機(jī)102的用戶 以及諸如與客戶機(jī)102通信的服務(wù)器的任一其它計算裝置透明的方式來操作于網(wǎng)絡(luò)堆棧 310或與網(wǎng)絡(luò)堆棧310連接??蛻魴C(jī)代理120和/或攔截器350可以以一定方式安裝和/ 或執(zhí)行于客戶機(jī)102上而不修改應(yīng)用。在一些實施例中,客戶機(jī)102或與客戶機(jī)102通信 的計算裝置的用戶不知道客戶機(jī)代理120和/或攔截器350的存在、執(zhí)行或操作。因而,在 一些實施例中,相對于應(yīng)用、客戶機(jī)102的用戶、諸如服務(wù)器的另一個計算裝置、或者在由 攔截器350聯(lián)接的協(xié)議層之上和/或之下的任一協(xié)議層透明地來安裝、執(zhí)行和/或操作客 戶機(jī)代理120和/或攔截器350。[0150]客戶機(jī)代理120包括加速程序302、流客戶機(jī)306、收集代理304和/或監(jiān)控代理 197。在一個實施例中,客戶機(jī)代理120包括由位于Fort Lauderdale, Florida的Citrix Syestems公司開發(fā)的獨立計算架構(gòu)(ICA)客戶機(jī)或者其任一部分,并且還被稱為ICA客戶 機(jī)。在一些實施例中,客戶機(jī)120包括用于將應(yīng)用從服務(wù)器106流式傳輸?shù)娇蛻魴C(jī)102的 應(yīng)用流客戶機(jī)306。在一些實施例中,客戶機(jī)代理120包括用于加速客戶機(jī)102和服務(wù)器 106之間的通信的加速程序302。在另一個實施例中,客戶機(jī)代理120包括用于執(zhí)行端點檢 測/掃描以及為設(shè)備200和/或服務(wù)器106收集端點信息的收集代理304。[0151]在一些實施例中,加速程序302包括用于執(zhí)行一個或多個加速技術(shù)的客戶機(jī)側(cè)加 速程序,以加速、增強(qiáng)或者以其他方式改善客戶機(jī)與服務(wù)器106的通信和/或諸如訪問由服 務(wù)器106提供的應(yīng)用的對服務(wù)器106的訪問。加速程序302的可執(zhí)行指令的邏輯、功能和 /或操作可以執(zhí)行一個或多個的下列加速技術(shù):1)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3)傳輸 控制協(xié)議多路復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)經(jīng)由高速緩存管理器的高速緩存。另外, 加速程序302可以執(zhí)行對由客戶機(jī)102接收和/或發(fā)送的任一通信的加密和/或解密。在 一些實施例中,加速程序302以集成的方法或方式來執(zhí)行一個或多個加速技術(shù)。另外,加速 程序302可以在被攜帶為傳輸層協(xié)議的網(wǎng)絡(luò)分組的有效載荷的任一協(xié)議或多個協(xié)議上執(zhí) 行壓縮。[0152]流客戶機(jī)306包括用于接收和執(zhí)行來自于服務(wù)器106的流式傳輸?shù)膽?yīng)用的應(yīng)用、 程序、進(jìn)程、服務(wù)、任務(wù)或可執(zhí)行指令。服務(wù)器106可以將一個或多個應(yīng)用數(shù)據(jù)文件流式傳 輸?shù)搅骺蛻魴C(jī)306,以用于在客戶機(jī)102上播放、執(zhí)行所述應(yīng)用或者以其他方式使所述應(yīng)用 被執(zhí)行。在一些實施例中,服務(wù)器106發(fā)送一組壓縮的或封裝的應(yīng)用數(shù)據(jù)文件到流客戶機(jī) 306。在一些實施例中,多個應(yīng)用文件在文件服務(wù)器上被壓縮和存儲在諸如CAB、ZIP、SIT、 TAR、JAR或其它檔案(archive)的檔案文件中。在一個實施例中,服務(wù)器106解壓縮、解封 裝或解檔(unarchives)應(yīng)用文件,并發(fā)送所述文件到客戶機(jī)102。在另一個實施例中,客 戶機(jī)102解壓縮、解封裝或解檔應(yīng)用文件。流客戶機(jī)306動態(tài)地安裝應(yīng)用或其中的部分,并 執(zhí)行應(yīng)用。在一個實施例中,流客戶機(jī)306可以是可執(zhí)行程序。在一些實施例中,流客戶機(jī) 306可以運行另一個可執(zhí)行程序。[0153]收集代理304包括用于識別、獲得和/或收集關(guān)于客戶機(jī)102的信息的應(yīng)用、程 序、進(jìn)程、服務(wù)、任務(wù)或可執(zhí)行指令。在一些實施例中,設(shè)備200發(fā)送收集代理304到客戶機(jī) 102或客戶機(jī)代理120??梢愿鶕?jù)設(shè)備的策略引擎236的一個或多個策略來配置收集代理 304。在其它實施例中,收集代理304發(fā)送收集的有關(guān)客戶機(jī)102的信息給設(shè)備200。在一 個實施例中,設(shè)備200的策略引擎236使用收集的信息來確定并提供對客戶機(jī)到網(wǎng)絡(luò)104 的連接的訪問、驗證和授權(quán)控制。[0154]在一個實施例中,收集代理304包括端點檢測和掃描機(jī)制,其識別和確定客戶機(jī) 的一個或多個屬性或特性。例如,收集代理304可以識別和確定任意一個或多個以下的客 戶機(jī)側(cè)屬性:1)操作系統(tǒng)和/或操作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運行的服務(wù),4) 運行的進(jìn)程,和5)文件。收集代理304還可以識別和確定客戶機(jī)上的任意一個或多個下列 軟件的存在或版本:1)防病毒軟件,2)個人防火墻軟件,3)反垃圾郵件軟件,和4)因特網(wǎng) 安全軟件。策略引擎236可以具有根據(jù)客戶機(jī)或客戶機(jī)側(cè)屬性的任意一個或多個屬性或特 性的一個或多個策略。[0155]在一些實施例中,客戶機(jī)代理120包括如結(jié)合圖1D和2B所討論的監(jiān)控代理197。 監(jiān)控代理197可以是諸如Visual Basic或Java腳本的任一類型和形式的腳本。在一個實 施例中,監(jiān)控代理129監(jiān)控和測量任一部分的客戶機(jī)代理120的性能。例如,在一些實施例 中,監(jiān)控代理129監(jiān)控和測量加速程序302的性能。在另一個實施例中,監(jiān)控代理129監(jiān)控 和測量流客戶機(jī)306的性能。在其它實施例中,監(jiān)控代理129監(jiān)控和測量收集代理304的 性能。在又一個實施例中,監(jiān)控代理129監(jiān)控和測量攔截器350的性能。在一些實施例中, 監(jiān)控代理129監(jiān)控和測量客戶機(jī)102的諸如存儲器、CPU和磁盤的任一資源。[0156]監(jiān)控代理197可以監(jiān)控和測量客戶機(jī)的任一應(yīng)用的性能。在一個實施例中,監(jiān)控 代理129監(jiān)控和測量客戶機(jī)102上的瀏覽器的性能。在一些實施例中,監(jiān)控代理197監(jiān)控 和測量經(jīng)由客戶機(jī)代理120遞送的任一應(yīng)用的性能。在其它實施例中,監(jiān)控代理197測量 和監(jiān)控諸如基于web或HTTP響應(yīng)時間的應(yīng)用的最終用戶響應(yīng)時間。監(jiān)控代理197可以監(jiān) 控和測量ICA或RDP客戶機(jī)的性能。在另一個實施例中,監(jiān)控代理197測量和監(jiān)控用戶會 話或應(yīng)用會話的規(guī)格。在一些實施例中,監(jiān)控代理197測量和監(jiān)控ICA或RDP會話。在一 個實施例中,監(jiān)控代理197測量和監(jiān)控設(shè)備200在加速遞送應(yīng)用和/或數(shù)據(jù)到客戶機(jī)102 的過程中的性能。[0157]在一些實施例中以及仍然參考圖3,可以使用第一程序322來自動地、靜默地、透 明地或以其他方式地安裝和/或執(zhí)行客戶機(jī)代理120或者其中的諸如攔截器350的部分。 在一個實施例中,第一程序322包括諸如被加載到應(yīng)用并由應(yīng)用執(zhí)行的ActiveX控件或 Java控件或腳本的插件部件。例如,第一程序包括由web瀏覽器應(yīng)用加載并運行在例如應(yīng) 用的存儲空間或上下文中的ActiveX控件。在另一個實施例中,第一程序322包括由諸如 瀏覽器的應(yīng)用加載并運行的一組可執(zhí)行指令。在一個實施例中,第一程序322包括被設(shè)計 和構(gòu)造的程序來安裝客戶機(jī)代理120。在一些實施例中,第一程序322通過網(wǎng)絡(luò)來從另一 個計算裝置獲得、下載或接收客戶機(jī)代理120。在另一個實施例中,第一程序322是客戶機(jī) 102的操作系統(tǒng)上的諸如網(wǎng)絡(luò)驅(qū)動程序的安裝程序或用于安裝程序的即插即用管理器。[0158]D.用于配置和使用面向?qū)ο蟮牟呗员磉_(dá)式的系統(tǒng)和方法[0159]參見圖4A,示出用來促進(jìn)HTTP數(shù)據(jù)的處理的對象模型的部分的例子。總的來說,對象類被限定為HTTP協(xié)議中的多個元素。所限定的類包括請求405、響應(yīng)410、主機(jī)名415、 url420、查詢425、cookie430和文本435。每個類被限定為包括多個字段和/或方法,其可 以包括或者返回對應(yīng)于其他類的對象,或者可以包括或者返回諸如整數(shù)的其他數(shù)據(jù)類型。[0160]現(xiàn)在仍舊參見圖4A,更詳細(xì)地,對象模型可以包括允許計算裝置指定和操控數(shù)據(jù) 的一組限定的對象類,和/或允許計算裝置的用戶指導(dǎo)計算裝置的操作的一組限定的對象 類。對象模型可以具有和面向?qū)ο蟮脑O(shè)計或者編程關(guān)聯(lián)的任一特性,包括但不限于繼承、抽 象、封裝、和多態(tài)性??梢院痛颂幟枋龅拿嫦?qū)ο蟮谋磉_(dá)式結(jié)合使用的對象模型的例子包括 但不限于Java對象模型、組件對象模型(COM)和HTML文檔對象模型(D0M),以及這些模型 的部分的任一部分或者組合。在一些實施例中,對象模型或者對象模型的部分可對應(yīng)于協(xié) 議。例如,對象模型可以被建立來表示HTTP通信,具有提供類和用于訪問和操控HTTP通信 的方法的對象模型?;蛘?,對象模型可以被建立來表示TCP、IP、UDP、ICA或者SSL通信?;?者,對象模型可以被建立來表示設(shè)備,具有提供類和用于訪問和操控涉及網(wǎng)絡(luò)設(shè)備200的 狀態(tài)信息的方法的對象模型。[0161]對象類可以包括對象的抽象概要描述和與該對象關(guān)聯(lián)的任一方法。對象(即類的 具體實例)可以表示任一類型或者形式的數(shù)據(jù)、過程或者協(xié)議。示例的對象可以包括但不限 于串、文本、編號、列表、協(xié)議、數(shù)據(jù)流、連接、裝置、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)和網(wǎng)絡(luò)分組。[0162]對象類可以具有多個成員。對象類的成員可以包括任一字段、方法、構(gòu)造程序、性 質(zhì)或者對象類指定的變量。在一些實施例中,對象類的成員可以包括第二對象類的對象。例 如,在所示實施例中,對象類“http_request”405包括返回url對象的方法“getUrl”。在 其他實施例中,對象類的成員可以是優(yōu)先架構(gòu)的基本數(shù)據(jù)類型,諸如整數(shù)、浮點數(shù)、字節(jié)、陣 列或者布爾變量。例如,類“cookie”包括作為識別列表中名稱-值對的編號的整數(shù)的字段 “count”。仍在其它實施例中,對象類的成員可以包括常量。仍在其他實施例中,對象類的 成員可以包括方法。[0163]在一些情況中,對象類的成員可以被限定在對象類定義中。在其他情況中,對象類 的成員可以被限定在對象類的父類中。仍在其他實施例中,對象類的成員可以被限定在對 象類的父親中并且在對象的類定義中修改。例如,“cookie” 430和“query” 425類從它們 的父類“ list_nv”繼承方法“getName”和“getValue”,父類“ list_nv”是表示名稱-值對 的列表的類。[0164]在所示實施例中,http_request類405包含可以被用來處理HTTP請求的多個方 法。可以提供字段和方法來識別和操控HTTP請求的任一部分或者多個部分,包括但不限于 URL、cookie、體、內(nèi)容-類型、數(shù)據(jù)、版本和主機(jī)名。在一個實施例中,可以提供一個或者多 個方法來確定給定數(shù)據(jù)流是否是合法格式的HTTP請求。對于HTTP響應(yīng),也可以提供類似 的類和/或方法。[0165]所示url類420可以包括任一數(shù)量的字段和方法,用于操作和識別url。在一個實 施例中,url可以包括用于解析一個或者多個主機(jī)名、端口、服務(wù)器、域、文件后綴、路徑和查 詢的方法。在一個實施例中,url可以是通用文本對象的一個子類,其可以允許url如同無 格式文本一樣被對待。例如,url類420可以是文本類435的子類。在一個實施例中,url 類可以包括用于重寫url的所有或者部分的方法。在一些實施例中,url類可以被應(yīng)用到文 本的任一部分。例如,url類可以包括接受文本串并且通過解析該串來建立url對象的構(gòu)造程序。在這些和其它實施例中,url類可以包括用于指示URL是否是正確格式的URL的 方法。在一些實施例中,URL類可以包括用于識別文本串中一個或者多個URL的方法。例 如,可以提供靜態(tài)方法“findURL”來返回給定文本序列中合法格式的URL的列表。例如,可 以使用該方法來找到包含在HTTP響應(yīng)的體中包含的多個URL。url類隨后可以提供用于修 改一個或者多個所發(fā)現(xiàn)的URL的方法。[0166]cookie類430可以包括用于識別和處理cookie的任一數(shù)量個字段和方法。在一 個實施例中,cookie可以是HTTP cookie。在所示實施例中,cookie類將cookie表示為 名稱值對的列表?!癵etValue”方法響應(yīng)接收數(shù)字η可以返回列表中第η個值的文本對象。 getName方法響應(yīng)于接收數(shù)字η可以返回名稱中第η個值的文本對象。在其他實施例中, cookie可使用任一其它語法或者數(shù)據(jù)類型來表示,包括但不限于串、或者鏈接的列表。在 一個實施例中,cookie類可以提供用于插入和/或改變cookie的方法。在其他實施例中, HTTP響應(yīng)或者請求對象類可以提供用于插入或者修改包含在請求或者響應(yīng)中的cookie的 方法。[0167]所示“text”類435可以包括用于操作文本序列的任意數(shù)量個字段和/或方法。文 本序列可以包括可以被處理為字符的字節(jié)的任一序列。在一些實施例中,文本對象可以包 括字節(jié)的離散序列。在其他實施例中,文本對象可以包括一個或者多個字節(jié)的字節(jié)流。在 這些實施例中,文本對象甚至在還沒有接收到整個流時可以被用來操作字節(jié)流的部分???以和文本對象結(jié)合使用的方法包括但不限于比較、截斷、搜索、分類和正則表達(dá)式匹配和搜 索。例如,可以提供方法來確定給定子串是否存在于文本對象中?;蛘呃?,可以提供方法 來確定特定字符之前的文本對象的部分。或者例如,可以提供方法用于識別給定正則表達(dá) 式之后的文本的列表。[0168]在一些實施例中,還可以提供方法用于格式化或者確認(rèn)文本的格式化,使得其可 以由其他類和/或方法處理。例如,可以提供方法來確保文本對象可以被處理為XML。該 方法可以檢查文本對象符合正確的XML格式并且不包含任一惡意或者不利的錯誤?;蛘呃?如,可以提供類似的方法來確定文本序列是否可以被處理為URL。例如,該方法可以發(fā)現(xiàn)并 且替代需要由空序列替代的任一字符,使得文本對象符合正確的URL格式協(xié)定。[0169]對象模型可以使用任一物理數(shù)據(jù)結(jié)構(gòu)或者其它基礎(chǔ)物理實現(xiàn)方式來實現(xiàn)。在一 些實施例中,多個對象可以訪問物理存儲器中的同一個對象來執(zhí)行與每個對象相關(guān)聯(lián)的方 法。在一個實施例中,所示對象模型可以被實現(xiàn)使得多個對象實例對基礎(chǔ)數(shù)據(jù)流起作用,而 不需要對于每個對象實例產(chǎn)生數(shù)據(jù)流的各自副本。為了給出詳細(xì)的例子,關(guān)于所示對象模 型,設(shè)備可以從客戶機(jī)接收HTTP通信并且將其保存在存儲器中。設(shè)備可以隨后執(zhí)行識別 http_request對象,并且隨后調(diào)用http_request對象類305中的函數(shù)來獲取url和/或 cookie對象。設(shè)備可以隨后調(diào)用url和cookie對象中的附加函數(shù)或者參考字段。這些方 法的一些或者全部可以通過解析基礎(chǔ)數(shù)據(jù)流的一些或者全部并且隨后將參考返回給該流 的部分來操作。例如,url對象可以保存基礎(chǔ)數(shù)據(jù)流中的url的開始和結(jié)束的存儲器位置。 url類的每一個方法可以隨后解析和/或修改識別的存儲器位置中的數(shù)據(jù)的部分。以此方 式,設(shè)備可以使用對象模型而不需要在數(shù)據(jù)流中保持?jǐn)?shù)據(jù)的附加副本來處理數(shù)據(jù)流。[0170]在其他實現(xiàn)方式中,可以關(guān)于一些對象來實現(xiàn)一些或者所有數(shù)據(jù)流的一個或者多 個附加副本。這些對象可以在數(shù)據(jù)流的部分的副本上執(zhí)行操作,并且如果適當(dāng),使用對副本所做的任一改變來更新數(shù)據(jù)流。[0171]所示對象模型和其它可以指定可以被應(yīng)用到任一輸入流的對象類和數(shù)據(jù)結(jié)構(gòu)。 例如,所示對象模型可以被用來將任一輸入流處理為httpjequest對象,并且隨后利用 http_request對象類提供的任意一個功能性。此外,盡管所示對象模型涉及HTTP數(shù)據(jù),但 是其他對象模型可以用來提供關(guān)于TCP、SSL或者ICA流的功能性。在一些實施例中,可以提 供對象模型和實現(xiàn)方式使得設(shè)備可以從多個對象模型來選擇以處理給定數(shù)據(jù)流。例如,接 收到給定數(shù)據(jù)流后,設(shè)備可以確定數(shù)據(jù)流是ICA流,并且應(yīng)用適當(dāng)?shù)膶ο竽P陀糜谔幚鞩CA 流。但是,如果HTTP數(shù)據(jù)被發(fā)送到ICA流中,則設(shè)備也可以應(yīng)用HTTP對象模型,諸如所示 的,用于處理HTTP數(shù)據(jù)。以此方式,設(shè)備可以指定任意一個或者多個結(jié)構(gòu)來應(yīng)用到接收的 字節(jié)流。[0172]現(xiàn)在參見圖4B,示出對于表示URL的對象類的示例性文檔編制屏幕??偟膩碚f,文 檔編制屏幕包括對于表示URL的“http_url_t”類的多個方法和構(gòu)造程序的部分列表。文 檔編制屏幕指示“http_url_t”類中執(zhí)行多個方法和在父類“text_t”中執(zhí)行的多個方法。 這些類可以對應(yīng)于參考圖4A描述的“url ”和“text”類。[0173]現(xiàn)在參見圖4C,示出用在策略弓I擎中的多個示例性面向?qū)ο蟮谋磉_(dá)式??偟膩碚f, 面向?qū)ο蟮谋磉_(dá)式400包括多個對象類,其可以對應(yīng)于協(xié)議、協(xié)議對象、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類 型。面向?qū)ο蟮谋磉_(dá)式可以指定多個識別的對象,其可以包括方法、數(shù)據(jù)類型或者其他對象 類。示出多個示例性面向?qū)ο蟮谋磉_(dá)式400a、400b、400c。這些面向?qū)ο蟮谋磉_(dá)式可以通過 網(wǎng)絡(luò)裝置在執(zhí)行以下功能中使用,這些功能包括但不限于分析業(yè)務(wù)量流量、識別系統(tǒng)特性、 負(fù)載平衡、內(nèi)容轉(zhuǎn)換和應(yīng)用安全。[0174]現(xiàn)在仍舊參考圖4C,更詳細(xì)地,面向?qū)ο蟮谋磉_(dá)式可以包括允許關(guān)于對象模型的 數(shù)據(jù)和函數(shù)的規(guī)范的任一表達(dá)式。第一示例面向?qū)ο蟮谋磉_(dá)式400識別對象類和對象類 的成員。在所示面向?qū)ο蟮谋磉_(dá)式的語法中,通過對象和隨后命名對象成員的串之后的周 期來指定對象成員。例如,HTTP.REQ識別命名為用于HTTP對象的“REQ”的成員方法。在 此例中,方法命名可以使用全部大寫來標(biāo)注。在其他實施例中,也可以使用任一其它語法 來指定面向?qū)ο蟮谋磉_(dá)式??梢允褂玫恼Z法的例子包括但不限于ActionScript、Java、 JavaScript、。#、Visual FoxPro>VB.Net>C++>Python>Perl>PHP>Ruby 和 / 或 Objective-C 的語法或者語法組合。[0175]在示例面向?qū)ο蟮谋磉_(dá)式400a中,表達(dá)式識別協(xié)議HTTP。在一個實施例中,HTTP 可以對應(yīng)于對象類、抽象對象類、靜態(tài)對象類或者對象模型的任一其它分量。在一些實施例 中,HTTP可以是用來表示和處理HTTP通信的多個對象類的父類。在其他實施例中,“HTTP” 可以是包括一個或者多個對象的靜態(tài)類或者方法和/或涉及HTTP通信的表達(dá)和處理的方 法。例如,表達(dá)式“HTTP.REQ”可以返回對應(yīng)于數(shù)據(jù)流內(nèi)的HTTP請求的對象。在一個實施 例中,該對象可以是諸如圖4A中討論的“http_request”類的對象類的實例。在所示實施 例中,表達(dá)式400a可以返回布爾值,該布爾值指示“joe”是否包含在HTTP請求的URL的查 詢部分中命名為“id”的值中。[0176]示例的面向?qū)ο蟮谋磉_(dá)式400b提供顯式的類型轉(zhuǎn)換(typecasting)的例子,其可 以用來指定關(guān)于數(shù)據(jù)流的任一部分的結(jié)構(gòu)。在該例中,從對應(yīng)于eh可接受語言的HTTP請 求首部項目返回的串被顯式類型轉(zhuǎn)換為列表。TYPECAST_T0_LIST方法將列表定界符接受作為變元,并且基于該定界符返回列表。表達(dá)式隨后識別CONTAINS方法來確定列表元素的其 中一個是否是“en”。該例400b可以被用來配置裝置以探測HTTP請求是否指示請求者將英 語接受為語言。在一些實施例中,對象模型和表達(dá)式語法可以允許數(shù)據(jù)流顯式類型轉(zhuǎn)換為 任一的對象類。這可以允許用戶配置裝置來指定關(guān)于數(shù)據(jù)流而應(yīng)用的任一結(jié)構(gòu)。這又可以 允許用戶來操縱協(xié)議或者協(xié)定的內(nèi)容,從而以便利處理的方式來格式化輸入流。[0177]作為顯式類型轉(zhuǎn)換的另一個例子,表達(dá)式HTTP.RES.HEADER ("Location").TYPECAST_TO_URL.QUERY可以被用來類型轉(zhuǎn)換HTTP首部的元素,使得被處理為URL。通過 將文本元素類型轉(zhuǎn)換為URL,URL處理方法可以變得可用于分析網(wǎng)絡(luò)業(yè)務(wù)量流的任一部分 中的內(nèi)容。[0178]在一些實施例中,兩個或者更多面向?qū)ο蟮谋磉_(dá)式可以和諸如AND、OR、NOT、 GREATER THAN或者LESS THAN的算子結(jié)合使用來產(chǎn)生一個值。例如,在表達(dá)式400c中,可 以返回布爾值的兩個表達(dá)式使用OR算子結(jié)合。組合的表達(dá)式的結(jié)果是兩個表達(dá)式返回的 值取0R。在其他實施例中,算子可以關(guān)于任一對象或者數(shù)據(jù)類型運行,包括但不限于整數(shù)、 浮點數(shù)以及串。[0179]盡管所示特定例子反映了 HTTP對象模型的上下文中的面向?qū)ο蟮恼Z句,但是面 向?qū)ο蟮恼Z句和模型可以被用來訪問傳遞通過裝置的網(wǎng)絡(luò)業(yè)務(wù)量的任意一個或者多個部 分。此外,面向?qū)ο蟮恼Z句和模型可以被用來訪問裝置的系統(tǒng)特性或者給定連接或連接的 裝置的特性。[0180]在一個實施例中,面向?qū)ο蟮谋磉_(dá)式可以被用來將網(wǎng)絡(luò)裝置行為建立在裝置的任 一特性上。例如,表達(dá)式SYS.TIME.WITHIN(timel, time2)可以被用來將行為建立在天或者 一年的天之上?;蛘?,例如,表達(dá)式SYS.CONNECTIONS.SSL_0PEN.COUNT可以被用來返回當(dāng) 前對于系統(tǒng)開放的SSL連接的總數(shù)的數(shù)量。在這些例子中,SYS對象表示執(zhí)行策略的系統(tǒng), 并且在SYS對象中提供多個方法和/或字段來訪問關(guān)于系統(tǒng)狀態(tài)的信息。[0181]在其他實施例中,面向?qū)ο蟮谋磉_(dá)式可以被用來將連接到裝置的客戶機(jī)的任一 特性作為網(wǎng)絡(luò)裝置行為的基礎(chǔ)。在一個實施例中,“CLIENT”對象可以被提供用來表示 發(fā)送或者接收當(dāng)前處理的數(shù)據(jù)流的客戶機(jī)的特性。例如,表達(dá)式:CLIENT.1P.SRC.1N_ SUBNETd0.100.202.0/24)可以被用來基于對應(yīng)于數(shù)據(jù)流的客戶機(jī)是否在給定子網(wǎng)中來返 回真/假值?;蛘撸?,表達(dá)式CLIENT.AGENT.VERS10N_NUM可以被用來重新獲取在客戶 機(jī)上執(zhí)行的客戶機(jī)代理的版本號。或者例如,表達(dá)式CLIENT.VLAN.VIRTUAL_IP可以被用來 訪問客戶機(jī)的虛擬IP地址。[0182]仍在另一個實施例中,面向?qū)ο蟮谋磉_(dá)式可以被用來將連接到裝置的服務(wù)器的 任一性質(zhì)作為網(wǎng)絡(luò)裝置行為的基礎(chǔ)。例如,SERVER.METRICS.HTTP.AVG_RESP_TIME可以 被用來訪問用于產(chǎn)生HTTP請求的服務(wù)器的平均響應(yīng)時間。或者例如,SERVER.1CA.MAX_ CONNECTIONS.可以被用來識別為給定服務(wù)器指定的最大數(shù)量ICA連接。或者例如,SERVER.ETHER.HEADER可以被用來識別到服務(wù)器的給定連接的以太網(wǎng)分組首部。[0183]在一些實施例中,面向?qū)ο蟮谋磉_(dá)式被用來在處理之前或者期間來緩存特定量的 通信。例如,對于HTTP通信用作代理服務(wù)器的設(shè)備可以期望將一些行為建立在響應(yīng)的初始 部分上。在這種情況中,可以期望僅緩存響應(yīng)的一部分,使得不會承受過度的端到端響應(yīng)時 間。在一個實施例中,表達(dá)式可以指定多個字節(jié)來在估計表達(dá)式之前接收。例如,表達(dá)式HTTP.REQ.getBody (5000).TYPECAST_TO_NV_LIST (’=’,’&’).getValue ("id")可以被用來 緩存HTTP請求體的前5000個字節(jié),并且隨后將這些字節(jié)處理為名稱-值對列表。該表達(dá) 式隨后指定來得到對應(yīng)于名稱“id”的值。[0184]現(xiàn)在參考圖5,示出可以用在配置裝置中的策略的例子??偟膩碚f,策略500包括 可以在規(guī)則505的上下文中估計的表達(dá)式510。策略500還可以包括指定在規(guī)則滿足時采 取的動作的動作515。[0185]仍舊參考圖5,現(xiàn)在更詳細(xì)地,策略可以被用來配置裝置。在一些實施例中,策略可 以用來配置任一裝置,包括但不限于WAN優(yōu)化設(shè)備200、SSL/VPN設(shè)備200、加速設(shè)備200、 高速緩存設(shè)備200、負(fù)載平衡設(shè)備和/或提供那些裝置的特征的任一組合的裝置。在其他實 施例中,策略可以被用來配置客戶機(jī)代理或者服務(wù)器代理。[0186]在一些實施例中,裝置上執(zhí)行的策略引擎可以解釋、估計、和/或執(zhí)行關(guān)于裝置的 功能的策略。例如,策略引擎236可以在設(shè)備200上執(zhí)行,并且解釋和執(zhí)行指導(dǎo)設(shè)備的其 他動作和模塊的多個策略,包括但不限于SSL/VPN模塊280、內(nèi)聯(lián)網(wǎng)IP模塊282、轉(zhuǎn)換模塊 284,DNS模塊286、加速模塊288、應(yīng)用防火墻模塊290和/或監(jiān)控代理197。在一些實施例 中,可以提供單組策略用于指導(dǎo)多個設(shè)備功能。在其他實施例中,可以使用各組策略來配置 多個設(shè)備功能的每一個。策略可以以任一方式保存在裝置中。在一些實施例中,策略在裝 置上執(zhí)行之前可以被編譯。在其他實施例中,可以在運行時解釋策略。[0187]策略500可以包括一個或者多個表達(dá)式510。策略中的表達(dá)式由裝置在運行時關(guān) 于在表達(dá)式中指定的對象來估計,以產(chǎn)生一個值。表達(dá)式510可以是任一類型的表達(dá)式。在 一個實施例中,表達(dá)式510可以是面向?qū)ο蟮谋磉_(dá)式。表達(dá)式可以在策略中的任何地方使 用。在一些實施例中,表達(dá)式可以在策略的規(guī)則中指定。在其他實施例中,表達(dá)式可以在策 略的動作中指定。[0188]策略500還可以包括規(guī)則505。規(guī)則可以在運行時關(guān)于對象、方法和規(guī)則中識別的 算子而被估計,來產(chǎn)生一個結(jié)果。依據(jù)該結(jié)果,設(shè)備隨后可以執(zhí)行策略中指定的一個或者多 個動作。例如,如果規(guī)則估計為“真”,則設(shè)備可以執(zhí)行和規(guī)則關(guān)聯(lián)的動作?;蛘呷绻?guī)則估 計為“假”,則設(shè)備不能執(zhí)行和規(guī)則相關(guān)聯(lián)的動作。在一些實施例中,規(guī)則可以包括單個表達(dá) 式。在其他實施例中,規(guī)則可以包括由算子連接的多個表達(dá)式。[0189]策略500還可以包括動作515。動作可以指定所采取的任一動作。這些動作的 例子可以包括但不限于阻斷或者允許數(shù)據(jù)流、將數(shù)據(jù)流或者對象轉(zhuǎn)發(fā)到給定服務(wù)器或者裝 置、將對象保存在存儲器中、改變數(shù)據(jù)流的一部分、改變一個或者多個系統(tǒng)特性、執(zhí)行加速 技術(shù)和執(zhí)行壓縮技術(shù)。在所示的策略500中,當(dāng)確定HTTP請求URL包含“J0E”的用戶標(biāo)識 符時,策略指示將請求轉(zhuǎn)發(fā)到指定服務(wù)器的動作。在一些實施例中,動作可以包括運行時被 估計的表達(dá)式。[0190]現(xiàn)在參考圖6,示出用戶用來輸入面向?qū)ο蟮谋磉_(dá)式的表達(dá)式輸入屏幕600的例 子。總的來說,表達(dá)式輸入屏幕600包括允許用戶來指定類的成員以包括在所建立的表達(dá) 式中的多個下拉菜單620。屏幕610還可以包括用戶能夠看到和/或編輯表達(dá)式的文本版 本的顯示。屏幕還可以包括為用戶顯示對應(yīng)于一個或者多個對象的信息的顯示630。[0191]仍舊參考圖6,現(xiàn)在更詳細(xì)地,表達(dá)式輸入屏幕允許用戶以任何方式輸入面向?qū)ο?的表達(dá)式。在所示實施例中,下拉菜單620可以被用來選擇對象。在其他實施例中,任一其它輸入元素可以被用來接受面向?qū)ο蟮谋磉_(dá)式,包括但不限于文本字段、菜單、按鈕、檢驗 欄和工具欄。在一些實施例中,屏幕600的輸入元素可以為用戶提供建立和驗證合法表達(dá) 式的功能性。在一些實施例中,下拉菜單620可以和之前指定的類的成員自動組裝在一起。 例如,當(dāng)用戶選擇所示菜單中的“URL”時,下一個下拉菜單將和URL對象類的成員組裝在 一起。以此方式,用戶可以有效導(dǎo)航類的層級和對象模型以產(chǎn)生表達(dá)式。在其他實施例中, 語法突出顯示、自動完成和/或自動推薦可以被用來使得用戶可以容易地建立和驗證表達(dá) 式。例如,用戶可以提供文本字段610來組成表達(dá)式,其中,文本字段以紅色突出顯示任一 未識別的對象或者語法?;蛘呃?,用于可以提供文本字段610,當(dāng)用戶鍵入對象類時,該文 本字段顯示對象類的成員的列表。[0192]在一些實施例中,表達(dá)式輸入屏幕600可以為用戶顯不關(guān)于任一對象或者表達(dá)式 的信息。在一些實施例中,屏幕600可以顯示給定類的特性和/或推薦的使用。在一個實 施例中,屏幕600可以和諸如圖4B中描寫的一個或者多個類文檔編制屏幕集成在一起或者一起使用。[0193]現(xiàn)在參見圖7A,示出可以被用于配置對應(yīng)于一個或者多個網(wǎng)絡(luò)裝置的多個策略的 配置接口屏幕的例子??偟膩碚f,屏幕顯示具有包含一個或者多個策略、策略組或者涉及功 能的設(shè)置的文件夾的網(wǎng)絡(luò)裝置功能710的列表。在所示例子中,屏幕顯示文件夾用于系統(tǒng) 策略、網(wǎng)絡(luò)策略、DNS策略、SSL策略、SSL卸載策略、壓縮策略、集成的高速緩存策略、保護(hù)特 征、負(fù)載平衡策略、內(nèi)容轉(zhuǎn)換策略、高速緩存重定向策略、全局負(fù)載平衡策略、SSL VPN策略 和應(yīng)用安全策略。在一些實施例中,多個策略、策略組和/或?qū)?yīng)于功能的設(shè)置可以被稱為 配置文件。[0194]仍舊參考圖7A,并且更詳細(xì)地,配置接口可以允許用戶指定涉及一個或者多個網(wǎng) 絡(luò)裝置的策略或者設(shè)置。在一些實施例中,配置接口可以被用來配置設(shè)備200,包括但不限 于VPN設(shè)備、加速設(shè)備或者WAN優(yōu)化裝置。在一些實施例中,單個配置接口可以允許用戶來 配置多個設(shè)備。例如,用戶可以指定一個或者多個設(shè)備來應(yīng)用給定的策略、策略組或者相關(guān) 設(shè)置。在一個實施例中,用戶可以指定為多個設(shè)備共享配置文件。例如,用戶可以配置設(shè)備 200的集群使得每一個設(shè)備具有相同的策略設(shè)置。在其他實施例中,配置接口 700可以被用 于配置一個或者多個客戶機(jī)代理120。[0195]配置接口 700可以包括收集輸入的任一工具,包括但不限于⑶I和命令行接口。配 置接口可以包括一個或者多個表達(dá)式輸入屏幕600。在一個實施例中,配置接口可以從文件 讀出配置信息。在另一個實施例中,配置接口可以通過網(wǎng)絡(luò)來接收配置信息。例如,配置接 口 700可以包括用戶下載一個或者多個策略、設(shè)置、策略組或者配置文件的工具。對于多個 應(yīng)用這些可以包括共同使用的策略或者設(shè)置。[0196]配置接口可以模糊(obscure)來自用戶的策略、策略組或者配置的任一特征。例 如,配置接口可以自動或者默認(rèn)填充策略或者策略組的任一部分,使得用戶不需要主動配 置那些部分。例如,配置接口可以提供動作的默認(rèn)列表,其中用戶僅需要指定應(yīng)該采取的動 作所基于的規(guī)則的列表。動作的語法和實現(xiàn)對于用戶可以完全或者部分隱藏。[0197]現(xiàn)在參考圖7B,示出使用計算機(jī)來配置使用配置接口的設(shè)備的例子??偟膩碚f,在 客戶機(jī)102上顯示包括表達(dá)式輸入屏幕500的配置接口 700??蛻魴C(jī)102將經(jīng)由配置接口 接收的配置數(shù)據(jù)發(fā)送給設(shè)備200。[0198]仍舊參考圖7B,現(xiàn)在更詳細(xì)地,配置接口 700可以以任一方式顯示在客戶機(jī)102 上。在一些實施例中,配置接口 700可以包括客戶機(jī)上執(zhí)行的應(yīng)用。在其他實施例中,配置 接口 700可以包括通過設(shè)備顯示的web頁面。仍在其他實施例中,配置接口 700可以包括 通過第三方裝置顯示的web頁面。[0199]配置接口 700可以包括對于用戶輸入配置數(shù)據(jù)的任一工具,包括但不限于文本字 段、菜單、按鈕、窗口、檢驗欄和拖放功能。在一些實施例中,配置接口 700可以包括表達(dá)式 輸入屏幕500。在其他實施例中,配置接口還可以提供用于用戶輸入一個或者多個策略的屏 幕。在一些實施例中,這些屏幕可以和一個或者多個表達(dá)式輸入屏幕集成在一起。[0200]配置接口可以通過任一工具將配置信息發(fā)送到設(shè)備200。配置信息可以經(jīng)由任意 一個或者多個協(xié)議發(fā)送。在一個實施例中,用戶輸入的配置信息可以被保存到客戶機(jī)102 上的文件,并且隨后該文件可以被發(fā)送到設(shè)備。在其他實施例中,用戶可以將信息輸入到 web頁面中或者web設(shè)備,其可以隨后將配置信息傳送到設(shè)備。在一些實施例中,配置信息 在其被發(fā)送到設(shè)備200之前可以被編譯、格式化或者以其他方式處理。仍在其他實施例中, 配置信息可以在其已經(jīng)被設(shè)備接收之后被編譯、格式化或者以其他方式處理。[0201]現(xiàn)在參考圖8A,描述使用面向?qū)ο蟮谋磉_(dá)式來配置網(wǎng)絡(luò)裝置的面向?qū)ο蟮牟呗砸?指定網(wǎng)絡(luò)裝置所接收的分組流的有效載荷中的結(jié)構(gòu)的方法的實施例??偟膩碚f,由裝置提 供配置接口 700來配置用于網(wǎng)絡(luò)裝置200的策略600 (步驟801)。裝置經(jīng)由配置接口 700 接收用于策略600的表達(dá)式610 (步驟803)。裝置經(jīng)由配置接口 700接收基于表達(dá)式的估 計來識別所采取的動作的用戶信息(步驟805 )。[0202]仍舊參考圖8A,更詳細(xì)地,可以提供配置接口用來以任一方式配置用于網(wǎng)絡(luò)裝置 200的策略600 (步驟801)。在一些實施例中,配置接口 700可以包括命令行接口。在其他 實施例中,配置接口 700可以包括圖形用戶接口。配置接口 700可以包括一個或者多個拖 放接口、列表選擇接口或者語法突出顯示接口。在一些實施例中,配置接口 700駐留在客戶 機(jī)裝置102上。在其他實施例中,配置接口 700在網(wǎng)絡(luò)裝置200上執(zhí)行。在一些實施例中, 提供配置接口 700的裝置通過網(wǎng)絡(luò)104連接到設(shè)備200。在一些實施例中,配置接口 700是 web頁面。在一些其他實施例中,配置接口 700是駐留在網(wǎng)絡(luò)裝置200上的web頁面。在其 他實施例中,配置接口 700是駐留在各服務(wù)器106上的web頁面。[0203]裝置經(jīng)由配置接口 700接收用于策略600的表達(dá)式610,該策略600指定對象類 來應(yīng)用到分組流的有效載荷的部分和多個對象類(步驟803)。在一些實施例中,表達(dá)式可 以經(jīng)由表達(dá)式輸入屏幕500接收。在一個實施例中,表達(dá)式610識別分組流中的文本的部 分。在特定實施例中,表達(dá)式610指定協(xié)議,并且還可以指定和協(xié)議相關(guān)的一個或者多個方 法和字段。例如,表達(dá)式可以指定HTTP、HTML、FTP、SMTP、ICA和/或SSL的協(xié)議。所指定 的協(xié)議隨后可以被應(yīng)用來解析根據(jù)協(xié)議的數(shù)據(jù)流。[0204]所接收的表達(dá)式可以指定任一對象類。例如,所接收的表達(dá)式可以指定圖4A的對 象模型中描述的任意一個對象類??梢砸匀我环绞街付▽ο箢悺T谝粋€實施例中,指定對 象類可以包括執(zhí)行對象類的實例。例如,表達(dá)式“HTTP.REQ”可以指定來自圖4A的“http_ request”對象的實例。在一些實施例中,所接收的表達(dá)式可以包括面向?qū)ο蟮谋磉_(dá)式。[0205]所接收的表達(dá)式還可以指定識別的對象類的任一成員。該成員可以包括任一對 象、數(shù)據(jù)類型或者方法。在一些實施例中,該成員包括字段。在其他實施例中,該成員可以包括對應(yīng)于第二對象類的字段。在一些實施例中,對象類的成員包括方法。在一些實施例 中,對象類的成員從該對象類的父類繼承。對象類的成員可以對應(yīng)于HTTP請求或者響應(yīng)。 在其他情況中,類的成員可以是統(tǒng)一資源定位符(“URL”)或者cookie。[0206]在其他實施例中,表達(dá)式610包括明確的類型轉(zhuǎn)換。明確的類型轉(zhuǎn)換可以被用來 指定對象類以關(guān)于字段或者返回的對象來使用。例如,包含數(shù)字的字段可以被顯式類型轉(zhuǎn) 換為字母數(shù)字串,用來執(zhí)行串比較。或者例如,字節(jié)的流可以被類型轉(zhuǎn)換為具有給定定界符 的列表?;蛘呃?,數(shù)據(jù)流可以被類型轉(zhuǎn)換為對應(yīng)的特定協(xié)議或者協(xié)議對象。[0207]裝置可以經(jīng)由配置接口 700接收識別用于策略600的動作615的信息,該動作615 基于表達(dá)式610的估計而被采取(步驟805)。在一些實施例中,動作615可以包括面向?qū)?象的表達(dá)式。在特定實施例中,該方法執(zhí)行動作615用來提供負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安 全、應(yīng)用遞送、網(wǎng)絡(luò)加速或者應(yīng)用加速。例如,為了加速網(wǎng)絡(luò)行為,該方法可以估計表達(dá)式 610來確定用戶的位置并且基于用戶的位置將用戶的業(yè)務(wù)量路由給地理上最接近的一個或 者多個服務(wù)器106。在一些實施例中,通過將URL重寫到HTTP請求或者響應(yīng)中,策略可以執(zhí) 行安全、加速、負(fù)載平衡或者內(nèi)容轉(zhuǎn)換功能。例如,動作615可以指定來修改HTTP請求使得 URL指向特定的服務(wù)器或者服務(wù)器群組106。在一些實施例中,從配置接口 700接收的動作 615可以是用于“無動作”或者用于默認(rèn)動作的表達(dá)式。[0208]現(xiàn)在參考圖8B,描述通過裝置來應(yīng)用策略600中的面向?qū)ο蟮谋磉_(dá)式610來指定 設(shè)備200所接收的分組流的有效負(fù)載中的結(jié)構(gòu)的方法的實施例??偟膩碚f,設(shè)備200識別包 括面向?qū)ο蟮谋磉_(dá)式610的策略600來估計關(guān)于所接收的分組流的有效載荷(步驟821)。設(shè) 備200基于有效載荷的部分來分配值到面向?qū)ο蟮谋磉_(dá)式610指定的數(shù)據(jù)結(jié)構(gòu)(步驟823)。 設(shè)備200基于分配的值來執(zhí)行表達(dá)式610的估計(步驟825)并且響應(yīng)于該估計來采取策略 600指定的動作615 (步驟827)。[0209]仍舊參考圖SB,更詳細(xì)地,設(shè)備可以識別策略來以任一方式應(yīng)用到數(shù)據(jù)流(步驟 821)。在一些實施例中,設(shè)備可以從一個或者多個配置文件讀出策略。在其他實施例中,設(shè) 備中的策略引擎236可以將多個策略保存在存儲器中。仍在其他實施例中,設(shè)備可以響應(yīng) 于數(shù)據(jù)流的類型或者協(xié)議來識別策略。例如,設(shè)備可以具有應(yīng)用到所有輸入TCP流的一組 策略?;蛘呃?,設(shè)備可以識別應(yīng)用到SSL流的一個或者多個策略。在一個實施例中,設(shè)備 可以基于數(shù)據(jù)流的發(fā)送者或者接收者來識別策略。例如,VPN設(shè)備可以具有被應(yīng)用到來自 客戶機(jī)的輸入連接請求的一組策略?;蛘呒铀傺b置可以識別一個或者多個策略來應(yīng)用到來 自服務(wù)器106的HTTP流。在一些實施例中,策略可以包括經(jīng)由配置接口 700接收的策略。[0210]分組流可以以任一方式并且從任一資源接收。在一些實施例中,分組流可以由設(shè) 備透明攔截。在其他實施例中,設(shè)備可以在代理一個或者多個傳輸層連接的過程中接收分 組流。分組流可以包括任一類型的分組,包括但不限于IP分組、TCP分組、UDP分組和ICMP 分組。分組流可以包括任意其它一個或者多個協(xié)議。[0211]所識別的策略可以包括面向?qū)ο蟮谋磉_(dá)式來估計關(guān)于分組流的有效載荷。面向?qū)?象的表達(dá)式可以包括任一類型的面向?qū)ο蟮谋磉_(dá)式,并且可以指定一個或者多個對象類、 字段和方法。在一些實施例中,面向?qū)ο蟮谋磉_(dá)式可以包括規(guī)則的部分。在一些實施例中, 表達(dá)式可以指定對應(yīng)于客戶機(jī)、服務(wù)器、HTTP協(xié)議或者設(shè)備的一個或者多個對象。[0212]面向?qū)ο蟮谋磉_(dá)式可以關(guān)于分組流的任一有效載荷被估計。在一個實施例中,表達(dá)式可以關(guān)于TCP或者UDP流的有效載荷被估計。在另一個實施例中,表達(dá)式可以關(guān)于SSL 流被估計。在又一個實施例中,表達(dá)式可以關(guān)于ICA流的有效載荷被估計。分組流可以從 任一資源接收,包括但不限于客戶機(jī)、服務(wù)器、客戶機(jī)代理、服務(wù)器代理或者第二設(shè)備。[0213]設(shè)備分配值給面向?qū)ο蟮谋磉_(dá)式610所指定的數(shù)據(jù)結(jié)構(gòu)(步驟823)。數(shù)據(jù)結(jié)構(gòu)可 以包括對象實例的物理表示。在一些實施例中,設(shè)備可以解析所接收的有效載荷的一些或 者全部來分配值。在其他實施例中,設(shè)備可以執(zhí)行表達(dá)式指定的或者對象模型中包括的任 一方法來分配值。例如,關(guān)于表達(dá)式:[0214]"HTTP.REQ.HEADER(〃Acc印t_Language〃).TYPECAST_TO_LIST (〃,〃)〃,設(shè)備可以分 配值給所指定的請求、首部和逗號分界的列表中的每一個的相應(yīng)對象。在一些實施例中,值 的分配可以包括確定對應(yīng)于對象的數(shù)據(jù)流的一個或者多個部分。在一些實施例中,步驟823 包括通過設(shè)備200應(yīng)用面向?qū)ο蟮谋磉_(dá)式610指定的類到有效載荷的字節(jié)流。例如,如果 表達(dá)式指定URL類,設(shè)備可以通過確定所接收的有效載荷中的URL的開始和結(jié)束點來分配 值到基本的URL數(shù)據(jù)結(jié)構(gòu)。這些開始和結(jié)束點隨后可以被保存在URL數(shù)據(jù)結(jié)構(gòu)中,并且用 來執(zhí)行URL類中的任意一個方法。在一些實施例中,設(shè)備可以分配值到面向?qū)ο蟮谋磉_(dá)式 指定的多個數(shù)據(jù)結(jié)構(gòu)。在一個實施例中,策略引擎236可執(zhí)行和策略的估計相關(guān)的任一功 倉泛。[0215]設(shè)備可以基于所分配的值以任一方式執(zhí)行表達(dá)式610的估計(步驟825)。在一些 實施例中,設(shè)備可以使用表達(dá)式指定的對象類的一個或者多個方法來執(zhí)行估計。在一些實 施例中,估計可以產(chǎn)生布爾值。在其他實施例中,估計可以產(chǎn)生整數(shù)、串或者其他對象。設(shè) 備可以以任一方式使用分配的值。在上面的URL例子中,在確定對于URL的開始和結(jié)束點 之后設(shè)備可以隨后使用那些值來執(zhí)行關(guān)于URL的任一操作。在一些實施例中,設(shè)備可以隨 后執(zhí)行圖4A中引用的getSuffix ()方法,其識別所請求的URL的文件類型后綴。該方法 還可以包括確定關(guān)于URL的開始和結(jié)束點的后綴的開始和結(jié)束點。設(shè)備隨后可以使用后綴 的開始和結(jié)束點來執(zhí)行文件后綴的任一估計,諸如將其與串“.jsp”相比較來確定所請求的 URL是否對應(yīng)于Java服務(wù)器頁面(Java Server Page)。[0216]在一些實施例中,設(shè)備可以估計包括表達(dá)式的規(guī)則。在其他實施例中,設(shè)備可以估 計包括多個表達(dá)式的規(guī)則。[0217]設(shè)備隨后響應(yīng)于該估計可以采取策略600所指定的動作615 (步驟827)。在一個 實施例中,如果估計的結(jié)果是對應(yīng)于真的值,則設(shè)備采取動作。在另一個實施例中,如果估 計的結(jié)果是非零,則設(shè)備可以采取動作。所采取的動作可以是任一動作,包括但不限于涉及 負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或者應(yīng)用加速的任一動作。在一些實施 例中,動作615可以包括“無動作”。[0218]在一些實施例中,設(shè)備可以立即執(zhí)行跟隨該估計的動作。在其他實施例中,設(shè)備可 以執(zhí)行估計至少一個其它策略之后的動作。在又一些實施例中,設(shè)備可以在等待預(yù)訂數(shù)量 的時間或者等待直到資源可用之后執(zhí)行該動作。在一個實施例中,設(shè)備可以在接收到分組 流的附加部分之后執(zhí)行動作。[0219]在一些實施例中,設(shè)備隨后可以將接收的分組流轉(zhuǎn)發(fā)到一個或者多個設(shè)備服務(wù) 器、客戶機(jī)或者客戶機(jī)代理。設(shè)備可以執(zhí)行關(guān)于分組流的任一其它網(wǎng)絡(luò)設(shè)備功能,包括但不 限于加速、壓縮和負(fù)載平衡。[0220]現(xiàn)在參考圖8C,示出在設(shè)備200中用于應(yīng)用策略600中的面向?qū)ο蟮谋磉_(dá)式610 來指定設(shè)備200接收的分組流的有效載荷中的結(jié)構(gòu)的方法??偟膩碚f,設(shè)備識別包括面向 對象的表達(dá)式610的策略600來估計關(guān)于所接收的分組流的有效載荷(步驟841)。設(shè)備基 于有效載荷的部分來分配值給面向?qū)ο蟮谋磉_(dá)式610所指定的數(shù)據(jù)結(jié)構(gòu)(步驟843)。設(shè)備 還基于所分配的值執(zhí)行表達(dá)式610的估計(步驟845)。響應(yīng)于該估計,設(shè)備改變所接收的分 組流的部分(步驟847)并且將所改變的分組流發(fā)送(步驟849)。[0221]仍舊參考圖SC,現(xiàn)在更詳細(xì)地,設(shè)備可以識別指定面向?qū)ο蟮谋磉_(dá)式610的策略 600來估計關(guān)于所接收的分組流的有效載荷(步驟821)。該步驟可以以此處描述的任一方 式來執(zhí)行。[0222]設(shè)備可以基于有效載荷的部分以任一方式來分配值給面向?qū)ο蟮谋磉_(dá)式610所 指定的數(shù)據(jù)結(jié)構(gòu)(步驟823 )。該步驟可以以此處描述的任一方式來執(zhí)行。[0223]設(shè)備基于所分配的值執(zhí)行表達(dá)式的估計(步驟845)。該步驟可以以此處描述的任 一方式來執(zhí)行。[0224]響應(yīng)于該估計,設(shè)備可以改變所接收的分組流的部分(步驟847)。在一些實施例 中,改變所接收的分組流的部分可以包括響應(yīng)于該估計來采取動作(步驟827)。在一些實施 例中,所改變的分組流的部分由面向?qū)ο蟮谋磉_(dá)式識別的數(shù)據(jù)結(jié)構(gòu)來指定。在其他實施例 中,所改變的分組流的部分由第二面向?qū)ο蟮谋磉_(dá)式指定。在一些實施例中,所改變的分組 流的部分可以由策略的動作中的面向?qū)ο蟮谋磉_(dá)式指定。在一些實施例中,設(shè)備可以重寫 HTTP響應(yīng)或者請求的體中的URL。在其他實施例中,設(shè)備可以重寫分組流中的表格(form) 字段值。所改變的表格字段(form field)可以是對象中的HTTP請求、HTTP響應(yīng)或者任一 其它字段,該對象是分組流的部分。在又一個實施例中,設(shè)備可以改變包含在分組流中的一 個或者多個名稱-值對。在一些實施例中,設(shè)備可以重寫所接收的分組流的部分而模糊或 者移除機(jī)密數(shù)據(jù),包括但不限于個人身份號碼、支票賬戶轉(zhuǎn)賬號碼、個人聯(lián)系信息、社會安 全號碼、密碼或者其它機(jī)密信息。[0225]為了給出詳細(xì)例子,當(dāng)從去往服務(wù)器的客戶機(jī)接收HTTP流時,對服務(wù)器提供應(yīng)用 安全功能的設(shè)備可以確定以應(yīng)用策略:[0226]如果(HTTP.Request.getCookie ().getValue ("username").length>20)則[0227]HTTP.Request.getCookie().setValue("username", "void")[0228]在此例中,設(shè)備可以解析HTTP流的一些或者全部以識別包含請求的流的部分,并 且之后識別請求中的cookie。設(shè)備可以以任一方式完成此操作,包括維持具有指向?qū)?yīng)于 請求和cookie的流的區(qū)域的參考指針的一個或者多個內(nèi)部數(shù)據(jù)結(jié)構(gòu)。設(shè)備可以隨后識別 cookie中的“用戶名”名稱-值對的值并且確定該值的長度是否大于20個字符。大于20 個字符的長度可以指示應(yīng)用錯誤或者惡意攻擊,諸如所企圖的緩存器溢出攻擊。當(dāng)確定長 度大于20個字符時,設(shè)備可以隨后改變該值為“避免”或者任一其它信號,該任一其它信號 可以通知接收該流的服務(wù)器不正確的值由客戶機(jī)發(fā)送。設(shè)備可以使用和/或修改任一內(nèi)部 數(shù)據(jù)結(jié)構(gòu),用來改變該流。設(shè)備隨后可以將改變的流轉(zhuǎn)發(fā)給服務(wù)器。在其他實施例中,設(shè)備 可以在探測到可能的溢出時簡單地阻止該流到達(dá)服務(wù)器。在這些實施例中,設(shè)備可以返回 錯誤消息給客戶機(jī)。[0229]在其他實施例中,設(shè)備可以使用新的響應(yīng)來替代整個HTTP響應(yīng)。例如,如果設(shè)備確定響應(yīng)包含表中的機(jī)密數(shù)據(jù),則設(shè)備可以使用指示錯誤的響應(yīng)或者包括中性(neutral) 內(nèi)容的響應(yīng)來替代該響應(yīng)。在又一個實施例中,設(shè)備可以替換或者重寫整個HTTP請求或者 響應(yīng)的首部。[0230]設(shè)備可以隨后以任一方式發(fā)送所改變的分組流(步驟849)。在一些實施例中,設(shè) 備可以將所改變的分組流轉(zhuǎn)發(fā)給指定為該流的接收者的服務(wù)器或者客戶機(jī)。在其他實施 例中,設(shè)備可以將該流重定向到設(shè)備、服務(wù)器或者客戶機(jī),而不是該流的預(yù)期接收者。設(shè)備 可以使用任意一個或者多個協(xié)議發(fā)送所改變的分組流,包括但不限于TCP、IP、UDP、SSL和 ICA。[0231]E、用于處理未限定的策略表達(dá)式的系統(tǒng)和方法[0232]現(xiàn)在參考圖9,示出在設(shè)備200中在策略600的元素未限定的情況下用于應(yīng)用指定 所采取的動作615的策略600的方法的實施例??偟膩碚f,設(shè)備識別策略600來估計關(guān)于 所接收的分組流的有效載荷,其中策略600指定(i)表達(dá)式610,(ii)基于表達(dá)式610所采 取的第一動作615和(iii)如果元素未限定時所采取的第二動作610 (步驟901)。設(shè)備確 定策略600的元素關(guān)于有效載荷未限定(步驟903)。響應(yīng)于元素未限定的其決定,設(shè)備采取 第二動作(步驟905)。一般來說,該方法允許策略當(dāng)設(shè)備嘗試估計策略時如果遇到錯誤或者 異常情況時來指定所采取的動作。以此方式,第二動作可以是撤退或者錯誤處理方法。[0233]仍舊參考圖9,更詳細(xì)地,設(shè)備識別策略600來估計關(guān)于所接收的分組流的有效載 荷,其中策略600指定表達(dá)式610,基于表達(dá)式610的所采取的第一動作615和如果策略的 元素未限定時所采取的第二動作610 (步驟901)。設(shè)備可以以任一方式識別策略。在一個 實施例中,表達(dá)式可以是面向?qū)ο蟮谋磉_(dá)式。在另一個實施例中,表達(dá)式610可以識別對象 類來應(yīng)用到分組流的有效載荷的部分和對象類的成員。在另一個實施例中,表達(dá)式610指 定一個協(xié)議,并且還可以指定一個或者多個相關(guān)的方法和字段。表達(dá)式可以指定任一類型 的對象和/或?qū)ο箢?。在一些實施例中,表達(dá)式可以包括對象類的一個或者多個方法。[0234]分組流可以以任一方式并且從任一資源接收。在一些實施例中,分組流可以由設(shè) 備透明攔截。在其他實施例中,設(shè)備可以在代理一個或者多個傳輸層連接過程中接收分組 流。分組流可以包括任一類型分組,包括但不限于IP分組、TCP分組、UDP分組和ICMP分 組。分組流可以包括任意其它的一個或者多個協(xié)議。[0235]由策略指定的第一動作可以包括任一動作。在一些實施例中,第一動作可以包括 如果表達(dá)式或者包含表達(dá)式的規(guī)則估計為真時所執(zhí)行的動作。在一些實施例中,動作615 可以涉及負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或者應(yīng)用加速。在其他實施例 中,動作615可以包括“無動作”或者默認(rèn)動作。[0236]第二動作指定如果未限定策略的元素時所采取的動作。策略的元素可以包括策略 的任一部分,包括但不限于一個或者多個表達(dá)式、規(guī)則或者算子。元素可以在任一情況中未 限定,其中設(shè)備不能成功分配值給該元素。在一個實施例中,如果元素導(dǎo)致不兼容的類型的 比較時,諸如確定整數(shù)是否大于列表或者布爾值是否等于串,元素可以未被限定。在其他實 施例中,如果元素導(dǎo)致一個或者多個空值時元素可以未被限定。例如,如果表達(dá)式嘗試訪問 URL對象中的“用戶名”值并且表達(dá)式被應(yīng)用到具有所指定的無用戶名值的URL的數(shù)據(jù)流, 則關(guān)于用戶名的操作可以未被限定。在其他實施例中,由于一個或者多個不正確的類型轉(zhuǎn) 換,元素可以未被限定。[0237]在一些實施例中,第二動作可以已經(jīng)由用戶通過配置接口指定。例如,當(dāng)進(jìn)入或者 查看配置接口中的策略時,如果在運行時策略未被限定,用戶可以被提示輸入所采取的動 作。在其他實施例中,第二動作可以包括預(yù)配置的默認(rèn)的第二動作。例如,在未限定的元素 的情況下一組策略可以具有所采取的默認(rèn)動作。例如,啟用URL重寫的一組策略可以具有 不重寫任一 URL的默認(rèn)的第二動作。或者用于執(zhí)行負(fù)載平衡的一組策略可以具有將分組流 轉(zhuǎn)發(fā)到指定的備份服務(wù)器的默認(rèn)第二動作。[0238]設(shè)備200可以以任一方式確定策略600的元素是否關(guān)于有效載荷未限定(步驟 903)。在一些實施例中,設(shè)備可以確定在估計策略的過程中未限定策略。在其他實施例中, 設(shè)備可以確定在預(yù)編譯、編譯或者解釋策略的過程中未限定策略。在一些實施例中,設(shè)備可 以通過檢測在估計策略期間所產(chǎn)生的一個或者多個異常來確定策略未被限定。例如,設(shè)備 可以檢測策略估計期間的空指針、溢出、或者算術(shù)處理異常。[0239]響應(yīng)于確定元素未被限定,設(shè)備可以采取第二動作(步驟905)。第二動作可以包括 此處描述的任一動作。在一些實施例中,第二動作可以包括終止分組流的接收和/或傳送。 在其他實施例中,第二動作可以包括無動作。[0240]F、用于配置和使用策略組的系統(tǒng)和方法[0241]現(xiàn)在參考圖10A,示出策略體的例子??偟膩碚f,策略體IOOOa包括具有指定順序 用于估計的一組一個或者多個策略。在所示例子中,對于每個策略由行編號來指定順序。每 個策略還可以具有指示在當(dāng)前策略估計之后要估計的策略的流指令1010a、1010b、1010c、 IOlOd (總表示為1010)。[0242]仍舊參考圖10A,并且更詳細(xì)地,策略體1000可以包括任意數(shù)量個策略,包括但不 限于1、2、3、4、5、6、10、20、50和100個策略。策略體的策略可以包括此處描述的任一策略。 在一些實施例中,策略體可以包括執(zhí)行通用功能的一組策略。例如,策略體可以包括提供負(fù) 載平衡功能的一組策略?;蛘呃纾呗泽w可以包括用于提供高速緩存的一組所有的策略。[0243]策略體可以以任一方式配置。在一些實施例中,配置接口 700可以被提供其允許 用戶來建立或者分組一個或者多個策略。在一些實施例中,配置接口可以被提供其允許用 戶來命名給定的策略體。在其他實施例中,配置接口可以被提供其允許用戶來指定策略體 的一個或者多個屬性。例如,在異?;蛘呶聪薅ú呗缘那闆r下策略體可以具有默認(rèn)動作來 執(zhí)行?;蛘呃?,策略體可以具有策略體所應(yīng)用到的一組環(huán)境。例如,用戶可以指定關(guān)于所 有輸入的HTTP業(yè)務(wù)量而使用策略體?;蛘呃?,用戶可以指定當(dāng)接收來自新的裝置的任一 連接請求時使用策略體。在其他實施例中,策略體可以包括被用來加強(qiáng)策略體的策略中特 定特征的一組屬性。例如,策略體可以請求策略體中無策略訪問特定對象。策略體的屬性 可以在配置時或者運行時加強(qiáng)。[0244]策略體可以以任一方式保存。在一些實施例中,策略體可以保存在設(shè)備中的文件 上。在其他實施例中,策略體可以保存在設(shè)備的策略引擎236中。[0245]策略體可以包括任一方式的排序策略用于估計。在一個實施例中,策略體可以包 括策略的排序列表。在其他實施例中,策略體可以包括具有指示估計順序的一個或者多個 流量指令1010的一組策略。在又一些實施例中,策略體可以包括一列編號的要執(zhí)行的策 略,用于增加編號。[0246]策略體中的每一個表達(dá)式可以指定流量指令1010。在包含流量指令的策略估計為真的情況下流量指令1010可以包括指示要執(zhí)行的策略的任一信息或者表達(dá)式。在一個實 施例中,流量指令可以包括“NEXT”語句1010a,其指示體中的下一個策略可以被估計。在另 一個實施例中,流量指令可以包括“GOTO”語句1010b,其識別接著被估計的策略體中的另 一策略。在一些實施例中,GOTO語句可以通過行編號來識別策略。在其他實施例中,GOTO 語句可以通過策略名稱或者其它標(biāo)識符來識別策略。在又一個實施例中,流量指令可以包 括“END”語句,其指示應(yīng)該不再估計策略體的策略。[0247]在一些實施例中,流量指令I(lǐng)OlOd可以包括表達(dá)式或者要估計的表達(dá)式來確定下 一個執(zhí)行的策略。流量指令可以包括任一表達(dá)式,包括但不限于任一面向?qū)ο蟮谋磉_(dá)式。例 如,流量指令I(lǐng)OlOd指定跟隨查詢的“servnum”部分的整數(shù)應(yīng)該被增加到17來確定下一個 要執(zhí)行的策略的行。在示例性策略體中,流量指令I(lǐng)OlOd可以被用來基于請求中的參數(shù)在 多個服務(wù)器上分布HTTP請求。[0248]在一些實施例中,配置接口 700可以配備有用于用戶在策略體中排序策略的工 具。配置接口可以允許用戶指定行號、優(yōu)先級、列表排序或者指定估計順序的任一其它工 具。在一些實施例中,配置接口 700可以允許用戶來指定關(guān)于策略或者策略體的一個或者 多個流量指令。在其他實施例中,配置接口還可以提供用于輸入對應(yīng)于策略體中的策略的 一個或者多個流量指令的任一輸入工具。[0249]現(xiàn)在參考圖10B,示出用在處理分組流的網(wǎng)絡(luò)裝置200中的策略600上的流量控制 的方法的實施例。總的來說,該方法包括由設(shè)備200識別多個策略600來應(yīng)用到所接收的 分組流,其中,策略600的至少一個包括策略標(biāo)識符(步驟1001)。設(shè)備處理多個策略600的 第一策略600,第一策略600識別(i)包括第一表達(dá)式610的規(guī)則605 (ii)基于規(guī)則605 的估計所采取的第一動作615,和(iii)來自多個策略上的第二策略600 (步驟1003)?;?于表達(dá)式610的估計,設(shè)備確定規(guī)則605估計為真(步驟1005)。響應(yīng)于該確定,設(shè)備200處 理所識別的第二策略600 (步驟1007)。[0250]仍舊參考圖10B,更詳細(xì)地,由設(shè)備識別多個策略600來應(yīng)用到所接收的分組流, 其中,多個策略的至少一個指定策略標(biāo)識符(步驟1001)。設(shè)備可以以任一方式識別多個策 略。在一些實施例中,設(shè)備可以識別多個策略對應(yīng)于對于給定數(shù)據(jù)流、數(shù)據(jù)流源或者數(shù)據(jù)流 接收者的策略。在一個實施例中,多個策略可以包括策略庫。[0251]分組流可以以任一方式并且從任一源來接收。在一些實施例中,分組流可以由設(shè) 備透明攔截。在其他實施例中,設(shè)備可以在代理一個或者多個傳輸層連接的過程中接收分 組流。分組流可以包括任一類型的分組,包括但不限于IP分組、TCP分組、UDP分組和ICMP 分組。分組流可以包括任意其它一個或者多個協(xié)議。[0252]至少一個策略標(biāo)識符可以包括識別策略的任一工具,包括但不限于行編號、策略 名稱、或者優(yōu)先權(quán)編號。在一些實施例中,多個策略600的每一策略600指定指示其中應(yīng)該 處理策略600的默認(rèn)順序的等級。[0253]設(shè)備200處理多個策略600的第一策略600,其中第一策略600識別指定第一表達(dá) 式610的規(guī)則605、基于規(guī)則605的估計所采取的第一動作615,和識別多個策略600的第 二策略600的表達(dá)式610 (步驟1003)??梢愿鶕?jù)用于估計和處理策略的任一方法來處理 第一策略。在一些實施例中,第一策略可以包括面向?qū)ο蟮谋磉_(dá)式。在其他實施例中,第一 策略可以包括包含面向?qū)ο蟮谋磉_(dá)式的規(guī)則。[0254]第一策略可以包括識別第二策略的任一表達(dá)式。在一些實施例中,第一策略可以 包括第二策略的名稱。在其他實施例中,第一策略600包括指定如果第一動作615應(yīng)用時 下一個要處理的第二策略600的級別的整數(shù)。[0255]在一些實施例中,第一策略可以包括流量指令1010。第一策略可以包括任一流量 指令,包括“next ”、“goto”或者“end”。第一策略可以包括任一其它元素,包括但不限于如 果第一策略的兀素未限定時要執(zhí)行的動作。在一個實施例中,多個策略的每一個策略可以 包括流量指令。[0256]基于通過設(shè)備200的表達(dá)式610的估計,設(shè)備確定規(guī)則605估計為真(步驟1005)。 在一些實施例中,該步驟包括估計面向?qū)ο蟮谋磉_(dá)式610。[0257]響應(yīng)于確定該規(guī)則估計為真,設(shè)備200處理所識別的第二策略600 (步驟1007)。 在一個實施例中,步驟1007可以包括執(zhí)行由第一策略指定的流量指令。在一些實施例中, 設(shè)備200可以估計表達(dá)式610來確定下一個要處理的多個策略600中的第二策略600的級 另O。在一些其他實施例中,設(shè)備200可以估計面向?qū)ο蟮谋磉_(dá)式610來確定下一個要處理 的多個策略600中的第二策略600的級別。例如,設(shè)備可以估計表達(dá)式來確定結(jié)合GOTO流 量指令所使用的行編號。在確定行編號之后,設(shè)備可以隨后處理給定行編號處的策略。[0258]在一些實施例中,設(shè)備還可以在確定規(guī)則是真時采取由第一策略指定的動作。在 其他實施例中,當(dāng)確定規(guī)則為真時,設(shè)備可以保存列表中第一策略指定的動作。該列表可以 被用來保存所要采取的多個動作。在一個實施例中,由于設(shè)備處理策略庫中的多個策略,所 以設(shè)備可以保存對于包含被估計為真的規(guī)則的每一策略的一列動作。在處理該多個策略之 后,設(shè)備可以隨后采取保存在列表中的所有動作。在另一個實施例中,由于設(shè)備處理多個策 略庫,則設(shè)備可以保存對于包含被估計為真的規(guī)則的每一策略的一列動作。處理該多個策 略庫之后,設(shè)備可以隨后米取保存在列表中的所有動作。[0259]現(xiàn)在參考圖11A,示出圖解說明多個策略組上的流量控制的框圖??偟膩碚f,策略 體IOOOb包括多個策略。其中一個策略包括調(diào)用動作1110,其調(diào)用第二策略體1000c。調(diào) 用動作1110指示如果包含動作的策略的規(guī)則估計為真時所處理的策略體1000c。處理已調(diào) 用的策略體之后,設(shè)備隨后可以恢復(fù)處理第一策略體1000b。該處理將參考圖1IB進(jìn)一步被 描述。[0260]仍舊參考圖11A,配置接口 700可以被提供允許用戶通過包括一個或者多個調(diào)用 動作110來指定策略組上執(zhí)行的順序。調(diào)用動作可以以任一方式識別策略組,包括但不限 于通過名稱、通過存儲器位置或者通過任一其它標(biāo)識符。在一些實施例中,策略組可以包括 策略體。仍在其他實施例中,調(diào)用動作1110可以指定第二策略體中特定的策略。[0261]在一些實施例中,調(diào)用動作1110可以包括指示第二策略組如何被處理的一個或 者多個指示。在一個實施例中,包括在第一策略體中的調(diào)用動作1110可以指定在處理已調(diào) 用的策略體之后是否應(yīng)該恢復(fù)第一策略體的處理。在另一個實施例中,調(diào)用動作1110可以 指定如果所調(diào)用的策略體中遇到硬停或者異常時是否應(yīng)該恢復(fù)第一策略體的處理。例如, 調(diào)用動作可以指定如果在第二策略體中遇到“END”流量指令,則應(yīng)該恢復(fù)處理第一策略體。 或者調(diào)用動作可以指定如果在第二策略體中遇到異常或者“END”流量指令,則應(yīng)該不再處 理第一策略體的策略。[0262]以此方式,用戶可以配置多個策略體來確保處理特定策略,甚至一個或者多個策略體的結(jié)果是不確定的。例如,提供用于拒絕對限制的URL的訪問的策略的策略體可以調(diào) 用用于在檢測到URL指示請求包含SQL查詢時提供SQL安全的策略體。調(diào)用可以指定不考 慮SQL安全策略體處理的結(jié)果而在處理SQL策略體之后在URL模塊處應(yīng)該恢復(fù)處理。以此 方式,用戶可以保證執(zhí)行所有限制的URL加強(qiáng)策略體,其可以確保所有限制的URL被阻斷。[0263]在給定策略體遇到異常或者硬停止的情況下用戶還可以使用策略體調(diào)用動作 1110來確保策略不被估計。例如,提供內(nèi)容轉(zhuǎn)換策略的策略體在確定對應(yīng)于請求的應(yīng)用之 后可以調(diào)用包含用于應(yīng)用的應(yīng)用安全策略的策略體。該調(diào)用可以指示如果應(yīng)用安全策略體 遇到“END”指令,則在內(nèi)容轉(zhuǎn)換策略體中不再估計策略。這可以用在這些情況中:其中應(yīng)用 安全策略體中的“END”指令指示安全請求還沒有滿足,并且因此應(yīng)該不再進(jìn)行請求的處理。[0264]在一些實施例中,設(shè)備可以被配置具有對于策略組的一個或者多個默認(rèn)執(zhí)行順 序。例如,設(shè)備可以具有一個或者多個全局策略組,其總是首先應(yīng)用,之后是跟隨全局策略 組被處理的一個或者多個設(shè)備或者V服務(wù)器特定策略組。在一些實施例中,策略體可以具 有響應(yīng)于策略體執(zhí)行的功能的默認(rèn)排序。例如,SSL策略的策略體可以首先應(yīng)用到輸入業(yè) 務(wù)量,并且隨后一組安全策略可以應(yīng)用到解密的業(yè)務(wù)量,之后是內(nèi)容轉(zhuǎn)換策略的體。[0265]現(xiàn)在參考圖11B,示出用在處理分組流的網(wǎng)絡(luò)裝置200中的策略組上的流量控制 的方法的實施例??偟膩碚f,設(shè)備識別第一策略組以應(yīng)用到所接收的分組流(步驟1101)。 設(shè)備處理第一策略組的第一策略,其中第一策略識別(i)指定第一表達(dá)式610的規(guī)則605 和(ii)識別第二策略組的信息(步驟1103)。設(shè)備估計規(guī)則605 (步驟1105)。響應(yīng)于規(guī)則 605的估計,設(shè)備處理所識別的第二策略組(步驟1107)。處理第二策略組之后,設(shè)備處理第 一策略組的第二策略600 (步驟1109)。[0266]仍舊參考圖11B,更詳細(xì)地,設(shè)備可以以任一方式識別第一策略組來應(yīng)用到所接收 的分組流(步驟1101)。分組流可以從任一資源接收并且可以包括任意一個或者多個協(xié)議。[0267]在一些實施例中,第一策略可以包括面向?qū)ο蟮谋磉_(dá)式。在其他實施例中,第一策 略可以包括包含至少一個表達(dá)式和/或面向?qū)ο蟊磉_(dá)式的規(guī)則。在一些實施例中,第一策 略600指定基于規(guī)則605的估計所采取的動作615。[0268]識別第二策略組的信息可以包括任一形式的識別信息。在一個實施例中,第二策 略組可以包括策略體,并且識別信息可以包括策略體的名稱。在一些實施例中,識別第二策 略體的信息可以包括調(diào)用動作1110。[0269]設(shè)備可以以任一方式處理第一策略600 (步驟1103)。設(shè)備可以估計在處理策略 中的一個或者多個面向?qū)ο蟊磉_(dá)式。[0270]設(shè)備200可以以任一方式估計規(guī)則605 (步驟1105)。在一些實施例中,設(shè)備可以 估計面向?qū)ο蟊磉_(dá)式610。在一些實施例中,設(shè)備可以確定對應(yīng)于規(guī)則的布爾值。[0271]響應(yīng)于規(guī)則605的估計,設(shè)備處理所識別的第二策略組(步驟1107)。在一些實施 例中,如果規(guī)則估計為真,則設(shè)備可以僅處理第二策略組。在其他實施例中,如果規(guī)則估計 為非零值,則設(shè)備可以僅處理第二策略組。設(shè)備可以以任一方式處理第二組。在一些實施 例中,設(shè)備可以從由調(diào)用動作1110識別的特定策略起處理第二策略體。[0272]在一些實施例中,處理第二策略組之后,設(shè)備可以處理第一策略組的第二策略。例 如,在圖1lA中,設(shè)備可以估計策略體IOOOb中的行11的策略。如果規(guī)則為真,則設(shè)備可以 采取調(diào)用動作1110,并且設(shè)備可以處理策略體IOOOc。在完成處理策略體P3之后,設(shè)備可以返回策略體IOOOb并且處理下一個指令,其是行12。在一些實施例中,如果第二策略體導(dǎo)致 軟停止,諸如其中策略體的最后一個指令指向NEXT指令,如在策略體IOOOc的行30中,則 設(shè)備可以僅恢復(fù)處理第一策略體。在其他實施例中,甚至在指示硬停時,諸如策略體IOOOc 的行11,設(shè)備可以恢復(fù)處理第一策略體。[0273]在一些實施例中,第二策略組還可以包括一個或者多個調(diào)用動作。在這些實施例 中,策略體估計可以以任一方式鏈鎖(chained)。在一些實施例中,設(shè)備200可以處理第三 策略組,其中第三策略組通過第二策略組中的策略600識別。在其他實施例中,第一策略體 可以具有多個調(diào)用動作1110。在這些實施例中,設(shè)備可以處理第三策略組,其中第三策略組 由第一策略組的第二策略600識別。在又一些實施例中,在處理第二策略組之后,第一策略 體600指定識別要處理的第一策略組的第二策略600。例如,包括調(diào)用動作1110的策略還 可以包括在處理從第二策略組返回之后指定要處理的第一策略組的策略的流量指令。[0274]G、用于配置和使用應(yīng)用安全配置文件的系統(tǒng)和方法[0275]現(xiàn)在參考圖12,示出用于配置應(yīng)用安全配置文件的多個配置屏幕1200、1210、 1260、1240??偟膩碚f,配置文件建立屏幕1200允許用戶輸入名稱和一般性質(zhì)用于新的應(yīng) 用安全配置文件。配置文件配置屏幕1210允許用戶選擇包含在配置文件中的一個或者多 個檢驗。兩個檢驗配置屏幕1240、1260可以隨后允許用戶修改單個檢驗的設(shè)置。[0276]仍舊參考圖12,更詳細(xì)地,建立屏幕1200允許用戶輸入涉及配置文件的配置文件 名稱和附加的信息。配置文件可以以任一方式命名。在一些實施例中,配置文件名稱可以 反應(yīng)配置文件的一個或者多個功能。可以與配置文件一起來指定附加的信息。在一個實施 例中,配置文件可以指定與配置文件所應(yīng)用的網(wǎng)絡(luò)業(yè)務(wù)量的類型相關(guān)的信息。例如,配置文 件可以應(yīng)用到HTTP或者HTML業(yè)務(wù)量?;蛘吲渲梦募梢詰?yīng)用到web服務(wù)業(yè)務(wù)量。[0277]配置文件配置屏幕1210可以允許用戶指定一個或者多個檢驗以與配置文件使 用。檢驗可以包括涉及通用安全功能的任一組的策略或者動作。例如,cookie檢驗可以包 括一組策略、設(shè)置或者動作來阻止cookie竄改?;蛘咝庞每z驗可以包括一組策略、設(shè)置 或者動作來阻止機(jī)密信用卡信息經(jīng)由裝置發(fā)送。在所示實施例中,為用戶提供選擇來阻斷、 警告或者記錄關(guān)于給定的檢驗。如果選擇“阻斷”,則配置文件可以阻斷不符合檢驗的所有 業(yè)務(wù)量。如果選擇“警告”,則管理員或者用戶在分組流不符合檢驗時可以接收警告。如果 選擇“記錄”,則每當(dāng)分組流通過不符合檢驗的裝置發(fā)送時,可以建立記錄項。配置文件配置 屏幕可以提供選項來修改任一這些檢驗和規(guī)則。在一些實施例中,對檢驗的任一修改可以 轉(zhuǎn)變?yōu)橛脕砼渲镁W(wǎng)絡(luò)裝置的基本的策略表達(dá)式。[0278]檢驗配置屏幕1240、1260可以包括用于修改檢驗的任一輸入方式。在一個實施例 中,用戶可以指定一個或者多個策略包含在檢驗中。在另一個實施例中,用戶可以修改檢驗 的一個或者多個設(shè)置。檢驗的設(shè)置可以包括在確定業(yè)務(wù)量流是否滿足檢驗中檢驗所使用的 任一信息。例如,關(guān)于驗證開始URL的檢驗,設(shè)置可以包括一個或者多個允許的開始URL?;?者例如,對于表格字段格式檢驗,設(shè)置可以包括格式檢驗應(yīng)該被應(yīng)用的一個或者多個地址。 在一些實施例中,設(shè)置可以對應(yīng)于基本策略的一個或者多個元素。例如,允許的開始URL可 以合并為具有允許業(yè)務(wù)量傳遞的動作的策略的規(guī)則中的表達(dá)式。[0279]現(xiàn)在參考圖13A,示出用于配置對于裝置的一個或者多個應(yīng)用安全配置文件的方 法的流程圖,其中每一個應(yīng)用安全配置文件指定多個檢驗來執(zhí)行涉及應(yīng)用的安全功能??偟膩碚f,該方法包括提供用于配置應(yīng)用安全配置文件的配置接口(步驟1301)。該方法包括 經(jīng)由配置接口接收第一設(shè)置,其對應(yīng)于應(yīng)用安全配置文件的第一檢驗(步驟1303)。方法還 包括經(jīng)由配置接口接收第二設(shè)置,其對應(yīng)于應(yīng)用安全配置文件的第二檢驗(步驟1305)。該 方法還包括識別指定包括第一表達(dá)式600的規(guī)則605的策略600 (步驟1307)。該方法還 可以包括接收基于規(guī)則605的估計來識別要處理的應(yīng)用安全配置文件的信息(步驟1309)。[0280]仍舊參考圖13A,更詳細(xì)地,提供用于配置應(yīng)用安全配置文件的配置接口(步驟 1301)。配置接口可以包括任一配置接口、部件和此處描述的方法。在一些實施例中,配置 接口包括一個或者多個拖放接口、列表選擇接口或者語法突出顯示接口。在其他實施例中, 配置接口可以包括表達(dá)式配置屏幕600。在又一些實施例中,配置接口可以包括任一數(shù)量個 配置文件建立屏幕1300、檢驗配置屏幕1310、和/或設(shè)置配置屏幕1340、1360。在又一些 實施例中,配置接口 700是命令行接口。配置接口可以在任一裝置上執(zhí)行。在一些實施例 中,方法包括在與網(wǎng)絡(luò)裝置200通信的裝置上執(zhí)行配置接口 700。在其他實施例中,該方法 包括在網(wǎng)絡(luò)裝置200上執(zhí)行配置接口 700。在一個實施例中,該方法給用戶提供用于建立多 個應(yīng)用配置文件的配置文件接口 1300。[0281]裝置可以經(jīng)由配置接口接收指定應(yīng)用安全配置文件的對應(yīng)的第一檢驗的第一設(shè) 置(步驟1303)。在一些實施例中,裝置從配置接口 700接收第一檢驗所使用的URL。在其 他實施例中,裝置從配置接口 700接收指定第一檢驗所使用的一個或者多個URL的表達(dá)式 610。在又一些實施例中,裝置從配置接口 700接收指定第一檢驗所使用的一個或者多個 URL的面向?qū)ο蟮谋磉_(dá)式600。在一些實施例中,設(shè)置可以包括檢驗是否應(yīng)該阻斷、記錄或 者產(chǎn)生關(guān)于干擾檢驗的分組流的警告的指示。在其他實施例中,設(shè)置可以包括包含在檢驗 中的一個或者多個策略的元素。[0282]裝置還經(jīng)由配置接口 700接收第二設(shè)置,該第二設(shè)置指定應(yīng)用安全配置文件的對 應(yīng)的第二檢驗(步驟1305)。該設(shè)置可以以任一方式接收,包括第一設(shè)置被接收的任一方式。[0283]裝置可以經(jīng)由配置接口 700識別指定包括第一表達(dá)式610的規(guī)則605的策略600 (步驟1307)。在一些實施例中,策略可以包括面向?qū)ο蟮谋磉_(dá)式。策略可以以任一方式識 另O。在一些實施例中,策略可以從列表中挑選。在其他實施例中,策略可以經(jīng)由拖放接口挑 選。在又一些實施例中,策略可以關(guān)于給定的配置文件自動挑選。在一個實施例中,策略可 以由用戶直接輸入。[0284]裝置可以經(jīng)由接口 700接收基于規(guī)則605的估計來識別要處理的應(yīng)用安全配置文 件的信息(步驟1309)。在一個實施例中,應(yīng)用安全配置文件可以表示為策略體,并且調(diào)用動 作可以增加到識別策略體的策略。在一些實施例中,方法包括保存應(yīng)用安全配置文件。在 其他實施例中,方法包括將應(yīng)用安全配置文件發(fā)送到網(wǎng)絡(luò)裝置200。[0285]在一些實施例中,應(yīng)用安全配置文件可以被指定為動作用于多個策略。例如,可以 存在多個條件,在這些條件下應(yīng)該應(yīng)用包括表格字段一致性的應(yīng)用安全配置文件和緩沖器 溢出檢驗。多個策略,其中指定若干條件中一個的每一個策略可以調(diào)用應(yīng)用安全配置文件 作為動作。[0286]現(xiàn)在參考圖13B,示出用于對于裝置執(zhí)行一個或者多個應(yīng)用安全配置文件的方法 的實施例,每一個應(yīng)用安全配置文件指定執(zhí)行涉及應(yīng)用的安全功能的多個策略組??偟膩?說,該方法包括識別第一策略的設(shè)備以應(yīng)用到所接收的分組流,其中第一策略600指定包括第一表達(dá)式610的規(guī)則605并且識別應(yīng)用安全配置文件(步驟1321)。設(shè)備200估計規(guī) 則605 (步驟1323)。響應(yīng)于規(guī)則605的估計,設(shè)備處理應(yīng)用安全配置文件識別的第一檢驗 (步驟1325)。響應(yīng)于規(guī)則605的確定,設(shè)備還處理應(yīng)用安全配置文件指定的第二檢驗(步驟 1327)。[0287]仍舊參考圖13B,更詳細(xì)地,該方法包括識別第一策略的設(shè)備以應(yīng)用到所接收的分 組流,其中第一策略600指定包括第一表達(dá)式610的規(guī)則605并且識別應(yīng)用安全配置文件 (步驟1321)。在一些實施例中,設(shè)備200包括VPN代理裝置。在一些其他實施例中,設(shè)備 200識別第一策略600以應(yīng)用到所接收的TCP分組流。分組流可以以任一方式從任一資源 接收。分組流可以包括任意一個或者多個協(xié)議。[0288]設(shè)備200估計策略的規(guī)則(步驟1323)。設(shè)備可以根據(jù)任一技術(shù)來估計規(guī)則。在一 些實施例中,規(guī)則可以包括面向?qū)ο蟮谋磉_(dá)式。在其他實施例中,規(guī)則可以包括多個面向?qū)?象的表達(dá)式。在一些實施例中,設(shè)備可以確定布爾值作為估計表達(dá)式的結(jié)果。[0289]響應(yīng)于規(guī)則605的估計,設(shè)備200處理應(yīng)用安全配置文件識別的第一檢驗(步驟 1325)。在一些實施例中,設(shè)備可以響應(yīng)于確定規(guī)則為真來處理第一檢驗。[0290]設(shè)備可以以任一方式處理第一檢驗。在一些實施例中,設(shè)備估計第一檢驗的至少 一個設(shè)置來確定是否應(yīng)用第一檢驗。在一些其他實施例中,設(shè)備確定包含在分組流中的URL 匹配第一檢驗的至少一個設(shè)置,并且響應(yīng)于該確定來應(yīng)用第一檢驗。在又一些實施例中,設(shè) 備可以確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的表達(dá)式610,并且響應(yīng)于該 確定來應(yīng)用第一檢驗。在其他實施例中,設(shè)備可以確定包含在分組流中的URL匹配第一檢 驗的一個設(shè)置的面向?qū)ο蟮谋磉_(dá)式610。設(shè)備可以響應(yīng)于該確定來應(yīng)用第一檢驗。[0291]響應(yīng)于規(guī)則605的確定,設(shè)備200還可以處理應(yīng)用安全配置文件指定的第二檢驗 (步驟1327)。在一些實施例中,設(shè)備可以響應(yīng)于確定規(guī)則為真來處理第二檢驗。在一些實施 例中,該方法使用第一檢驗和第二檢驗的至少一個用來執(zhí)行以下的其中一個:SQL注入檢 測、無效開始URL檢測、cookie竄改檢測、表格字段一致性檢測、緩沖器溢出檢測、交叉站點 腳本檢測、信用卡號碼檢測、和無效URL檢測。在一些其他實施例中,該方法使用第一檢驗 和第二檢驗的至少一個來執(zhí)行以下的其中一個:SQL注入阻斷、無效開始URL阻斷、cookie 竄改阻斷、非一致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、 和無效URL阻斷。[0292]雖然本發(fā)明已經(jīng)參考特定優(yōu)選實施例詳細(xì)地示出和描述,但是本領(lǐng)域內(nèi)的普通技 術(shù)人員應(yīng)該理解在不脫離由所附權(quán)利要求限定的本發(fā)明的精神和保護(hù)范圍的情況下可以 在形式上和細(xì)節(jié)上做出多種改變。
【權(quán)利要求】
1.一種在設(shè)備中在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定所述設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括: Ca)由設(shè)備識別包括面向?qū)ο蟊磉_(dá)式的策略來估計關(guān)于所接收的分組流的有效載荷; (b)基于有效載荷的部分,由所述設(shè)備分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu); (C)由所述設(shè)備基于所分配的值來執(zhí)行表達(dá)式的估計;和 Cd)響應(yīng)于該估計,采取策略所指定的動作。
2.權(quán)利要求1的方法,其中步驟(b)包括由所述設(shè)備應(yīng)用所述面向?qū)ο蟮谋磉_(dá)式指定的數(shù)據(jù)結(jié)構(gòu)到所述有效載荷的字節(jié)流。
3.一種設(shè)備,用于在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定所述設(shè)備接收的分組流的有效載荷中的數(shù)據(jù)結(jié)構(gòu),所述設(shè)備包括: 接收分組流的分組處理器;和 策略引擎,識別包括面向?qū)ο蟮谋磉_(dá)式來估計關(guān)于所述分組流的有效載荷的策略;基于有效載荷的部分,分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu);基于所分配的值來執(zhí)行表達(dá)式的估計;和響應(yīng)于該估計,采取策略所指定的動作。
4.權(quán)利要求3的設(shè)備,其中,所述策略引擎應(yīng)用所述面向?qū)ο蟮谋磉_(dá)式指定的數(shù)據(jù)結(jié)構(gòu)到所述有效載荷的字節(jié)流。
5.一種在設(shè)備中在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定所述設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括: Ca)由設(shè)備識別包括面向?qū)ο蟊磉_(dá)式的策略來估計關(guān)于所接收的分組流的有效載荷; (b)基于有效載荷的部分,由所述設(shè)備分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu); (C)由所述設(shè)備基于所分配的值來執(zhí)行表達(dá)式的估計;` Cd)響應(yīng)于該估計,改變所接收的分組流的部分;和 Ce)由該設(shè)備發(fā)送所改變的分組流。
6.權(quán)利要求5的方法,其中,所述策略識別協(xié)議。
7.權(quán)利要求6的方法,還包括根據(jù)所識別的協(xié)議來解析有效載荷的部分。
8.權(quán)利要求6的方法,其中,所述協(xié)議是HTTP。
9.權(quán)利要求5的方法,其中,所述表達(dá)式指定對應(yīng)于HTTP請求的對象類。
10.權(quán)利要求5的方法,其中,所述表達(dá)式指定對應(yīng)于HTTP請求的對象類,并且所述對象類對應(yīng)于URL。
11.權(quán)利要求5的方法,其中,所述表達(dá)式指定對應(yīng)于HTTP響應(yīng)體的對象類,并且所述對象類對應(yīng)于URL。
12.權(quán)利要求5的方法,其中,步驟(d)包括改變所述數(shù)據(jù)結(jié)構(gòu)指定的分組流的部分。
13.權(quán)利要求5的方法,其中,步驟(d)包括改變第二面向?qū)ο蟮谋磉_(dá)式所指定的分組流的部分。
14.權(quán)利要求5的方法,其中,步驟(d)包括重寫包含在所述分組流中的HTTP響應(yīng)的體中的URL。
15.權(quán)利要求5的方法,其中,步驟(d)包括模糊包含在所述分組流中的信用卡號碼。
16.權(quán)利要求5的方法,其中,步驟(d)包括重寫HTTP請求中的URL。
17.權(quán)利要求5的方法,其中,步驟(d)包括重寫HTTP響應(yīng)的表格字段值。
18.一種設(shè)備,用于在策略中應(yīng)用面向?qū)ο蟮谋磉_(dá)式來指定所述設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu),所述設(shè)備包括: 接收分組流的分組處理器;和 策略引擎,識別包括面向?qū)ο蟊磉_(dá)式的策略來估計關(guān)于所接收的分組流的有效載荷;基于有效載荷的部分,分配值給面向?qū)ο蟊磉_(dá)式所指定的數(shù)據(jù)結(jié)構(gòu);由所述設(shè)備基于所分配的值來執(zhí)行表達(dá)式的估計;響應(yīng)于該估計,改變所接收的分組流的部分;和發(fā)送所改變的分組流。
19.權(quán)利要求18的設(shè)備,其中,所述策略識別協(xié)議。
20.權(quán)利要求19的設(shè)備,其中,還包括根據(jù)所識別的協(xié)議來解析有效載荷的部分。
21.權(quán)利要求19的設(shè)備,其中,所述協(xié)議是HTTP。
22.權(quán)利要求18的設(shè)備,其中,所述表達(dá)式指定對應(yīng)于HTTP請求的對象類。
23.權(quán)利要求18的設(shè)備,其中,所述表達(dá)式指定對應(yīng)于HTTP請求的對象類,并且對象類對應(yīng)于URL。
24.權(quán)利要求18的設(shè)備,其中,所述表達(dá)式指定對應(yīng)于HTTP響應(yīng)體的對象類,并且對象類對應(yīng)于URL。
25.權(quán)利要求18的設(shè)備,其中,所述策略引擎改變所述數(shù)據(jù)結(jié)構(gòu)指定的分組流的部分。
26.權(quán)利要求18的設(shè)`備,其中,所述策略引擎改變第二面向?qū)ο蟮谋磉_(dá)式指定的分組流的部分。
27.權(quán)利要求18的設(shè)備,其中,所述策略引擎重寫包含在所述分組流中的HTTP響應(yīng)的體中的URL。
28.權(quán)利要求18的設(shè)備,其中,所述策略引擎模糊包含在所述分組流中的信用卡號碼。
29.權(quán)利要求18的設(shè)備,其中,所述策略引擎重寫HTTP請求中的URL。
30.權(quán)利要求18的設(shè)備,其中,所述策略引擎重寫HTTP響應(yīng)的表格字段值。
31.一種用于配置網(wǎng)絡(luò)裝置來在處理分組流中使用的策略間指定流量控制的方法,所述方法包括: (a)提供用于配置網(wǎng)絡(luò)裝置的多個策略的配置接口,多個策略的至少一個策略包括策略識別符;和 (b)經(jīng)由配置接口接收識別多個策略的第一策略的信息,第一策略識別(i)包括第一表達(dá)式的規(guī)則和(ii)基于該規(guī)則的估計所采取的第一動作;和 (C)經(jīng)由配置接口接收識別多個策略的第二策略的信息使得當(dāng)規(guī)則估計為真時隨后應(yīng)用到第一策略。
32.權(quán)利要求31的方法,其中,步驟(a)包括提供命令行配置接口。
33.權(quán)利要求31的方法,其中,步驟(a)包括提供配置接口,所述配置接口包括拖放接口、列表選擇接口或者語法突出顯示接口的一個或者多個。
34.權(quán)利要求31的方法,其中,步驟(a)包括在與網(wǎng)絡(luò)裝置通信的裝置上執(zhí)行配置接□。
35.權(quán)利要求31的方法,其中,步驟(a)包括在網(wǎng)絡(luò)裝置上執(zhí)行配置接口。
36.權(quán)利要求31的方法,其中,所述第一表達(dá)式是面向?qū)ο蟮谋磉_(dá)式。
37.權(quán)利要求31的方法,其中,所述第一動作包括無動作。
38.權(quán)利要求31的方法,其中,所述第一動作指定執(zhí)行以下其中一個的功能:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
39.權(quán)利要求31的方法,其中,步驟(c)包括接收指定第二策略的行編號的整數(shù)。
40.權(quán)利要求31的方法,其中,步驟(c)包括接收指定第二策略的策略標(biāo)識符。
41.權(quán)利要求31的方法,其中,步驟(c)包括在運行時接收要估計的表達(dá)式來指定第二策略的行編號。
42.權(quán)利要求31的方法,其中,步驟(c)包括在運行時接收要估計的面向?qū)ο蟮谋磉_(dá)式來指定第二策略的行編號。
43.權(quán)利要求31的方法,其中,所述多個策略包括策略庫。
44.權(quán)利要求31的方法,其中,所述多個策略的每一個策略包括指示網(wǎng)絡(luò)裝置將處理所述策略的默認(rèn)順序的級別。
45.一種在處理分組流的網(wǎng)絡(luò)裝置中使用的策略間的流量控制的方法,所述方法包括: Ca)由設(shè)備識別多個策略以應(yīng)用到所接收的分組流,多個策略的至少一個策略包括策略識別符; (b)由所述設(shè)備處理多個策略的第一策略,第一策略識別(i)包括第一表達(dá)式的規(guī)則和(ii)基于該規(guī)則的估計所采取的第一動作,和(iii)多個策略的第二策略; (C)由所述設(shè)備基于該表達(dá)式的估計來確定規(guī)則估計為真;并且 Cd)由所述設(shè)備響應(yīng)該確定來處理所識別的第二策略。
46.權(quán)利要求45的方法,其中,步驟(c)包括估計面向?qū)ο蟮谋磉_(dá)式。
47.權(quán)利要求45的方法,還包括步驟:響應(yīng)于該確定,執(zhí)行第一策略識別的動作。
48.權(quán)利要求45的方法,還包括步驟:響應(yīng)于該確定,執(zhí)行第一策略識別的動作;該動作包括執(zhí)行以下其中一個:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
49.權(quán)利要求45的方法,其中,第一策略包括指定如果第一動作應(yīng)用時下一個要處理的多個策略的第二策略的級別的整數(shù)。
50.權(quán)利要求45的方法,其中,步驟(d)包括由所述設(shè)備估計表達(dá)式來確定下一個要處理的多個策略的第二策略的級別。
51.權(quán)利要求45的方法,其中,步驟(d)包括由所述設(shè)備估計面向?qū)ο蟮谋磉_(dá)式來確定下一個要處理的多個策略的第二策略的級別。
52.權(quán)利要求45的方法,其中,所述多個策略包括策略庫。
53.權(quán)利要求45的方法,其中,所述多個策略的每一個策略包括指示應(yīng)該處理所述策略的默認(rèn)順序的級別。
54.權(quán)利要求45的方法,其中,還包括響應(yīng)于該確定,在列表中保存第一策略識別的動作。
55.權(quán)利要求54的方法,還包括在列表中保存至少一個其他動作,所述至少一個其他動作在具有估計為真的規(guī)則的至少一個其它策略中被識別。
56.權(quán)利要求55的方法,還包括執(zhí)行保存在動作的列表中的每個動作。
57.一種設(shè)備,在處理分組流的網(wǎng)絡(luò)裝置中使用的策略間提供流量控制,所述設(shè)備包括: 用于接收分組流的分組處理器;和 策略引擎,識別多個策略以應(yīng)用到所接收的分組流,多個策略的至少一個策略包括策略識別符;處理多個策略的第一策略,第一策略識別(i)包括第一表達(dá)式的規(guī)則和(ii)基于該規(guī)則的估計所采取的第一動作,和(iii)多個策略的第二策略;基于該表達(dá)式的估計來確定規(guī)則估計為真;并且響應(yīng)該確定由所述設(shè)備來處理所識別的第二策略。
58.權(quán)利要求57的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_(dá)式。
59.權(quán)利要求57的設(shè)備,其中,所述策略引擎響應(yīng)于該確定來執(zhí)行第一策略識別的動作。
60.權(quán)利要求57的設(shè)備,其中,所述策略引擎響應(yīng)于該確定,執(zhí)行第一策略識別的動作;該動作包括執(zhí)行以下其中一個:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速和應(yīng)用加速。
61.權(quán)利要求57的設(shè)備,其中,第一策略包括如果第一動作應(yīng)用時指定下一個要處理的多個策略的第二策略的級別的整數(shù)。
62.權(quán)利要求57的設(shè)備,其中,所述策略引擎估計表達(dá)式來確定下一個要處理的多個策略的第二策略的級別。
63.權(quán)利要求57的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_(dá)式來確定下一個要處理的多個策略的第二策略的級別。
64.權(quán)利要求57的設(shè)備`,其中,所述多個策略包括策略庫。
65.權(quán)利要求57的設(shè)備,其中,所述多個策略的每一個策略包括指示應(yīng)該處理所述策略的默認(rèn)順序的級別。
66.權(quán)利要求57的設(shè)備,其中,所述策略引擎響應(yīng)于該確定,在列表中保存第一策略識別的動作。
67.權(quán)利要求66的設(shè)備,其中,所述策略引擎在列表中保存至少一個其他動作,所述至少一個其他動作在具有估計為真的規(guī)則的至少一個其它策略中被識別。
68.權(quán)利要求67的設(shè)備,其中,所述策略引擎執(zhí)行保存在動作的列表中的每個動作。
69.一種用于配置在處理分組流的網(wǎng)絡(luò)裝置中使用的策略組間的流量控制的方法,所述方法包括: (a)提供用于配置網(wǎng)絡(luò)裝置的多個策略組的配置接口; (b)由配置接口識別第一策略組的第一策略,第一策略指定包括第一表達(dá)式的規(guī)則;并且 (C)經(jīng)由所述接口基于規(guī)則的估計接收識別要處理的第二策略組的信息。
70.權(quán)利要求69的方法,其中,步驟(a)包括提供命令行配置接口。
71.權(quán)利要求69的方法,其中,步驟(a)包括提供配置接口,所述配置接口包括拖放接口、列表選擇接口或者語法突出顯示接口的一個或者多個。
72.權(quán)利要求69的方法,其中,步驟(a)包括在與網(wǎng)絡(luò)裝置通信的裝置上執(zhí)行配置接□。
73.權(quán)利要求69的方法,其中,步驟(a)包括在網(wǎng)絡(luò)裝置上執(zhí)行配置接口。
74.權(quán)利要求69的方法,其中,步驟(a)包括向用戶提供配置接口用于建立多個策略組。
75.權(quán)利要求69的方法,其中,所述第一策略指定具有面向?qū)ο蟮谋磉_(dá)式的規(guī)則。
76.權(quán)利要求69的方法,其中,基于所述規(guī)則的估計所述第一策略指定所采取的動作。
77.權(quán)利要求69的方法,其中,所述第一策略指定如果規(guī)則估計為真要采取的動作;所述動作包括執(zhí)行以下其中一個:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
78.權(quán)利要求69的方法,其中,所述第一策略指定在處理第二策略組之后要處理的第一策略組的第二策略。
79.權(quán)利要求69的方法,其中,步驟(c)包括經(jīng)由所述接口接收如果規(guī)則估計為真時識別要處理的第二策略組的信息。
80.權(quán)利要求69的方法,其中,步驟(c)包括經(jīng)由所述接口基于規(guī)則的估計接收要處理的第二策略組的標(biāo)號。
81.—種處理分組流的網(wǎng)絡(luò)裝置中使用的策略組間的流量控制的方法,所述方法包括: Ca)由設(shè)備識別第一策略組以應(yīng)用到所接收的分組流; (b)由所述設(shè)備處理第一策略組的第一策略,第一策略識別(i)包括第一表達(dá)式的規(guī)貝U,和(ii)識別第二策略組的信息; (c)由所述設(shè)備估計該規(guī)則;并且` Cd)由所述設(shè)備響應(yīng)該規(guī)則的估計來處理所識別的第二策略組。
82.權(quán)利要求81的方法,其中,步驟(c)包括估計面向?qū)ο蟮谋磉_(dá)式。
83.權(quán)利要求81的方法,其中,所述第一策略指定基于規(guī)則的估計所采取的動作。
84.權(quán)利要求81的方法,還包括步驟:響應(yīng)于該確定,執(zhí)行第一策略識別的動作。
85.權(quán)利要求81的方法,其中,所述動作包括執(zhí)行以下其中一個:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
86.權(quán)利要求81的方法,還包括響應(yīng)于該確定,在列表中保存第一策略識別的動作。
87.權(quán)利要求86的方法,還包括在列表中保存至少一個其他動作,所述至少一個其他動作在第二策略組的第二策略中被識別。
88.權(quán)利要求86的方法,還包括執(zhí)行保存在動作的列表中的每個動作。
89.權(quán)利要求81的方法,還包括由所述設(shè)備在處理第二策略組之后處理第一策略組的第二策略。
90.權(quán)利要求81的方法,還包括由所述設(shè)備處理第三策略組,所述第三策略組由第二策略組的第二策略識別。
91.權(quán)利要求81的方法,還包括由所述設(shè)備處理第三策略組,所述第三策略組由第一策略組的第二策略識別。
92.權(quán)利要求81的方法,其中,所述第一策略指定在第二策略組處理之后要處理的第一策略組的第二策略。
93.權(quán)利要求92的方法,還包括由所述設(shè)備在處理第二策略組之后處理第二策略。
94.一種設(shè)備,在處理分組流中使用的策略組間提供流量控制,所述設(shè)備包括: 用于接收分組流的分組處理器;和策略引擎,識別第一策略組以應(yīng)用到所接收的分組流;處理第一策略組的第一策略,第一策略識別(i)包括第一表達(dá)式的規(guī)則,和(ii)識別第二策略組的信息;估計該規(guī)則;并且響應(yīng)該規(guī)則的估計來處理所識別的第二策略組。
95.權(quán)利要求94的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_(dá)式。
96.權(quán)利要求94的設(shè)備,其中,所述策略引擎響應(yīng)于該確定來執(zhí)行第一策略識別的動作。
97.權(quán)利要求94的設(shè)備,其中,所述策略引擎執(zhí)行以下其中一個:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
98.權(quán)利要求94的設(shè)備,其中,所述策略引擎響應(yīng)于該確定,在列表中保存第一策略識別的動作。
99.權(quán)利要求94的設(shè)備,其中,所述策略引擎在列表中保存至少一個其他動作,所述至少一個其他動作在第二策略組的第二策略中被識別。
100.權(quán)利要求99的設(shè)備,其中,所述策略引擎執(zhí)行保存在動作的列表中的每個動作。
101.權(quán)利要求94的設(shè)備,其中,所述策略引擎在處理第二策略組之后處理第一策略組的第二策略。
102.權(quán)利要求94的設(shè)備,其中,所述策略引擎處理第三策略組,所述第三策略組由第二策略組的策略識別。
103.權(quán)利要求94的設(shè)備,其中,所述策略引擎在處理第二策略組之后恢復(fù)處理第一策略組。
104.權(quán)利要求94的設(shè)備,其中,所述策略引擎處理第三策略組,所述第三策略組由第一策略組的第二策略識別。
105.權(quán)利要求94的設(shè)備,其中,所述第一策略指定在第二策略組處理之后要處理的第一策略組的第二策略。
106.權(quán)利要求105的設(shè)備,其中,所述策略引擎在處理第二策略組之后處理第二策略。
107.一種在策略的元素未被限定的情況下通過指定要采取的動作來配置網(wǎng)絡(luò)裝置所使用的策略的方法,所述方法包括: (a)提供用于配置網(wǎng)絡(luò)裝置的策略的配置接口; (b)基于表達(dá)式的估計由配置接口識別包括要采取的第一動作的策略;和 (c)經(jīng)由所述配置接口接收識別所述策略的第二動作的信息,即如果所述策略的元素未被限定要采取的第二動作。
108.權(quán)利要求107的方法,其中,步驟(a)包括提供用于配置網(wǎng)絡(luò)裝置的策略的命令行配置接口。
109.權(quán)利要求107的方法,其中,步驟(a)包括提供配置接口,所述配置接口包括拖放接口、列表選擇接口或者語法突出顯示接口的一個或者多個。
110.權(quán)利要求107的方法,其中,步驟(a)包括在與網(wǎng)絡(luò)裝置通信的裝置上執(zhí)行配置接□。
111.權(quán)利要求107的方法,其中,步驟(a)包括在與網(wǎng)絡(luò)裝置通信的裝置上執(zhí)行配置接□。
112.權(quán)利要求107的方法,其中,步驟(b)包括由用戶經(jīng)由配置接口配置用于策略的面向?qū)ο蟮谋磉_(dá)式。
113.權(quán)利要求107的方法,其中,步驟(b)包括從用戶經(jīng)由配置接口接收用于策略的表達(dá)式,所述表達(dá)式具有對象類和對象類的成員。
114.權(quán)利要求107的方法,其中,所述第二動作包括無動作。
115.權(quán)利要求107的方法,其中,所述第二動作包括阻斷來自網(wǎng)絡(luò)裝置的分組流的部分的傳輸。
116.權(quán)利要求107的方法,其中,第一動作或者第二動作的至少一個指定執(zhí)行以下其中之一的功能:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
117.權(quán)利要求107的方法,其中,第一動作和第二動作的至少一個指定重寫分組流的有效載荷的部分。
118.權(quán)利要求107的方法,其中,第一動作和第二動作的至少一個指定重寫包含在HTTP響應(yīng)中的URL。
119.權(quán)利要求107的方法,其中,第一動作和第二動作的至少一個包括面向?qū)ο蟮谋磉_(dá)式。
120.權(quán)利要求107的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的表達(dá)式未被限定時要采取的第二動作。
121.權(quán)利要求107的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的規(guī)則未被限定時要采取的第二動作。
122.權(quán)利要求107的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的第一動作未被限定時要采取的第二動作。
123.—種在設(shè)備中在策略的元素未被限定的情況下應(yīng)用指定所要采取的動作的策略的方法,所述方法包括: Ca)由所述設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負(fù)載,該策略指定(i )表達(dá)式;(ii )基于表達(dá)式的估計所采取的第一動作和(iii )如果策略的元素未被限定時所采取的第二動作; (b)由所述設(shè)備確定策略的元素關(guān)于有效載荷未被限定; (c)由所述設(shè)備響應(yīng)該確定來采取第二動作。
124.權(quán)利要求123的方法,其中,步驟(b)包括估計面向?qū)ο蟮谋磉_(dá)式。
125.權(quán)利要求123的方法,其中,步驟(b)包括估計具有對象類和對象類的成員的表達(dá)式。
126.權(quán)利要求123的方法,其中,步驟(b)包括由所述設(shè)備確定該表達(dá)式關(guān)于分組流未被限定。
127.權(quán)利要求123的方法,其中,步驟(b)包括由所述設(shè)備確定策略的規(guī)則未被限定。
128.權(quán)利要求123的方法,其中,步驟(b)包括由所述設(shè)備確定策略的第一動作未被限定。
129.權(quán)利要求123的方法,其中,步驟(c)包括不采取動作。
130.權(quán)利要求123的方法,其中,步驟(c)包括阻斷來自所述設(shè)備的分組流的傳輸。
131.權(quán)利要求123的方法,其中,步驟(c)包括執(zhí)行以下其中之一:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速或應(yīng)用加速。
132.權(quán)利要求123的方法,其中,步驟(c)包括重寫分組流的有效載荷的部分。
133.權(quán)利要求123的方法,其中,步驟(c)包括重寫包含在HTTP響應(yīng)中的URL。
134.一種設(shè)備,使得用戶能夠在策略中包含的表達(dá)式不能由所述設(shè)備估計的情況下指定所采取的動作,所述設(shè)備包括: 用于接收分組流的分組處理器;和 策略引擎,識別策略來估計關(guān)于所接收的分組流的有效負(fù)載,該策略指定(i )表達(dá)式;(ii)基于表達(dá)式的估計所采取的第一動作和(iii)如果所述表達(dá)式未被成功估計時所采取的第二動作;確定表達(dá)式不能關(guān)于分組流被成功估計;并且采取第二動作。
135.權(quán)利要求134的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_(dá)式。
136.權(quán)利要求134的設(shè)備,其中,所述策略引擎估計具有對象類和對象類的成員的表達(dá)式。
137.權(quán)利要求134的設(shè)備,其中,所述第二動作包括無動作。
138.權(quán)利要求134的設(shè)備,其中,所述第二動作包括阻斷分組流的部分。
139.權(quán)利要求134的設(shè)備,其中,第一動作和第二動作的至少一個指定涉及以下至少其中之一的功能:負(fù)載平衡、內(nèi)容轉(zhuǎn)換、應(yīng)用安全、應(yīng)用遞送、網(wǎng)絡(luò)加速和應(yīng)用加速。
140.權(quán)利要求134的設(shè) 備,其中,第一動作或第二動作的至少一個指定重寫分組流的有效載荷的部分。
141.權(quán)利要求134的設(shè)備,其中,第一動作或第二動作的至少一個指定重寫包含在HTTP響應(yīng)中的URL。
142.權(quán)利要求134的設(shè)備,其中,所述策略引擎確定所述表達(dá)式關(guān)于分組流未被限定。
143.權(quán)利要求134的設(shè)備,其中,所述策略引擎確定策略的規(guī)則關(guān)于分組流未被限定。
144.權(quán)利要求134的設(shè)備,其中,所述策略引擎確定第一動作關(guān)于分組流未被限定。
145.一種用于配置對于裝置的一個或者多個應(yīng)用安全配置文件的方法,每一個應(yīng)用安全配置文件指定執(zhí)行關(guān)于應(yīng)用的安全功能的多個檢驗,所述方法包括: (a)提供用于配置應(yīng)用安全配置文件的配置接口; (b)經(jīng)由配置接口接收第一設(shè)置,該設(shè)置指定對應(yīng)于應(yīng)用安全配置文件的第一檢驗; (C)經(jīng)由配置接口接收第二設(shè)置,該第二設(shè)置指定對應(yīng)于應(yīng)用安全配置文件的第二檢驗; Cd)由配置接口識別策略,該策略指定包括第一表達(dá)式的規(guī)則;并且 (e)經(jīng)由所述接口接收識別基于規(guī)則估計而要處理的應(yīng)用安全配置文件的信息。
146.權(quán)利要求145的方法,其中,步驟(a)包括提供命令行配置接口。
147.權(quán)利要求145的方法,其中,步驟(a)包括提供配置接口,所述配置接口包括拖放接口、列表選擇接口或者語法突出顯示接口的一個或者多個。
148.權(quán)利要求145的方法,其中,步驟(a)包括在與網(wǎng)絡(luò)裝置通信的裝置上執(zhí)行配置接□。
149.權(quán)利要求145的方法,其中,步驟(a)包括在網(wǎng)絡(luò)裝置上執(zhí)行配置接口。
150.權(quán)利要求145的方法,其中,步驟(a)包括為用戶提供用于建立多個應(yīng)用配置文件的配置接口。
151.權(quán)利要求145的方法,其中,步驟(b)包括經(jīng)由配置接口接收第一檢驗所使用的URL。
152.權(quán)利要求145的方法,其中,步驟(b)包括經(jīng)由配置接口接收指定第一檢驗使用的一個或者多個URL的表達(dá)式。
153.權(quán)利要求145的方法,其中,步驟(b)包括經(jīng)由配置接口接收指定第一檢驗使用的一個或者多個URL的面向?qū)ο蟮谋磉_(dá)式。
154.權(quán)利要求145的方法,其中,步驟(d)包括經(jīng)由配置接口識別具有面向?qū)ο蟮谋磉_(dá)式的策略。
155.權(quán)利要求145的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入檢測、無效開始URL檢測、cookie竄改檢測、表格字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、和無效URL檢測。
156.權(quán)利要求145的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、和無效URL阻斷。
157.權(quán)利要求145的方法,還包括保存應(yīng)用安全配置文件。
158.權(quán)利要求145的方法,還包括發(fā)送應(yīng)用安全配置文件到網(wǎng)絡(luò)裝置。
159.—種在設(shè)備中用于執(zhí)行對于裝置的一個或者多個應(yīng)用安全配置文件的方法,每一個應(yīng)用安全配置文件指定執(zhí)行關(guān)于應(yīng)用的安全功能的多個策略組,所述方法包括: (a)由設(shè)備識別第一策略以應(yīng)用到所接收的分組流;第一策略指定包括第一表達(dá)式的規(guī)則并且識別應(yīng)用安全配置文件;` (b)由所述設(shè)備估計該規(guī)則; (c)由所述設(shè)備響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第一檢驗;并且 Cd)由所述設(shè)備響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第二檢驗。
160.權(quán)利要求159的方法,其中,所述設(shè)備包括VPN代理裝置。
161.權(quán)利要求159的方法,其中,步驟(a)包括通過設(shè)備識別第一策略以應(yīng)用到所接收的TCP分組流。
162.權(quán)利要求159的方法,其中,步驟(b)包括由所述設(shè)備估計規(guī)則的面向?qū)ο蟮谋磉_(dá)式。
163.權(quán)利要求159的方法,其中,步驟(c)包括估計第一檢驗的至少一個設(shè)置來確定是否應(yīng)用第一檢驗。
164.權(quán)利要求159的方法,其中,步驟(c)包括確定包含在分組流中的URL匹配第一檢驗的至少一個設(shè)置,并且響應(yīng)于該確定應(yīng)用第一檢驗。
165.權(quán)利要求159的方法,其中,步驟(c)包括確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的表達(dá)式,并且響應(yīng)于該確定應(yīng)用第一檢驗。
166.權(quán)利要求159的方法,其中,步驟(c)包括確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的面向?qū)ο蟮谋磉_(dá)式,并且響應(yīng)于該確定應(yīng)用第一檢驗。
167.權(quán)利要求159的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入檢測、無效開始URL檢測、cookie竄改檢測、表格字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、和無效URL檢測。
168.權(quán)利要求159的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、和無效URL阻斷。
169.—種設(shè)備,用于對于裝置執(zhí)行一個或者多個應(yīng)用安全配置文件,每一個應(yīng)用安全配置文件指定執(zhí)行關(guān)于應(yīng)用的安全功能的多個策略組,所述設(shè)備包括: 用于接收分組流的分組處理器;和 和分組處理器通信的策略引擎,識別第一策略以應(yīng)用到所接收的分組流;第一策略指定包括第一表達(dá)式的規(guī)則并且識別應(yīng)用安全配置文件;估計該規(guī)則;響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第一檢驗;并且響應(yīng)于規(guī)則的估計來處理由應(yīng)用安全配置文件指定的第二檢驗。
170.權(quán)利要求169的設(shè)備,其中,所述設(shè)備包括VPN代理裝置。
171.權(quán)利要求169的設(shè)備,其中,所述策略引擎識別第一策略以應(yīng)用到所接收的TCP分組流。
172.權(quán)利要求169的設(shè)備,其中,所述策略引擎估計規(guī)則的面向?qū)ο蟮谋磉_(dá)式。
173.權(quán)利要求169的設(shè)備,其中,所述策略引擎估計第一檢驗的至少一個設(shè)置來確定是否應(yīng)用第一檢驗。
174.權(quán)利要求169的設(shè)備,其中,所述策略引擎確定包含在分組流中的URL匹配第一檢驗的至少一個設(shè)置,并且響應(yīng)于該確定應(yīng)用第一檢驗。
175.權(quán)利要求169的設(shè)備,其中,所述策略引擎確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的表達(dá)式,并且`響應(yīng)于該確定應(yīng)用第一檢驗。
176.權(quán)利要求169的設(shè)備,其中,所述策略引擎確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的面向?qū)ο蟮谋磉_(dá)式,并且響應(yīng)于該確定應(yīng)用第一檢驗。
177.權(quán)利要求169的設(shè)備,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入檢測、無效開始URL檢測、cookie竄改檢測、表格字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、和無效URL檢測。
178.權(quán)利要求169的設(shè)備,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以下的其中一個:SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、和無效URL阻斷。
【文檔編號】H04L12/24GK103560905SQ201310491676
【公開日】2014年2月5日 申請日期:2008年3月12日 優(yōu)先權(quán)日:2007年3月12日
【發(fā)明者】P·凱馬尼, V·班德卡爾, V·科拉帕提, R·米拉尼, A·喬漢, N·西卡, A·雷迪 申請人:思杰系統(tǒng)有限公司