新四季網

在網絡元件中對消息有效載荷執行安全性功能的製作方法

2023-06-02 18:54:21

專利名稱:在網絡元件中對消息有效載荷執行安全性功能的製作方法
技術領域:
本發明一般地涉及計算機網絡中的網絡元件,例如交換機和路由器。更具體而言,本發明涉及用於在網絡元件中對消息有效載荷執行安全性功能的方法和裝置。
背景技術:
這一部分中描述的方法可以實現,但是不一定是先前已想到或已實現的方法。因此,除非另外指出,否則這一部分中描述的方法不是該申請的權利要求的現有技術,並且也不應當因為被包括在這一部分中而看作是現有技術。
在商業到商業環境中,運行在計算機上的應用一般會與運行在其他計算機上的其他應用通信。例如,運行在計算機「X」上的應用「A」可能向運行在計算機「Y」上的應用「B」發送指示訂單的實質內容的消息。
計算機「X」可能遠離計算機「Y」。為了使計算機「X」發送消息到計算機「Y」,計算機「X」可能通過計算機網絡發送消息,計算機網絡例如是區域網(LAN)、廣域網(WAN)或網際網路,例如網際網路。為了通過這種網絡發送消息,計算機「X」可能使用一套通信協議。例如,計算機「X」可能使用諸如網際網路協議(IP)之類的網絡層協議以及諸如傳輸控制協議(TCP)之類的傳輸層協議來發送消息。
假定消息利用TCP發送,則消息被封裝到一個或多個數據分組中;同一消息的不同部分可以在不同分組中發送。繼續以上示例,計算機「X」通過網絡向計算機「Y」發送數據分組。處於計算機「X」和計算機「Y」之間的一個或多個網絡元件可以接收分組,確定分組的下一「跳」,並向計算機「Y」發送分組。
例如,路由器「U」可能接收來自計算機「X」的分組,並且基於分組是去往計算機「Y」的,確定分組應當被轉發到另一路由器「V」(路由上的下一「跳」)。路由器「V」可能從路由器「U」接收分組,並將分組發送到計算機「Y」。在計算機「Y」處,可以提取出分組的內容並重組該內容以形成原始消息,原始消息可以被提供給應用「B」。應用「A」和「B」可以不知道分組是經過路由器「U」和「V」路由的這一事實。事實上,不同的分組可以採取經過網絡的不同路由。
分組經過網絡所採取的路由可能是不安全的。網絡中中介於應用「A」和「B」之間的各方可能能夠截取分組並確定分組的內容。在分組包含機密或敏感信息的情況下,這種非法截取的後果可能是致命的。
為了阻止中間各方理解截取的分組並將其內容用於非法目的,應用可以在經過不可信網絡發送包含這些消息的分組之前對消息加密。一種普遍的加密方法是公共密鑰加密。例如,應用「A」可能想要利用公共密鑰加密發送消息到應用「B」。因此,應用「A」可能利用應用「B的」公共密鑰對消息加密。在經加密形式中,消息是不可理解的。由於消息是利用應用「B的」公共密鑰加密的,因此只有應用「B的」私有密鑰可被用於對消息解密,並且只有應用「B」擁有應用「B的」私有密鑰。應用「A」可能在一個或多個分組內向應用「B」發送經加密消息,如上所述。在接收到經加密消息後,應用「B」可以使用應用「B的」私有密鑰來對消息解密。在這樣解密後,消息與消息被加密之前是相同形式的。另一種加密方法是對稱密鑰加密,其中應用「A」和「B」都使用相同的密鑰來對消息加密和解密,並且只有應用「A」和「B」擁有該密鑰。
在實踐中,上述加密/解密過程可以比其最初看起來更加複雜。以公共密鑰加密作為示例,在應用「A」可以對消息加密以發送到應用「B」之前,應用「A」需要獲得應用「B」的公共密鑰。為了將應用「B」的公共密鑰提供給應用「A」,應用「B」的用戶可能用電子郵件將該公共密鑰告知應用「A」的用戶。如果該方法被廣泛使用,則應用「B」的用戶將不僅需要用電子郵件將該公共密鑰告知應用「A」的用戶,還需要告知發送經加密消息到應用「B」的每一潛在發送者。而這種發送者的數量可能極大。
私有密鑰有時會期滿或丟失這一事實使該情形更加複雜。例如,如果計算機「Y」的硬碟驅動器崩潰,並且應用「B的」私有密鑰只存儲在硬碟驅動器上(在給定密鑰的私有本質的情況下,這並非不合情理的場景),則應用「B的」私有密鑰將丟失,並且應用「B」需要生成新的私有密鑰。無論需要生成新的私有密鑰的原因是什麼,應用「B」都需要與新的私有密鑰一起生成新的相應的公共密鑰;新的私有密鑰不能用於對已經利用舊的公共密鑰加密的消息解密,因此應用「B」將需要通知上述所有發送者舊的公共密鑰不再有效,相反應當使用新的公共密鑰。
應用「A」的情況也是值得考慮的。應用「A」可能將經加密消息發送到許多不同的受者。每個受者可能具有不同的公共密鑰。對於應用「A」的用戶來說,組織如此多的不同公共密鑰並使它們保持最新可能是很困難的。如果使用電子郵件方法來進行密鑰分發,則用戶的大多數時間可能消耗在發送和接收私有密鑰或對稱密鑰上面。
有可能只有某些,而不是全部應用「A」發送的消息應當被加密。例如,應用「A」可能駐留在與另一應用「C」相同的可信網絡上,因此,應用「A」不需要對要發送到應用「C」的消息加密。又例如,應用「A」可能向另一應用「D」發送本質上並不機密或敏感的消息,因此,應用「A」不需要對要發送到應用「D」的消息加密。
由於加密和解密有時涉及顯著的處理開銷,因此除了上述的密鑰交換外,經常希望避免不必要的加密和解密。然而,照目前的情況,對是否對消息加密或解密的確定通常是由應用的用戶對逐個消息進行的,即使在用戶預先以合理的確定性知道了具有某些共同特性的所有消息需要或不需要是安全的的情況下也是如此。這些太過頻繁的確定增加了用戶的負擔,並且消耗了本來可能應用於更加有意義的工作的時間。
從而,上述的「由應用管理的安全性」方法在應用於其中大量應用需要以安全方式彼此通信的系統時是不實際的。需要一種更加實際的用於允許大量應用以安全方式彼此通信的技術。


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀