在網絡元件中代表應用執行消息和變換適配器功能的製作方法
2023-05-26 01:16:26 4
專利名稱:在網絡元件中代表應用執行消息和變換適配器功能的製作方法
技術領域:
本發明一般地涉及計算機網絡中的網絡元件。更具體而言,本發明涉及用於在網絡元件中代表應用執行消息和變換適配器功能的方法和裝置。
背景技術:
這一部分中描述的方法可以實現,但是不一定是先前已想到或已實現的方法。因此,除非另外指出,否則這一部分中描述的方法不是該申請的權利要求的現有技術,並且也不應當因為被包括在這一部分中而看作是現有技術。
在商業到商業環境中,運行在計算機上的應用一般會與運行在其他計算機上的其他應用通信。例如,運行在計算機「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」可以指定計算機「X」要利用超文本傳送協議(HTTP)發送消息。因此,計算機「X」可以在如上所述將消息封裝到TCP分組中之前,向消息的前部添加HTTP特定頭部。如果應用「B」被配置為根據HTTP接收消息,則計算機「Y」可以使用HTTP特定頭部來處理消息。
除了上述內容外,消息還可以根據若干種消息格式中的任何一種構造。消息格式一般指消息的結構。例如,如果購買訂單包括地址和送貨日期,則地址和送貨日期可以利用消息格式特定的機制在消息內彼此區分。例如,應用「A」可以利用可擴展標記語言(XML)指示購買訂單的結構。利用XML作為消息格式,地址可能被封在「地址」和「/地址」標籤內,而送貨日期可能被封在「送貨日期」和「/送貨日期」標籤內。如果應用「B」被配置為翻譯XML形式的消息,則應用「B」可以使用標籤以確定消息的哪一部分包含地址,哪一部分包含送貨日期。
但是,通常不同的應用被設計成使用不同的應用層協議來發送和接收消息。例如,應用「A」可能被設計成只利用HTTP發送消息,但是應用「B」可能被設計成只利用另一應用層協議,文件傳送協議(FTP),接收消息。此外,不同應用可能被設計成利用不同的消息格式來格式化以及解釋消息。例如,應用「A」可能被設計成只利用XML格式化消息,但應用「B」可能被設計成只利用電子數據交換(EDI)來解釋消息。
通常,要想設計或更新應用以使得應用可以與使用所有可能的消息格式和應用層協議的其他應用會話是不實際的,甚至不可能的。某些消息格式和應用層協議可能是私有的並且不對外公開。某些消息格式和應用層協議可能是相對較新並且晦澀的。某些消息格式和應用層協議可能太陳舊而被認為是已經過時的。
在傳統實踐中,路由器、交換機和其他中間網絡元件不需要包含在分組流中的更高級應用層消息的任何知識、意識或處理就能夠路由或交換單獨的幀、數據報和分組。為了減少允許應用與可能使用不同消息格式和/或應用層協議的其他應用會話所需的應用修改量,獨立於這些應用的中介網絡元件可能被設計成接收明確發送到那些網絡元件的消息,「轉換」該消息,然後發送該消息。該轉換可以通過尋找分組中開始於指定比特位置的指定比特圖樣,然後在找到指定比特圖樣的情況下改變指定比特位置上的比特來實現。例如,網絡器具「J」可以被設計成接收已經利用HTTP發送的消息並改為利用FTP發送這些消息。對於另一示例,網絡器具「K」可以被設計為接收具有XML格式的消息並將這些消息翻譯成EDI格式。因此,如果應用「A」利用HTTP發送XML格式的消息,並且應用「B」利用FTP接收EDI格式的消息,則應用「A」可被配置成使得應用「A」通常尋址到應用「B」的消息被改為尋址到網絡器具「J」。網絡管理員可以將網絡器具「J」配置成向網絡器具「K」發送消息,並且網絡管理員可以將網絡器具「K」配置成向應用「B」發送消息。
不幸的是,該方法需要來自網絡管理員的大量幫助。當通信應用所使用的可能的不同應用層協議和消息格式的數目增大時,網絡器具和這些網絡器具之間的路徑的數目也動態增大。對於每對發送和接收應用,遵從該方法的網絡管理員必需配置所涉及的應用和網絡器具,以確保消息將沿著正確的路徑穿過相關的網絡器具。因此,如果每個應用「A」、「B」、「C」、「D」和「E」需要彼此通信,遵從該方法的網絡管理員則需要配置25條不同的「路徑」,其中每條路徑具有一個或多個網絡器具。當應用被添加、刪除和修改時,網絡管理員可能需要從應用對之間的某些路徑中添加和/或刪除某些網絡器具。當涉及很多應用時,負擔可能比大多數網絡管理員所能承受的要大。
另外,如果多條路徑被配置為包含同樣的網絡器具,則該網絡器具可能變成降低網絡性能的瓶頸。
因此,該「成對路徑配置」方法在被用於有大量多樣性應用通信的系統時是不實用的。因此需要用於允許多個多樣性應用通信的更實用的技術。
此外,現有的中介網絡元件在這些網絡元件可以對分組執行的處理的種類方面以及在這些網絡元件相對分組能夠執行的動作的種類方面受到限制。通常,現有的中介網絡元件只能對在數據分組的頭部中擁有匹配參數的那些數據分組執行單個專門操作。參數和操作通常都是固定的並且無法由最終用戶定製。因此需要用於允許對數據流執行更多可定製的操作的技術。
在附圖中,本發明是以示例方式而非限制方式示出的,並且附圖中的類似標號指示類似元件,其中圖1是示出系統的一個實施例的概況的框圖,在該系統中,一個或多個網絡元件將遵循應用層協議的消息轉換成獨立於應用層協議的「規範(canonical)」消息;圖2示出顯示用於將遵循應用層協議的消息轉換成獨立於應用層協議的「規範」消息的網絡元件實現的方法的一個實施例的概述的流程圖;圖3A-3B示出顯示分類消息的方法的一個實施例的流程圖;圖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.4多刀片(blade)體系結構3.5分類消息
3.6動作流程3.7 AONS示例3.7.1 AONS總論3.7.2 AONS術語3.7.3 AONS功能概述3.7.4 AONS系統概述3.7.5 AONS系統元件3.7.6 AONS示例性特徵3.7.7 AONS功能模塊3.7.8 AONS工作模式3.7.9 AONS消息路由3.7.10流,BladeletsTM和ScriptletsTM3.7.11 AONS服務3.7.12 AONS配置和管理3.7.13 AONS監視3.7.14 AONS工具4.0實現機制一硬體概述5.0擴展和替換1.0總論前面背景技術中標識的需求以及其他需求和目的在本發明中得以實現並且將從以下描述中變得明顯,本發明在一個方面包括用於在諸如網絡路由器之類的網絡元件中代表應用執行消息和變換適配器功能的方法。根據一個實施例,網絡元件確定整體包含在數據分組的淨荷部分中的應用層消息。該應用層消息遵循應用層協議,例如HTTP。網絡元件確定該應用層消息所遵循的應用層協議。
基於應用層協議,從該網絡元件可訪問的多個適配器中選擇一個適配器。應用層消息被提供到所選適配器,該適配器將應用層消息轉換成不遵循任意特定應用層協議的「規範」消息。由於規範消息不遵循任意特定應用層協議,因此它是通用的,因此該網絡元件可以對規範消息執行指定的變換操作而不必顧及最初用來傳輸該應用層消息的應用層協議。
根據一個方面,上述用於實現適配器的用戶定製的程序代碼在網絡元件處被接收和存儲。因此,網絡元件可以具有經定製的適配器,該適配器將遵循私有應用層協議的應用層消息轉換成上述規範消息;以這種方式,網絡元件可以是「可編程的」。
根據一個方面,包含應用層消息的數據分組被網絡元件截取,從而發送該數據分組的應用無需「注意到」網絡元件的存在;數據分組可被尋址到位於不同於該網絡元件的設備上的目的地應用。
根據一個方面,該網絡元件搶先從應用顯性或隱形地存儲應用層消息的消息隊列或其他數據存儲庫中讀取應用層消息。消息隊列可以在網絡元件外部。根據一個方面,網絡元件將上述規範消息轉換成應用層消息,並將這樣的應用層消息發送到中間人(broker)機制,該中間人機制將應用層消息存儲到遠程目的地消息隊列,遠程目的地應用可以從該遠程目的地消息隊列讀取應用層消息。
在其他方面,本發明包含被配置用於執行前述步驟的計算機裝置和計算機可讀介質。
2.0結構和功能概述圖1是示出系統100的一個實施例的概述的框圖,其中網絡元件102、104、106和108中的一個或多個將遵循應用層協議的消息轉換成獨立於應用層協議的「規範」消息。網絡元件102、104、106和108可以是代理設備、分組交換機或網絡路由器,例如圖6中示出的路由器600。
客戶端應用110可通信地耦合到網絡元件102。伺服器應用112可通信地耦合到網絡元件106。伺服器應用114可通信地耦合到網絡元件108。客戶端應用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截取包含消息的數據分組。網絡元件102、104、106和108組裝一個或多個數據分組以確定其中包含的消息的至少一部分。網絡元件102、104、106和108將特定於應用層協議的消息轉換成獨立於應用層協議的規範消息。基於消息的內容,網絡元件102、104、106和108執行一個或多個動作。這些動作中的某些的示例隨後將詳細描述。
根據一個實施例,客戶端應用110將消息插入消息隊列124。例如,客戶端應用110可以構建遵循基於隊列的應用層協議(例如IBM MQ或TIBCO EMS)的消息,並將這些消息插入消息隊列124。網絡元件102可以讀取和刪除消息隊列124中的消息,將特定於應用層協議的消息轉換成獨立於應用層協議的規範消息,並基於消息的內容,執行一個或多個動作。
在一個實施例中,客戶端應用110沒有顯性地將消息插入消息隊列124,而是將消息發送到與消息隊列126相關聯的消息隊列別名(alias)。對客戶端應用110而言透明地發送到消息隊列別名的消息實際上被存儲在消息隊列124中,以待隨後刪除和發送到消息隊列126。再次,網絡元件102可以讀取和刪除來自消息隊列124的消息,將特定於應用層協議的消息轉換成獨立於應用層協議的規範消息,並基於消息的內容,執行一個或多個動作,包括將消息發送到中間人機制,該中間人機制將消息存儲在消息隊列126中以備伺服器應用112獲取。
圖2示出用於將遵循應用層協議的消息轉換成獨立於應用層協議的「規範」消息的網絡元件實現的方法的一個實施例的概述的流程圖200。該方法例如可以由網絡元件102、104、106和108中的任意一個執行。
在方框202中,網絡元件從數據分組的淨荷部分確定統一包含在淨荷部分中的遵循應用層協議的應用層消息。例如,數據分組可以統一地包含遵循HTTP的應用層消息。網絡元件102可以截取目的地為伺服器應用112的一個或多個數據分組;因此,數據分組可能不是目的地為網絡元件102的。
對於另一示例,網絡元件102可以從消息隊列124中取得客戶端應用110顯性地地或以其他方式插入到消息隊列124中的應用層消息。這樣的應用層消息例如可以是遵循IBM MQ或遵循TIBCO EMS的。網絡元件102可以從管理消息隊列124的中間人機制請求這樣的應用層消息。作為響應,中間人機制可以將消息封裝成一個或多個數據分組並將數據分組發送到網絡元件102。
無論網絡元件102是如何獲得應用層消息的,網絡元件102都可以組裝數據分組(例如TCP分組)的淨荷部分的內容,以構建其中包含的應用層消息。
在方框204,應用層消息遵循的應用層協議被確定。例如,網絡元件102可以確定消息遵循的應用層協議,例如HTTP、FTP、SMTP、IBMMQ或TIBCO EMS。
在一個實施例中,存儲在網絡元件(例如網絡元件102)處的映射信息指示TCP埠和應用層協議之間的關聯。例如,TCP埠80可以與HTTP相關聯,其他TCP埠可以與其他應用層協議相關聯。多個TCP埠可以與單個應用層協議相關聯。在該實施例中,網絡元件通過確定哪個應用層協議與接收到包含該消息的數據分組的TCP埠相關聯來確定消息的應用層協議。例如,如果消息被包含在網絡元件102在TCP埠80上接收到的TCP分組中,網絡元件102則可以得出消息遵循HTTP的結論。
在方框206中,基於應用層協議,從該網絡元件可訪問的多個適配器中選擇特定適配器。每個適配器是能夠將遵循特定應用層協議的應用層消息轉換成不遵循任何特定應用層協議的規範消息的一組程序代碼。例如,網絡元件102可以存儲用於HTTP的適配器、用於FTP的適配器、用於SMTP的適配器、用於IBM MQ的適配器、用於TIBCO EMS的適配器以及用於私有應用層協議的適配器。如果應用層消息是遵循HTTP的,網絡元件102則選擇HTTP適配器。可替換地,如果應用層消息遵循另一應用層協議,網絡元件102則選擇對應於該協議的適配器。
在方框208中,應用層消息被提供給特定適配器,該適配器將該應用層消息轉換成不遵循應用層協議的規範消息。例如,網絡元件102可以將遵循HTTP的消息發送到存儲在網絡元件102上的HTTP適配器。該HTTP適配器將遵循HTTP的消息轉換成不遵循任何特定應用層協議的規範消息。
在一個實施例中,適配器是通過從遵循應用層協議的消息中刪除掉所有特定於該應用層協議的信息來將遵循應用層協議的消息轉換成規範消息的。例如,HTTP消息到規範消息的轉換可能涉及HTTP適配器從HTTP消息前面剝去HTTP頭部。
一旦消息已被轉換成獨立於應用層協議的規範形式,網絡元件就可以代表生成該消息的應用執行一個或多個動作。所執行的動作可能基於消息的內容而有所不同。由於規範消息是獨立於應用層協議的,因此動作的執行無需顧及被用來傳輸該消息的應用層協議。
基於規範消息的內容,可以確定該消息的消息分類。例如,網絡元件102可以基於消息的內容來確定消息是購買訂單類的消息。作為響應,網絡元件102可以代表伺服器應用112執行與購買訂單類消息相關聯的一個或多個指定動作。指定動作例如可以包括修改消息的格式(例如從XML到EDI)。其他可能動作的示例下面被描述。
基於消息的分類可能執行的一種可能的動作是將規範消息轉換回特定於應用層協議的消息,並發送該特定於應用層協議的消息到指定的目的地。為了將規範消息轉換到特定於應用層協議的消息,網絡元件可以將規範消息作為輸入提供到對應於適當的應用層協議的適配器。例如,為了將規範消息轉換為遵循HTTP的消息,網絡元件102可以將規範消息提供到HTTP適配器。在HTTP適配器已將規範消息轉換到遵循HTTP的消息之後,網絡元件102可以將遵循HTTP的消息封裝到一個或多個數據分組中,並將數據分組發送到指定目的地,例如伺服器應用112。
規範消息被轉換到的應用層協議可以不同於規範消息先前從其轉換來的應用層協議。例如,網絡元件102可以接收遵循HTTP的消息,將遵循HTTP的消息轉換成規範消息,基於規範消息的內容執行動作,將規範消息轉換成遵循SMTP的消息,並將遵循SMTP的消息發送到伺服器應用112。
3.0實現方式示例3.1從消息隊列取得消息根據一個實施例,網絡元件不是截取客戶端應用已經朝伺服器應用發送的數據分組,而是搶先從客戶端應用已經向其插入消息的源消息隊列取得消息。例如,網絡元件102可以判斷消息隊列124是否包含任意消息。為了執行該判斷,網絡元件102可以詢問管理消息隊列124的中間人機制。
響應於確定消息隊列124包含消息,網絡元件102從消息隊列124中取得消息並將該消息從消息隊列124中刪除。例如,網絡元件102可以指示中間人機制從消息隊列124中刪除消息並將消息發送到網絡元件102。作為響應,中間人機制可以將消息封裝到一個或多個數據分組(例如TCP分組)中,並將分組發送到網絡元件102。
數據分組可以在與消息遵循的應用層協議相關聯的特定TCP埠上被發送。例如,如果消息遵循IBM MQ,數據分組則可以在與IBM MQ相關聯的TCP埠上被發送。可替換地,如果消息遵循TIBCO EMS,數據分組則可以在與TIBCO EMS相關聯的TCP埠上被發送。如上所述,網絡元件102可以基於TCP埠確定消息的應用層協議,並將消息發送到適當的適配器。
3.2將消息插入消息隊列在一個實施例中,網絡元件可以對消息執行的動作包括將消息插入目的地消息隊列。例如,網絡元件106可以確定特定規範消息的分類是與「插入到目的地隊列」動作相關聯。作為響應,網絡元件106可以將特定規範消息轉換成特定於應用層協議的消息(例如遵循IBM MQ的消息或遵循TIBCO EMS的消息),並將所產生的特定於應用層協議的消息插入到指定的消息隊列(例如消息隊列126)中。
網絡元件106可以通過將消息作為輸入提供到對應於適當的應用層協議的適配器來將規範消息轉換成特定於應用層協議的消息,如上所述。網絡元件106可以通過將特定於應用層協議的消息封裝到一個或多個數據分組中並將數據分組發送到管理消息隊列126的中間人機制來將特定於應用層協議的消息插入到消息隊列126中。
3.3可編程的適配器根據一個實施例,用戶可以創建新的適配器並使得新的適配器被存儲在網絡元件102、104、106和108中的一個或多個上並能夠在其上被使用。該「編程」可以在任何時間執行,包括在網絡元件已經利用現有的適配器啟動對數據分組的處理之後。
在一個實施例中,用戶通過將定製的適配器上載到管理控制器122來向網絡元件「提供」定製的適配器。用戶可以利用管理控制器122指示哪些網絡元件應該接收定製的適配器。作為響應,管理控制器122將定製的適配器發送到指定的網絡元件(或這,如果沒有指定網絡元件,則發送到管理控制器122負責的所有網絡元件)。網絡元件接收定製的適配器並在本地存儲定製的適配器作為響應。網絡元件可以存儲將定製的適配器與一個或多個TCP埠相關聯的映射信息。
此後,當網絡元件接收到遵循與定製的適配器相對應的應用層協議的消息時,網絡元件將這些消息提供到該定製的適配器,該適配器能夠將這些消息轉換成規範消息。因此,網絡元件可被編程為理解並轉換遵循私有應用層協議的應用層消息。
3.4多刀片體系結構根據一個實施例,路由器中的面向應用的網絡服務(AONS)刀片執行上述動作。圖6是圖示了路由器600的一個實施例的框圖,在路由器600中,監管器刀片602將分組流610A-B中的某一些引導到AONS刀片和/或其他刀片606A-N。路由器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.5分類消息圖3A-B示出分類消息的方法的一個實施例的流程圖300。例如,網絡元件102、104、106和108中的一個或多個可以執行該方法。更具體而言,AONS刀片604可以執行該方法的一個或多個步驟。其他實施例可以省略在流程圖300中示出的一個或多個操作。其他實施例可以包含除流程圖300中所示的操作之外的操作。其他實施例可以按不同於流程圖300中所示的順序執行流程圖300中所示的操作。
首先參考圖3A,在框302中,在網絡元件處接收用戶指定輸入。用戶指定輸入指示以下內容要與特定消息分類相關聯的一個或多個標準,以及要與特定消息分類相關聯的一個或多個動作。用戶指定輸入可以指示執行這一個或多個動作的順序。用戶指定輸入可以指示動作的輸出要被提供給其他動作作為輸入。例如,網絡元件104(更具體而言是AONS刀片604)可以接收這種來自網絡管理員的用戶指定輸入。
在框304中,在網絡元件處建立特定消息分類和一個或多個標準之間的關聯。例如,AONS刀片604可以建立特定消息分類和一個或多個標準之間的關聯。例如,該標準可以指示消息要屬於相關聯的消息分類而需要包含的特定文本串。又例如,該標準可以指示消息要屬於相關聯的消息分類而需要存在於XML格式的消息的分級結構中的特定路徑。又例如,該標準可以指示消息要屬於相關聯的消息分類而需要來自於哪個/些源IP位址或去往哪個/些目的地IP位址。
在框306中,在網絡元件處建立特定消息分類和一個或多個動作之間的關聯。與特定消息分類相關聯的一個或多個動作包括與該特定消息分類相關聯的「策略」。策略可以包括根據在用戶指定輸入中指定的特定順序排序的一個或多個動作的「流」和/或無序的一個或多個其他動作。例如,AONS刀片604可以建立特定消息分類和一個或多個動作之間的關聯。總的來說,框302-306的操作包括「供應」(provisioning)網絡元件。
在框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中,確定與被用於發送該消息的應用層協議相關聯的消息終止技術。例如,AONS刀片604可以存儲映射信息,該信息將FTP映射到第一方案,將HTTP映射到第二方案,並將SMTP映射到第三方案。第一方案可以採用第一消息終止技術,其可被用於從數據分組中提取出利用FTP發送的消息。第二方案可以採用第二消息終止技術,其可被用於從數據分組中提取出利用HTTP發送的消息。第三方案可以採用第三消息終止技術,其可被用於從數據分組中提取出利用SMTP發送的消息。基於該映射信息以及被用於發送該消息的應用層協議,AONS刀片604可以確定應當調用哪一方案以從數據分組中提取出該消息。
在框314中,基於與被用於發送消息的應用層協議相關聯的終止技術確定消息的內容。例如,AONS刀片604可以提供數據分組作為對在框312中確定的被映射到應用層協議的方案的輸入。該方案可以使用適當的消息終止技術來從數據分組中提取出消息的內容。該方案可以將消息作為輸出返回到AONS刀片604。從而,在一個實施例中,從數據分組中提取出的消息獨立於被用於發送消息的應用層協議。
在框316中,確定與消息滿足的標準相關聯的消息分類。例如,AONS刀片604可以存儲將不同標準映射到不同消息分類的映射信息。該映射信息指示在可能的許多不同關聯中的在框304中建立的關聯。AONS刀片604可以確定消息的內容是否滿足與已知消息分類中的任何一種相關聯的標準。在一個實施例中,如果消息的內容滿足與特定消息分類相關聯的標準,則確定該消息屬於該特定消息分類。
儘管在一個實施例中消息內容被用於確定消息的分類,但是在備選實施例中,包含在消息中的內容以外的信息也可用於確定消息的分類。例如,在一個實施例中,消息內容以及在包含消息的數據分組中指示的一個或多個IP位址和/或TCP埠的組合被用於確定消息的分類。又例如,在一個實施例中,在包含消息的數據分組中指示的一個或多個IP位址和/或TCP埠被用於確定消息的分類,而無論消息的內容如何。
在框318中,執行與在框316中確定的消息分類相關聯的一個或多個動作。如果兩個或更多個動作與指定的執行順序(由用戶指定輸入所指示)相關聯,則這些動作被按指定順序執行。如果這些動作中的任何一個的輸出假定被作為輸入提供給任何一個動作(如用戶指定輸入所指示),則指定動作的輸出被作為輸入提供給其他指定動作。
對於消息可以執行多種不同動作。例如,一個動作可能指示丟棄消息。在這種情況下,阻止消息被轉發出網絡元件向消息的目的地轉發。又例如,一個動作可能指示在將消息轉發出網絡元件之前利用指定的壓縮技術壓縮消息。
又例如,一個動作可能指示要以指定方式改變消息的內容。例如,一個動作可能指示指定文本要被插入到消息中的指定位置。例如,該位置可能由消息的XML分級體系結構中的路徑指定,或者由在消息中發生的指定文本串指定。又例如,一個動作可能指示指定文本要被從消息中刪除。又例如,一個動作可能指示指定文本要替換消息中的其他指定文本。被插入到消息中的文本可能從網絡元件外部的資料庫動態(「即時」)獲得。
又例如,一個動作可能指示要以指定方法改變消息的消息格式。例如,一個動作可能指示消息的格式要從XML變為某種其他格式,例如EDI。又例如,一個動作可能指示消息的格式要從除了XML之外的某種其他格式變為XML。消息格式可以在不改變消息的核心內容的情況下改變,該核心內容獨立於消息格式。
又例如,一個動作可能指示消息要利用除了消息的發源地用於發送消息的應用層協議之外的指定應用層協議轉發。例如,客戶端應用110可能使用第一應用層協議(例如HTTP)來發送消息。因此,當被網絡元件104截取時,該消息可能包含HTTP頭部。然而,根據指定動作,在網絡元件104將消息向消息的目的地轉發之前,網絡元件104(更具體而言是AONS刀片604)可以修改消息,以使得消息被利用除了HTTP之外的某一應用層協議(例如FTP、SMTP等)運送。
又例如,一個動作可能指示要改變消息的目的地以使得該消息被向與消息的源最初指定的設備不同的某一設備轉發。例如,根據指定動作,網絡元件104(更具體而言是AONS刀片604)可能將消息封裝在一個或多個新的IP數據分組中,這些分組指示與最初截取的IP數據分組指示的目的地IP位址不同的新的目的地IP位址。然後,網絡元件104可以將該新的IP數據分組向新的目的地轉發。以這種方式,可以實現基於消息內容的路由。
又例如,一個動作可能指示指定事件要被寫入到可能在網絡元件外部的指定日誌中。例如,根據指定動作,網絡元件104(更具體而言是AONS刀片604)可能將消息的至少一部分與從其接收到消息的IP位址一起寫入到日誌文件。
又例如,一個動作可能指示消息在被轉發到目的地之前要利用指定密鑰進行加密。例如,根據指定動作,網絡元件104(更具體而言是AONS刀片604)可能利用指定密鑰對消息的至少一部分進行加密,然後將包含經加密的消息的數據分組向消息的目的地轉發。
一個動作可能指示在網絡元件處緩存的響應要被返回到發出該消息的設備(如果該響應被在網絡元件處緩存)。例如,網絡元件104(更具體而言是AONS刀片604)可以確定對消息的響應是否在網絡元件104處緩存;該響應可能在對同一消息的前一響應經過網絡元件104的時已經在網絡元件104處被緩存。如果網絡元件104確定該響應被緩存,則網絡元件104可以將響應返回到消息的發源地。因此,網絡元件104不需要將消息轉發到消息的目的地,並且消息的目的地不需要發出對消息的另一響應。
如果在動作的執行期間消息被以某種方式修改(例如,內容、格式或協議修改),並且修改後的消息假定要轉發出網絡元件,則網絡元件將修改後的消息封裝到新的數據分組中,並向修改後的消息的目的地(其可能也被修改)發送新的數據分組。
消息可能不屬於任何已知的消息分類。在這種情況下,根據一個實施例,網絡元件不執行任何用戶指定的與消息有關的動作。相反地,網絡元件僅僅沿到數據分組的指示目的地的路徑將數據分組轉發到下一跳。
作為流程圖300所示方法的結果,諸如客戶端應用110、伺服器應用112和伺服器應用114之類的應用可以彼此通信,就好像沒有網絡元件充當中介一樣,並且好像應用之間彼此利用相同的消息格式和應用層協議進行通信一樣。
3.6動作流圖4示出了可能與特定消息分類相關聯的樣本流400。流400按順序包括動作402-414;其他流可以包括一個或多個其他動作。動作402指示消息的內容應當以指定方式修改。動作404指示指定事件應當被寫入到指定日誌。動作406指示消息的目的地應當變為指定目的地。動作408指示消息的格式應當被轉換為指定消息格式。動作410指示用於發送消息的應用層協議應當變為指定應用層協議。動作412指示消息應當利用特定密鑰進行加密。動作414指示消息應當向消息的目的地轉發。
在其他實施例中,動作402-414中的任何一個可以獨立執行,或者與動作402-414中的任何其他動作相組合地執行。
3.7 AONS示例3.7.1 AONS總論面向應用的網絡系統(AONS)是一種用於構建在網絡中嵌入智能以更好地滿足應用部署的需要的一類產品的技術基礎。AONS通過提供對關於什麼信息在網絡內流動的更大的關注程度並且通過將信息路由到適當的目的地(以該目的地所預期的格式)來幫助客戶集成不同的應用,從而補充了現有的網絡技術;施行用於信息訪問和交換的策略;在網絡帶寬和處理開銷方面優化應用流量流;提供增強的信息流管理,包括監視和度量信息流以用於業務和底層結構(infrastructure)目的;以及通過透明地備份或重路由關鍵業務數據來提供增強的業務連續性。
AONS通過更多地理解信息流的內容和上下文提供了該增強的支持。同樣,AONS主要工作在消息級別,而不是分組級別。一般來說,信息的AONS處理終止了TCP連接以檢查整個消息,包括「淨荷」以及全部頭部。AONS還理解並輔助普遍的應用層協議,例如HTTP、FTP、SMTP和事實上的標準中間設備(middleware)協議。
AONS與運行在通用計算系統上的中間設備產品的不同之處在於,AONS的行為在其簡單性、總擁有成本和性能方面更加類似於網絡器具(network appliance)。此外,AONS與網絡層支持相集成以提供對信息流和管理的更完整的方法,從而將在應用層所需的特徵映射到由路由器、交換機、防火牆和其他網絡系統實現的低層聯網特徵中。
儘管在來自Cisco Systems Inc.的現有產品線中提供了某些與AONS具有類似功能的元件,但是這些產品一般對諸如IP/埠地址或HTTP頭部之類的信息表現出更加有限的關注度,以提供負載平衡和故障切換(failover)解決方案。AONS提供了用於更寬廣的功能支持、更寬廣的應用分類以及更大的應用數據的控制和管理程度的框架。
3.7.2 AONS術語「應用」是執行運行在伺服器或桌面系統上的業務功能的軟體實體。應用可以是打包應用、運行在應用伺服器上的軟體、運行在主機上的遺留應用、或內部開發以滿足業務需要的定製或私有軟體、或者執行某種操作的腳本。這些應用可以與同一部門中的(部門的)其他應用、單個企業內的不同部門的(企業內的)其他應用、企業和其合作夥伴間的(企業間的或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協議)頭部中,並且被轉換為「規範」(canonical)格式。從AONS消息的角度提供了可靠性、日誌記錄和安全性服務。
從AONS的角度,應用一般用來彼此通信的一組協議或方法被稱為「應用訪問協議」(或方法)。應用可以利用任何被支持的應用訪問方法與AONS網絡(一般是端點代理客戶端代理和伺服器代理)通信。應用訪問協議的某些示例包括IBM MQ系列、Java消息服務(JMS)、TIBCO、超文本傳送協議(HTTP)/HTTPS上的簡單對象訪問協議(SOAP),以及簡單郵件傳送協議(SMTP)。關於各種訪問方法的細節將在該文件的後續部分中說明。
存在很多種應用所用的「消息格式」。這些消息格式的範圍包括定製或私有格式以及工業特定格式和標準化格式。可擴展標記語言(XML)作為一種用於供應用彼此通信的通用語言或消息格式正得到普遍應用。AONS支持很多種這些格式。
另外,AONS提供了基於應用需要從一種格式到另一格式的轉換服務。典型部署可能涉及第一AONS節點,其接收應用消息(客戶端代理),將該消息轉換為「規範」格式,規範格式的消息被作為AONS消息通過AONS網絡運送。伺服器代理可能在傳遞該消息之前將消息從「規範」格式轉換為接收應用所理解的格式。為了理解某些非工業標準格式,可以使用消息辭典。
執行多種應用訪問方法或協議之間的網關功能的節點被稱為「協議網關」。協議網關的示例可以是通過文件傳送協議(FTP)接收應用消息並將同一消息作為HTTP貼發送到另一應用的節點。在AONS中,客戶端和伺服器代理一般被預期執行協議網關功能。
如果應用生成電子數據交換(EDI)格式的消息而接收應用期望消息是XML格式,則消息格式需要被轉換,而消息內容需要在轉換過程中保持不變。在AONS中,端點代理一般執行該「消息格式轉換」功能。
在某些情況下,即使發送和接收應用使用相同的消息格式,對於接收應用來說也需要轉換內容。例如,如果一個美國應用正與一個英國應用通信,則這兩個應用之間的消息中的日期格式可能需要被轉換(從月/日/年到日/月/年),即使應用使用相同的數據表示(或消息格式)時也是如此。該轉換被稱為「內容轉換」。
3.7.3 AONS功能概述如前所定義,AONS可以被定義為基於網絡的智能中介系統,其高效且有效地將業務和應用需要與更加靈活和更具響應性的網絡服務相集成。具體而言,AONS可以通過以下特性理解AONS工作在比傳統網絡元件產品(2-4層)高的層(5-6層)。AONS使用消息級別的檢查作為對分組級別檢查的補充一通過理解應用消息,AONS向多種網絡元件產品,例如交換機、防火牆、內容緩存系統和負載平衡器提供「消息交換路由」方面的附加值。AONS在安全性、可靠性、流量優化(壓縮、緩存)、可視性(業務事件和網絡事件)和變換(例如,從XML到EDI)方面提供了更大的靈活性和網絡響應粒度。
AONS是一種綜合技術平臺,而不僅僅是點解決方案。AONS可以通過分布式智能中介系統實現,該系統位於分布式企業內和企業間環境中的應用、中間設備和資料庫之間(用於路由消息、執行變換等)。AONS提供了用於業務流的末端用戶配置的靈活框架,以及AONS服務的策略和夥伴驅動的可擴展性。
AONS尤其適合於基於網絡的部署。AONS是基於網絡的,而不是通用的基於伺服器的。AONS是混合的基於軟體和基於硬體的(即,基於專用集成電路(ASIC)/現場可編程門陣列(FPGA)的加速(acceleration))。AONS使用流量的(由策略確定的)帶外或線內處理。AONS被部署在獨立產品(網絡家電)以及嵌入式產品(用於多個交換、路由和存儲平臺的服務刀片)中。
3.7.4 AONS系統概述該部分概括了示例性AONS系統的系統概述。圖7是圖示了根據本發明一個實施例在示例性AONS網絡702中涉及的各種組件的圖700。由每個節點執行的角色在後續的部分中詳細提及。
在AONS網絡702內,關鍵的構建塊包括AONS端點代理(AEP)704-710和AONS路由器(AR)。可以從放置在邏輯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頭部封裝,並執行與AONS網絡有關的任何必要操作(例如,安全性和可靠性服務)。另外,如果必要的話,該消息被AEP CP 704轉換為「規範」格式。該消息通過TCP連接沿著到目的地應用718A的路徑被運送到AR710。沿著路徑的AONS路由器執行消息所需的底層結構服務,並可以基於客戶所配置的策略改變路由。該消息在目的地AEP伺服器代理(SP)706處被接收到。AEP SP 706執行必要的安全性和可靠性功能,並在必要的情況下將消息轉換為接收應用所理解的格式。然後,AEP SP 706利用應用718A和AONS所支持的任何一種訪問協議將消息發送到接收應用718A。通過AONS網絡702的詳細的消息流將在下面的部分中描述。
3.7.5 AONS系統元件該部分概括了從AONS角度使用的不同概念。
「AEP客戶端代理」是執行消息的發送方(客戶端)上的應用所必需的服務的AONS節點。在該文件的其餘部分中,端點代理也指客戶端或伺服器代理。在處理消息時客戶端代理的一般責任是消息預分類和早期拒絕、協議管理、消息身份管理、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.7.6 AONS示例特徵在一個實施例中,下層的「子系統服務的AONS基礎平臺」(AOS)提供了某個範圍的通用服務,包括對安全性、壓縮、緩存、可靠性、策略管理和其他服務的支持。隨後,在該平臺的頂端,AONS提供了某個範圍的分立功能組件,這些功能組件可以連線在一起以提供對傳入數據流量的整體處理。這些「bladeletsTM」意在在由應用或信息技術(IT)管理者所要求的特定策略或動作的上下文中實現個別服務。一系列訪問方法適配器確保了對某個範圍的入口和出口格式的支持。最後,一組面向用戶的工具使得管理者能夠適當地查看、配置和設置用於AONS解決方案的策略。這四個功能類別相組合以提供某個範圍的末端客戶能力,包括增強的安全性、底層結構優化、業務連續性、應用集成和操作可視性。
由AONS解決方案提供的增強的可視性和增強的響應能力提供了多種智能的、面向應用的網絡服務。這些智能服務可以總結為四個主要類別增強的安全性和可靠性提供了可靠的消息傳遞,並且除了現有的網絡級別安全性之外,還提供了消息級別安全性。
底層結構優化通過在消息級別利用緩存和壓縮以及通過集成應用和網絡服務質量(QoS),能夠更高效地使用網絡資源。
業務和底層結構活動性監視和管理通過讀取包含在應用層消息中的信息,AONS可以記錄、審計並管理應用級別業務事件,並將這些與公共的、策略驅動的管理環境中的網絡、伺服器和存儲底層結構事件相組合。
基於內容的路由和變換基於消息的路由以及協議、內容、數據和消息格式的變換(例如,XML變換)。屬於這些主要類別中的每一種的個別特徵將在下面更詳細地描述。
3.7.6.1增強的安全性和可靠性認證AONS可以基於包含在給定消息內的各種信息片段(用戶名/密碼、數字證書(certificate)、安全性聲明標記語言(SAML)聲明等等)核實進入消息的發送者的身份,並且基於這些憑證(credential),確定消息是否應當被進一步處理。
授權一旦經由消息檢查獲得了主要憑證,AONS就可以確定消息的發起者應當對其嘗試調用的服務具有什麼級別的訪問。AONS還可以基於這種導出的特權進行路由判決,或者只要消息在AONS網絡內,就在適當時阻擋或掩蓋消息內的某些數據元素。
加密/解密當消息行進通過AONS網絡時,基於策略,AONS可以執行消息元素(整個消息、消息主體或個別元素,例如信用卡號)的加密以維持端到端的私密性。相反地,AONS可以在消息到達給定端點之前執行這些元素的解密。
數字籤名為了確保消息完整性並允許不對消息事務進行抵賴,AONS可以在任何給定AEP處對整個消息或個別消息元素執行數字籤名。關於哪些內容被籤名的判決將由被施加到從每個消息的內容和上下文導出的信息的策略來確定。
可靠性AONS可以通過在不同的私有機制之間充當中介來補充現有的保證消息傳送系統。還可以為當前缺乏可靠傳遞的基於HTTP的應用(包括web服務)提供可靠性。作為附加特徵,AONS可以生成成功消息傳遞的確認,並且在不能確認傳遞時自動生成異常響應。
3.7.6.2基礎設施優化壓縮AEP可以在通過網絡發送消息數據之前壓縮消息數據以節省帶寬,並且相反地在向端點傳遞之前對其解壓縮。
緩存AONS可以基於對一類請求定義的規則或者基於在響應中設置的指示符緩存先前消息詢問的結果。緩存可以對整個消息或消息的某些元素執行,以減少應用響應時間並節省網絡帶寬使用。消息元素緩存使得能夠對後續消息請求進行增量(delta)處理。
TCP連接共同分擔(pooling)通過充當消息客戶端和伺服器之間的中介,AONS可以合併應用之間所需的永久連接的總數。從而,AONS減少了在其他情況下與一群端點之間的連接的正在進行的發起和拆除相關聯的客戶端和伺服器處理負載。
批處理(batching)AONS中介可以對去往多個目的地的事務消息進行批處理以減少發送系統上的盤I/O開銷。類似地,可以對來自多個源的事務消息進行批處理以減少接收系統上的盤I/O開銷。
硬體加速通過利用專用硬體在AONS網絡設備中高效地執行計算密集功能,例如加密和可擴展風格(Stylesheet)語言變換(XSLT)變換,AONS可以卸下端點伺服器的計算資源的負載,從而潛在地提供了較低成本的處理能力。
服務質量AONS可以基於明示消息優先級區分(例如,被標記為「高優先級」的消息)或通過在檢測到特定消息內容時確定消息何時需要較高質量的網絡服務的策略,將應用級別QoS與網絡級別QoS特徵相組合。
策略施行優化整個AONS解決方案的核心是確保業務級別策略由底層結構表達、實現和施行的能力。AONS策略管理器確保了一旦檢查消息,就在適當時針對該消息採取適當的動作(加密、壓縮、路由等)。
3.7.6.3活動性監視和管理審計/日誌記錄/度量AONS可以選擇性地過濾消息,並將其發送到節點或控制臺以用於聚集和後續分析。工具能夠查看和分析消息流。AONS還可以生成對重要實時事件(與業務和底層結構有關的)的自動響應。通過智能地收集統計信息並發送這些信息以計入日誌,AONS可以產生用於審計或計費目的的度量數據。
管理AONS可以組合消息級別和網絡底層結構級別事件以獲得對整個系統健康度的更深理解。AONS管理接口自身可充當對那些希望可編程地對其進行訪問的人的一項web服務。
測試和驗證AONS能夠截取消息流量的能力可以用於在允許消息到達目的地應用之前驗證消息。除了保護消息以免受可能的應用或伺服器故障影響之外,該能力還可以被修改以測試新的web服務和其他功能,這是通過在產品部署之前檢查來自客戶端和伺服器的實際消息流而實現的。AONS還提供了「調試模式」(debug mode),該模式可以在可疑故障之後自動開啟,或者在通知之後手工開啟,以輔助對設備的整體管理。
工作負載平衡和故障切換AONS提供了一種策略和內容兩者驅動的工作負載平衡和故障切換的方法。例如,給定AONS節點的在異種系統之間充當中介的能力,則AONS節點可以在提供對消息內容所請求的公共信息的訪問的不同系統之間進行平衡。AONS還可以解決確保在消息級別而不是僅在會話級別實現故障切換所必需的消息親合力(affinity)的問題,而大多數現有解決方案是在會話級別實現的。平衡還可以考慮到用於得到消息回復、路由到備選目的地(如果優選目標暫時響應很慢的話)的響應時間。
業務連續性通過提供將進入消息複製到遠程目的地的能力,AONS使得客戶能夠從系統異常中快速恢復。AONS還可以檢測發生故障的消息傳遞,並自動重路由到備選端點。AONS AEP和AR自身具有內建的冗餘和組件級別的故障切換,並且可以被集群化以確保高可用性。
3.7.6.4基於內容的路由和變換基於內容的路由基於其檢查並理解消息的內容和上下文的能力,AONS提供了通過將內容元素與預先建立的策略配置進行匹配來將消息路由到適當目的地的能力。該能力允許AONS為由不同應用處理的消息提供公共接口(服務虛擬化),並且由AONS檢查消息類型或內容中的欄位(部分號、帳戶類型、僱員位置、客戶郵政編碼等等)以將消息路由到適當目的地。該能力還允許AONS利用AONS路由器的最優扇出發送消息到多個目的地(基於靜態定義的消息類型或信息主題,或者基於對消息類型或信息主題的動態訂製)。該能力還允許AONS重定向先前發送到某個應用的所有消息以使得其可以由新的應用處理。另外,該能力還允許AONS路由消息以用於預處理步驟,該預處理步驟被認為是在接收消息之前所必需的(例如,對於所有旅遊請求引入管理預批准步驟)。該能力還允許AONS將超過某一標準(例如,順序值)的消息的拷貝路由到審計系統,以及將該消息轉發到期望目的地。該能力還允許AONS出於工作負載或故障切換原因將消息路由到特定伺服器。該能力還允許AONS基於先前的路由判決將消息路由到特定伺服器(例如,基於哪一伺服器處理原始訂單來路由查詢請求)。另外,該能力還允許AONS基於消息的源進行路由。該能力還允許AONS通過由源或前一中介定義的步驟序列路由消息。
消息協議網關AONS可以充當使用不同傳輸協議的應用之間的網關。AONS支持開放式標準協議(例如HTTP、FTP、SMTP),以及普遍的或事實上標準的私有協議,例如IBM Websphere MQ。
消息變換AONS可以變換消息內容以使其適合於特定接收應用。這既可以對XML消息進行,又可以對非XML消息進行,後者是經由消息辭典定義或定義好的工業標準格式的輔助實現的。
3.7.7 AONS功能模塊圖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)服務(跟蹤、調試等)、存檔、安裝、更新、許可、樣本scriptletsTM、樣本流、文檔化、在線幫助和語言本地化。
在一個實施例中,所支持的平臺包括Cisco Catalyst 6503、CiscoCatalyst 6505、Cisco Catalyst 6509和Cisco Catalyst 6513。在一個實施例中,所支持的監管器模塊包括Sup2和Sup720。在一個實施例中,與平臺有關的特定功能區域包括優化TCP、SSL、公共密鑰底層結構(PKI)、加密/解密、到Cat6K監管器的接口、故障切換/冗餘、圖像管理和QoS功能。
3.7.8 AONS操作模式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.7.9 AONS消息路由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節點內的消息生存周期(lifecycle)涉及入口/出口處理、消息處理、消息執行控制和流執行。
圖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通信。流管理子系統191O、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.7.10流程、bladeletsTM和scripletsTM根據一個實施例,流串與bladeletsTM(即,動作)一起定製消息處理邏輯。ScriptletsTM提供了一種用於供客戶和夥伴定製或擴展固有AONS功能的機制。某些bladeletsTM和服務可以利用AONS節點提供。
3.7.11 AONS服務如前所述,AONS可以提供一組核心服務以形成可以經由AONS節點傳遞的增值功能的下層基礎。在一個實施例中,這些服務包括安全性服務、標準壓縮服務、delta壓縮服務、緩存服務、消息日誌記錄服務、策略管理服務(策略管理器)、可靠消息傳送服務、公布/訂購服務、活動性監視服務、消息分發服務、XML解析服務、XSLT變換服務和QoS管理服務。在一個實施例中,每種AONS核心服務被實現在服務框架的上下文中。
3.7.12 AONS配置和管理在一個實施例中,AONS節點被提供和配置有一類應用消息,從而其強制施行代表應用端點、業務領域、安全領域、管理領域和網絡領域以聲明形式定義的策略。此外,對於給定部署情形,AONS節點利用不同軟體和硬體子系統的可配置性和可擴展性促進了不同產品功能特徵的靈活構成和定製。由於AONS功能的應用和網絡實施例,AONS體系結構框架應當有效地且統一地解決各種系統組件和其環境的可配置性、可管理性以及可監視性這些不同方面的問題。
AONS配置和管理框架是基於ISO網絡管理論壇所推薦的用於網絡管理的五個功能區域(「FCAPS」)的。這些功能區域包括故障管理、配置管理、會計(accounting)管理、性能管理和安全性管理。故障管理是發現、隔離以及修補AONS節點中的問題或故障的過程。配置管理是找到並設置AONS節點的過程。會計管理涉及跟蹤AONS資源的使用和利用率以推動其正確使用。性能管理是策量AONS系統組件和整個系統的性能的過程。安全性管理控制對AONS系統上的信息的訪問。許多上述功能是經由作為整個AONS解決方案的一部分的適當儀器、程序接口和工具處理的。
圖21、圖22和圖23是圖示了AONS配置和管理框架內的實體的圖。配置和供應伺服器(CPS)是用於AONS策略、流、scriptletsTM和其他可管理實體的配置和管理的中央集線器。可配置數據被從AONS設計工作室(流工具)推到CPS,然後AONS管理員可以將該數據提供給生產部署。還提供了促進過程以經由對生產展示過程的分段/證明的開發來測試和驗證改變。配置和供應代理(CPA)駐留在個別AONS刀片上,並且為AONS提供本地控制和分發能力。CPA與CPS交互以得到更新。CPA採取適當的動作以實現改變。CPA還用於收集監視數據以報告給第三方控制臺。
3.7.13 AONS監視在一個實施例中,AONS被配置為支持定義好的事件以用於適當的對內部處理活動性的監視和可視性。AONS節點的監視可以經由預先定義的運行在每個AONS節點上的JMX MBean代理實現。該代理與PC聯合體(complex)上的遠程JMX Mbean伺服器通信。AONS MIB被修改以被SNMP集成到第三方控制臺。圖24是圖示了AONS監視體系結構的圖。
3.7.14 AONS工具在一個實施例中,提供了下面的工具設置以用於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或其他非易失性存儲裝置中以供以後執行。以這種方式,計算機系統50可以獲得載波形式的應用代碼。
5.0擴展和替換在前述說明書中,已經參考本發明的特定實施例描述了本發明。但是,應當清楚,可以對本發明進行各種修改和改變,而不脫離本發明的更寬廣的精神和範圍。因此,說明書和附圖應被當作是說明性的,而非限制性的。
權利要求
1.一種在網絡元件中執行變換適配器功能的方法,該方法包括以下計算機實現的步驟在所述網絡元件處確定包含在一個或多個數據分組的一個或多個淨荷部分中的第一應用層消息,其中所述第一應用層消息遵循第一應用層協議;確定所述第一應用層協議;基於所述第一應用層協議,從所述網絡元件可訪問的多個適配器中選擇第一適配器;以及將所述第一應用層消息作為輸入提供到所述第一適配器,其中所述第一適配器將所述第一應用層消息轉換成不遵循所述第一應用層協議的第二消息。
2.如權利要求1所述的方法,還包括在所述網絡元件處截取所述一個或多個數據分組,其中所述一個或多個數據分組的目的地為位於不同於所述網絡元件的設備上的應用。
3.如權利要求1所述的方法,還包括從位於所述網絡元件外的數據存儲庫中讀取所述第一應用層消息,其中所述第一應用層消息已被位於不同於所述網絡元件的設備上的應用存儲在所述數據存儲庫中。
4.如權利要求3所述的方法,其中所述數據存儲庫是消息隊列,並且其中讀取所述第一應用層消息的步驟包括判斷所述消息隊列是否包含任意應用層消息;並且響應於確定所述消息隊列中包含應用層消息,從所述消息隊列中讀取所述第一應用層消息,並從所述消息隊列中刪除所述第一應用層消息。
5.如權利要求1所述的方法,還包括從發送隊列中讀取所述第一應用層消息,其中所述發送隊列中存儲了應用發送到消息隊列別名的應用層消息,其中所述消息隊列別名對所述應用表現為遠程目的地應用從其讀取應用層消息的遠程目的地消息隊列,並且所述發送隊列獨立於所述遠程目的地消息隊列。
6.如權利要求5所述的方法,還包括將所述第二消息轉換成遵循某一應用層協議的第三應用層消息;並且將所述第三應用層消息發送到中間人,該中間人將所述第三應用層消息存儲在所述遠程目的地消息隊列中。
7.如權利要求1所述的方法,還包括基於所述第二消息,確定消息分類;基於所述消息分類,從所述多個適配器中選擇第二適配器;以及將所述第二消息作為輸入提供到所述第二適配器,其中所述第二適配器將所述第二消息轉換成遵循第二應用層協議的第三應用層消息。
8.如權利要求7所述的方法,其中所述第二應用層協議不同於所述第一應用層協議。
9.如權利要求7所述的方法,其中所述第二適配器將所述第三應用層消息發送到中間人,該中間人將所述第三應用層消息存儲在所述網絡元件外部的、目的地應用從其讀取應用層消息的目的地消息隊列中。
10.如權利要求1所述的方法,其中確定所述第一應用層協議的步驟包括確定在其上接收到所述一個或多個數據分組的傳輸控制協議(TCP)埠;以及基於映射信息,確定所述TCP埠與所述第一應用層協議相關聯。
11.如權利要求1所述的方法,還包括在所述網絡元件處接收用於實現所述第一適配器的程序代碼;並且響應於接收到所述程序代碼,將所述程序代碼存儲在所述網絡元件處。
12.如權利要求1所述的方法,還包括在接收到所述一個或多個數據分組之後,在所述網絡元件處接收用於實現第二適配器的程序代碼;以及響應於接收到所述程序代碼,將所述程序代碼存儲在所述網絡元件處。
13.如權利要求1所述的方法,其中所述第一適配器通過從所述第一應用層消息中刪除特定於所述第一應用層協議的信息來將所述第一應用層消息轉換成所述第二消息。
14.如權利要求1所述的方法,其中所述第一應用層消息遵循超文本傳輸協議(HTTP),並且其中所述第二消息不遵循HTTP。
15.如權利要求1所述的方法,其中所述第一應用層消息遵循IBMMQ協議,並且其中所述第二消息不遵循IBM MQ協議。
16.如權利要求1所述的方法,其中所述第一應用層消息遵循TIBCOEMS協議,並且其中所述第二消息不遵循TIBCO EMS協議。
17.如權利要求1所述的方法,其中所述第一應用層消息遵循文件傳輸協議(FTP),並且其中所述第二消息不遵循FTP。
18.如權利要求1所述的方法,其中所述第一應用層消息遵循簡單郵件傳輸協議(SMTP),並且其中所述第二消息不遵循SMTP。
19.如權利要求1所述的方法,其中所述網絡元件是交換機或路由器。
20.一種用於在網絡元件中代表應用透明地執行消息淨荷處理功能的方法,該方法包括以下計算機實現的步驟在所述網絡元件處截取目的地為不同於所述網絡元件的設備的一個或多個數據分組;基於包含在所述一個或多個數據分組中的信息,確定特定消息分類;確定與所述特定消息分類相關聯的一個或多個動作;在所述網絡元件處執行所述一個或多個動作;以及從所述網絡元件發送包含修改後的消息的一個或多個數據分組,其中所述一個或多個動作中的至少一個包括修改包含在所述一個或多個數據分組的一個或多個淨荷部分中的應用層消息的一部分,以產生所述修改後的消息。
21.一種承載了一個或多個指令序列的計算機可讀介質,所述指令序列用於在網絡元件中執行變換適配器功能,其中當指令被一個或多個處理器執行時使得所述一個或多個處理器執行以下步驟在所述網絡元件處確定包含在一個或多個數據分組的一個或多個淨荷部分中的第一應用層消息,其中所述第一應用層消息遵循第一應用層協議;確定所述第一應用層協議;基於所述第一應用層協議,從所述網絡元件可訪問的多個適配器中選擇第一適配器;以及將所述第一應用層消息作為輸入提供到所述第一適配器,其中所述第一適配器將所述第一應用層消息轉換成不遵循所述第一應用層協議的第二消息。
22.一種用於在網絡元件中執行變換適配器功能的裝置,包括用於在所述網絡元件處確定包含在一個或多個數據分組的一個或多個淨荷部分中的第一應用層消息的裝置,其中所述第一應用層消息遵循第一應用層協議;用於確定所述第一應用層協議的裝置;用於基於所述第一應用層協議,從所述網絡元件可訪問的多個適配器中選擇第一適配器的裝置;以及用於將所述第一應用層消息作為輸入提供到所述第一適配器的裝置,其中所述第一適配器將所述第一應用層消息轉換成不遵循所述第一應用層協議的第二消息。
23.一種用於在網絡元件中執行變換適配器功能的裝置,包括網絡接口,其耦合到用於從其接收一個或多個分組流的數據網絡;處理器;一個或多個存儲的指令序列,所述指令序列在被所述處理器執行時,致使所述處理器執行以下步驟在所述網絡元件處確定包含在一個或多個數據分組的一個或多個淨荷部分中的第一應用層消息,其中所述第一應用層消息遵循第一應用層協議;確定所述第一應用層協議;基於所述第一應用層協議,從所述網絡元件可訪問的多個適配器中選擇第一適配器;以及將所述第一應用層消息作為輸入提供到所述第一適配器,其中所述第一適配器將所述第一應用層消息轉換成不遵循所述第一應用層協議的第二消息。
24.一種系統,包括客戶端應用,其利用第一應用層協議發送應用層消息,其中所述消息被包含在被尋址到伺服器應用的一個或多個數據分組中;伺服器應用,其利用不同於所述第一應用層協議的第二應用層協議接收所述消息;以及網絡元件,其截取所述一個或多個數據分組並修改所述消息,以使得所述消息使用所述第二應用層協議而非所述第一應用層協議。
全文摘要
本發明公開了一種用於在網絡元件中代表應用執行消息和變換適配器功能的方法。根據一個方面。該網絡元件確定被統一包含在數據分組的淨荷部分中的應用層消息。該應用層消息遵循應用層協議,例如超文本傳輸協議(HTTP)。該網絡元件確定應用層消息所遵循的應用層協議。基於該應用層協議,從多個網絡元件可訪問的適配器中選擇一個適配器。該應用層消息給提供到所選擇的適配器,該適配器將應用層消息轉換成不特定於任何特定應用層協議的「規範」消息。
文檔編號G06F15/16GK101023420SQ200580031604
公開日2007年8月22日 申請日期2005年11月10日 優先權日2004年11月17日
發明者普拉文·辛哈勒, 李清清, 尤扎·科塔姆巴瓦拉, 帕利凡·歐利森, 董偉業, 蘇尼爾·波特 申請人:思科技術公司