專利名稱:在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計算機(jī)網(wǎng)絡(luò)中的網(wǎng)絡(luò)元件,例如交換機(jī)和路由器。更具體而言,本發(fā)明涉及用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的方法和裝置。
背景技術(shù):
這一部分中描述的方法可以實現(xiàn),但是不一定是先前已想到或已實現(xiàn)的方法。因此,除非另外指出,否則這一部分中描述的方法不是該申請的權(quán)利要求的現(xiàn)有技術(shù),并且也不應(yīng)當(dāng)因為被包括在這一部分中而看作是現(xiàn)有技術(shù)。
在商業(yè)到商業(yè)環(huán)境中,運(yùn)行在計算機(jī)上的應(yīng)用一般會與運(yùn)行在其他計算機(jī)上的其他應(yīng)用通信。例如,運(yùn)行在計算機(jī)“X”上的應(yīng)用“A”可能向運(yùn)行在計算機(jī)“Y”上的應(yīng)用“B”發(fā)送指示訂單的實質(zhì)內(nèi)容的消息。
計算機(jī)“X”可能遠(yuǎn)離計算機(jī)“Y”。為了使計算機(jī)“X”發(fā)送消息到計算機(jī)“Y”,計算機(jī)“X”可能通過計算機(jī)網(wǎng)絡(luò)發(fā)送消息,計算機(jī)網(wǎng)絡(luò)例如是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或互聯(lián)網(wǎng),例如因特網(wǎng)。為了通過這種網(wǎng)絡(luò)發(fā)送消息,計算機(jī)“X”可能使用一套通信協(xié)議。例如,計算機(jī)“X”可能使用諸如因特網(wǎng)協(xié)議(IP)之類的網(wǎng)絡(luò)層協(xié)議以及諸如傳輸控制協(xié)議(TCP)之類的傳輸層協(xié)議來發(fā)送消息。
假定消息利用TCP發(fā)送,則消息被封裝到一個或多個數(shù)據(jù)分組中;同一消息的不同部分可以在不同分組中發(fā)送。繼續(xù)以上示例,計算機(jī)“X”通過網(wǎng)絡(luò)向計算機(jī)“Y”發(fā)送數(shù)據(jù)分組。處于計算機(jī)“X”和計算機(jī)“Y”之間的一個或多個網(wǎng)絡(luò)元件可以接收分組,確定分組的下一“跳”,并向計算機(jī)“Y”發(fā)送分組。
例如,路由器“U”可能接收來自計算機(jī)“X”的分組,并且基于分組是去往計算機(jī)“Y”的,確定分組應(yīng)當(dāng)被轉(zhuǎn)發(fā)到另一路由器“V”(路由上的下一“跳”)。路由器“V”可能從路由器“U”接收分組,并將分組發(fā)送到計算機(jī)“Y”。在計算機(jī)“Y”處,可以提取出分組的內(nèi)容并重組該內(nèi)容以形成原始消息,原始消息可以被提供給應(yīng)用“B”。應(yīng)用“A”和“B”可以不知道分組是經(jīng)過路由器“U”和“V”路由的這一事實。事實上,不同的分組可以采取經(jīng)過網(wǎng)絡(luò)的不同路由。
分組經(jīng)過網(wǎng)絡(luò)所采取的路由可能是不安全的。網(wǎng)絡(luò)中中介于應(yīng)用“A”和“B”之間的各方可能能夠截取分組并確定分組的內(nèi)容。在分組包含機(jī)密或敏感信息的情況下,這種非法截取的后果可能是致命的。
為了阻止中間各方理解截取的分組并將其內(nèi)容用于非法目的,應(yīng)用可以在經(jīng)過不可信網(wǎng)絡(luò)發(fā)送包含這些消息的分組之前對消息加密。一種普遍的加密方法是公共密鑰加密。例如,應(yīng)用“A”可能想要利用公共密鑰加密發(fā)送消息到應(yīng)用“B”。因此,應(yīng)用“A”可能利用應(yīng)用“B的”公共密鑰對消息加密。在經(jīng)加密形式中,消息是不可理解的。由于消息是利用應(yīng)用“B的”公共密鑰加密的,因此只有應(yīng)用“B的”私有密鑰可被用于對消息解密,并且只有應(yīng)用“B”擁有應(yīng)用“B的”私有密鑰。應(yīng)用“A”可能在一個或多個分組內(nèi)向應(yīng)用“B”發(fā)送經(jīng)加密消息,如上所述。在接收到經(jīng)加密消息后,應(yīng)用“B”可以使用應(yīng)用“B的”私有密鑰來對消息解密。在這樣解密后,消息與消息被加密之前是相同形式的。另一種加密方法是對稱密鑰加密,其中應(yīng)用“A”和“B”都使用相同的密鑰來對消息加密和解密,并且只有應(yīng)用“A”和“B”擁有該密鑰。
在實踐中,上述加密/解密過程可以比其最初看起來更加復(fù)雜。以公共密鑰加密作為示例,在應(yīng)用“A”可以對消息加密以發(fā)送到應(yīng)用“B”之前,應(yīng)用“A”需要獲得應(yīng)用“B”的公共密鑰。為了將應(yīng)用“B”的公共密鑰提供給應(yīng)用“A”,應(yīng)用“B”的用戶可能用電子郵件將該公共密鑰告知應(yīng)用“A”的用戶。如果該方法被廣泛使用,則應(yīng)用“B”的用戶將不僅需要用電子郵件將該公共密鑰告知應(yīng)用“A”的用戶,還需要告知發(fā)送經(jīng)加密消息到應(yīng)用“B”的每一潛在發(fā)送者。而這種發(fā)送者的數(shù)量可能極大。
私有密鑰有時會期滿或丟失這一事實使該情形更加復(fù)雜。例如,如果計算機(jī)“Y”的硬盤驅(qū)動器崩潰,并且應(yīng)用“B的”私有密鑰只存儲在硬盤驅(qū)動器上(在給定密鑰的私有本質(zhì)的情況下,這并非不合情理的場景),則應(yīng)用“B的”私有密鑰將丟失,并且應(yīng)用“B”需要生成新的私有密鑰。無論需要生成新的私有密鑰的原因是什么,應(yīng)用“B”都需要與新的私有密鑰一起生成新的相應(yīng)的公共密鑰;新的私有密鑰不能用于對已經(jīng)利用舊的公共密鑰加密的消息解密,因此應(yīng)用“B”將需要通知上述所有發(fā)送者舊的公共密鑰不再有效,相反應(yīng)當(dāng)使用新的公共密鑰。
應(yīng)用“A”的情況也是值得考慮的。應(yīng)用“A”可能將經(jīng)加密消息發(fā)送到許多不同的受者。每個受者可能具有不同的公共密鑰。對于應(yīng)用“A”的用戶來說,組織如此多的不同公共密鑰并使它們保持最新可能是很困難的。如果使用電子郵件方法來進(jìn)行密鑰分發(fā),則用戶的大多數(shù)時間可能消耗在發(fā)送和接收私有密鑰或?qū)ΨQ密鑰上面。
有可能只有某些,而不是全部應(yīng)用“A”發(fā)送的消息應(yīng)當(dāng)被加密。例如,應(yīng)用“A”可能駐留在與另一應(yīng)用“C”相同的可信網(wǎng)絡(luò)上,因此,應(yīng)用“A”不需要對要發(fā)送到應(yīng)用“C”的消息加密。又例如,應(yīng)用“A”可能向另一應(yīng)用“D”發(fā)送本質(zhì)上并不機(jī)密或敏感的消息,因此,應(yīng)用“A”不需要對要發(fā)送到應(yīng)用“D”的消息加密。
由于加密和解密有時涉及顯著的處理開銷,因此除了上述的密鑰交換外,經(jīng)常希望避免不必要的加密和解密。然而,照目前的情況,對是否對消息加密或解密的確定通常是由應(yīng)用的用戶對逐個消息進(jìn)行的,即使在用戶預(yù)先以合理的確定性知道了具有某些共同特性的所有消息需要或不需要是安全的的情況下也是如此。這些太過頻繁的確定增加了用戶的負(fù)擔(dān),并且消耗了本來可能應(yīng)用于更加有意義的工作的時間。
從而,上述的“由應(yīng)用管理的安全性”方法在應(yīng)用于其中大量應(yīng)用需要以安全方式彼此通信的系統(tǒng)時是不實際的。需要一種更加實際的用于允許大量應(yīng)用以安全方式彼此通信的技術(shù)。
本發(fā)明在附圖中以示例方式而非以限制方式示出,在附圖中相似的標(biāo)號指代類似的元件,其中圖1是圖示了系統(tǒng)的一個實施例的概況的框圖,在系統(tǒng)中,一個或多個網(wǎng)絡(luò)元件代表應(yīng)用執(zhí)行消息有效載荷處理功能;圖2A示出了圖示在網(wǎng)絡(luò)元件中對消息有效載荷(或其一部分)執(zhí)行安全性功能的方法的一個實施例的概況的流程圖;圖2B示出了圖示在網(wǎng)絡(luò)元件中執(zhí)行認(rèn)證功能的方法的一個實施例的概況的流程圖;圖3A-F示出了圖示在代表應(yīng)用或作為中介應(yīng)用的網(wǎng)絡(luò)元件處執(zhí)行安全性功能的方法的一個實施例的流程圖;圖4示出了可能與特定消息分類相關(guān)聯(lián)的樣本流;圖5是圖示了可以在其上實現(xiàn)實施例的計算機(jī)系統(tǒng)的框圖;圖6是圖示了某一路由器的一個實施例的框圖,在該路由器中,監(jiān)管器刀片(blade)引導(dǎo)某些分組流去往AONS刀片和/或其他刀片;圖7是圖示了根據(jù)一個實施例在AONS網(wǎng)絡(luò)中涉及的各種組件的圖;圖8是示出了示例性AONS節(jié)點(diǎn)內(nèi)的功能模塊的框圖;圖9是示出了可以對消息流量執(zhí)行的以便只產(chǎn)生將在AONS層被處理的一組選定流量的多層次過濾的圖;圖10是圖示了根據(jù)云視角的AONS云內(nèi)的消息路徑的圖;圖11A和圖11B是圖示了請求/響應(yīng)消息流的圖;圖12A和圖12B是圖示了替換請求/響應(yīng)消息流的圖;圖13是圖示了單向消息流的圖;圖14是圖示了替換單向消息流的圖;圖15A和圖15B是圖示了具有可靠消息傳遞的請求/響應(yīng)消息流的圖;圖16是圖示了具有可靠消息傳遞的單向消息流的圖;圖17是圖示了同步請求和響應(yīng)消息的圖;圖18是圖示了樣本單向端到端消息流的圖;圖19是圖示了AONS節(jié)點(diǎn)內(nèi)的消息處理模塊的圖;
圖20是圖示了AONS節(jié)點(diǎn)內(nèi)的消息處理的圖;圖21、圖22和圖23是圖示了AONS配置和管理框架內(nèi)的實體的圖;以及圖24是圖示了AONS監(jiān)視體系結(jié)構(gòu)的圖。
具體實施例方式
描述了一種用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的方法和裝置。在下面的描述中,出于說明目的,給出了大量特定細(xì)節(jié)以提供對本發(fā)明的完全理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,沒有這些特定細(xì)節(jié)也可以實施本發(fā)明。在其他實例中,公知的結(jié)構(gòu)和設(shè)備以框圖形式示出以避免不必要地混淆本發(fā)明。
實施例根據(jù)下面的大綱進(jìn)行描述1.0總論2.0結(jié)構(gòu)和功能概述3.0實現(xiàn)示例3.1多刀片體系結(jié)構(gòu)3.2在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能3.3動作流3.4AONS示例3.4.1AONS總論3.4.2AONS術(shù)語3.4.3AONS功能概述3.4.4AONS系統(tǒng)概述3.4.5AONS系統(tǒng)元件3.4.6AONS示例性特征3.4.7AONS功能模塊3.4.8AONS工作模式3.4.9AONS消息路由3.4.10流、BladeletsTM和ScriptletsTM
3.4.11AONS服務(wù)3.4.12AONS配置和管理3.4.13AONS監(jiān)視3.4.14AONS工具4.0實現(xiàn)機(jī)制-硬件概述5.0擴(kuò)展和替換1.0總論在本發(fā)明中實現(xiàn)了在前述背景技術(shù)中給出的需要以及將從下面的描述中變清楚的其他需要和目的,本發(fā)明在一個方面中包括一種用于在網(wǎng)絡(luò)元件中代表應(yīng)用對消息有效載荷執(zhí)行安全性功能的方法。根據(jù)一個實施例,在網(wǎng)絡(luò)元件(例如路由器、交換機(jī)、網(wǎng)絡(luò)用具或附接或連接到交換機(jī)或路由器并執(zhí)行OSI第2層和更高層的處理的其他設(shè)備)處接收一個或多個數(shù)據(jù)分組。在網(wǎng)絡(luò)元件處,對包含在一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行加密功能或解密功能。根據(jù)一個實施例,網(wǎng)絡(luò)元件代表應(yīng)用執(zhí)行認(rèn)證功能。從而,網(wǎng)絡(luò)元件可以通過對消息執(zhí)行與安全性相關(guān)的功能來處理應(yīng)用層消息。
由于諸如路由器或交換機(jī)之類的網(wǎng)絡(luò)元件可以對消息執(zhí)行加密和解密功能,因此發(fā)送和接收應(yīng)用減輕了執(zhí)行這些功能的負(fù)擔(dān)。網(wǎng)絡(luò)元件可以訪問公共、私有和/或?qū)ΨQ密鑰,以使得網(wǎng)絡(luò)元件可以使用這些密鑰來對滿足指定標(biāo)準(zhǔn)的消息執(zhí)行指定的密碼操作。結(jié)果,這些密鑰不需要在受密碼保護(hù)的通信中涉及的應(yīng)用之間分發(fā)和再分發(fā)。當(dāng)特定密鑰需要被更新時,密鑰可以在中介于應(yīng)用的相關(guān)網(wǎng)絡(luò)元件處更新。應(yīng)用甚至不需要“知道”應(yīng)用發(fā)送和接收的消息是受密碼保護(hù)的這一事實。
根據(jù)一個實施例,處理應(yīng)用層消息包括在概念上將應(yīng)用層消息的內(nèi)容與一個或多個數(shù)據(jù)分組的其余部分分離,并以基于與內(nèi)容相關(guān)聯(lián)的語義的方式檢查并解釋內(nèi)容。這類比分組級別檢查粒度更細(xì)的檢查可以被稱為“深度內(nèi)容檢查”。例如,多部分(MIME)消息的每個部分可以基于與該部分相關(guān)聯(lián)的語義被獨(dú)立解釋、檢查和處理。例如,如果多部分消息的一部分是JPEG圖像,則該部分被基于JPEG語義檢查;如果多部分消息的一部分是XML文檔,則該部分被基于XML語義檢查;其他部分可以基于不同語義檢查。消息的不同組分被與該消息相關(guān)聯(lián)的語義所理解。消息的每個不同組分可以基于該組分的類型按不同方式處理。例如,JPEG圖像部分可能利用一種密鑰進(jìn)行加密并被簽名,而XML文檔部分可能利用不同密鑰進(jìn)行加密并保持不被簽名。
在其他方面中,本發(fā)明包括被配置為執(zhí)行前述步驟的計算機(jī)裝置和計算機(jī)可讀介質(zhì)。
2.0結(jié)構(gòu)和功能概述圖1是圖示系統(tǒng)100的一個實施例的概況的框圖,在系統(tǒng)100中,網(wǎng)絡(luò)元件102、104、106和108中的一個或多個對消息有效載荷執(zhí)行安全性功能。網(wǎng)絡(luò)元件102、106和108可以例如是代理設(shè)備。網(wǎng)絡(luò)元件104可以例如是網(wǎng)絡(luò)路由器或交換機(jī),例如在下面的圖6所示的路由器600。
客戶端應(yīng)用110可通信地與網(wǎng)絡(luò)元件102耦合。服務(wù)器應(yīng)用112可通信地耦合到網(wǎng)絡(luò)元件106。服務(wù)器應(yīng)用114可通信地耦合到網(wǎng)絡(luò)元件108。客戶端應(yīng)用110以及服務(wù)器應(yīng)用112和114中的每一個可以是獨(dú)立計算機(jī)?;蛘?,客戶端應(yīng)用110以及服務(wù)器應(yīng)用112和114中的每一個可以是可以是運(yùn)行在獨(dú)立計算機(jī)上的獨(dú)立進(jìn)程。
網(wǎng)絡(luò)元件102和104可通信地與網(wǎng)絡(luò)116耦合。網(wǎng)絡(luò)元件104和106可通信地與網(wǎng)絡(luò)118耦合。網(wǎng)絡(luò)元件104和108可通信地與網(wǎng)絡(luò)120耦合。網(wǎng)絡(luò)116、118和120中的每一個是計算機(jī)網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或諸如因特網(wǎng)之類的互聯(lián)網(wǎng)。網(wǎng)絡(luò)116、118和120可以包含額外的網(wǎng)絡(luò)元件,例如路由器。
在一個實施例中,客戶端應(yīng)用110將消息發(fā)往服務(wù)器應(yīng)用112和114,并且網(wǎng)絡(luò)元件102、104、106和108截取包含消息的數(shù)據(jù)分組。在替換實施例中,客戶端應(yīng)用110顯式地將消息發(fā)往網(wǎng)絡(luò)元件102。網(wǎng)絡(luò)元件102、104、106和108組裝一個或多個數(shù)據(jù)分組以確定包含在其中的消息的至少一部分。網(wǎng)絡(luò)元件102、104、106和108對消息執(zhí)行安全性功能,例如加密和解密。
管理控制臺122可通信地耦合到網(wǎng)絡(luò)116、118和120中的一個或多個。通過管理控制臺122,配置信息可以通過網(wǎng)絡(luò)116、118和120被輸入和分發(fā)到網(wǎng)絡(luò)元件102、104、106和108。這種配置信息可以包括可用于加密和解密信息的密碼密鑰。消息分類可以指示分組和/或消息為了屬于這些消息分類需要滿足的標(biāo)準(zhǔn)。安全性功能可以指定被用于執(zhí)行密碼操作的密鑰。
例如,利用管理控制臺122,可以建立第一消息分類和第一加密功能之間的第一映射。與第一消息分類相關(guān)聯(lián)的標(biāo)準(zhǔn)可以例如指示只有包含在發(fā)源于客戶端應(yīng)用110并且去往服務(wù)器應(yīng)用112的數(shù)據(jù)分組中的消息才屬于第一消息分類。第一加密功能可以例如指定要利用第一公共密鑰對消息加密。第一公共密鑰可以例如被提供給管理控制臺122。
在管理控制臺122處建立了第一映射的情況下,第一映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第一映射傳播到網(wǎng)絡(luò)元件102。網(wǎng)絡(luò)元件102可以將第一映射存儲在映射結(jié)構(gòu)中。
另外,利用管理控制臺122,可以建立第一消息分類和第一解密功能之間的第二映射。第一解密功能可以例如指定要利用與第一公共密鑰相對應(yīng)的第一私有密鑰對消息解密。第一私有密鑰可以例如被提供給管理控制臺122。
在管理控制臺122處建立了第二映射的情況下,第二映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第二映射傳播到網(wǎng)絡(luò)元件106。網(wǎng)絡(luò)元件106可以將第二映射存儲在映射結(jié)構(gòu)中。
假定以上場景,當(dāng)網(wǎng)絡(luò)元件102接收到總地包含發(fā)源于客戶端應(yīng)用110并且去往服務(wù)器應(yīng)用112的消息的一個或多個數(shù)據(jù)分組時,網(wǎng)絡(luò)元件102確定該消息屬于第一消息分類。網(wǎng)絡(luò)元件102從第一映射中確定第一消息分類被映射到第一加密功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件102利用在第一加密功能中指定的第一公共密鑰對消息加密,并在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送經(jīng)加密的消息。
包含經(jīng)加密消息的數(shù)據(jù)分組最終由網(wǎng)絡(luò)元件106接收。當(dāng)網(wǎng)絡(luò)元件106接收到數(shù)據(jù)分組時,網(wǎng)絡(luò)元件106確定該消息屬于第一消息分類。網(wǎng)絡(luò)元件106從第二映射中確定第一消息分類被映射到第一解密功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件106利用在第一解密功能中指定的第一私有密鑰對消息解密,并在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送經(jīng)解密的消息。
服務(wù)器應(yīng)用112接收包含經(jīng)解密消息的數(shù)據(jù)分組。不為客戶端應(yīng)用110和服務(wù)器應(yīng)用112所知的是,消息在行進(jìn)經(jīng)過網(wǎng)絡(luò)116和118期間被密碼保護(hù)。
擴(kuò)展以上示例,利用管理控制臺122,可以建立第二消息分類和第二加密功能之間的第三映射。與第二消息分類相關(guān)聯(lián)的標(biāo)準(zhǔn)可以例如指示只有包含在發(fā)源于客戶端應(yīng)用110并且去往服務(wù)器應(yīng)用114的數(shù)據(jù)分組中的消息才屬于第二消息分類。第二加密功能可以例如指定要利用不同于第一公共密鑰的第二公共密鑰對消息加密。第二公共密鑰可以例如被提供給管理控制臺122。
在管理控制臺122處建立了第三映射的情況下,第三映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第三映射傳播到網(wǎng)絡(luò)元件102。網(wǎng)絡(luò)元件102可以將第三映射存儲在映射結(jié)構(gòu)中。
另外,利用管理控制臺122,可以建立第二消息分類和第二解密功能之間的第四映射。第二解密功能可以例如指定要利用與第二公共密鑰相對應(yīng)的第二私有密鑰對消息解密。第二私有密鑰可以例如被提供給管理控制臺122。
在管理控制臺122處建立了第四映射的情況下,第四映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第四映射傳播到網(wǎng)絡(luò)元件108。網(wǎng)絡(luò)元件108可以將第四映射存儲在映射結(jié)構(gòu)中。
假定以上場景,當(dāng)網(wǎng)絡(luò)元件102接收到總地包含發(fā)源于客戶端應(yīng)用110并且去往服務(wù)器應(yīng)用114的消息的一個或多個數(shù)據(jù)分組時,網(wǎng)絡(luò)元件102確定該消息屬于第二消息分類。網(wǎng)絡(luò)元件102從第三映射中確定第二消息分類被映射到第二加密功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件102利用在第二加密功能中指定的第二公共密鑰對消息加密,并在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送經(jīng)加密的消息。
包含經(jīng)加密消息的數(shù)據(jù)分組最終由網(wǎng)絡(luò)元件108接收。當(dāng)網(wǎng)絡(luò)元件108接收到數(shù)據(jù)分組時,網(wǎng)絡(luò)元件108確定該消息屬于第二消息分類。網(wǎng)絡(luò)元件108從第四映射中確定第二消息分類被映射到第二解密功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件108利用在第二解密功能中指定的第二私有密鑰對消息解密,并在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送經(jīng)解密的消息。
服務(wù)器應(yīng)用114接收包含經(jīng)解密消息的數(shù)據(jù)分組。不為客戶端應(yīng)用110和服務(wù)器應(yīng)用114所知的是,消息在行進(jìn)經(jīng)過網(wǎng)絡(luò)116和120期間被密碼保護(hù)。
加密和解密不是網(wǎng)絡(luò)元件102、104、106和108可以對在應(yīng)用110、112和114之間行進(jìn)的消息執(zhí)行的唯一安全性功能。網(wǎng)絡(luò)元件102、104、106和108還可以對在應(yīng)用110、112和114之間行進(jìn)的消息執(zhí)行簽名和驗證功能。
例如,利用管理控制臺122,可以建立第一消息分類和第一簽名功能之間的第五映射。第一簽名功能可以例如指定要利用第一散列功能來創(chuàng)建消息的摘要,并且要利用第一公共密鑰對該摘要加密,從而創(chuàng)建簽名。
在管理控制臺122處建立了第五映射的情況下,第五映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第五映射傳播到網(wǎng)絡(luò)元件102。網(wǎng)絡(luò)元件102可以將第五映射存儲在映射結(jié)構(gòu)中。
另外,利用管理控制臺122,可以建立第一消息分類和第一驗證功能之間的第六映射。第一驗證功能可以例如指定要利用第一散列功能來創(chuàng)建消息的摘要,并且要利用與第一公共密鑰相對應(yīng)的第一私有密鑰對經(jīng)加密摘要(即,簽名)解密。
在管理控制臺122處建立了第六映射的情況下,第六映射可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的指定元件。例如,管理控制臺122可以將第六映射傳播到網(wǎng)絡(luò)元件106。網(wǎng)絡(luò)元件106可以將第六映射存儲在映射結(jié)構(gòu)中。
假定以上場景,當(dāng)網(wǎng)絡(luò)元件102接收到總地包含發(fā)源于客戶端應(yīng)用110并且去往服務(wù)器應(yīng)用112的消息的一個或多個數(shù)據(jù)分組時,網(wǎng)絡(luò)元件102確定該消息屬于第一消息分類。網(wǎng)絡(luò)元件102從第五映射中確定第一消息分類被映射到第一簽名功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件102通過將消息輸入到第一散列功能中來生成摘要。網(wǎng)絡(luò)元件102還利用在第一簽名功能中指定的第一公共密鑰對摘要加密,并在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送經(jīng)加密的摘要(即,簽名)。
包含消息和經(jīng)加密摘要的數(shù)據(jù)分組最終被網(wǎng)絡(luò)元件106接收。當(dāng)網(wǎng)絡(luò)元件106接收到數(shù)據(jù)分組時,網(wǎng)絡(luò)元件106確定該消息屬于第一消息分類。網(wǎng)絡(luò)元件106從第六映射中確定第一消息分類被映射到第一驗證功能。響應(yīng)于該確定,網(wǎng)絡(luò)元件106通過將消息輸入到在第一驗證功能中指定的第一散列功能中來生成摘要。網(wǎng)絡(luò)元件106還利用在第一驗證功能中指定的第一私有密鑰對經(jīng)加密摘要解密。
網(wǎng)絡(luò)元件106將經(jīng)解密摘要與通過將消息輸入到第一散列功能中得到的摘要相比較。如果這兩個摘要相同,則網(wǎng)絡(luò)元件106認(rèn)為簽名通過驗證。如果這兩個摘要不相同,則網(wǎng)絡(luò)元件106認(rèn)為簽名未通過驗證。網(wǎng)絡(luò)元件106可以基于簽名是否通過驗證來執(zhí)行一個或多個指定動作。例如,如果簽名通過驗證,則網(wǎng)絡(luò)元件106可以在一個或多個數(shù)據(jù)分組中向消息的目的地發(fā)送消息。或者,如果簽名未通過驗證,則網(wǎng)絡(luò)元件106可以阻止消息被發(fā)送到消息的目的地。
如果網(wǎng)絡(luò)元件106將消息發(fā)送到消息的目的地,則服務(wù)器應(yīng)用112接收到包含消息的數(shù)據(jù)分組。不為客戶端應(yīng)用110和服務(wù)器應(yīng)用112所知的是,消息在離開客戶端應(yīng)用112之后被簽名并且在到達(dá)服務(wù)器應(yīng)用112之前被驗證。
除了上述加密、解密、簽名和驗證功能之外,網(wǎng)絡(luò)元件102、104、106和108還可以代表應(yīng)用110、112和114執(zhí)行認(rèn)證和授權(quán)功能。
例如,網(wǎng)絡(luò)元件106可被配置為截取去往服務(wù)器應(yīng)用112的請求。網(wǎng)絡(luò)元件106可被配置為利用對認(rèn)證信息的請求對該請求作出響應(yīng)。例如,網(wǎng)絡(luò)元件106可被配置為利用對用戶名和口令的請求來對來自客戶端應(yīng)用110的請求作出響應(yīng)。
假定客戶端應(yīng)用110接收到對認(rèn)證信息的請求并利用用戶名和口令作出響應(yīng),則網(wǎng)絡(luò)元件106可被配置為在指定的數(shù)據(jù)存儲裝置或身份存儲裝置(其可以在網(wǎng)絡(luò)元件106外部)中查找用戶名以及相應(yīng)的口令(或口令派生物,例如口令的單向摘要散列)。網(wǎng)絡(luò)元件106可被配置為將從客戶端應(yīng)用110接收的口令與與數(shù)據(jù)存儲裝置或身份存儲裝置中的用戶名相關(guān)聯(lián)的口令(或口令派生物)相比較?;蛘撸W(wǎng)絡(luò)元件106可被配置為向包含用戶名和口令(或口令派生物)的數(shù)據(jù)存儲裝置或身份存儲裝置請求指示用戶名是否與口令匹配的結(jié)果;從而,出于安全性目的,實際口令可能不被提供給網(wǎng)絡(luò)元件106。在任何情況下,如果口令匹配,則網(wǎng)絡(luò)元件106確定客戶端應(yīng)用110是可信的。如果口令不匹配,則網(wǎng)絡(luò)元件106確定客戶端應(yīng)用110是不可信的。網(wǎng)絡(luò)元件106可以基于應(yīng)用是否是可信的來執(zhí)行一個或多個指定動作。例如,如果客戶端應(yīng)用110是可信的,則網(wǎng)絡(luò)元件106可以向服務(wù)器應(yīng)用112發(fā)送接收自客戶端應(yīng)用110的原始請求?;蛘撸绻蛻舳藨?yīng)用110是不可信的,則網(wǎng)絡(luò)元件106可以阻止原始請求被發(fā)送到服務(wù)器應(yīng)用112。
數(shù)據(jù)存儲裝置或身份存儲裝置中的用戶名和口令可以與也在數(shù)據(jù)存儲裝置或身份存儲裝置中指示的許可集相關(guān)聯(lián)。網(wǎng)絡(luò)元件106可以對包含在發(fā)源于客戶端應(yīng)用110的數(shù)據(jù)分組的有效載荷中的應(yīng)用層消息分類。網(wǎng)絡(luò)元件106可以基于與從客戶端應(yīng)用110接收的用戶名相關(guān)聯(lián)的許可集確定是否允許來自客戶端應(yīng)用110的特定消息分類的消息。
基于是否允許特定消息,網(wǎng)絡(luò)元件106可以執(zhí)行一個或多個指定動作。如果特定消息屬于不被許可集允許的消息分類,則網(wǎng)絡(luò)元件106可以例如阻止消息被發(fā)送到服務(wù)器應(yīng)用112?;蛘撸绻囟ㄏ儆诒辉S可集允許的消息分類,則網(wǎng)絡(luò)元件106可以例如將消息發(fā)送到服務(wù)器應(yīng)用112。
以這種方式可以配置多個網(wǎng)絡(luò)元件。從而,網(wǎng)絡(luò)元件102、104、106和108都可被配置為對從客戶端應(yīng)用110接收的消息執(zhí)行認(rèn)證功能和授權(quán)功能。通過管理控制臺122,共同的認(rèn)證配置可以被傳播到網(wǎng)絡(luò)元件102、104、106和108中的每一個。從而,網(wǎng)絡(luò)元件102、104、106和108中的每一個可被配置為利用存儲在相同的中央數(shù)據(jù)存儲裝置或身份存儲裝置中的認(rèn)證信息執(zhí)行認(rèn)證功能。
因此,避免了最新的認(rèn)證信息可能不可用于服務(wù)器應(yīng)用的所有實例的風(fēng)險。例如,假定服務(wù)器應(yīng)用112和服務(wù)器應(yīng)用114是同一應(yīng)用的獨(dú)立實例,則來自客戶端應(yīng)用110的請求是發(fā)往服務(wù)器應(yīng)用112還是發(fā)往服務(wù)器應(yīng)用114沒有區(qū)別,因為網(wǎng)絡(luò)元件106和網(wǎng)絡(luò)元件108都可以基于最新的認(rèn)證信息認(rèn)證客戶端應(yīng)用110。不存在可用于網(wǎng)絡(luò)元件106的認(rèn)證信息與可用于網(wǎng)絡(luò)元件108的認(rèn)證信息不同的風(fēng)險。
圖2A示出了流程圖200A,流程圖200A圖示了在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的方法的一個實施例的概況。該方法可以例如由網(wǎng)絡(luò)元件102、104、106和108中的任何一個執(zhí)行。
在框202中,網(wǎng)絡(luò)元件接收一個或多個數(shù)據(jù)分組。數(shù)據(jù)分組的有效載荷部分總地包含應(yīng)用層消息的至少一部分。例如,網(wǎng)絡(luò)元件102可以從客戶端應(yīng)用110接收兩個TCP數(shù)據(jù)分組,這兩個TCP數(shù)據(jù)分組合起來在其有效載荷部分中包含諸如簡單郵件傳送協(xié)議(SMTP)格式消息之類的應(yīng)用層消息。又例如,網(wǎng)絡(luò)元件106可以從網(wǎng)絡(luò)118接收兩個TCP數(shù)據(jù)分組,這兩個TCP數(shù)據(jù)分組合起來在其有效載荷部分中包含網(wǎng)絡(luò)元件102利用特定公共密鑰加密的經(jīng)加密應(yīng)用層消息。網(wǎng)絡(luò)元件102能夠確定應(yīng)用層消息邊界,因此在一個實施例中,網(wǎng)絡(luò)元件102可以對包含在流或其一部分中的應(yīng)用層消息執(zhí)行操作(如下所述),即使網(wǎng)絡(luò)元件102還未接收到包含應(yīng)用層消息的所有部分的所有數(shù)據(jù)分組時也是如此。
在框204中,網(wǎng)絡(luò)元件對應(yīng)用層消息的至少一部分執(zhí)行加密功能或解密功能。例如,網(wǎng)絡(luò)元件102可以利用與客戶端應(yīng)用110相對應(yīng)的特定公共密鑰對包含在TCP數(shù)據(jù)分組中的應(yīng)用層消息加密。又例如,網(wǎng)絡(luò)元件106可以利用與特定公共密鑰相對應(yīng)的特定私有密鑰對包含在TCP數(shù)據(jù)分組中的經(jīng)加密應(yīng)用層消息解密。一旦網(wǎng)絡(luò)元件已對消息進(jìn)行了加密或解密,網(wǎng)絡(luò)元件就可以在一個或多個數(shù)據(jù)分組內(nèi)向消息的目的地發(fā)送經(jīng)加密或解密的消息。從而,中間網(wǎng)絡(luò)元件可以代表應(yīng)用執(zhí)行安全性功能,從而節(jié)省了應(yīng)用自身執(zhí)行安全性功能的負(fù)擔(dān)。
圖2B示出了流程圖200B,流程圖200B圖示了在網(wǎng)絡(luò)元件中執(zhí)行認(rèn)證功能的方法的一個實施例的概況。該方法可以例如由網(wǎng)絡(luò)元件102、104、106和108中的任何一個執(zhí)行。
在框206中,網(wǎng)絡(luò)元件接收去往容宿在除了網(wǎng)絡(luò)元件之外的某一設(shè)備上的第一應(yīng)用的第一請求。例如,網(wǎng)絡(luò)元件106可以截取客戶端應(yīng)用110向服務(wù)器應(yīng)用112發(fā)送的諸如超文本傳送協(xié)議(HTTP)請求之類的請求。該請求可以例如總地包含在一個或多個TCP分組的有效載荷部分中。
在框208中,響應(yīng)于接收到第一請求,網(wǎng)絡(luò)元件將對認(rèn)證信息的請求發(fā)送到發(fā)送第一請求的第二應(yīng)用。繼續(xù)該示例,網(wǎng)絡(luò)元件106可以將對用戶名和口令的請求發(fā)送到客戶端應(yīng)用110。網(wǎng)絡(luò)元件106可以格式化消息從而使消息看起來來自于服務(wù)器應(yīng)用112而非網(wǎng)絡(luò)元件106;這可以誘使客戶端應(yīng)用110向服務(wù)器應(yīng)用112發(fā)送用戶名和口令。
在框210中,網(wǎng)絡(luò)元件接收認(rèn)證信息。繼續(xù)該示例,網(wǎng)絡(luò)元件106可以截取客戶端應(yīng)用110向服務(wù)器應(yīng)用112發(fā)送的用戶名和口令?;蛘?,認(rèn)證信息可以包含在第一請求中,在這種情況下框208的操作不需要執(zhí)行。
在框212中,網(wǎng)絡(luò)元件確定認(rèn)證信息是否有效。例如,網(wǎng)絡(luò)元件106可以將客戶端應(yīng)用110發(fā)送的口令與在網(wǎng)絡(luò)元件106外部的數(shù)據(jù)存儲裝置或身份存儲裝置中與客戶端應(yīng)用110發(fā)送的用戶名相關(guān)聯(lián)的口令相比較。如果口令匹配,則網(wǎng)絡(luò)元件106可以確定認(rèn)證信息是有效的。如果口令不匹配,則網(wǎng)絡(luò)元件106可以確定認(rèn)證信息是無效的。如果認(rèn)證信息是有效的,則控制傳遞到框214。如果認(rèn)證信息是無效的,則控制傳遞到框216。
在框214中,網(wǎng)絡(luò)元件將第一請求發(fā)送到第一應(yīng)用。繼續(xù)該示例,網(wǎng)絡(luò)元件106可以將客戶端應(yīng)用110向服務(wù)器應(yīng)用112發(fā)送的請求發(fā)送到服務(wù)器應(yīng)用112。
或者,在框216中,網(wǎng)絡(luò)元件阻止第一請求被發(fā)送到第一應(yīng)用。繼續(xù)該示例,網(wǎng)絡(luò)元件106可以阻止客戶端應(yīng)用110向服務(wù)器應(yīng)用112發(fā)送的請求被發(fā)送到服務(wù)器應(yīng)用112。網(wǎng)絡(luò)元件106可以例如通過丟棄包含請求的TCP分組來實現(xiàn)這一目的。從而,中間網(wǎng)絡(luò)元件可以代表應(yīng)用執(zhí)行認(rèn)證功能,從而節(jié)省了應(yīng)用自身執(zhí)行認(rèn)證功能的負(fù)擔(dān)。
3.0實現(xiàn)方式示例3.1多刀片體系結(jié)構(gòu)根據(jù)一個實施例,路由器或交換機(jī)中的面向應(yīng)用的網(wǎng)絡(luò)服務(wù)(AONS)刀片執(zhí)行上述動作。圖6是圖示路由器600的一個實施例的框圖,在路由器600中,監(jiān)管器刀片602將分組流610A-B中的某一些引導(dǎo)到AONS刀片和/或其他刀片606N。路由器600包括監(jiān)管器刀片602、AONS刀片604和其他刀片606A-N。刀片602、604和606A-N中的每一個都是具有諸如處理器、存儲器和網(wǎng)絡(luò)連接之類的組件的單個電路板,這些組件通常在多個板上找到。刀片602、604和606A-N被設(shè)計為可以向路由器600添加和從路由器600中移除。路由器600的功能由其中的刀片的功能確定。向路由器600添加刀片可以增加路由器600的功能,但是如果希望成本更低的話,則路由器600可以利用較少的刀片提供較少的功能。一個或多個刀片可以是可選的。
路由器600接收分組流,例如分組流610A-B。更具體而言,由路由器600接收的分組流610A-B是由監(jiān)管器刀片602接收到的。監(jiān)管器刀片602可以包括轉(zhuǎn)發(fā)引擎和/或路由處理器,例如可以從Cisco Systems Inc.購得的轉(zhuǎn)發(fā)引擎和/或路由處理器。
在一個實施例中,監(jiān)管器刀片602基于包含在分組流610A-B的分組頭部中的一個或多個參數(shù)給分組流610A-B分類。如果包含在特定分組的分組頭部中的參數(shù)與指定參數(shù)匹配,則監(jiān)管器刀片602將分組發(fā)送到AONS刀片604和/或其他刀片606A-N中的指定一個?;蛘?,如果包含在分組頭部中的參數(shù)不與任何指定參數(shù)匹配,則監(jiān)管器刀片602對于特定分組執(zhí)行路由功能,并將該特定分組向特定分組的目的地轉(zhuǎn)發(fā)。
例如,監(jiān)管器刀片602可以確定分組流610B中的分組頭部與指定參數(shù)匹配。因此,監(jiān)管器刀片602可以將分組流610B中的分組發(fā)送到AONS刀片604。監(jiān)管器刀片602可以接收從AONS刀片604和/或其他刀片606A-N返回的分組,并將分組發(fā)送到去往這些分組的目的地的網(wǎng)絡(luò)路徑中的下一跳。又例如,監(jiān)管器刀片602可以確定分組流610A中的分組頭部不與任何指定參數(shù)匹配。因此,監(jiān)管器刀片602并不將分組流610A中的任何分組發(fā)送到AONS刀片604或其他刀片606A-N,而是可以將分組流610A中的分組發(fā)送到去往這些分組的目的地的網(wǎng)絡(luò)路徑中的下一跳。
AONS刀片604和其他刀片606A-N接收來自監(jiān)管器刀片602的分組,對分組執(zhí)行操作,并將分組返回到監(jiān)管器刀片602。監(jiān)管器刀片602可以在將分組發(fā)出路由器600之前,將分組發(fā)送到多個刀片以及從多個刀片接收分組。例如,監(jiān)管器刀片602可以將特定的一組分組發(fā)送到其他刀片606A。其他刀片606A可以對分組執(zhí)行防火墻功能,并將分組發(fā)回到監(jiān)管器刀片602。監(jiān)管器刀片602可以接收來自其他刀片606A的分組,并將分組發(fā)送到AONS刀片604。AONS刀片604可以對分組執(zhí)行一種或多種基于消息有效載荷的操作,并將分組發(fā)回到監(jiān)管器刀片602。
根據(jù)一個實施例,在AONS路由器(例如路由器600)處發(fā)生下面的事件。首先,接收包含從客戶端到服務(wù)器的消息的分組。接著,對分組執(zhí)行基于訪問控制列表的過濾,并且將某些分組發(fā)送到AONS刀片或模塊。接著,對分組執(zhí)行TCP終止。接著,如果必要的話,對分組執(zhí)行安全套接字層(SSL)終止。接著,對分組執(zhí)行基于通用資源定位符(URL)的過濾。接著,對分組執(zhí)行基于消息頭部和消息內(nèi)容的過濾。接著,將分組中包含的消息分類到AONS消息類型中。接著,選擇對應(yīng)于AONS消息類型的策略流。接著,執(zhí)行所選的策略流。然后,分組被按照所選策略流指定的那樣轉(zhuǎn)發(fā)、重定向、丟棄、拷貝、修改或扇出(fan out)。
3.2在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能圖3A-F示出了流程圖300,流程圖300圖示了在網(wǎng)絡(luò)元件處代表應(yīng)用執(zhí)行消息有效載荷處理功能的方法的一個實施例。例如,網(wǎng)絡(luò)元件102、104、106和108中的一個或多個可以執(zhí)行這種方法。更具體而言,AONS刀片604可以執(zhí)行該方法的一個或多個步驟。其他實施例可以省略在流程圖300中示出的一個或多個操作。其他實施例可以包含除流程圖300中所示的操作之外的操作。其他實施例可以按不同于流程圖300中所示的順序執(zhí)行流程圖300中所示的操作。
首先參考圖3A,在框302中,在網(wǎng)絡(luò)元件處接收用戶指定輸入。用戶指定輸入指示以下內(nèi)容要與特定消息分類相關(guān)聯(lián)的一個或多個標(biāo)準(zhǔn),以及要與特定消息分類相關(guān)聯(lián)的一個或多個動作。用戶指定輸入可以指示執(zhí)行這一個或多個動作的順序。用戶指定輸入可以指示動作的輸出要被提供給其他動作作為輸入。例如,網(wǎng)絡(luò)元件104(更具體而言是AONS刀片604)可以接收這種來自網(wǎng)絡(luò)管理員的用戶指定輸入。
用戶指定輸入可以指示要分別與多個獨(dú)立消息分類相關(guān)聯(lián)的多組標(biāo)準(zhǔn),以及要與這多個消息分類相關(guān)聯(lián)的多組動作。例如,用戶指定輸入可以指示要與第一消息分類相關(guān)聯(lián)的第一組標(biāo)準(zhǔn)、要與第二消息分類相關(guān)聯(lián)的第二組標(biāo)準(zhǔn)、要與第一消息分類相關(guān)聯(lián)的第一組動作以及要與第二消息分類相關(guān)聯(lián)的第二組動作。
在框304中,在網(wǎng)絡(luò)元件處建立特定消息分類和一個或多個標(biāo)準(zhǔn)之間的關(guān)聯(lián)。例如,AONS刀片604可以建立特定消息分類和一個或多個標(biāo)準(zhǔn)之間的關(guān)聯(lián)。例如,該標(biāo)準(zhǔn)可以指示消息需要包含的特定文本串,以使得該消息屬于相關(guān)聯(lián)的消息分類。又例如,該標(biāo)準(zhǔn)可以指示需要存在于XML格式的消息的分級結(jié)構(gòu)中的特定路徑,以使得該消息屬于相關(guān)聯(lián)的消息分類。又例如,該標(biāo)準(zhǔn)可以指示消息需要來自或去往的一個或多個源IP地址和/或目的地IP地址,以使得該消息屬于相關(guān)聯(lián)的消息分類。
在獨(dú)立的多組標(biāo)準(zhǔn)和獨(dú)立消息分類之間可以建立多個關(guān)聯(lián)。例如,AONS刀片604可以建立第一組標(biāo)準(zhǔn)和第一消息分類之間的第一關(guān)聯(lián),以及第二組標(biāo)準(zhǔn)和第二消息分類之間的第二關(guān)聯(lián)。
在框306中,在網(wǎng)絡(luò)元件處建立特定消息分類和一個或多個動作之間的關(guān)聯(lián)。與特定消息分類相關(guān)聯(lián)的一個或多個動作包括與該特定消息分類相關(guān)聯(lián)的“策略”。策略可以包括根據(jù)在用戶指定輸入中指定的特定順序排序的一個或多個動作的“流”和/或無序的一個或多個其他動作。例如,AONS刀片604可以建立特定消息分類和一個或多個動作之間的關(guān)聯(lián)??偟膩碚f,框302-306的操作可以包括“供給”網(wǎng)絡(luò)元件。
在獨(dú)立的多組動作和獨(dú)立消息分類之間可以建立多個關(guān)聯(lián)。例如,AONS刀片604可以建立第一組動作和第一消息分類之間的第一關(guān)聯(lián),以及第二組動作和第二消息分類之間的第二關(guān)聯(lián)。例如,一組動作可以包括“加密”動作、“解密”動作、“簽名”動作、“驗證”動作和/或“認(rèn)證”動作。
每個動作可以指示一個或多個參數(shù)。例如,“加密”動作可以指示要用于對消息加密的公共密鑰。又例如,“解密”動作可以指示要用于對消息解密的私有密鑰。又例如,“簽名”動作和“驗證”動作各自可以指示要用于從消息中生成摘要的散列功能。又例如,“認(rèn)證”動作可以指示要發(fā)送到應(yīng)用的認(rèn)證信息請求,以及包含可用于驗證從應(yīng)用接收的憑證的認(rèn)證信息的數(shù)據(jù)存儲裝置或身份存儲裝置。
動作可以標(biāo)識要對其執(zhí)行動作的消息的特定一部分作為動作的參數(shù)。該部分可以利用多種機(jī)制中的任何一種標(biāo)識。例如,用戶指定的開始位置和結(jié)束位置可以標(biāo)識該部分。又例如,用戶指定的XPath路徑可以標(biāo)識XML格式的消息的一部分。又例如,用戶指定的常規(guī)表達(dá)可以標(biāo)識該部分。從而,可以對消息的指定部分執(zhí)行動作,同時保持消息的余下部分不變。例如,可以對消息的一部分加密,同時對消息的其余部分解密。事實上,通過例如將不同的加密動作與相同的消息分類相關(guān)聯(lián),可以基于不同密鑰對同一消息的不同部分進(jìn)行加密。
在框308中,網(wǎng)絡(luò)元件接收去往除了網(wǎng)絡(luò)元件之外的某一設(shè)備的一個或多個數(shù)據(jù)分組。該數(shù)據(jù)分組可以例如是包含IP和TCP頭部的數(shù)據(jù)分組。在數(shù)據(jù)分組的IP頭部中指示的IP地址可以不同于網(wǎng)絡(luò)元件的IP地址;從而,數(shù)據(jù)分組可以是去往除了網(wǎng)絡(luò)元件之外的某一設(shè)備的。例如,網(wǎng)絡(luò)元件104(更具體而言是監(jiān)管器刀片602)可以截取客戶端應(yīng)用110最初發(fā)送的數(shù)據(jù)分組。例如,數(shù)據(jù)分組可以去往服務(wù)器應(yīng)用112。
在框310中,基于在數(shù)據(jù)分組的頭部中指示的一個或多個信息項,確定被用于發(fā)送包含在數(shù)據(jù)分組的有效載荷部分中的消息(下文中稱為“該消息”)的應(yīng)用層協(xié)議。信息項可以包括例如IP頭部中的源IP地址、IP頭部中的目的地IP地址、TCP頭部中的TCP源端口和TCP頭部中的TCP目的地端口。例如,網(wǎng)絡(luò)元件104(更具體而言是AONS刀片604)可以存儲映射信息,該信息將FTP(一種應(yīng)用層協(xié)議)映射到IP地址和/或TCP端口的第一組合,將HTTP(另一種應(yīng)用層協(xié)議)映射到IP地址和/或TCP端口的第二組合?;谠撚成湫畔⒁约坝蓴?shù)據(jù)分組所指示的IP地址和/或TCP端口,AONS刀片604可以確定哪一種應(yīng)用層協(xié)議(FTP、HTTP、簡單郵件傳送協(xié)議(SMTP)等)被用于發(fā)送該消息。
在框312中,確定與被用于發(fā)送該消息的應(yīng)用層協(xié)議相關(guān)聯(lián)的消息終止技術(shù)。例如,網(wǎng)絡(luò)元件104(更具體而言是AONS刀片604)可以存儲映射信息,該信息將FTP映射到第一方案,將HTTP映射到第二方案,并將SMTP映射到第三方案。第一方案可以采用第一消息終止技術(shù),其可被用于從數(shù)據(jù)分組中提取出利用FTP發(fā)送的消息。第二方案可以采用第二消息終止技術(shù),其可被用于從數(shù)據(jù)分組中提取出利用HTTP發(fā)送的消息。第三方案可以采用第三消息終止技術(shù),其可被用于從數(shù)據(jù)分組中提取出利用SMTP發(fā)送的消息?;谠撚成湫畔⒁约氨挥糜诎l(fā)送該消息的應(yīng)用層協(xié)議,網(wǎng)絡(luò)元件104可以確定應(yīng)當(dāng)調(diào)用哪一方案以從數(shù)據(jù)分組中提取出該消息。
在框314中,基于與被用于發(fā)送消息的應(yīng)用層協(xié)議相關(guān)聯(lián)的終止技術(shù)確定消息的內(nèi)容。例如,網(wǎng)絡(luò)元件104(更具體而言是AONS刀片604)可以提供數(shù)據(jù)分組作為對在框312中確定的被映射到應(yīng)用層協(xié)議的方案的輸入。該方案可以使用適當(dāng)?shù)南⒔K止技術(shù)來從數(shù)據(jù)分組中提取出消息的內(nèi)容。該方案可以將消息作為輸出返回到AONS刀片604。從而,在一個實施例中,從數(shù)據(jù)分組中提取出的消息獨(dú)立于被用于發(fā)送消息的應(yīng)用層協(xié)議。
在一個實施例中,確定消息的內(nèi)容涉及組裝兩個或更多個數(shù)據(jù)分組的有效載荷部分的內(nèi)容。例如,網(wǎng)絡(luò)元件104可以確定兩個或更多個TCP數(shù)據(jù)分組的正確順序(例如,基于TCP序列號),提取出TCP數(shù)據(jù)分組的有效載荷部分的內(nèi)容,并根據(jù)正確順序級聯(lián)這些內(nèi)容以形成消息的至少一部分。該消息可以是多部分(MIME)消息,并且每個部分可以像獨(dú)立消息那樣獨(dú)立處理;每個部分都可以進(jìn)行消息分類。
在框316中,確定與消息滿足的標(biāo)準(zhǔn)相關(guān)聯(lián)的消息分類。例如,網(wǎng)絡(luò)元件104可以存儲將不同標(biāo)準(zhǔn)映射到不同消息分類的映射信息。該映射信息指示在可能的許多不同關(guān)聯(lián)中在框304中建立的關(guān)聯(lián)。網(wǎng)絡(luò)元件104可以確定消息的內(nèi)容是否滿足與已知消息分類中的任何一種相關(guān)聯(lián)的標(biāo)準(zhǔn)。在一個實施例中,如果消息的內(nèi)容滿足與特定消息分類相關(guān)聯(lián)的標(biāo)準(zhǔn),則確定該消息屬于該特定消息分類。
盡管在一個實施例中消息內(nèi)容被用于確定消息的分類,但是在替換實施例中,包含在消息中的信息都可用于確定消息的分類。例如,在一個實施例中,消息內(nèi)容以及在包含消息的數(shù)據(jù)分組中指示的一個或多個IP地址和/或TCP端口的組合被用于確定消息的分類。又例如,在一個實施例中,在包含消息的數(shù)據(jù)分組中指示的一個或多個IP地址和/或TCP端口被用于確定消息的分類,而無論消息的內(nèi)容如何。
在框318中,執(zhí)行與在框316中確定的消息分類相關(guān)聯(lián)的一個或多個動作。如果兩個或更多個動作與指定的動作執(zhí)行順序相關(guān)聯(lián),如用戶指定輸入所指示,則這些動作被按指定順序執(zhí)行。如果這些動作中的任何一個的輸出假定被作為輸入提供給任何一個動作,如用戶指定輸入所指示,則指定動作的輸出被作為輸入提供給其他指定動作。
對消息可以執(zhí)行多種不同動作。圖3C-F僅僅代表實現(xiàn)方式可以對與消息的消息分類相關(guān)聯(lián)的動作流中的每個被遍歷動作執(zhí)行的許多種不同可能技術(shù)中的一種。動作流可以包含條件和分支,因此動作流中的某些動作可能不被遍歷。試樣的動作流在下面參考圖4描述。
參考圖3C,在框320中,讀取動作流中的下一動作,除非在流中不再包含任何動作。例如,網(wǎng)絡(luò)元件104可以讀取與消息的消息分類相關(guān)聯(lián)的動作流中的下一動作。一旦讀取了下一動作,接著就例如確定動作種類。在框322中,確定該動作是否是加密動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是加密動作。如果該動作是加密動作,則控制傳遞到框324。否則,控制傳遞到框326。
在框324中,利用密鑰對消息的一部分加密。該密鑰可以例如與消息去往的應(yīng)用相關(guān)聯(lián)。例如,網(wǎng)絡(luò)元件104可以利用與服務(wù)器應(yīng)用112相關(guān)聯(lián)的公共密鑰對消息的一部分或全部加密。如果消息是XML文檔,則被映射到該動作作為動作參數(shù)的用戶指定的XML文檔路徑可以指示要對消息的哪一部分加密。網(wǎng)絡(luò)元件104可以利用被映射到該動作作為動作參數(shù)的公共密鑰對該部分加密。該映射可以利用管理控制臺122建立。公共密鑰可以存儲在網(wǎng)絡(luò)元件104處?;蛘?,該消息可以利用某個不與消息去往的應(yīng)用相關(guān)聯(lián)的其他密鑰進(jìn)行加密。例如,該消息可以利用與接收消息的網(wǎng)絡(luò)元件相關(guān)聯(lián)的密鑰進(jìn)行加密??刂苽鬟f回框320。
在框326中,確定該動作是否是解密動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是解密動作。如果該動作是解密動作,則控制傳遞到框328。否則,控制傳遞到框330。
在框328中,利用密鑰對消息的經(jīng)加密部分解密。該密鑰可以例如與消息去往的應(yīng)用相關(guān)聯(lián)。例如,網(wǎng)絡(luò)元件104可以利用與服務(wù)器應(yīng)用112相關(guān)聯(lián)的私有密鑰對經(jīng)加密消息的一部分解密。網(wǎng)絡(luò)元件104可以利用被映射到該動作的私有密鑰對該部分解密。該映射可以利用管理控制臺122建立。私有密鑰可以存儲在網(wǎng)絡(luò)元件104處?;蛘?,該消息可以利用某個不與消息去往的應(yīng)用相關(guān)聯(lián)的其他密鑰進(jìn)行解密。例如,該消息可以利用與接收消息的網(wǎng)絡(luò)元件相關(guān)聯(lián)的密鑰進(jìn)行解密??刂苽鬟f回框320。
在框330中,確定該動作是否是簽名動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是簽名動作。如果該動作是簽名動作,則控制傳遞到框332。否則,控制傳遞到圖3D的框336。
在框332中,利用與該動作相關(guān)聯(lián)的功能生成消息的摘要。例如,網(wǎng)絡(luò)元件104可以通過將消息或其一部分輸入到被映射到該動作的散列功能中來生成消息摘要。該映射可以利用管理控制臺122建立。散列功能可以存儲在網(wǎng)絡(luò)元件104處??刂苽鬟f回框334。
在框334中,利用與發(fā)送消息的應(yīng)用相關(guān)聯(lián)的密鑰對摘要解密。例如,網(wǎng)絡(luò)元件104可以利用與客戶端應(yīng)用110相關(guān)聯(lián)的私有密鑰對摘要解密。網(wǎng)絡(luò)元件104可以利用被映射到該動作的私有密鑰對摘要解密。該映射可以利用管理控制臺122建立。私有密鑰可以存儲在網(wǎng)絡(luò)元件104處。當(dāng)消息被發(fā)送時,經(jīng)加密摘要可以作為消息的簽名被發(fā)送??刂苽鬟f回框320。
現(xiàn)在參考圖3D,在框336中,確定該動作是否是驗證動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是驗證動作。如果該動作是驗證動作,則控制傳遞到框338。否則,控制傳遞到圖3E的框348。
在框338中,利用與發(fā)送消息的應(yīng)用相關(guān)聯(lián)的密鑰對經(jīng)加密摘要解密。經(jīng)加密摘要可以作為消息的簽名與消息一起被接收。例如,網(wǎng)絡(luò)元件104可以利用與客戶端應(yīng)用110相關(guān)聯(lián)的公共密鑰對經(jīng)加密摘要解密。網(wǎng)絡(luò)元件104可以利用被映射到該動作的公共密鑰對摘要解密。該映射可以利用管理控制臺122建立。公共密鑰可以存儲在網(wǎng)絡(luò)元件104處。控制傳遞到框340。
在框340中,利用與該動作相關(guān)聯(lián)的功能生成消息的本地生成的摘要。例如,網(wǎng)絡(luò)元件104可以通過將消息輸入到被映射到該動作的散列功能中來生成消息的摘要。該映射可以利用管理控制臺122建立。散列功能可以存儲在網(wǎng)絡(luò)元件104處。控制傳遞回框342。
在框342中,確定經(jīng)解密摘要是否與本地生成的摘要相匹配。例如,網(wǎng)絡(luò)元件104可以確定在框338中解密的摘要是否與在框340中生成的摘要相匹配。如果摘要匹配,則控制傳遞到框344。否則,控制傳遞到框346。
在框344中,采取與簽名通過驗證的確定相對應(yīng)的流的分支。例如,作為驗證簽名的結(jié)果,網(wǎng)絡(luò)元件104可以遵循包含允許消息傳遞經(jīng)過到服務(wù)器應(yīng)用112的動作的流的分支??刂苽鬟f回圖3C的框320。
或者,在框346中,采取與簽名未通過驗證的確定相對應(yīng)的流的分支。例如,作為不能驗證簽名的結(jié)果,網(wǎng)絡(luò)元件104可以遵循包含阻止消息傳遞經(jīng)過到服務(wù)器應(yīng)用112的動作的流的分支。取決于包含在分支中的動作,網(wǎng)絡(luò)元件104可以記錄和/或丟棄消息和/或采取某種其他動作??刂苽鬟f到圖3C的框320。
現(xiàn)在參考圖3E,在框348中,確定該動作是否是認(rèn)證動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是認(rèn)證動作。如果該動作是認(rèn)證動作,則控制傳遞到框350。否則,控制傳遞到圖3F的框360。
在框350中,對認(rèn)證信息的請求被發(fā)送到發(fā)送消息的應(yīng)用。例如,網(wǎng)絡(luò)元件104可以向客戶端應(yīng)用110發(fā)送對用戶名和口令、或Kerberos令牌、或X.509證書、或SAML聲明等等的請求。該請求可以被映射到動作。該映射可以利用管理控制臺122建立??刂苽鬟f回框352。
在框352中,從發(fā)送消息的應(yīng)用接收認(rèn)證信息。例如,網(wǎng)絡(luò)元件104可以接收從客戶端應(yīng)用110發(fā)送的用戶名和口令。
在框354中,確定從應(yīng)用接收的認(rèn)證信息是否與包含在數(shù)據(jù)存儲裝置或身份存儲裝置中的可信認(rèn)證信息相匹配。例如,網(wǎng)絡(luò)元件104可以在指定數(shù)據(jù)存儲裝置或身份存儲裝置中查找被映射到接收自客戶端應(yīng)用110的用戶名的口令。對數(shù)據(jù)存儲裝置或身份存儲裝置的指針或引用可以被映射到該動作。網(wǎng)絡(luò)元件104可以確定包含在數(shù)據(jù)存儲裝置或身份存儲裝置中的口令是否與接收自客戶端應(yīng)用110的口令相匹配。如果認(rèn)證信息匹配,則控制傳遞到框356。否則,控制傳遞到框358。
在框356中,采取與應(yīng)用被認(rèn)證的確定相對應(yīng)的流的分支。例如,作為認(rèn)證應(yīng)用的結(jié)果,網(wǎng)絡(luò)元件104可以遵循包含允許消息傳遞經(jīng)過到服務(wù)器應(yīng)用112的動作的流的分支。又例如,作為認(rèn)證應(yīng)用的結(jié)果,網(wǎng)絡(luò)元件104可以基于一組被映射到數(shù)據(jù)存儲裝置或身份存儲裝置中的用戶名的許可來確定在消息中指定的操作是否被許可。如果操作被許可,則網(wǎng)絡(luò)元件可以允許消息傳遞經(jīng)過到服務(wù)器應(yīng)用112,如果操作不被許可,則網(wǎng)絡(luò)元件可以阻止消息傳遞經(jīng)過到服務(wù)器應(yīng)用112??刂苽鬟f回圖3C的框320。
或者,在框358中,采取與應(yīng)用不被認(rèn)證的確定相對應(yīng)的流的分支。例如,作為不能認(rèn)證應(yīng)用的結(jié)果,網(wǎng)絡(luò)元件104可以遵循包含阻止消息傳遞經(jīng)過到服務(wù)器應(yīng)用112的動作的流的分支。取決于包含在分支中的動作,網(wǎng)絡(luò)元件104可以記錄和/或丟棄消息和/或采取某種其他動作??刂苽鬟f到圖3C的框320。
現(xiàn)在參考圖3F,在框360中,確定該動作是否是授權(quán)動作。例如,網(wǎng)絡(luò)元件104可以確定該動作是否是授權(quán)動作。如果該動作是授權(quán)動作,則控制傳遞到框362。否則,控制傳遞到框368。
在框362中,確定嘗試執(zhí)行由消息指示的操作的實體是否被授權(quán)執(zhí)行該操作。該實體可能已由如上所述的認(rèn)證動作預(yù)先確定。如果該實體被授權(quán)執(zhí)行操作,則控制傳遞到框364。否則,控制傳遞到框366。
在框364中,采取與實體被授權(quán)執(zhí)行操作的確定相對應(yīng)的流的分支。例如,網(wǎng)絡(luò)元件104可以遵循包含允許實體訪問指定數(shù)據(jù)庫的動作的流的分支??刂苽鬟f回圖3C的框320。
或者,在框366中,采取與實體未被授權(quán)執(zhí)行操作的確定相對應(yīng)的流的分支。例如,網(wǎng)絡(luò)元件104可以遵循不包含允許實體訪問指定數(shù)據(jù)庫的動作的流的分支。取決于包含在分支中的動作,網(wǎng)絡(luò)元件104可以記錄和/或丟棄消息和/或采取某種其他動作??刂苽鬟f到圖3C的框320。
或者,在框368中,執(zhí)行除了上述動作以外的某一動作。例如,網(wǎng)絡(luò)元件104可以執(zhí)行除了加密、解密、簽名、驗證或認(rèn)證動作以外的某個其他指定動作。控制傳遞回圖3C的框320。
如果在動作執(zhí)行期間消息以某種方式被修改(例如,內(nèi)容、格式或協(xié)議修改),并且修改后的消息假定被轉(zhuǎn)發(fā)出網(wǎng)絡(luò)元件,則網(wǎng)絡(luò)元件將修改后的消息封裝到新的數(shù)據(jù)分組中,并向修改后的消息的目的地一其可能也已經(jīng)被修改一發(fā)送新的數(shù)據(jù)分組。
消息可能不屬于任何已知的消息分類。在這種情況下,根據(jù)一個實施例,網(wǎng)絡(luò)元件不對消息執(zhí)行任何用戶指定動作。相反地,網(wǎng)絡(luò)元件簡單地將數(shù)據(jù)分組轉(zhuǎn)發(fā)到沿去往數(shù)據(jù)分組所指示的目的地的路徑的下一跳。
流程圖300中所示的方法可以對多組數(shù)據(jù)分組執(zhí)行,每組承載獨(dú)立的消息。例如,網(wǎng)絡(luò)元件104可以對承載第一消息的第一組數(shù)據(jù)分組執(zhí)行圖示方法,然后網(wǎng)絡(luò)元件104可以對承載第二消息的第二組數(shù)據(jù)分組執(zhí)行該方法。第一消息可以滿足與第一消息分類相關(guān)聯(lián)的第一組標(biāo)準(zhǔn),第二消息可以滿足與第二消息分類相關(guān)聯(lián)的第二組標(biāo)準(zhǔn)。從而,網(wǎng)絡(luò)元件104可以對第一消息執(zhí)行第一組動作,對第二消息執(zhí)行第二組動作。
作為流程圖300中所示方法的結(jié)果,諸如客戶端應(yīng)用110、服務(wù)器應(yīng)用112和服務(wù)器應(yīng)用114之類的應(yīng)用可以以安全方式彼此通信,而無需在本地執(zhí)行任何安全性功能。事實上,應(yīng)用隱式地依賴于網(wǎng)絡(luò)來實現(xiàn)其任務(wù)中的某些或全部,例如安全性功能。
3.3動作流圖4示出了可以與特定消息分類相關(guān)聯(lián)的樣本流400。流400按順序包括動作402-414;其他流可以包括一個或多個其他動作。動作402指示消息的內(nèi)容應(yīng)當(dāng)以指定方式修改。動作404指示指定事件應(yīng)當(dāng)被寫入到指定日志。動作406指示消息的目的地應(yīng)當(dāng)變?yōu)橹付康牡?。動?08指示消息的格式應(yīng)當(dāng)被轉(zhuǎn)換為指定消息格式。動作410指示用于發(fā)送消息或內(nèi)容的應(yīng)用層協(xié)議應(yīng)當(dāng)變?yōu)橹付☉?yīng)用層協(xié)議。動作412指示消息或內(nèi)容應(yīng)當(dāng)利用特定密鑰進(jìn)行加密。動作414指示消息應(yīng)當(dāng)向消息的目的地轉(zhuǎn)發(fā)。
在其他實施例中,動作402-414中的任何一個可以獨(dú)立執(zhí)行,或者與動作402-414中的任何其他動作相組合地執(zhí)行。盡管未在圖4中示出,但是動作流可以包含條件/判決以及基于這些條件/判決的結(jié)果的分支。
可以執(zhí)行以上未具體提及的其他動作。例如,網(wǎng)絡(luò)元件可以從包含在網(wǎng)絡(luò)元件接收到的數(shù)據(jù)分組中的信息確定數(shù)據(jù)分組的發(fā)送者或預(yù)期接收者的身份。網(wǎng)絡(luò)元件可以利用與該身份相關(guān)聯(lián)或者被映射到該身份的密碼密鑰對包含在數(shù)據(jù)分組中的消息執(zhí)行密碼功能。
又例如,網(wǎng)絡(luò)元件可以確定包含在網(wǎng)絡(luò)元件接收到的數(shù)據(jù)分組中的憑證的類型?;趹{證類型,網(wǎng)絡(luò)元件可以選擇若干個憑證存儲裝置(存儲憑證的貯藏庫)之一。網(wǎng)絡(luò)元件可以將接收到的憑證與存儲在所選的憑證存儲裝置中的憑證相比較。另外或可替換地,基于憑證類型,網(wǎng)絡(luò)元件可以選擇若干目的地之一,并將包含在數(shù)據(jù)分組中的應(yīng)用層消息的至少一部分發(fā)送到所選的目的地。
又例如,網(wǎng)絡(luò)元件可以確定在應(yīng)用層消息中指定的特定量。網(wǎng)絡(luò)元件可以確定該特定量是否超過指定量。然后,如果該特定量超過指定量,則網(wǎng)絡(luò)元件可以執(zhí)行一個或多個其他指定動作,例如丟棄和/或記錄應(yīng)用層消息。
又例如,網(wǎng)絡(luò)元件可以查找被映射到在應(yīng)用層消息中指定的用戶名令牌的證書。網(wǎng)絡(luò)元件可以代表發(fā)送應(yīng)用層消息的應(yīng)用將證書發(fā)送到服務(wù)器。這在服務(wù)器不理解用戶名令牌,但是理解證書時尤其有用。
又例如,網(wǎng)絡(luò)元件可以從可信機(jī)構(gòu)接收包含兩個獨(dú)立聲明(例如簽名和SAML聲明)的應(yīng)用層消息。來自可信機(jī)構(gòu)的聲明可能充當(dāng)可信機(jī)構(gòu)的關(guān)于發(fā)送應(yīng)用層消息的應(yīng)用是誰并且該應(yīng)用聲稱是什么的證書。該聲明可能已由應(yīng)用從可信機(jī)構(gòu)獲得,并且嵌入在應(yīng)用層消息中。網(wǎng)絡(luò)元件可以驗證這兩個聲明。例如,為了驗證來自可信機(jī)構(gòu)的聲明,網(wǎng)絡(luò)元件可以查詢可信機(jī)構(gòu)或利用在應(yīng)用層消息中提供的其他充分信息(如果提供了這種其他信息的話)驗證該聲明。
又例如,與從應(yīng)用接收用戶名和口令不同的是,或者除了從應(yīng)用接收用戶名和口令以外,網(wǎng)絡(luò)元件可以發(fā)送挑戰(zhàn)到應(yīng)用。響應(yīng)于挑戰(zhàn),網(wǎng)絡(luò)元件可以從應(yīng)用接收挑戰(zhàn)-響應(yīng)。網(wǎng)絡(luò)元件可以確定挑戰(zhàn)-響應(yīng)是否滿足挑戰(zhàn)。如果挑戰(zhàn)-響應(yīng)滿足挑戰(zhàn),則網(wǎng)絡(luò)元件可以執(zhí)行一個或多個指定動作。否則,網(wǎng)絡(luò)元件可以執(zhí)行一個或多個其他指定動作。
網(wǎng)絡(luò)元件可以接收利用安全套接字層(SSL)協(xié)議發(fā)送的應(yīng)用層消息。網(wǎng)絡(luò)元件可以改變應(yīng)用層消息以使得其遵從不同的應(yīng)用層協(xié)議(例如,HTTP到JMS),然后再次利用SSL協(xié)議向消息的目的地發(fā)送改變后的應(yīng)用層消息。
3.4AONS示例3.4.1AONS總論面向應(yīng)用的網(wǎng)絡(luò)系統(tǒng)(AONS)是一種用于構(gòu)建在網(wǎng)絡(luò)中嵌入智能以更好地滿足應(yīng)用部署的需要的一類產(chǎn)品的技術(shù)基礎(chǔ)。AONS通過提供對關(guān)于什么信息在網(wǎng)絡(luò)內(nèi)流動的更大的關(guān)注程度并且通過將信息路由到適當(dāng)?shù)哪康牡?以該目的地所預(yù)期的格式)來幫助客戶集成不同的應(yīng)用,從而補(bǔ)充了現(xiàn)有的網(wǎng)絡(luò)技術(shù);施行用于信息訪問和交換的策略;在網(wǎng)絡(luò)帶寬和處理開銷方面優(yōu)化應(yīng)用流量流;提供增強(qiáng)的信息流管理,包括監(jiān)視和度量信息流以用于業(yè)務(wù)和底層結(jié)構(gòu)(infrastructure)目的;以及通過透明地備份或重路由關(guān)鍵業(yè)務(wù)數(shù)據(jù)來提供增強(qiáng)的業(yè)務(wù)連續(xù)性。
AONS通過更多地理解信息流的內(nèi)容和上下文提供了該增強(qiáng)的支持。同樣,AONS主要工作在消息級別,而不是分組級別。一般來說,信息的AONS處理終止了TCP連接以檢查整個消息,包括“有效載荷”以及全部頭部。AONS還理解并輔助普遍的應(yīng)用層協(xié)議,例如HTTP、FTP、SMTP和事實上的標(biāo)準(zhǔn)中間件(middleware)協(xié)議。
AONS與運(yùn)行在通用計算系統(tǒng)上的中間件產(chǎn)品的不同之處在于,AONS的行為在其簡單性、總擁有成本和性能方面更加類似于網(wǎng)絡(luò)用具。此外,AONS與網(wǎng)絡(luò)層支持相集成以提供對信息流和管理的更加整體的方法,從而將在應(yīng)用層所需的特征映射到由路由器、交換機(jī)、防火墻和其他網(wǎng)絡(luò)系統(tǒng)實現(xiàn)的低層聯(lián)網(wǎng)特征中。
盡管在來自Cisco Systems Inc.的現(xiàn)有產(chǎn)品線中提供了某些與AONS類似功能的元件,但是這些產(chǎn)品一般對諸如IP/端口地址或HTTP頭部之類的信息表現(xiàn)出更加有限的關(guān)注度,以提供負(fù)載平衡和失效轉(zhuǎn)移解決方案。AONS提供了用于更寬廣的功能支持、更寬廣的應(yīng)用分類以及更大的應(yīng)用數(shù)據(jù)的控制和管理程度的框架。
3.4.2AONS術(shù)語“應(yīng)用”是執(zhí)行運(yùn)行在服務(wù)器或桌面系統(tǒng)上的商業(yè)功能的軟件實體。應(yīng)用可以是打包應(yīng)用、運(yùn)行在應(yīng)用服務(wù)器上的軟件、運(yùn)行在主機(jī)上的遺留應(yīng)用、或內(nèi)部開發(fā)以滿足商業(yè)需要的定制或私有軟件、或者執(zhí)行某種操作的腳本。這些應(yīng)用可以與同一部門中的(部門的)其他應(yīng)用、單個企業(yè)內(nèi)的不同部門的(企業(yè)內(nèi)的)其他應(yīng)用、企業(yè)和其合作伙伴間的(企業(yè)間的或B2B)其他應(yīng)用或者企業(yè)和其客戶的(客戶的或B2C)其他應(yīng)用通信。AONS為上述情形中的任何一種提供了增值服務(wù)。
“應(yīng)用消息”是由應(yīng)用生成以與另一應(yīng)用通信的消息。應(yīng)用消息可以指定在處理該消息時應(yīng)當(dāng)執(zhí)行的不同商業(yè)級別步驟,并且可以是下面描述的消息格式中的任何一種。在本文件的其余部分中,除非明確指出,否則術(shù)語“消息”也指應(yīng)用消息。
“AONS節(jié)點(diǎn)”是AONS系統(tǒng)(或網(wǎng)絡(luò))內(nèi)的主要AONS組件。如后面將描述的,AONS節(jié)點(diǎn)可以采取客戶端代理、服務(wù)器代理或路由應(yīng)用消息的中介設(shè)備的形式。
每個應(yīng)用消息當(dāng)被第一AONS節(jié)點(diǎn)接收時,被分派一個AONS消息ID,并被認(rèn)為是“AONS消息”,直到該消息被傳遞到目的地AONS節(jié)點(diǎn)為止。AONS消息的概念存在于AONS云中。單個應(yīng)用消息可以映射到多于一個AONS消息。這可以是例如應(yīng)用消息需要由多于一個商業(yè)功能處理的情形。例如,由請求應(yīng)用提交的需要由“CreditCheck”應(yīng)用和“LoanProcessing”應(yīng)用處理的“LoanRequest”消息將需要由多于一個商業(yè)功能處理。在該示例中,從AONS的角度來看,存在兩個AONS消息從請求應(yīng)用到CreditCheck應(yīng)用的“LoanRequest”到“CreditCheck”AONS消息; 以及從CreditCheck應(yīng)用到LoanProcessing應(yīng)用的“LoanRequest”到“LoanProcessing”AONS消息。
在一個實施例中,AONS消息被封裝在包含AONP(AON協(xié)議)頭部的AONP消息中,并且被轉(zhuǎn)換為“規(guī)范”格式。AONP是一種能夠在兩個或更多個AONS節(jié)點(diǎn)之間進(jìn)行聯(lián)盟的機(jī)制。例如,第一AONS節(jié)點(diǎn)可以知道其正與第二或其他AONS節(jié)點(diǎn)協(xié)同動作;從而AONS節(jié)點(diǎn)是“聯(lián)盟的”。第一AONS節(jié)點(diǎn)可能已對特定分組執(zhí)行一個或多個動作,例如加密、信令、認(rèn)證等等。第一AONS節(jié)點(diǎn)可以在一個或多個AONP頭部中指示第一AONS節(jié)點(diǎn)已執(zhí)行的動作。在接收到AONP消息后,第二AONS節(jié)點(diǎn)可以從AONP頭部中確定這些動作已被執(zhí)行。結(jié)果,第二AONS節(jié)點(diǎn)可以放棄執(zhí)行這些動作,或者以高效和最優(yōu)的方式執(zhí)行其他動作。從AONS消息的角度提供了可靠性、記錄和安全性服務(wù)。
從AONS角度,應(yīng)用一般用來彼此通信的一組協(xié)議或方法被稱為“應(yīng)用訪問協(xié)議”(或方法)。應(yīng)用可以利用任何支持的應(yīng)用訪問方法與AONS網(wǎng)絡(luò)(一般是端點(diǎn)代理客戶端代理和服務(wù)器代理)通信。應(yīng)用訪問協(xié)議的某些示例包括IBM MQ系列、Java消息服務(wù)(JMS)、TIBCO、超文本傳送協(xié)議(HTTP)/HTTPS上的簡單對象訪問協(xié)議(SOAP)、簡單郵件傳送協(xié)議(SMTP)、文件傳送協(xié)議(FTP)、Java數(shù)據(jù)庫連通性(JDBC)、TCP等等。關(guān)于各種訪問方法的細(xì)節(jié)將在該文件的后續(xù)部分中說明。
存在很多種應(yīng)用所用的“消息格式”。這些消息格式的范圍可以包括定制或私有格式以及工業(yè)特定格式和標(biāo)準(zhǔn)化格式。可擴(kuò)展標(biāo)記語言(XML)作為一種用于供應(yīng)用彼此通信的通用語言或消息格式正得到普遍應(yīng)用。AONS支持很多種這些格式。
另外,在一個實施例中,AONS提供了基于應(yīng)用需要從一種格式到另一格式的轉(zhuǎn)換服務(wù)。典型部署可能涉及第一AONS節(jié)點(diǎn),其接收應(yīng)用消息(客戶端代理),將該消息轉(zhuǎn)換為“規(guī)范”格式,規(guī)范格式的消息被作為AONS消息通過AONS網(wǎng)絡(luò)運(yùn)送。服務(wù)器代理可能在傳遞該消息之前將消息從“規(guī)范”格式轉(zhuǎn)換為接收應(yīng)用所理解的格式。為了理解某些非工業(yè)標(biāo)準(zhǔn)格式,可以使用消息辭典。
執(zhí)行多種應(yīng)用訪問方法或協(xié)議之間的網(wǎng)關(guān)功能的節(jié)點(diǎn)被稱為“協(xié)議網(wǎng)關(guān)”。協(xié)議網(wǎng)關(guān)的示例可以是通過文件傳送協(xié)議(FTP)接收應(yīng)用消息并將同一消息作為HTTP貼發(fā)送到另一應(yīng)用的節(jié)點(diǎn)。在AONS中,客戶端和服務(wù)器代理一般被預(yù)期執(zhí)行協(xié)議網(wǎng)關(guān)功能。
如果應(yīng)用生成電子數(shù)據(jù)交換(EDI)格式的消息而接收應(yīng)用期望消息是XML格式,則消息格式需要被轉(zhuǎn)換,但是消息內(nèi)容需要在轉(zhuǎn)換進(jìn)程中保持不變。在AONS中,端點(diǎn)代理一般執(zhí)行該“消息格式轉(zhuǎn)換”功能。
在某些情況下,即使發(fā)送和接收應(yīng)用使用相同的消息格式,對于接收應(yīng)用來說也需要轉(zhuǎn)換內(nèi)容。例如,如果一個美國應(yīng)用正與一個英國應(yīng)用通信,則這兩個應(yīng)用之間的消息中的日期格式可能需要被轉(zhuǎn)換(從月/日/年到日/月/年),即使應(yīng)用使用相同的數(shù)據(jù)表示(或消息格式)時也是如此。該轉(zhuǎn)換被稱為“內(nèi)容轉(zhuǎn)換”。
3.4.3AONS功能概述如前所定義,AONS可以被定義為基于網(wǎng)絡(luò)的智能中介系統(tǒng),其高效且有效地將商業(yè)和應(yīng)用需要與更加靈活和更具響應(yīng)性的網(wǎng)絡(luò)服務(wù)相集成。
具體而言,AONS可以通過以下特性理解AONS工作在比傳統(tǒng)網(wǎng)絡(luò)元件產(chǎn)品(2-4層)高的層(5-6層)。AONS使用消息級別的檢查作為對分組級別檢查的補(bǔ)充一通過理解應(yīng)用消息,AONS向多種網(wǎng)絡(luò)元件產(chǎn)品,例如交換機(jī)、防火墻、內(nèi)容緩存系統(tǒng)和負(fù)載平衡器提供“消息交換路由”方面的附加值。AONS在安全性、可靠性、流量優(yōu)化(壓縮、緩存)、可視性(商業(yè)事件和網(wǎng)絡(luò)事件)和變換(例如,從XML到EDI)方面提供了更大的靈活性和網(wǎng)絡(luò)響應(yīng)粒度。
AONS是一種綜合技術(shù)平臺,而不僅僅是點(diǎn)解決方案。AONS可以通過分布式智能中介系統(tǒng)實現(xiàn),該系統(tǒng)位于分布式企業(yè)內(nèi)和企業(yè)間環(huán)境中的應(yīng)用、中間件和數(shù)據(jù)庫之間(路由消息、執(zhí)行變換等)。AONS提供了用于商業(yè)流的末端用戶配置的靈活框架,以及AONS服務(wù)的策略和伙伴驅(qū)動的可擴(kuò)展性。
AONS尤其適合于基于網(wǎng)絡(luò)的部署。AONS是基于網(wǎng)絡(luò)的,而不是通用的基于服務(wù)器的。AONS是混合的基于軟件和基于硬件的(即,基于專用集成電路(ASIC)/現(xiàn)場可編程門陣列(FPGA)的加速)。AONS使用流量的(由策略確定的)帶外或線內(nèi)處理。AONS被部署在獨(dú)立產(chǎn)品(網(wǎng)絡(luò)用具)以及嵌入式產(chǎn)品(用于多個交換、路由和存儲平臺的服務(wù)刀片)中。
3.4.4AONS系統(tǒng)概述該部分概括了示例性AONS系統(tǒng)的系統(tǒng)概述。圖7是圖示了根據(jù)本發(fā)明一個實施例在示例性AONS系統(tǒng)702中涉及的各種組件的圖700。由每個節(jié)點(diǎn)執(zhí)行的角色在后續(xù)的部分中詳細(xì)提及。
在AONS系統(tǒng)702內(nèi),關(guān)鍵的構(gòu)建塊包括AONS端點(diǎn)代理(AEP)704-710和AONS路由器(AR),AEP 704-710位于AONS網(wǎng)絡(luò)的邊緣處并且用作進(jìn)入和退出點(diǎn),AR位于AONS網(wǎng)絡(luò)內(nèi)??梢詮姆胖迷谶壿婣ONS“云”的邊緣處的AEP 704內(nèi)開始了解應(yīng)用意圖。當(dāng)客戶端應(yīng)用714A-N中的特定客戶端應(yīng)用嘗試通過網(wǎng)絡(luò)發(fā)送消息到服務(wù)器應(yīng)用716A-N和718A-N中的特定服務(wù)器應(yīng)用目的地時,該特定客戶端應(yīng)用將首先與AEP 704交互。
AEP 704用作透明或顯式消息傳送網(wǎng)關(guān),其將網(wǎng)絡(luò)分組聚集到應(yīng)用消息中,并推斷消息級別的意圖,這是通過以下方式實現(xiàn)的檢查給定消息的頭部和有效載荷,將消息與適當(dāng)上下文相關(guān),可選地應(yīng)用適當(dāng)策略(例如,消息加密、變換等),然后經(jīng)由網(wǎng)絡(luò)交換機(jī)向消息的應(yīng)用目的地路由消息。
AONS路由器(AR)712可以截取在到消息的目的地端點(diǎn)的路由上的消息。基于消息頭部內(nèi)容,AR 712可以確定新的路由將更好地滿足給定應(yīng)用系統(tǒng)的需要。AR 712可以基于企業(yè)級別的策略,在考慮到當(dāng)前網(wǎng)絡(luò)狀況的情況下進(jìn)行該判決。隨著消息接近其目的地,消息可以遇到AEP 706,其可以在消息到達(dá)之前執(zhí)行最終的一組操作(例如,消息解密、傳遞確認(rèn))。在一個實施例中,每個消息只被解析一次當(dāng)該消息第一次進(jìn)入AONS云時。消息遍歷的第一AEP負(fù)責(zé)準(zhǔn)備用于下層網(wǎng)絡(luò)內(nèi)的最優(yōu)處理的消息。
AEP 704-708還可被進(jìn)一步分類為AEP客戶端代理和AEP服務(wù)器代理,以明確突出由代表特定端點(diǎn)應(yīng)用的AEP執(zhí)行的角色和操作。
典型的消息流包括特定客戶端應(yīng)用714A通過由AONS支持的各種訪問協(xié)議之一向AEP客戶端代理(CP)704提交消息。一接收到該消息,AEP CP 704就向消息分派一個AONS消息id,將該消息與包含AONP頭部的AONP消息封裝,并執(zhí)行與AONS網(wǎng)絡(luò)有關(guān)的任何必要操作(例如,安全性和可靠性服務(wù))。另外,如果必要的話,該消息被AEP CP 704轉(zhuǎn)換為“規(guī)范”格式。該消息通過TCP連接沿著到目的地應(yīng)用718A的路徑被運(yùn)送到AR 710。沿著路徑的AONS路由器或交換機(jī)執(zhí)行消息所需的底層結(jié)構(gòu)服務(wù),并可以基于客戶所配置的策略改變路由。該消息在目的地AEP服務(wù)器代理(SP)706處被接收到。AEP SP 706執(zhí)行必要的安全性和可靠性功能,并在必要的情況下將消息轉(zhuǎn)換為接收應(yīng)用所理解的格式。然后,AEP SP 706利用應(yīng)用718A和AONS所支持的任何一種訪問協(xié)議將消息發(fā)送到接收應(yīng)用718A。通過AONS網(wǎng)絡(luò)702的詳細(xì)的消息流將在下面的部分中描述。
這里描述的消息處理可以對AONS節(jié)點(diǎn)可能遇到的不同種類的消息的內(nèi)容執(zhí)行。AONS可以處理請求消息、響應(yīng)消息、從AONS節(jié)點(diǎn)發(fā)出或進(jìn)入到AONS節(jié)點(diǎn)中的消息或異常消息;AONS節(jié)點(diǎn)可以處理不同于這些類型或者在客戶端和服務(wù)器應(yīng)用之間發(fā)送的類型的消息的內(nèi)容。例如,響應(yīng)于截取到來自客戶端應(yīng)用的消息,AONS節(jié)點(diǎn)可以生成另一消息,并將其發(fā)送到數(shù)據(jù)庫服務(wù)器。AONS節(jié)點(diǎn)可以隨后接收來自數(shù)據(jù)庫服務(wù)器的另一消息。AONS節(jié)點(diǎn)可以按上述方式對上述的任何一種消息執(zhí)行消息處理,而不是僅僅對來自客戶端的消息執(zhí)行消息處理。
AONS節(jié)點(diǎn)可以響應(yīng)于確定消息的傳遞將導(dǎo)致失效而執(zhí)行指定動作。例如,AONS節(jié)點(diǎn)可以確定消息大于可以被消息去往的服務(wù)器應(yīng)用接受的最大大小。作為響應(yīng),AONS節(jié)點(diǎn)可以阻止消息被轉(zhuǎn)發(fā)到服務(wù)器應(yīng)用。相反地,AONS節(jié)點(diǎn)可以記錄消息以供以后由管理員檢查。又例如,響應(yīng)于確定消息包含有毒或其他惡意內(nèi)容,AONS節(jié)點(diǎn)可以給消息“接種”(例如,通過加密和/或壓縮消息內(nèi)容),然后將“接種后”的消息存儲在日志中以供以后由管理員檢查。
3.4.5 AONS系統(tǒng)元件該部分概括了從AONS角度使用的不同概念。
“AEP客戶端代理”是執(zhí)行消息的發(fā)送方(客戶端)上的應(yīng)用所必需的服務(wù)的AONS節(jié)點(diǎn)。在該文件的其余部分中,端點(diǎn)代理也指客戶端或服務(wù)器代理。盡管AONS節(jié)點(diǎn)可以履行代理的角色,但是其一般不被這樣指定;“AEP”代理是用于定義角色的術(shù)語。在處理消息時客戶端代理的一般責(zé)任是消息預(yù)分類和早期拒絕、協(xié)議管理、消息身份管理、AONP頭部中的消息封裝、用于可靠傳遞的端點(diǎn)發(fā)起、安全性端點(diǎn)服務(wù)發(fā)起(加密、數(shù)字簽名、認(rèn)證)、流選擇和執(zhí)行/底層結(jié)構(gòu)服務(wù)(記錄、壓縮、內(nèi)容變換等)、路由一下一跳AONS節(jié)點(diǎn)或目的地、AONS節(jié)點(diǎn)和路由發(fā)現(xiàn)/通告角色和路由、以及用于可靠傳遞機(jī)制的端點(diǎn)發(fā)起(保證傳遞路由器)。
注意,對于每個消息并不需要執(zhí)行上述所有功能。對消息執(zhí)行的功能由對AONS節(jié)點(diǎn)配置的策略控制。
“AEP服務(wù)器代理”是執(zhí)行消息的接收方(服務(wù)器)上的應(yīng)用所必需的服務(wù)的AONS節(jié)點(diǎn)。在文件的其余部分中,服務(wù)器代理也可被稱為端點(diǎn)代理。在處理消息時服務(wù)器代理的一般責(zé)任是協(xié)議管理、用于可靠傳遞的端點(diǎn)終止、安全性端點(diǎn)服務(wù)終止(解密、數(shù)字簽名的核實等等)、流選擇和執(zhí)行/底層結(jié)構(gòu)服務(wù)(記錄、壓縮、內(nèi)容轉(zhuǎn)換等)、AONP頭部中的消息解封裝、對發(fā)送AONS節(jié)點(diǎn)的確認(rèn)、到目的地的應(yīng)用路由/請求消息傳遞、響應(yīng)消息關(guān)聯(lián)、以及到入口AONS節(jié)點(diǎn)的路由。
注意,對于每個消息并不需要執(zhí)行以上列舉的所有功能。對消息執(zhí)行的功能由對AONS節(jié)點(diǎn)配置的以及消息頭部指示的策略控制。
“AONS路由器”是提供消息轉(zhuǎn)發(fā)功能以及AONS網(wǎng)絡(luò)內(nèi)的附加底層結(jié)構(gòu)服務(wù)的AONS節(jié)點(diǎn)。AONS路由器與客戶端代理、服務(wù)器代理和其他AONS路由器通信。AONS路由器可以在不解析消息的情況下提供服務(wù);AONS路由器可以依賴于AONP消息頭部和在AONS網(wǎng)絡(luò)中配置的策略,而不用解析消息。AONS路由器提供了以下功能在需要的TCP連接的數(shù)目方面AONS網(wǎng)絡(luò)中的可擴(kuò)展性;基于消息目的地、在AONS云中配置的策略、在消息中指定的路由和/或消息內(nèi)容進(jìn)行的消息路由;在期望目的地處的負(fù)載一重路由(如果需要的話);目的地的可用性一重路由(如果需要的話);傳輸成本(在多個服務(wù)提供商之間進(jìn)行選擇);以及底層結(jié)構(gòu)服務(wù),例如發(fā)送到記錄工具、發(fā)送到存儲區(qū)域網(wǎng)(SAN)以用于備份目的、以及對于可緩存的消息(與目錄類似)接口到緩存引擎。
AONS路由器不需要理解應(yīng)用訪問協(xié)議中的任何一種,并且在一個實施例中,只處理利用AONP頭部封裝的消息。
面向應(yīng)用的聯(lián)網(wǎng)協(xié)議(AONP)是用于AONS網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的通信的協(xié)議。在一個實施例中,每個AONS消息運(yùn)送AONP頭部,AONP頭部給出了消息的目的地以及用于在后續(xù)節(jié)點(diǎn)中處理消息的附加信息。AONP還解決策略交換(靜態(tài)的或動態(tài)的)、節(jié)點(diǎn)之間的失效轉(zhuǎn)移、AONS節(jié)點(diǎn)之間的負(fù)載平衡以及路由信息的交換。AONP還能夠在多種網(wǎng)絡(luò)元件(例如防火墻、緩存引擎和路由器/交換機(jī))中進(jìn)行面向應(yīng)用的消息處理。AONP既支持固定頭部,又支持可變頭部(利用類型長度值(TLV)字段形成),以支持中介節(jié)點(diǎn)中的高效處理以及用于附加服務(wù)的靈活性。
除非明確指出,否則這里的“路由器”或“交換機(jī)”指當(dāng)前可以購得的典型的第3層或第2層交換機(jī)或路由器。
3.4.6AONS示例性特征在一個實施例中,下層的“子系統(tǒng)服務(wù)的AONS基礎(chǔ)平臺”(AOS)提供了一個通用服務(wù)的范圍,包括對安全性、壓縮、緩存、可靠性、策略管理和其他服務(wù)的支持。隨后,在該平臺的頂端,AONS提供了一個分立功能組件的范圍,這些功能組件可以連線在一起以提供對傳入數(shù)據(jù)流的整體處理。這些“bladeletsTM”的目標(biāo)在于在由應(yīng)用或信息技術(shù)(IT)管理器所要求的特定策略或動作的上下文中實現(xiàn)個別服務(wù)。一系列訪問方法適配器確保了對某個范圍的入口和出口格式的支持。最后,一組面向用戶的工具使得管理器能夠適當(dāng)?shù)夭榭?、配置和設(shè)置用于AONS解決方案的策略。這四個功能類別相組合以提供某個范圍的末端客戶能力,包括增強(qiáng)的安全性、底層結(jié)構(gòu)優(yōu)化、商業(yè)連續(xù)性、應(yīng)用集成和操作可視性。
由AONS解決方案提供的增強(qiáng)的可視性和增強(qiáng)的響應(yīng)能力提供了多種智能的、面向應(yīng)用的網(wǎng)絡(luò)服務(wù)。這些智能服務(wù)可以總結(jié)在四個主要類別中。
增強(qiáng)的安全性和可靠性提供了可靠的消息傳遞,并且除了現(xiàn)有的網(wǎng)絡(luò)級別安全性之外,還提供了消息級別安全性。
底層結(jié)構(gòu)優(yōu)化通過在消息級別利用緩存和壓縮以及通過集成應(yīng)用和網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS),能夠更高效地使用網(wǎng)絡(luò)資源。
商業(yè)和底層結(jié)構(gòu)活動性監(jiān)視和管理通過讀取包含在應(yīng)用層消息中的信息,AONS可以記錄、審計并管理應(yīng)用級別商業(yè)事件,并將這些與公共的、策略驅(qū)動的管理環(huán)境中的網(wǎng)絡(luò)、服務(wù)器和存儲底層結(jié)構(gòu)事件相組合。
基于內(nèi)容的路由和變換基于消息的路由以及協(xié)議、內(nèi)容、數(shù)據(jù)和消息格式的變換(例如,XML變換)。屬于這些主要類別中的每一種的個別特征將在下面更詳細(xì)地描述。
3.4.6.1增強(qiáng)的安全性和可靠性認(rèn)證AONS可以基于包含在給定消息內(nèi)的各種信息片段(用戶名/口令、數(shù)字證書、安全性聲明標(biāo)記語言(SAML)聲明等等)核實進(jìn)入消息的發(fā)送者的身份,并且基于這些憑證,確定消息是否應(yīng)當(dāng)被進(jìn)一步處理。
授權(quán)一旦經(jīng)由消息檢查獲得了主要憑證,AONS就可以確定消息的發(fā)起者應(yīng)當(dāng)對其嘗試調(diào)用的服務(wù)具有什么級別的訪問。AONS還可以基于這種導(dǎo)出的特權(quán)進(jìn)行路由判決,或者在適當(dāng)時阻擋或掩蓋消息內(nèi)的某些數(shù)據(jù)元素(一旦消息在AONS網(wǎng)絡(luò)內(nèi)的情況下)。
加密/解密隨著消息行進(jìn)通過AONS網(wǎng)絡(luò),基于策略,AONS可以執(zhí)行消息元素(整個消息、消息主體或個別元素,例如信用卡號)的加密以維持端到端的私密性。相反地,AONS可以在消息到達(dá)給定端點(diǎn)之前執(zhí)行這些元素的解密。
數(shù)字簽名為了確保消息完整性并允許不對消息事務(wù)進(jìn)行抵賴,AONS可以在任何給定AEP處對整個消息或個別消息元素簽名。關(guān)于哪些內(nèi)容被簽名的判決將由被施加到從每個消息的內(nèi)容和上下文導(dǎo)出的信息的策略來確定。
可靠性AONS可以通過在不同的私有機(jī)制之間進(jìn)行中介來補(bǔ)充現(xiàn)有的保證消息傳送系統(tǒng)。還可以為當(dāng)前缺乏可靠傳遞的基于HTTP的應(yīng)用(包括web服務(wù))提供可靠性。作為附加特征,AONS可以生成成功消息傳遞的確認(rèn),并且在不能確認(rèn)傳遞時自動生成異常響應(yīng)。
3.4.6.2底層結(jié)構(gòu)優(yōu)化壓縮和基于流的數(shù)據(jù)提取AEP可以在通過網(wǎng)絡(luò)發(fā)送消息數(shù)據(jù)之前壓縮消息數(shù)據(jù)以節(jié)省帶寬,并且相反地在端點(diǎn)傳遞之前對其解壓縮。AEP還可以提取數(shù)據(jù)以執(zhí)行消息分類,而不等待整個消息被讀入。
緩存AONS可以基于對一類請求定義的規(guī)則或者基于在響應(yīng)中設(shè)置的指示符緩存先前消息詢問的結(jié)果。緩存可以對整個消息或消息的某些元素執(zhí)行,以減少應(yīng)用響應(yīng)時間并節(jié)省網(wǎng)絡(luò)帶寬使用。消息元素緩存能夠?qū)罄m(xù)消息請求進(jìn)行delta處理。
TCP連接共同分擔(dān)(pooling)通過充當(dāng)消息客戶端和服務(wù)器之間的中介,AONS可以合并應(yīng)用之間所需的永久連接的總數(shù)。從而,AONS減少了其他情況下與一群端點(diǎn)之間的連接的正在進(jìn)行的發(fā)起和拆除相關(guān)聯(lián)的客戶端和服務(wù)器處理負(fù)載。
批處理(batching)AONS中介可以對去往多個目的地的事務(wù)消息進(jìn)行批處理以減少發(fā)送系統(tǒng)上的盤I/O開銷。類似地,可以對來自多個源的事務(wù)消息進(jìn)行批處理以減少接收系統(tǒng)上的盤I/O開銷。
硬件加速通過利用專用硬件在AONS網(wǎng)絡(luò)設(shè)備中高效地執(zhí)行計算密集功能,例如加密和可擴(kuò)展風(fēng)格(Stylesheet)語言變換(XSLT)變換,AONS可以卸下端點(diǎn)服務(wù)器的計算資源的負(fù)載,從而潛在地提供了較低成本的處理能力。
服務(wù)質(zhì)量AONS可以基于顯式消息優(yōu)先級區(qū)分(例如,被標(biāo)記為“高優(yōu)先級”的消息)或經(jīng)由在檢測到特定消息內(nèi)容時確定何時對消息而言需要較高質(zhì)量的網(wǎng)絡(luò)服務(wù)的策略,將應(yīng)用級別QoS與網(wǎng)絡(luò)級別QoS特征相集成。
策略強(qiáng)制優(yōu)化整個AONS解決方案的核心是確保商業(yè)級別策略由底層結(jié)構(gòu)表達(dá)、實現(xiàn)和強(qiáng)制的能力。AONS策略管理器確保了一旦檢查消息,就在適當(dāng)時針對該消息采取適當(dāng)?shù)膭幼?加密、壓縮、路由等)。
3.4.6.3活動性監(jiān)視和管理審計/記錄/度量AONS可以選擇性地過濾消息,并將其發(fā)送到節(jié)點(diǎn)或控制臺以用于聚集和后續(xù)分析。工具能夠查看和分析消息流。AONS還可以生成對重要實時事件(與商業(yè)和底層結(jié)構(gòu)有關(guān)的)的自動響應(yīng)。通過智能地收集統(tǒng)計信息并發(fā)送這些信息以計入日志,AONS可以產(chǎn)生用于審計或計費(fèi)目的的度量數(shù)據(jù)。
管理AONS可以組合消息級別和網(wǎng)絡(luò)底層結(jié)構(gòu)級別事件以獲得對整個系統(tǒng)健康度的更深理解。AONS管理接口自身可用作用于那些希望可編程地對其進(jìn)行訪問的人的web服務(wù)。
測試和驗證AONS能夠截取消息流量的能力可以用于在允許消息到達(dá)目的地應(yīng)用之前驗證消息。除了保護(hù)消息以免受可能的應(yīng)用或服務(wù)器故障影響之外,該能力還可以被均衡以測試新的web服務(wù)和其他功能,這是通過在產(chǎn)品部署之前檢查來自客戶端和服務(wù)器的實際消息流而實現(xiàn)的。AONS還提供了“調(diào)試模式”,該模式可以在可疑故障之后自動開啟,或者在通知之后手工開啟,以輔助對設(shè)備的整體管理。
工作負(fù)載平衡和失效轉(zhuǎn)移AONS提供了一種策略和內(nèi)容兩者驅(qū)動的工作負(fù)載平衡和失效轉(zhuǎn)移的方法。例如,給定AONS節(jié)點(diǎn)的在異種系統(tǒng)之間中介的能力,則AONS節(jié)點(diǎn)可以在提供對消息內(nèi)容所請求的公共信息的訪問的不同系統(tǒng)之間進(jìn)行平衡。AONS還可以解決確保在消息級別而不是在會話級別實現(xiàn)失效轉(zhuǎn)移所必需的消息親合力(affinity)的問題,而大多數(shù)現(xiàn)有解決方案是在會話級別實現(xiàn)的。平衡還可以考慮到用于得到消息回復(fù)、路由到替換目的地(如果優(yōu)選目標(biāo)暫時響應(yīng)很慢的話)的響應(yīng)時間。
商業(yè)連續(xù)性通過提供將進(jìn)入消息復(fù)制到遠(yuǎn)程目的地的能力,AONS使得客戶能夠從系統(tǒng)停歇中快速恢復(fù)。AONS還可以檢測發(fā)生故障的消息傳遞,并自動重路由到替換端點(diǎn)。AONS AEP和AR自身具有內(nèi)建的冗余和組件級別的失效轉(zhuǎn)移,并且可以被集群化以確保高可用性。
3.4.6.4基于內(nèi)容的路由和變換基于內(nèi)容的路由基于其檢查并理解消息的內(nèi)容和上下文的能力,AONS提供了通過將內(nèi)容元素與預(yù)先建立的策略配置進(jìn)行匹配來將消息路由到適當(dāng)目的地的能力。該能力允許AONS為由不同應(yīng)用處理的消息提供公共接口(服務(wù)虛擬化),并且由AONS檢查消息類型或內(nèi)容中的字段(部分號、帳戶類型、雇員位置、客戶郵政編碼等等)以將消息路由到適當(dāng)目的地。該能力還允許AONS利用經(jīng)過AONS路由器的最優(yōu)扇出發(fā)送消息到多個目的地(基于靜態(tài)定義的消息類型或信息主題,或者基于對消息類型或信息主題的動態(tài)訂購)。該能力還允許AONS重定向先前發(fā)送到應(yīng)用的所有消息以使得其可以由新的應(yīng)用處理。另外,該能力還允許AONS路由消息以用于預(yù)處理步驟,該步驟被認(rèn)為是在接收消息之前所必需的(例如,對于所有旅游請求引入管理預(yù)批準(zhǔn)步驟)。該能力還允許AONS將超過某一標(biāo)準(zhǔn)(例如,順序值)的消息的拷貝路由到審計系統(tǒng),以及將該消息轉(zhuǎn)發(fā)到期望目的地。該能力還允許AONS出于工作負(fù)載或失效轉(zhuǎn)移原因?qū)⑾⒙酚傻教囟ǚ?wù)器。該能力還允許AONS基于先前的路由判決將消息路由到特定服務(wù)器(例如,基于哪一服務(wù)器處理原始順序來路由查詢請求)。另外,該能力還允許AONS基于消息的源進(jìn)行路由。該能力還允許AONS通過由源或前一中介定義的步驟序列路由消息。
消息協(xié)議網(wǎng)關(guān)AONS可以充當(dāng)使用不同傳輸協(xié)議的應(yīng)用之間的網(wǎng)關(guān)。AONS支持開放式標(biāo)準(zhǔn)協(xié)議(例如HTTP、FTP、SMTP),以及普遍的或事實上標(biāo)準(zhǔn)的私有協(xié)議,例如IBM MQ和JMS。
消息變換AONS可以變換消息內(nèi)容以使其適合于特定接收應(yīng)用。這既可以對XML消息進(jìn)行,又可以對非XML消息進(jìn)行,后者是經(jīng)由消息辭典定義或定義好的工業(yè)標(biāo)準(zhǔn)格式的輔助實現(xiàn)的。
3.4.7AONS功能模塊圖8是示出了示例性AONS節(jié)點(diǎn)內(nèi)的功能模塊的框圖。AONS節(jié)點(diǎn)800包括AOS配置和管理模塊802、流/規(guī)則804、AOS公共服務(wù)806、AOS消息執(zhí)行控制器808、AOS協(xié)議訪問方法810和AOS平臺特定的“粘膠”(glue)812。AONS節(jié)點(diǎn)800與互聯(lián)網(wǎng)操作系統(tǒng)(IOS)814和Linux操作系統(tǒng)816相接口。流/規(guī)則804包括bladeletsTM818、scriptletsTM820和scriptletTM容器822。
在一個實施例中,AOS公共服務(wù)806包括安全性服務(wù)、標(biāo)準(zhǔn)壓縮服務(wù)、delta壓縮服務(wù)、緩存服務(wù)、消息記錄服務(wù)、策略管理服務(wù)、可靠消息傳送服務(wù)、公布/訂購服務(wù)、活動性監(jiān)視服務(wù)、消息分發(fā)服務(wù)、XML解析服務(wù)、XSLT變換服務(wù)和QoS管理服務(wù)。
在一個實施例中,AOS協(xié)議/訪問方法810包括TCP/SSL、HTTP/HTTPS、SOAP/HTTP、SMTP、FTP、JMS/MQ和JMS/RV,以及Java數(shù)據(jù)庫連通性(JDBC)。
在一個實施例中,AOS消息執(zhí)行控制器808包括執(zhí)行控制器、流子系統(tǒng)和bladeletTM子系統(tǒng)。
在一個實施例中,AOS bladeletsTM818和scriptletsTM820包括消息輸入(讀消息)、消息輸出(發(fā)送消息)、記錄/審計、判決、外部數(shù)據(jù)訪問、XML解析、XML變換、緩存、scriptlet容器、公布、訂購、消息驗證(規(guī)劃、格式等),過濾/掩蓋、簽名、認(rèn)證、授權(quán)、加密、解密、活動性監(jiān)視發(fā)源、活動性監(jiān)視標(biāo)記、活動性監(jiān)視處理、活動性監(jiān)視通知、消息丟棄、防火墻阻擋、防火墻阻擋去除(unblock)、消息截取和消息停止截取(stop-intercept)。
在一個實施例中,AOS配置和管理模塊802包括配置、監(jiān)視、拓?fù)涔芾怼⒛芰粨Q、失效轉(zhuǎn)移/冗余、可靠性/可用性/可服務(wù)性(RAS)服務(wù)(跟蹤、調(diào)試等)、存檔、安裝、更新、許可、樣本scripletsTM、樣本流、文檔化、在線幫助和語言本地化。
在一個實施例中,所支持的平臺包括Cisco Catalyst 6503、CiscoCatalyst 6505、Cisco Catalyst 6509和Cisco Catalyst 6513。這些產(chǎn)品一般部署在數(shù)據(jù)中心中。還支持其他產(chǎn)品,例如“分支辦公室路由器”(例如,Cisco Volant路由器系列)和“邊緣路由器”。在一個實施例中,所支持的監(jiān)管器模塊包括Sup2和Sup720。在一個實施例中,與平臺有關(guān)的特定功能區(qū)域包括優(yōu)化TCP、SSL、公共密鑰底層結(jié)構(gòu)(PKI)、加密/解密、到Cat6K監(jiān)管器的接口、失效轉(zhuǎn)移/冗余、圖像管理和QoS功能。盡管本發(fā)明的某些實施例在這里是參考PKI密鑰描述的,但是本發(fā)明的實施例并不限于PKI密鑰。其他密鑰和/或令牌(例如Kerberos令牌和/或PGP令牌)可以與本發(fā)明的實施例結(jié)合使用。
在一個實施例中,密鑰分發(fā)和處理由用戶指定策略控制,用戶指定策略與密鑰一起被存儲在稱為AMC的中央控制臺處。例如,這些策略可以表明不同種類的密鑰被用于加密/解密/標(biāo)記不同種類的數(shù)據(jù)流量。密鑰可以與策略相關(guān)聯(lián)。AMC可以自動地將密鑰對策略的關(guān)聯(lián)分發(fā)到用戶指定的AONS節(jié)點(diǎn)。AMC還管理密鑰的生存周期(lifecycle),指示密鑰何時期滿,哪些密鑰已被廢除等等。
3.4.8AONS工作模式AONS可以被配置為取決于應(yīng)用集成需要和部署情形而運(yùn)行在多種模式中。根據(jù)一個實施例,主要工作模式包括隱式模式(implicit mode)、顯式模式(explicit mode)和代理模式。在隱式模式中,AONS節(jié)點(diǎn)透明地截取相關(guān)流量,而不對應(yīng)用作出改變。在顯式模式中,應(yīng)用顯式地使流量去往中介AONS節(jié)點(diǎn)。在代理模式中,應(yīng)用被配置為與AONS節(jié)點(diǎn)協(xié)同工作,但是應(yīng)用并不顯式地使流量去往AONS節(jié)點(diǎn)。
在隱式模式中,應(yīng)用不關(guān)注AONS的存在。消息是去往接收應(yīng)用的。消息經(jīng)由應(yīng)用“代理”或中間件系統(tǒng)的配置,和/或經(jīng)由網(wǎng)絡(luò)配置(分組截取)被重定向到AONS以路由消息到AONS。例如,基于域名服務(wù)器(DNS)的重定向可以用于路由消息。又例如,可以使用交換機(jī)或路由器上的基于5元組的訪問控制列表(ACL)?;诰W(wǎng)絡(luò)的應(yīng)用識別和內(nèi)容交換模塊可以被配置用于URL/URI重定向?;谙⒌臋z查可以用于確定消息類型和分類。在隱式模式中,應(yīng)用利用應(yīng)用固有協(xié)議使用AONS作為中介(隱式地)彼此通信。
流量重定向、消息分類和“早期拒絕”(在完成AONS層內(nèi)的處理之前將流量發(fā)出AONS層)可以經(jīng)由多種機(jī)制實現(xiàn),例如在圖9中示出的那些機(jī)制。圖9示出了可以對消息流量執(zhí)行的以便只產(chǎn)生將在AONS層處理的一組選定流量的多層次過濾。不在AONS層處理的流量可以被當(dāng)作任何其他流量。
在最低層(層902),所有流量通過。在次高的一層(層904),可以基于5元組過濾流量。監(jiān)管器刀片或諸如互聯(lián)網(wǎng)操作系統(tǒng)(IOS)之類的網(wǎng)絡(luò)操作系統(tǒng)可以執(zhí)行這種過濾。經(jīng)過層904的過濾的流量傳遞到層906。在層906,可以進(jìn)一步基于類似于基于網(wǎng)絡(luò)的應(yīng)用識別過濾和/或消息分類和拒絕過濾流量。經(jīng)過層906的過濾的流量傳遞到層908。在層908,可以進(jìn)一步基于協(xié)議頭部過濾流量。例如,可以基于流量中的URL/URI過濾流量。經(jīng)過層908的過濾的流量傳遞到層910。在層910,可以基于應(yīng)用層消息(包括頭部和內(nèi)容)處理流量。例如,消息內(nèi)的XPath內(nèi)容識別技術(shù)可以用于在層910處理流量。AONS刀片可以執(zhí)行層910的處理。從而,所有網(wǎng)絡(luò)流量的選定子集都可以被提供給AONS刀片。
在顯式模式中,應(yīng)用能注意到AONS的存在。消息顯式地去往AONS節(jié)點(diǎn)。應(yīng)用可以利用AONP與AONS通信。AONS可以執(zhí)行服務(wù)虛擬化和目的地選擇。
在代理模式中,應(yīng)用不是明確地注意到AONS的存在。消息是去往其最終目的地(即,應(yīng)用)的。然而,客戶端應(yīng)用被配置為經(jīng)由代理模式引導(dǎo)流量。
3.4.9AONS消息路由AONS中的消息管理的組件可以從兩個角度來看節(jié)點(diǎn)視角和云視角。
圖10是圖示了根據(jù)云視角AONS云1010內(nèi)的消息路徑的圖??蛻舳藨?yīng)用1004發(fā)送消息到AONS客戶端代理(CP)1006。如果AONS CP1006不存在,則客戶端應(yīng)用1004可以發(fā)送消息到AONS服務(wù)器代理(SP)1008。該消息在AONS CP 1006處被處理。如果消息正進(jìn)入AONS云1010,則AONS CP 1006將消息變換為AONP格式。
在AONS云1010內(nèi),消息被利用AONP路由。從而,利用AONP,消息可以被從AONS CP 1006路由到AONS路由器1012,或者從AONSCP 1006路由到AONS SP 1008,或者從AONS路由器1012路由到另一AONS路由器,或者從AONS路由器1012路由到AONS SP 1008。在AONS節(jié)點(diǎn)處處理的消息被以AONP格式處理。
當(dāng)消息到達(dá)AONS SP 1008時,AONS SP 1008將消息變換為服務(wù)器應(yīng)用1014所使用的消息格式。AONS SP 1008利用服務(wù)器應(yīng)用1014的消息協(xié)議將消息路由到服務(wù)器應(yīng)用1014?;蛘?,如果AONS SP 1008不存在,則AONS CP 1006可以將消息路由到服務(wù)器應(yīng)用1014。
AONS云1010內(nèi)的消息處理的細(xì)節(jié)可以經(jīng)由以下角度來理解請求/響應(yīng)消息流、單向消息流、具有可靠傳遞的消息流、節(jié)點(diǎn)到節(jié)點(diǎn)通信以及多播公布-訂購。
圖11A和圖11B是圖示了請求/響應(yīng)消息流的圖。參考圖11A,在標(biāo)號1處,發(fā)送應(yīng)用1102向接收應(yīng)用1104發(fā)送消息。在標(biāo)號2處,AEP CP1106截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號3處,AEP CP 1106將AONP消息發(fā)送到AONS路由器1108。在標(biāo)號4處,AONS路由器1108接收AONP消息。在標(biāo)號5處,AONS路由器1108將AONP消息發(fā)送到AEP SP 1110。在標(biāo)號6處,AEP SP 1110接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號7處,AEPSP 1110將消息發(fā)送到接收應(yīng)用1104。
參考圖11B,在標(biāo)號8處,接收應(yīng)用1104向發(fā)送應(yīng)用1102發(fā)送響應(yīng)消息。在標(biāo)號9處,AEP SP 1110截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號10處,AEP SP 1110將AONP消息發(fā)送到AONS路由器1108。在標(biāo)號11處,AONS路由器1108接收AONP消息。在標(biāo)號12處,AONS路由器1108將AONP消息發(fā)送到AEP CP 1106。在標(biāo)號13處,AEP CP 1106接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號14處,AEP CP 1106將消息發(fā)送到發(fā)送應(yīng)用1102。從而,請求被從發(fā)送應(yīng)用1102路由到接收應(yīng)用1104,而響應(yīng)被從接收應(yīng)用1104路由到發(fā)送應(yīng)用1102。
圖12A和12B是圖示了替換的請求/響應(yīng)消息流的圖。圖12A示出了從發(fā)送應(yīng)用1202到接收應(yīng)用1204消息可能采取的三種可能路由。根據(jù)第一路由,發(fā)送應(yīng)用1202向接收應(yīng)用1204發(fā)送消息,但是AEP CP 1206截取消息,并將消息發(fā)送到接收應(yīng)用1204。根據(jù)第二路由,發(fā)送應(yīng)用1202向接收應(yīng)用1204發(fā)送消息,但是AEP CP 1206截取消息,將消息封裝在AONP消息內(nèi),并將AONP消息發(fā)送到AEP SP 1208,AEP SP 1208從AONP消息中解封出消息,并將消息發(fā)送到接收應(yīng)用1204。根據(jù)第三路由,發(fā)送應(yīng)用1202向接收應(yīng)用1204發(fā)送消息,但是AEP SP 1208截取消息,并將消息發(fā)送到接收應(yīng)用1204。
圖12B示出了從接收應(yīng)用1204到發(fā)送應(yīng)用1202向應(yīng)消息可能采取的三種可能路由。根據(jù)第一路由,接收應(yīng)用1204向發(fā)送應(yīng)用1202發(fā)送消息,但是AEP CP 1206截取消息,并將消息發(fā)送到發(fā)送應(yīng)用1202。根據(jù)第二路由,接收應(yīng)用1204向發(fā)送應(yīng)用1202發(fā)送消息,但是AEP SP 1208截取消息,將消息封裝在AONP消息內(nèi),并將AONP消息發(fā)送到AEP CP1206,AEP CP 1206從AONP消息中解封出消息,并將消息發(fā)送到發(fā)送應(yīng)用1202。根據(jù)第三路由,接收應(yīng)用1204向發(fā)送應(yīng)用1202發(fā)送消息,但是AEP SP 1208截取消息,并將消息發(fā)送到發(fā)送應(yīng)用1202。
圖13是圖示了單向消息流的圖。在標(biāo)號1處,發(fā)送應(yīng)用1302向接收應(yīng)用1304發(fā)送消息。在標(biāo)號2處,AEP CP 1306截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號3處,AEP CP 1306將ACK(確認(rèn))發(fā)回到發(fā)送應(yīng)用1302。在標(biāo)號4處,AEP CP 1306將AONP消息發(fā)送到AONS路由器1308。在標(biāo)號5處,AONS路由器1308接收AONP消息。在標(biāo)號6處,AONS路由器1308將AONP消息發(fā)送到AEP SP 1310。在標(biāo)號7處,AEP SP 1310接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號8處,AEP SP 1310將消息發(fā)送到接收應(yīng)用1304。
圖14是圖示了替換的單向消息流的圖。圖14示出了從發(fā)送應(yīng)用1402到接收應(yīng)用1404消息可能采取的三種可能路由。根據(jù)第一路由,發(fā)送應(yīng)用1402向接收應(yīng)用1404發(fā)送消息,但是AEP CP 1406截取消息,并將消息發(fā)送到接收應(yīng)用1404。AEP CP 1406將ACK(確認(rèn))發(fā)送到發(fā)送應(yīng)用1402。根據(jù)第二路由,發(fā)送應(yīng)用1402向接收應(yīng)用1404發(fā)送消息,但是AEP CP 1406截取消息,將消息封裝在AONP消息內(nèi),并將AONP消息發(fā)送到AEP SP 1408,AEP SP 1408從AONP消息中解封出消息,并將消息發(fā)送到接收應(yīng)用1404。同樣,AEP CP 1406將ACK發(fā)送到發(fā)送應(yīng)用1402。根據(jù)第三路由,發(fā)送應(yīng)用1402向接收應(yīng)用1404發(fā)送消息,但是AEP SP 1408截取消息,并將消息發(fā)送到接收應(yīng)用1404。在這種情況下,AEP SP 1408將ACK發(fā)送到發(fā)送應(yīng)用1402。從而,當(dāng)AEP截取消息時,截取AEP將ACK發(fā)送到發(fā)送應(yīng)用。
根據(jù)一個實施例,AONP被用在與下一跳的節(jié)點(diǎn)到節(jié)點(diǎn)通信中。在一個實施例中,AONP使用HTTP。AONP頭部可以包括HTTP或TCP頭部。AONP可以指示RM ACK、QoS級別、消息優(yōu)先級和消息上下文(連接、消息序列號、消息上下文標(biāo)識符、入口節(jié)點(diǎn)信息等等)。實際消息有效載荷在消息主體中。在AONS節(jié)點(diǎn)之間可以使用異步消息傳送。AONS可以經(jīng)由靜態(tài)配置(下一跳)和/或經(jīng)由動態(tài)發(fā)現(xiàn)和路由通告(“懶惰”(lazy)發(fā)現(xiàn))進(jìn)行路由和節(jié)點(diǎn)發(fā)現(xiàn)。
圖15A和15B是圖示了具有可靠消息傳遞的請求/響應(yīng)消息流的圖。參考圖15A,在標(biāo)號1處,發(fā)送應(yīng)用1502向接收應(yīng)用1504發(fā)送消息。在標(biāo)號2處,AEP CP 1506截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號3處,AEP CP 1506將消息保存到數(shù)據(jù)存儲裝置1512。從而,如果在發(fā)送消息時出現(xiàn)任何問題,則AEP CP 1506可以重發(fā)存儲在數(shù)據(jù)存儲裝置1512中的消息的拷貝。
在標(biāo)號4處,AEP CP 1506將AONP消息發(fā)送到AONS路由器1508。在標(biāo)號5處,AONS路由器1508接收AONP消息。在標(biāo)號6處,AONS路由器1508將AONP消息發(fā)送到AEP SP 1510。在標(biāo)號7處,AEP SP 1510接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號8處,AEP SP 1510將消息發(fā)送到接收應(yīng)用1504。
在標(biāo)號9處,AEP SP 1510將可靠消息傳送(RM)確認(rèn)(ACK)發(fā)送到AONS路由器1508。在標(biāo)號10處,AONS路由器1508接收RMACK,并將RM ACK發(fā)送到AEP CP 1506。在標(biāo)號11處,AEP CP 1506接收RM ACK,并且作為響應(yīng),刪除存儲在數(shù)據(jù)存儲裝置1512中的消息拷貝。由于消息的傳遞已被確認(rèn),因此不再需要在數(shù)據(jù)存儲裝置1512中存儲消息的拷貝。或者,如果AEP CP 1506沒有在指定時間段內(nèi)接收到RM ACK,則AEP CP 1506重發(fā)消息。
參考圖15B,在標(biāo)號12處,接收應(yīng)用1504向發(fā)送應(yīng)用1502發(fā)送響應(yīng)消息。在標(biāo)號13處,AEP SP 1510截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號14處,AEP SP 1510將AONP消息發(fā)送到AONS路由器1508。在標(biāo)號15處,AONS路由器1508接收AONP消息。在標(biāo)號16處,AONS路由器1508將AONP消息發(fā)送到AEP CP 1506。在標(biāo)號17處,AEP CP 1506接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號18處,AEP CP 1506將消息發(fā)送到發(fā)送應(yīng)用1502。
圖16是圖示了具有可靠消息傳遞的單向消息流的圖。在標(biāo)號1處,發(fā)送應(yīng)用1602向接收應(yīng)用1604發(fā)送消息。在標(biāo)號2處,AEP CP 1606截取消息,并向消息添加AONP頭部,形成AONP消息。在標(biāo)號3處,AEPCP 1606將消息保存到數(shù)據(jù)存儲裝置1612。從而,如果在發(fā)送消息時出現(xiàn)任何問題,則AEP CP 1606可以重發(fā)存儲在數(shù)據(jù)存儲裝置1612中的消息的拷貝。在標(biāo)號4處,AEP CP 1606將ACK(確認(rèn))發(fā)回到發(fā)送應(yīng)用1602。在標(biāo)號5處,AEP CP 1606將AONP消息發(fā)送到AONS路由器1608。在標(biāo)號6處,AONS路由器1608接收AONP消息。在標(biāo)號7處,AONS路由器1608將AONP消息發(fā)送到AEP SP 1610。在標(biāo)號8處,AEPSP 1610接收AONP消息,并從消息中去除AONP頭部,從而解封裝消息。在標(biāo)號9處,AEP SP 1610將消息發(fā)送到接收應(yīng)用1604。
在標(biāo)號10處,AEP SP 1610將可靠消息傳送(RM)確認(rèn)(ACK)發(fā)送到AONS路由器1608。在標(biāo)號11處,AONS路由器1608接收RMACK,并將RM ACK發(fā)送到AEP CP 1606。在標(biāo)號12處,AEP CP 1606接收RM ACK,并且作為響應(yīng),刪除存儲在數(shù)據(jù)存儲裝置1612中的消息拷貝。由于消息的傳遞已被確認(rèn),因此不再需要在數(shù)據(jù)存儲裝置1612中存儲消息的拷貝。或者,如果AEP CP 1606沒有在指定時間段內(nèi)接收到RM ACK,則AEP CP 1606重發(fā)消息。如果重發(fā)在超時時間段內(nèi)沒有成功,則“傳遞故障”通知消息將被發(fā)送到原始發(fā)送應(yīng)用。
圖17是圖示了同步請求和響應(yīng)消息的圖。在標(biāo)號1處,AONS節(jié)點(diǎn)1704從客戶端1702以隱式或顯式模式接收請求消息。在標(biāo)號2處,AONS節(jié)點(diǎn)1704讀取消息,選擇并執(zhí)行流,并向消息添加AONP頭部。在標(biāo)號3處,AONS節(jié)點(diǎn)1704將消息發(fā)送到下一跳節(jié)點(diǎn),AONS節(jié)點(diǎn)1706。在標(biāo)號4處,AONS節(jié)點(diǎn)1706讀取消息,選擇并執(zhí)行流,并從消息中去除AONP頭部,從而根據(jù)服務(wù)器1708所期望的消息格式對消息格式化。在標(biāo)號5處,AONS節(jié)點(diǎn)1706將消息發(fā)送到消息的目的地,服務(wù)器1708。
在標(biāo)號6處,AONS節(jié)點(diǎn)1706在AONS節(jié)點(diǎn)1706發(fā)送請求消息的同一連接上接收來自服務(wù)器1708的響應(yīng)消息。在標(biāo)號7處,AONS節(jié)點(diǎn)1706讀取消息,將消息與請求消息相關(guān),執(zhí)行流,并向消息添加AONP頭部。在標(biāo)號8處,AONS節(jié)點(diǎn)1706將消息發(fā)送到AONS節(jié)點(diǎn)1704。在標(biāo)號9處,AONS節(jié)點(diǎn)1704讀取消息,將消息與請求消息相關(guān),執(zhí)行流,并從消息中去除AONP頭部,從而根據(jù)客戶端1702所期望的消息格式對消息格式化。在標(biāo)號10處,AONS節(jié)點(diǎn)1704在客戶端1702向AONS節(jié)點(diǎn)1704發(fā)送請求消息的同一連接上將消息發(fā)送到客戶端1702。
圖18是圖示了樣本單向端到端消息流的圖。在標(biāo)號1處,AONS節(jié)點(diǎn)1804從客戶端1802以隱式或顯式模式接收請求消息。在標(biāo)號2處,AONS節(jié)點(diǎn)1804讀取消息,選擇并執(zhí)行流,并向消息添加AONP頭部。在標(biāo)號3處,AONS節(jié)點(diǎn)1804將確認(rèn)發(fā)送到客戶端1802。在標(biāo)號4處,AONS節(jié)點(diǎn)1804將消息發(fā)送到下一跳節(jié)點(diǎn),AONS節(jié)點(diǎn)1806。在標(biāo)號5處,AONS節(jié)點(diǎn)1806讀取消息,選擇并執(zhí)行流,并從消息中去除AONP頭部,從而根據(jù)服務(wù)器1808所期望的消息格式對消息格式化。在標(biāo)號6處,AONS節(jié)點(diǎn)1806將消息發(fā)送到消息的目的地,服務(wù)器1808。
根據(jù)節(jié)點(diǎn)視角,AONS節(jié)點(diǎn)內(nèi)的消息生存周期涉及入口/出口處理、消息處理、消息執(zhí)行控制和流執(zhí)行。
圖19是圖示了AONS節(jié)點(diǎn)1900內(nèi)的消息處理模塊的圖。AONS節(jié)點(diǎn)1900包括AONS消息執(zhí)行控制器(AMEC)框架1902、策略管理子系統(tǒng)1904、AONS消息處理底層結(jié)構(gòu)子系統(tǒng)1906和AOSS 1908。AMEC框架1902包括流管理子系統(tǒng)1910、bladeletTM執(zhí)行子系統(tǒng)1912和消息執(zhí)行控制器1914。策略管理子系統(tǒng)1904與流管理子系統(tǒng)1910通信。AOSS 1908與bladeletTM執(zhí)行子系統(tǒng)1912和AONS消息處理底層結(jié)構(gòu)子系統(tǒng)1906通信。AONS消息處理底層結(jié)構(gòu)子系統(tǒng)1906與消息執(zhí)行控制器1914通信。流管理子系統(tǒng)1910、bladeletTM執(zhí)行子系統(tǒng)和管理執(zhí)行控制器1914都彼此通信。
圖20是圖示了AONS節(jié)點(diǎn)1900內(nèi)的消息處理的圖。AMEC框架1902是基于事件的多線程機(jī)制,以使吞吐量最大化,同時使AONS節(jié)點(diǎn)中的消息延遲最小化。根據(jù)一個實施例,對接收的分組重定向,執(zhí)行TCP終止,執(zhí)行SSL終止(如果需要的話),執(zhí)行第5層協(xié)議適配和訪問方法處理(使用諸如HTTP、SMTP、FTP、JMS/MQ、JMS/RV、JDBC等之類的訪問方法),形成AONS消息(用于內(nèi)部AONS處理的規(guī)范化消息格式),對消息排隊,基于處理線程可用性使消息出隊列,選擇流(或規(guī)則),執(zhí)行所選的流,將消息轉(zhuǎn)發(fā)到消息的目的地,并且對于基于請求/響應(yīng)的語義,經(jīng)由維護(hù)在AEMC框架1902內(nèi)的連接/會話狀態(tài)處理響應(yīng)。
在一個實施例中,執(zhí)行流包括執(zhí)行流的每一步(即,bladeletTM/動作)。如果bladeletTM運(yùn)行在獨(dú)立上下文中,則AMEC框架1902可以進(jìn)入到bladeletTM特定的隊列中排隊,并且基于線程可用性,從每個bladeletTM隊列中使適當(dāng)?shù)腷ladeletTM狀態(tài)出隊。
3.4.10流、bladeletsTM和scriptletsTM根據(jù)一個實施例,流串與bladeletsTM(即,動作)一起定制消息處理邏輯。ScriptletsTM提供了一種用于供客戶和伙伴定制或擴(kuò)展本地AONS功能的機(jī)制。某些bladeletsTM和服務(wù)可以利用AONS節(jié)點(diǎn)提供。
3.4.11AONS服務(wù)如前所述,AONS可以提供一組核心服務(wù)以形成可以經(jīng)由AONS節(jié)點(diǎn)傳遞的增值功能的下層基礎(chǔ)。在一個實施例中,這些服務(wù)包括安全性服務(wù)、標(biāo)準(zhǔn)壓縮服務(wù)、delta壓縮服務(wù)、緩存服務(wù)、消息記錄服務(wù)、策略管理服務(wù)(策略管理器)、可靠消息傳送服務(wù)、公布/訂購服務(wù)、活動性監(jiān)視服務(wù)、消息分發(fā)服務(wù)、XML解析服務(wù)、XSLT變換服務(wù)和QoS管理服務(wù)。在一個實施例中,每種AONS核心服務(wù)被實現(xiàn)在服務(wù)框架的上下文中。
3.4.12AONS配置和管理在一個實施例中,AONS節(jié)點(diǎn)被提供和配置有一類應(yīng)用消息,從而其強(qiáng)制施行代表應(yīng)用端點(diǎn)、商業(yè)領(lǐng)域、安全領(lǐng)域、管理領(lǐng)域和網(wǎng)絡(luò)領(lǐng)域以聲明形式定義的策略。此外,對于給定部署情形,AONS節(jié)點(diǎn)利用不同軟件和硬件子系統(tǒng)的可配置性和可擴(kuò)展性促進(jìn)了不同產(chǎn)品功能特征的靈活構(gòu)成和定制。由于AONS功能的應(yīng)用和網(wǎng)絡(luò)實施例,AONS體系結(jié)構(gòu)框架應(yīng)當(dāng)有效地且統(tǒng)一地解決各種系統(tǒng)組件和其環(huán)境的可配置性、可管理性以及可監(jiān)視性這些不同方面的問題。
AONS配置和管理框架是基于ISO網(wǎng)絡(luò)管理論壇所推薦的用于網(wǎng)絡(luò)管理的五個功能區(qū)域(“FCAPS”)的。這些功能區(qū)域包括故障管理、配置管理、會計(accounting)管理、性能管理和安全性管理。故障管理是發(fā)現(xiàn)、隔離以及固定AONS節(jié)點(diǎn)中的問題或故障的進(jìn)程。配置管理是找到并設(shè)置AONS節(jié)點(diǎn)的進(jìn)程。會計管理涉及跟蹤AONS資源的使用和利用率以推動其正確使用。性能管理是測量AONS系統(tǒng)組件和整個系統(tǒng)的性能的進(jìn)程。安全性管理控制對AONS系統(tǒng)上的信息的訪問。許多上述功能是經(jīng)由作為整個AONS解決方案的一部分的適當(dāng)儀器、程序接口和工具處理的。
圖21、圖22和圖23是圖示了AONS配置和管理框架內(nèi)的實體的圖。AONS管理控制臺(AMC)是用于AONS策略、流、scriptletsTM和其他可管理實體的配置和管理的中央集線器??膳渲脭?shù)據(jù)被從AONS設(shè)計工作室(流工具)推到AMC,然后AONS管理員可以將該數(shù)據(jù)提供給生產(chǎn)部署。還提供了促進(jìn)進(jìn)程以經(jīng)由對生產(chǎn)展示進(jìn)程的分段/證明的開發(fā)來測試和驗證改變。AONS管理代理(AMA)駐留在個別AONS刀片上,并且為AONS提供本地控制和分發(fā)能力。AMA與AMC交互以得到更新。AMA采取適當(dāng)?shù)膭幼饕詫崿F(xiàn)改變。AMA還用于收集監(jiān)視數(shù)據(jù)以報告給第三方控制臺。
3.4.13AONS監(jiān)視在一個實施例中,AONS被配置為支持定義好的事件以用于適當(dāng)?shù)膶?nèi)部處理活動性的監(jiān)視和可視性。AONS節(jié)點(diǎn)的監(jiān)視可以經(jīng)由預(yù)先定義的運(yùn)行在每個AONS節(jié)點(diǎn)上的JMX MBean代理實現(xiàn)。該代理與PC聯(lián)合體上的遠(yuǎn)程JMX Mbean服務(wù)器通信。AONS MIB被均衡以SNMP集成到第三方控制臺。圖24是圖示了AONS監(jiān)視體系結(jié)構(gòu)的圖。
3.4.14AONS工具在一個實施例中,提供了下面的工具設(shè)置以用于AONS的各種功能需要設(shè)計工作室、管理工作室和消息日志查看器。設(shè)計工作室是用于設(shè)計流并應(yīng)用消息分類以及映射策略的可視工具。管理工作室是基于web的用于執(zhí)行所有管理和配置功能的接口。消息日志查看器是分析消息流量、模式和示蹤信息的可視接口。
4.0實現(xiàn)機(jī)制-硬件概述圖5是圖示了可以在其上實現(xiàn)本發(fā)明的實施例的計算機(jī)系統(tǒng)500的框圖。優(yōu)選實施例是利用運(yùn)行在諸如代理設(shè)備之類的網(wǎng)絡(luò)元件上的一個或多個計算機(jī)程序?qū)崿F(xiàn)的。從而,在該實施例中,計算機(jī)系統(tǒng)500是諸如負(fù)載平衡器之類的代理設(shè)備。
計算機(jī)系統(tǒng)500包括總線502或用于傳輸信息的其他通信機(jī)構(gòu),以及與總線502相耦合用于處理信息的處理器504。計算機(jī)系統(tǒng)500還包括主存儲器506,例如隨機(jī)訪問存儲器(RAM)、閃存或其他動態(tài)存儲設(shè)備,其耦合到總線502,用于存儲信息和由處理器504執(zhí)行的指令。主存儲器506還可以用于存儲在處理器504執(zhí)行指令的執(zhí)行期間的臨時變量或其他中間信息。計算機(jī)系統(tǒng)500還包括只讀存儲器(ROM)508或其他靜態(tài)存儲設(shè)備,其耦合到總線502,用于存儲靜態(tài)信息和處理器504的指令。提供了存儲設(shè)備510,例如磁盤、閃存或光盤,其耦合到總線502,用于存儲信息和指令。
通信接口518可以耦合到總線502,用于向處理器504傳輸信息和命令選擇。接口518是傳統(tǒng)的串行接口,例如RS-232或RS-322接口。外部終端512或其他計算機(jī)系統(tǒng)連接到計算機(jī)系統(tǒng)500,并且利用接口514向其提供命令。運(yùn)行在計算機(jī)系統(tǒng)500中的固件或軟件提供終端接口或基于字符的命令接口,以使得可以向計算機(jī)系統(tǒng)給予外部命令。
交換系統(tǒng)516耦合到總線502,并且具有輸入接口514和到一個或多個外部網(wǎng)絡(luò)元件的輸出接口519。外部網(wǎng)絡(luò)元件可以包括耦合到一個或多個主機(jī)524的本地網(wǎng)絡(luò)522,或者具有一個或多個服務(wù)器530的全球網(wǎng)絡(luò)(例如因特網(wǎng)528)。交換系統(tǒng)516根據(jù)公知的預(yù)定協(xié)議和慣例將到達(dá)輸入接口514的信息流量交換到輸出接口519。例如,交換系統(tǒng)516與處理器504協(xié)同操作可以確定到達(dá)輸入接口514的數(shù)據(jù)分組的目的地,并利用輸出接口519將其發(fā)送到正確目的地。目的地可以包括主機(jī)524、服務(wù)器530、其他末端站、或本地網(wǎng)絡(luò)522或因特網(wǎng)528中的其他路由和交換設(shè)備。
本發(fā)明涉及使用計算機(jī)系統(tǒng)500來避免在計算機(jī)系統(tǒng)500上存儲客戶端狀態(tài)。根據(jù)本發(fā)明的一個實施例,計算機(jī)系統(tǒng)500響應(yīng)于處理器504執(zhí)行包含在主存儲器506中的一條或多條指令的一個或多個序列而提供這種更新。這些指令可以從另一計算機(jī)可讀介質(zhì)(例如存儲設(shè)備510)讀取到主存儲器506中。包含在主存儲器506中的指令序列的執(zhí)行使得處理器504執(zhí)行這里描述的進(jìn)程步驟。多處理配置中的一個或多個處理器也可以用于執(zhí)行包含在主存儲器506中的指令序列。在替換實施例中,硬連線電路可以用于替代軟件指令或者與軟件指令相組合以實現(xiàn)本發(fā)明。從而,本發(fā)明的實施例并不限于硬件電路和軟件的任何特定組合。
這里所用的術(shù)語“計算機(jī)可讀介質(zhì)”指參與向處理器504提供指令以供執(zhí)行的任何介質(zhì)。這種介質(zhì)可以采取很多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)包括例如光盤或磁盤,例如存儲設(shè)備510。易失性介質(zhì)包括動態(tài)存儲器,例如主存儲器506。傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括包含總線502的線路。傳輸介質(zhì)還可以采取聲波或光波的形式,例如在無線電波和紅外數(shù)據(jù)通信期間生成的聲波或光波。
計算機(jī)可讀介質(zhì)的公共形式包括例如軟盤、柔性盤、硬盤、磁帶或任何其他磁介質(zhì)、CD-ROM、任何其他光介質(zhì)、穿孔卡、紙帶、任何其他具有孔圖案的物理介質(zhì)、RAM、PROM、EPROM、FLASH-EPROM、任何其他存儲器芯片或盒、下文中描述的載波、或計算機(jī)可以讀取的任何其他介質(zhì)。
各種形式的計算機(jī)可讀介質(zhì)都可以用于運(yùn)送一條或多條指令的一個或多個序列到處理器504以供執(zhí)行。例如,該指令可以首先承載在遠(yuǎn)程計算機(jī)的磁盤上。遠(yuǎn)程計算機(jī)可以將指令加載到其動態(tài)存儲器中,并利用調(diào)制解調(diào)器通過電話線發(fā)送指令。計算機(jī)系統(tǒng)500本地的調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù),并使用紅外發(fā)送器來將數(shù)據(jù)轉(zhuǎn)換為紅外信號。耦合到總線502的紅外檢測器可以接收在紅外信號中承載的數(shù)據(jù),并將數(shù)據(jù)放到總線502上??偩€502將數(shù)據(jù)運(yùn)送到主存儲器506,處理器504從主存儲器506取得指令并執(zhí)行指令。主存儲器506接收的指令可以可選地在處理器504的執(zhí)行之前或之后存儲在存儲設(shè)備510上。
通信接口518還提供到網(wǎng)絡(luò)鏈路520的雙向數(shù)據(jù)通信耦合,網(wǎng)絡(luò)鏈路520連接到本地網(wǎng)絡(luò)522。例如,通信接口518可以是集成業(yè)務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)卡或調(diào)制解調(diào)器,以提供到相應(yīng)類型電話線的數(shù)據(jù)通信連接。又例如,通信接口518可以是局域網(wǎng)(LAN)卡以提供到兼容LAN的數(shù)據(jù)通信連接。還可以實現(xiàn)無線鏈路。在任何這種實現(xiàn)方式中,通信接口518發(fā)送并接收電的、電磁的或光信號,這些信號承載了代表各類信息的數(shù)字?jǐn)?shù)據(jù)流。
網(wǎng)絡(luò)鏈路520一般通過一個或多個網(wǎng)絡(luò)提供到其他數(shù)據(jù)設(shè)備的數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈路520可以通過本地網(wǎng)絡(luò)522提供到主機(jī)計算機(jī)524或由因特網(wǎng)服務(wù)提供商(ISP)526操作的數(shù)據(jù)設(shè)備的連接。ISP 526又通過全球分組數(shù)據(jù)通信網(wǎng)絡(luò)(現(xiàn)在通常稱為“因特網(wǎng)”)528提供數(shù)據(jù)通信服務(wù)。本地網(wǎng)絡(luò)522和因特網(wǎng)528都使用承載數(shù)字?jǐn)?shù)據(jù)流的電的、電磁的或光信號。經(jīng)過各種網(wǎng)絡(luò)的信號以及網(wǎng)絡(luò)鏈路520上的并且通信接口518的信號(這些信號承載去往和來自計算機(jī)系統(tǒng)500的數(shù)字?jǐn)?shù)據(jù))是傳輸信息的載波的示例性形式。
計算機(jī)系統(tǒng)500可以通過(一個或多個)網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路520和通信接口518發(fā)送消息并接收數(shù)據(jù),包括程序代碼。在因特網(wǎng)示例中,服務(wù)器530可能通過因特網(wǎng)528、ISP 526、本地網(wǎng)絡(luò)522和通信接口518發(fā)送應(yīng)用程序所請求的代碼。根據(jù)本發(fā)明,一個這樣下載的程序避免了在服務(wù)器上存儲客戶端狀態(tài),如前所述。
處理器504可以在接收時執(zhí)行所接收的代碼和/或存儲在存儲設(shè)備510或其他非易失性存儲裝置中以供以后執(zhí)行。以這種方式,計算機(jī)系統(tǒng)500可以獲得載波形式的應(yīng)用代碼。
5.0擴(kuò)展和替換在前述說明書中,已經(jīng)參考本發(fā)明的特定實施例描述了本發(fā)明。但是,應(yīng)當(dāng)清楚,可以對本發(fā)明進(jìn)行各種修改和改變,而不脫離本發(fā)明的更寬廣的精神和范圍。因此,說明書和附圖應(yīng)被當(dāng)作是說明性的,而非限制性的。
權(quán)利要求
1.一種在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的方法,所述方法包括以下由計算機(jī)實現(xiàn)的步驟在網(wǎng)絡(luò)元件處接收一個或多個數(shù)據(jù)分組;以及在所述網(wǎng)絡(luò)元件處對包含在所述一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行特定功能;其中所述特定功能是一組功能之一,這組功能包括加密功能、解密功能、摘要功能、認(rèn)證功能、授權(quán)功能和審計功能。
2.如權(quán)利要求1所述的方法,還包括基于包含在所述一個或多個分組中的信息確定消息分類;其中執(zhí)行所述特定功能的步驟包括執(zhí)行與所述消息分類相關(guān)聯(lián)的功能。
3.如權(quán)利要求2所述的方法,其中所述信息包括IP源地址、IP目的地地址、TCP源端口和TCP目的地端口中的至少一個。
4.如權(quán)利要求2所述的方法,其中確定所述消息分類的步驟包括基于所述應(yīng)用層消息的至少一部分的內(nèi)容確定所述消息分類。
5.如權(quán)利要求1所述的方法,其中執(zhí)行所述特定功能的步驟包括利用與應(yīng)用相關(guān)聯(lián)的密碼密鑰執(zhí)行所述特定功能,其中所述應(yīng)用是(a)發(fā)送所述一個或多個數(shù)據(jù)分組的應(yīng)用和(b)所述一個或多個數(shù)據(jù)分組去往的應(yīng)用之一。
6.如權(quán)利要求5所述的方法,其中所述密碼密鑰存儲在所述網(wǎng)絡(luò)元件處。
7.如權(quán)利要求5所述的方法,其中所述密碼密鑰由與所述網(wǎng)絡(luò)元件相分離的中央控制臺管理,其中所述中央控制臺分發(fā)密碼密鑰并管理密碼密鑰的生存周期。
8.如權(quán)利要求1所述的方法,其中所述一個或多個數(shù)據(jù)分組去往容宿在除了所述網(wǎng)絡(luò)元件之外的某一設(shè)備上的應(yīng)用。
9.如權(quán)利要求1所述的方法,還包括從所述網(wǎng)絡(luò)元件發(fā)送包含所述應(yīng)用層消息的至少經(jīng)加密部分的一個或多個數(shù)據(jù)分組,其中由所述網(wǎng)絡(luò)元件接收的一個或多個數(shù)據(jù)分組包含所述經(jīng)加密部分的未經(jīng)加密版本。
10.如權(quán)利要求1所述的方法,還包括從所述網(wǎng)絡(luò)元件發(fā)送包含所述應(yīng)用層消息的至少經(jīng)解密部分的一個或多個數(shù)據(jù)分組,其中由所述網(wǎng)絡(luò)元件接收的一個或多個數(shù)據(jù)分組包含所述經(jīng)解密部分的經(jīng)加密版本。
11.如權(quán)利要求1所述的方法,其中所述網(wǎng)絡(luò)元件是網(wǎng)絡(luò)交換機(jī)或路由器。
12.如權(quán)利要求1所述的方法,還包括在所述網(wǎng)絡(luò)元件處基于所述消息生成摘要;其中執(zhí)行所述特定功能的步驟包括對所述摘要加密,從而對所述消息簽名。
13.如權(quán)利要求1所述的方法,還包括在所述網(wǎng)絡(luò)元件處基于所述消息生成第一摘要;以及將所述第一摘要與第二摘要相比較,從而驗證所述消息;其中執(zhí)行所述特定功能的步驟包括對所述第二摘要解密。
14.如權(quán)利要求1所述的方法,其中對所述應(yīng)用層消息的至少一部分執(zhí)行所述特定功能的步驟包括對XML文檔或非XML文檔中位于用戶指定路徑上的應(yīng)用層消息的一部分執(zhí)行所述特定功能。
15.如權(quán)利要求1所述的方法,其中所述應(yīng)用層消息包括多部分MIME消息,并且所述方法還包括分別獨(dú)立地處理所述多部分MIME消息的每一部分。
16.如權(quán)利要求1所述的方法,還包括從包含在所述一個或多個數(shù)據(jù)分組中的信息確定所述一個或多個數(shù)據(jù)分組的發(fā)送者或預(yù)期接收者的身份;其中執(zhí)行所述特定功能的步驟包括利用與所述身份相關(guān)聯(lián)的密鑰執(zhí)行所述功能。
17.如權(quán)利要求1所述的方法,還包括確定包含在所述一個或多個數(shù)據(jù)分組中的憑證的類型;基于所述憑證類型,從多個憑證存儲裝置中選擇與所述憑證類型相關(guān)聯(lián)的特定憑證存儲裝置;以及將所述憑證與存儲在所述特定憑證存儲裝置中的憑證相比較。
18.如權(quán)利要求1所述的方法,還包括確定包含在所述一個或多個數(shù)據(jù)分組中的憑證的類型;基于所述憑證類型,從多個目的地中選擇與所述憑證類型相關(guān)聯(lián)的特定目的地;以及向所述特定目的地發(fā)送所述應(yīng)用層消息的至少一部分。
19.如權(quán)利要求1所述的方法,還包括在所述網(wǎng)絡(luò)元件處對以下消息執(zhí)行功能,所述消息是請求消息、響應(yīng)消息、異常處理消息或由于發(fā)生在所述網(wǎng)絡(luò)元件上的事件或觸發(fā)而不在客戶端應(yīng)用和服務(wù)器應(yīng)用之間發(fā)送的消息。
20.如權(quán)利要求1所述的方法,還包括確定在所述應(yīng)用層消息中指定的特定內(nèi)容;確定所述特定內(nèi)容是否滿足一組約束;以及響應(yīng)于確定所述特定內(nèi)容滿足這組約束,執(zhí)行一個或多個指定動作。
21.如權(quán)利要求1所述的方法,還包括查找被映射到在所述應(yīng)用層消息中指定的用戶名令牌的安全性信息;以及代表發(fā)送應(yīng)用將所述安全性信息發(fā)送到接收應(yīng)用;其中所述安全性信息是證書或聲明。
22.如權(quán)利要求1所述的方法,還包括生成被映射到在所述應(yīng)用層消息中指定的用戶名令牌的安全性信息;以及代表發(fā)送應(yīng)用將所述安全性信息發(fā)送到接收應(yīng)用;其中所述安全性信息是證書或聲明。
23.如權(quán)利要求1所述的方法,還包括確定包含在所述應(yīng)用層消息中的第一聲明;確定包含在所述應(yīng)用層消息中的第二聲明,其中所述第二聲明不同于所述第一聲明,并且所述第二聲明是來自可信機(jī)構(gòu)的關(guān)于所述應(yīng)用層消息從其發(fā)源的應(yīng)用的權(quán)威證明;驗證所述第一聲明;以及驗證所述第二聲明。
24.如權(quán)利要求1所述的方法,還包括發(fā)送挑戰(zhàn)到應(yīng)用;接收發(fā)源于所述應(yīng)用的挑戰(zhàn)-響應(yīng);確定所述挑戰(zhàn)-響應(yīng)是否滿足所述挑戰(zhàn);以及響應(yīng)于確定所述挑戰(zhàn)-響應(yīng)滿足所述挑戰(zhàn),執(zhí)行一個或多個指定動作。
25.如權(quán)利要求1所述的方法,還包括利用第一應(yīng)用層協(xié)議和安全套接字層(SSL)協(xié)議發(fā)送所述應(yīng)用層消息的至少一部分;其中所述應(yīng)用層消息是在所述網(wǎng)絡(luò)元件處利用SSL協(xié)議和不同于所述第一應(yīng)用層協(xié)議的第二應(yīng)用層協(xié)議接收到的。
26.如權(quán)利要求1所述的方法,還包括利用安全套接字層(SSL)協(xié)議發(fā)送所述應(yīng)用層消息的至少一部分;其中所述應(yīng)用層消息是在所述網(wǎng)絡(luò)元件處作為明文被接收的。
27.如權(quán)利要求1所述的方法,還包括作為明文發(fā)送所述應(yīng)用層消息的至少一部分;其中所述應(yīng)用層消息是在所述網(wǎng)絡(luò)元件處利用安全套接字層(SSL)協(xié)議接收到的。
28.一種在網(wǎng)絡(luò)元件中執(zhí)行認(rèn)證功能的方法,所述方法包括以下由計算機(jī)實現(xiàn)的步驟在網(wǎng)絡(luò)元件處接收去往容宿在除了所述網(wǎng)絡(luò)元件之外的某一設(shè)備上的第一應(yīng)用的第一請求;響應(yīng)于接收到所述第一請求,將對認(rèn)證信息的第二請求發(fā)送到發(fā)送所述第一請求的第二應(yīng)用;在所述網(wǎng)絡(luò)元件處接收所述認(rèn)證信息;在所述網(wǎng)絡(luò)元件處確定所述認(rèn)證信息是否有效;以及響應(yīng)于確定所述認(rèn)證信息無效,阻止所述第一請求被發(fā)送到所述第一應(yīng)用。
29.如權(quán)利要求28所述的方法,還包括響應(yīng)于確定所述認(rèn)證信息有效,將所述第一請求發(fā)送到所述第一應(yīng)用。
30.如權(quán)利要求28所述的方法,其中確定所述認(rèn)證信息是否有效的步驟包括確定在(a)在所述認(rèn)證信息中指示的口令與(b)在所述認(rèn)證信息中指示的用戶標(biāo)識符之間是否存在映射。
31.如權(quán)利要求30所述的方法,其中確定所述映射是否存在的步驟包括確定所述映射是否存在于所述網(wǎng)絡(luò)元件外部的數(shù)據(jù)貯藏庫中。
32.如權(quán)利要求28所述的方法,還包括響應(yīng)于確定所述認(rèn)證信息有效,確定與在所述認(rèn)證信息中指示的用戶標(biāo)識符相關(guān)聯(lián)的一組許可;在所述網(wǎng)絡(luò)元件處接收所述第二應(yīng)用發(fā)送的第三請求;在所述網(wǎng)絡(luò)元件處根據(jù)這組許可確定所述第三請求是否被許可;響應(yīng)于根據(jù)這組許可確定所述第三請求不被許可,阻止所述第三請求被發(fā)送到所述第一應(yīng)用。
33.一種承載一個或多個指令序列的計算機(jī)可讀介質(zhì),所述指令序列用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能,所述指令當(dāng)被一個或多個處理器執(zhí)行時,使得所述一個或多個處理器執(zhí)行以下步驟在網(wǎng)絡(luò)元件處接收一個或多個數(shù)據(jù)分組;以及在所述網(wǎng)絡(luò)元件處對包含在所述一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行特定功能;其中所述特定功能是一組功能之一,這組功能包括加密功能、解密功能、摘要功能、認(rèn)證功能、授權(quán)功能和審計功能。
34.一種用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的裝置,包括用于在網(wǎng)絡(luò)元件處接收一個或多個數(shù)據(jù)分組的裝置;以及用于在所述網(wǎng)絡(luò)元件處對包含在所述一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行特定功能的裝置;其中所述特定功能是一組功能之一,這組功能包括加密功能、解密功能、摘要功能、認(rèn)證功能、授權(quán)功能和審計功能。
35.一種用于在網(wǎng)絡(luò)元件中執(zhí)行認(rèn)證功能的裝置,包括用于在網(wǎng)絡(luò)元件處接收去往容宿在除了所述網(wǎng)絡(luò)元件之外的某一設(shè)備上的第一應(yīng)用的第一請求的裝置;用于響應(yīng)于接收到所述第一請求,將對認(rèn)證信息的第二請求發(fā)送到發(fā)送所述第一請求的第二應(yīng)用的裝置;用于在所述網(wǎng)絡(luò)元件處接收所述認(rèn)證信息的裝置;用于在所述網(wǎng)絡(luò)元件處確定所述認(rèn)證信息是否有效的裝置;以及用于響應(yīng)于確定所述認(rèn)證信息無效,阻止所述第一請求被發(fā)送到所述第一應(yīng)用的裝置。
36.一種用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的裝置,包括耦合到數(shù)據(jù)網(wǎng)絡(luò)并且用于接收來自所述數(shù)據(jù)網(wǎng)絡(luò)的一個或多個分組流的網(wǎng)絡(luò)接口;處理器;一個或多個存儲的指令序列,所述指令序列當(dāng)被所述處理器執(zhí)行時,使得所述處理器執(zhí)行以下步驟在網(wǎng)絡(luò)元件處接收一個或多個數(shù)據(jù)分組;以及在所述網(wǎng)絡(luò)元件處對包含在所述一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行特定功能;其中所述特定功能是一組功能之一,這組功能包括加密功能、解密功能、摘要功能、認(rèn)證功能、授權(quán)功能和審計功能。
37.一種用于在網(wǎng)絡(luò)元件中執(zhí)行認(rèn)證功能的裝置,包括耦合到數(shù)據(jù)網(wǎng)絡(luò)并且用于接收來自所述數(shù)據(jù)網(wǎng)絡(luò)的一個或多個分組流的網(wǎng)絡(luò)接口;處理器;一個或多個存儲的指令序列,所述指令序列當(dāng)被所述處理器執(zhí)行時,使得所述處理器執(zhí)行以下步驟在網(wǎng)絡(luò)元件處接收去往容宿在除了所述網(wǎng)絡(luò)元件之外的某一設(shè)備上的第一應(yīng)用的第一請求;響應(yīng)于接收到所述第一請求,將對認(rèn)證信息的第二請求發(fā)送到發(fā)送所述第一請求的第二應(yīng)用;在所述網(wǎng)絡(luò)元件處接收所述認(rèn)證信息;在所述網(wǎng)絡(luò)元件處確定所述認(rèn)證信息是否有效;以及響應(yīng)于確定所述認(rèn)證信息無效,阻止所述第一請求被發(fā)送到所述第一應(yīng)用。
38.一種系統(tǒng),包括發(fā)送消息的第一應(yīng)用;第一網(wǎng)絡(luò)元件,其接收所述消息,對所述消息加密以產(chǎn)生經(jīng)加密消息,并發(fā)送所述經(jīng)加密消息;第二網(wǎng)絡(luò)元件,其接收所述經(jīng)加密消息,對所述經(jīng)加密消息解密以產(chǎn)生經(jīng)解密消息,并發(fā)送所述經(jīng)解密消息;以及接收所述經(jīng)解密消息的第二應(yīng)用。
39.如權(quán)利要求38所述的系統(tǒng),其中所述第一和第二網(wǎng)絡(luò)元件中的至少一個是網(wǎng)絡(luò)路由器。
全文摘要
公開了一種用于在網(wǎng)絡(luò)元件中對消息有效載荷執(zhí)行安全性功能的方法。根據(jù)一方面,網(wǎng)絡(luò)元件接收一個或多個數(shù)據(jù)分組。網(wǎng)絡(luò)元件對包含在一個或多個數(shù)據(jù)分組的一個或多個有效載荷部分中的應(yīng)用層消息的至少一部分執(zhí)行安全性功能。根據(jù)另一方面,網(wǎng)絡(luò)元件接收去往第一應(yīng)用的第一請求。網(wǎng)絡(luò)元件將對認(rèn)證信息的第二請求發(fā)送到發(fā)送第一請求的第二應(yīng)用。網(wǎng)絡(luò)元件接收認(rèn)證信息,并確定認(rèn)證信息是否有效。如果認(rèn)證信息無效,則網(wǎng)絡(luò)元件阻止第一請求被發(fā)送到第一應(yīng)用。
文檔編號H04L9/32GK101088245SQ200580041996
公開日2007年12月12日 申請日期2005年12月5日 優(yōu)先權(quán)日2004年12月7日
發(fā)明者桑迪普·庫馬爾, 蘇布爾曼尼恩·西尼瓦薩恩, 德凡奧斯·安思亞斯, 蘇布爾曼尼恩·N·耶爾, 克里斯多佛·R·韋伯爾 申請人:思科技術(shù)公司