專利名稱:基于硬件的消息傳遞設備的制作方法
技術領域:
本發(fā)明涉及數據消息傳遞中間件體系結構,更具體地說,涉及具有發(fā) 布和訂購(下文稱作"發(fā)布/訂購")中間件體系結構的消息傳遞系統(tǒng)中的 基于硬件的消息傳遞設備。
背景技術:
數據消息傳遞基礎設施所要求的日益提高的性能水平強迫聯網基礎設 施和協(xié)議的發(fā)展?;旧希瑪祿职l(fā)涉及各種數據源和目的地,以及各種 類型的互連體系結構和數據源和目的地之間的通信模式。現有數據消息傳 遞體系結構的示例包括輪軸輪輻式(hub-and-spoke),對等式和存儲轉發(fā) 式。利用輪軸輪輻系統(tǒng)配置,所有通信都通過輪軸傳輸,這在處理量大時 通常會導致性能瓶頸。因此,這種消息傳遞系統(tǒng)產生了等待時間。繞過這 種瓶頸的一種方法是布署更多的服務器,并且在這些不同的服務器之間分 布網絡負載。但是,這種體系結構表現出可擴展性和操作問題。與具有輪 軸輪輻配置的系統(tǒng)相比,具有對等配置的系統(tǒng)對應用產生了不必要的壓力
以處理和過濾數據,并且僅與其最慢的客戶或節(jié)點一樣快。而具有存儲轉 發(fā)系統(tǒng)配置的系統(tǒng)為了提供持久性,要在將數據轉發(fā)到路徑中的下一個節(jié) 點之前存儲該數據。存儲操作通常通過索引和將消息寫到存儲盤來實現, 這可能產生性能瓶頸。此外,在消息量增大了時,索引和寫入任務可能相 當慢,因此可能引入額外的等待時間?,F有數據消息傳遞體系結構共有一些不足。 一個共同的不足是在現有 體系結構中數據消息傳遞依賴于駐留在應用層上的軟件。這意味著消息傳 遞基礎設施要經歷OS (操作系統(tǒng))排隊和網絡I/0 (輸入/輸出),這可能 產生性能瓶頸。此外,傳統(tǒng)系統(tǒng)中路由選擇是以軟件方式實現的。另一個 共同的不足是現有體系結構靜態(tài)地而不是動態(tài)地使用數據傳輸協(xié)議,即使 在某些情形下其他協(xié)議可能更合適也是如此。常見協(xié)議的一些示例包括可 路由多播、廣播或單播。實際上,現有體系結構中的應用編程接口 (API)未被設計為實時地在傳輸協(xié)議之間切換。另外,網絡配置判決通常是在布署時進行的,并且通常被定義為在特 定假設下對一組網絡和消息傳遞條件進行優(yōu)化。與靜態(tài)(固定的)配置相 關聯的限制排除了實時動態(tài)網絡重配置。換言之,現有體系結構是針對特 定傳輸協(xié)議配置的,而該傳輸協(xié)議并不總是適合所有網絡數據傳輸負載條 件,因此,現有體系結構總是不能實時地應對改變或增大的負載能力需 求。此外,在數據消息傳遞去往特定的接收者或者接收者群組時,現有消 息傳遞體系結構使用可路由多播來將數據傳輸過網絡。但是,在針對多播 建立的系統(tǒng)中,存在對可以用來分發(fā)數據的多播群組的數目的限制,結 果,消息傳遞系統(tǒng)不再將數據發(fā)送向未被向其訂購的目的地(即,不是該 特定數據的訂戶的客戶)。由于數據過濾,這增大了客戶的數據處理負載 和丟棄率。因此,由于任何原因變?yōu)檫^載并且不能跟上數據流的客戶最終 丟棄進入數據,并且稍后要求重傳。重傳對整個系統(tǒng)造成影響,因為所有 客戶都接收重復的傳輸,并且所有客戶都對進入數據進行重新處理。因 此,重傳可能導致多播風暴,并且最終可能使整個系統(tǒng)癱瘓。在系統(tǒng)是針對單播消息傳遞建立來作為減少丟棄率的一種方法時,該
消息傳遞系統(tǒng)可能因為數據復制而經歷帶寬飽和。例如,如果多于一個客 戶訂購了感興趣的給定話題,則消息傳遞系統(tǒng)必須將該數據遞送到每個訂 戶,實際上,系統(tǒng)將該數據的不同拷貝發(fā)送到每個訂戶。盡管這解決了客 戶濾除非訂購數據的問題,但是單播傳輸是不可擴展的,因此基本上不適 合訂購特定數據的大量客戶群組或者消費模式極度重疊的情形。另外,在發(fā)布者和訂購者之間的路徑中,消息在應用之間的跳中傳 播,其中每跳引入了應用和操作系統(tǒng)(OS)等待時間。因此,總的端到端 等待時間隨著跳數增多而增大。另外,在將消息從發(fā)布者路由到訂購者 時,沿路徑的消息吞吐量受到該路徑中的最慢節(jié)點的限制,在現有系統(tǒng)中 沒有方法來實現端到端消息傳遞流控制來克服該限制?,F有體系結構的另一個共同不足是它們的協(xié)議變換較慢并且數量非常多。這是因為企業(yè)應用集成(EAI)領域中的IT (信息技術)權宜(band-md)策略所致,在該領域中,越來越多的新技術被與遺留系統(tǒng)集成。因此,在多個領域中都需要提高數據消息傳遞系統(tǒng)性能。其中性能可 能需要提高的示例有速度、資源分配、等待時間等。發(fā)明內容本發(fā)明部分基于前述觀察和利用不同的方法可以解決這種不足使得具 有更好的結果這一觀點,其中所述不同方法包括基于硬件的解決方案。這 些觀察使得開發(fā)出用于大量、低等待時間消息傳遞的端到端消息發(fā)布Z訂購 中間件體系結構,特別是基于硬件的消息傳遞設備(MA)。因此,具有 根據本發(fā)明原理的端到端消息發(fā)布/訂購中間件體系結構的數據分發(fā)系統(tǒng)可 以有利地在極低等待時間的情況下路由大量的消息,這是通過利用基于鄰 居的路由選擇和網絡非居間化(disintermediation)減少中間跳,引入高效 的本地到外部和外部到本地協(xié)議轉換、實時監(jiān)控系統(tǒng)性能(包括等待時 間)、布署基于話題和基于信道的消息通信、以及動態(tài)并且智能地對系統(tǒng) 互連配置和消息傳輸協(xié)議進行優(yōu)化,等等來實現的。另外,這種系統(tǒng)可以 利用數據緩存提供有保證的遞送服務質量。結合資源分配,根據本發(fā)明的數據分發(fā)系統(tǒng)帶來了實時動態(tài)分配可用 資源的優(yōu)點。就此而言,與傳統(tǒng)的靜態(tài)配置方法相反,本發(fā)明設想了一種 系統(tǒng),該系統(tǒng)具有用于資源分配的實時、動態(tài)、學習的方法。其中可以對 資源分配進行實時優(yōu)化的示例包括網絡資源(帶寬、協(xié)議、路徑/路由的利 用)和客戶系統(tǒng)資源(CPU、存儲器和盤空間的利用)。結合監(jiān)控系統(tǒng)拓撲和性能,根據本發(fā)明的數據分發(fā)系統(tǒng)有利地區(qū)分開 消息級和幀級等待時間測量。在某些情形中,這些測量之間的相關性提供 了有競爭力的商業(yè)優(yōu)點。換言之,等待時間的本質和程度可以指示最佳數 據和數據源,而其又可以用在商業(yè)過程中,并且提供有競爭力的優(yōu)勢。因此,根據所示并且在這里寬廣描述的本發(fā)明的目的,具有發(fā)布/訂購 中間件體系結構的一種示例性系統(tǒng)包括 一個或多個消息傳遞設備,其被配置為用于接收和路由消息;介質;以及經由所述介質鏈接的設置和管理 設備,其被配置用于與每個消息傳遞設備交換管理消息。在這種系統(tǒng)中, 消息傳遞設備通過動態(tài)選擇消息傳輸協(xié)議和消息路由路徑,來執(zhí)行消息的 路由選擇。進一步根據本發(fā)明的目的,消息傳遞設備(MA)被配置為邊沿M八 或核心MA,其中每個MA具有高速互連總線,通過該總線各個硬件模塊 被鏈接,另外,邊沿MA還具有協(xié)議翻譯引擎(PTE)。在每個MA中, 硬件模塊本質上被劃分成三個平面模塊組,分別為控制平面、數據平面和 服務平面。總而言之,從這里的描述,所附權利要求書以及后面將描述的附圖可 以更好地理解本發(fā)明的這些和其他特征、方面和優(yōu)點。
被結合到說明書中并且作為說明書的一部分的
了本發(fā)明的各 個方面,并且與說明書一起說明本發(fā)明的原理。只要方便,在所有附圖中 相同的標號將用于指代相同或類似的元件。圖1示出了根據本發(fā)明原理的端到端中間件體系結構。圖la是示出了覆蓋網絡(overlaynetwork)的圖。圖2是示出了利用根據本發(fā)明原理的端到端中間件體系結構實現的企
業(yè)基礎設施的圖。圖2a是示出了具有創(chuàng)建網絡骨干網非居間化的消息設備(MA)的企 業(yè)基礎設施物理布署的圖。圖3示出了基于信道的消息傳遞系統(tǒng)的體系結構。圖4示出了一種可能的基于話題的消息格式。圖5示出了基于話題的消息路由選擇和路由選擇表。圖6a-d是示出了基于硬件的消息傳遞設備的各個方面的圖。圖6e示出了基于硬件的消息傳遞設備的功能方面。圖7示出了對自適應消息流控制的影響。
具體實施方式
這里的說明提供了消息發(fā)布/訂購系統(tǒng)的端到端中間件體系結構的多個 細節(jié),具體而言,根據本發(fā)明各個實施例的基于硬件的消息傳遞設備 (MA)的細節(jié)。但是,在概括這多個實施例的細節(jié)之前,下面簡單說明 在本說明中使用的術語。注意,該說明僅是為了澄清并且向讀者給出對可 能如何使用這些術語的理解,但是不是將這些術語限于使用它們的上下文 中,也不是要因此限制權利要求書的范圍。術語"中間件"在計算機工業(yè)中作為一個一般術語使用,針對在兩個 分離的通常己存在的程序之間協(xié)調的任何編程。添加中間件的目的是從應 用卸下與信息交換相關聯的一些復雜性,其中這是通過定義網絡中的所有 參與者(發(fā)布者和訂購者)之間的通信接口等來實現的。 一般而言,中間 件程序提供消息傳遞服務,以使得不同的應用程序可以通信。利用中間件 軟件層,可以無縫地執(zhí)行應用之間的信息交換。通常通過利用中間件將不 同的應用程序在系統(tǒng)上連結到一起被稱作企業(yè)應用集成(EAI)。但是, 在這種上下文中,"中間件"可以是一種更廣的術語,用在在源和目的地 之間的消息傳遞和布署來實現這種消息傳遞的設備的上下文中;因此,中 間件體系結構單獨或者與下面將描述的組合覆蓋了實現高效數據消息傳遞 的聯網和計算機硬件與軟件組件。此外,術語"消息傳遞系統(tǒng)"或者"中 間件系統(tǒng)"可以被用在發(fā)布/訂購系統(tǒng)的上下文中,在該系統(tǒng)中,消息傳遞
服務器對在發(fā)布者和訂購者之間的消息路由選擇進行管理。實際上,消息 傳遞中間件中發(fā)布/訂購的范式是可擴展的,因此是一種有力的模型。術語"客戶"可以用在客戶機-服務器應用等的上下文中。在一個實例 中,客戶是這樣一種系統(tǒng)或應用,其利用應用編程接口 (API)注冊到中 間件系統(tǒng),以訂購信息,并且接收該中間件系統(tǒng)遞送的數據。中間件體系 結構邊界內部的API是一種客戶;并且外部客戶是不使用該API的任何發(fā) 布/訂購系統(tǒng)(或者外部數據目的地),并且為了與之通信,消息要通過協(xié) 議變換(稍后將描述)。術語"外部數據源"可以用在數據分發(fā)和消息發(fā)布Z訂購系統(tǒng)的上下文 中。在一個示例中,外部數據源被認為是位于企業(yè)專用網絡內或者外部的 系統(tǒng)或應用,其采用常用協(xié)議之一或者其自己的消息協(xié)議發(fā)布消息。外部 數據源的一個示例是市場數據交換,其發(fā)布股市報價,股市報價經由中間 件系統(tǒng)被分發(fā)到交易員。外部數據源的另一個示例是事務性數據。注意, 在后面將更詳細描述的本發(fā)明的典型實現方式中,中間件體系結構采用其 唯一的本地協(xié)議,來自外部數據源的數據一旦進入該中間件系統(tǒng)域就被轉 換成該唯一的本地協(xié)議,從而避免了傳統(tǒng)系統(tǒng)中典型的多協(xié)議變換。術語"外部數據目的地"也用在數據分發(fā)和消息發(fā)布/訂購系統(tǒng)的上下 文中。例如,外部數據目的地是位于企業(yè)專用網絡內或外部的系統(tǒng)或應 用,其訂購經由本地/全局網絡被路由的信息。外部數據目的地的一個示例 可以是對由交易員發(fā)布的事務訂單進行處理的前述市場數據交換。外部數 據目的地的另一個示例是事務性數據。注意,在前述中間件體系結構中, 去往外部數據目的地的消息從本地協(xié)議被翻譯成與該外部數據目的地相關 聯的外部協(xié)議。從這里的描述可以確認,可以利用作為基于硬件的解決方案被實現在 中間件體系結構內的各種配置種的消息傳遞設備以各種方式來實現本發(fā) 明。因此,說明從圖l示出的端到端中間件體系結構的示例開始。這種示例性體系結構組合了許多有益特征,這些有益特征包括消息傳遞公共概念、API、容錯、設置和管理(P&M)、服務質量(QoS-合并的,盡力而為的、有保證同時連接的、有保證同時不連接的,等等)、有
保證遞送QoS的持久緩存、命名空間和安全性服務的管理、發(fā)布/訂購生 態(tài)系統(tǒng)(核心、入口和出口組件)、傳輸透明的消息傳遞、基于鄰居的消 息傳遞(一種作為輪軸輪輻、對等和存儲轉發(fā)之間的混合體的模型,該模 型使用基于訂購的路由選擇協(xié)議,可以在必要時將訂購傳播到所有鄰 居)、遲計劃綁定、部分發(fā)布(與所有數據相對,僅發(fā)布改變的信息)和 動態(tài)分配網絡和系統(tǒng)資源。后面將說明,發(fā)布/訂購中間件系統(tǒng)有益地結合 了中間件體系結構的容錯設計。在每個發(fā)布/訂購生態(tài)系統(tǒng)中,存在至少一個或多個(通常是兩個或更多個)消息傳遞設備(MA),其中每個消息 傳遞設備被配置為充當邊沿(出口/入口) MA或核心MA。注意,發(fā)布/訂 購生態(tài)系統(tǒng)的核心MA部分使用前述本地消息傳輸協(xié)議(對于中間件系統(tǒng) 本地的),而入口和出口部分,邊沿MA則分別向該本地協(xié)議翻譯或者從 該本地協(xié)議翻譯。除了發(fā)布/訂購系統(tǒng)組件之外,圖1的圖還示出了它們之間的邏輯連接 和通信。從圖可見,所示的中間件體系結構是分布式系統(tǒng)的中間件體系結 構。在具有這種體系結構的系統(tǒng)中,兩個截然不同的物理組件之間的邏輯 通信是利用消息流和相關聯的消息協(xié)議建立起來的。消息流包含兩類消息 之一管理和數據消息。管理消息用于管理和控制不同的物理組件、管理 對數據的訂購,等等。數據消息用于在源和目的地之間傳輸數據,并且在 典型的發(fā)布/訂購消息傳遞中,存在數據消息的多個發(fā)送者和多個接收者。利用所示結構配置和邏輯通信,該具有發(fā)布/訂購中間件體系結構的分 布式消息傳遞系統(tǒng)被設計來執(zhí)行多種邏輯功能。 一種邏輯功能是消息協(xié)議 翻譯,該功能有利地在邊沿消息傳遞設備(MA)組件處執(zhí)行。這是因為 發(fā)布/訂購中間件系統(tǒng)的邊界內的通信是利用針對消息的本地協(xié)議獨立于下 層傳輸邏輯被執(zhí)行的。這就是將這種體系結構稱為傳輸透明基于信道的消 息傳遞體系結構的原因。第二種邏輯功能是將消息從發(fā)布者路由到訂購者。注意,這些消息被 路由過整個發(fā)布/訂購網絡。因此,路由選擇功能由其中傳播消息的每個 MA執(zhí)行,即,從邊沿MA106a-b (或者API)到核心MA 108a-c,從一個 核心MA到另一個核心MA,最終到達邊沿MA (例如,106b)或者API 110a-b。 API llOa-b經由程間通信總線(套接字、共享存儲器等)與應用 I"—n通信。第三種邏輯功能是針對不同類型的有保證的遞送服務質量存儲消息, 包括例如有保證同時連接的和有保證同時不連接的。這是通過添加存儲轉 發(fā)功能來實現的。第四種功能是將這些消息遞送到訂購者。(如圖所示, API106a-b將消息遞送到訂購應用112^)。在這種發(fā)布/訂購中間件體系結構中,系統(tǒng)配置功能以及其他管理和系 統(tǒng)性能監(jiān)控功能由P&M系統(tǒng)管理。配置涉及發(fā)布/訂購中間件系統(tǒng)網絡和 組件的物理和邏輯配置。監(jiān)控和報告涉及對所有網絡和系統(tǒng)組件的健康進 行監(jiān)控并且自動報告結果,這是按照每個要求進行的或者被記入日志。 P&M系統(tǒng)利用管理消息執(zhí)行其配置、監(jiān)控和報告功能。另夕卜,P&M系統(tǒng) 允許系統(tǒng)管理員定義與被路由遍該發(fā)布/訂購系統(tǒng)的每個消息相關聯的消息 命名空間。因此,發(fā)布/訂購網絡可以物理地和/或邏輯地被劃分成基于命 名空間的子網絡。P&M系統(tǒng)管理具有一個或多個MA的發(fā)布/訂購中間件系統(tǒng)。這些 MA取決于它們在系統(tǒng)中的角色被布署為邊沿MA或者核心MA。邊沿 MA在大多方面與核心MA類似,除了其包括協(xié)議翻譯引擎之外,協(xié)議翻 譯引擎將消息從外部協(xié)議翻譯成本地協(xié)議和從本地協(xié)議翻譯成外部協(xié)議。 因此, 一般來說,消息傳遞系統(tǒng)中發(fā)布/訂購中間件體系結構的邊界(即, 端到端發(fā)布/訂購中間件系統(tǒng)邊界)由其中存在邊沿MA 106a-b和API 110a-b的邊沿表征;并且在這些邊界內,存在核心MA108a-c。注意,系統(tǒng)體系結構不被限制到特定的受限的地理區(qū)域,并且實際 上,系統(tǒng)體系結構被設計為超越區(qū)域或國家邊界,甚至跨越大洲。在這種 情形中, 一個網絡中的邊沿MA可以經由現有的聯網基礎設施與地理上遠 離的另一個網絡中的邊沿MA通信。在典型的系統(tǒng)中,核心MA 108a-c將在該發(fā)布/訂購中間件系統(tǒng)內部發(fā) 布的消息路由向邊沿MA或API (例如,API 110a-b)。尤其是在核心 MA中的路由選擇圖被設計為用于最大量、低等待時間并且高效的路由選 擇。此外,核心MA之間的路由選擇可以實時動態(tài)改變。對于穿過多個節(jié) 點(核心MA)的給定的消息傳遞路徑,路由選擇的實時改變是基于一個 或多個度量的,這些度量包括網絡利用、總的端到端等待時間、通信量、 網絡和/或消息延遲、丟失和抖動?;蛘?,不是從兩條或多條不同的路徑中動態(tài)選擇最佳執(zhí)行路徑,而是 MA可以基于消息復制執(zhí)行多路徑路由選擇,并且從而通過所有路徑發(fā)送相同的消息。位于不同路徑的匯聚點處的所有MA將丟棄復制的消息,僅轉發(fā)第一個到達的消息。這種路由選擇方法具有使消息傳遞基礎設施針對低等待時間被最優(yōu)化的優(yōu)點;但是這種路由選擇的缺點是基礎設施需要更 多的網絡帶寬來傳送復制的流量。邊沿MA具有這樣的能力將進入消息的任何外部消息協(xié)議轉換成中 間件系統(tǒng)的本地消息協(xié)議;以及從本地消息協(xié)議轉換成外出消息的外部協(xié) 議。S卩,在消息進入發(fā)布/訂購網絡域(入口)時,外部協(xié)議被轉換成本地(例如,Tervela )消息協(xié)議;并且在消息離開發(fā)布/訂購網絡域(出口) 時,本地協(xié)議被轉換成外部協(xié)議。邊沿MA還操作用于將己發(fā)布的消息遞 送到訂購的外部數據目的地。另外,邊沿和核心MA 106a-b和108a-c都能夠在轉發(fā)消息之前存儲消 息??梢詫崿F該功能的一種方法是利用緩存引擎(CE) 118a七。 一個或多 個CE可以被連接到相同的MA。理論上,不認為API具有這種存儲轉發(fā) 能力,盡管實際上API 110a-b可以在將消息遞送到應用之前存儲消息,并 且其可以在將從應用接收到的消息遞送到核心MA、邊沿MA或者另一個 API之前存儲它們。在MA (邊沿或核心MA)具有到CE的活動連接時,其將被路由的 消息的全部或者子集轉發(fā)到CE, CE將它們寫到存儲區(qū)域中以實現持久 性。在預定時間段中,這些消息然后可在被請求時用于重傳。其中實現了 這種特征的示例有數據中繼、部分發(fā)布和各種服務質量級別。部分發(fā)布在 減少網絡和客戶負載方面是有效的,因為其要求僅發(fā)送更新的信息,而不 是所有信息。為了說明路由選擇圖可能如何實現路由選擇,圖1中示出了發(fā)布/訂購 路由選擇路徑的數個示例。在該圖示中,發(fā)布/訂購網絡的中間件體系結構 在發(fā)布者和訂購者之間提供了五條或更多的通信路徑。第一通信路徑將外部數據源鏈接到外部數據目的地。從外部數據源llU妾收到的已發(fā)布消息被翻譯成本地(例如,Tervela )消息協(xié)議, 然后被邊沿MA 106a路由。本地協(xié)議消息可以從邊沿MA 106a被路由的 一條路線是到外部數據目的地116n。該路徑被稱作通信路徑la。在這種 情形中,本地協(xié)議消息被轉換成適于該外部數據目的地的外部協(xié)議消息。 本地協(xié)議消息可以從邊沿MA 106a被路由的另一條路線是內部通過核心 MA 108b。該路徑被稱作通信路徑lb。沿著該路徑,核心MA 108b將本 地消息路由到邊沿MA 106a。但是,在邊沿MA 106a將本地協(xié)議消息路由 到外部數據目的地116!之前,其將它們轉換成適于該外部數據目的地116, 的外部消息協(xié)議??梢?,這種通信路徑不要求API將消息從發(fā)布者路由到 訂購者。因此,如果發(fā)布/訂購系統(tǒng)被用于外部源到目的地的通信,則該系 統(tǒng)無需包括API。被稱作通信路徑2的另一條通信路徑利用API 110b將外部數據源 114n鏈接到一個應用。從外部數據源接收到的已發(fā)布的消息在邊沿MA 106a處被翻譯成本地消息協(xié)議,然后被該邊沿MA路由到核心MA 108。 從第一核心MA 108a出發(fā),這些消息被路由過另一個核心MA 108c到達 API llOb。從該API出發(fā),這些消息被遞送到訂購應用(例如,1122)。 因為該通信路徑是雙向的,所以在另一個實例中,消息可以沿著反向路徑 從訂購應用112^到達外部數據目的地116n。在每個實例中,核心MA接 收本地協(xié)議消息并且路由本地協(xié)議消息,而邊沿MA接收外部或者本地協(xié) 議消息,并且分別路由本地或外部協(xié)議消息(邊沿MA將這種外部消息協(xié) 議翻譯成本地消息協(xié)議/從本地消息協(xié)議翻譯成這種外部消息協(xié)議)。每個 邊沿MA可以將入口消息同時路由到本地協(xié)議信道和外部協(xié)議信道兩者, 不管該入口消息是作為本地協(xié)議消息還是作為外部協(xié)議消息到來的。結 果,每個邊沿MA可以將入口消息同時路由到外部和內部客戶,其中內部 客戶消耗本地協(xié)議消息,而外部客戶消耗外部協(xié)議消息。這種能力使得消 息傳遞基礎設施能夠與遺留應用和系統(tǒng)無縫并且平滑地集成。被稱作通信路徑3的另一條通信路徑鏈接兩個應用,這兩個應用都利
用API llOa-b。這些應用中的至少一個發(fā)布消息或者訂購消息。已發(fā)布的 消息到訂購應用的遞送或者來自發(fā)布應用的已發(fā)布消息的遞送是利用位于發(fā)布/訂購網絡邊沿的API實現的。在應用訂購消息時,核心或者邊沿MA 之一將消息路由向該API,該API然后在數據正準備被遞送到它們時通知 訂購應用。從應用發(fā)布的消息經由該API被發(fā)送到該API被"注冊"到其 的核心MA 108c。注意,通過"注冊"(登錄)到一個MA,該API變?yōu)樵谶壿嬌线B接 到該MA。 API通過發(fā)送注冊("登錄"請求)消息到MA來發(fā)起到該 MA的連接。在注冊之后,該API可以通過將其訂購消息發(fā)送到該MA來 訂購特定的感興趣的話題。話題被用于發(fā)布/訂購消息傳遞,來定義共享的 訪問域和消息的目標,因此,訂購一個或多個話題允許接收和發(fā)送具有這 種話題注釋的消息。P&M將周期授權更新發(fā)送到網絡中的MA,每個MA 相應地更新其自己的表格。因此,如果發(fā)現API要被授權來訂購特定的話 題(該MA利用路由選擇授權表來驗證該API的授權),則該MA激活到 該API的邏輯連接。然后,如果該API被適當地注冊到核心MA 108c,則 核心MA 108c將數據路由到第二 API 110,如圖所示。在其他示例中,該 核心MA 108b可以通過額外的一個或多個核心MA (未示出)路由消息, 這一個或多個核心MA將消息路由到API 110b, AP 110b然后將消息遞送 到訂購應用112^。可見,通信路徑3不要求存在邊沿MA,因為其不涉及任何外部數據 消息協(xié)議。在一個對這里通信路徑給出示例的實施例中,企業(yè)系統(tǒng)被配置 有新聞服務器,該新聞服務器向雇員發(fā)布關于多種話題的最新新聞。為了 接收到新聞,雇員經由利用API的新聞瀏覽器應用訂購它們感興趣的話 題。注意,中間件體系結構允許訂購一個或多個話題。此外,這種體系結 構通過允許消息注釋中的通配符,從而利用單個訂購請求訂購一組相關的 話題。被稱作通信路徑4的又一條通信路徑是與P&M系統(tǒng)102和104相關 聯的多條路徑之一,這些路徑中的每條將P&M鏈接到發(fā)布/訂購網絡中間
件體系結構中的MA之一。在P&M系統(tǒng)和每個MA之間往返的消息是管 理消息,管理消息用于對該MA進行配置和監(jiān)控。在一種系統(tǒng)配置中, P&M系統(tǒng)直接與MA通信。在另一種系統(tǒng)配置中,P&M系統(tǒng)通過其他 MA與一些MA通信。在又一種配置中,P&M系統(tǒng)可以直接或者間接與 MA通信。在典型的實現方式中,中間件體系結構可以被布署在網絡上,該網絡 具有交換機、路由器和其他聯網設備,并且其采用基于信道的消息傳遞, 該消息傳遞能夠通過任何類型的物理介質通信。這種架構不可知的基于信 道的消息傳遞的一種示例性實現方式是基于IP的網絡。在這種環(huán)境中,所 有發(fā)布/訂購物理組件之間的所有通信都通過UDP (數據報協(xié)議)執(zhí)行, 并且傳輸可靠性由消息傳輸層實現。圖la示出了根據本原理的覆蓋網絡。如圖所示,覆蓋通信l、 2和3可以經由交換機214a-c、路由器216和 子網218a-c在三個核心MA 208a-c之間發(fā)生。換言之,這些通信路徑可以 建立在下層網絡之上,所述下層網絡包括聯網基礎設施,例如子網、交換 機和路由器,并且如上所述,這種體系結構可以跨越較大的地理區(qū)域(不 同的國家甚至不同的大洲)。很明顯,根據本發(fā)明原理的前述和其他端到端中間件體系結構可以被 實現在各種商業(yè)環(huán)境中的各種企業(yè)基礎設施中。圖2示出了一種這樣的實 現方式。在該企業(yè)基礎設施中,市場數據分發(fā)工廠12被構建在發(fā)布/訂購網絡 之上,該發(fā)布/訂購網絡用于將來自各個巿場數據交換設備320^的股票市 場報價路由到交易員(未示出的應用)。這種覆蓋解決方案依賴于下層網 絡提供例如MA之間和這種MA和P&M系統(tǒng)之間的互連。到API 310^n的 市場數據遞送是基于應用訂購的。利用這種基礎設施,利用應用(未示 出)的交易員將來自API 310^的交易單通過發(fā)布/訂購網絡(經由核心 MA308 a-b和邊沿MA 306b)放置回市場數據交換設備320^。圖2a中示出了下層物理布署的一個示例。如圖所示,MA被直接彼此 連接,并且被直接插入到網絡和子網,在網絡和子網中消息傳遞流量的客 戶和發(fā)布者被物理連接。在這種情形中,互連應當是直接連接,§卩,MA
之間的直接連接和它們與P&M系統(tǒng)之間的直接連接。這使得能夠實現網 絡骨干網非居間化,以及消息傳遞流量與其他企業(yè)應用流量物理分離。有 效地,MA可以被用來移除對用于消息傳遞流量的傳統(tǒng)路由網絡的依賴。在物理布署的這種示例中,諸如市場數據交換設備之類的外部數據源或者目的地被直接連接到邊沿MA,例如,邊沿MA 1。諸如市場交易應 用之類的消息傳遞流量消耗或發(fā)布應用被直接連接到子網1-12。這些應用 具有至少兩條路線,用于訂購、發(fā)布或者與其他應用通信;它們可以或者利用企業(yè)骨干網或者利用消息傳遞骨千網,其中企業(yè)骨干網包括多層冗余 的路由器和交換機,它們傳送所有的企業(yè)應用流量,包括但不限于,消息傳遞流量;消息傳遞骨干網包括經由集成交換機彼此直接互連的邊沿和核 心MA。利用替換骨千網具有這樣的優(yōu)點將消息傳遞流量與其他企業(yè)應 用流量隔離,從而更好地控制消息傳遞流量的性能。在一種實現方式中, 位于子網6中的應用邏輯上或者物理上連接到核心MA3,利用Tervda API訂購或者發(fā)布本地協(xié)議的消息流量。在另一種實現方式中,位于子網 7中的應用邏輯上或者物理上連接到邊沿MA 1,訂購或者發(fā)布外部協(xié)議的 消息傳遞流量,其中該MA利用集成的協(xié)議變換引擎模塊執(zhí)行協(xié)議變換。 邏輯上,發(fā)布/訂購網絡的物理組件被構建在類似于開放系統(tǒng)互連(OSI)參考模型的1到4層的消息傳輸層之上。OSI模型的1到4層分別 是物理層、數據鏈路層、網絡層和傳輸層。因此,在本發(fā)明的一個實施例中,發(fā)布/訂購網絡通過例如在所有網絡 交換機和路由器或者網絡交換機和路由器的子集中插入一個或多個消息傳 遞線路卡,從而可以被直接布署到下層網絡/構架中。在本發(fā)明的另一個實 施例中,發(fā)布/訂購網絡可以作為網狀覆蓋網絡(其中,所有物理組件都被 彼此連接)而被有效地布署。例如,4個MA的完全網狀網絡是這樣的網 絡,其中,每個MA被連接到其3個對等MA中的每個。在典型實現方式 中,發(fā)布/訂購網絡是下述組件的網狀網絡 一個或多個外部數據源和/或 目的地、 一個或多個設置和管理(P&M)系統(tǒng)、 一個或多個消息傳遞設備(MA)、 一個或多個可選緩存引擎(CE),以及一個或多個可選應用編 程接口 (API)。
后面將更詳細地說明,在企業(yè)操作中,可靠性、可用性和一致性通常 都是必需的。為此,發(fā)布/訂購中間件系統(tǒng)可以被設計用于容錯,其中其組 件中的若干個被布署為容錯系統(tǒng)。例如,MA可以被布署為容錯MA對,其中第一 MA被稱作主MA,第二 MA被稱作副MA或者容錯MA (FT MA)。同樣,對于存儲轉發(fā)操作,CE (緩存引擎)可以被連接到主或副 核心/邊沿MA。在主或副MA具有到CE的活動連接時,其將所路由的消 息的全部或者子集轉發(fā)向該CE,該CE將它們寫入存儲區(qū)域以實現持久 性。在預定時間段內,這些消息然后可用于根據請求用于重傳。如前所述,每個發(fā)布/訂購中間件系統(tǒng)的邊界內的通信是獨立于下層傳 輸邏輯利用針對消息的本地協(xié)議來執(zhí)行的。這就是將這種體系結構稱作傳 輸透明基于信道的消息傳遞體系結構的原因。圖3更詳細地示出了基于信道的消息傳遞體系結構320。 一般而言, 消息傳遞源和目的地之間的每條通信路徑被限定為一條消息傳遞信道。每 條信道326,-n利用信道源和信道目的地之間的接口 328^通過物理介質建 立。每條這樣的信道是針對專門的消息協(xié)議建立的,所述消息協(xié)議例如是 本地(例如,Tervela )消息協(xié)議或其他。僅邊沿MA (對發(fā)布/訂購網絡 的入口和出口進行管理的那些MA)利用信道消息協(xié)議(外部消息協(xié) 議)?;谛诺老f(xié)議,信道管理層324確定進入和外出消息是否要求 協(xié)議翻譯。在每個邊沿MA處,如果進入消息的信道消息協(xié)議不同于本地 協(xié)議,則信道管理層324將在將要處理的消息傳遞到本地消息層330之 前,通過將它們發(fā)送過協(xié)議翻譯引擎(PTE) 332,從而執(zhí)行協(xié)議翻譯。同 樣,在每個邊沿MA處,如果外出消息的本地消息協(xié)議不同于信道消息協(xié) 議(外部消息協(xié)議),則信道管理層324將在將要處理的消息路由到傳輸 信道3261-n之前,將它們發(fā)送過協(xié)議翻譯引擎(PTE) 332,從而執(zhí)行協(xié) 議翻譯。從而,信道對與物理介質的接口 3281-n、與該物理介質相關聯的 特定網絡和傳輸邏輯、以及消息組件或者片段進行管理。換言之,信道管理OSI傳輸層322。對信道資源的優(yōu)化基于每條信道 被執(zhí)行(例如,基于消耗模式對物理介質的消息密度優(yōu)化,所述消耗模式 包括帶寬、消息大小分 為通信信道是構架不可知的,所以不要求特定類型的構架。實際上,任何構架介質都將工作,例如,ATM、 Infmiband或者以太網。順便提及,在例如單個消息被分割到多個幀或者多個消息被打包到單 個幀中時,可能需要消息分段或重組。消息分段或重組在消息被遞送到信 道管理層之前被執(zhí)行。圖3進一步示出了在具有中間件體系結構的網絡中的多種可能的信道 實現方式。在一種實現方式340中,通信是利用通過太網交換的網絡的多 播,經由基于網絡的信道執(zhí)行的,其中以太網交換的網絡充當用于這種通 信的物理介質。在這種實現方式中,源從其IP地址經由其UDP端口將消 息發(fā)送向具有其關聯UDP端口的目的地群組(被定義為IP多播地址)。 在這種實現方式的變體342中,源和目的地之間的通信是利用UDP單播 通過以太網交換的網絡實現的。源從其IP地址經由其UDP端口將消息發(fā) 送向在其相應的IP地址處具有UDP端口的選擇目的地。在另一種實現方式344中,信道是利用本地Infmiband傳輸協(xié)議通過 Infmiband互連建立的,其中Infmiband架構是物理介質。在這種實現方式 中,信道是基于節(jié)點的,并且源和目的地之間的通信是利用它們各自的節(jié) 點地址基于節(jié)點的。在又一種實現方式346中,信道是基于存儲器的,例 如RDMA (遠程直接存儲器訪問),并且在這里被稱作直接連接 (DC)。利用這種類型的信道,消息從源機器被直接發(fā)送到目的地機器的 存儲器,從而繞過CPU處理來應對從NIC到應用存儲器空間的消息,并 且可能避免了將消息封裝成網絡分組的網絡開銷。至于本地協(xié)議, 一種方法利用前述本地TervelaTM消息協(xié)議。概念上, TervelaTM消息協(xié)議與基于IP的協(xié)議類似。每個消息包含消息頭部和消息 有效載荷。消息頭部包含多個字段,其中一個字段用于話題信息。如上所 述,話題由客戶用來訂購共享的信息域。圖4示出了一個可能的基于話題的消息格式。如圖所示,消息包括頭 部370和主體372和374,主體372和374包括有效載荷。示出了兩類消 息,即,數據和管理消息,這兩類消息具有不同的消息體和有效載荷類 型。頭部包括用于以下內容的字段源和目的地命名空間標識、源和目的
地會話標識、話題序列號和希望時間戳,另外,其還包括話題注釋字段 (該字段優(yōu)選是可變長度的)。話題可以被定義為基于標記的字符串,例如,NYSE.RTF.IBM 376,該字符串是包含IBM股票實時報價的消息的話 題字符串。在一些實現方式中,消息中的話題信息可能被編碼或者被映射到一個 關鍵字,關鍵字可以是一個或多個整數值。然后,每個話題會被映射到一 個唯一的關鍵字,并且話題和關鍵字之間的映射數據庫將由P&M系統(tǒng)維 護,并且通過線路被更新到所有MA。結果,在API訂購或者發(fā)布一個話 題時,MA能夠返回用于消息的話題字段的關聯的唯一關鍵字。優(yōu)選地,訂購格式將遵循與消息話題相同的格式。但是,訂購格式還 支持與任何話題子字符串匹配的通配符以及與話題子字符串匹配的正則表 達式模式。通配符到實際話題的映射可以依賴于P&M系統(tǒng),或者根據通 配符或模式匹配請求的復雜度由MA處理。例如,模式匹配可以遵循例如以下規(guī)則示例#1:具有通配符T1AT3.T4的字符串將與Tl.T2a.T3.T4、 Tl.T2b.T3.T4匹配,但是不與T1.T2.T3.T4.T5匹酉己示例#2:具有通配符T1.氣T3.T4,的字符串將不與Tl.T2a.T3.T4、 Tl.T2b.T3.T4匹配,但是與T1.T2.T3.T4.T5匹酉己示例#3:具有通配符T1.*.T3.T4.[*](第五個元素可選)的字符串將與 Tl.T2a.T3.T4、 Tl.T2b.T3.T4 、以及T1.T2.T3.T4.T5匹配,但是不與 T1.T2.T3.T4.T5.T6匹配示例糾具有通配符T1.T2*.T3.T4的字符串將與Tl.T2a.T3.T4、 Tl.T2b.T3.T4匹酉己,亍旦是不與Ti.T5a.T3.T4匹酉己示例#5:具有通配符T1.*.T3.T4> (任何數目的結尾元素)的字符串 將與Tl.T2a.T3.T4、 Tl.T2b.T3.T4、 T1.T2.T3.T4.T5和T1.T2.T3.T4.T5.T6 匹配圖5示出了基于話題的消息路由選擇。如圖所示,話題可以被定義為 基于標記的字符串,例如,T1.T2.T3.T4,其中Tl、 T2、 T3和T4是可變 長度的字符串??梢姡哂刑囟ㄔ掝}注釋400的進入消息被有選擇地路由到通信信道404,并且路由選擇確定是基于路由選擇表402作出的。話題訂購到信道的映射定義路由,并且用來將消息傳遞遍整個發(fā)布/訂購網絡。 所有這些路由或者說訂購和信道之間的映射的超集定義路由選擇表。路由 選擇表也被稱作訂購表。用于利用基于字符串的話題進行路由選擇的訂購 表可以以多種方式被構造,但是優(yōu)選配置為對其大小以及路由選擇查找速 度進行優(yōu)化。在一種實現方式中,訂購表可以被定義為動態(tài)散列圖結構,而在另一種實現方式中,訂購表可以被布置在樹結構中,如圖5中的圖所示。樹包括由邊連接的節(jié)點(例如,1、…、T1Q),其中話題訂購的每個 子字符串對應于樹中的一個節(jié)點。映射到給定的訂購的信道被存儲在訂購 的葉子節(jié)點上,每個葉子節(jié)點指示該話題訂購來自的信道的列表(即,通 過其接收到訂購請求)。該列表指示哪個信道應接收其話題注釋與該訂購 匹配的消息的拷貝。如圖所示,消息路由選擇查找將消息話題作為輸入, 然后利用該話題的每個子字符串對樹進行解析,來定位與進入消息話題相 關聯的不同信道。例如,TV T2, T3, T4和Ts被導向信道l、 2禾卩3; T,、 丁2和丁3被導向信道4; T\、 T6、 T7、 丁*和丁9被導向信道4和5; TP T6, T7, T8和T9被導向信道1;以及Tp T6、 T7、 丁*和丁1()被導向信道5。盡管對路由選擇表的結構的選擇是要對路由選擇表的查找進行優(yōu)化, 但是查找的性能還取決于用于找到與進入消息話題匹配的一個或多個話題 訂購的搜索算法。因此,路由選擇表結構應當能夠適應這種算法,反之亦 然。減小路由選擇表的大小的一種方式是允許路由選擇算法有選擇地將訂 購傳播遍整個發(fā)布/訂購網絡。例如,如果訂購看來是已被傳播的另一個訂 購的子集(例如,整個字符串的一部分),則無需傳播該子集訂購,因為 MA已具有該訂購的超集的信息?;谇笆觯瑑?yōu)選的消息路由選擇協(xié)議是基于話題的路由選擇協(xié)議,其 中授權在訂戶和相應的話題之間的映射中指示出。授權是針對每個訂戶或 者訂戶群組/類別指定的,指示該訂購有權消耗何種消息或者該發(fā)布者可以 產生(發(fā)布)哪些消息。這些授權是在P&M機器中定義的,被傳輸到發(fā) 布/訂購網絡中的所有MA,然后被MA用來創(chuàng)建和更新它們的路由選擇表。每個MA通過追蹤何人被插入(請求訂購)到何種消息中來更新其路由選擇表。但是,在將路由添加到其路由選擇表之前,MA必須針對發(fā)布/ 訂購網絡的授權對訂購進行檢査。MA驗證可能是鄰居MA、 P&M系統(tǒng)、 CE或者API的訂購實體被授權如此執(zhí)行。如果該訂購是有效的,則路由 將被創(chuàng)建并且被添加到路由選擇表。然后,因為一些授權可能是預先已知 的,所以系統(tǒng)可以被布署以預定義授權,并且在引導時這些授權可以被字 段加載。例如,諸如配置更新之類的一些特定管理消息可能總是被轉發(fā)遍 網絡,并且因此在啟動時被自動載入。給定上面對具有發(fā)布/訂購中間件體系結構的消息傳遞系統(tǒng)的描述,可 以理解消息傳遞設備(MA)在這種系統(tǒng)中具有重要作用。因此,現在描 述根據本發(fā)明原理配置的基于硬件的消息傳遞設備(MA)的細節(jié)。在本 發(fā)明的一種實現方式中,MA是獨立設備。在本發(fā)明的另一種實現方式 中,MA定義諸如路由器或交換機之類的任何網絡物理組件內部的嵌入式 組件(例如,線路卡)。圖6a、 6b、 6c和6d是在各種詳細程度上示出了 基于硬件的MA的框圖。圖6e從功能視角示出了MA。一般而言,MA的體系結構是基于高速互連總線建立的,其中各種硬 件模塊被連接到該高速互連總線。圖6a和6b分別示出了邊沿和核心MA 106和108的基本體系結構,其中高速互連總線508將各個硬件模塊502、 504和506互連。邊沿MA (106,圖6a中)被示為配置有協(xié)議翻譯引擎 (PTE)模塊510,而核心MA (108,圖6b中)被示為未配置PTE模 塊。如進一步所示,在一種實施例中,高速互連總線被構造為PCI/PCI-X 總線樹,其中硬件模塊是PCI/PCI-X外圍設備。PCI (外圍組件互連)通 常被認為是用于計算機高速操作的互連系統(tǒng)。PCI-X (擴展的外圍組件互 連)是用于更高速度計算機操作的一種計算機總線技術(計算機部件之間 的"數據管道")。在替換實施例中,高速互連總線被構造為Infmiband 或者直接存儲器連接介質。在又一個實施例中,硬件模塊是經由交換的構 架背板(例如,高級電信計算體系結構,ATCA)連接的刀片(blade)。每個MA的各種硬件模塊本質上可以被劃分成三組,控制平面模塊組502、數據平面模塊組504和服務平面模塊組506??刂破矫婺K組處理 MA管理功能,包括配置和監(jiān)控。MA管理功能的示例包括配置網絡管理 服務、配置被連接到高速互連總線的硬件模塊、以及對這些硬件模塊進行 監(jiān)控。數據平面模塊組處理數據消息路由選擇和消息轉發(fā)功能。該模塊組 處理由發(fā)布/訂購中間件系統(tǒng)傳輸的消息以及管理消息,但是管理消息也可 以被遞送到控制平面模塊組。服務平面模塊組處理可由控制和數據平面模 塊無縫使用的其他本地服務。在一個實施例中,本地服務可能是以下服 務利用GPS卡或者能周期性地接收毫秒粒度信號的任何外部同步的設備 提供的用于等待時間測量的時間同步服務。這三種模塊組將在下面結合圖 6c、以及圖6a和6b更進一步地描述??刂破矫婺K組502包括管理模塊512。 一般而言,管理模塊結合有 一個或多個運行操作系統(tǒng)(OS)的CPU,所述操作系統(tǒng)例如是Lmux、 Solaris、 Windows或者任何其他OS?;蛘?,管理模塊結合有在安裝在高速 互連底板中的刀片(服務器)中的一個或多個CPU。在又一種配置中,管 理模塊結合有在高性能架裝主機月艮務器(high-performance rack-mounted host server)中運行的一個或多個CPU。另外,管理模塊512包括一個或多個邏輯配置路徑。第一配置路徑是 通過串行接口或網絡連接利用命令行接口 (CLI)建立的,系統(tǒng)管理員通 過該命令行接口可以輸入配置命令。通過CLI的邏輯配置路徑一般被建立 來向MA提供初始配置信息,以允許其建立與P&M系統(tǒng)的連通性。這種 初始配置提供例如但不限于以下信息本地管理IP地址、默認網關、MA 連接到的P&M系統(tǒng)的IP地址。作為引導過程的一部分,這種配置的全部 或者子集可能被用來對MA中的各個硬件組件進行初始化。第二配置路徑是利用通過發(fā)布/訂購中間件系統(tǒng)路由的管理消息來建立 的。 一旦MA具有了到一個或多個P&M系統(tǒng)的連通性,其就將注冊到至 少一個P&M系統(tǒng)系統(tǒng),并且取回其配置。該配置經由在管理模塊512本 地遞送的管理消息被發(fā)送到該MA。從P&M系統(tǒng)取回的MA配置信息包含參數、地址等。MA配置信息 的示例可能包含Syslog配置參數、網絡時間協(xié)議(NTP)配置參數、域名
服務器(DNS)信息、經由SSH/Telnet和/或HTTP/HTTPS的遠程訪問策 略、認證方法(Radius/Tacacs)、發(fā)布/訂購授權、指示到相鄰MA或者 API的連通性的路由選擇信息,等等。整個MA配置可以在管理模塊上被緩存到與該管理模塊相關聯的一個 存儲器資源或者存儲器資源的組合中。MA配置可以被緩存在例如管理模 塊處的存儲器空間中、易失性存儲區(qū)域中(例如,用于引導文件系統(tǒng)的 RAM盤)、非易失性存儲區(qū)域中(例如,存儲器閃存卡或者硬盤驅動 器),或者它們的任意組合中。如果重引導后仍存在,則該被緩存的配置 可以在啟動時由MA加載。在一種實現方式中,緩存的配置還包含由P&M系統(tǒng)提供的配置標識 符(ID)。該配置ID可以用于比較,其中在MA上本地緩存的MA配置 ID被與P&M系統(tǒng)上當前的MA配置ID相比較。如果MA和P&M 二者中 的配置ID相同,則MA可以繞過配置傳送階段,采用本地緩存的配置。 另外,在P&M系統(tǒng)不可達的情況下,MA可以恢復到最近已知的配置, 不管是不是最近的配置,而不是在沒有任何配置的情況下啟動。一旦MA被啟動并且運行,控制平面模塊組(管理模塊152)就對與 MA的硬件模塊內的各個邏輯組件相關聯的健康和任何狀態(tài)改變的標志(狀態(tài)改變事件)進行監(jiān)控。例如,狀態(tài)改變事件可以指示API注冊、 MA注冊,或者它們可以是訂購/退訂事件。這些和其他狀態(tài)改變事件被生 成并且可以在MA本地被存儲一定時間。MA向系統(tǒng)監(jiān)控工具報告這些事 件。可以利用簡單網絡管理協(xié)議(SNMP),或者通過對從MA流向P&M 的未經處理的統(tǒng)計數據進行追蹤的P&M實時監(jiān)控和/或歷史趨勢UI (用戶 界面)模塊對MA進行遠程監(jiān)控。這種未經處理的統(tǒng)計數據可以根據時間 段被分批,以減少正產生的監(jiān)控流量的量?;蛘撸@種未經處理的統(tǒng)計數 據可以按照時間段被聚合和處理(例如,通過計算)。MA的控制平面模塊還負責將新的或者舊的固件版本加載到特定硬件 模塊上。在一個實例中,經由線路上的更新使得固件圖像對MA可用。在 這些維護窗口中,新的固件圖像首先從P&M系統(tǒng)被下載到MA。在接收
到并且確認了該固件圖像后,MA將該圖像上傳到目標硬件模塊。在更新 完成后,為了使升級生效,該硬件模塊可能必須被重引導。存在多種方式來確認軟件圖像, 一種方式涉及嵌入的簽名。例如,MA檢查該圖像是否 已由系統(tǒng)提供者或者其被授權被許可者或者團體(例如,Tervda或者 TervelaTM技術的任何被許可者)之一簽名。優(yōu)選地,系統(tǒng)管理消息的流量通過專用物理接口被路由。這種方法允 許為管理和數據消息流量創(chuàng)建不同的虛擬LAN (VLAN)。這可以通過將 被連接到特定物理接口的交換機端口配置為專用于這種到用于所有系統(tǒng)管 理消息流量的VLAN的接口來實現。然后,其余物理接口的全部或者子集 將專用于數據消息的VLAN。通過在下層構架中區(qū)分并且分離不同類型的 流量,可以獨立地對每種類型的消息流量的性能進行管理??刂破矫婺K組的另一個功能是對訂購表的狀態(tài)和關于MA和API之 間的消息傳遞信道的統(tǒng)計進行監(jiān)控的功能?;谠撔畔ⅲ琈A中的協(xié)議優(yōu) 化服務(POS)決定是否例如從單播信道切換到多播信道,或者反之。類 似地,在發(fā)現了較慢的客戶的情形中,POS可以決定是否將較慢的客戶從 多播信道移動到單播信道,以保持多播信道的操作完整性。前述數據平面模塊組(502,圖6a和6b中)包括一個或多個物理接口 卡(PIC; 514,圖6a-c中),例如,快速以太網、G比特以太網、10G比 特以太網、G比特速度存儲器互連,等等。這些數據平面PIC在邏輯上由 一個或多個消息處理器單元(MPU)控制。MPU被實現為網絡處理器單 元516、基于MIPS的網絡處理卡、定制ASIC、或者任何平臺上的嵌入式 解決方案。PIC 514對包含一個或多個消息的幀進行處理。幀通過入口 PIC進入 MA,入口 PIC包含一個或多個芯片組來控制介質專用處理。在一種配置 中,PIC還負責OSI第四層終止,這對應于信道傳輸專用終止,例如, TCP或UDP終止。結果,從PIC轉發(fā)到MPU的數據可能僅包含來自進入 幀的消息流。在另一種配置中,PIC將網絡分組發(fā)送到在MPU上運行的信 道引擎520。信道引擎在移交該網絡分組中包含的消息之前,執(zhí)行OSI第 三層到第四層的處理。
在又一種配置中,PIC 514是利用信道專用傳輸協(xié)議將消息轉發(fā)到信 道引擎520的存儲器互連接口。另外,在該情形中,信道引擎將具有信道 專用處理適配器,用來解析并從進入數據中抽取消息。在另一種配置中,PIC可能具有專用芯片集和板上存儲器,用于執(zhí)行 消息幀的快速轉發(fā),這與將要被消息路由選擇引擎518路由的這些幀傳遞 到PMU相反。為了實現這種快速轉發(fā)方法,全局路由選擇(訂購)表整 個或者優(yōu)選地部分從MPU被分發(fā)到PIC中的轉發(fā)緩存。利用其轉發(fā)緩存 中的這種路由選擇表,入口 PIC可以對進入消息幀進行檢查來在它們中識 別一個或多個話題或者話題的任何子集,并且基于這種話題將幀直接轉發(fā) 到出口 PICo注意,如果被分發(fā)到PIC的轉發(fā)緩存的訂購表僅代表全局訂 購表的子集,則可以獲得更快的路由選擇查找以及作為結果的更快的消息 轉發(fā)的優(yōu)點。前述MPU 516利用其信道引擎520負責管理PIC和消息路由選擇引擎 518之間的通信接口。 MPU還利用其消息路由選擇引擎518負責維護訂購 表并且將進入消息與訂購和信道相匹配。這些功能可以以多種方式實現, 在這多種方式之一中,它們被配置來在不同的微引擎或者微芯片上運行, 而在這多種方式中的另一種中,它們被配置來在分離的CPU核心上運行。 在第二中情形中,每個核心采用標準的或者定制的網絡棧。在又一種實現 方式中,這些功能被配置來在實時OS之上的多核CPU中運行。優(yōu)選的MPU還具有嵌入的介質交換構架522。因為消息傳遞信道是構 架不可知的,所以MPU可以接口到任何類型的物理介質524。從PIC轉發(fā) 的消息以及可選地從介質交換構架轉發(fā)的消息都被信道引擎520接收到, 然后被轉發(fā)到消息路由選擇引擎518。信道引擎520對消息傳遞信道隊列進行管理。圖6d示出了利用臨時 消息緩存524的消息排隊和利用信道引擎520的消息轉發(fā)。在接收方,消息被從信道隊列移除。在一些實例中,消息傳遞信道可 能具有專門的優(yōu)先級。消息傳遞信道優(yōu)先級在多于一個信道具有未決消息 時是有用的。例如,消息重傳請求應當首先被轉發(fā);因此,應當理解創(chuàng)建 不同的信道用于重傳請求。使重傳請求延遲可能導致更多的重傳請求;在
廣播/多播風暴時發(fā)生的一般就是這種情形。對于邊沿MA 108,信道引擎520中的協(xié)議交換機526檢查消息是否 要求協(xié)議翻譯。如果必需翻譯,則消息被發(fā)送到協(xié)議翻譯引擎510。在該 消息被協(xié)議翻譯引擎轉換成本地協(xié)議(例如,TervelaTM協(xié)議)格式后,其 被轉發(fā)到緩存組件528。緩存組件將該消息放入臨時消息緩存524,其中 該消息將臨時可用于重傳。在其時間段經過后,該消息將被移除或者被另 一個消息覆寫。在一種配置中,臨時消息緩存被實現為與消息路由選擇引 擎518共享的簡單存儲器環(huán)狀緩沖器。優(yōu)選地,臨時消息緩存查找被優(yōu) 化,以便通過例如維護將消息序列號映射到緩存中實際消息,從而加速重 傳過程。消息路由選擇引擎518從臨時消息緩沖524中取出消息,執(zhí)行訂 購查找,然后返回信道列表以轉發(fā)該消息的拷貝。一些管理消息可能必須通過共享總線508 (圖6a、 6b和6c)在管理模 塊512本地被遞送。被本地遞送的消息也可以被轉發(fā)遍發(fā)布/訂購中間件系 統(tǒng)。在一種實現方式中,消息路由選擇引擎518將消息的拷貝推入每個信 道的隊列中。在另一種實現方式中,消息路由選擇引擎518僅將對消息的 引用或指向消息的指針入隊列,其中消息自身仍在臨時消息緩存中。這種 方法具有優(yōu)化MPU上的存儲器利用的優(yōu)點,因為多于一個隊列可能引用 同一個消息。另外,消息路由選擇引擎518在訂購消息隊列532中附加對 消息的引用(例如,指針),其中訂購S1和S2的訂購隊列指向臨時消息 緩存524中的消息。然后,每個隊列維護對與其相關聯的所有訂購的一列引用。該方法具 有這樣的優(yōu)點使得能夠實現訂購級消息處理而不是僅信道級消息處理。 有效地,這些訂購隊列提供了基于每個訂購并且基于每個信道索引消息的 方式;因此,如果對于給定的訂購,需要對消息進行處理,則其縮短了査 找時間。例如,在一個實施例中,實時合并邏輯基于每個訂購被使用。這 還允許MPU執(zhí)行增值計算,例如,用于股票市場報價消息的成交量加權 平均價(VWAP)計算。在發(fā)送方,消息路由選擇引擎518對具有未決排隊消息的信道加標記 或者標志。這允許信道調度器530 了解哪條或者哪些信道要求注意或者具
有專門的優(yōu)先級。信道優(yōu)先級可以被混淆來提供服務質量(QoS)功能。 例如,QoS功能是單獨基于消息頭部字段或者基于消息頭部字段和消息主題的組合實現的。此時,消息路由選擇引擎518移動到消息緩存環(huán)狀緩沖器中的下一個消息。信道調度器530經過具有被排隊的消息的所有信道,利用信道專用通 信策略轉發(fā)未決消息。策略確定使用哪種傳輸協(xié)議,是單播、多播還是其 他。通信策略可以在創(chuàng)建信道時協(xié)商,或者其可能基于資源利用模式而被 實時更新,所述資源利用模式例如是網絡帶寬利用,消息、分組延遲、抖 動、丟失等。信道專用通信策略可以是進一步基于與一個或多個信道目的 地(例如,鄰近的MA或者API)協(xié)商的分組流控制參數的。例如,不是 發(fā)送所有的消息,而是N個消息中可能丟棄一個消息。因此,與該策略相 關聯的一個方面是消息流控制。圖7示出了實時消息流控制(MFC)算法。根據該算法,信道隊列的 大小可以作為閾值參數操作。例如,通過特定信道遞送的消息在接收設備 方處的其信道隊列中累積,并且隨著該信道隊列增大,其大小可以達到在 信道不可能發(fā)生故障的情況下其不能安全地超過的高閾值,以跟上進入消 息流。在接近這種其中信道處于達到其最大能力的危險的情形時,接收消 息傳遞設備可以在信道隊列超出限度之前激活MFC。該MFC在隊列收縮 并且其大小變?yōu)樾∮诘烷撝禃r被關閉。高和低閾值之間的差被設置為足以 產生這種被稱作滯后的行為,其中MFC在比其被關閉的較高隊列大小值 處被開啟。這種閾值差避免了消息流控制的頻繁開啟-關閉振蕩,這種振蕩 在隊列大小在高閾值附近不斷變化時會發(fā)生。因此,為了避免消息傳遞接 收方的隊列超出限度,進入消息的速率被實時動態(tài)MFC所約束,動態(tài) MFC使該速率保持低于最大信道能力。作為對其中在信道隊列接近其能力時丟棄消息的基于滯后的MFC算 法的替換,實時動態(tài)MFC可以操作來混合數據或者對訂購隊列應用一些 合并算法。但是,因為這種操作可能要求額外的消息變換,所以其可能回 歸到較慢的轉發(fā)路徑,而不是保留較快的轉發(fā)路徑。這會放置消息變換對 消息傳遞通吐量的負面影響。該額外的消息變換由與協(xié)議變換引擎類似的
處理器執(zhí)行。這種處理器的示例包括NPU (網絡處理單元)、語義處理 器、MPU上的分離微引擎,等等。為了更高的效率,實時合并或訂購級消息處理可以在發(fā)送者和接收者 之間分發(fā)。例如,在其中僅一個訂購者請求訂購級消息處理的情形中,4每 其推向接收者方上的下游而不是在發(fā)送者方對其進行執(zhí)行是有意義的。但 是,如果多于一個數據客戶正請求相同的訂購級消息處理,則在發(fā)送者方 下游執(zhí)行其是有意義的。在信道的發(fā)送者方和接收者方分發(fā)工作量的目的 是最優(yōu)地使用可用的組合處理資源。傳輸信道自身對傳輸專門處理進行處理,該處理更可能是在接收方上利用系統(tǒng)芯片在MPU或者PIC上被執(zhí)行。在信道將多個消息打包到單個幀中時,其可以保持消息等待時間低于最大可接受等待時間,并且通過釋 放一些處理資源來減輕接收方的壓力。有時更有效地是接收較少量的大幀 而不是處理許多較小的幀。對于可能利用通用計算機硬件組件(包括CPU、存儲器和NIC)在電信OS上運行的API尤其如此。 一般而言, NIC被設計來針對每個接收到的幀生成OS中斷,這又減少了 API可用來 將消息遞送到訂購應用的應用級處理時間。如上所述,僅邊沿MA具有協(xié)議翻譯引擎(PTE)。在邊沿MA中, 數據平面模塊能夠將進入消息轉發(fā)到PTE (510,圖6a、 6c和6d中)。這 種轉發(fā)判決由作為信道引擎520的一部分運行的協(xié)議開關526在MPU 512 處作出。在進入和外出消息協(xié)議與本地消息協(xié)議不同時,該消息被轉發(fā)到 PTE??梢砸岳锰幱谌魏谓M合的硬件和軟件的多種方式實現PTE,包括利 用例如語義處理器、FPGA、 NPU、或者實時執(zhí)行的嵌入式軟件模塊、在 面向網絡的系統(tǒng)芯片或者基于MIPS的處理器上運行的嵌入式0S。如圖 6c的示例中所示,PTE具有流水線化的面向任務的微引擎,包括消息解 析、消息規(guī)則查找、消息規(guī)則應用和消息格式引擎。構建這種硬件模塊時 的體系結構約束是保持消息變換等待時間較低,同時允許協(xié)議之間的多個 復雜的語法變換。另一個約束是使協(xié)議轉換句法(語法)的固件更新非常 靈活,并且獨立于下層硬件。
首先,在流水線中,消息解析引擎540取出從PTE入口隊列548出隊 列的消息,然后解析、標識該消息并對該消息加標記。消息解析引擎然后 將結果轉發(fā)到消息規(guī)則查找引擎542。消息規(guī)則查找引擎基于消息內容執(zhí) 行規(guī)則查找,取回需要被應用的匹配規(guī)則。消息內容和匹配規(guī)則然后被傳 遞到消息規(guī)則應用引擎544。規(guī)則應用引擎根據匹配規(guī)則對該消息的標記 進行變換,然后得到的加標記的消息被轉發(fā)到消息格式引擎546。消息格 式引擎根據本地或者外部消息協(xié)議重建消息體和頭部,然后將其發(fā)送回 PTE出口隊列550。經處理的(翻譯的)消息被運送回共享總線508上去 往信道引擎520。如圖6a和6b所示,每個MA的各種硬件模塊本質上可以被劃分成三 個組,其中的上述控制平面模塊組502和數據平面模塊組504與由服務平 面模塊組506所提供的服務接口并且利用所述服務。就此而言,服務平而 模塊組包括用于控制平面模塊組和數據平面模塊組二者的服務模塊的集 合。服務模塊的一個示例是外部時間源,例如GPS (全球定位系統(tǒng))卡。 這種服務模塊可由任何其他硬件模塊用來獲得準確的時間戳。例如,通過 數據平面路由的每個幀或消息在其進入和/或退出MA時可以被加上時間 戳。這種嵌入的時間戳信息在后面可以用來執(zhí)行等待時間測量。結果,外部等待時間計算例如涉及將來自數據流的嵌入時間戳與幀進 入MA時測得的時間戳相關。然后,通過隨時間追蹤這種外部等待時間, MA能夠建立等待時間趨勢,并且檢測外部等待時間的任何漂移,并且將 該信息嵌入回數據流。這種等待時間漂移隨后可以被消息傳遞路徑中的下 游節(jié)點或者訂購應用采用來進行商業(yè)級判決和獲得有競爭力的優(yōu)勢。為了追蹤等待時間和其他消息傳遞系統(tǒng)統(tǒng)計量,MA具有一個或多個 存儲設備。這些存儲設備保存臨時數據,例如從不同硬件組件獲得的統(tǒng)計 數據、聯網和消息傳遞流量簡檔,等等。在一種實現方式中, 一個或多個 存儲設備包括保存用于MA啟動(引導或重引導)的初始化數據的閃存設 備。為了此目的,這種非易失性存儲器設備包含核和根mm盤,這些對于 管理模塊的引導操作是必須的;并且優(yōu)選還包含默認、啟動和運行配置。這種非易失性存儲器還可以保存用于管理消息安全傳輸的加密密鑰、
數字簽名和證書。在一個示例中,SSL (安全套接字層)協(xié)議使用公鑰和 私鑰(非對稱)加密系統(tǒng),其還包括使用數字證書。類似地,PKI (公鑰 基礎設施)使得諸如因特網之類的公網的用戶能夠通過使用通過受信機構 獲得并共享的公共和私有密碼密鑰對來實現安全并且私密的數據交換。
可以針對硬件模塊所提供的功能對硬件模塊進行描述,如圖6e所示。 消息傳遞設備的功能方面有網絡管理棧602、物理接口管理606、系統(tǒng)管 理服務614、時間戳服務624、消息傳遞層608和在邊沿消息傳遞設備中 的協(xié)議翻譯引擎618。這些功能方面與硬件模塊相關,如下所述。例如,網絡管理棧(602)在管理模塊(512)上運行。TCP/UDP/IP 棧(604)是在管理模塊的CPU上運行的操作系統(tǒng)的一部分。NTP、 SNMP、 Syslog、 HTTP/HTTPS web服務器、Telnet/SSH CLI服務都是在 OS之上運行的標準網絡服務。
系統(tǒng)管理服務(614)也在管理模塊(512)上運行。這些系統(tǒng)管理服 務對網絡管理棧和消息傳遞組件之間的接口進行管理,包括對該系統(tǒng)進行 配置和監(jiān)控。
時間戳服務(624)可能被分布到多個硬件組件。要求準確時間戳的 任何硬件組件(包括管理模塊)包括與服務平面硬件模塊時間資源接口的 時間戳服務。
總線616a和616b是連接邏輯/功能模塊的邏輯總線,其與連接硬件和 軟件模塊的硬件或軟件總線相對。
TVA消息層(610)被分布在管理模塊和在消息處理單元(516)上運 行的消息路由選擇引擎(518)之間。管理消息在本地被遞送到在管理模 塊(512)上運行的管理消息引擎。消息路由選擇引擎(620)運行在在消 息處理單元(516)上的路由選擇引擎微引擎上。消息傳遞層(612)主要 在信道引擎微引擎(520)上運行。在一些情形中,信道傳輸邏輯的一部 分被實現在某些傳輸感知PIC 514a-d上。在本發(fā)明的一個實施例中,這種 傳輸感知PIC可以是執(zhí)行TCP終止的TCP卸載引擎接口。結果,與將在 信道引擎上執(zhí)行相反,部分信道傳輸邏輯被在PIC上執(zhí)行。消息Rx和Tx 被分布在信道引擎和消息路由選擇引擎之間,因為有兩個微引擎彼此交
流。協(xié)議翻譯引擎(618)由可選的邊沿MA的PTE (510)代表??傃灾景l(fā)明提供了一種用于消息傳遞的新方法,更具體地說,提 供了 一種具有基于硬件的消息傳遞設備的新的發(fā)布/訂購中間件系統(tǒng),該基 于硬件的消息傳遞設備在提高消息傳遞系統(tǒng)的效率時具有重要的作用。盡 管已參考本發(fā)明的某些優(yōu)選版本相當詳細地描述了本發(fā)明,但是其他版本 也是可能的。因此,所附權利要求書的精神和范圍不應當被限于對這里所 包含的優(yōu)選版本的描述。
權利要求
1.一種發(fā)布/訂購中間件系統(tǒng)中的基于硬件的消息傳遞設備,包括互連總線;以及經由所述互連總線互連的硬件模塊,所述硬件模塊被劃分成多個組,第一組是用于處理消息傳遞設備管理功能的控制平面模塊組,第二組是用于單獨處理消息路由選擇功能或者除消息變換功能之外還處理消息路由選擇功能的數據平面模塊組,并且第三組是用于對由所述硬件模塊的第一組和第二組利用的服務功能進行處理的服務平面模塊組。
2. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述消息傳 遞設備管理功能包括配置和監(jiān)控功能。
3. 如權利要求2所述的基于硬件的消息傳遞設備,其中,所述配置功 能包括配置所述發(fā)布/訂購中間件系統(tǒng)。
4. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述消息路 由選擇功能包括通過動態(tài)選擇消息傳輸協(xié)議和消息路由選擇路徑而執(zhí)fi^的 消息轉發(fā)和路由選擇。
5. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述服務功能包括時間源和同步功能。
6. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述控制平面模塊組包括管理模塊和一條或多條邏輯配置路徑。
7. 如權利要求6所述的基于硬件的消息傳遞設備,其中,所述管理模 塊結合了計算機、刀片服務器或者主機服務器中的一個或多個中央處理單 元(CPU)。
8. 如權利要求7所述的基于硬件的消息傳遞設備,其中,所述管理模 塊中的CPU在任意操作系統(tǒng)下執(zhí)行程序代碼,所述操作系統(tǒng)包括Limix、 Solaris 、 Unix禾口 Windows 。
9. 如權利要求6所述的基于硬件的消息傳遞設備,其中,每條邏輯配 置路徑是多條路徑之一,其中第一路徑是通過串行接口或者網絡連接經由 命令行接口 (CLI)建立的,并且第二路徑是利用通過所述發(fā)布/訂購中間 件系統(tǒng)路由的管理消息建立的。
10. 如權利要求9所述的基于硬件的消息傳遞設備,其中,所述邏輯 配置路徑被用于配置信息,并且其中所述管理消息包含這種配置信息,ifr 述配置信息包括以下一種或多種Syslog配置參數、網絡時間協(xié)議(NTP)配置參數、域名服務器(DNS)信息、遠程訪問策略、認證方 法、發(fā)布/訂購授權和消息路由選擇信息。
11. 如權利要求10所述的基于硬件的消息傳遞設備,其中,所述消息 路由選擇功能是基于鄰居的,并且所述消息路由選擇信息指示到每個鄰近 消息傳遞設備或者應用編程接口的連通性。
12. 如權利要求10所述的基于硬件的消息傳遞設備,還包括存儲器, 如果所述配置信息是持久的,則所述配置信息被存儲在所述存儲器中,用 于以后在重引導期間取回。
13. 如權利要求12所述的基于硬件的消息傳遞設備,其中,所存^l的 配置信息具有與其相關聯的配置標識,所述配置標識用于確定所述配置信 息是否是當前的或者是否需要被更新的配置信息所替換。
14. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述消息 傳遞設備管理功能還包括健康監(jiān)控功能和狀態(tài)改變事件監(jiān)控功能,在啟動 或者重引導正在進行或者完成后,這兩種功能變?yōu)榛顒拥摹?br>
15. 如權利要求14所述的基于硬件的消息傳遞設備,其中,所述狀態(tài) 改變事件監(jiān)控功能檢測包括API (應用編程接口)注冊、消息傳遞設備注 冊、以及訂購和退訂事件在內的事件。
16. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述消息 傳遞設備管理功能還包括將固件圖像上傳到所述硬件模塊的功能。
17. 如權利要求16所述的基于硬件的消息傳遞設備,其中,所述上傳 固件圖像的功能包括核實所述固件圖像。
18. 如權利要求9所述的基于硬件的消息傳遞設備,還包括物理接 口,所述物理接口中的一個或多個專用于處理與所述消息傳遞設備管理功 能相關聯的管理消息流量,并且其余物理接口可用于數據消息流量,從而 使得管理消息流量不與數據消息流量混合,并且不會使得用于數據消息流量的物理接口過載。
19. 如權利要求1所述的基于硬件的消息傳遞設備,還包括消息傳輸 信道,其中所述消息傳遞設備管理功能還包括對與所述消息傳輸信道相關 聯的訂購表和統(tǒng)計數據進行監(jiān)控的功能。
20. 如權利要求19所述的基于硬件的消息傳遞設備,其中,所述統(tǒng)計數據被監(jiān)控以確定是否從一條信道切換到另一條信道,在發(fā)現較慢的客戶 的情形中,確定是否將所述較慢的客戶移動到針對客戶優(yōu)化的信道。
21. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述數據 平面模塊組包括一個或多個物理接口卡(PIC)和用于控制所述PIC的消 息處理單元(MPU)。
22. 如權利要求21所述的基于硬件的消息傳遞設備,還包括提供對所 述管理模塊的訪問以允許命令行接口 (CLI)的串行端口。
23. 如權利要求21所述的基于硬件的消息傳遞設備,其中,所述PIC 處理具有一個或多個消息的幀。
24. 如權利要求21所述的基于硬件的消息傳遞設備,還包括全局路由 選擇表,所述全局路由選擇表的一部分或者全部的拷貝被發(fā)送到與每個 PIC相關聯的轉發(fā)存儲器。
25. 如權利要求24所述的基于硬件的消息傳遞設備,其中,所述消息路由選擇功能涉及所述轉發(fā)存儲器中的基于話題的路由選擇表查找。
26. 如權利要求15所述的基于硬件的消息傳遞設備,其中,所述基于 話題的路由選擇表查找針對兩個PIC之間的或者一個PIC與其自身之間的 消息識別 一條或者多條路徑。
27. 如權利要求1所述的基于硬件的消息傳遞設備,其中,所述服務 平面模塊組包括可由任意所述硬件模塊訪問以獲得時間戳的外部時間^1。
28. 如權利要求27述的基于硬件的消息傳遞設備,其中,所述時間戳 被嵌入到消息中并且以后被用于評估等待時間。
29. 如權利要求28所述的基于硬件的消息傳遞設備,還包括非易失性 存儲器,用于隨時間累積由包括所述等待時間在內的統(tǒng)計數據表征的消息 流量簡檔,所累積的消息流量簡檔在等待時間漂移具體化的情況下建立指 示等待時間漂移的趨勢。
30. 如權利要求29所述的基于硬件的消息傳遞設備,還包括為了安全性而用于保存加密密鑰和證書的非易失性存儲器。
31. 如權利要求1所述的基于硬件的消息傳遞設備,被配置為邊沿消息傳遞設備或者核心消息傳遞設備,其中所述邊沿消息傳遞設備具有用于在外部和本地消息協(xié)議之間進行翻譯的協(xié)議翻譯引擎(PTE)。
32. —種發(fā)布Z訂購中間件系統(tǒng)中的基于硬件的消息傳遞設備,包括 互連總線;管理模塊,其具有彼此接口的管理服務和管理消息引擎,所述管理模 塊被配置用于處理配置和監(jiān)控功能;消息處理單元,其具有消息路由選擇引擎和介質交換構架,以及在其 間接口的信道引擎,所述消息處理單元被配置用于處理消息路由選擇功 能;一個或多個物理接口卡(PIC),用于對由所述硬件消息傳遞設備接 收或者路由的并且去往或者離開所述管理模塊和所述消息處理單元的消息 進行處理;包括時間源的服務模塊,其中所述管理模塊、所述消息處理模塊、所 述一個或多個PIC和所述服務模塊經由所述互連總線被互連。
33. 如權利要求32所述的基于硬件的消息傳遞設備,還包括用于保存 配置信息的非易失性存儲器和在所述消息處理單元的存儲器中維護的臨時 消息存儲區(qū)。
34. 如權利要求32所述的基于硬件的消息傳遞設備,對于每個所述 PIC,還包括具有用于保存全局系統(tǒng)路由選擇表的任意部分的存儲區(qū)的存 儲器。
35. 如權利要求32所述的基于硬件的消息傳遞設備,其中,外部連通 性是構架不可知的,并且因此所述PIC和介質交換構架可以具有任何構架 類型。
36. 如權利要求32所述的基于硬件的消息傳遞設備,還包括用于命令 行接口的串行端口。
37. 如權利要求32所述的基于硬件的消息傳遞設備,還包括用于在外 部和本地消息協(xié)議之間進行翻譯的協(xié)議翻譯引擎(PTE)。
38. 如權利要求37所述的基于硬件的消息傳遞設備,被配置為邊沿消 息傳遞設備或核心消息傳遞設備,其中所述邊沿消息傳遞設備包括所述 PTE。
39. 如權利要求37所述的基于硬件的消息傳遞設備,其中,所述PTK 包括流水線化引擎,所述流水線化引擎包括消息解析、消息規(guī)則查找、消 息規(guī)則應用和消息格式引擎,以及消息入口和出口隊列,并且其中所述 PTE被連接到所述互連總線。
40. 如權利要求32所述的基于硬件的消息傳遞設備,其中,所述消息 路由選擇功能是通過動態(tài)選擇消息傳輸協(xié)議和消息路由選擇路徑來執(zhí)行 的。
41. 如權利要求32所述的基于硬件的消息傳遞設備,其中,所述信道 弓I擎包括用于處理進入和外出消息的多個傳輸信道和信道管理模塊。
42. 如權利要求41所述的基于硬件的消息傳遞設備,其中,所述信近 管理模塊包括用于臨時緩存接收到的消息的消息緩存模塊、用于對傳輸信 道區(qū)分優(yōu)先級的信道調度器,以及用于確定協(xié)議翻譯需求的協(xié)議開關。
43. 如權利要求41所述的基于硬件的消息傳遞設備,其中,所述多個 傳輸信道中的每個具有消息入口和出口隊列,所述隊列的大小被用作激活 消息流控制的標準。
44. 如權利要求43所述的基于硬件的消息傳遞設備,其中,信道能力 被視為高閾值,而一個較低的值被視為低閾值,所述消息流控制在所述隊 列的大小接近所述高閾值時被激活,并且在所述隊列大小收縮到低于所述 低閾值時被禁止。
45. —種具有發(fā)布/訂購中間件體系結構的系統(tǒng),包括 一個或多于一個消息傳遞設備,其被配置用于接收和路由消息,每個消息傳遞設備具有互連總線和經由所述互連總線互連的硬件模塊,所述硬 件模塊被劃分成多個組,第一組是用于處理消息傳遞設備管理功能的控制 平面模塊組,第二組是用于處理消息路由選擇功能的數據平面模塊組,并 且第三組是用于對由所述硬件模塊的第一組和第二組利用的服務功能進行 處理的服務平面模塊組; 互連介質;以及經由所述互連介質鏈接的設置和管理設備,其被配置用于與每個消息 傳遞設備交換管理消息,其中,每個消息傳遞設備還被配置用于通過動態(tài)選擇消息傳輸協(xié)議和 消息路由選擇路徑來執(zhí)行消息的路由選擇。
46. 如權利要求45所述的系統(tǒng),其中,所述消息傳遞設備包括一個或 多個邊沿消息傳遞設備和核心消息傳遞設備。
47. 如權利要求46所述的系統(tǒng),其中,每個邊沿消息傳遞設備包括協(xié) 議變換引擎,用于將進入消息從外部協(xié)議變換到本地協(xié)議,以及用于將被 路由的消息從所述本地協(xié)議變換到所述外部協(xié)議。
48. 如權利要求1所述的基于硬件的消息傳遞設備,其可作為交換或 路由選擇設備中的嵌入式組件工作。
49. 如權利要求45所述的系統(tǒng),其中, 一個或多個所述消息傳遞設備 被互連以提供網絡非居間化。
全文摘要
消息發(fā)布/訂購系統(tǒng)被要求處理大量消息,同時減少等待時間和性能瓶頸。本發(fā)明提出的基于硬件的消息傳遞設備被設計用于大量、低等待時間的消息傳遞(圖1)。該基于硬件的消息傳遞設備是發(fā)布/訂購中間件系統(tǒng)的一部分。利用該基于硬件的消息傳遞設備,該系統(tǒng)操作用于減少利用基于鄰居的路由選擇的中間跳,引入有效的本地到外部以及外部到本地協(xié)議轉換、實時監(jiān)控包括等待時間在內的系統(tǒng)性能、采用基于話題的和基于信道的消息通信,以及動態(tài)優(yōu)化系統(tǒng)互連配置和消息傳輸協(xié)議等。
文檔編號G06F13/00GK101133380SQ200580046101
公開日2008年2月27日 申請日期2005年12月23日 優(yōu)先權日2005年1月6日
發(fā)明者巴利·J·湯普森, 庫·辛格, 皮埃爾·費沃 申請人:特維拉有限公司