亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

消息傳遞系統(tǒng)中的緩存引擎的制作方法

文檔序號:6553537閱讀:201來源:國知局
專利名稱:消息傳遞系統(tǒng)中的緩存引擎的制作方法
消息傳遞系統(tǒng)中的緩存引擎對先前提交申請的引用本申請要求2005年1月6日提交的名為"Event Router System and Method"的美國臨時申請序列號No. 60/641,988和2005年6月8日提交的 名為"Hybrid Feed Handlers And Latency Measurement"的美國臨時申請序 列號No. 60/688,983的優(yōu)先權(quán)并且通過引用而結(jié)合上述申請。本申請與2005年12月23日提交的名為"End-To-Hnd Publish/Subscribe Middleware Architecture "的美國專禾U申請序列號 11/316,778 (律師簽號50003-0004)有關(guān)并且通過引用而結(jié)合上述申請。絲艦本發(fā)明涉及數(shù)據(jù)消息傳遞(messaging),更具體地說,涉及具有發(fā)布 和訂購(下文稱作"發(fā)布/訂購")中間件體系結(jié)構(gòu)的消息傳遞系統(tǒng)中的緩 存引擎。背暈技術(shù)數(shù)據(jù)消息傳遞基礎(chǔ)設(shè)施所要求的日益提高的性能水平強迫聯(lián)網(wǎng)基礎(chǔ)設(shè) 施和協(xié)議的發(fā)展?;旧?,數(shù)據(jù)分發(fā)涉及各種數(shù)據(jù)源和目的地,以及各種 類型的互連體系結(jié)構(gòu)和數(shù)據(jù)源和目的地之間的通信模式?,F(xiàn)有數(shù)據(jù)消息傳 遞體系結(jié)構(gòu)的示例包括輪軸輪輻式(hub-and-spoke),對等式和存儲轉(zhuǎn)發(fā) 式。利用輪軸輪輻系統(tǒng)配置,所有通信都通過輪軸傳輸,這在處理量大時 通常會導(dǎo)致性能瓶頸。因此,這種消息傳遞系統(tǒng)產(chǎn)生了等待時間。繞過這 種瓶頸的一種方法是布署更多的服務(wù)器,并且在這些不同的服務(wù)器之間分 布網(wǎng)絡(luò)負載。但是,這種體系結(jié)構(gòu)表現(xiàn)出可擴展性和操作問題。與具有輪 軸輪輻配置的系統(tǒng)相比,具有對等配置的系統(tǒng)對應(yīng)用產(chǎn)生了不必要的壓力
以處理和過濾數(shù)據(jù),并且僅與其最慢的客戶或節(jié)點一樣快。而具有存儲轉(zhuǎn) 發(fā)系統(tǒng)配置的系統(tǒng)為了提供持久性,要在將數(shù)據(jù)轉(zhuǎn)發(fā)到路徑中的下一個節(jié) 點之前存儲該數(shù)據(jù)。存儲操作通常通過索弓I和將消息寫到存儲盤來實現(xiàn), 這可能產(chǎn)生性能瓶頸。此外,在消息量增大了時,索引和寫入任務(wù)可能相 當慢,因此可能引入額外的等待時間。為了提供數(shù)據(jù)一致性,這些存儲轉(zhuǎn)發(fā)系統(tǒng)必須提供在沒有數(shù)據(jù)丟失的 情況下從任何邏輯或物理的災(zāi)難恢復(fù)的能力。這通常是用遠程磁盤鏡像或 數(shù)據(jù)庫復(fù)制技術(shù)來實現(xiàn)的。對這種實現(xiàn)的挑戰(zhàn)是始終保證主和副站點之間 的數(shù)據(jù)一致性,同時具有低等待時間。 一種選擇是實現(xiàn)同步解決方案,其 中在主站點處寫入的數(shù)據(jù)的每個塊在其在副站點處被鏡像之后認為是完整 的。這種同步實現(xiàn)的問題在于其影響了消息層的總性能。 一種替代選擇是 實現(xiàn)異步方法。然而,在該方法的情況下,避免數(shù)據(jù)丟失或損壞的挑戰(zhàn)是 在災(zāi)難發(fā)生的同時保持數(shù)據(jù)一致性。另一個挑戰(zhàn)是保證數(shù)據(jù)更新的排序?,F(xiàn)有數(shù)據(jù)消息傳遞體系結(jié)構(gòu)共有一些不足。 一個共同的不足是在現(xiàn)有 體系結(jié)構(gòu)中數(shù)據(jù)消息傳遞依賴于駐留在應(yīng)用層上的軟件。這葸味著消息傳遞基礎(chǔ)設(shè)施要經(jīng)歷OS (操作系統(tǒng))排隊和網(wǎng)絡(luò)I/0 (輸入/輸出),這可能產(chǎn)生性能瓶頸。另一個共同的不足是現(xiàn)有體系結(jié)構(gòu)靜態(tài)地而不是動態(tài)地使 用數(shù)據(jù)傳輸協(xié)議,即使在某些情形下其他協(xié)議可能更合適也是如此。常見 協(xié)議的一些示例包括可路由多播、廣播或單播。實際上,現(xiàn)有體系結(jié)構(gòu)中的應(yīng)用編程接口 (API)未被設(shè)計為實時地在傳輸協(xié)議之間切換。另外,網(wǎng)絡(luò)配置判決通常是在布署時進行的,并且通常被定義為在特 定假設(shè)下對一組網(wǎng)絡(luò)和消息傳遞條件進行優(yōu)化。與靜態(tài)(固定的)配置相 關(guān)聯(lián)的限制排除了實時動態(tài)網(wǎng)絡(luò)重配置。換言之,現(xiàn)有體系結(jié)構(gòu)是針對特 定傳輸協(xié)議配置的,而該傳輸協(xié)議并不總是適合所有網(wǎng)絡(luò)數(shù)據(jù)傳輸負載條 件,因此,現(xiàn)有體系結(jié)構(gòu)總是不能實時地應(yīng)對改變或增大的負載能力需 求。此外,在數(shù)據(jù)消息傳遞去往特定的接收者或者接收者群組時,現(xiàn)有消 息傳遞體系結(jié)構(gòu)使用可路由多播來將數(shù)據(jù)傳輸過網(wǎng)絡(luò)。但是,在針對多播 建立的系統(tǒng)中,存在對可以用來分發(fā)數(shù)據(jù)的多播群組的數(shù)目的限制,結(jié)
果,消息傳遞系統(tǒng)不再將數(shù)據(jù)發(fā)送向未被向其訂購的目的地(即,不是訂 戶的客戶)。由于數(shù)據(jù)過濾,這增大了客戶的數(shù)據(jù)處理負載和丟棄率。因 此,由于任何原因變?yōu)檫^載并且不能跟上數(shù)據(jù)流的客戶最終丟棄進入數(shù) 據(jù),并且稍后要求重傳。重傳對整個系統(tǒng)造成影響,因為所有客戶都接收 重復(fù)的傳輸,并且所有客戶都對進入數(shù)據(jù)進行重新處理。因此,重傳可能 導(dǎo)致多播風暴,并且最終可能使整個系統(tǒng)癱瘓。在系統(tǒng)是針對單播消息傳遞建立來作為減少丟棄率的一種方法時,該 消息傳遞系統(tǒng)可能因為數(shù)據(jù)復(fù)制而經(jīng)歷帶寬飽和。例如,如果多于一個客 戶訂購了感興趣的給定話題,則消息傳遞系統(tǒng)必須將該數(shù)據(jù)遞送到每個訂 戶,實際上,系統(tǒng)將該數(shù)據(jù)的不同拷貝發(fā)送到每個訂戶。盡管這解決了客 戶濾除非訂購數(shù)據(jù)的問題,但是單播傳輸是不可擴展的,因此基本上不適 合訂購特定數(shù)據(jù)的大量客戶群組或者消費模式極度重疊的情形?,F(xiàn)有體系結(jié)構(gòu)的另一個共同不足是它們的協(xié)議變換較慢并且數(shù)量非常多。這是因為企業(yè)應(yīng)用集成(EIA)領(lǐng)域中的IT (信息技術(shù))權(quán)宜(band-aid) 策略所致,在該領(lǐng)域中,越來越多的新技術(shù)被與遺留系統(tǒng)集成。因此,在多個領(lǐng)域中都需要提高數(shù)據(jù)消息傳遞系統(tǒng)性能。其中性能可 能需要提高的示例有速度、資源分配、等待時間等。發(fā)明內(nèi)容本發(fā)明部分基于前述觀察和利用不同的方法可以解決這種不足使得具 有更好的結(jié)果這一觀點。這些觀察使得開發(fā)出用于大量低等待時間消息傳 遞的端到端消息發(fā)布/訂購體系結(jié)構(gòu),同時通過數(shù)據(jù)緩存而具有有保證的遞 送服務(wù)質(zhì)量。因此,具有這種體系結(jié)構(gòu)(發(fā)布/訂購中間件系統(tǒng))的消息傳 遞基礎(chǔ)設(shè)施也包括如稍后將更詳細地描述的具有緩存和存儲服務(wù)的緩存引 擎(CE) o一般而言,消息傳遞設(shè)備(MA)接收和路由消息。當被與CE緊密耦 合時,其首先通過將拷貝發(fā)送到CE來記錄被路由的消息的全部或者子 集。然后,在預(yù)定時間段中,被記錄的消息在被所述消息傳遞系統(tǒng)中的任 何組件請求時可用于重傳,從而提供了合并的、有保證同時連接的和有保
證同時不連接的服務(wù)質(zhì)量以及部分數(shù)據(jù)發(fā)布服務(wù)。為了支持這種服務(wù),CE被設(shè)計為跟上MA的轉(zhuǎn)發(fā)速率。例如,CE被 設(shè)計為具有MA與CE之間的用于盡可能快地推送消息的高吞吐量連 接、用于插入和重演來自后端CE數(shù)據(jù)庫的消息的高吞吐量和靈巧緩存機 制,以及高吞吐量、持久的存儲裝置。該設(shè)計中的考慮之一是減少重演請 求的等待時間。因此,根據(jù)所示并且在這里寬廣描述的本發(fā)明的目的, 一種示例性系 統(tǒng)包括緩存引擎。消息傳遞設(shè)備和接口介質(zhì)。所述緩存引擎包括消息層,其操作用于發(fā)送和接收消息;緩存層,其具有索引服務(wù)、存儲設(shè)備和存儲服務(wù),所述索引服務(wù)操作用于首先給接收到的消息編索引并且用于保 持接收到的部分發(fā)布消息的鏡像,所述存儲服務(wù)操作用于將接收到的消息的全部或者子集存儲在所述存儲設(shè)備中; 一個或多個物理信道接口,用于 傳輸接收到和發(fā)送出的消息;以及具有信道管理的消息傳輸層,用于控制 通過所述一個或多個物理信道接口中的每一個接口的消息的發(fā)送和接收。 所述消息傳遞設(shè)備與所述緩存引擎之間的物理介質(zhì)是網(wǎng)絡(luò)構(gòu)造無關(guān)的,其 被配置為以太網(wǎng)、基于存儲器的直接連接或Infmiband。另外,前述系統(tǒng)可以被實現(xiàn)為具有設(shè)置和管理系統(tǒng),其經(jīng)由所述接口 介質(zhì)鏈接并且被配置為與每個消息傳遞設(shè)備交換管理消息。緩存引擎配置 是經(jīng)由來自P&M系統(tǒng)的管理消息并經(jīng)由直接連接到所述緩存引擎的MA 傳送的。所述緩存引擎有效地充當基于鄰居的消息傳遞架構(gòu)中的另 個鄰 居。如上所述的利用緩存引擎的各種方法能夠在消息傳遞中提供服務(wù)質(zhì) 量。 一種這樣的方法是在具有消息傳輸層、管理消息層和緩存層的緩存引 擎中執(zhí)行的,所述緩存層具有索引和存儲服務(wù)以及相關(guān)的存儲設(shè)備。該方 法包括以下步驟通過所述消息傳輸層接收數(shù)據(jù)和管理消息;將所述貸理 消息轉(zhuǎn)發(fā)到所述管理消息層并且將所述數(shù)據(jù)消息轉(zhuǎn)發(fā)到所述緩存層,其屮 被轉(zhuǎn)發(fā)到所述管理消息層的消息取回請求消息被路由到所述緩存層。該方 法還包括以下步驟在所述索引服務(wù)中給所述數(shù)據(jù)消息編索引,所述索引 編制是基于話題的;以及基于所述索弓(編制將所述數(shù)據(jù)消息存儲在存儲裝
置中,其中所述數(shù)據(jù)消息被保持在所述存儲裝置中預(yù)定時間段,在所述預(yù) 定時間段期間所述數(shù)據(jù)消息可響應(yīng)于消息取回請求消息而用于重傳。因為所述數(shù)據(jù)消息不是完整的數(shù)據(jù)消息就是部分發(fā)布的數(shù)據(jù)消息并且 每個數(shù)據(jù)消息具有相關(guān)話題,所以索引服務(wù)保持每個完整數(shù)據(jù)消息的主鏡 像。然后,對于作為部分完整消息的接收到的數(shù)據(jù)消息,所述索引服務(wù)將 所述接收到的數(shù)據(jù)消息對比具有與所述部分發(fā)布消息的話題類似的相關(guān)話 題的完整消息的最新主鏡像進行比較,以確定應(yīng)當如何更新所述主鏡像。 部分發(fā)布的消息和主鏡像都被索引并且都可用于重傳。這些緩存引擎可以被配置和部署為由主和副CE組成的容錯對,或者 由多于兩個CE節(jié)點組成的容錯組。如果兩個或多個CE被邏輯地互相鏈 接,則它們訂購相同的數(shù)據(jù)并從而保持所訂購數(shù)據(jù)的唯一和一致的視圓。 注意到,與應(yīng)用編程接口 (API)很象,CE對數(shù)據(jù)的訂購是基于話題的。 在數(shù)據(jù)丟失的情況下,CE可以向容錯組中的其他CE成員請求丟失數(shù)據(jù)的 重演。同一容錯組中的CE之間的數(shù)據(jù)同步是通過消息傳遞網(wǎng)絡(luò)構(gòu)造平行 化的,消息網(wǎng)絡(luò)構(gòu)造經(jīng)由MA將被訂購的消息傳遞流量的多個拷貝智能且 高效地轉(zhuǎn)發(fā)到所有的緩存引擎示例。結(jié)果,這實現(xiàn)了用于容錯和災(zāi)難恢復(fù) 部署的異步數(shù)據(jù)一致性,其中,數(shù)據(jù)同步和持久性是通過消息傳遞網(wǎng)絡(luò)構(gòu) 造來執(zhí)行和保證的,而不是通過使用存儲/磁盤鏡像法或數(shù)據(jù)庫復(fù)制技術(shù)??偠灾?,從這里的描述,所附權(quán)利要求書以及后面將描述的附圖可 以更好地理解本發(fā)明的這些和其他特征、方面和優(yōu)點。


被結(jié)合到說明書中并且作為說明書的一部分的

了本發(fā)明的各 個方面,并且與說明書一起說明本發(fā)明的原理。只要方便,在所有附圖中 相同的標號將用于指代相同或類似的元件。圖l示出了根據(jù)本發(fā)明原理的端到端中間件體系結(jié)構(gòu)。圖la是示出了覆蓋網(wǎng)絡(luò)(overlaynetwork)的圖。圖2是示出了利用根據(jù)本發(fā)明原理的端到端中間件體系結(jié)構(gòu)實現(xiàn)的企 業(yè)基礎(chǔ)設(shè)施的圖。圖3示出了基于信道的消息傳遞系統(tǒng)的體系結(jié)構(gòu)。圖4示出了一種可能的基于話題的消息格式。圖5示出了基于話題的消息路由選擇和路由選擇表。圖6示出了用于MA與CE之間的通信的接口。圖7是示出了根據(jù)本發(fā)明一個實施例來配置的CE (緩存引擎)的框圖。圖8示出了具有主和副緩存引擎的容錯配置,并且示出了故障情況下 的不同階段。
具體實施方式
在概括涉及根據(jù)本發(fā)明多個原理和方面的各個實施例的細節(jié)之前,下 面是對一些術(shù)語的簡單說明,這些術(shù)語可以被用在整個說明書中。注意, 該說明僅是為了澄清并且向讀者給出對可能如何使用這些術(shù)語的理解,但 是不是將這些術(shù)語限于使用它們的上下文中,也不是要因此限制權(quán)利要求 書的范圍。術(shù)語"中間件"在計算機工業(yè)中作為一個一般術(shù)語使用,針對在兩個 分離的通常已存在的程序之間協(xié)調(diào)的任何編程。 一般而言,中間件程序提 供消息傳遞服務(wù),以使得不同的應(yīng)用程序可以通信。通常通過利用中間l牛 將不同的應(yīng)用程序在系統(tǒng)上連結(jié)到一起被稱作企業(yè)應(yīng)用集成(EAI)。但 是,在該上下文中,"中間件"可以是一種更廣的術(shù)語,用在源和目的地 之間的消息傳遞和被布署用于實現(xiàn)這種消息傳遞的設(shè)施的上下文中;因 此,中間件體系結(jié)構(gòu)單獨或者與下面將描述的組合覆蓋了實現(xiàn)高效數(shù)據(jù)消 息傳遞的聯(lián)網(wǎng)和計算機硬件與軟件組件。此外,術(shù)語"消息傳遞系統(tǒng)"或 者"中間件系統(tǒng)"可以被用在發(fā)布/訂購系統(tǒng)的上下文中,在該系統(tǒng)中,消 息傳遞服務(wù)器對在發(fā)布者和訂購者之間的消息路由選擇進行管理。實際 上,消息傳遞中間件中發(fā)布/訂購的范式是可擴展的,因此是一種有力的模 型。術(shù)語"客戶"可以用在客戶機-服務(wù)器應(yīng)用等的上下文中。在一個實例 中,客戶是這樣一種系統(tǒng)或應(yīng)用,其利用應(yīng)用編程接口 (API)注冊到中 間件系統(tǒng),以訂購信息,并且接收該中間件系統(tǒng)遞送的數(shù)據(jù)。中間件體系結(jié)構(gòu)邊界內(nèi)部的API是一種客戶;并且外部客戶是不使用該API的任何發(fā) 布/訂購系統(tǒng)(或者外部數(shù)據(jù)目的地),并且為了與之通信,消息要通過協(xié) 議變換(稍后將描述)。術(shù)語"外部數(shù)據(jù)源"可以用在數(shù)據(jù)分發(fā)和消息發(fā)布/訂購系統(tǒng)的上下文 中。在一個示例中,外部數(shù)據(jù)源被認為是位于企業(yè)專用網(wǎng)絡(luò)內(nèi)或者外部的 系統(tǒng)或應(yīng)用,其采用常用協(xié)議之一或者其自己的消息協(xié)議發(fā)布消息。外部 數(shù)據(jù)源的一個示例是市場數(shù)據(jù)交換,其發(fā)布股市報價,股市報價經(jīng)由中間 件系統(tǒng)被分發(fā)到交易員。外部數(shù)據(jù)源的另一個示例是事務(wù)性數(shù)據(jù)。注意, 在后面將更詳細描述的本發(fā)明的典型實現(xiàn)方式中,中間件體系結(jié)構(gòu)采用其 唯一的本地協(xié)議,來自外部數(shù)據(jù)源的數(shù)據(jù)一旦進入該中間件系統(tǒng)域就被轉(zhuǎn) 換成該唯一的本地協(xié)議,從而避免了傳統(tǒng)系統(tǒng)中典型的多協(xié)議變換。術(shù)語"外部數(shù)據(jù)目的地"也用在數(shù)據(jù)分發(fā)和消息發(fā)布/訂購系統(tǒng)的上下 文中。例如,外部數(shù)據(jù)目的地是位于企業(yè)專用網(wǎng)絡(luò)內(nèi)或外部的系統(tǒng)或應(yīng) 用,其訂購經(jīng)由本地/全局網(wǎng)絡(luò)被路由的信息。外部數(shù)據(jù)目的地的一個示例 可以是對由交易員發(fā)布的事務(wù)訂單進行處理的前述市場數(shù)據(jù)交換。外部數(shù) 據(jù)目的地的另一個示例是事務(wù)性數(shù)據(jù)。注意,在前述中間件體系結(jié)構(gòu)中, 去往外部數(shù)據(jù)目的地的消息從本地協(xié)議被翻譯成與該外部數(shù)據(jù)目的地相關(guān) 聯(lián)的外部協(xié)議。從這里的描述可以確認,可以利用每種都在中間件體系結(jié)構(gòu)中實現(xiàn)的 各種配置實現(xiàn)的緩存引擎(CE)以各種方式實施本發(fā)明。描述因此以圖1 所示的端到端中間件體系結(jié)構(gòu)的示例開始。這種示例性體系結(jié)構(gòu)組合了許多有益特征,這些有益特征包括消息 傳遞公共概念、API、容錯、設(shè)置和管理(P&M)、服務(wù)質(zhì)量(QoS-合并 的,盡力而為的、有保證同時連接的、有保證同時不連接的,等等)、有 保證遞送QoS的持久緩存、命名空間和安全性服務(wù)的管理、發(fā)布/訂購生 態(tài)系統(tǒng)(核心、入口和出口組件)、傳輸透明的消息傳遞、基于鄰居的消 息傳遞(一種作為輪軸輪輻、對等和存儲轉(zhuǎn)發(fā)之間的混合體的模型,該模 型使用基于訂購的路由選擇協(xié)議,可以在必要時將訂購傳播到所有鄰 居)、遲綁定模式、部分發(fā)布(與所有數(shù)據(jù)相對,僅發(fā)布改變的信息)和 動態(tài)分配網(wǎng)絡(luò)和系統(tǒng)資源。后面將說明,發(fā)布/訂購系統(tǒng)有益地結(jié)合了中間件體系結(jié)構(gòu)的容錯設(shè)計。注意,發(fā)布/訂購生態(tài)系統(tǒng)的核心MA部分使用前 述本地消息傳遞協(xié)議(對于中間件系統(tǒng)本地的),而入口和出口部分,邊、除了發(fā)布/;丁購系統(tǒng)組件之外:圖i的圖還示出了它們之間的邏輯連接 和通信。從圖可見,所示的中間件體系結(jié)構(gòu)是分布式系統(tǒng)的中間件體系結(jié) 構(gòu)。在具有這種體系結(jié)構(gòu)的系統(tǒng)中,兩個截然不同的物理組件之間的邏輯 通信是利用消息流和相關(guān)聯(lián)的消息協(xié)議建立起來的。消息流包含兩類消息之一管理和數(shù)據(jù)消息。管理消息用于管理和控制不同的物理組件、管理對數(shù)據(jù)的訂購,等等。數(shù)據(jù)消息用于在源和目的地之間傳輸數(shù)據(jù),并且在 典型的發(fā)布/訂購消息傳遞中,存在數(shù)據(jù)消息的多個發(fā)送者和多個接收者。 利用所示結(jié)構(gòu)配置和邏輯通信,該具有中間件體系結(jié)構(gòu)的分布式發(fā)布/ 訂購系統(tǒng)被設(shè)計來執(zhí)行多種邏輯功能。 一種邏輯功能是消息協(xié)議翻譯,該功能有利地在邊沿消息傳遞設(shè)備(MA)組件處執(zhí)行。第二種邏輯功能是 將消息從發(fā)布者路由到訂購者。注意,這些消息被路由過整個發(fā)布/訂購網(wǎng) 絡(luò)。因此,路由選擇功能由其中傳播消息的每個MA執(zhí)行,即,從邊沿 MA106a-b (或者API)到核心MA108a-c,從一個核心MA到另一個核心 MA,最終到達邊沿MA (例如,106b)或者API 110a-b。 API 110a-b經(jīng)由 程間通信總線(套接字、共享存儲器等)與應(yīng)用112^通信。第三種邏輯功能是針對不同類型的有保證的遞送服務(wù)質(zhì)量存儲消息, 包括例如有保證同時連接的和有保證同時不連接的。第四種功能是將這些 消息遞送到訂購者。如圖所示,API 106a-b將消息遞送到訂購應(yīng)用112,.no在該發(fā)布/訂購中間件體系結(jié)構(gòu)中,系統(tǒng)配置功能以及其他管理和系統(tǒng)性能監(jiān)控功能由P&M 102、 104系統(tǒng)管理。配置包括發(fā)布/訂購中間件系統(tǒng) 網(wǎng)絡(luò)和組件的物理和邏輯配置。監(jiān)控和報告包括監(jiān)控所有網(wǎng)絡(luò)和系統(tǒng)組件 的健康和自動地或按照要求把結(jié)果報告給日志。P&M系統(tǒng)經(jīng)由管理消息 來執(zhí)行其配置、監(jiān)控和報告功能。另外,P&M系統(tǒng)允許系統(tǒng)管理員定義 與通過整個發(fā)布/訂購網(wǎng)絡(luò)路由的消息中每一個消息相關(guān)的消息命名空間。 相應(yīng)地,發(fā)布/訂購網(wǎng)絡(luò)可被物理地和/或邏輯地分成基于命名空間的子 網(wǎng)。P&M系統(tǒng)用一個或多個MA來管理發(fā)布/訂購中間件系統(tǒng)。這些MA 取決于它們在系統(tǒng)中的角色被布署為邊沿MA或者核心MA。邊沿MA在 大多方面與核心MA類似,除了其包括協(xié)議翻譯引擎之外,協(xié)議翻譯引擎 將消息從外部協(xié)議翻譯成本地協(xié)議和從本地協(xié)議翻譯成外部協(xié)議。因此, 一般來說,發(fā)布/訂購系統(tǒng)中間件體系結(jié)構(gòu)的邊界(即端到端發(fā)布/訂購中 間件系統(tǒng)邊界)由其中存在MA 106a-b和API 110a-b的其邊沿表征;并且 在這些邊界內(nèi),存在核心MA 108a-c。注意,系統(tǒng)體系結(jié)構(gòu)不被限制到特定的受限的地理區(qū)域,并且實際 上,系統(tǒng)體系結(jié)構(gòu)被設(shè)計為超越區(qū)域或國家邊界,甚至跨越大洲。在這種 情形中, 一個網(wǎng)絡(luò)中的邊沿MA可以經(jīng)由現(xiàn)有的聯(lián)網(wǎng)基礎(chǔ)設(shè)施與地理上遠 離的另一個網(wǎng)絡(luò)中的邊沿MA通信。在典型的系統(tǒng)中,核心MA 108a-c將在該系統(tǒng)內(nèi)部發(fā)布的消息路由向 邊沿MA或API (例如,API 110a-b)。尤其是在核心MA中的路由選擇 圖被設(shè)計來用于最大量、低等待時間并且高效地路由選擇。此外,核心 MA之間的路由選擇可以實時動態(tài)改變。對于穿過多個節(jié)點(核心MA) 的給定的消息傳遞路徑,路由選擇的實時改變是基于一個或多個度量的, 這些度量包括網(wǎng)絡(luò)利用、總地端到端等待時間、通信量、網(wǎng)絡(luò)延遲、丟失 和抖動。或者,不是從兩條或多條不同的路徑中動態(tài)選擇最佳執(zhí)行路徑,而足 MA可以基于消息復(fù)制執(zhí)行多路徑路由選擇,并且從而通過所有路徑發(fā)送 相同的消息。位于不同路徑的匯聚點處的所有MA將丟棄復(fù)制的消息,僅 轉(zhuǎn)發(fā)第一個到達的消息。這種路由選擇方法具有使低等待時間的消息傳遞 基礎(chǔ)設(shè)施最優(yōu)化的優(yōu)點;盡管這種路由選擇的缺點是基礎(chǔ)設(shè)施需要更多的 網(wǎng)絡(luò)帶寬來傳送復(fù)制的流量。邊沿MA具有這樣的能力將進入消息的任何外部消息協(xié)議轉(zhuǎn)換成屮 間件系統(tǒng)的本地消息協(xié)議;以及從本地消息協(xié)議轉(zhuǎn)換成外出消息的外部協(xié)
議。即,在消息進入發(fā)布/訂購網(wǎng)絡(luò)域(入口)時,外部協(xié)議被轉(zhuǎn)換成本地(例如,Tervela )消息協(xié)議;并且在消息離開發(fā)布/訂購網(wǎng)絡(luò)域(出口) 時,本地協(xié)議被轉(zhuǎn)換成外部協(xié)議。邊沿MA的另一個功能是將已發(fā)布的消 息遞送到訂購了的外部數(shù)據(jù)目的地。另外,邊沿和核心MA 106a-b和108a-c都能夠在轉(zhuǎn)發(fā)消息之前存儲消 息??梢詫崿F(xiàn)該功能的一種方法是利用緩存引擎(CE) 118a-b。一個或多 個CE可以被連接到相同的MA。理論上,不認為API具有這種存儲轉(zhuǎn)發(fā) 能力,盡管實際上API 110a-b可以在將消息遞送到應(yīng)用之前存儲消息,并 且其可以在將從應(yīng)用接收到的消息遞送到核心MA、邊沿MA或者另一個 API之前存儲它們。在MA (邊沿或核心MA)具有到CE的活動連接時,其將被路由的 消息的全部或者子集轉(zhuǎn)發(fā)到CE, CE將它們寫到存儲區(qū)域中以實現(xiàn)持久 性。在預(yù)定時間段中,被記錄的消息可在被請求時用于重傳。其中實現(xiàn)了 這種特征的示例有數(shù)據(jù)中繼、部分發(fā)布和各種服務(wù)質(zhì)量級別。部分發(fā)布在 減少網(wǎng)絡(luò)和客戶負載方面是有效的,因為其要求僅發(fā)送更新的信息,而不 是所有信息。為了說明路由選擇圖可能如何實現(xiàn)路由選擇,圖l中示出了發(fā)布/訂購 路由選擇路徑的數(shù)個示例。在該圖示中,發(fā)布/訂購網(wǎng)絡(luò)的中間件體系結(jié)構(gòu) 在發(fā)布者和訂購者之間提供了五條或更多的通信路徑。第一通信路徑將外部數(shù)據(jù)源鏈接到外部數(shù)據(jù)目的地。從外部數(shù)據(jù)源 114^接收到的已發(fā)布消息被翻譯成本地(例如,Tervela )消息協(xié)議, 然后被邊沿MA 106a路由。本地協(xié)議消息可以從邊沿MA 106a被路由的 一條路線是到外部數(shù)據(jù)目的地116n。該路徑被稱作通信路徑la。在這種本地協(xié)議消息可以從邊沿MA 106b被路由的另一條路線是內(nèi)部通過核心 MA 108b。該路徑被稱作通信路徑lb。沿著該路徑,核心MA 108b將本 地消息路由到邊沿MA106a。但是,在邊沿MA106a將本地協(xié)議消息路由 到外部數(shù)據(jù)目的地116,之前,其將它們轉(zhuǎn)換成適于該外部數(shù)據(jù)目的地116, 的外部消息協(xié)議??梢?,這種通信路徑不要求API將消息從發(fā)布者路由到
訂購者。因此,如果發(fā)布/訂購系統(tǒng)被用于外部源到目的地的通信,則該系統(tǒng)無需包括API。被稱作通信路徑2的另一條通信路徑利用API 110b將外部數(shù)據(jù)源 114n鏈接到一個應(yīng)用。從外部數(shù)據(jù)源接收到的已發(fā)布的消息在邊沿MA 106a處被翻譯成本地消息協(xié)議,然后被該邊沿MA路由到核心MA 108a。 從第一核心MA 108a出發(fā),這些消息被路由過另一個核心MA 108c到達 API llOb。從該API出發(fā),這些消息被遞送到訂購應(yīng)用(例如,1122)。 因為該通信路徑是雙向的,所以在另一個實例中,消息可以沿著反向路徑 從訂購應(yīng)用112^到達外部數(shù)據(jù)目的地116n。在每個實例中,核心MA接 收本地協(xié)議消息并且路由本地協(xié)議消息,而邊沿MA接收外部或者本地協(xié) 議消息,并且分別路由本地或外部協(xié)議消息(邊沿MA將這種外部消息協(xié) 議翻譯成本地消息協(xié)議/從本地消息協(xié)議翻譯成這種外部消息協(xié)議)。每個 邊沿MA可以將入口消息同時路由到本地協(xié)議信道和外部協(xié)議信道。結(jié) 果,每個邊沿MA可以將入口消息同時路由到外部和內(nèi)部客戶,其中內(nèi)部 客戶消耗本地協(xié)議消息,而外部客戶消耗外部協(xié)議消息。這種能力使得消 息傳遞基礎(chǔ)設(shè)施能夠與遺留應(yīng)用和系統(tǒng)無縫并且平滑地集成。被稱作通信路徑3的另一條通信路徑鏈接兩個應(yīng)用,這兩個應(yīng)用都利 用API 110a-b。這些應(yīng)用中的至少一個發(fā)布消息或者訂購消息。已發(fā)布的 消息到訂購應(yīng)用的遞送或者來自發(fā)布應(yīng)用的已發(fā)布消息的遞送是利用位于 發(fā)布/訂購網(wǎng)絡(luò)邊沿的API實現(xiàn)的。在應(yīng)用訂購消息時,核心或者邊沿M八 之一將消息路由向該API,該API然后在數(shù)據(jù)正準備被遞送到它們吋通知 訂購應(yīng)用。從應(yīng)用發(fā)布的消息經(jīng)由該API被發(fā)送到該API被"注冊"到其 的核心MA 108c。注意,通過"注冊"(登錄)到一個MA,該API變?yōu)樵谶壿嬌线B接 到該MA。 API通過發(fā)送注冊("登錄"請求)消息到MA來發(fā)起到該 MA的連接。在注冊之后,該API可以通過將其訂購消息發(fā)送到該MA來 訂購特定的感興趣的話題。話題被用于發(fā)布/訂購消息傳遞,來定義共享的 訪問域和消息的目標,因此,訂購一個或多個話題允許接收和發(fā)送具有這 種話題注釋的消息。P&M將周期授權(quán)更新發(fā)送到網(wǎng)絡(luò)中的MA,每個MA
相應(yīng)地更新其自己的表格。因此,如果發(fā)現(xiàn)API要被授權(quán)來訂購特定的話 題(該MA利用路由選擇授權(quán)表來驗證該API的授權(quán)),則該MA激活到 該API的邏輯連接。然后,如果該API被適當?shù)刈缘胶诵腗A 108c,則 核心MA 108c將數(shù)據(jù)路由到第二 API 110,如圖所示。在其他示例中,該 核心MA 108b可以通過額外的一個或多個核心MA (未示出)路由消息, 這一個或多個核心MA將消息路由到API llOb, AP 110b然后將消息遞送 到訂購應(yīng)用112k。可見,通信路徑3不要求存在邊沿MA,因為其不涉及任何外部數(shù)據(jù) 消息協(xié)議。在一個對這里通信路徑給出示例的實施例中,企業(yè)系統(tǒng)被配置 有新聞服務(wù)器,該新聞服務(wù)器向雇員發(fā)布關(guān)于多種話題的最新新聞。為了 接收到新聞,雇員經(jīng)由利用API的新聞瀏覽器應(yīng)用訂購它們感興趣的話 題。注意,中間件體系結(jié)構(gòu)允許訂購一個或多個話題。此外,這種體系結(jié) 構(gòu)通過允許消息注釋中的通配符,從而利用單個訂購請求訂購一組相關(guān)的 話題。被稱作通信路徑4的又一條通信路徑是與P&M系統(tǒng)102和104相關(guān) 聯(lián)的多條路徑之一,這些路徑中的每條將P&M鏈接到發(fā)布/訂購網(wǎng)絡(luò)中間 件體系結(jié)構(gòu)中的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通信。在典型的實現(xiàn)方式中,中間件體系結(jié)構(gòu)可以被布署在網(wǎng)絡(luò)上,該網(wǎng)絡(luò) 具有交換機、路由器和其他聯(lián)網(wǎng)設(shè)備,并且其采用基于信道的消息傳遞, 該消息傳遞能夠通過任何類型的物理介質(zhì)通信。這種網(wǎng)絡(luò)構(gòu)造無關(guān)的基于 信道的消息傳遞的一種示例性實現(xiàn)方式是基于IP的網(wǎng)絡(luò)。在這種環(huán)境中, 所有發(fā)布/訂購物理組件之間的所有通信都通過UDP (數(shù)據(jù)報協(xié)議)執(zhí) 行,并且傳輸可靠性由消息傳輸層實現(xiàn)。圖la示出了根據(jù)本原理的覆蓋網(wǎng) 絡(luò)。
如圖所示,覆蓋通信l、 2和3可以經(jīng)由交換機214a-c、路由器216和 子網(wǎng)218a-c在三個核心MA 208a-c之間發(fā)生。換言之,這些通信路徑可以 建立在下層網(wǎng)絡(luò)之上,所述下層網(wǎng)絡(luò)包括聯(lián)網(wǎng)基礎(chǔ)設(shè)施,例如子網(wǎng)、交換 機和路由器,并且如上所述,這種體系結(jié)構(gòu)可以跨越較大的地理區(qū)域(不 同的國家甚至不同的大洲)。根據(jù)本發(fā)明原理的前述和其他端到端中間件體系結(jié)構(gòu)可以被實現(xiàn)在各 種商業(yè)環(huán)境中的各種企業(yè)基礎(chǔ)設(shè)施中。圖2示出了一種這樣的實現(xiàn)方式。在該企業(yè)基礎(chǔ)設(shè)施中,市場數(shù)據(jù)分發(fā)工廠12被構(gòu)建在發(fā)布/訂購網(wǎng)絡(luò) 之上,該發(fā)布/訂購網(wǎng)絡(luò)用于將來自各個市場數(shù)據(jù)交換設(shè)備320^的股票市 場報價路由到交易員(未示出的應(yīng)用)。這種覆蓋解決方案依賴于下層網(wǎng) 絡(luò)提供例如MA之間和這種MA和P&M系統(tǒng)之間的互連。到API 310^的 市場數(shù)據(jù)遞送是基于應(yīng)用訂購的。利用這種基礎(chǔ)設(shè)施,利用應(yīng)用(未示 出)的交易員將來自API 310,.n的交易單通過發(fā)布/訂購網(wǎng)絡(luò)(經(jīng)由核心 MA308 a-b和邊沿MA 306b)放置回市場數(shù)據(jù)交換設(shè)備320^。邏輯上,發(fā)布/訂購網(wǎng)絡(luò)的物理組件被構(gòu)建在類似于開放系統(tǒng)互連 (OSI)參考模型的1到4層的消息傳輸層之上。OSI模型的1到4層分別 是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層。因此,在本發(fā)明的一個實施例中,發(fā)布/訂購網(wǎng)絡(luò)通過例如在所有網(wǎng)絡(luò) 交換機和路由器或者網(wǎng)絡(luò)交換機和路由器的子集中插入一個或多個消息傳 遞線路卡,從而可以被直接布署到下層網(wǎng)絡(luò)/架構(gòu)中。在本發(fā)明的另一個實 施例中,發(fā)布/訂購網(wǎng)絡(luò)可以作為網(wǎng)狀覆蓋網(wǎng)絡(luò)(其中,所有物理組件都被 彼此連接)而被布署。例如,4個MA的完全網(wǎng)狀網(wǎng)絡(luò)是這樣的網(wǎng)絡(luò),其 中,每個MA被連接到其3個對等MA中的每個。在典型實現(xiàn)方式中,發(fā) 布/訂購網(wǎng)絡(luò)是下述組件的網(wǎng)狀網(wǎng)絡(luò) 一個或多個外部數(shù)據(jù)源和/或目的 地、 一個或多個設(shè)置和管理(P&M)系統(tǒng)、 一個或多個消息傳遞設(shè)備 (MA)、 一個或多個可選緩存引擎(CE),以及一個或多個可選應(yīng)用編 程接口 (API)。很明顯,遍及發(fā)布/訂購網(wǎng)絡(luò)的通信是利用用于與下層傳輸邏輯獨立的 消息的本地協(xié)議實現(xiàn)的。這就是將這種體系結(jié)構(gòu)稱作傳輸透明基于信道的
消息傳遞體系結(jié)構(gòu)的原因。圖3更詳細地示出了基于信道的消息傳遞體系結(jié)構(gòu)320。 一般而言, 消息傳遞源和目的地之間的每條通信路徑被認為是一條消息傳遞信道。每 條信道326k利用信道源和信道目的地之間的接口 328^通過物理介質(zhì)建 立。每條這樣的信道是針對專門的消息協(xié)議建立的,所述消息協(xié)議例如是 本地(例如,Tervela )消息協(xié)議或其他。僅邊沿MA (對發(fā)布/訂購網(wǎng)絡(luò) 的入口和出口進行管理的那些MA)利用信道消息協(xié)議(外部消息協(xié) 議)?;谛诺老f(xié)議,信道管理層324確定進入和外出消息是否要求 協(xié)議翻譯。在每個邊沿MA處,如果進入消息的信道消息協(xié)議不同于本地 協(xié)議,則信道管理層324將在將要處理的消息傳遞到本地消息層330之 前,通過將它們發(fā)送過協(xié)議翻譯引擎(PTE) 332,從而執(zhí)行協(xié)議翻譯。同 樣,在每個邊沿MA處,如果外出消息的本地消息協(xié)議不同于信道消息協(xié) 議(外部消息協(xié)議),則信道管理層324將在將要處理的消息路由到傳輸 信道326^之前,將它們發(fā)送過協(xié)議翻譯引擎(PTE) 332,從而執(zhí)行協(xié)議 翻譯。從而,信道對與物理介質(zhì)的接口 328^、與該物理介質(zhì)相關(guān)聯(lián)的特 定網(wǎng)絡(luò)和傳輸邏輯、以及消息組件或者片段進行管理。換言之,信道對到物理層322的OSI傳輸進行管理。對信道資源的優(yōu) 化基于每條信道被執(zhí)行(例如,基于消耗模式對物理介質(zhì)的消息密度優(yōu) 化,所述消耗模式包括帶寬、消息大小分布、信道目的地資源和信道健康 統(tǒng)計)。然后,因為通信信道是網(wǎng)絡(luò)構(gòu)造無關(guān)的,所以不要求特定類型的 架構(gòu)。實際上,任何架構(gòu)介質(zhì)都將工作,例如,ATM、 Infiniband或者以 太網(wǎng)。順便提及,在例如單個消息被分割到多個幀或者多個消息被打包到單 個幀中時,可能需要消息分段或重組。消息分段或重組在消息被遞送到信 道管理層之前被執(zhí)行。圖3進一步示出了在具有中間件體系結(jié)構(gòu)的網(wǎng)絡(luò)中的多種可能的信道 實現(xiàn)方式。在一種實現(xiàn)方式340中,通信是利用通過太網(wǎng)交換的網(wǎng)絡(luò)的多 播,經(jīng)由基于網(wǎng)絡(luò)的信道執(zhí)行的,其中以太網(wǎng)交換的網(wǎng)絡(luò)充當用于這種通 信的物理介質(zhì)。在這種實現(xiàn)方式中,源從其IP地址經(jīng)由其UDP端口將消
息發(fā)送向具有其關(guān)聯(lián)UDP端口的目的地群組(被定義為IP多播地址)。 在這種實現(xiàn)方式的變體342中,源和目的地之間的通信是利用UDP單播 通過以太網(wǎng)交換的網(wǎng)絡(luò)實現(xiàn)的。源從其IP地址經(jīng)由其UDP端口將消息發(fā) 送向在其相應(yīng)的IP地址處具有UDP端口的選擇目的地。在另一種實現(xiàn)方式344中,信道是利用本地Infiniband傳輸協(xié)議通過 Infiniband互連建立的,其中Infiniband架構(gòu)是物理介質(zhì)。在這種實現(xiàn)方式 中,信道是基于節(jié)點的,并且源和目的地之間的通信是利用它們各自的節(jié) 點地址基于節(jié)點的。在又一種實現(xiàn)方式346中,信道是基于存儲器的,例 如RDMA (遠程直接存儲器訪問),并且在這里被稱作直接連接 (DC)。利用這種類型的信道,消息從源機器被直接發(fā)送到目的地^^器的 存儲器,從而繞過CPU處理來應(yīng)對從NIC到應(yīng)用存儲器空間的消息,并 且可能避免了將消息封裝成網(wǎng)絡(luò)分組的網(wǎng)絡(luò)開銷。至于本地協(xié)議, 一種方法利用前述本地Tervelam消息協(xié)議。概念上, Tervela 消息協(xié)議與基于IP的協(xié)議類似。每個消息包含消息頭部和消息 有效負載。消息頭部包含多個字段,其中一個字段用于話題信息。如上所 述,話題由客戶用來訂購共享的信息域。圖4示出了一個可能的基于話題的消息格式。如圖所示,消息包括頭 部370和主體372和374,主體372和374包括有效負載。示出了兩類消 息,即,數(shù)據(jù)和管理消息,這兩類消息具有不同的消息體和有效負載類 型。頭部包括用于以下內(nèi)容的字段源和目的地命名空間標識、源和目的 地會話標識、話題序列號和希望時間戳,另外,其還包括話題注釋字段 (該字段優(yōu)選是可變長度的)。話題可以被定義為基于標記的字符串,例如T1.T2.T3.T4,其中Tl、 T2、 T3和T4是可變長度的字符串。在一個示例中,話題可以被定義為 NYSE.RTF.IBM 376,該字符串是包含IBM股票實時報價的消息的話題注 釋。在一些實現(xiàn)方式中,消息中的話題注釋可能被編碼或者被映射到一個 關(guān)鍵字,關(guān)鍵字可以是一個或多個整數(shù)值。然后,每個話題會被映射到一 個唯一的關(guān)鍵字,并且話題和關(guān)鍵字之間的映射數(shù)據(jù)庫將由P&M系統(tǒng)維 護,并且通過線路被更新到所有MA。結(jié)果,在API訂購或者發(fā)布一個話
題時,MA能夠返回用于消息的話題字段的關(guān)聯(lián)的唯一關(guān)鍵字。優(yōu)選地,訂購格式將遵循與消息話題相同的格式。但是,訂購格式還支持與任何話題子字符串匹配或者與話題正則表達式模式匹配的通配符。對通配符到實際話題的映射的處理可以依賴于P&M系統(tǒng),或者根據(jù)通配符或模式匹配請求的復(fù)雜度由MA處理。模式匹配可以遵循下面的示例中提供的規(guī)則。示例弁1:具有通配符T1.*.T3.T4的字符串將與Tl.T2a.T3.T4、 Tl.T2b.T3.T4匹配,但是不與T1.T2.T3.T4.T5匹配示例#2:具有通配符T1AT3.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匹配,但是不與Tl.T5a.T3.T4匹配示例#5:具有通配符T1.*.T3.T4.> (任何數(shù)目的結(jié)尾元素)的字符串 將與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ā)布/訂購網(wǎng)絡(luò)。 所有這些路由或者說訂購和信道之間的映射的超集定義路由選擇表。路由 選擇表也被稱作訂購表。用于利用基于字符串的話題進行路由選擇的訂購 表可以以多種方式被構(gòu)造,但是優(yōu)選配置為對其大小以及路由選擇査找速 度進行優(yōu)化。在一種實現(xiàn)方式中,訂購表可以被定義為動態(tài)散列圖結(jié)構(gòu), 而在另一種實現(xiàn)方式中,訂購表可以被布置在樹結(jié)構(gòu)中,如圖5中的圖所
樹包括由邊連接的節(jié)點(例如,T,、…、T1()),其中話題訂購的每個 子字符串對應(yīng)于樹中的一個節(jié)點。映射到給定的訂購的信道被存儲^E訂購 的葉子節(jié)點上,每個葉子節(jié)點指示該話題訂購來自的信道的列表(即,通 過其接收到訂購請求)。該列表指示哪個信道應(yīng)接收其話題注釋與該訂購 匹配的消息的拷貝。如圖所示,消息路由選擇査找將消息話題作為輸入, 然后利用該話題的每個子字符串對樹進行解析,來定位與進入消息話題相 關(guān)聯(lián)的不同信道。例如,Tp T2, T3, T4和Ts被導(dǎo)向信道l、 2和3; T,、 T2和T3被導(dǎo)向信道4; T" T6、 T7、 T,和T9被導(dǎo)向信道4和5; T,, T6, T7, 丁8和丁9被導(dǎo)向信道1;以及T" T6、 T7、 T,和Tu)被導(dǎo)向信道5。
盡管對路由選擇表的結(jié)構(gòu)的選擇是要對路由選擇表的査找進行優(yōu)化, 但是查找的性能還取決于用于找到與進入消息話題匹配的一個或多個話題 訂購的搜索算法。因此,路由選擇表結(jié)構(gòu)應(yīng)當能夠適應(yīng)這種算法,反之亦 然。減小路由選擇表的大小的一種方式是允許路由選擇算法有選擇地將訂 購傳播遍整個發(fā)布/訂購網(wǎng)絡(luò)。例如,如果訂購看來是已被傳播的另一個訂 購的子集(例如,整個字符串的一部分),則無需傳播該子集訂購,因為 MA已具有該訂購的超集的信息。
基于前述,優(yōu)選的消息路由選擇協(xié)議是基于話題的路由選擇協(xié)議,其 中授權(quán)在訂戶和相應(yīng)的話題之間的映射中指示出。授權(quán)是針對每個訂戶或 者訂戶群組/類別指定的,指示該訂購有權(quán)消耗何種消息或者該產(chǎn)生者(發(fā) 布者)可以產(chǎn)生(發(fā)布)哪些消息。這些授權(quán)是在P&M系統(tǒng)中定義的, 被傳輸?shù)桨l(fā)布/訂購網(wǎng)絡(luò)中的所有MA,然后被MA用來創(chuàng)建和更新它們的 路由選擇表。
所有在發(fā)布/訂購網(wǎng)絡(luò)中被路由的消息都在特定信道上被接收或者發(fā) 送。MA利用這些信道與發(fā)布/訂購網(wǎng)絡(luò)中的所有其它物理組件通信。然 而,有時候這些接口被中斷或者目的地不能跟上負載。在這些情形或其它 類似情形中,消息可以被從存儲設(shè)備召回并且被重傳。因此,無論何時需 要存儲和轉(zhuǎn)發(fā)功能,MA都可以有效地與緩存引擎(CE)相關(guān)聯(lián)。另外, 因為可靠性、可用性和一致性在企業(yè)操作中經(jīng)常是必須的,所以發(fā)布/訂購 中間件系統(tǒng)可被設(shè)計用于容錯,其組件中的多個被部署為容錯系統(tǒng)。
例如,MA可被部署為容錯MA對,其中第一 MA被稱為主MA,并 且第二MA被稱為副MA或容錯MA (FTMA)。然后,為了存儲和轉(zhuǎn)發(fā) 操作,CE (緩存引擎)可以被連接到主或副的核心/邊緣MA。當主或副 MA具有到CE的活動連接時,其將被路由的消息的全部或者子集轉(zhuǎn)發(fā)給 該CE,該CE把它們寫到存儲區(qū)域中以實現(xiàn)持久性。在預(yù)定時間段內(nèi),然 后這些消息當被請求時可用于重傳。另外,如圖2所示,CE可被部署為 容錯CE對,其中在發(fā)生故障時副CE接管主CE。如圖6所示,CE經(jīng)由物理介質(zhì)直接連接到MA,并且其被設(shè)計為在高 容量和低等待時間的消息傳遞環(huán)境中提供存儲轉(zhuǎn)發(fā)體系結(jié)構(gòu)的特征。隨 后,圖7是圖示了根據(jù)本發(fā)明一個實施例而配置的CE的框圖。CE 700執(zhí)行許多功能。對于消息數(shù)據(jù)持久性, 一個功能包括接收由 MA轉(zhuǎn)發(fā)的數(shù)據(jù)消息、利用不同的消息頭部字段給它們編索引,并且將它 們存儲在存儲區(qū)域710中。另一個功能包括對來自MA的消息取回請求進 行響應(yīng),并且重發(fā)已被丟失或未被接收到(并因而被客戶再次請求)的消 息。一般來說,CE被建立在與MA相同的邏輯層之上。然而,其本地 (例如Tervela )消息傳遞層被大為簡化。因為與被路由到發(fā)布/訂購網(wǎng) 絡(luò)中的另一個物理組件相比,所有消息都在CE處被本地處理并被遞送到 其管理消息層714或其緩存層702,所以不需要路由引擎邏輯。如前所 述,管理消息除了用于被轉(zhuǎn)發(fā)到緩存層702的取回請求之外,通常用于管 理目的。所有的數(shù)據(jù)消息被轉(zhuǎn)發(fā)到緩存層,緩存層使用索引服務(wù)712首先 用基于話題的索引來給消息編索引,然后被轉(zhuǎn)發(fā)到存儲服務(wù)708,用來將 消息存儲在存儲區(qū)域701 (例如RAID、磁盤等)中。所有的數(shù)據(jù)消息都 被保持在存儲區(qū)域710中預(yù)定義的時間段,存儲區(qū)域710經(jīng)常是冗余持久 存儲器。索引服務(wù)712負責"垃圾收集"活動,并且通知存儲服務(wù)708何 時需要從存儲區(qū)域丟棄過期的數(shù)據(jù)消息。CE可以是基于軟件的解決方案或者是嵌入式解決方案。更具體的 說,CE可被配置為在高端服務(wù)器中的操作系統(tǒng)(OS)上運行的軟件應(yīng)用 程序。這種服務(wù)器可以包括用來增加進出MA的數(shù)據(jù)傳輸速率的高性能
NIC (網(wǎng)絡(luò)接口卡)。在另一種配置中,CE是用于使進出MA的網(wǎng)絡(luò)I/O(輸入/輸出)加速和使進出存儲區(qū)域的存儲I/O加速的嵌入式解決方案。 這種嵌入式解決方案可被設(shè)計用于高效地將數(shù)據(jù)流式傳送一個或多個磁 盤。因此,為了總的提高性能,CE的實現(xiàn)被設(shè)計用于使MA-CE-存儲數(shù)據(jù) 傳輸速率最大化并且用于使被請求的消息的取回等待時間最小化。例如,為了使MA與CE之間的數(shù)據(jù)傳輸最大化,它們的通信—鏈路被 實現(xiàn)為直接10Gigabit/s以太網(wǎng)光纖互連或者任何其他高吞吐量且低等待時 間的互連,例如Myrinet。并且,為了增大該鏈路上的吞吐量,CE可以把 盡可能多的消息封裝到單個大幀中。另外,基于軟件的CE經(jīng)由遠港i直接 存儲器訪問與MA通信,直接存儲器訪問繞過了 CPU (中央處理器)和 OS,從而使吞吐量最大化并使等待時間最小化。然后,為了使存儲-1/0效 率最大化,CE在多個存儲設(shè)備之間分發(fā)磁盤I/O。在一個實現(xiàn)中,CE使 用分布式數(shù)據(jù)庫邏輯和分布式高性能冗余存儲技術(shù)的組合。另外,為了使 被請求的消息的取回等待時間最小化,CE的一個實現(xiàn)在把這些消息轉(zhuǎn)儲 (flush)到存儲設(shè)備之前使用RAM (隨機訪問存儲器)來保持索引和最 新消息或者最常取回的消息。當與MA接口連接時,CE處理兩種類型的消息, 一種類型是正?;?者說完整的數(shù)據(jù)消息,并且另一種是不完整或部分發(fā)布的數(shù)據(jù)消息。具體 地說,當CE 700的索引服務(wù)712接收到部分發(fā)布的消息時,其將該消息 對比同一話題的上次已知的完整消息進行比較,同一話題的上次已知的完 整消息也被描述為該部分發(fā)布消息的主鏡像。索引服務(wù)712在RAM (未 示出)中為所有的完整消息保持主鏡像。部分發(fā)布的消息(具有ff值的消 息更新)代替了消息的主鏡像中的舊值,同時保持了未被從而更新的未改 變的值。與任何其他數(shù)據(jù)消息很象,部分發(fā)布的消息被編索引并且可用于 重傳。并且,象由CE記錄的任何其他消息一樣,主鏡像除了可能被提供 作為不同的消息類型或者其消息頭部標志可能具有指示其為主鏡《象的不同 值之外也可用于重傳。實際上,主鏡像可能對應(yīng)用有價值,并且4吏用他們 相應(yīng)的API,這種應(yīng)用可以在任何給定時候請求部分發(fā)布的消息、流的主鏡 像。隨后,這種應(yīng)用接收部分發(fā)布的消息更新。
為了提供合并的、有保證同時連接的和有保證同時不連接的服務(wù)質(zhì)量(QoS),消息網(wǎng)絡(luò)構(gòu)造必須始終提供數(shù)據(jù)持久性和完整性。為了提供容 錯的持久緩存解決方案,這些緩存引擎可被配置和部署為由主和副CE對 組成的容錯對,或者由多于兩個CE節(jié)點組成的容錯組。如果兩個或更多 緩存引擎經(jīng)由基于相同話題的訂購而互相邏輯鏈接,則它們訂購相同的數(shù) 據(jù)并從而保持被訂購數(shù)據(jù)的唯一和一致的視圖。在數(shù)據(jù)丟失的情況下,緩 存引擎可以向容錯組中的其他緩存引擎成員請求丟失數(shù)據(jù)的重傳。同一容 錯組中的緩存引擎之間的數(shù)據(jù)同步是通過消息傳遞網(wǎng)絡(luò)構(gòu)造平行化的,消 息網(wǎng)絡(luò)構(gòu)造經(jīng)由MA將被訂購的消息傳遞流量的多個拷貝智能且高效地轉(zhuǎn) 發(fā)到所有的緩存引擎示例。結(jié)果,這實現(xiàn)了用于容錯和災(zāi)難恢復(fù)部署的異 步數(shù)據(jù)一致性,其中,與使用存儲/磁盤鏡像法或數(shù)據(jù)庫復(fù)制技術(shù)相比,數(shù) 據(jù)同步和持久性是通過消息傳遞網(wǎng)絡(luò)構(gòu)造來執(zhí)行和保證的。利用用于冗余和數(shù)據(jù)一致性的消息傳遞網(wǎng)絡(luò)構(gòu)造的益處之一是與數(shù)據(jù) 和索引(用于數(shù)據(jù)庫復(fù)制)和/或磁盤存儲開銷(用于遠程磁盤鏡像)相比 減少了由同步流量引起的帶寬使用,因為在緩存引擎之間只有數(shù)據(jù)被同 步。第二個益處是解決了消息排序,因為消息傳送層已經(jīng)保證了關(guān)于任何 給定訂購的消息的順序。為了進一步進行說明,圖8示出了具有緩存引擎容錯對配置的消息傳 遞設(shè)備,并且描述了 API從主MA到副MA的故障轉(zhuǎn)移過程。在CE故障時間之前,即在階段#1處,兩個緩存引擎都接收相同的訂 購消息傳遞流量,因為它們都訂購了相同的話題。當主緩存引擎發(fā)生故障 時,事件#2, MA檢測到故障,然后轉(zhuǎn)移到副MA (其接管主MA),副 MA依次使API也轉(zhuǎn)移到副MA。在晚些時候,主緩存引擎恢復(fù)運行,事 件弁3;其將重新啟動其訂購,并且當接收到數(shù)據(jù)時,其將檢測關(guān)于其所有 訂購的數(shù)據(jù)丟失。將通過發(fā)送一個或多個根據(jù)每個訂購的重傳請求到副緩 存引擎來請求該丟失數(shù)據(jù)。數(shù)據(jù)同步階段將在主和副緩存引擎之間開始,從而使用消息傳遞邏輯。在本發(fā)明的一個實施例中,數(shù)據(jù)同步流量將經(jīng)過如圖8所示的消息傳 遞網(wǎng)絡(luò)構(gòu)造一同步路徑#1。該路徑可被配置為不超過預(yù)定義的消息速率或 預(yù)定義的帶寬。這對災(zāi)難恢復(fù)配置可以是至關(guān)重要的,在災(zāi)難恢復(fù)配置中主和副緩存引擎位于不同的地理位置中,利用諸如WAN鏈路或?qū)S霉饫w 連接這樣的減少帶寬的站點間鏈路。
可替代地,在本發(fā)明的另一個實施例中,數(shù)據(jù)同步流量將經(jīng)過諸如 Infiniband或Myrinet這樣的替代高速互連直接鏈路或交換機,以使同步流 量與常規(guī)的消息傳送流量隔離。這樣一種替代同步路徑#2可被用作同步流 量的主或后備鏈路。該鏈路可被靜態(tài)地配置為專用同步路徑,或者可以基 于總消息傳遞網(wǎng)絡(luò)構(gòu)造負載來實時動態(tài)地選擇。緩存引擎或者消息傳-遞設(shè) 備可以做出決定,以使同步流量離開消息傳遞網(wǎng)絡(luò)構(gòu)造而移向該替代同步 路徑。當同步完成時,事件糾,主CE準備好接管。此時,主MA可以變?yōu)?活動,或者在副CE和/或MA發(fā)生故障之前保持不活動。
總而言之,本發(fā)明提供了一種用于傳輸消息的新方法,更具體地說, 具有容錯持久緩存能力的端到端發(fā)布/訂購中間件體系結(jié)構(gòu),其提高了消息 傳遞系統(tǒng)的效率,簡化了緩存解決方案的可管理性并且減少了各種水平的 有保證的遞送服務(wù)質(zhì)量的恢復(fù)等待時間。盡管已參考本發(fā)明的某些tt;選版 本相當詳細地描述了本發(fā)明,但是其他版本也是可能的。因此,所附權(quán)利要求書的精神和范圍不應(yīng)當被限于對這里所包含的優(yōu)選版本的描述。
權(quán)利要求
1. 一種消息傳遞系統(tǒng),包括 一個或多個應(yīng)用;多個消息傳遞設(shè)備,其操作用于接收和路由消息,包括去往和來自所 述應(yīng)用;以及多個緩存引擎,其以容錯配置布置,其中一個或多個緩存引擎連接到 所述多個消息傳遞設(shè)備當中的每個指定的消息傳遞設(shè)備,并且其中所述多 個緩存引擎中的每一個相應(yīng)地訂購話題,并且邏輯地鏈接到被連接到相應(yīng) 地訂購相同話題的緩存引擎的所述指定消息傳遞設(shè)備中的任何一個,以提 供冗余,使得訂購相同話題的一組緩存引擎中的所有緩存引擎接收相同的 消息數(shù)據(jù)并且保持與所述話題相關(guān)的所有消息流量的一致、同步的視圖。
2. 如權(quán)利要求1所述的消息傳遞系統(tǒng),具有用于路由所述消息流量的 消息傳遞網(wǎng)絡(luò)構(gòu)造,所述消息傳遞網(wǎng)絡(luò)構(gòu)造包括所述多個消息傳遞設(shè)備并 且被操作用來經(jīng)由所述消息傳遞網(wǎng)絡(luò)構(gòu)造來提供一致、同步的視圖,或 者,如果在緩存引擎之間存在直接連接,則經(jīng)由該直接連接來提供一致、 同步的視圖,其中實時故障轉(zhuǎn)移是由消息傳遞設(shè)備或緩存引擎基于消息傳 遞網(wǎng)絡(luò)構(gòu)造的負載來決定的。
3. 如權(quán)利要求2所述的消息傳遞系統(tǒng),其中,所述直接連接包括高速 直接連接或交換機。
4. 如權(quán)利要求3所述的消息傳遞系統(tǒng),其中,所述高速直接連接包括 Infiniband或Myrinet互連。
5. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,為了保持一致的同步視 圖,每個緩存引擎被操作用來利用預(yù)定義的帶寬和/或消息速率來獲得所述 消息數(shù)據(jù)。
6. 如權(quán)利要求1所述的消息傳遞系統(tǒng),操作使得當一個或多個緩存引 擎發(fā)生故障時,連接到相同消息傳遞設(shè)備的保持活動的任何其他緩存引擎 接管發(fā)生故障的緩存引擎,并且如果未剩下活動的緩存引擎或者當任何其 他故障涉及該消息傳遞設(shè)備時,被邏輯鏈接到發(fā)生故障的消息傳遞設(shè)備的 緩存引擎的另一個消息傳遞設(shè)備接管發(fā)生故障的消息傳遞設(shè)備,其中任何 接管對邏輯連接到故障緩存引擎和/或消息傳遞設(shè)備的所述一個或多個應(yīng)用 是透明的。
7. 如權(quán)利要求6所述的消息傳遞系統(tǒng),還操作使得已經(jīng)恢復(fù)的任何發(fā) 生故障的緩存引擎通過請求保持活動的另一個緩存引擎將丟失數(shù)據(jù)發(fā)送給 它來取回所述丟失數(shù)據(jù)。
8. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,每個緩存引擎具有消息層,其操作用于發(fā)送和接收消息,具有索引服務(wù)的緩存層,其操作用于首先給接收到的消息編索引并且 用于保持接收到的部分發(fā)布的消息的鏡像,存儲設(shè)備和存儲服務(wù),所述存儲服務(wù)操作用于將接收到的消息中的全 部或者子集存儲在所述存儲設(shè)備中,一個或多個物理信道接口,用于傳輸接收到和發(fā)送出的消息,以及具有信道管理的消息傳輸層,用于控制通過所述一個或多個物理信道 接口中的每一個接口的消息的發(fā)送和接收。
9. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,每個緩存引擎中的所述 存儲設(shè)備操作用于允許被存儲的接收到的消息臨時地保持為在來自所述緩 存引擎的請求時可用于重傳。
10. 如權(quán)利要求1所述的消息傳遞系統(tǒng),還包括消息傳遞網(wǎng)絡(luò)構(gòu)造以 及設(shè)置和管理系統(tǒng),所述設(shè)置和管理系統(tǒng)經(jīng)由消息傳遞網(wǎng)絡(luò)構(gòu)造鏈接到所 述消息傳遞設(shè)備并且被配置用于與每個消息傳遞設(shè)備交換管理消息。
11. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,每個消息傳遞設(shè)備還 操作用于通過動態(tài)地選擇消息傳輸協(xié)議和消息路由選擇路徑來執(zhí)行消息的 路由選擇。
12. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,所述消息傳遞網(wǎng)絡(luò)構(gòu) 造包括互連,所述互連是基于信道的、網(wǎng)絡(luò)構(gòu)造無關(guān)的物理介質(zhì)。
13. 如權(quán)利要求12所述的消息傳遞系統(tǒng),其中,所述互連被配置為以 太網(wǎng)、基于存儲器的直接連接或Infiniband。
14. 如權(quán)利要求12所述的消息傳遞系統(tǒng),其中,所述互連被配置為操 作用于高吞吐量和低等待時間的直接lOGigabit以太網(wǎng)光纖互連或Myrinct 互連。
15. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,所述消息是用模式和 有效負載來構(gòu)造的,所述模式和有效負載在消息進入所述消息傳遞系統(tǒng)時 被互相分離并且在消息離開所述消息傳遞系統(tǒng)時被組合。
16. 如權(quán)利要求IO所述的消息傳遞系統(tǒng),其中,所述消息和管理消息 具有基于話題的格式,每個消息具有頭部和有效負載,所述頭部除源和目 的地命名空間標識字段之外還包括話題字段。
17. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,所述消息包括具有話 題字段的訂購消息,所述話題字段具有可變長度字符串,所述可變長度字 符串具有任意數(shù)目的通配符字符,用于如果任何話題子字符串和所述訂購 消息具有相同數(shù)目的話題子字符串則將其與這種話題匹配。
18. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,所述緩存引擎操作用 于提供包括消息數(shù)據(jù)存儲和轉(zhuǎn)發(fā)功能的服務(wù)質(zhì)量功能。
19. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述與每個緩存引擎 相關(guān)的存儲設(shè)備包括多個存儲裝置,所述多個存儲裝置操作用于分布式消 息輸入/輸出。
20. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述每個緩存引擎中 的消息層包括操作用于處理管理消息的管理消息層。
21. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述每個消息緩存引擎中的消息層操作用于從所述緩存層取回所請求的消息并且用于將接收到 的消息格式化為具有頭部字段和有效負載。
22. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述緩存層還包括隨 機訪問存儲器,并且其中所述索弓I服務(wù)還操作用于在所述隨機訪問存儲器 中保持所述鏡像。
23. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述由所述緩存層接 收和保持的每個部分發(fā)布消息的鏡像包括更新和未被更新改變的舊值。
24. 如權(quán)利要求9所述的消息傳遞系統(tǒng),其中,所述消息臨時保持在 所述存儲設(shè)備中以便可用于重傳的時間段是預(yù)先確定的。
25. 如權(quán)利要求8所述的消息傳遞系統(tǒng),其中,所述存儲設(shè)備是冗余 的持久存儲設(shè)備。
26. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其被提供作為基于軟件或基 于嵌入式的配置。
27. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其被嵌入在在操作系統(tǒng)上運 行的軟件應(yīng)用程序中。
28. 如權(quán)利要求1所述的消息傳遞系統(tǒng),其中,所述消息傳遞流量的 一致、同步的視圖使得所述消息傳遞系統(tǒng)可以提供消息傳遞服務(wù)質(zhì)量,所 述消息傳遞服務(wù)質(zhì)量包括部分發(fā)布、合并的、有保證同時連接的和有保證 同時不連接的中的一個或者組合。
29. —種用于在消息傳遞系統(tǒng)中提供服務(wù)質(zhì)量的方法,包括提供 布置具有多個消息傳遞設(shè)備的消息傳遞網(wǎng)絡(luò)構(gòu)造; 以容錯配置來布置多個緩存引擎,其中一個或多個緩存引擎連接到所述多個消息傳遞設(shè)備當中的每個指定的消息傳遞設(shè)備;通過訂購話題將所述多個緩存引擎中的每一個邏輯鏈接到與這種緩存 引擎共同訂購類似話題的一個或多于一個的其他緩存引擎所連接到的指定 消息傳遞設(shè)備中的任何一個,以提供冗余,對于訂購相同話題的每組緩存引擎,使所述組中的所有緩存引擎同 步,使得所述組中的所有緩存引擎接收相同的消息數(shù)據(jù)并且保持與這種話 題相關(guān)的所有消息流量的一致、同步的視圖,并且其中這種同步使得能夠 提供消息傳遞服務(wù)質(zhì)量。
30. 如權(quán)利要求29所述的方法,其中,消息傳遞服務(wù)質(zhì)量包括部分發(fā) 布、合并的、有保證同時連接的和有保證同時不連接的消息傳遞。
31. 如權(quán)利要求29所述的方法,還包括,當一個或多個緩存引擎發(fā)生 故障時,通過連接到相同消息傳遞設(shè)備并且保持活動的任何其他緩存引擎 來接管發(fā)生故障的緩存引擎,如果未剩下活動的緩存引擎或者當任何其他 故障涉及該消息傳遞設(shè)備時,則通過被邏輯鏈接到所述發(fā)生故障的緩存引 擎的另一個消息傳遞設(shè)備來接管發(fā)生故障的消息傳遞設(shè)備。
32. 如權(quán)利要求29所述的方法,還包括在所述緩存引擎中的每一個與一個或多個應(yīng)用之間經(jīng)由其相應(yīng)的指定消息傳遞設(shè)備進行接口連接,其中 任何故障轉(zhuǎn)移對所述邏輯連接到發(fā)生故障的緩存引擎和/或消息傳遞設(shè)備的 一個或多個應(yīng)用是透明的。
33. 如權(quán)利要求29所述的方法,其中,保持一致、同步的視圖是經(jīng)由 所述消息傳遞網(wǎng)絡(luò)構(gòu)造來實現(xiàn)的,或者,如果在緩存引擎之間存在直接連 接,則經(jīng)由這種直接連接來保持一致、同步的視圖,其中實時故障轉(zhuǎn)移是 由消息傳遞設(shè)備或者緩存引擎基于消息傳遞網(wǎng)絡(luò)構(gòu)造的負載來決定的。
34. —種用緩存引擎來提供服務(wù)質(zhì)量的方法,包括 在具有消息傳輸層、管理消息層以及帶有索引服務(wù)和相關(guān)存儲設(shè)備的緩存層的緩存引擎中,執(zhí)行以下步驟通過所述消息傳輸層接收數(shù)據(jù)和管理消息;將所述管理消息轉(zhuǎn)發(fā)到所述管理消息層并且將所述數(shù)據(jù)消息轉(zhuǎn)發(fā)到所 述緩存層,其中被轉(zhuǎn)發(fā)到所述管理消息層的消息取回請求消息被路由到所 述緩存層;在所述索引服務(wù)中給所述數(shù)據(jù)消息編索引,所述索引編制是基于話題 的;以及基于所述索弓I編制將所述數(shù)據(jù)消息存儲在存儲裝置中,其中所述數(shù)據(jù) 消息被保持在所述存儲裝置中預(yù)定時間段,在所述預(yù)定時間段期間所述數(shù) 據(jù)消息可響應(yīng)于消息取回請求消息而用于重傳。
35. —種用于利用如權(quán)利要求34所述的緩存引擎來提供服務(wù)質(zhì)量的方 法,其中,所述數(shù)據(jù)消息是完整的數(shù)據(jù)消息或者是部分發(fā)布的數(shù)據(jù)消息。
36. —種用于利用如權(quán)利要求35所述的緩存引擎來提供服務(wù)質(zhì)量的方 法,其中,每個數(shù)據(jù)消息具有相關(guān)的話題,其中所述索引服務(wù)保持每個完 整數(shù)據(jù)消息的主鏡像,并且對于作為部分完整消息的接收到的數(shù)據(jù)消息, 所述索引服務(wù)將所述接收到的數(shù)據(jù)消息對比具有與所述部分發(fā)布消息的話 題類似的相關(guān)話題的完整消息的最新主鏡像進行比較,以確定應(yīng)當如何更 新所述主鏡像。
37. —種用于利用如權(quán)利要求35所述的緩存引擎來提供服務(wù)質(zhì)覺的方 法,其中,所述部分發(fā)布的消息被編制索引并且可用于重傳。
38. —種用于利用如權(quán)利要求36所述的緩存引擎來提供服務(wù)質(zhì)量的方 法,其中,所述主鏡像被編制索引并且可用于重傳。
39. —種消息傳遞系統(tǒng)中的緩存引擎,包括 消息層,其操作用于發(fā)送和接收消息;緩存層,其具有索引服務(wù)、存儲設(shè)備和存儲服務(wù),所述索引服務(wù)操作 用于首先給接收到的消息編索引并且用于保持接收到的部分發(fā)布消息的z鏡 像,所述存儲服務(wù)操作用于將接收到的消息的全部或者子集存儲在所述存 儲設(shè)備中,在所述存儲設(shè)備中所述消息臨時保持為在被請求時可用于重 傳;一個或多個物理信道接口,用于傳輸接收到和發(fā)送出的消息;以及 具有信道管理的消息傳輸層,用于控制通過所述一個或多個物理信道 接口中的每一個接口的消息的發(fā)送和接收。
40. 如權(quán)利要求41所述的緩存引擎,其被部署為容錯緩存引擎對或容 錯緩存引擎組的一部分并具有容錯能力,其中當發(fā)生故障時,副緩存引擎 接管主緩存引擎。
41. 如權(quán)利要求42所述的緩存引擎,其中,所述消息層包括操作用于 處理管理消息的管理消息層。
42. 如權(quán)利要求39所述的緩存引擎,其中,所述消息層操作用于從所 述緩存層取回所請求的消息并且用于將接收到的消息格式化為具有頭部字 段和有效負載。
43. 如權(quán)利要求39所述的緩存引擎,其中,所述緩存層還包括隨機訪 問存儲器,并且其中所述索引服務(wù)還操作用于在所述隨機訪問存儲器中保 持所述鏡像。
44. 如權(quán)利要求39所述的緩存引擎,其中,所述由所述緩存層接收和 保持的每個部分發(fā)布消息的鏡像包括更新和未被更新改變的舊值。
45. 如權(quán)利要求39所述的緩存引擎,其中,所述消息臨時保持在所述存儲設(shè)備中以便可用于重傳的時間段是預(yù)先確定的。
46. 如權(quán)利要求39所述的緩存引擎,其中,所述存儲設(shè)備是冗余的持久存儲設(shè)備。
47. 如權(quán)利要求39所述的緩存引擎,其被提供作為基于軟件或基于嵌 入式的配置。
48. 如權(quán)利要求39所述的緩存引擎,其被嵌入在在操作系統(tǒng)上運行的 軟件應(yīng)用程序中。
49. 如權(quán)利要求39所述的緩存引擎,其操作用于提供部分數(shù)據(jù)發(fā)布服 務(wù)以及有保證同時連接的和有保證同時不連接的消息遞送服務(wù)質(zhì)量。
50. 如權(quán)利要求39所述的緩存引擎,其中,所述存儲設(shè)備包括多個存 儲裝置,所述多個存儲裝置操作用于分布式消息輸入/輸出
51. 如權(quán)利要求1所述的消息傳遞系統(tǒng),還包括操作用于所述緩存引 擎的管理操作的設(shè)置和管理系統(tǒng)。
52. 如權(quán)利要求1所述的消息傳遞系統(tǒng),還包括一個或多個應(yīng)用編程 接口,所述一個或多個應(yīng)用編程接口操作用于允許所述應(yīng)用以本地消息格 式進行發(fā)布和訂購。
53. 如權(quán)利要求1所述的消息傳遞系統(tǒng),還包括一個或多個協(xié)議S莉譯 引擎,所述一個或多個協(xié)議翻譯引擎與所述消息傳遞設(shè)備中的任何一個相 關(guān)并且操作用于允許所述應(yīng)用以外部消息格式進行發(fā)布和訂購。
全文摘要
消息發(fā)布/訂購系統(tǒng)被要求處理大量消息,同時減少等待時間和性能瓶頸。本發(fā)明所提議的端到端中間件體系結(jié)構(gòu)被設(shè)計為通過數(shù)據(jù)緩存來實現(xiàn)大量、低等待時間消息傳遞,同時具有保證的遞送服務(wù)質(zhì)量,所述數(shù)據(jù)緩存使用具有存儲設(shè)備和存儲服務(wù)的緩存引擎。在消息傳遞中,消息傳遞設(shè)備(MA)接收和路由消息,但是其首先通過將拷貝發(fā)送到CE來記錄被路由的消息的全部或者子集。然后,在預(yù)定時間段中,被記錄的消息在被所述消息傳遞系統(tǒng)中的任何組件請求時可用于重傳,從而提供了有保證同時連接的和有保證同時不連接的服務(wù)質(zhì)量以及部分數(shù)據(jù)發(fā)布服務(wù)。
文檔編號G06F15/16GK101124567SQ200580046095
公開日2008年2月13日 申請日期2005年12月23日 優(yōu)先權(quán)日2005年1月6日
發(fā)明者巴利·J·湯普森, 庫·辛格, 皮埃爾·費沃 申請人:特維拉有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1