新四季網

一種大規模實時統一消息空間的方法及其系統的製作方法

2023-08-02 22:30:46 2


專利名稱::一種大規模實時統一消息空間的方法及其系統的製作方法
技術領域:
:本發明涉及網際網路信息發布/訂閱系統中如何組織參與實體和維護拓撲的技術以及訂閱和通知的路由技術,尤其涉及一種大規模實時統一消息空間的方法及其系統,屬於事件驅動系統
技術領域:

背景技術:
:網絡對現代計算機系統的發展的影響越來越大,但是網絡互連繫統日漸增加的連通性和規模也帶來了一系列的問題。就建立和維護這些系統而言,一個關鍵而又基本的要求是要有可擴展的通信機制。這種機制不僅需要可以支持大量的組件,還要有能力面對動態的且經常發生變化的複雜的應用環境。另外一個需要考慮的重要方面是數據處理的自動化。傳統上的系統一般被設計成用來響應用戶交互式的要求,而為了改善系統的功能性和實用性,就應該提供更為自主的數據處理能力。「中間件」的引入,方便了那些處在異構網絡的分布計算環境中的實體之間的通信。中間件是額外添加的一個位於各個節點的作業系統和一個分布式應用軟體之間的一層軟體。它的作用在於處理通信上的問題和試圖給具體應用展現一個統一的關於底層世界的視圖。因此,中間件技術被廣泛運用,並且被證明為是對異構環境的一種成功的抽象,這就方便了人們設計和實現複雜的分布式系統。在處理數據和服務的傳遞時,那些動態的聯網環境的變化性和數據交換的自動化把人們的注意力從一個靜態的世界轉到一個處在多變狀態的世界中。習慣上,中間件把數據和服務看成是靜態地存在於一些對象或者資料庫中,並且使用直接針對它們的「請求/應答」的交互模式來查詢。這個概念導致客戶機/伺服器(C/S)中間件架構的產生,這種架構強調功能上的顯示授權,系統的組件通過訪問遠程功能來滿足它們的需要,遠程過程調用協議(RPC)和使用簡單對象訪問協議(SOAP)發送請求的WebService即是其中的例子。然而,在動態的聯網系統中,「請求/應答」的通信模式存在嚴重的束縛。客戶端和伺服器端之間直接的並且經常的同步通信給雙方造成了緊密的耦合度,並且削弱了伸縮性。客戶端輪詢遠端的數據源,他們就得用資源的使用來交換數據的正確性。短的輪詢間隔帶來的不必要的請求會浪費資源,而長的間隔會增加更新的延遲。另外,「請求/應答」約束了系統的發展。控制流被編碼在應用組件當中,這樣做雖然方便工程師使用,卻也把系統的實際配置和各個組件的應用邏輯混雜在一起。因此,通過在運行時調整應用組件來協調整個系統的能力受到了限制,結果,授權方法不可避免地意味著是對所使用的服務及其存在的一種功能依賴。在基於事件的交互模式下,組件通過產生和接受事件通知來通信,其中事件是任意感興趣的發生的事,比如某個組件的狀態改變,被影響的組件發布通知描述事件。一個事件通知服務或者說「發布/訂閱」中間件調解基於事件系統中的組件,並且把通知從生產者(發布者)傳遞到先前發布訂閱註冊他們興趣的消費者(訂閱者)。基於事件的體系結構風格的強大之處在於,發布出來的通知和訂閱都沒有直接針對特定的組件。這種通知服務對組件進行了解耦,於是生產者無需知道任何消費者,而消費者只是依賴發布的信息,而不關心它是由誰或者從哪裡發布的。基於事件的組件不是設計用來和別的某些組件一道工作,這樣就利於把通信從計算分離。基於事件的風格具有整合自主異構組件到複雜系統中的潛力,而這樣的系統易於進化和擴展。
發明內容有鑑於此,本發明的主要目的在於提供一種大規模實時統一消息空間的方法及其系統,用於解決集群架構的發布/訂閱系統中,當節點失效時如何保證其他節點正常運行,以及通過設計合適的路由算法減輕根節點負擔的問題。為達到上述目的,本發明的技術方案是這樣實現的一種大規模實時統一消息空間的系統,該系統包括客戶端、發布/訂閱代理模塊、集群代表、管理者和樹狀拓撲;其中客戶端,用於向發布/訂閱模塊發送訂閱消息和通知消息,即參與發布/訂閱的用戶;客戶端通過JMS和發布/訂閱模塊相連,發送基於主題的訂閱或者基於主題的通知,這些消息的格式必須符合WSN標準,以便發布/訂閱模塊進行處理;發布/訂閱代理模塊是該系統的核心部分,其進一步分為兩個模塊,分別為數據模塊和路由模塊;所述數據模塊用於和客戶端交互,而路由模塊負責和其他代理交互;集群代表是對代理進行組織的一種方法,它把位於同一個區域網內的代理組成一個集群,集群內部的代理通過組播的形式進行通信;集群中有一個代理作為集群的代表和別的集群進行通信;集群的代表是自動選擇的,當代表掉線之時,代理之間可以通過「心跳」檢測發現代表丟失,並使用重選的機制保證集群內產生一個新的代表;管理者負責記錄集群的信息;當有集群產生時,集群會向管理者發送註冊請求,管理者便在此時記錄下該集群的信息;同時當集群變換代表時,管理者也會收到相應的更改消息,並做出相應的修改;管理者的另外一個作用是標誌當前的根節點,以便新集群加入到拓撲之中;樹狀拓撲的,用於維護集群的組織和訂閱的轉發功能;管理者將集群組織成樹的形式,每當有集群產生時,便返回根節點供其插入;當有集群丟失時,該節點的父節點和孩子節點會進行相應的處理,保證集群都處在同一課樹中;集群之間轉發訂閱消息,便通過將訂閱發送給自己的父節點和孩子節點,並由他們繼續傳播,直到每個集群都收到。其中,所述數據模塊是基於krviceMix的WSN組件構造的,它其負責接收處理來自客戶端的訂閱和通知消息,所述WSN組件用於處理本地的發布/訂閱請求,同時數據模塊將這些消息轉交給路由模塊,並接收由路由模塊發來的通知,將其轉發給相應的客戶端;所述路由模塊負責把獲取的訂閱信息記錄到訂閱表,維護和本代理相連的代理的信息,並將訂閱和通知轉發給其他代理,當有通知匹配本地的訂閱時轉交給數據模塊。其中,所述集群中的代理位於同一個區域網內,並由一個代理作為代表和別的集群通信;該集群中的代理通過「心跳」檢測來發現對方是否掉線,如果代表掉線,則啟動一個重選代表的操作。所述管理者獨立於各個集群,負責接收集群的註冊消息並維護集群的基本信息以及標識根節點;同時,在集群需要加入時返回根節點的地址;而當集群代表改變時,根據該5集群發送的消息更新本地的信息。所述樹狀拓撲,它既是把多個集群聯繫在一起的結構,也是訂閱信息轉發的路徑;該拓撲具有自配置的能力,即由節點丟失時,能夠保證該節點的子節點重新加入到拓撲中。一種大規模實時統一消息空間的方法,該方法包括A、對參與發布/訂閱的代理按所處的區域網進行劃分,將處在同一網絡中的代理主機劃分成一個個集群,並為集群取名,集群內的代理通過組播的方式進行訂閱和通知的轉發,集群之間通過集群代表進行通信,並構成一棵樹的拓撲形式,集群之間的轉發訂閱則通過這棵樹來進行,而轉發通知則根據通知的轉發樹進行,並由一個獨立的管理者進行集群信息的維護;B、當集群中的代表丟失,則啟動重選的機制從剩下的代理中選一個新代表;如果新代表無法選出,則意味著該集群整體丟失,這會破壞樹的拓撲結構,於是要對失效節點的孩子節點進行處理,使其能夠重新加入到拓撲中;C、當客戶端有訂閱產生時,它把訂閱交給和自己相連的代理,代理收到訂閱後先保存在本地,再在集群中組播,其他代理收到後也保存起來;當代表收到訂閱消息後則通過當前的樹狀拓撲將之轉發給自己的鄰居集群,鄰居集群再轉發給它的鄰居集群直至所有集群都保存有別的集群的訂閱信息;集群代表收到來自別的集群的訂閱將之在集群中組播;D、當客戶端有通知產生時,它把通知交給和自己相連的代理,代理收到通知後檢查訂閱表看是否有該通知的訂閱,如有則在集群中組播;集群中其他代理收到通知後查看訂閱表,如有訂閱則轉發給相應的客戶端,若是集群代表,則還要查看別的集群是否有此通知的訂閱,如有,則為該通知的訂閱者構造一棵以自己為根的轉發樹並將通知轉發出去。其包含基於負載均衡的通知的路由算法,具體為通知不基於樹狀拓撲進行轉發,而是根據訂閱者的信息為每個主題的通知構造一個轉發樹,只把通知轉發給轉發樹中屬於自己的孩子節點,再由孩子節點轉發給他們的孩子節點,直至所有訂閱者都收到該通知。本發明所提供的大規模實時統一消息空間的方法及其系統,具有以下優點利用本發明的系統結構,能夠解決噹噹節點失效時如何保證其他節點正常運行的問題的解決辦法,以及設計了合適的路由算法減輕根節點的負載問題,能夠實現訂閱和通知的高效的路由,具有配置簡單、可擴展性強以及負載均衡等優點。圖1為本發明實時統一消息空間系統的集群架構示意圖;圖2為本發明實時統一消息空間系統的模塊劃分示意圖3為所述集群內部代理主機之間的拓撲結構圖;圖4為代理主機啟動時的基本流程圖;圖5為「心跳」檢測模塊的結構示意圖;圖6為集群內部普通代理丟失時的處理流程圖;圖7為集群的代表主機丟失時的流程圖;圖8為一個新的集群加入到已有拓撲的過程示意圖;圖9為鄰居集群心跳停止時的處理流程圖;圖10圖12為訂閱的路由示意圖;圖13圖14為通知的路由示意圖。具體實施例方式下面結合附圖及本發明的實施例對本發明的方法及系統作進一步詳細的說明。本發明的基本思想是將網絡中的代理主機劃分成一個個集群,集群內的代理通過組播的方式進行訂閱和通知的轉發,集群之間通過集群代表進行通信,並構成一棵樹的拓撲形式,集群之間的轉發訂閱則通過這棵樹來進行,而轉發通知則根據通知的轉發樹進行,並由一個獨立的管理者進行集群信息的維護。圖1為本發明實時統一消息空間系統的集群架構示意圖,如圖1所示的本發明的系統的總體結構。這裡,首先對本發明的原理做一概括闡述。客戶端與代理通過JMSCJavaMessagingService)相連,通過代理進行發布/訂閱的操作;而處在同一個區域網的代理組成一個集群,並選擇一個代理作為集群的代表,各個代理之間通過組播相互通信;集群之間通過代表用點對點的方式進行通信;管理者維護集群的基本信息,並引導集群形成一棵樹,即每當有新的節點要求加入時返回根節點供其請求插入,管理者維護這棵樹的信息。圖2為本發明實時統一消息空間系統的模塊劃分示意圖,如圖2所示,代理的職責主要是處理來自客戶端的訂閱請求和發布請求,以及接收並處理由其他代理轉發過來的訂閱和通知消息;所述代理根據消息的類型進行相關的操作,包括保存訂閱信息,轉發通知,通知客戶端等。於是,本發明的實時統一消息空間系統可分為兩個模塊數據模塊和路由模塊。其中所述數據模塊使用到了開源項目krviceMix的WSN組件(WSN為基於主題的發布/訂閱的一個標準,ServiceMix中的WSN組件實現了該標準的發布/訂閱功能);客戶端通過JMS和Web服務通知(WSN)建立連接,並通過JMS將訂閱請求和發布請求告訴系統,當系統收到與客戶端的訂閱匹配的通知時,也是通過JMS將通知交給客戶端;數據模塊還負責訂閱消息和通知消息的發送與接收。所述路由模塊主要通過表的形式維護系統接收到的訂閱信息(無論是來自客戶端的還是來自別的代理的),並在系統收到通知時(無論是客戶端發布的還是來自別的代理的)根據訂閱表路由這些通知。該路由模塊還有一個「心跳檢測」子模塊,它的功能在於通過發送「心跳」消息來檢測和自己相連的代理是否還存在,並根據存在與否進行相關的處理;訂閱表子模塊通過JDBC和資料庫相連,完成訂閱信息的持久化。圖3為所述集群內部代理主機之間的拓撲結構圖,如圖3所示,處在同一個區域網的代理可以組成一個集群或多個集群,但某一時刻一個代理只能處在一個集群之中,集群應有一個名字用以標識自己。集群通過代理和別的集群進行通信,即集群可以抽象為一個代理主機,而這個主機就是集群的代表,於是代表必須維護當前集群中其他代理的信息,這通過發送「心跳」消息來實現,即普通代理向代表定時發送「心跳」消息以表明自己的存在,代表也向其他代理定時發送「心跳」消息以表明自己的存在。於是從代表管理集群內部代理的角度看,這是一個星型的拓撲。圖4為代理主機啟動時的基本流程圖,如圖4所示,當代理啟動時,通過默認的組播地址在區域網中組播加入請求,這個請求應該包含它所要加入的集群的名字,然後等待響應。當有代表收到加入請求時,它首先對請求中的名字和自己的名字進行匹配,若兩者一致且允許加入(即當前集群內的代理數量尚未超過預設的值),則記錄該新代理的信息,再為其分配一個唯一的ID值,並返回加入成功的響應消息,該消息應包括新代理的ID和已存在的代理的ID,同時發送消息通知別的代理記錄新代理的ID值。若新代理收到響應消息,則解析該消息,若為加入成功,則記下ID值,完成加入的操作;若不成功,則應該換一個集群然後執行加入操作,或者等待一段時間後再加入。若新代理超時未收到響應消息,則可認為區域網內沒有該名字的集群,於是它應該向管理者發送創建集群的消息。管理者收到集群的創建消息時,解析出新集群的名字,並根據已有的集群信息查詢是否已存在這樣的集群名,若無,則記錄下該集群的信息並返回創建成功的響應消息;若有,則返回集群名已存在的響應消息。代理收到響應消息時,解析其內容,如果加入成功,則加入完成,同時自己為新集群的代表;如果不成功,則更改名字再次發送加入請求。圖5為「心跳」檢測模塊的結構示意圖,如圖5所示,「心跳」檢測模塊是本發明系統的重要組成部分,系統要求在邏輯上相鄰的代理之間通過發送「心跳」消息來告訴對方自己是否失效,當失效時進行相應的處理,從而維護整個系統的結構。其中,還包括一張「心跳」信息表,一個發送線程,一個接收線程,一個掃描線程和一個失效處理過程。「心跳」信息表用來保存系統接收到的「心跳」信息——每收到一條「心跳」消息即更新相應的表項;對於普通的代理,它的「心跳」信息表只需保存集群代表的「心跳」信息,而集群代表的「心跳」信息表則需要保存集群內部其他代理的「心跳」信息和相鄰集群的代表的「心跳」信息。發送線程定時發送「心跳」消息,而掃描線程則定時掃描「心跳」信息表,當發現某個「心跳」超時時,則要對該代理進行失效處理。圖6為集群內部普通代理丟失時的處理流程圖,如圖6所示,當集群內的普通代理掉線時,集群代表將其從「心跳」信息表中刪除,表明該代理已不存在,然後刪除之前記錄下的關於該主機的信息,如果該主機有訂閱也一併刪除,同時通知集群內的別的代理刪除其訂閱,若刪除訂閱導致某個主題的訂閱者為空,代表則需要通知鄰居集群刪除本集群關於該主題的訂閱。圖7為集群的代表主機丟失時的流程圖,如圖7所示,本發明的系統配特點還體現在當集群內的代表掉線時,其他代理可以啟動一個重選的機制來保證集群之中總是擁有一個代表;並且,當集群丟失時,它的孩子集群可以通過加入的操作來重新加入到拓撲中,保證正常的運行。當集群內的代表掉線時,則需要為集群重選一個代表。首先,集群內的其他代理刪除代表的訂閱信息,然後將本代理的ID和集群內其他代理的ID進行比較,如果本代理的ID值是最小的,則它將作為新的集群代表,新代表確認後在集群中組播「心跳」消息,並恢復訂閱表,然後通知管理者和鄰居集群本集群的代表已變更,要求它們更新集群信息;如果本代理的ID值不是最小的,它應該等待新代表的「心跳」消息,若超時未收到,則刪除當前最小的ID值並重新進行比較,若收到則意味著新代表已選出,完成重選。圖8為一個新的集群加入到已有拓撲的過程示意圖,如圖8所示,新集群產生時,它需要加入到已存在的拓撲之中,即它應該在樹中找到一個節點並插入。如前所述,管理者會為新集群返回創建成功的消息,這條消息應該包括當前根節點的地址,若當前沒有其他集群,根節點的地址設為空,並標識該新集群為根節點。新集群收到該消息時解析出根節點的地址,若根節點地址為空,則說明自己是當前拓撲中唯一的節點,於是無需做任何操作;若根節點不為空,則將它設為目標節點,並發送插入請求,然後等待響應。目標節點收到插入請求後檢查當前的孩子數量是否超過預設值,若未超過,則返回插入成功的響應;若已超過,則返回其中一個孩子節點的地址供其繼續插入。新集群收到響應時判斷是否插入成功,若成功則將該目標節點設為自己的父節點;若不成功,則將返回的孩子節點設為目標節點再發送插入請求。圖9為鄰居集群心跳停止時的處理流程圖,如圖9所示,當發現某個集群的「心跳」信息超時時,應該啟動一個計時器等待對方重選代表。如果代表重選成功,本集群會再次收到它的「心跳」消息;如果計時器超時未收到「心跳」消息,則可認為該集群丟失了。當集群丟失時,首先應該取消該集群的訂閱,並在樹中轉發這個消息;然後判斷本集群丟失的集群是否為自己的孩子節點,若是,則發送消息通知管理者該節點已丟失,管理者收到該消息則刪除相應的集群信息;若不是自己的孩子節點,則進一步判斷該丟失集群是否為根節點,若否,則使用圖8所示的加入方法重新加入拓撲;若根節點,則要發送消息通知管理者根節點丟失了,管理者因此會收到根節點的孩子節點的消息,於是管理者把最先達到的該消息的發送者定為新的根節點並返迴響應,而對後到的發送者則返回新的根節點的地址供其插入。圖10圖12為訂閱的路由示意圖。訂閱信息是以訂閱表的形式保存的,每個節點根據自己的角色維護不同的訂閱表,但總的來說訂閱表有三種客戶端的訂閱表(clients_table)、代理的訂閱表(brokers_table)和集群的訂閱表(groups_table)。其中,普通的代理維護前兩種訂閱表,而集群代表則三種訂閱表都要維護。這三種訂閱表記錄的內容顧名思義,下面舉例說明當客戶端有訂閱產生時,訂閱的路由和各訂閱表的變化。假設當前的拓撲中有4個集群,分別為「集群a」、「集群b」、「集群C」和「集群d」,如圖10所示,其中「集群C」為根節點,「集群a」有3個代理,「集群b」有兩個代理,「集群C」和「集群d」都只有一個代理,每個代理都和一個客戶端相連(代表的客戶端未畫出)。開始時,所有訂閱表都為空,此時,「集群a」的「客戶端1」向它的代理提交了主題為χ的訂閱,「集群a」的代理「代理1」收到該訂閱消息之後將它記錄到自己的clientsjable之中,並在集群內組播這條訂閱消息;「集群a」的「代理2」和「代理3」收到該訂閱消息時,將它記錄到各自的brokentable中;因為「代理3」是集群的代表,所以它還要把該訂閱轉發到鄰居集群中去;於是「集群c」的代表會收到該訂閱,它把該訂閱記錄到它的groupsjable中,再將之轉發到鄰居;同樣的,「集群b」和「集群d」都會收到並記錄;當「集群b」的代表收到訂閱時,將它在集群中組播,那麼「集群b」的「代理1」會收到該訂閱並進行記錄。一次訂閱傳播的過程完成,如圖11所示。同理,當「集群b」的「客戶端1」向它的代理提交主題為y的訂閱時,訂閱也如前述的路由方式進行,各個表的變化和訂閱消息的路徑如圖12所示。事實上,代表在集群中組播的訂閱可能有兩種一為來自其客戶端的,一為來自其他集群的,為了能夠在代表丟失時恢復出其他集群的訂閱信息,應該對這兩種訂閱進行區分。圖13圖14為通知的路由示意圖。當主機有通知產生時,它先檢查自己的c1ients_tab1e,如有訂閱則轉發到相應的客戶端上;再檢查brokers_tab1e,如有訂閱則在集群內組播該通知。當主機收到通知時,它檢查自己的clientsjable,如有訂閱則轉發到相應的客戶端上;若自己為集群代表,則還要檢查groupsjable,如有訂閱則需轉發給其他集群。通知轉發給其他集群主要通過為訂閱了該主題的訂閱者構造一棵轉發樹來進行,方法如下節點收到訂閱時應該按照一個統一的標準對其進行排序,比如按訂閱者名稱的字母序排序,即為每個訂閱者賦予一個下標,因為每個節點都保存其他節點的訂閱信息,所以這個排序結果是一致的;當通知從某個節點轉發時,它把通知傳給下標靠前的X個訂閱者,並帶上X這個信息;當訂閱者收到通知和X時,再根據自己的下標值計算出它應該轉發的訂閱者的下標值,並轉發出去。假設某個時刻,在如圖13所示的樹中,節點E產生了某個主題的通知,而此時有A、B、C、H和I五個節點訂閱了該主題,即通知需轉發到這五個節點上。如前所述,根據名稱先對訂閱者進行排序,得如下的結果權利要求1.一種大規模實時統一消息空間的系統,其特徵在於,該系統包括客戶端、發布/訂閱代理模塊、集群代表、管理者和樹狀拓撲;其中客戶端,用於向發布/訂閱模塊發送訂閱消息和通知消息,即參與發布/訂閱的用戶;客戶端通過JMS和發布/訂閱模塊相連,發送基於主題的訂閱或者基於主題的通知,這些消息的格式必須符合WSN標準,以便發布/訂閱模塊進行處理;發布/訂閱代理模塊是該系統的核心部分,其進一步分為兩個模塊,分別為數據模塊和路由模塊;所述數據模塊用於和客戶端交互,而路由模塊負責和其他代理交互;集群代表是對代理進行組織的一種方法,它把位於同一個區域網內的代理組成一個集群,集群內部的代理通過組播的形式進行通信;集群中有一個代理作為集群的代表和別的集群進行通信;集群的代表是自動選擇的,當代表掉線之時,代理之間可以通過「心跳」檢測發現代表丟失,並使用重選的機制保證集群內產生一個新的代表;管理者負責記錄集群的信息;當有集群產生時,集群會向管理者發送註冊請求,管理者便在此時記錄下該集群的信息;同時當集群變換代表時,管理者也會收到相應的更改消息,並做出相應的修改;管理者的另外一個作用是標誌當前的根節點,以便新集群加入到拓撲之中;樹狀拓撲的,用於維護集群的組織和訂閱的轉發功能;管理者將集群組織成樹的形式,每當有集群產生時,便返回根節點供其插入;當有集群丟失時,該節點的父節點和孩子節點會進行相應的處理,保證集群都處在同一課樹中;集群之間轉發訂閱消息,便通過將訂閱發送給自己的父節點和孩子節點,並由他們繼續傳播,直到每個集群都收到。2.根據權利1所述的大規模實時統一消息空間的系統,其特徵在於,所述數據模塊是基於krviceMix的WSN組件構造的,它其負責接收處理來自客戶端的訂閱和通知消息,所述WSN組件用於處理本地的發布/訂閱請求,同時數據模塊將這些消息轉交給路由模塊,並接收由路由模塊發來的通知,將其轉發給相應的客戶端;所述路由模塊負責把獲取的訂閱信息記錄到訂閱表,維護和本代理相連的代理的信息,並將訂閱和通知轉發給其他代理,當有通知匹配本地的訂閱時轉交給數據模塊。3..根據權利1中所述的大規模實時統一消息空間的系統,其特徵在於,所述集群中的代理位於同一個區域網內,並由一個代理作為代表和別的集群通信;該集群中的代理通過「心跳」檢測來發現對方是否掉線,如果代表掉線,則啟動一個重選代表的操作。4.根據權利1中所述的大規模實時統一消息空間的系統,其特徵在於,所述管理者獨立於各個集群,負責接收集群的註冊消息並維護集群的基本信息以及標識根節點;同時,在集群需要加入時返回根節點的地址;而當集群代表改變時,根據該集群發送的消息更新本地的信息。5.根據權利1中所述的大規模實時統一消息空間的系統,其特徵在於,所述樹狀拓撲,它既是把多個集群聯繫在一起的結構,也是訂閱信息轉發的路徑;該拓撲具有自配置的能力,即由節點丟失時,能夠保證該節點的子節點重新加入到拓撲中。6.一種大規模實時統一消息空間的方法,其特徵在於,該方法包括A、對參與發布/訂閱的代理按所處的區域網進行劃分,將處在同一網絡中的代理主機劃分成一個個集群,並為集群取名,集群內的代理通過組播的方式進行訂閱和通知的轉發,集群之間通過集群代表進行通信,並構成一棵樹的拓撲形式,集群之間的轉發訂閱則通過這棵樹來進行,而轉發通知則根據通知的轉發樹進行,並由一個獨立的管理者進行集群信息的維護;B、當集群中的代表丟失,則啟動重選的機制從剩下的代理中選一個新代表;如果新代表無法選出,則意味著該集群整體丟失,這會破壞樹的拓撲結構,於是要對失效節點的孩子節點進行處理,使其能夠重新加入到拓撲中;C、當客戶端有訂閱產生時,它把訂閱交給和自己相連的代理,代理收到訂閱後先保存在本地,再在集群中組播,其他代理收到後也保存起來;當代表收到訂閱消息後則通過當前的樹狀拓撲將之轉發給自己的鄰居集群,鄰居集群再轉發給它的鄰居集群直至所有集群都保存有別的集群的訂閱信息;集群代表收到來自別的集群的訂閱將之在集群中組播;D、當客戶端有通知產生時,它把通知交給和自己相連的代理,代理收到通知後檢查訂閱表看是否有該通知的訂閱,如有則在集群中組播;集群中其他代理收到通知後查看訂閱表,如有訂閱則轉發給相應的客戶端,若是集群代表,則還要查看別的集群是否有此通知的訂閱,如有,則為該通知的訂閱者構造一棵以自己為根的轉發樹並將通知轉發出去。7.根據權利要求6所述的大規模實時統一消息空間的方法,其特徵在於,其包含基於負載均衡的通知的路由算法,具體為通知不基於樹狀拓撲進行轉發,而是根據訂閱者的信息為每個主題的通知構造一個轉發樹,只把通知轉發給轉發樹中屬於自己的孩子節點,再由孩子節點轉發給他們的孩子節點,直至所有訂閱者都收到該通知。全文摘要本發明公開了一種大規模實時統一消息空間的方法及其系統,該系統基於集群技術,具有自配置能力和負載均衡的發布/訂閱功能,該系統建立在以集群為單位的系統架構上,集群架構將參與發布/訂閱的代理主機劃分在一個個集群之中,集群之間組織成樹的形式進行管理,並通過集群的代表進行交互。系統包括客戶端、路由模塊、數據模塊和管理者模塊。其中路由模塊負責管理路由信息,維護訂閱表;數據模塊負責接收來自客戶端的訂閱和通知,並進行消息的發送和接收;管理者模塊負責維護由集群形成的樹狀拓撲。利用本發明能夠實現訂閱和通知的高效路由,具有配置簡單、可擴展性強以及負載均衡等優點。文檔編號H04L29/06GK102355413SQ20111024865公開日2012年2月15日申請日期2011年8月26日優先權日2011年8月26日發明者吳步丹,柴兆航,石瑞生,程渤,章洋,謝輝,陳俊亮,顧平麗申請人:北京郵電大學

同类文章

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

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

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

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

個性化檯曆的製作方法

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

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

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

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

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

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

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

釘的製作方法

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

直流氧噴裝置的製作方法

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

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

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

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

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